exports.ids = [36,10,15,21,22,24];
exports.modules = {

/***/ 193:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(200);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("15cfd218", content, true, context)
};

/***/ }),

/***/ 197:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(205);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("25c4a3a6", content, true, context)
};

/***/ }),

/***/ 199:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ColorPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ColorPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ColorPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ColorPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ColorPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 200:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".color-selector{display:flex;align-items:center;grid-gap:.5rem;gap:.5rem;flex-wrap:wrap}.color-selector__input{max-width:110px;padding:0;margin:0}.color-selector__palette{display:flex;grid-gap:.5rem;gap:.5rem;flex-wrap:wrap}.color-selector__palette-color{border-radius:9999px;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;height:1.5rem;aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 201:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(212);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("49b283d9", content, true, context)
};

/***/ }),

/***/ 203:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/vindi/ColorPicker.vue?vue&type=template&id=91388e46&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"color-selector"},[_c('w-input',{staticClass:"color-selector__input",attrs:{"placeholder":"#000000","inner-icon-left":"mdi mdi-eyedropper-variant","color":"gray"},model:{value:(_vm.colorValue),callback:function ($$v) {_vm.colorValue=$$v},expression:"colorValue"}}),_vm._ssrNode(" "),_vm._ssrNode("<div class=\"color-selector__palette\">","</div>",_vm._l((_vm.$store.state.config.colorPalette),function(color){return _vm._ssrNode("<div class=\"color-selector__palette-color\""+(_vm._ssrStyle(null,{ backgroundColor: color }, null))+">","</div>",[_c('w-transition-scale-fade',[(color == _vm.value)?_c('w-icon',[_vm._v("\n\t\t\t\t\tmdi mdi-check\n\t\t\t\t")]):_vm._e()],1)],1)}),0),_vm._ssrNode(" "),(_vm.clearable)?_c('w-button',{attrs:{"icon":"mdi mdi-cancel","bg-color":"error","max":7},on:{"click":function($event){return _vm.$emit('input', '')}}}):_vm._e()],2)}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/vindi/ColorPicker.vue?vue&type=template&id=91388e46&

// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Starlane/Workspaces/vindigo/node_modules/ts-loader??ref--13-1!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/vindi/ColorPicker.vue?vue&type=script&lang=ts&

/* harmony default export */ var ColorPickervue_type_script_lang_ts_ = (external_vue_default.a.extend({
  props: {
    value: String,
    clearable: Boolean
  },
  data: () => ({
    colorValue: ''
  }),
  watch: {
    value(value) {
      this.colorValue = value || '';
    },

    colorValue(value) {
      if (!value) {
        this.$emit('input', null);
        return;
      }

      const isValid = /^#[0-9A-F]{6}$/i.test(value);

      if (isValid) {
        this.$emit('input', value);
      }
    }

  },

  created() {
    this.colorValue = this.value;
  },

  methods: {
    selectColor(color) {
      this.colorValue = color;
    }

  }
}));
// CONCATENATED MODULE: ./components/vindi/ColorPicker.vue?vue&type=script&lang=ts&
 /* harmony default export */ var vindi_ColorPickervue_type_script_lang_ts_ = (ColorPickervue_type_script_lang_ts_); 
// EXTERNAL MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/vindi/ColorPicker.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(199)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  vindi_ColorPickervue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "27e86981"
  
)

/* harmony default export */ var ColorPicker = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 204:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(197);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_IconPicker_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 205:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".icon-picker .w-input__icon--inner-right{font-size:1.5rem;line-height:2rem;top:0;cursor:pointer}.icon-picker__list{box-shadow:6px 6px 40px grey;border-radius:.75rem;padding:1rem;max-height:200px;background-color:var(--color-shade-0);overflow:hidden;overflow-y:auto}.w-app--dark .icon-picker__list{box-shadow:6px 6px 40px #000;background-color:var(--color-shade-2)}.icon-picker__list-inner{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-gap:.75rem;gap:.75rem}.icon-picker__status{font-size:1rem;line-height:1.5rem;font-weight:500}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 208:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/vindi/IconPicker.vue?vue&type=template&id=24e614d8&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('w-menu',{staticClass:"icon-picker",attrs:{"z-index":"600","align-left":"","bottom":"","custom":""},scopedSlots:_vm._u([{key:"activator",fn:function(){return [_c('w-input',{staticClass:"icon-picker__input",attrs:{"inner-icon-left":_vm.localValue || 'mdi mdi-chevron-down',"inner-icon-right":"mdi mdi-close","placeholder":"Search an icon...","autocomplete":"off"},on:{"focus":_vm.openMenu,"click:inner-icon-right":_vm.clear},model:{value:(_vm.searchFilter),callback:function ($$v) {_vm.searchFilter=$$v},expression:"searchFilter"}})]},proxy:true}]),model:{value:(_vm.iconMenu),callback:function ($$v) {_vm.iconMenu=$$v},expression:"iconMenu"}},[_vm._v(" "),_c('div',{staticClass:"icon-picker__list"},[(_vm.iconList.length)?_c('div',{staticClass:"icon-picker__list-inner"},_vm._l((_vm.iconList),function(icon){return _c('w-button',{key:icon,attrs:{"icon":_vm.formatIcon(icon),"color":"misc-0","lg":""},on:{"click":function($event){return _vm.selectIcon(icon)}}})}),1):_c('div',{staticClass:"icon-picker__status"},[_vm._v("\n\t\t\t"+_vm._s(_vm.isLoading ? 'Loading...' : 'No results found')+"\n\t\t")])])])}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/vindi/IconPicker.vue?vue&type=template&id=24e614d8&

// EXTERNAL MODULE: external "graphql-tag"
var external_graphql_tag_ = __webpack_require__(186);
var external_graphql_tag_default = /*#__PURE__*/__webpack_require__.n(external_graphql_tag_);

// EXTERNAL MODULE: external "lodash"
var external_lodash_ = __webpack_require__(7);

// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Starlane/Workspaces/vindigo/node_modules/ts-loader??ref--13-1!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/vindi/IconPicker.vue?vue&type=script&lang=ts&
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  return new (P || (P = Promise))(function (resolve, reject) {
    function fulfilled(value) {
      try {
        step(generator.next(value));
      } catch (e) {
        reject(e);
      }
    }

    function rejected(value) {
      try {
        step(generator["throw"](value));
      } catch (e) {
        reject(e);
      }
    }

    function step(result) {
      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};




/* harmony default export */ var IconPickervue_type_script_lang_ts_ = (external_vue_default.a.extend({
  props: {
    value: {
      type: String
    }
  },
  data: () => ({
    iconList: [],
    localValue: '',
    searchFilter: '',
    isLoading: false,
    iconMenu: false,
    fetchDebounce: null
  }),
  watch: {
    value(value) {
      this.localValue = value;
    },

    searchFilter(value) {
      this.iconMenu = !!value;
      this.iconList = [];
      this.isLoading = true;
      this.fetchDebounce();
    }

  },

  created() {
    this.localValue = this.value || '';
    this.fetchDebounce = Object(external_lodash_["debounce"])(() => {
      this.fetchIcons();
    }, 500);
  },

  methods: {
    formatIcon(icon) {
      return `mdi mdi-${icon}`;
    },

    openMenu() {
      if (this.searchFilter) {
        this.iconMenu = true;
      }
    },

    clear() {
      this.searchFilter = '';
      this.localValue = '';
      this.iconMenu = false;
    },

    fetchIcons() {
      return __awaiter(this, void 0, void 0, function* () {
        const res = yield this.$api.query(external_graphql_tag_default.a`
				query ($search: String) {
					icons(query: $search)
				}
			`, {
          search: this.searchFilter
        });
        this.iconList = res.icons;
        this.isLoading = false;
      });
    },

    selectIcon(icon) {
      const name = this.formatIcon(icon);
      this.localValue = name;
      this.$emit('input', name);
      this.iconMenu = false;
    }

  }
}));
// CONCATENATED MODULE: ./components/vindi/IconPicker.vue?vue&type=script&lang=ts&
 /* harmony default export */ var vindi_IconPickervue_type_script_lang_ts_ = (IconPickervue_type_script_lang_ts_); 
// EXTERNAL MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/vindi/IconPicker.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(204)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  vindi_IconPickervue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "118b8ce7"
  
)

/* harmony default export */ var IconPicker = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 210:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(230);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("d85ac166", content, true, context)
};

/***/ }),

/***/ 211:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Icon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Icon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Icon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Icon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Icon_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 212:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".team-icon{border-radius:.5rem;background-color:var(--color-shade-0);overflow:hidden;image-rendering:crisp-edges}.team-icon,.team-icon__img{-o-object-fit:cover;object-fit:cover}.team-icon__img{width:100%;height:100%}.team-icon__placeholder{font-weight:700;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--color-shade-3)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 213:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony default export */ __webpack_exports__["a"] = ("mutation CreateTask($pid: Int!, $summary: String!) {\r\n\tcreateTask(projectId: $pid, summary: $summary) {\r\n\t\tid\r\n\t}\r\n}");

/***/ }),

/***/ 214:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(232);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("519e4a4d", content, true, context)
};

/***/ }),

/***/ 224:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/team/Icon.vue?vue&type=template&id=4456d1d9&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.teamTag,{tag:"component",attrs:{"to":_vm.teamUrl}},[_c('div',{staticClass:"team-icon",style:(_vm.teamStyle)},[(_vm.imgSrc)?_c('img',{staticClass:"team-icon__img",attrs:{"src":_vm.imgSrc}}):_c('div',{staticClass:"team-icon__placeholder"},[_vm._v("\n\t\t\t"+_vm._s(_vm.teamAbbr)+"\n\t\t")])])])}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/team/Icon.vue?vue&type=template&id=4456d1d9&

// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// EXTERNAL MODULE: ./src/helpers.ts + 1 modules
var helpers = __webpack_require__(3);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Starlane/Workspaces/vindigo/node_modules/ts-loader??ref--13-1!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/team/Icon.vue?vue&type=script&lang=ts&


/* harmony default export */ var Iconvue_type_script_lang_ts_ = (external_vue_default.a.extend({
  name: 'Avatar',
  props: {
    team: {
      type: Object,
      required: true
    },
    size: {
      type: [String, Number],
      default: 34
    },
    openTeam: {
      type: Boolean,
      default: true
    }
  },
  computed: {
    teamTag() {
      return this.openTeam ? `router-link` : 'span';
    },

    teamUrl() {
      return `/team/${this.team.id}`;
    },

    teamAbbr() {
      return this.team.name.split(' ').map(s => s[0]).join('');
    },

    imgSrc() {
      return this.team.logoImage;
    },

    teamStyle() {
      const size = Object(helpers["c" /* cleanInt */])(this.size);
      return {
        width: size + 'px',
        height: size + 'px',
        fontSize: size / 50 + 'em'
      };
    }

  }
}));
// CONCATENATED MODULE: ./components/team/Icon.vue?vue&type=script&lang=ts&
 /* harmony default export */ var team_Iconvue_type_script_lang_ts_ = (Iconvue_type_script_lang_ts_); 
// EXTERNAL MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/team/Icon.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(211)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  team_Iconvue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "ab64adf8"
  
)

/* harmony default export */ var Icon = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 227:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "img/vindigo.917eaa1.svg";

/***/ }),

/***/ 228:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "img/home.63cdf6f.svg";

/***/ }),

