exports.ids = [9,21,23];
exports.modules = {

/***/ 191:
/***/ (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__(198);
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__(5).default
module.exports.__inject__ = function (context) {
  add("15cfd218", content, true, context)
};

/***/ }),

/***/ 195:
/***/ (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__(203);
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__(5).default
module.exports.__inject__ = function (context) {
  add("25c4a3a6", content, true, context)
};

/***/ }),

/***/ 197:
/***/ (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__(191);
/* 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__));


/***/ }),

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

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(4);
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, __webpack_exports__, __webpack_require__) {

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

// CONCATENATED MODULE: D:/Projects/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Projects/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Projects/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:/Projects/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Projects/vindigo/node_modules/ts-loader??ref--13-1!D:/Projects/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Projects/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:/Projects/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__(197)
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,
  "761a3e03"
  
)

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

/***/ }),

/***/ 202:
/***/ (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__(195);
/* 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__));


/***/ }),

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

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(4);
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___;


/***/ }),

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

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

// CONCATENATED MODULE: D:/Projects/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Projects/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Projects/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__(184);
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:/Projects/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Projects/vindigo/node_modules/ts-loader??ref--13-1!D:/Projects/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Projects/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:/Projects/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__(202)
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,
  "7f6c2025"
  
)

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

/***/ }),

/***/ 211:
/***/ (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}");

/***/ }),

/***/ 212:
/***/ (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__(5).default
module.exports.__inject__ = function (context) {
  add("519e4a4d", content, true, context)
};

/***/ }),

/***/ 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_CreationDialogs_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(212);
/* 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__));


/***/ }),

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

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(4);
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___;


/***/ }),

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

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

// CONCATENATED MODULE: D:/Projects/vindigo/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!D:/Projects/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Projects/vindigo/node_modules/vue-loader/lib??vue-loader-options!./components/project/CreationDialogs.vue?vue&type=template&id=4388d5c4&
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('div',{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('div',{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=4388d5c4&

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

// 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:/Projects/vindigo/node_modules/babel-loader/lib??ref--13-0!D:/Projects/vindigo/node_modules/ts-loader??ref--13-1!D:/Projects/vindigo/node_modules/nuxt/node_modules/@nuxt/components/dist/loader.js??ref--0-0!D:/Projects/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:/Projects/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__(229)
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,
  "26a40f37"
  
)

/* 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__(201).default,VindiIconPicker: __webpack_require__(206).default})


/***/ })

};;
//# sourceMappingURL=project-creation-dialogs.js.map