/***/ 229:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(210);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Sidebar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 230:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".sidebar{transition-property:width,height,min-width,max-width,min-height,max-height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;z-index:12;width:3.5rem;flex-shrink:0}.sidebar__contents{transition-property:box-shadow,text-shadow;transition-property:width,height,min-width,max-width,min-height,max-height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;height:100%;position:fixed;overflow-x:hidden;background-color:var(--color-misc-1);width:3.5rem;z-index:900;top:0}.sidebar--expanded .sidebar__contents{box-shadow:0 0 1.25rem rgba(43,43,43,.45);width:14rem}.sidebar__highlight{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-color:var(--accent-color);position:absolute;height:3.5rem;width:.25rem;z-index:10;left:0}.sidebar__container{height:100%;display:flex;flex-direction:column}.sidebar__item{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;display:flex;align-items:center;cursor:pointer;color:#fff}.sidebar__item img{width:2rem;height:2rem}.sidebar__item:hover{background-color:rgba(0,0,0,.25)}.sidebar__icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;height:3.5rem;width:3.5rem}.sidebar__title{font-size:1rem;line-height:1.5rem;padding-left:.5rem;padding-right:.5rem;white-space:nowrap;flex-shrink:0;flex:1}.sidebar__title img{margin-left:-.25rem;width:7.5rem;display:block}.sidebar__arrow{padding-right:1rem}.sidebar__expander .w-icon{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sidebar--expanded .sidebar__expander .w-icon{transform:rotate(180deg)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 231:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreationDialogs_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(214);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreationDialogs_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreationDialogs_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreationDialogs_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CreationDialogs_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 232:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".manage-labels__bar{margin-top:.75rem;margin-bottom:1.25rem;grid-gap:.5rem;gap:.5rem}.manage-labels__lists{min-height:16rem;display:flex}.manage-labels__lists>div{flex:1;display:flex;flex-direction:column;justify-content:flex-start;grid-gap:.25rem;gap:.25rem}.manage-labels__lists>div:not(:last-child){margin-right:.75rem;padding-right:.75rem;border-right:1px solid var(--color-shade-2)}.manage-labels__lists .simple-subtitle{padding-bottom:0}.manage-labels__lists .w-button{align-self:flex-start}.manage-labels__lists .task-label{cursor:pointer}.manage-labels__details{flex:1}.manage-labels__help{margin-left:.5rem}.manage-labels__empty{font-size:.875rem;line-height:1.25rem;color:grey}.manage-labels__creator{padding:.75rem;width:20rem}.manage-labels__creator .w-button,.manage-labels__creator>label:not(:first-child){margin-top:1rem}.manage-labels .w-button{margin:0}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 252:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(296);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("dd70d4b8", content, true, context)
};

/***/ }),

/***/ 272:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/project/CreationDialogs.vue?vue&type=template&id=6f0ca218&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('w-dialog',{attrs:{"dialog-class":"simple-dialog","width":"500"},model:{value:(_vm.newTaskDialog),callback:function ($$v) {_vm.newTaskDialog=$$v},expression:"newTaskDialog"}},[_c('VindiTitle',{attrs:{"icon":"mdi mdi-account-multiple-plus"}},[_vm._v("\n\t\t\t"+_vm._s(_vm.$t("CREATE_NEW_TASK"))+"\n\t\t")]),_vm._v(" "),_c('label',{domProps:{"innerHTML":_vm._s(_vm.$t('CREATE_NEW_TASK_SUMMARY'))}}),_vm._v(" "),_c('w-input',{directives:[{name:"auto-focus",rawName:"v-auto-focus"}],model:{value:(_vm.newTaskSummary),callback:function ($$v) {_vm.newTaskSummary=$$v},expression:"newTaskSummary"}}),_vm._v(" "),_c('w-flex',{staticClass:"simple-dialog__options"},[_c('w-button',{attrs:{"bg-color":"shade-2"},on:{"click":function($event){_vm.newTaskDialog = false}}},[_vm._v("\n\t\t\t\tClose\n\t\t\t")]),_vm._v(" "),_c('VindiSpacer'),_vm._v(" "),_c('w-button',{attrs:{"color":"white","bg-color":"primary","loading":_vm.newTaskLoading,"disabled":!_vm.newTaskSummary},on:{"click":_vm.createTask}},[_c('w-icon',{staticClass:"left"},[_vm._v("\n\t\t\t\t\tmdi mdi-plus\n\t\t\t\t")]),_vm._v("\n\t\t\t\t"+_vm._s(_vm.$t("CREATE_NEW_TASK_CREATE"))+"\n\t\t\t")],1)],1)],1),_vm._ssrNode(" "),_c('w-dialog',{attrs:{"dialog-class":"simple-dialog manage-labels","width":"700"},model:{value:(_vm.labelManageDialog),callback:function ($$v) {_vm.labelManageDialog=$$v},expression:"labelManageDialog"}},[_c('VindiTitle',{attrs:{"icon":"mdi mdi-tag-text"}},[_vm._v("\n\t\t\tManage task labels\n\t\t")]),_vm._v(" "),_c('w-flex',{staticClass:"manage-labels__bar"},[_c('w-input',{attrs:{"bg-color":"shade-3","placeholder":"Filter labels...","inner-icon-left":"mdi mdi-magnify","autocomplete":"off","color":"grey"},model:{value:(_vm.manageLabelFilter),callback:function ($$v) {_vm.manageLabelFilter=$$v},expression:"manageLabelFilter"}})],1),_vm._v(" "),_c('div',{staticClass:"manage-labels__lists"},_vm._l((_vm.labelColumns),function(type,i){return _c('div',{key:i},[_c('div',{staticClass:"simple-subtitle"},[_vm._v("\n\t\t\t\t\t"+_vm._s(type.name)+"\n\t\t\t\t\t"),_c('w-tooltip',{attrs:{"right":"","z-index":"600"},scopedSlots:_vm._u([{key:"activator",fn:function(ref){
var on = ref.on;
return [_c('w-icon',_vm._g({staticClass:"manage-labels__help"},on),[_vm._v("\n\t\t\t\t\t\t\t\tmdi mdi-help-circle-outline\n\t\t\t\t\t\t\t")])]}}],null,true)},[_vm._v("\n\t\t\t\t\t\t"+_vm._s(type.description)+"\n\t\t\t\t\t")])],1),_vm._v(" "),(!type.labels.length)?_c('div',{staticClass:"manage-labels__empty"},[_vm._v("\n\t\t\t\t\tNo labels found\n\t\t\t\t")]):_vm._e(),_vm._v(" "),_vm._l((type.labels),function(label){return _c('TaskLabel',{key:label.id,attrs:{"value":label},nativeOn:{"click":function($event){return _vm.requestEditLabel(label)}}},[_c('w-icon',[_vm._v("\n\t\t\t\t\t\tmdi mdi-pencil\n\t\t\t\t\t")])],1)})],2)}),0),_vm._v(" "),_c('w-flex',[_c('w-button',{attrs:{"bg-color":"shade-2"},on:{"click":function($event){_vm.labelManageDialog = false}}},[_vm._v("\n\t\t\t\tClose\n\t\t\t")]),_vm._v(" "),_c('VindiSpacer'),_vm._v(" "),_c('w-button',{on:{"click":_vm.requestNewLabel}},[_vm._v("\n\t\t\t\tCreate label\n\t\t\t\t"),_c('w-icon',{staticClass:"right"},[_vm._v("\n\t\t\t\t\tmdi mdi-plus\n\t\t\t\t")])],1)],1)],1),_vm._ssrNode(" "),_c('w-dialog',{attrs:{"dialog-class":"simple-dialog","width":"500"},model:{value:(_vm.editLabelDialog),callback:function ($$v) {_vm.editLabelDialog=$$v},expression:"editLabelDialog"}},[(_vm.isEditingNewLabel)?_c('VindiTitle',{attrs:{"icon":"mdi mdi-tag-plus"}},[_vm._v("\n\t\t\t"+_vm._s(_vm.$t("CREATE_NEW_LABEL"))+"\n\t\t")]):_c('VindiTitle',{attrs:{"icon":"mdi mdi-tag"}},[_vm._v("\n\t\t\tEdit label\n\t\t")]),_vm._v(" "),_c('label',{domProps:{"innerHTML":_vm._s(_vm.$t('CREATE_NEW_LABEL_NAME'))}}),_vm._v(" "),_c('w-input',{directives:[{name:"auto-focus",rawName:"v-auto-focus"}],model:{value:(_vm.editLabelName),callback:function ($$v) {_vm.editLabelName=$$v},expression:"editLabelName"}}),_vm._v(" "),(_vm.isEditingNewLabel)?[_c('label',{domProps:{"innerHTML":_vm._s(_vm.$t('CREATE_NEW_LABEL_TYPE'))}}),_vm._v(" "),_c('w-select',{attrs:{"items":_vm.labelTypes,"menu-props":{'z-index': 600}},model:{value:(_vm.editLabelType),callback:function ($$v) {_vm.editLabelType=$$v},expression:"editLabelType"}})]:_vm._e(),_vm._v(" "),(_vm.isLabelColorSupported)?[_c('label',{domProps:{"innerHTML":_vm._s(_vm.$t('CREATE_NEW_LABEL_COLOR'))}}),_vm._v(" "),_c('VindiColorPicker',{model:{value:(_vm.editLabelColor),callback:function ($$v) {_vm.editLabelColor=$$v},expression:"editLabelColor"}})]:_vm._e(),_vm._v(" "),(_vm.isLabelIconSupported)?[_c('label',{domProps:{"innerHTML":_vm._s(_vm.$t('CREATE_NEW_LABEL_ICON'))}}),_vm._v(" "),_c('VindiIconPicker',{model:{value:(_vm.editLabelIcon),callback:function ($$v) {_vm.editLabelIcon=$$v},expression:"editLabelIcon"}})]:_vm._e(),_vm._v(" "),_c('w-flex',{staticClass:"simple-dialog__options"},[_c('w-button',{attrs:{"bg-color":"shade-2"},on:{"click":function($event){_vm.editLabelDialog = false}}},[_vm._v("\n\t\t\t\tClose\n\t\t\t")]),_vm._v(" "),_c('VindiSpacer'),_vm._v(" "),(!_vm.isEditingNewLabel)?_c('w-button',{attrs:{"bg-color":"error","loading":_vm.editLabelLoading},on:{"click":_vm.deleteLabel}},[_vm._v("\n\t\t\t\tDelete\n\t\t\t\t"),_c('w-icon',{staticClass:"right"},[_vm._v("\n\t\t\t\t\tmdi mdi-delete\n\t\t\t\t")])],1):_vm._e(),_vm._v(" "),_c('w-button',{attrs:{"color":"white","bg-color":"primary","loading":_vm.editLabelLoading,"disabled":!_vm.isLabelValid},on:{"click":_vm.saveLabel}},[_vm._v("\n\t\t\t\tSave\n\t\t\t\t"),_c('w-icon',{staticClass:"right"},[_vm._v("\n\t\t\t\t\tmdi mdi-check\n\t\t\t\t")])],1)],1)],2)],2)}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/project/CreationDialogs.vue?vue&type=template&id=6f0ca218&

// EXTERNAL MODULE: ./assets/query/project/createTask.gql
var createTask = __webpack_require__(213);

// CONCATENATED MODULE: ./assets/query/project/createLabel.gql
/* harmony default export */ var createLabel = ("mutation createLabel($projectId: Int!, $details: TaskLabelCreation!) {\r\n\tcreateLabel(projectId: $projectId, details: $details) {\r\n\t\tid\r\n\t}\r\n}");
// CONCATENATED MODULE: ./assets/query/project/updateLabel.gql
/* harmony default export */ var updateLabel = ("mutation UpdateLabel($id: Int!, $details: TaskLabelUpdate!) {\r\n\tupdateLabel(id: $id, details: $details) {\r\n\t\tid\r\n\t}\r\n}");
// CONCATENATED MODULE: ./assets/query/project/deleteLabel.gql
/* harmony default export */ var deleteLabel = ("mutation DeleteLabel($id: Int!) {\r\n\tdeleteLabel(id: $id) {\r\n\t\tid\r\n\t}\r\n}");
// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Starlane/Workspaces/vindigo/node_modules/ts-loader??ref--13-1!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/project/CreationDialogs.vue?vue&type=script&lang=ts&
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  return new (P || (P = Promise))(function (resolve, reject) {
    function fulfilled(value) {
      try {
        step(generator.next(value));
      } catch (e) {
        reject(e);
      }
    }

    function rejected(value) {
      try {
        step(generator["throw"](value));
      } catch (e) {
        reject(e);
      }
    }

    function step(result) {
      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};






/* harmony default export */ var CreationDialogsvue_type_script_lang_ts_ = (external_vue_default.a.extend({
  props: {
    project: Object
  },
  data: () => ({
    deletionDialog: false,
    // New task
    newTaskSummary: '',
    newTaskLoading: false,
    // Manage labels
    manageLabelsLoading: false,
    manageLabelFilter: '',
    // Create label
    editLabelLoading: false,
    editLabelDialog: false,
    editLabelId: null,
    editLabelName: '',
    editLabelColor: '',
    editLabelIcon: '',
    editLabelType: '',
    labelTypes: [{
      label: 'Primary',
      value: 'PRIMARY'
    }, {
      label: 'Secondary',
      value: 'SECONDARY'
    }, {
      label: 'Tag',
      value: 'TAG'
    }]
  }),
  computed: {
    newTaskDialog: {
      get() {
        return this.$store.state.newTaskDialog;
      },

      set(value) {
        this.$store.commit('viewNewTaskDialog', value);
      }

    },
    labelManageDialog: {
      get() {
        return this.$store.state.labelManageDialog;
      },

      set(value) {
        this.$store.commit('viewLabelManageDialog', value);
      }

    },

    isLabelValid() {
      if (!this.editLabelName) {
        return false;
      }

      if (this.isLabelColorSupported && !this.editLabelColor) {
        return false;
      }

      if (this.isLabelIconSupported && !this.editLabelIcon) {
        return false;
      }

      return true;
    },

    isLabelColorSupported() {
      return this.editLabelType == 'PRIMARY' || this.editLabelType == 'SECONDARY';
    },

    isLabelIconSupported() {
      return this.editLabelType == 'PRIMARY';
    },

    isEditingNewLabel() {
      return this.editLabelId === null;
    },

    labelColumns() {
      const query = this.manageLabelFilter.toLowerCase();
      const filtered = this.project.labels.filter(label => {
        return !query || label.title.toLowerCase().includes(query);
      });
      return [{
        name: 'Primary labels',
        description: 'Primary labels are used to convey the main purpose of a task. Each task can carry at most one label.',
        labels: filtered.filter(label => label.type == 'PRIMARY')
      }, {
        name: 'Secondary labels',
        description: 'Secondary labels can be added to tasks with no restrictions and convey a tasks secondary purpose.',
        labels: filtered.filter(label => label.type == 'SECONDARY')
      }, {
        name: 'Tag labels',
        description: 'Tag labels are only visible when viewing a task directly and can be used to filter tasks.',
        labels: filtered.filter(label => label.type == 'TAG')
      }];
    }

  },
  watch: {
    labelManageDialog(value) {
      if (!value) {
        this.editLabelDialog = false;
      }
    }

  },
  methods: {
    createTask() {
      return __awaiter(this, void 0, void 0, function* () {
        this.newTaskLoading = true;
        yield this.$api.query(createTask["a" /* default */], {
          pid: this.project.id,
          summary: this.newTaskSummary
        });
        this.newTaskLoading = false;
        this.newTaskDialog = false;
      });
    },

    saveLabel() {
      return __awaiter(this, void 0, void 0, function* () {
        this.editLabelLoading = true;

        if (this.editLabelId === null) {
          yield this.$api.query(createLabel, {
            projectId: this.project.id,
            details: {
              title: this.editLabelName,
              color: this.editLabelColor,
              icon: this.editLabelIcon,
              type: this.editLabelType
            }
          });
        } else {
          yield this.$api.query(updateLabel, {
            id: this.editLabelId,
            details: {
              title: this.editLabelName,
              color: this.editLabelColor || undefined,
              icon: this.editLabelIcon || undefined
            }
          });
        }

        this.editLabelDialog = false;
        this.editLabelLoading = false;
      });
    },

    deleteLabel() {
      return __awaiter(this, void 0, void 0, function* () {
        this.editLabelLoading = true;
        yield this.$api.query(deleteLabel, {
          id: this.editLabelId
        });
        this.editLabelLoading = false;
        this.editLabelDialog = false;
      });
    },

    requestNewLabel() {
      this.editLabelId = null;
      this.editLabelName = '', this.editLabelIcon = '', this.editLabelColor = '', this.editLabelType = 'SECONDARY', this.editLabelDialog = true;
    },

    requestEditLabel(label) {
      this.editLabelId = label.id, this.editLabelName = label.title, this.editLabelIcon = label.icon, this.editLabelColor = label.color, this.editLabelType = label.type, this.editLabelDialog = true;
    }

  }
}));
// CONCATENATED MODULE: ./components/project/CreationDialogs.vue?vue&type=script&lang=ts&
 /* harmony default export */ var project_CreationDialogsvue_type_script_lang_ts_ = (CreationDialogsvue_type_script_lang_ts_); 
// EXTERNAL MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/project/CreationDialogs.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(231)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  project_CreationDialogsvue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "7b372435"
  
)

/* harmony default export */ var CreationDialogs = __webpack_exports__["default"] = (component.exports);

/* nuxt-component-imports */
installComponents(component, {VindiTitle: __webpack_require__(69).default,VindiSpacer: __webpack_require__(11).default,TaskLabel: __webpack_require__(25).default,VindiColorPicker: __webpack_require__(203).default,VindiIconPicker: __webpack_require__(208).default})


/***/ }),

/***/ 273:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/project/Sidebar.vue?vue&type=template&id=1903d1c6&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:"sidebar",class:_vm.computeClass,on:{"mouseover":function($event){_vm.expanded = true},"mouseleave":function($event){_vm.expanded = false}}},[_vm._ssrNode("<div class=\"sidebar__contents\">","</div>",[_vm._ssrNode(((_vm.value >= 0)?("<div class=\"sidebar__highlight\""+(_vm._ssrStyle(null,_vm.highlightStyle, null))+"></div>"):"<!---->")+" "),_vm._ssrNode("<ol class=\"sidebar__container\">","</ol>",[_vm._l((_vm.listItems),function(item,index){return _c('nuxt-link',{key:index,staticClass:"sidebar__item",attrs:{"to":item.href,"title":_vm.$t(item.name)},nativeOn:{"click":function($event){return _vm.emitIndicator($event, index)}}},[_c('div',{staticClass:"sidebar__icon"},[_c('img',{attrs:{"src":item.icon}})]),_vm._v(" "),_c('div',{staticClass:"sidebar__title"},[(item.image)?_c('img',{attrs:{"src":item.image}}):[_vm._v("\n\t\t\t\t\t\t"+_vm._s(_vm.$t(item.name))+"\n\t\t\t\t\t")]],2),_vm._v(" "),(!item.image)?_c('w-icon',{staticClass:"sidebar__arrow"},[_vm._v("\n\t\t\t\t\tmdi mdi-chevron-right\n\t\t\t\t")]):_vm._e()],1)}),_vm._ssrNode(" "),_c('VindiSpacer'),_vm._ssrNode(" "),_vm._ssrNode("<li class=\"sidebar__item sidebar__expander\">","</li>",[_vm._ssrNode("<div class=\"sidebar__icon\">","</div>",[_c('w-icon',[_vm._v("\n\t\t\t\t\t\tmdi mdi-chevron-right\n\t\t\t\t\t")])],1),_vm._ssrNode(" <div class=\"sidebar__title\"><div>\n\t\t\t\t\t\tCollapse Sidebar\n\t\t\t\t\t</div> <small>\n\t\t\t\t\t\tDisable auto reveal\n\t\t\t\t\t</small></div>")],2)],2)],2)])}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/project/Sidebar.vue?vue&type=template&id=1903d1c6&

// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Starlane/Workspaces/vindigo/node_modules/ts-loader??ref--13-1!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/project/Sidebar.vue?vue&type=script&lang=ts&

/* harmony default export */ var Sidebarvue_type_script_lang_ts_ = (external_vue_default.a.extend({
  name: 'Sidebar',
  props: {
    project: {
      type: Object,
      required: true
    },
    getPath: {
      type: Function,
      required: true
    },
    value: {
      type: Number,
      required: true
    }
  },
  data: () => ({
    listItems: [],
    expanded: false
  }),
  computed: {
    computeClass() {
      return {
        'sidebar--expanded': this.expanded && this.canExpandSidebar
      };
    },

    renderTooltips() {
      return false;
    },

    highlightStyle() {
      const index = this.value;
      return index !== undefined ? {
        top: (index + 1) * 56 + 'px'
      } : {
        display: 'none'
      };
    },

    canExpandSidebar() {
      return this.$store.state.expandSidebar;
    }

  },

  created() {
    const views = this.$registries.projectViews.toItems(); // initializing list items

    this.listItems = views.map(item => ({
      name: item.content.name,
      icon: item.content.icon,
      href: this.getPath(item.id)
    })); // Prepend the home button

    this.listItems.unshift({
      name: 'VIEW_HOME',
      image: __webpack_require__(227),
      icon: __webpack_require__(228),
      href: '/'
    });
  },

  methods: {
    toggleSidebarExpansion() {
      this.$store.commit('setExpandSidebar', !this.canExpandSidebar);
    },

    emitIndicator(e, index) {
      if (!e.ctrlKey) {
        this.$emit('input', index - 1);
      }
    }

  }
}));
// CONCATENATED MODULE: ./components/project/Sidebar.vue?vue&type=script&lang=ts&
 /* harmony default export */ var project_Sidebarvue_type_script_lang_ts_ = (Sidebarvue_type_script_lang_ts_); 
// EXTERNAL MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/project/Sidebar.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(229)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  project_Sidebarvue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "6f74dc45"
  
)

/* harmony default export */ var Sidebar = __webpack_exports__["default"] = (component.exports);

/* nuxt-component-imports */
installComponents(component, {VindiSpacer: __webpack_require__(11).default})


/***/ }),

/***/ 295:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_project_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(252);
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_project_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_project_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_project_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_project_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 296:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".project-page{display:flex;min-height:100vh}.project-page__wrapper{display:flex;flex-direction:column;flex-grow:1;min-width:0}.project-page__star{transition-property:opacity;transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;margin-left:.25rem;color:var(--color-shade-4);font-size:1.1rem;opacity:.7;cursor:pointer}.project-page__star--active,.project-page__star:hover{opacity:1}.project-page__star--active{color:#f7a715}.project-page__settings-item{display:flex;align-items:center;line-height:1rem}.project-page__options{margin-left:.75rem;margin-right:.75rem;color:#404040}.w-app--dark .project-page__options{color:#c5c5c5}.project-page__info{display:flex;flex-direction:column}.project-page__name{font-weight:700}.project-page__view{font-weight:100;margin-top:-.25rem}.project-page__content{flex-grow:1}.project-view-empty{padding-top:10rem;padding-bottom:10rem;display:flex;align-items:center;flex-direction:column}.project-view-empty h2{font-size:1.5rem;line-height:2rem;font-weight:500;margin-top:2rem;color:#525252}.w-app--dark .project-view-empty h2{color:#fff}.project-view-empty p{font-size:1.125rem;line-height:1.5rem;margin-top:.75rem;color:#a3a3a3;text-align:center;max-width:400px}.project-view-empty .w-button{margin-top:1.5rem}.member-list__header{padding-left:.75rem;padding-right:.75rem;padding-bottom:.25rem;margin-top:.5rem;font-weight:600;color:#35353a;display:flex;align-items:center}.w-app--dark .member-list__header{color:#e5e5e5}.member-list__edit{font-weight:500;text-decoration:underline;cursor:pointer;color:#737373}.member-list__entries{padding-left:.75rem;padding-right:.75rem;padding-bottom:.5rem;display:flex;flex-wrap:wrap}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 336:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./pages/project.vue?vue&type=template&id=6ce3b6d9&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:"project-page",style:(_vm.pageStyle)},[_c('ProjectSidebar',{attrs:{"project":_vm.project,"get-path":_vm.getPath},model:{value:(_vm.viewIndicator),callback:function ($$v) {_vm.viewIndicator=$$v},expression:"viewIndicator"}}),_vm._ssrNode(" "),_vm._ssrNode("<section class=\"project-page__wrapper\">","</section>",[_c('AppToolbar',{staticClass:"project-page__toolbar",scopedSlots:_vm._u([{key:"creation-list",fn:function(){return [_c('div',{staticClass:"simple-list__item"},[_c('w-icon',{attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\tmdi mdi-text-box-check\n\t\t\t\t\t")]),_vm._v("\n\t\t\t\t\t"+_vm._s(_vm.$t('TOOLBAR_CREATE_TASK'))+"\n\t\t\t\t\t"),_c('p',{staticClass:"text-gray-400"},[_vm._v("\n\t\t\t\t\t\t"+_vm._s(_vm.$t('TOOLBAR_CREATE_TASK_DESC'))+"\n\t\t\t\t\t")])],1)]},proxy:true}])},[_c('w-menu',{attrs:{"custom":"","align-left":"","hide-on-menu-click":"","transition":"slide-fade-down"},scopedSlots:_vm._u([{key:"activator",fn:function(ref){
var on = ref.on;
return [_c('w-button',_vm._g({staticClass:"project-page__options",attrs:{"icon":"mdi mdi-chevron-down","bg-color":"transparent","xl":""}},on))]}}])},[_vm._v(" "),_c('div',{staticClass:"simple-list"},[_c('p',{staticClass:"simple-list__title"},[_vm._v("\n\t\t\t\t\t\t"+_vm._s(_vm.$t('PROJECT_OPTIONS'))+"\n\t\t\t\t\t")]),_vm._v(" "),_c('w-divider'),_vm._v(" "),_c('div',{staticClass:"simple-list__list"},[(_vm.project.accessLevel == 'manager')?[_c('router-link',{staticClass:"simple-list__item project-page__settings-item",attrs:{"to":_vm.getPath('settings'),"tag":"div"}},[_c('w-icon',{staticClass:"left",attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\t\t\t\tmdi mdi-cog-outline\n\t\t\t\t\t\t\t\t")]),_vm._v(" "),_c('div',[_c('div',[_vm._v("\n\t\t\t\t\t\t\t\t\t\tSettings\n\t\t\t\t\t\t\t\t\t")]),_vm._v(" "),_c('small',[_vm._v("\n\t\t\t\t\t\t\t\t\t\tProject management\n\t\t\t\t\t\t\t\t\t")])])],1),_vm._v(" "),_c('w-divider')]:_vm._e(),_vm._v(" "),_c('div',{staticClass:"simple-list__item",on:{"click":_vm.promptManageLabels}},[_c('w-icon',{attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\t\t\tmdi mdi-tag-text\n\t\t\t\t\t\t\t")]),_vm._v("\n\t\t\t\t\t\t\tTask labels\n\t\t\t\t\t\t")],1),_vm._v(" "),_c('div',{staticClass:"simple-list__item"},[_c('w-icon',{attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\t\t\tmdi mdi-lightning-bolt\n\t\t\t\t\t\t\t")]),_vm._v("\n\t\t\t\t\t\t\tAutomation rules\n\t\t\t\t\t\t")],1),_vm._v(" "),_c('div',{staticClass:"simple-list__item"},[_c('w-icon',{attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\t\t\tmdi mdi-bell\n\t\t\t\t\t\t\t")]),_vm._v("\n\t\t\t\t\t\t\tNotifications\n\t\t\t\t\t\t")],1),_vm._v(" "),_c('div',{staticClass:"simple-list__item"},[_c('w-icon',{attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\t\t\tmdi mdi-archive\n\t\t\t\t\t\t\t")]),_vm._v("\n\t\t\t\t\t\t\tArchived items\n\t\t\t\t\t\t")],1),_vm._v(" "),(_vm.project.accessLevel == 'manager')?_c('div',[_c('w-divider'),_vm._v(" "),_c('div',{staticClass:"member-list"},[_c('div',{staticClass:"member-list__header"},[_vm._v("\n\t\t\t\t\t\t\t\t\tMembers\n\t\t\t\t\t\t\t\t\t"),_c('VindiSpacer'),_vm._v(" "),_c('router-link',{attrs:{"to":_vm.getPath('settings/members')}},[_c('small',{staticClass:"member-list__edit"},[_vm._v("\n\t\t\t\t\t\t\t\t\t\t\tManage\n\t\t\t\t\t\t\t\t\t\t")])])],1),_vm._v(" "),_c('div',{staticClass:"member-list__entries"},_vm._l((_vm.project.members),function(ref){
var member = ref.member;
return _c('VindiAvatar',{key:member.id,staticClass:"-mr-2 block",attrs:{"profile":member,"size":30}})}),1)]),_vm._v(" "),(_vm.project.teams.length > 0)?_c('div',{staticClass:"member-list"},[_c('div',{staticClass:"member-list__header"},[_vm._v("\n\t\t\t\t\t\t\t\t\tTeams\n\t\t\t\t\t\t\t\t\t"),_c('VindiSpacer'),_vm._v(" "),_c('router-link',{attrs:{"to":_vm.getPath('settings/teams')}},[_c('small',{staticClass:"member-list__edit"},[_vm._v("\n\t\t\t\t\t\t\t\t\t\t\tManage\n\t\t\t\t\t\t\t\t\t\t")])])],1),_vm._v(" "),_c('div',{staticClass:"member-list__entries"},_vm._l((_vm.project.teams),function(ref){
var team = ref.team;
return _c('team-icon',{key:team.id,staticClass:"mr-1 block",attrs:{"team":team,"size":30}})}),1)]):_vm._e()],1):_vm._e()],2),_vm._v(" "),(_vm.project.accessLevel != 'manager')?_c('div',[_c('w-divider',{staticStyle:{"margin":"0","margin-bottom":"2px"}}),_vm._v(" "),_c('div',{staticClass:"simple-list__item error",on:{"click":_vm.leaveProject}},[_c('w-icon',{attrs:{"size":"1.1rem"}},[_vm._v("\n\t\t\t\t\t\t\t\tmdi mdi-logout\n\t\t\t\t\t\t\t")]),_vm._v("\n\t\t\t\t\t\t\t"+_vm._s(_vm.$t('PROJECT_LEAVE'))+"\n\t\t\t\t\t\t")],1)],1):_vm._e()],1)]),_vm._v(" "),_c('div',{staticClass:"project-page__info"},[_c('h1',{staticClass:"project-page__name"},[_vm._v("\n\t\t\t\t\t"+_vm._s(_vm.project.name)+"\n\n\t\t\t\t\t"),_c('w-icon',{staticClass:"project-page__star",class:_vm.starClass,on:{"click":_vm.toggleStar}},[_vm._v("\n\t\t\t\t\t\tmdi mdi-star\n\t\t\t\t\t")])],1),_vm._v(" "),(_vm.view)?_c('small',{staticClass:"project-page__view"},[_vm._v("\n\t\t\t\t\t"+_vm._s(_vm.$t(_vm.view.name))+"\n\t\t\t\t")]):_vm._e()])],1),_vm._ssrNode(" "),_vm._ssrNode("<main role=\"main\" class=\"project-page__content\">","</main>",[_c('keep-alive',[_c('NuxtChild',{attrs:{"project":_vm.project}})],1)],1),_vm._ssrNode(" "),_c('ProjectCreationDialogs',{attrs:{"project":_vm.project}})],2)],2)}
var staticRenderFns = []


// CONCATENATED MODULE: ./pages/project.vue?vue&type=template&id=6ce3b6d9&

// EXTERNAL MODULE: external "vue"
var external_vue_ = __webpack_require__(0);
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);

// CONCATENATED MODULE: ./assets/query/project/fetchProjectPage.gql
/* harmony default export */ var fetchProjectPage = ("# > projectPage\r\n\r\nquery ProjectPage($pid: Int!) {\r\n\tproject(id: $pid) {\r\n\t\t...ProjectPage\r\n\t}\r\n}");
// CONCATENATED MODULE: ./assets/query/project/favoriteProject.gql
/* harmony default export */ var favoriteProject = ("mutation FavoriteProject($projectId: Int!) {\r\n\ttoggleProjectStar(id: $projectId)\r\n}");
// CONCATENATED MODULE: ./assets/query/project/onLabelsChanged.gql
/* harmony default export */ var onLabelsChanged = ("subscription LabelsChange($id: Int!) {\r\n\tlabelsChanged(projectId: $id) {\r\n\t\tlabels {\r\n\t\t\tid\r\n\t\t\ttype\r\n\t\t\ttitle\r\n\t\t\tcolor\r\n\t\t\ticon\r\n\t\t}\r\n\t}\r\n}");
// CONCATENATED MODULE: ./assets/query/project/onProjectUpdated.gql
/* harmony default export */ var onProjectUpdated = ("# > projectPage\r\n\r\nsubscription ProjectUpdated($id: Int!) {\r\n\tprojectUpdated(id: $id) {\r\n\t\t...ProjectPage\r\n\t}\r\n}");
// CONCATENATED MODULE: ./assets/query/project/leaveProject.gql
/* harmony default export */ var leaveProject = ("mutation LeaveProject($id: Int!) {\r\n\tleaveProject(id: $id)\r\n}");
// EXTERNAL MODULE: ./src/helpers.ts + 1 modules
var helpers = __webpack_require__(3);

// CONCATENATED MODULE: D:/Starlane/Workspaces/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Starlane/Workspaces/vindigo/node_modules/ts-loader??ref--13-1!D:/Starlane/Workspaces/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib??vue-loader-options!./pages/project.vue?vue&type=script&lang=ts&
var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  return new (P || (P = Promise))(function (resolve, reject) {
    function fulfilled(value) {
      try {
        step(generator.next(value));
      } catch (e) {
        reject(e);
      }
    }

    function rejected(value) {
      try {
        step(generator["throw"](value));
      } catch (e) {
        reject(e);
      }
    }

    function step(result) {
      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};








/* harmony default export */ var projectvue_type_script_lang_ts_ = (external_vue_default.a.extend({
  layout: 'empty',

  asyncData(context) {
    return __awaiter(this, void 0, void 0, function* () {
      const pid = Object(helpers["l" /* parseSlug */])(context.params.pid); // Assert project existence

      if (pid == undefined) {
        context.error({
          statusCode: 404,
          message: 'Project not found'
        });
        return;
      } // TODO Fetch the task lists on the fly or
      // keep the lists up to date w/ subscriptions


      const res = yield context.$api.query(fetchProjectPage, {
        pid: pid
      });
      const project = res.project;

      if (!project) {
        context.error({
          statusCode: 404,
          message: 'Project not found'
        });
        return;
      } // Initial view indicator position


      const views = context.$registries.projectViews;
      const segments = context.route.matched[1].path.split('/');
      const viewInstance = views.get(segments[segments.length - 1]);
      const indicator = viewInstance ? views.toArray().indexOf(viewInstance) : -1;
      return {
        view: viewInstance,
        viewIndicator: indicator,
        project: project
      };
    });
  },

  data: () => ({
    view: null,
    manager: null,
    project: {},
    viewIndicator: 0
  }),
  computed: {
    pageStyle() {
      return {
        '--accent-color': this.project.accentColor
      };
    },

    starClass() {
      return {
        'project-page__star--active': this.project.isStarred
      };
    }

  },
  watch: {
    '$route'() {
      this.updateIndicator();
    }

  },

  mounted() {
    this.manager = this.$api.createManager(); // Update project labels

    this.manager.subscribe({
      query: onLabelsChanged,
      variables: {
        id: this.project.id
      },
      next: result => {
        this.project.labels = result.labelsChanged.labels;
      }
    }); // Listen for project updates

    this.manager.subscribe({
      query: onProjectUpdated,
      variables: {
        id: this.project.id
      },
      next: result => {
        console.log(result);
        this.project = result.projectUpdated;
      }
    });
    this.$store.commit('addCreationProvider', {
      id: 'task',
      order: 20,
      icon: 'mdi mdi-text-box',
      title: 'TOOLBAR_CREATE_TASK',
      description: 'TOOLBAR_CREATE_TASK_DESC',
      handler: () => this.promptNewTask()
    });
  },

  beforeDestroy() {
    this.$store.commit('removeCreationProvider', 'task');
    this.manager.dispose();
  },

  methods: {
    getPath(path) {
      return `/project/${this.$route.params.pid}/${path || ''}`;
    },

    updateIndicator() {
      const views = this.$registries.projectViews;
      const segments = this.$route.matched[1].path.split('/');
      const viewInstance = views.get(segments[segments.length - 1]);
      this.view = viewInstance;

      if (!viewInstance) {
        this.viewIndicator = -1;
      } else {
        this.viewIndicator = views.toArray().indexOf(viewInstance);
      }
    },

    promptNewTask() {
      this.$store.commit('viewNewTaskDialog', true);
    },

    promptManageLabels() {
      this.$store.commit('viewLabelManageDialog', true);
    },

    leaveProject() {
      return __awaiter(this, void 0, void 0, function* () {
        if (this.project.isStarred) {
          this.$api.query(favoriteProject, {
            projectId: this.project.id
          });
        }

        const success = yield this.$api.query(leaveProject, {
          id: this.project.id
        });

        if (success) {
          this.$waveui.notify({
            message: `Successfully left project ${this.project.name}`,
            success: true
          });
          this.$router.push("/");
        } else {
          this.$waveui.notify({
            message: `Failed to leave project ${this.project.name}`,
            error: true
          });
        }
      });
    },

    toggleStar() {
      this.project.isStarred = !this.project.isStarred;

      if (this.project.isStarred) {
        this.$waveui.notify({
          message: `Favorited ${this.project.name}`,
          icon: 'mdi mdi-star',
          color: 'amber'
        });
      }

      this.$api.query(favoriteProject, {
        projectId: this.project.id
      });
    }

  }
}));
// CONCATENATED MODULE: ./pages/project.vue?vue&type=script&lang=ts&
 /* harmony default export */ var pages_projectvue_type_script_lang_ts_ = (projectvue_type_script_lang_ts_); 
// EXTERNAL MODULE: D:/Starlane/Workspaces/vindigo/node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./pages/project.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(295)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  pages_projectvue_type_script_lang_ts_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "6c44bf42"
  
)

/* harmony default export */ var pages_project = __webpack_exports__["default"] = (component.exports);

/* nuxt-component-imports */
installComponents(component, {ProjectSidebar: __webpack_require__(273).default,VindiSpacer: __webpack_require__(11).default,VindiAvatar: __webpack_require__(12).default,TeamIcon: __webpack_require__(224).default,AppToolbar: __webpack_require__(74).default,ProjectCreationDialogs: __webpack_require__(272).default})


/***/ })

};;
//# sourceMappingURL=project.js.map