diff --git a/app/dist/js/index.js b/app/dist/js/index.js index c831ec5..ad80a9a 100644 --- a/app/dist/js/index.js +++ b/app/dist/js/index.js @@ -268,7 +268,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@_components/z-datepicker.vue */ \"./src/plugins/tm@_components/z-datepicker.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ZDatepicker: _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n // ZAutocomplete\n },\n mixins: [_plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_8__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__[\"default\"]],\n emits: ['close'],\n data() {\n return {\n visible: false,\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n blocker: null,\n datepicker: null,\n starts_at_time: null,\n ends_at_time: null,\n employee: null\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_6__.mapGetters)('tm', ['enrichedEmployees']),\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_6__.mapGetters)('auth', ['user'])\n },\n validations() {\n return {\n blocker: {\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n start: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n end: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n }\n // employee: { required }\n },\n starts_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n ends_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n datepicker: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n }\n };\n },\n watch: {\n ends_at_time() {\n this._syncDatesTimes();\n },\n starts_at_time() {\n this._syncDatesTimes();\n },\n datepicker() {\n this._syncDatesTimes();\n }\n },\n methods: {\n async showModal({\n blocker\n }) {\n this.visible = true;\n this.blocker = null;\n this.datepicker = null;\n this.starts_at_time = null;\n this.ends_at_time = null;\n this.$nextTick(() => {\n this.v$.$reset();\n });\n try {\n if (blocker?.id) {\n blocker = await this.$axios.get_auth_data(`v1/blockers/${blocker.id}`);\n this.starts_at_time = moment__WEBPACK_IMPORTED_MODULE_7___default()(blocker.start).format('HH:mm');\n this.ends_at_time = moment__WEBPACK_IMPORTED_MODULE_7___default()(blocker.end).format('HH:mm');\n this.datepicker = new Date(blocker.start);\n blocker.employee_id = blocker.employee.id;\n //fixnut validacie employee_id\n this.blocker = blocker;\n } else {\n this.blocker = {\n start: null,\n employee_id: this.user.id\n };\n if (blocker.starts_at_time && blocker.datepicker && blocker.employee_id) {\n this.datepicker = blocker.datepicker;\n this.starts_at_time = blocker.starts_at_time;\n this.blocker.employee_id = blocker.employee_id;\n }\n }\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n async save() {\n if (!(await this.v$.$validate())) return;\n try {\n // this.blocker.employee_id = this.blocker.employee?.id\n\n if (this.blocker.id) {\n const {\n blocker\n } = await this.$axios.put_auth(`v1/blockers/${this.blocker.id}`, this.blocker);\n this.blocker = blocker;\n } else {\n const {\n blocker\n } = await this.$axios.post_auth('v1/blockers', this.blocker);\n this.blocker = blocker;\n }\n this.$events.emit('on-blocker-edited', this.blocker);\n this.$events.emit('blocker-created');\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n closeModal() {\n this.visible = false;\n this.$emit('close', this.blocker);\n },\n onEmployeeSelected({\n key\n }) {\n this.blocker.employee = this.enrichedEmployees.find(employee => employee.id == key);\n },\n _syncDatesTimes() {\n if (!this.starts_at_time || !this.ends_at_time || !this.datepicker) return;\n const splittedStart = this.starts_at_time.split(':');\n const splittedEnd = this.ends_at_time.split(':');\n this.blocker.start = moment__WEBPACK_IMPORTED_MODULE_7___default()(this.datepicker).set({\n hours: parseInt(splittedStart[0]),\n minutes: parseInt(splittedStart[1])\n }).format('YYYY-MM-DD HH:mm');\n this.blocker.end = moment__WEBPACK_IMPORTED_MODULE_7___default()(this.datepicker).set({\n hours: parseInt(splittedEnd[0]),\n minutes: parseInt(splittedEnd[1])\n }).format('YYYY-MM-DD HH:mm');\n }\n }\n});\n/* istanbul ignore next */\nfunction oo_cm() {\n try {\n return (0, eval)('globalThis._console_ninja') || (0, eval)(\"/* https://github.com/wallabyjs/console-ninja#how-does-it-work */'use strict';var _0x3bb860=_0x1415;(function(_0x56f424,_0x281bb7){var _0x578595=_0x1415,_0x2349f8=_0x56f424();while(!![]){try{var _0x3a5c11=-parseInt(_0x578595(0x177))/0x1+parseInt(_0x578595(0xce))/0x2*(parseInt(_0x578595(0xab))/0x3)+-parseInt(_0x578595(0xe0))/0x4+-parseInt(_0x578595(0xa3))/0x5+parseInt(_0x578595(0x138))/0x6+parseInt(_0x578595(0x70))/0x7*(parseInt(_0x578595(0x123))/0x8)+parseInt(_0x578595(0x131))/0x9;if(_0x3a5c11===_0x281bb7)break;else _0x2349f8['push'](_0x2349f8['shift']());}catch(_0x1e619a){_0x2349f8['push'](_0x2349f8['shift']());}}}(_0x4e1d,0xdeb8a));function _0x1415(_0x47fe6b,_0x151885){var _0x4e1d5f=_0x4e1d();return _0x1415=function(_0x14150b,_0x79b2a3){_0x14150b=_0x14150b-0x6a;var _0x3e24b4=_0x4e1d5f[_0x14150b];return _0x3e24b4;},_0x1415(_0x47fe6b,_0x151885);}function z(_0x24a155,_0x4b4c5c,_0x5910f9,_0x1b7610,_0x103ee4,_0x1467ae){var _0x51301a=_0x1415,_0x33e993,_0x5b9a4b,_0x5d3157,_0x1fc7d9;this[_0x51301a(0x102)]=_0x24a155,this[_0x51301a(0x88)]=_0x4b4c5c,this[_0x51301a(0xe4)]=_0x5910f9,this[_0x51301a(0xfd)]=_0x1b7610,this[_0x51301a(0x10f)]=_0x103ee4,this[_0x51301a(0x76)]=_0x1467ae,this[_0x51301a(0x99)]=!0x0,this[_0x51301a(0x125)]=!0x0,this[_0x51301a(0x126)]=!0x1,this[_0x51301a(0xf5)]=!0x1,this[_0x51301a(0xc6)]=((_0x5b9a4b=(_0x33e993=_0x24a155[_0x51301a(0x167)])==null?void 0x0:_0x33e993[_0x51301a(0x11b)])==null?void 0x0:_0x5b9a4b[_0x51301a(0xe8)])===_0x51301a(0xd2),this['_inBrowser']=!((_0x1fc7d9=(_0x5d3157=this['global'][_0x51301a(0x167)])==null?void 0x0:_0x5d3157[_0x51301a(0x149)])!=null&&_0x1fc7d9['node'])&&!this[_0x51301a(0xc6)],this['_WebSocketClass']=null,this[_0x51301a(0x6a)]=0x0,this[_0x51301a(0x89)]=0x14,this['_webSocketErrorDocsLink']=_0x51301a(0x111),this[_0x51301a(0x73)]=(this[_0x51301a(0xee)]?_0x51301a(0x9e):_0x51301a(0x12e))+this[_0x51301a(0x16b)];}z[_0x3bb860(0x166)][_0x3bb860(0xba)]=async function(){var _0x4e59d7=_0x3bb860,_0x4597cb,_0xd38ba8;if(this[_0x4e59d7(0x176)])return this[_0x4e59d7(0x176)];let _0x4fce50;if(this[_0x4e59d7(0xee)]||this[_0x4e59d7(0xc6)])_0x4fce50=this['global'][_0x4e59d7(0x8b)];else{if((_0x4597cb=this['global'][_0x4e59d7(0x167)])!=null&&_0x4597cb[_0x4e59d7(0x158)])_0x4fce50=(_0xd38ba8=this[_0x4e59d7(0x102)][_0x4e59d7(0x167)])==null?void 0x0:_0xd38ba8[_0x4e59d7(0x158)];else try{_0x4fce50=(await new Function(_0x4e59d7(0xbf),_0x4e59d7(0x78),_0x4e59d7(0xfd),_0x4e59d7(0x15a))(await(0x0,eval)(_0x4e59d7(0x85)),await(0x0,eval)(_0x4e59d7(0xb5)),this[_0x4e59d7(0xfd)]))['default'];}catch{try{_0x4fce50=require(require(_0x4e59d7(0xbf))['join'](this[_0x4e59d7(0xfd)],'ws'));}catch{throw new Error('failed\\\\x20to\\\\x20find\\\\x20and\\\\x20load\\\\x20WebSocket');}}}return this[_0x4e59d7(0x176)]=_0x4fce50,_0x4fce50;},z[_0x3bb860(0x166)][_0x3bb860(0x6c)]=function(){var _0x238fd3=_0x3bb860;this[_0x238fd3(0xf5)]||this[_0x238fd3(0x126)]||this[_0x238fd3(0x6a)]>=this[_0x238fd3(0x89)]||(this[_0x238fd3(0x125)]=!0x1,this['_connecting']=!0x0,this['_connectAttemptCount']++,this[_0x238fd3(0x11d)]=new Promise((_0x13a915,_0x21b0d7)=>{var _0x525468=_0x238fd3;this[_0x525468(0xba)]()['then'](_0x5b01ba=>{var _0x22c3de=_0x525468;let _0x2d3688=new _0x5b01ba(_0x22c3de(0xc2)+(!this[_0x22c3de(0xee)]&&this[_0x22c3de(0x10f)]?_0x22c3de(0x143):this['host'])+':'+this[_0x22c3de(0xe4)]);_0x2d3688[_0x22c3de(0x8d)]=()=>{var _0x225989=_0x22c3de;this[_0x225989(0x99)]=!0x1,this[_0x225989(0xc7)](_0x2d3688),this[_0x225989(0x161)](),_0x21b0d7(new Error(_0x225989(0x137)));},_0x2d3688['onopen']=()=>{var _0x5c704f=_0x22c3de;this[_0x5c704f(0xee)]||_0x2d3688[_0x5c704f(0xdb)]&&_0x2d3688[_0x5c704f(0xdb)]['unref']&&_0x2d3688[_0x5c704f(0xdb)][_0x5c704f(0x151)](),_0x13a915(_0x2d3688);},_0x2d3688[_0x22c3de(0x121)]=()=>{var _0x4945c9=_0x22c3de;this[_0x4945c9(0x125)]=!0x0,this['_disposeWebsocket'](_0x2d3688),this['_attemptToReconnectShortly']();},_0x2d3688[_0x22c3de(0x113)]=_0x2053ed=>{var _0x47d471=_0x22c3de;try{if(!(_0x2053ed!=null&&_0x2053ed[_0x47d471(0xfc)])||!this[_0x47d471(0x76)])return;let _0x455e7c=JSON[_0x47d471(0x175)](_0x2053ed['data']);this[_0x47d471(0x76)](_0x455e7c[_0x47d471(0xd3)],_0x455e7c[_0x47d471(0x115)],this[_0x47d471(0x102)],this[_0x47d471(0xee)]);}catch{}};})['then'](_0x162101=>(this[_0x525468(0x126)]=!0x0,this[_0x525468(0xf5)]=!0x1,this[_0x525468(0x125)]=!0x1,this['_allowedToSend']=!0x0,this[_0x525468(0x6a)]=0x0,_0x162101))['catch'](_0xa697f4=>(this[_0x525468(0x126)]=!0x1,this[_0x525468(0xf5)]=!0x1,console[_0x525468(0xf7)](_0x525468(0x95)+this[_0x525468(0x16b)]),_0x21b0d7(new Error(_0x525468(0xd6)+(_0xa697f4&&_0xa697f4[_0x525468(0x146)])))));}));},z[_0x3bb860(0x166)][_0x3bb860(0xc7)]=function(_0x310b79){var _0xc4bfe7=_0x3bb860;this[_0xc4bfe7(0x126)]=!0x1,this[_0xc4bfe7(0xf5)]=!0x1;try{_0x310b79[_0xc4bfe7(0x121)]=null,_0x310b79['onerror']=null,_0x310b79['onopen']=null;}catch{}try{_0x310b79[_0xc4bfe7(0xa0)]<0x2&&_0x310b79[_0xc4bfe7(0xb9)]();}catch{}},z[_0x3bb860(0x166)][_0x3bb860(0x161)]=function(){var _0xeb4151=_0x3bb860;clearTimeout(this[_0xeb4151(0x98)]),!(this[_0xeb4151(0x6a)]>=this[_0xeb4151(0x89)])&&(this[_0xeb4151(0x98)]=setTimeout(()=>{var _0x1946d6=_0xeb4151,_0x4e1390;this[_0x1946d6(0x126)]||this[_0x1946d6(0xf5)]||(this['_connectToHostNow'](),(_0x4e1390=this['_ws'])==null||_0x4e1390['catch'](()=>this[_0x1946d6(0x161)]()));},0x1f4),this[_0xeb4151(0x98)][_0xeb4151(0x151)]&&this[_0xeb4151(0x98)][_0xeb4151(0x151)]());},z[_0x3bb860(0x166)][_0x3bb860(0x172)]=async function(_0xe28174){var _0x17b86c=_0x3bb860;try{if(!this[_0x17b86c(0x99)])return;this[_0x17b86c(0x125)]&&this[_0x17b86c(0x6c)](),(await this['_ws'])['send'](JSON[_0x17b86c(0xb6)](_0xe28174));}catch(_0x382eee){this['_extendedWarning']?console[_0x17b86c(0xf7)](this[_0x17b86c(0x73)]+':\\\\x20'+(_0x382eee&&_0x382eee['message'])):(this[_0x17b86c(0x9b)]=!0x0,console[_0x17b86c(0xf7)](this[_0x17b86c(0x73)]+':\\\\x20'+(_0x382eee&&_0x382eee[_0x17b86c(0x146)]),_0xe28174)),this[_0x17b86c(0x99)]=!0x1,this[_0x17b86c(0x161)]();}};function H(_0x4007a6,_0x7f3615,_0x44871c,_0x3fda34,_0x42d82c,_0x255a3e,_0x1ac7c5,_0x253dd4=ne){var _0x3da3a8=_0x3bb860;let _0x24dfae=_0x44871c[_0x3da3a8(0x11e)](',')[_0x3da3a8(0xd5)](_0x453732=>{var _0x41af42=_0x3da3a8,_0x253dbd,_0x1fcf43,_0x44930f,_0x299886,_0x5d734b,_0x482ba2,_0x14c56a;try{if(!_0x4007a6[_0x41af42(0x14a)]){let _0x2b832b=((_0x1fcf43=(_0x253dbd=_0x4007a6['process'])==null?void 0x0:_0x253dbd[_0x41af42(0x149)])==null?void 0x0:_0x1fcf43[_0x41af42(0x153)])||((_0x299886=(_0x44930f=_0x4007a6[_0x41af42(0x167)])==null?void 0x0:_0x44930f['env'])==null?void 0x0:_0x299886[_0x41af42(0xe8)])===_0x41af42(0xd2);(_0x42d82c==='next.js'||_0x42d82c===_0x41af42(0xa9)||_0x42d82c===_0x41af42(0xcc)||_0x42d82c==='angular')&&(_0x42d82c+=_0x2b832b?_0x41af42(0x156):_0x41af42(0x11f));let _0x4bd77b='';_0x42d82c===_0x41af42(0xaa)&&(_0x4bd77b=(((_0x14c56a=(_0x482ba2=(_0x5d734b=_0x4007a6[_0x41af42(0x74)])==null?void 0x0:_0x5d734b[_0x41af42(0x6f)])==null?void 0x0:_0x482ba2[_0x41af42(0x72)])==null?void 0x0:_0x14c56a['osName'])||'')[_0x41af42(0x130)](),_0x4bd77b&&(_0x42d82c+='\\\\x20'+_0x4bd77b,_0x4bd77b===_0x41af42(0xd0)&&(_0x7f3615='10.0.2.2'))),_0x4007a6[_0x41af42(0x14a)]={'id':+new Date(),'tool':_0x42d82c},_0x1ac7c5&&_0x42d82c&&!_0x2b832b&&(_0x4bd77b?console[_0x41af42(0x119)](_0x41af42(0xcf)+_0x4bd77b+_0x41af42(0x6e)):console[_0x41af42(0x119)](_0x41af42(0xaf)+(_0x42d82c[_0x41af42(0x162)](0x0)[_0x41af42(0xad)]()+_0x42d82c[_0x41af42(0xd4)](0x1))+',',_0x41af42(0xbc),'see\\\\x20https://tinyurl.com/2vt8jxzw\\\\x20for\\\\x20more\\\\x20info.'));}let _0x4de09c=new z(_0x4007a6,_0x7f3615,_0x453732,_0x3fda34,_0x255a3e,_0x253dd4);return _0x4de09c[_0x41af42(0x172)][_0x41af42(0xc0)](_0x4de09c);}catch(_0x17909b){return console['warn'](_0x41af42(0x84),_0x17909b&&_0x17909b[_0x41af42(0x146)]),()=>{};}});return _0x22ddfa=>_0x24dfae[_0x3da3a8(0x11a)](_0x3bc35e=>_0x3bc35e(_0x22ddfa));}function ne(_0x1fd219,_0x333fdc,_0x47d769,_0x45bbd3){var _0x6922c2=_0x3bb860;_0x45bbd3&&_0x1fd219===_0x6922c2(0x16e)&&_0x47d769[_0x6922c2(0x170)][_0x6922c2(0x16e)]();}function b(_0x1be91c){var _0x168b8c=_0x3bb860,_0x2c3d08,_0x8f1a04;let _0x2f7b8f=function(_0x19089c,_0x523e04){return _0x523e04-_0x19089c;},_0x204928;if(_0x1be91c[_0x168b8c(0x9c)])_0x204928=function(){var _0x4c8584=_0x168b8c;return _0x1be91c[_0x4c8584(0x9c)][_0x4c8584(0xe6)]();};else{if(_0x1be91c[_0x168b8c(0x167)]&&_0x1be91c['process'][_0x168b8c(0x15d)]&&((_0x8f1a04=(_0x2c3d08=_0x1be91c['process'])==null?void 0x0:_0x2c3d08['env'])==null?void 0x0:_0x8f1a04[_0x168b8c(0xe8)])!==_0x168b8c(0xd2))_0x204928=function(){var _0x10f78d=_0x168b8c;return _0x1be91c['process'][_0x10f78d(0x15d)]();},_0x2f7b8f=function(_0x1a41e2,_0x4523ee){return 0x3e8*(_0x4523ee[0x0]-_0x1a41e2[0x0])+(_0x4523ee[0x1]-_0x1a41e2[0x1])/0xf4240;};else try{let {performance:_0x5b1c98}=require('perf_hooks');_0x204928=function(){var _0x4f0b5b=_0x168b8c;return _0x5b1c98[_0x4f0b5b(0xe6)]();};}catch{_0x204928=function(){return+new Date();};}}return{'elapsed':_0x2f7b8f,'timeStamp':_0x204928,'now':()=>Date[_0x168b8c(0xe6)]()};}function _0x4e1d(){var _0x55c7b0=['_isNegativeZero','[object\\\\x20Set]','_connecting','pop','warn','_property','constructor','_console_ninja','level','data','nodeModules','_getOwnPropertyDescriptor','_setNodePermissions','parent','_getOwnPropertyNames','global','_setNodeQueryPath','_addFunctionsNode','time','POSITIVE_INFINITY','object','_isSet','[object\\\\x20Date]','negativeInfinity','elements','timeStamp','_numberRegExp','osName','dockerizedApp','_dateToString','https://tinyurl.com/37x8b79t','valueOf','onmessage','_capIfString','args','resolveGetters','resetWhenQuietMs','Number','log','forEach','env','cappedElements','_ws','split','\\\\x20browser','_undefined','onclose','_propertyName','19480KjoQTx','root_exp_id','_allowedToConnectOnSend','_connected','_quotedRegExp','nan','funcName','_getOwnPropertySymbols','_sortProps','_Symbol','_setNodeId','Console\\\\x20Ninja\\\\x20failed\\\\x20to\\\\x20send\\\\x20logs,\\\\x20restarting\\\\x20the\\\\x20process\\\\x20may\\\\x20help;\\\\x20also\\\\x20see\\\\x20','Map','toLowerCase','13103964QpnQvW','String','array','_cleanNode','push','_processTreeNodeResult','logger\\\\x20websocket\\\\x20error','1870254SUWmxz','_addProperty','_objectToString','_isPrimitiveType','strLength','serialize','_isPrimitiveWrapperType','_addObjectProperty','elapsed','boolean','trace','gateway.docker.internal','Symbol','autoExpand','message','_p_length','reduceLimits','versions','_console_ninja_session','_isUndefined','Set','sortProps','1.0.0','props','autoExpandPropertyCount','unref','getter','node','autoExpandPreviousObjects','Error','\\\\x20server','perLogpoint','_WebSocket','','return\\\\x20import(url.pathToFileURL(path.join(nodeModules,\\\\x20\\\\x27ws/index.js\\\\x27)).toString());',\\\"/Users/matejglasnak/.cursor/extensions/wallabyjs.console-ninja-1.0.496-universal/node_modules\\\",'','hrtime','toString','ninjaSuppressConsole','type','_attemptToReconnectShortly','charAt','date','value','58178','prototype','process','get','cappedProps','_hasSetOnItsPath','_webSocketErrorDocsLink','_setNodeExpandableState','NEGATIVE_INFINITY','reload','current','location','negativeZero','send','_type','_isArray','parse','_WebSocketClass','983374JpTdwS','_connectAttemptCount','noFunctions','_connectToHostNow','127.0.0.1',',\\\\x20see\\\\x20https://tinyurl.com/2vt8jxzw\\\\x20for\\\\x20more\\\\x20info.','modules','2345wsUfrF','_setNodeLabel','ExpoDevice','_sendErrorMessage','expo','length','eventReceivedCallback','stack','url','isArray','resetOnProcessingTimeAverageMs','_HTMLAllCollection','Buffer','startsWith','symbol','count','indexOf','isExpressionToEvaluate','resolve','_ninjaIgnoreNextError','logger\\\\x20failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host','import(\\\\x27path\\\\x27)','HTMLAllCollection','...','host','_maxConnectAttemptCount','_regExpToString','WebSocket','[object\\\\x20Array]','onerror','some','_p_','allStrLength','reduceOnAccumulatedProcessingTimeMs','unknown','hits','reducedLimits','logger\\\\x20failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host,\\\\x20see\\\\x20','_additionalMetadata','reduceOnCount','_reconnectTimeout','_allowedToSend','totalStrLength','_extendedWarning','performance','fromCharCode','Console\\\\x20Ninja\\\\x20failed\\\\x20to\\\\x20send\\\\x20logs,\\\\x20refreshing\\\\x20the\\\\x20page\\\\x20may\\\\x20help;\\\\x20also\\\\x20see\\\\x20','stackTraceLimit','readyState','call','hostname','4473635XDSKgJ','1','getOwnPropertyNames','index','_keyStrRegExp','positiveInfinity','remix','react-native','50079FfGbnb','_consoleNinjaAllowedToStart','toUpperCase','name','%c\\\\x20Console\\\\x20Ninja\\\\x20extension\\\\x20is\\\\x20connected\\\\x20to\\\\x20','_hasSymbolPropertyOnItsPath','getOwnPropertySymbols','origin','number','error','import(\\\\x27url\\\\x27)','stringify','RegExp','autoExpandLimit','close','getWebSocketClass','setter','background:\\\\x20rgb(30,30,30);\\\\x20color:\\\\x20rgb(255,213,92)','concat','console','path','bind','_addLoadNode','ws://','bigint','slice','expId','_inNextEdge','_disposeWebsocket','capped','iterator','_treeNodePropertiesAfterFullValue','Promise','astro','string','158otmrpx','Console\\\\x20Ninja\\\\x20extension\\\\x20is\\\\x20connected\\\\x20to\\\\x20','android',{\\\"resolveGetters\\\":false,\\\"defaultLimits\\\":{\\\"props\\\":100,\\\"elements\\\":100,\\\"strLength\\\":51200,\\\"totalStrLength\\\":51200,\\\"autoExpandLimit\\\":5000,\\\"autoExpandMaxDepth\\\":10},\\\"reducedLimits\\\":{\\\"props\\\":5,\\\"elements\\\":5,\\\"strLength\\\":256,\\\"totalStrLength\\\":768,\\\"autoExpandLimit\\\":30,\\\"autoExpandMaxDepth\\\":2},\\\"reducePolicy\\\":{\\\"perLogpoint\\\":{\\\"reduceOnCount\\\":50,\\\"reduceOnAccumulatedProcessingTimeMs\\\":100,\\\"resetWhenQuietMs\\\":500,\\\"resetOnProcessingTimeAverageMs\\\":100},\\\"global\\\":{\\\"reduceOnCount\\\":1000,\\\"reduceOnAccumulatedProcessingTimeMs\\\":300,\\\"resetWhenQuietMs\\\":50,\\\"resetOnProcessingTimeAverageMs\\\":100}}},'edge','method','substr','map','failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host:\\\\x20','_p_name','_setNodeExpressionPath','function','sort','_socket','includes','undefined','disabledLog','_blacklistedProperty','4447240xwfavk','[object\\\\x20BigInt]','defaultLimits','getOwnPropertyDescriptor','port','replace','now','[object\\\\x20Map]','NEXT_RUNTIME','autoExpandMaxDepth','expressionsToEvaluate','_treeNodePropertiesBeforeFullValue','rootExpression','depth','_inBrowser','test','reducePolicy','endsWith','_hasMapOnItsPath'];_0x4e1d=function(){return _0x55c7b0;};return _0x4e1d();}function X(_0x483c01,_0x271bd4,_0x44c4e4){var _0x104ef5=_0x3bb860,_0x11870b,_0xd0411e,_0x2b2f35,_0x37f289,_0x19767e,_0x5b1d18,_0x148937,_0x214d11,_0xcc5822;if(_0x483c01['_consoleNinjaAllowedToStart']!==void 0x0)return _0x483c01['_consoleNinjaAllowedToStart'];let _0x1a7fe6=((_0xd0411e=(_0x11870b=_0x483c01[_0x104ef5(0x167)])==null?void 0x0:_0x11870b['versions'])==null?void 0x0:_0xd0411e['node'])||((_0x37f289=(_0x2b2f35=_0x483c01[_0x104ef5(0x167)])==null?void 0x0:_0x2b2f35[_0x104ef5(0x11b)])==null?void 0x0:_0x37f289['NEXT_RUNTIME'])==='edge',_0x4eefc2=!!(_0x44c4e4===_0x104ef5(0xaa)&&((_0x148937=(_0x5b1d18=(_0x19767e=_0x483c01['expo'])==null?void 0x0:_0x19767e[_0x104ef5(0x6f)])==null?void 0x0:_0x5b1d18['ExpoDevice'])==null?void 0x0:_0x148937[_0x104ef5(0x10e)]));function _0x3dc67e(_0x1005a2){var _0x8df396=_0x104ef5;if(_0x1005a2[_0x8df396(0x7d)]('/')&&_0x1005a2[_0x8df396(0xf1)]('/')){let _0x42ca86=new RegExp(_0x1005a2[_0x8df396(0xc4)](0x1,-0x1));return _0x1424cc=>_0x42ca86['test'](_0x1424cc);}else{if(_0x1005a2[_0x8df396(0xdc)]('*')||_0x1005a2[_0x8df396(0xdc)]('?')){let _0x4ca7cb=new RegExp('^'+_0x1005a2[_0x8df396(0xe5)](/\\\\./g,String[_0x8df396(0x9d)](0x5c)+'.')[_0x8df396(0xe5)](/\\\\*/g,'.*')['replace'](/\\\\?/g,'.')+String['fromCharCode'](0x24));return _0x47b79e=>_0x4ca7cb[_0x8df396(0xef)](_0x47b79e);}else return _0x399e60=>_0x399e60===_0x1005a2;}}let _0x1b7b20=_0x271bd4[_0x104ef5(0xd5)](_0x3dc67e);return _0x483c01['_consoleNinjaAllowedToStart']=_0x1a7fe6||!_0x271bd4,!_0x483c01[_0x104ef5(0xac)]&&((_0x214d11=_0x483c01[_0x104ef5(0x170)])==null?void 0x0:_0x214d11[_0x104ef5(0xa2)])&&(_0x483c01[_0x104ef5(0xac)]=_0x1b7b20[_0x104ef5(0x8e)](_0x39e689=>_0x39e689(_0x483c01[_0x104ef5(0x170)][_0x104ef5(0xa2)]))),_0x4eefc2&&!_0x483c01[_0x104ef5(0xac)]&&!((_0xcc5822=_0x483c01[_0x104ef5(0x170)])!=null&&_0xcc5822[_0x104ef5(0xa2)])&&(_0x483c01[_0x104ef5(0xac)]=!0x0),_0x483c01[_0x104ef5(0xac)];}function J(_0x54988f,_0x4ca48c,_0x1c6321,_0x242b6d,_0x2ab5e9,_0x5c9ae8){var _0x362eb9=_0x3bb860;_0x54988f=_0x54988f,_0x4ca48c=_0x4ca48c,_0x1c6321=_0x1c6321,_0x242b6d=_0x242b6d,_0x2ab5e9=_0x2ab5e9,_0x2ab5e9=_0x2ab5e9||{},_0x2ab5e9[_0x362eb9(0xe2)]=_0x2ab5e9['defaultLimits']||{},_0x2ab5e9['reducedLimits']=_0x2ab5e9[_0x362eb9(0x94)]||{},_0x2ab5e9[_0x362eb9(0xf0)]=_0x2ab5e9[_0x362eb9(0xf0)]||{},_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)]=_0x2ab5e9['reducePolicy'][_0x362eb9(0x157)]||{},_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)]=_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)]||{};let _0x2575e9={'perLogpoint':{'reduceOnCount':_0x2ab5e9['reducePolicy']['perLogpoint'][_0x362eb9(0x97)]||0x32,'reduceOnAccumulatedProcessingTimeMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)][_0x362eb9(0x91)]||0x64,'resetWhenQuietMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)][_0x362eb9(0x117)]||0x1f4,'resetOnProcessingTimeAverageMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)]['resetOnProcessingTimeAverageMs']||0x64},'global':{'reduceOnCount':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x97)]||0x3e8,'reduceOnAccumulatedProcessingTimeMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x91)]||0x12c,'resetWhenQuietMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x117)]||0x32,'resetOnProcessingTimeAverageMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x7a)]||0x64}},_0x3068d4=b(_0x54988f),_0x2020f4=_0x3068d4[_0x362eb9(0x140)],_0x33c06c=_0x3068d4['timeStamp'];function _0x1553d1(){var _0x2f7fd2=_0x362eb9;this[_0x2f7fd2(0xa7)]=/^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[_$a-zA-Z\\\\xA0-\\\\uFFFF][_$a-zA-Z0-9\\\\xA0-\\\\uFFFF]*$/,this[_0x2f7fd2(0x10d)]=/^(0|[1-9][0-9]*)$/,this[_0x2f7fd2(0x127)]=/'([^\\\\\\\\']|\\\\\\\\')*'/,this[_0x2f7fd2(0x120)]=_0x54988f[_0x2f7fd2(0xdd)],this[_0x2f7fd2(0x7b)]=_0x54988f[_0x2f7fd2(0x86)],this[_0x2f7fd2(0xfe)]=Object[_0x2f7fd2(0xe3)],this[_0x2f7fd2(0x101)]=Object[_0x2f7fd2(0xa5)],this[_0x2f7fd2(0x12c)]=_0x54988f[_0x2f7fd2(0x144)],this[_0x2f7fd2(0x8a)]=RegExp[_0x2f7fd2(0x166)][_0x2f7fd2(0x15e)],this[_0x2f7fd2(0x110)]=Date[_0x2f7fd2(0x166)]['toString'];}_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x13d)]=function(_0x4647d7,_0x2a215a,_0x22ed3f,_0x50c2de){var _0x2e0ba3=_0x362eb9,_0x5d74ca=this,_0x51c281=_0x22ed3f[_0x2e0ba3(0x145)];function _0x5cbb2c(_0x2151b5,_0x31b5a1,_0x57d6c8){var _0x303826=_0x2e0ba3;_0x31b5a1[_0x303826(0x160)]='unknown',_0x31b5a1[_0x303826(0xb4)]=_0x2151b5[_0x303826(0x146)],_0x927f28=_0x57d6c8[_0x303826(0x153)]['current'],_0x57d6c8[_0x303826(0x153)]['current']=_0x31b5a1,_0x5d74ca[_0x303826(0xeb)](_0x31b5a1,_0x57d6c8);}let _0x579911,_0xddd6e9,_0x22db18=_0x54988f[_0x2e0ba3(0x15f)];_0x54988f[_0x2e0ba3(0x15f)]=!0x0,_0x54988f[_0x2e0ba3(0xbe)]&&(_0x579911=_0x54988f[_0x2e0ba3(0xbe)]['error'],_0xddd6e9=_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xf7)],_0x579911&&(_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xb4)]=function(){}),_0xddd6e9&&(_0x54988f['console']['warn']=function(){}));try{try{_0x22ed3f['level']++,_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f[_0x2e0ba3(0x154)][_0x2e0ba3(0x135)](_0x2a215a);var _0x423735,_0x575ffc,_0x56086b,_0x237f39,_0x25296e=[],_0x5e2d4e=[],_0x16b7cc,_0x70a2f6=this[_0x2e0ba3(0x173)](_0x2a215a),_0x283f38=_0x70a2f6===_0x2e0ba3(0x133),_0x5b503b=!0x1,_0x95078c=_0x70a2f6===_0x2e0ba3(0xd9),_0x36b80f=this[_0x2e0ba3(0x13b)](_0x70a2f6),_0x4f4889=this[_0x2e0ba3(0x13e)](_0x70a2f6),_0xc8b9f=_0x36b80f||_0x4f4889,_0x2720e2={},_0x40d2dc=0x0,_0x460b57=!0x1,_0x927f28,_0x2173c4=/^(([1-9]{1}[0-9]*)|0)$/;if(_0x22ed3f[_0x2e0ba3(0xed)]){if(_0x283f38){if(_0x575ffc=_0x2a215a[_0x2e0ba3(0x75)],_0x575ffc>_0x22ed3f[_0x2e0ba3(0x10b)]){for(_0x56086b=0x0,_0x237f39=_0x22ed3f['elements'],_0x423735=_0x56086b;_0x423735<_0x237f39;_0x423735++)_0x5e2d4e[_0x2e0ba3(0x135)](_0x5d74ca[_0x2e0ba3(0x139)](_0x25296e,_0x2a215a,_0x70a2f6,_0x423735,_0x22ed3f));_0x4647d7[_0x2e0ba3(0x11c)]=!0x0;}else{for(_0x56086b=0x0,_0x237f39=_0x575ffc,_0x423735=_0x56086b;_0x423735<_0x237f39;_0x423735++)_0x5e2d4e['push'](_0x5d74ca['_addProperty'](_0x25296e,_0x2a215a,_0x70a2f6,_0x423735,_0x22ed3f));}_0x22ed3f[_0x2e0ba3(0x150)]+=_0x5e2d4e['length'];}if(!(_0x70a2f6==='null'||_0x70a2f6===_0x2e0ba3(0xdd))&&!_0x36b80f&&_0x70a2f6!==_0x2e0ba3(0x132)&&_0x70a2f6!==_0x2e0ba3(0x7c)&&_0x70a2f6!==_0x2e0ba3(0xc3)){var _0x25fc93=_0x50c2de[_0x2e0ba3(0x14f)]||_0x22ed3f[_0x2e0ba3(0x14f)];if(this['_isSet'](_0x2a215a)?(_0x423735=0x0,_0x2a215a[_0x2e0ba3(0x11a)](function(_0x2dea34){var _0x320e32=_0x2e0ba3;if(_0x40d2dc++,_0x22ed3f[_0x320e32(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;return;}if(!_0x22ed3f[_0x320e32(0x81)]&&_0x22ed3f['autoExpand']&&_0x22ed3f['autoExpandPropertyCount']>_0x22ed3f[_0x320e32(0xb8)]){_0x460b57=!0x0;return;}_0x5e2d4e[_0x320e32(0x135)](_0x5d74ca['_addProperty'](_0x25296e,_0x2a215a,_0x320e32(0x14c),_0x423735++,_0x22ed3f,function(_0x599ec3){return function(){return _0x599ec3;};}(_0x2dea34)));})):this['_isMap'](_0x2a215a)&&_0x2a215a[_0x2e0ba3(0x11a)](function(_0x298807,_0x2e9c94){var _0x22e685=_0x2e0ba3;if(_0x40d2dc++,_0x22ed3f[_0x22e685(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;return;}if(!_0x22ed3f[_0x22e685(0x81)]&&_0x22ed3f[_0x22e685(0x145)]&&_0x22ed3f[_0x22e685(0x150)]>_0x22ed3f['autoExpandLimit']){_0x460b57=!0x0;return;}var _0x4472d8=_0x2e9c94['toString']();_0x4472d8[_0x22e685(0x75)]>0x64&&(_0x4472d8=_0x4472d8['slice'](0x0,0x64)+_0x22e685(0x87)),_0x5e2d4e[_0x22e685(0x135)](_0x5d74ca[_0x22e685(0x139)](_0x25296e,_0x2a215a,'Map',_0x4472d8,_0x22ed3f,function(_0x376da9){return function(){return _0x376da9;};}(_0x298807)));}),!_0x5b503b){try{for(_0x16b7cc in _0x2a215a)if(!(_0x283f38&&_0x2173c4[_0x2e0ba3(0xef)](_0x16b7cc))&&!this[_0x2e0ba3(0xdf)](_0x2a215a,_0x16b7cc,_0x22ed3f)){if(_0x40d2dc++,_0x22ed3f[_0x2e0ba3(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;break;}if(!_0x22ed3f[_0x2e0ba3(0x81)]&&_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f[_0x2e0ba3(0x150)]>_0x22ed3f[_0x2e0ba3(0xb8)]){_0x460b57=!0x0;break;}_0x5e2d4e[_0x2e0ba3(0x135)](_0x5d74ca[_0x2e0ba3(0x13f)](_0x25296e,_0x2720e2,_0x2a215a,_0x70a2f6,_0x16b7cc,_0x22ed3f));}}catch{}if(_0x2720e2[_0x2e0ba3(0x147)]=!0x0,_0x95078c&&(_0x2720e2[_0x2e0ba3(0xd7)]=!0x0),!_0x460b57){var _0x225309=[][_0x2e0ba3(0xbd)](this['_getOwnPropertyNames'](_0x2a215a))['concat'](this[_0x2e0ba3(0x12a)](_0x2a215a));for(_0x423735=0x0,_0x575ffc=_0x225309[_0x2e0ba3(0x75)];_0x423735<_0x575ffc;_0x423735++)if(_0x16b7cc=_0x225309[_0x423735],!(_0x283f38&&_0x2173c4[_0x2e0ba3(0xef)](_0x16b7cc[_0x2e0ba3(0x15e)]()))&&!this[_0x2e0ba3(0xdf)](_0x2a215a,_0x16b7cc,_0x22ed3f)&&!_0x2720e2[typeof _0x16b7cc!=_0x2e0ba3(0x7e)?_0x2e0ba3(0x8f)+_0x16b7cc[_0x2e0ba3(0x15e)]():_0x16b7cc]){if(_0x40d2dc++,_0x22ed3f[_0x2e0ba3(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;break;}if(!_0x22ed3f['isExpressionToEvaluate']&&_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f['autoExpandPropertyCount']>_0x22ed3f['autoExpandLimit']){_0x460b57=!0x0;break;}_0x5e2d4e[_0x2e0ba3(0x135)](_0x5d74ca['_addObjectProperty'](_0x25296e,_0x2720e2,_0x2a215a,_0x70a2f6,_0x16b7cc,_0x22ed3f));}}}}}if(_0x4647d7[_0x2e0ba3(0x160)]=_0x70a2f6,_0xc8b9f?(_0x4647d7['value']=_0x2a215a[_0x2e0ba3(0x112)](),this['_capIfString'](_0x70a2f6,_0x4647d7,_0x22ed3f,_0x50c2de)):_0x70a2f6===_0x2e0ba3(0x163)?_0x4647d7['value']=this[_0x2e0ba3(0x110)][_0x2e0ba3(0xa1)](_0x2a215a):_0x70a2f6===_0x2e0ba3(0xc3)?_0x4647d7[_0x2e0ba3(0x164)]=_0x2a215a[_0x2e0ba3(0x15e)]():_0x70a2f6===_0x2e0ba3(0xb7)?_0x4647d7[_0x2e0ba3(0x164)]=this[_0x2e0ba3(0x8a)][_0x2e0ba3(0xa1)](_0x2a215a):_0x70a2f6==='symbol'&&this[_0x2e0ba3(0x12c)]?_0x4647d7[_0x2e0ba3(0x164)]=this[_0x2e0ba3(0x12c)][_0x2e0ba3(0x166)][_0x2e0ba3(0x15e)]['call'](_0x2a215a):!_0x22ed3f[_0x2e0ba3(0xed)]&&!(_0x70a2f6==='null'||_0x70a2f6===_0x2e0ba3(0xdd))&&(delete _0x4647d7[_0x2e0ba3(0x164)],_0x4647d7[_0x2e0ba3(0xc8)]=!0x0),_0x460b57&&(_0x4647d7[_0x2e0ba3(0x169)]=!0x0),_0x927f28=_0x22ed3f[_0x2e0ba3(0x153)][_0x2e0ba3(0x16f)],_0x22ed3f[_0x2e0ba3(0x153)][_0x2e0ba3(0x16f)]=_0x4647d7,this[_0x2e0ba3(0xeb)](_0x4647d7,_0x22ed3f),_0x5e2d4e['length']){for(_0x423735=0x0,_0x575ffc=_0x5e2d4e['length'];_0x423735<_0x575ffc;_0x423735++)_0x5e2d4e[_0x423735](_0x423735);}_0x25296e['length']&&(_0x4647d7[_0x2e0ba3(0x14f)]=_0x25296e);}catch(_0x3cea83){_0x5cbb2c(_0x3cea83,_0x4647d7,_0x22ed3f);}this[_0x2e0ba3(0x96)](_0x2a215a,_0x4647d7),this[_0x2e0ba3(0xca)](_0x4647d7,_0x22ed3f),_0x22ed3f[_0x2e0ba3(0x153)][_0x2e0ba3(0x16f)]=_0x927f28,_0x22ed3f['level']--,_0x22ed3f[_0x2e0ba3(0x145)]=_0x51c281,_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f[_0x2e0ba3(0x154)][_0x2e0ba3(0xf6)]();}finally{_0x579911&&(_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xb4)]=_0x579911),_0xddd6e9&&(_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xf7)]=_0xddd6e9),_0x54988f[_0x2e0ba3(0x15f)]=_0x22db18;}return _0x4647d7;},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x12a)]=function(_0x542adf){var _0x50d3db=_0x362eb9;return Object[_0x50d3db(0xb1)]?Object[_0x50d3db(0xb1)](_0x542adf):[];},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x108)]=function(_0x40db41){var _0x2ca29a=_0x362eb9;return!!(_0x40db41&&_0x54988f[_0x2ca29a(0x14c)]&&this[_0x2ca29a(0x13a)](_0x40db41)===_0x2ca29a(0xf4)&&_0x40db41[_0x2ca29a(0x11a)]);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xdf)]=function(_0x2efd92,_0x209eca,_0x50cec3){var _0x34627=_0x362eb9;if(!_0x50cec3['resolveGetters']){let _0xd9569c=this[_0x34627(0xfe)](_0x2efd92,_0x209eca);if(_0xd9569c&&_0xd9569c[_0x34627(0x168)])return!0x0;}return _0x50cec3[_0x34627(0x6b)]?typeof _0x2efd92[_0x209eca]=='function':!0x1;},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x173)]=function(_0x3a6e45){var _0x3a6d86=_0x362eb9,_0x1ef452='';return _0x1ef452=typeof _0x3a6e45,_0x1ef452===_0x3a6d86(0x107)?this[_0x3a6d86(0x13a)](_0x3a6e45)===_0x3a6d86(0x8c)?_0x1ef452=_0x3a6d86(0x133):this[_0x3a6d86(0x13a)](_0x3a6e45)===_0x3a6d86(0x109)?_0x1ef452=_0x3a6d86(0x163):this[_0x3a6d86(0x13a)](_0x3a6e45)===_0x3a6d86(0xe1)?_0x1ef452=_0x3a6d86(0xc3):_0x3a6e45===null?_0x1ef452='null':_0x3a6e45[_0x3a6d86(0xf9)]&&(_0x1ef452=_0x3a6e45[_0x3a6d86(0xf9)][_0x3a6d86(0xae)]||_0x1ef452):_0x1ef452===_0x3a6d86(0xdd)&&this[_0x3a6d86(0x7b)]&&_0x3a6e45 instanceof this[_0x3a6d86(0x7b)]&&(_0x1ef452='HTMLAllCollection'),_0x1ef452;},_0x1553d1['prototype'][_0x362eb9(0x13a)]=function(_0xbe7254){var _0x3f21ad=_0x362eb9;return Object['prototype'][_0x3f21ad(0x15e)][_0x3f21ad(0xa1)](_0xbe7254);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x13b)]=function(_0x2584e2){var _0x4947d9=_0x362eb9;return _0x2584e2===_0x4947d9(0x141)||_0x2584e2===_0x4947d9(0xcd)||_0x2584e2==='number';},_0x1553d1['prototype'][_0x362eb9(0x13e)]=function(_0xa2a455){var _0x33b765=_0x362eb9;return _0xa2a455==='Boolean'||_0xa2a455==='String'||_0xa2a455===_0x33b765(0x118);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x139)]=function(_0xb78ea3,_0x5c4e5e,_0x37ea9c,_0x5e9c85,_0x2788cd,_0x56a4d2){var _0x4ccc58=this;return function(_0x2e1f3f){var _0x21a4ef=_0x1415,_0x47a755=_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0x16f)],_0x348ee2=_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0xa6)],_0x4f95fd=_0x2788cd['node'][_0x21a4ef(0x100)];_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0x100)]=_0x47a755,_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0xa6)]=typeof _0x5e9c85==_0x21a4ef(0xb3)?_0x5e9c85:_0x2e1f3f,_0xb78ea3[_0x21a4ef(0x135)](_0x4ccc58[_0x21a4ef(0xf8)](_0x5c4e5e,_0x37ea9c,_0x5e9c85,_0x2788cd,_0x56a4d2)),_0x2788cd['node']['parent']=_0x4f95fd,_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0xa6)]=_0x348ee2;};},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x13f)]=function(_0x4770b7,_0x19ed8d,_0x5a01f4,_0x2f32a4,_0x2539b5,_0x35b333,_0xcf15f1){var _0x413486=_0x362eb9,_0x1b0ab1=this;return _0x19ed8d[typeof _0x2539b5!='symbol'?_0x413486(0x8f)+_0x2539b5[_0x413486(0x15e)]():_0x2539b5]=!0x0,function(_0xb8c9af){var _0x316ac0=_0x413486,_0x28cf78=_0x35b333['node'][_0x316ac0(0x16f)],_0x135252=_0x35b333['node']['index'],_0x51969c=_0x35b333[_0x316ac0(0x153)][_0x316ac0(0x100)];_0x35b333[_0x316ac0(0x153)]['parent']=_0x28cf78,_0x35b333[_0x316ac0(0x153)]['index']=_0xb8c9af,_0x4770b7['push'](_0x1b0ab1[_0x316ac0(0xf8)](_0x5a01f4,_0x2f32a4,_0x2539b5,_0x35b333,_0xcf15f1)),_0x35b333[_0x316ac0(0x153)][_0x316ac0(0x100)]=_0x51969c,_0x35b333[_0x316ac0(0x153)][_0x316ac0(0xa6)]=_0x135252;};},_0x1553d1['prototype'][_0x362eb9(0xf8)]=function(_0x56f923,_0xe02046,_0x35e01a,_0x31febe,_0x4c60e0){var _0x5dc645=_0x362eb9,_0x42f7fc=this;_0x4c60e0||(_0x4c60e0=function(_0x579f08,_0x5371a1){return _0x579f08[_0x5371a1];});var _0x29473c=_0x35e01a['toString'](),_0x2cbdf1=_0x31febe[_0x5dc645(0xea)]||{},_0x4c9159=_0x31febe['depth'],_0x120fec=_0x31febe['isExpressionToEvaluate'];try{var _0xb650b=this['_isMap'](_0x56f923),_0x2ab92b=_0x29473c;_0xb650b&&_0x2ab92b[0x0]==='\\\\x27'&&(_0x2ab92b=_0x2ab92b['substr'](0x1,_0x2ab92b[_0x5dc645(0x75)]-0x2));var _0x47228a=_0x31febe[_0x5dc645(0xea)]=_0x2cbdf1[_0x5dc645(0x8f)+_0x2ab92b];_0x47228a&&(_0x31febe[_0x5dc645(0xed)]=_0x31febe['depth']+0x1),_0x31febe[_0x5dc645(0x81)]=!!_0x47228a;var _0x23862f=typeof _0x35e01a==_0x5dc645(0x7e),_0x3cd986={'name':_0x23862f||_0xb650b?_0x29473c:this[_0x5dc645(0x122)](_0x29473c)};if(_0x23862f&&(_0x3cd986[_0x5dc645(0x7e)]=!0x0),!(_0xe02046===_0x5dc645(0x133)||_0xe02046===_0x5dc645(0x155))){var _0x53d604=this[_0x5dc645(0xfe)](_0x56f923,_0x35e01a);if(_0x53d604&&(_0x53d604['set']&&(_0x3cd986[_0x5dc645(0xbb)]=!0x0),_0x53d604[_0x5dc645(0x168)]&&!_0x47228a&&!_0x31febe['resolveGetters']))return _0x3cd986[_0x5dc645(0x152)]=!0x0,this[_0x5dc645(0x136)](_0x3cd986,_0x31febe),_0x3cd986;}var _0x299969;try{_0x299969=_0x4c60e0(_0x56f923,_0x35e01a);}catch(_0x145369){return _0x3cd986={'name':_0x29473c,'type':_0x5dc645(0x92),'error':_0x145369[_0x5dc645(0x146)]},this[_0x5dc645(0x136)](_0x3cd986,_0x31febe),_0x3cd986;}var _0x20e649=this[_0x5dc645(0x173)](_0x299969),_0x367e10=this['_isPrimitiveType'](_0x20e649);if(_0x3cd986[_0x5dc645(0x160)]=_0x20e649,_0x367e10)this[_0x5dc645(0x136)](_0x3cd986,_0x31febe,_0x299969,function(){var _0x2dc954=_0x5dc645;_0x3cd986[_0x2dc954(0x164)]=_0x299969[_0x2dc954(0x112)](),!_0x47228a&&_0x42f7fc[_0x2dc954(0x114)](_0x20e649,_0x3cd986,_0x31febe,{});});else{var _0x5dfaf4=_0x31febe[_0x5dc645(0x145)]&&_0x31febe[_0x5dc645(0xfb)]<_0x31febe[_0x5dc645(0xe9)]&&_0x31febe[_0x5dc645(0x154)][_0x5dc645(0x80)](_0x299969)<0x0&&_0x20e649!=='function'&&_0x31febe[_0x5dc645(0x150)]<_0x31febe['autoExpandLimit'];_0x5dfaf4||_0x31febe[_0x5dc645(0xfb)]<_0x4c9159||_0x47228a?this[_0x5dc645(0x13d)](_0x3cd986,_0x299969,_0x31febe,_0x47228a||{}):this[_0x5dc645(0x136)](_0x3cd986,_0x31febe,_0x299969,function(){var _0x223d28=_0x5dc645;_0x20e649==='null'||_0x20e649==='undefined'||(delete _0x3cd986[_0x223d28(0x164)],_0x3cd986[_0x223d28(0xc8)]=!0x0);});}return _0x3cd986;}finally{_0x31febe[_0x5dc645(0xea)]=_0x2cbdf1,_0x31febe[_0x5dc645(0xed)]=_0x4c9159,_0x31febe[_0x5dc645(0x81)]=_0x120fec;}},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x114)]=function(_0x268238,_0x5c408f,_0x1bbfe8,_0x14e025){var _0xb291a7=_0x362eb9,_0x378a39=_0x14e025['strLength']||_0x1bbfe8[_0xb291a7(0x13c)];if((_0x268238==='string'||_0x268238===_0xb291a7(0x132))&&_0x5c408f[_0xb291a7(0x164)]){let _0x11ccc2=_0x5c408f['value']['length'];_0x1bbfe8[_0xb291a7(0x90)]+=_0x11ccc2,_0x1bbfe8[_0xb291a7(0x90)]>_0x1bbfe8['totalStrLength']?(_0x5c408f[_0xb291a7(0xc8)]='',delete _0x5c408f[_0xb291a7(0x164)]):_0x11ccc2>_0x378a39&&(_0x5c408f['capped']=_0x5c408f['value'][_0xb291a7(0xd4)](0x0,_0x378a39),delete _0x5c408f['value']);}},_0x1553d1[_0x362eb9(0x166)]['_isMap']=function(_0x2c418a){var _0x571864=_0x362eb9;return!!(_0x2c418a&&_0x54988f[_0x571864(0x12f)]&&this['_objectToString'](_0x2c418a)===_0x571864(0xe7)&&_0x2c418a['forEach']);},_0x1553d1['prototype'][_0x362eb9(0x122)]=function(_0x259913){var _0x4fb046=_0x362eb9;if(_0x259913['match'](/^\\\\d+$/))return _0x259913;var _0x25f80b;try{_0x25f80b=JSON[_0x4fb046(0xb6)](''+_0x259913);}catch{_0x25f80b='\\\\x22'+this[_0x4fb046(0x13a)](_0x259913)+'\\\\x22';}return _0x25f80b['match'](/^\\\"([a-zA-Z_][a-zA-Z_0-9]*)\\\"$/)?_0x25f80b=_0x25f80b[_0x4fb046(0xd4)](0x1,_0x25f80b['length']-0x2):_0x25f80b=_0x25f80b[_0x4fb046(0xe5)](/'/g,'\\\\x5c\\\\x27')['replace'](/\\\\\\\\\\\"/g,'\\\\x22')[_0x4fb046(0xe5)](/(^\\\"|\\\"$)/g,'\\\\x27'),_0x25f80b;},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x136)]=function(_0x51dac5,_0x17415c,_0x5e7cf5,_0x4b1e80){var _0x394081=_0x362eb9;this[_0x394081(0xeb)](_0x51dac5,_0x17415c),_0x4b1e80&&_0x4b1e80(),this[_0x394081(0x96)](_0x5e7cf5,_0x51dac5),this[_0x394081(0xca)](_0x51dac5,_0x17415c);},_0x1553d1['prototype'][_0x362eb9(0xeb)]=function(_0x152418,_0x11633b){var _0x1e700d=_0x362eb9;this['_setNodeId'](_0x152418,_0x11633b),this['_setNodeQueryPath'](_0x152418,_0x11633b),this[_0x1e700d(0xd8)](_0x152418,_0x11633b),this[_0x1e700d(0xff)](_0x152418,_0x11633b);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x12d)]=function(_0x2b1e43,_0x57edd2){},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x103)]=function(_0x539da7,_0x19786b){},_0x1553d1['prototype']['_setNodeLabel']=function(_0x5e0d54,_0x222367){},_0x1553d1['prototype'][_0x362eb9(0x14b)]=function(_0x5eebd0){var _0x47a672=_0x362eb9;return _0x5eebd0===this[_0x47a672(0x120)];},_0x1553d1['prototype']['_treeNodePropertiesAfterFullValue']=function(_0x488337,_0xfb8c5d){var _0x249fef=_0x362eb9;this['_setNodeLabel'](_0x488337,_0xfb8c5d),this[_0x249fef(0x16c)](_0x488337),_0xfb8c5d[_0x249fef(0x14d)]&&this[_0x249fef(0x12b)](_0x488337),this[_0x249fef(0x104)](_0x488337,_0xfb8c5d),this[_0x249fef(0xc1)](_0x488337,_0xfb8c5d),this[_0x249fef(0x134)](_0x488337);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x96)]=function(_0x50775a,_0x3a2dc1){var _0x18e664=_0x362eb9;try{_0x50775a&&typeof _0x50775a[_0x18e664(0x75)]==_0x18e664(0xb3)&&(_0x3a2dc1[_0x18e664(0x75)]=_0x50775a['length']);}catch{}if(_0x3a2dc1[_0x18e664(0x160)]===_0x18e664(0xb3)||_0x3a2dc1[_0x18e664(0x160)]===_0x18e664(0x118)){if(isNaN(_0x3a2dc1[_0x18e664(0x164)]))_0x3a2dc1[_0x18e664(0x128)]=!0x0,delete _0x3a2dc1[_0x18e664(0x164)];else switch(_0x3a2dc1['value']){case Number[_0x18e664(0x106)]:_0x3a2dc1[_0x18e664(0xa8)]=!0x0,delete _0x3a2dc1[_0x18e664(0x164)];break;case Number[_0x18e664(0x16d)]:_0x3a2dc1[_0x18e664(0x10a)]=!0x0,delete _0x3a2dc1[_0x18e664(0x164)];break;case 0x0:this[_0x18e664(0xf3)](_0x3a2dc1[_0x18e664(0x164)])&&(_0x3a2dc1[_0x18e664(0x171)]=!0x0);break;}}else _0x3a2dc1[_0x18e664(0x160)]===_0x18e664(0xd9)&&typeof _0x50775a['name']==_0x18e664(0xcd)&&_0x50775a[_0x18e664(0xae)]&&_0x3a2dc1['name']&&_0x50775a['name']!==_0x3a2dc1[_0x18e664(0xae)]&&(_0x3a2dc1[_0x18e664(0x129)]=_0x50775a[_0x18e664(0xae)]);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xf3)]=function(_0x5d4a64){var _0x124dbd=_0x362eb9;return 0x1/_0x5d4a64===Number[_0x124dbd(0x16d)];},_0x1553d1['prototype'][_0x362eb9(0x12b)]=function(_0x5effc0){var _0xcb9369=_0x362eb9;!_0x5effc0[_0xcb9369(0x14f)]||!_0x5effc0[_0xcb9369(0x14f)][_0xcb9369(0x75)]||_0x5effc0[_0xcb9369(0x160)]===_0xcb9369(0x133)||_0x5effc0[_0xcb9369(0x160)]===_0xcb9369(0x12f)||_0x5effc0[_0xcb9369(0x160)]===_0xcb9369(0x14c)||_0x5effc0[_0xcb9369(0x14f)][_0xcb9369(0xda)](function(_0x348183,_0x3a9dfe){var _0x2dc7c8=_0xcb9369,_0x4182bd=_0x348183[_0x2dc7c8(0xae)]['toLowerCase'](),_0x4230c7=_0x3a9dfe[_0x2dc7c8(0xae)][_0x2dc7c8(0x130)]();return _0x4182bd<_0x4230c7?-0x1:_0x4182bd>_0x4230c7?0x1:0x0;});},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x104)]=function(_0x375221,_0x361945){var _0x131a55=_0x362eb9;if(!(_0x361945[_0x131a55(0x6b)]||!_0x375221[_0x131a55(0x14f)]||!_0x375221[_0x131a55(0x14f)][_0x131a55(0x75)])){for(var _0x57e4e3=[],_0x4d073a=[],_0x3d548c=0x0,_0x1a0472=_0x375221['props']['length'];_0x3d548c<_0x1a0472;_0x3d548c++){var _0x392721=_0x375221[_0x131a55(0x14f)][_0x3d548c];_0x392721[_0x131a55(0x160)]==='function'?_0x57e4e3[_0x131a55(0x135)](_0x392721):_0x4d073a[_0x131a55(0x135)](_0x392721);}if(!(!_0x4d073a['length']||_0x57e4e3[_0x131a55(0x75)]<=0x1)){_0x375221[_0x131a55(0x14f)]=_0x4d073a;var _0x300a86={'functionsNode':!0x0,'props':_0x57e4e3};this['_setNodeId'](_0x300a86,_0x361945),this[_0x131a55(0x71)](_0x300a86,_0x361945),this[_0x131a55(0x16c)](_0x300a86),this[_0x131a55(0xff)](_0x300a86,_0x361945),_0x300a86['id']+='\\\\x20f',_0x375221['props']['unshift'](_0x300a86);}}},_0x1553d1['prototype'][_0x362eb9(0xc1)]=function(_0xdd78d6,_0x5ea79f){},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x16c)]=function(_0x2ea115){},_0x1553d1['prototype'][_0x362eb9(0x174)]=function(_0x59d77a){var _0x5648e8=_0x362eb9;return Array[_0x5648e8(0x79)](_0x59d77a)||typeof _0x59d77a=='object'&&this['_objectToString'](_0x59d77a)==='[object\\\\x20Array]';},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xff)]=function(_0x8d330,_0x234a4d){},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x134)]=function(_0x5c22fa){var _0x64bada=_0x362eb9;delete _0x5c22fa[_0x64bada(0xb0)],delete _0x5c22fa[_0x64bada(0x16a)],delete _0x5c22fa[_0x64bada(0xf2)];},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xd8)]=function(_0x564a04,_0xf08319){};let _0x14c23a=new _0x1553d1(),_0x39a863={'props':_0x2ab5e9[_0x362eb9(0xe2)]['props']||0x64,'elements':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0x10b)]||0x64,'strLength':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0x13c)]||0x400*0x32,'totalStrLength':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0x9a)]||0x400*0x32,'autoExpandLimit':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0xb8)]||0x1388,'autoExpandMaxDepth':_0x2ab5e9['defaultLimits']['autoExpandMaxDepth']||0xa},_0x5de84c={'props':_0x2ab5e9[_0x362eb9(0x94)][_0x362eb9(0x14f)]||0x5,'elements':_0x2ab5e9['reducedLimits'][_0x362eb9(0x10b)]||0x5,'strLength':_0x2ab5e9[_0x362eb9(0x94)][_0x362eb9(0x13c)]||0x100,'totalStrLength':_0x2ab5e9['reducedLimits']['totalStrLength']||0x100*0x3,'autoExpandLimit':_0x2ab5e9[_0x362eb9(0x94)][_0x362eb9(0xb8)]||0x1e,'autoExpandMaxDepth':_0x2ab5e9[_0x362eb9(0x94)]['autoExpandMaxDepth']||0x2};if(_0x5c9ae8){let _0x1b7536=_0x14c23a[_0x362eb9(0x13d)]['bind'](_0x14c23a);_0x14c23a[_0x362eb9(0x13d)]=function(_0x2cec0e,_0xbee19b,_0x5aae30,_0x1cbcb1){return _0x1b7536(_0x2cec0e,_0x5c9ae8(_0xbee19b),_0x5aae30,_0x1cbcb1);};}function _0x4c7fc5(_0x346455,_0x2b6a2f,_0x46c6e1,_0x1cd4b7,_0xafc0be,_0x11c2b6){var _0x507acf=_0x362eb9;let _0x4e3b4f,_0x40b10e;try{_0x40b10e=_0x33c06c(),_0x4e3b4f=_0x1c6321[_0x2b6a2f],!_0x4e3b4f||_0x40b10e-_0x4e3b4f['ts']>_0x2575e9[_0x507acf(0x157)]['resetWhenQuietMs']&&_0x4e3b4f[_0x507acf(0x7f)]&&_0x4e3b4f[_0x507acf(0x105)]/_0x4e3b4f[_0x507acf(0x7f)]<_0x2575e9[_0x507acf(0x157)]['resetOnProcessingTimeAverageMs']?(_0x1c6321[_0x2b6a2f]=_0x4e3b4f={'count':0x0,'time':0x0,'ts':_0x40b10e},_0x1c6321[_0x507acf(0x93)]={}):_0x40b10e-_0x1c6321[_0x507acf(0x93)]['ts']>_0x2575e9[_0x507acf(0x102)]['resetWhenQuietMs']&&_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]&&_0x1c6321[_0x507acf(0x93)][_0x507acf(0x105)]/_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]<_0x2575e9['global'][_0x507acf(0x7a)]&&(_0x1c6321[_0x507acf(0x93)]={});let _0x4786e5=[],_0x1867c7=_0x4e3b4f[_0x507acf(0x148)]||_0x1c6321['hits'][_0x507acf(0x148)]?_0x5de84c:_0x39a863,_0x42979e=_0x35724c=>{var _0x36e35e=_0x507acf;let _0x3cf0b1={};return _0x3cf0b1[_0x36e35e(0x14f)]=_0x35724c['props'],_0x3cf0b1['elements']=_0x35724c[_0x36e35e(0x10b)],_0x3cf0b1['strLength']=_0x35724c['strLength'],_0x3cf0b1[_0x36e35e(0x9a)]=_0x35724c[_0x36e35e(0x9a)],_0x3cf0b1[_0x36e35e(0xb8)]=_0x35724c[_0x36e35e(0xb8)],_0x3cf0b1[_0x36e35e(0xe9)]=_0x35724c[_0x36e35e(0xe9)],_0x3cf0b1[_0x36e35e(0x14d)]=!0x1,_0x3cf0b1[_0x36e35e(0x6b)]=!_0x4ca48c,_0x3cf0b1[_0x36e35e(0xed)]=0x1,_0x3cf0b1[_0x36e35e(0xfb)]=0x0,_0x3cf0b1[_0x36e35e(0xc5)]=_0x36e35e(0x124),_0x3cf0b1[_0x36e35e(0xec)]='root_exp',_0x3cf0b1[_0x36e35e(0x145)]=!0x0,_0x3cf0b1[_0x36e35e(0x154)]=[],_0x3cf0b1['autoExpandPropertyCount']=0x0,_0x3cf0b1[_0x36e35e(0x116)]=_0x2ab5e9[_0x36e35e(0x116)],_0x3cf0b1[_0x36e35e(0x90)]=0x0,_0x3cf0b1[_0x36e35e(0x153)]={'current':void 0x0,'parent':void 0x0,'index':0x0},_0x3cf0b1;};for(var _0xcf31ee=0x0;_0xcf31ee<_0xafc0be[_0x507acf(0x75)];_0xcf31ee++)_0x4786e5[_0x507acf(0x135)](_0x14c23a['serialize']({'timeNode':_0x346455===_0x507acf(0x105)||void 0x0},_0xafc0be[_0xcf31ee],_0x42979e(_0x1867c7),{}));if(_0x346455===_0x507acf(0x142)||_0x346455===_0x507acf(0xb4)){let _0x29266d=Error[_0x507acf(0x9f)];try{Error[_0x507acf(0x9f)]=0x1/0x0,_0x4786e5['push'](_0x14c23a[_0x507acf(0x13d)]({'stackNode':!0x0},new Error()[_0x507acf(0x77)],_0x42979e(_0x1867c7),{'strLength':0x1/0x0}));}finally{Error[_0x507acf(0x9f)]=_0x29266d;}}return{'method':'log','version':_0x242b6d,'args':[{'ts':_0x46c6e1,'session':_0x1cd4b7,'args':_0x4786e5,'id':_0x2b6a2f,'context':_0x11c2b6}]};}catch(_0x1f5703){return{'method':_0x507acf(0x119),'version':_0x242b6d,'args':[{'ts':_0x46c6e1,'session':_0x1cd4b7,'args':[{'type':_0x507acf(0x92),'error':_0x1f5703&&_0x1f5703[_0x507acf(0x146)]}],'id':_0x2b6a2f,'context':_0x11c2b6}]};}finally{try{if(_0x4e3b4f&&_0x40b10e){let _0x21bfd9=_0x33c06c();_0x4e3b4f[_0x507acf(0x7f)]++,_0x4e3b4f[_0x507acf(0x105)]+=_0x2020f4(_0x40b10e,_0x21bfd9),_0x4e3b4f['ts']=_0x21bfd9,_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]++,_0x1c6321['hits'][_0x507acf(0x105)]+=_0x2020f4(_0x40b10e,_0x21bfd9),_0x1c6321[_0x507acf(0x93)]['ts']=_0x21bfd9,(_0x4e3b4f[_0x507acf(0x7f)]>_0x2575e9[_0x507acf(0x157)][_0x507acf(0x97)]||_0x4e3b4f[_0x507acf(0x105)]>_0x2575e9[_0x507acf(0x157)][_0x507acf(0x91)])&&(_0x4e3b4f[_0x507acf(0x148)]=!0x0),(_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]>_0x2575e9['global'][_0x507acf(0x97)]||_0x1c6321[_0x507acf(0x93)]['time']>_0x2575e9[_0x507acf(0x102)]['reduceOnAccumulatedProcessingTimeMs'])&&(_0x1c6321[_0x507acf(0x93)][_0x507acf(0x148)]=!0x0);}}catch{}}}return _0x4c7fc5;}function G(_0x3110a3){var _0x3bd871=_0x3bb860;if(_0x3110a3&&typeof _0x3110a3==_0x3bd871(0x107)&&_0x3110a3['constructor'])switch(_0x3110a3[_0x3bd871(0xf9)][_0x3bd871(0xae)]){case _0x3bd871(0xcb):return _0x3110a3['hasOwnProperty'](Symbol[_0x3bd871(0xc9)])?Promise['resolve']():_0x3110a3;case'bound\\\\x20Promise':return Promise[_0x3bd871(0x82)]();}return _0x3110a3;}((_0x89476e,_0x28b07f,_0x238868,_0x4cce03,_0x2dfef1,_0x1e02d7,_0x12a822,_0x1c8003,_0x4ba878,_0x4d841f,_0x421cd1,_0x9d4723)=>{var _0x41e2dd=_0x3bb860;if(_0x89476e[_0x41e2dd(0xfa)])return _0x89476e[_0x41e2dd(0xfa)];let _0x49128d={'consoleLog':()=>{},'consoleTrace':()=>{},'consoleTime':()=>{},'consoleTimeEnd':()=>{},'autoLog':()=>{},'autoLogMany':()=>{},'autoTraceMany':()=>{},'coverage':()=>{},'autoTrace':()=>{},'autoTime':()=>{},'autoTimeEnd':()=>{}};if(!X(_0x89476e,_0x1c8003,_0x2dfef1))return _0x89476e['_console_ninja']=_0x49128d,_0x89476e[_0x41e2dd(0xfa)];let _0x3b17c2=b(_0x89476e),_0x5e45ab=_0x3b17c2['elapsed'],_0x5e3035=_0x3b17c2[_0x41e2dd(0x10c)],_0x59dd7b=_0x3b17c2['now'],_0x41cf3b={'hits':{},'ts':{}},_0x2245c0=J(_0x89476e,_0x4ba878,_0x41cf3b,_0x1e02d7,_0x9d4723,_0x2dfef1==='next.js'?G:void 0x0),_0x23a585=(_0x50e6b3,_0x4f445a,_0x17722c,_0x24a0e1,_0x5e2f8e,_0x23d340)=>{var _0x320467=_0x41e2dd;let _0x26447d=_0x89476e[_0x320467(0xfa)];try{return _0x89476e[_0x320467(0xfa)]=_0x49128d,_0x2245c0(_0x50e6b3,_0x4f445a,_0x17722c,_0x24a0e1,_0x5e2f8e,_0x23d340);}finally{_0x89476e[_0x320467(0xfa)]=_0x26447d;}},_0x42ba27=_0x7674fa=>{_0x41cf3b['ts'][_0x7674fa]=_0x5e3035();},_0x24d759=(_0x5f8923,_0x3f0a6d)=>{var _0x955907=_0x41e2dd;let _0x55a4b5=_0x41cf3b['ts'][_0x3f0a6d];if(delete _0x41cf3b['ts'][_0x3f0a6d],_0x55a4b5){let _0x42836e=_0x5e45ab(_0x55a4b5,_0x5e3035());_0x1c7723(_0x23a585(_0x955907(0x105),_0x5f8923,_0x59dd7b(),_0x1e7b66,[_0x42836e],_0x3f0a6d));}},_0x1694ef=_0x470e65=>{var _0x25a365=_0x41e2dd,_0x59f8f2;return _0x2dfef1==='next.js'&&_0x89476e['origin']&&((_0x59f8f2=_0x470e65==null?void 0x0:_0x470e65[_0x25a365(0x115)])==null?void 0x0:_0x59f8f2[_0x25a365(0x75)])&&(_0x470e65[_0x25a365(0x115)][0x0][_0x25a365(0xb2)]=_0x89476e['origin']),_0x470e65;};_0x89476e[_0x41e2dd(0xfa)]={'consoleLog':(_0x289d5e,_0x17a27d)=>{var _0x5de7e4=_0x41e2dd;_0x89476e[_0x5de7e4(0xbe)]['log'][_0x5de7e4(0xae)]!==_0x5de7e4(0xde)&&_0x1c7723(_0x23a585(_0x5de7e4(0x119),_0x289d5e,_0x59dd7b(),_0x1e7b66,_0x17a27d));},'consoleTrace':(_0x550c51,_0x217373)=>{var _0x58b605=_0x41e2dd,_0x5c42fd,_0x2eb19b;_0x89476e[_0x58b605(0xbe)][_0x58b605(0x119)][_0x58b605(0xae)]!=='disabledTrace'&&((_0x2eb19b=(_0x5c42fd=_0x89476e[_0x58b605(0x167)])==null?void 0x0:_0x5c42fd[_0x58b605(0x149)])!=null&&_0x2eb19b[_0x58b605(0x153)]&&(_0x89476e[_0x58b605(0x83)]=!0x0),_0x1c7723(_0x1694ef(_0x23a585(_0x58b605(0x142),_0x550c51,_0x59dd7b(),_0x1e7b66,_0x217373))));},'consoleError':(_0x388785,_0x1df99e)=>{var _0x3e3286=_0x41e2dd;_0x89476e[_0x3e3286(0x83)]=!0x0,_0x1c7723(_0x1694ef(_0x23a585(_0x3e3286(0xb4),_0x388785,_0x59dd7b(),_0x1e7b66,_0x1df99e)));},'consoleTime':_0x5dfd28=>{_0x42ba27(_0x5dfd28);},'consoleTimeEnd':(_0x2ea531,_0x32fcea)=>{_0x24d759(_0x32fcea,_0x2ea531);},'autoLog':(_0x3210b3,_0x41f469)=>{var _0x149cc9=_0x41e2dd;_0x1c7723(_0x23a585(_0x149cc9(0x119),_0x41f469,_0x59dd7b(),_0x1e7b66,[_0x3210b3]));},'autoLogMany':(_0x5cca3a,_0xfa047d)=>{_0x1c7723(_0x23a585('log',_0x5cca3a,_0x59dd7b(),_0x1e7b66,_0xfa047d));},'autoTrace':(_0xdc9d24,_0x1f706d)=>{_0x1c7723(_0x1694ef(_0x23a585('trace',_0x1f706d,_0x59dd7b(),_0x1e7b66,[_0xdc9d24])));},'autoTraceMany':(_0x369170,_0x2658f9)=>{var _0x21206c=_0x41e2dd;_0x1c7723(_0x1694ef(_0x23a585(_0x21206c(0x142),_0x369170,_0x59dd7b(),_0x1e7b66,_0x2658f9)));},'autoTime':(_0x216685,_0x1f9d8a,_0x5d3d6a)=>{_0x42ba27(_0x5d3d6a);},'autoTimeEnd':(_0x38e311,_0x8da60e,_0x102528)=>{_0x24d759(_0x8da60e,_0x102528);},'coverage':_0x3ee68b=>{_0x1c7723({'method':'coverage','version':_0x1e02d7,'args':[{'id':_0x3ee68b}]});}};let _0x1c7723=H(_0x89476e,_0x28b07f,_0x238868,_0x4cce03,_0x2dfef1,_0x4d841f,_0x421cd1),_0x1e7b66=_0x89476e[_0x41e2dd(0x14a)];return _0x89476e[_0x41e2dd(0xfa)];})(globalThis,_0x3bb860(0x6d),_0x3bb860(0x165),_0x3bb860(0x15b),'webpack',_0x3bb860(0x14e),'1764769008274',[\\\"localhost\\\",\\\"127.0.0.1\\\",\\\"example.cypress.io\\\",\\\"10.0.2.2\\\",\\\"Matejs-MacBook-Pro.local\\\",\\\"192.168.0.230\\\"],_0x3bb860(0x15c),_0x3bb860(0x159),_0x3bb860(0xa4),_0x3bb860(0xd1));\");\n } catch (e) {\n console.error(e);\n }\n}\n/* istanbul ignore next */\nfunction oo_oo(/**@type{any}**/i, /**@type{any}**/...v) {\n try {\n oo_cm().consoleLog(i, v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_tr(/**@type{any}**/i, /**@type{any}**/...v) {\n try {\n oo_cm().consoleTrace(i, v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_tx(/**@type{any}**/i, /**@type{any}**/...v) {\n try {\n oo_cm().consoleError(i, v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_ts(/**@type{any}**/v) {\n try {\n oo_cm().consoleTime(v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_te(/**@type{any}**/v, /**@type{any}**/i) {\n try {\n oo_cm().consoleTimeEnd(v, i);\n } catch (e) {}\n return v;\n} /*eslint unicorn/no-abusive-eslint-disable:,eslint-comments/disable-enable-pair:,eslint-comments/no-unlimited-disable:,eslint-comments/no-aggregating-enable:,eslint-comments/no-duplicate-disable:,eslint-comments/no-unused-disable:,eslint-comments/no-unused-enable:,*/\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-blocker-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@_components/z-datepicker.vue */ \"./src/plugins/tm@_components/z-datepicker.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ZDatepicker: _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n // ZAutocomplete\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n },\n mixins: [_plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_8__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__[\"default\"]],\n emits: ['close'],\n data() {\n return {\n visible: false,\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n blocker: null,\n datepicker: null,\n starts_at_time: null,\n ends_at_time: null,\n employee: null,\n modalName: 'z-blocker-modal',\n modalSize: 'large'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_6__.mapGetters)('tm', ['enrichedEmployees']),\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_6__.mapGetters)('auth', ['user'])\n },\n validations() {\n return {\n blocker: {\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n start: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n end: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n }\n // employee: { required }\n },\n starts_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n ends_at_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n },\n datepicker: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_4__.required\n }\n };\n },\n watch: {\n ends_at_time() {\n this._syncDatesTimes();\n },\n starts_at_time() {\n this._syncDatesTimes();\n },\n datepicker() {\n this._syncDatesTimes();\n }\n },\n methods: {\n async showModal({\n blocker\n }) {\n this.visible = true;\n this.blocker = null;\n this.datepicker = null;\n this.starts_at_time = null;\n this.ends_at_time = null;\n this.$nextTick(() => {\n this.v$.$reset();\n });\n try {\n if (blocker?.id) {\n blocker = await this.$axios.get_auth_data(`v1/blockers/${blocker.id}`);\n this.starts_at_time = moment__WEBPACK_IMPORTED_MODULE_7___default()(blocker.start).format('HH:mm');\n this.ends_at_time = moment__WEBPACK_IMPORTED_MODULE_7___default()(blocker.end).format('HH:mm');\n this.datepicker = new Date(blocker.start);\n blocker.employee_id = blocker.employee.id;\n //fixnut validacie employee_id\n this.blocker = blocker;\n } else {\n this.blocker = {\n start: null,\n employee_id: this.user.id\n };\n if (blocker.starts_at_time && blocker.datepicker && blocker.employee_id) {\n this.datepicker = blocker.datepicker;\n this.starts_at_time = blocker.starts_at_time;\n this.blocker.employee_id = blocker.employee_id;\n }\n }\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n async save() {\n if (!(await this.v$.$validate())) return;\n try {\n // this.blocker.employee_id = this.blocker.employee?.id\n\n if (this.blocker.id) {\n const {\n blocker\n } = await this.$axios.put_auth(`v1/blockers/${this.blocker.id}`, this.blocker);\n this.blocker = blocker;\n } else {\n const {\n blocker\n } = await this.$axios.post_auth('v1/blockers', this.blocker);\n this.blocker = blocker;\n }\n this.$events.emit('on-blocker-edited', this.blocker);\n this.$events.emit('blocker-created');\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n closeModal() {\n this.visible = false;\n this.$emit('close', this.blocker);\n },\n onEmployeeSelected({\n key\n }) {\n this.blocker.employee = this.enrichedEmployees.find(employee => employee.id == key);\n },\n _syncDatesTimes() {\n if (!this.starts_at_time || !this.ends_at_time || !this.datepicker) return;\n const splittedStart = this.starts_at_time.split(':');\n const splittedEnd = this.ends_at_time.split(':');\n this.blocker.start = moment__WEBPACK_IMPORTED_MODULE_7___default()(this.datepicker).set({\n hours: parseInt(splittedStart[0]),\n minutes: parseInt(splittedStart[1])\n }).format('YYYY-MM-DD HH:mm');\n this.blocker.end = moment__WEBPACK_IMPORTED_MODULE_7___default()(this.datepicker).set({\n hours: parseInt(splittedEnd[0]),\n minutes: parseInt(splittedEnd[1])\n }).format('YYYY-MM-DD HH:mm');\n }\n }\n});\n/* istanbul ignore next */\nfunction oo_cm() {\n try {\n return (0, eval)('globalThis._console_ninja') || (0, eval)(\"/* https://github.com/wallabyjs/console-ninja#how-does-it-work */'use strict';var _0x3bb860=_0x1415;(function(_0x56f424,_0x281bb7){var _0x578595=_0x1415,_0x2349f8=_0x56f424();while(!![]){try{var _0x3a5c11=-parseInt(_0x578595(0x177))/0x1+parseInt(_0x578595(0xce))/0x2*(parseInt(_0x578595(0xab))/0x3)+-parseInt(_0x578595(0xe0))/0x4+-parseInt(_0x578595(0xa3))/0x5+parseInt(_0x578595(0x138))/0x6+parseInt(_0x578595(0x70))/0x7*(parseInt(_0x578595(0x123))/0x8)+parseInt(_0x578595(0x131))/0x9;if(_0x3a5c11===_0x281bb7)break;else _0x2349f8['push'](_0x2349f8['shift']());}catch(_0x1e619a){_0x2349f8['push'](_0x2349f8['shift']());}}}(_0x4e1d,0xdeb8a));function _0x1415(_0x47fe6b,_0x151885){var _0x4e1d5f=_0x4e1d();return _0x1415=function(_0x14150b,_0x79b2a3){_0x14150b=_0x14150b-0x6a;var _0x3e24b4=_0x4e1d5f[_0x14150b];return _0x3e24b4;},_0x1415(_0x47fe6b,_0x151885);}function z(_0x24a155,_0x4b4c5c,_0x5910f9,_0x1b7610,_0x103ee4,_0x1467ae){var _0x51301a=_0x1415,_0x33e993,_0x5b9a4b,_0x5d3157,_0x1fc7d9;this[_0x51301a(0x102)]=_0x24a155,this[_0x51301a(0x88)]=_0x4b4c5c,this[_0x51301a(0xe4)]=_0x5910f9,this[_0x51301a(0xfd)]=_0x1b7610,this[_0x51301a(0x10f)]=_0x103ee4,this[_0x51301a(0x76)]=_0x1467ae,this[_0x51301a(0x99)]=!0x0,this[_0x51301a(0x125)]=!0x0,this[_0x51301a(0x126)]=!0x1,this[_0x51301a(0xf5)]=!0x1,this[_0x51301a(0xc6)]=((_0x5b9a4b=(_0x33e993=_0x24a155[_0x51301a(0x167)])==null?void 0x0:_0x33e993[_0x51301a(0x11b)])==null?void 0x0:_0x5b9a4b[_0x51301a(0xe8)])===_0x51301a(0xd2),this['_inBrowser']=!((_0x1fc7d9=(_0x5d3157=this['global'][_0x51301a(0x167)])==null?void 0x0:_0x5d3157[_0x51301a(0x149)])!=null&&_0x1fc7d9['node'])&&!this[_0x51301a(0xc6)],this['_WebSocketClass']=null,this[_0x51301a(0x6a)]=0x0,this[_0x51301a(0x89)]=0x14,this['_webSocketErrorDocsLink']=_0x51301a(0x111),this[_0x51301a(0x73)]=(this[_0x51301a(0xee)]?_0x51301a(0x9e):_0x51301a(0x12e))+this[_0x51301a(0x16b)];}z[_0x3bb860(0x166)][_0x3bb860(0xba)]=async function(){var _0x4e59d7=_0x3bb860,_0x4597cb,_0xd38ba8;if(this[_0x4e59d7(0x176)])return this[_0x4e59d7(0x176)];let _0x4fce50;if(this[_0x4e59d7(0xee)]||this[_0x4e59d7(0xc6)])_0x4fce50=this['global'][_0x4e59d7(0x8b)];else{if((_0x4597cb=this['global'][_0x4e59d7(0x167)])!=null&&_0x4597cb[_0x4e59d7(0x158)])_0x4fce50=(_0xd38ba8=this[_0x4e59d7(0x102)][_0x4e59d7(0x167)])==null?void 0x0:_0xd38ba8[_0x4e59d7(0x158)];else try{_0x4fce50=(await new Function(_0x4e59d7(0xbf),_0x4e59d7(0x78),_0x4e59d7(0xfd),_0x4e59d7(0x15a))(await(0x0,eval)(_0x4e59d7(0x85)),await(0x0,eval)(_0x4e59d7(0xb5)),this[_0x4e59d7(0xfd)]))['default'];}catch{try{_0x4fce50=require(require(_0x4e59d7(0xbf))['join'](this[_0x4e59d7(0xfd)],'ws'));}catch{throw new Error('failed\\\\x20to\\\\x20find\\\\x20and\\\\x20load\\\\x20WebSocket');}}}return this[_0x4e59d7(0x176)]=_0x4fce50,_0x4fce50;},z[_0x3bb860(0x166)][_0x3bb860(0x6c)]=function(){var _0x238fd3=_0x3bb860;this[_0x238fd3(0xf5)]||this[_0x238fd3(0x126)]||this[_0x238fd3(0x6a)]>=this[_0x238fd3(0x89)]||(this[_0x238fd3(0x125)]=!0x1,this['_connecting']=!0x0,this['_connectAttemptCount']++,this[_0x238fd3(0x11d)]=new Promise((_0x13a915,_0x21b0d7)=>{var _0x525468=_0x238fd3;this[_0x525468(0xba)]()['then'](_0x5b01ba=>{var _0x22c3de=_0x525468;let _0x2d3688=new _0x5b01ba(_0x22c3de(0xc2)+(!this[_0x22c3de(0xee)]&&this[_0x22c3de(0x10f)]?_0x22c3de(0x143):this['host'])+':'+this[_0x22c3de(0xe4)]);_0x2d3688[_0x22c3de(0x8d)]=()=>{var _0x225989=_0x22c3de;this[_0x225989(0x99)]=!0x1,this[_0x225989(0xc7)](_0x2d3688),this[_0x225989(0x161)](),_0x21b0d7(new Error(_0x225989(0x137)));},_0x2d3688['onopen']=()=>{var _0x5c704f=_0x22c3de;this[_0x5c704f(0xee)]||_0x2d3688[_0x5c704f(0xdb)]&&_0x2d3688[_0x5c704f(0xdb)]['unref']&&_0x2d3688[_0x5c704f(0xdb)][_0x5c704f(0x151)](),_0x13a915(_0x2d3688);},_0x2d3688[_0x22c3de(0x121)]=()=>{var _0x4945c9=_0x22c3de;this[_0x4945c9(0x125)]=!0x0,this['_disposeWebsocket'](_0x2d3688),this['_attemptToReconnectShortly']();},_0x2d3688[_0x22c3de(0x113)]=_0x2053ed=>{var _0x47d471=_0x22c3de;try{if(!(_0x2053ed!=null&&_0x2053ed[_0x47d471(0xfc)])||!this[_0x47d471(0x76)])return;let _0x455e7c=JSON[_0x47d471(0x175)](_0x2053ed['data']);this[_0x47d471(0x76)](_0x455e7c[_0x47d471(0xd3)],_0x455e7c[_0x47d471(0x115)],this[_0x47d471(0x102)],this[_0x47d471(0xee)]);}catch{}};})['then'](_0x162101=>(this[_0x525468(0x126)]=!0x0,this[_0x525468(0xf5)]=!0x1,this[_0x525468(0x125)]=!0x1,this['_allowedToSend']=!0x0,this[_0x525468(0x6a)]=0x0,_0x162101))['catch'](_0xa697f4=>(this[_0x525468(0x126)]=!0x1,this[_0x525468(0xf5)]=!0x1,console[_0x525468(0xf7)](_0x525468(0x95)+this[_0x525468(0x16b)]),_0x21b0d7(new Error(_0x525468(0xd6)+(_0xa697f4&&_0xa697f4[_0x525468(0x146)])))));}));},z[_0x3bb860(0x166)][_0x3bb860(0xc7)]=function(_0x310b79){var _0xc4bfe7=_0x3bb860;this[_0xc4bfe7(0x126)]=!0x1,this[_0xc4bfe7(0xf5)]=!0x1;try{_0x310b79[_0xc4bfe7(0x121)]=null,_0x310b79['onerror']=null,_0x310b79['onopen']=null;}catch{}try{_0x310b79[_0xc4bfe7(0xa0)]<0x2&&_0x310b79[_0xc4bfe7(0xb9)]();}catch{}},z[_0x3bb860(0x166)][_0x3bb860(0x161)]=function(){var _0xeb4151=_0x3bb860;clearTimeout(this[_0xeb4151(0x98)]),!(this[_0xeb4151(0x6a)]>=this[_0xeb4151(0x89)])&&(this[_0xeb4151(0x98)]=setTimeout(()=>{var _0x1946d6=_0xeb4151,_0x4e1390;this[_0x1946d6(0x126)]||this[_0x1946d6(0xf5)]||(this['_connectToHostNow'](),(_0x4e1390=this['_ws'])==null||_0x4e1390['catch'](()=>this[_0x1946d6(0x161)]()));},0x1f4),this[_0xeb4151(0x98)][_0xeb4151(0x151)]&&this[_0xeb4151(0x98)][_0xeb4151(0x151)]());},z[_0x3bb860(0x166)][_0x3bb860(0x172)]=async function(_0xe28174){var _0x17b86c=_0x3bb860;try{if(!this[_0x17b86c(0x99)])return;this[_0x17b86c(0x125)]&&this[_0x17b86c(0x6c)](),(await this['_ws'])['send'](JSON[_0x17b86c(0xb6)](_0xe28174));}catch(_0x382eee){this['_extendedWarning']?console[_0x17b86c(0xf7)](this[_0x17b86c(0x73)]+':\\\\x20'+(_0x382eee&&_0x382eee['message'])):(this[_0x17b86c(0x9b)]=!0x0,console[_0x17b86c(0xf7)](this[_0x17b86c(0x73)]+':\\\\x20'+(_0x382eee&&_0x382eee[_0x17b86c(0x146)]),_0xe28174)),this[_0x17b86c(0x99)]=!0x1,this[_0x17b86c(0x161)]();}};function H(_0x4007a6,_0x7f3615,_0x44871c,_0x3fda34,_0x42d82c,_0x255a3e,_0x1ac7c5,_0x253dd4=ne){var _0x3da3a8=_0x3bb860;let _0x24dfae=_0x44871c[_0x3da3a8(0x11e)](',')[_0x3da3a8(0xd5)](_0x453732=>{var _0x41af42=_0x3da3a8,_0x253dbd,_0x1fcf43,_0x44930f,_0x299886,_0x5d734b,_0x482ba2,_0x14c56a;try{if(!_0x4007a6[_0x41af42(0x14a)]){let _0x2b832b=((_0x1fcf43=(_0x253dbd=_0x4007a6['process'])==null?void 0x0:_0x253dbd[_0x41af42(0x149)])==null?void 0x0:_0x1fcf43[_0x41af42(0x153)])||((_0x299886=(_0x44930f=_0x4007a6[_0x41af42(0x167)])==null?void 0x0:_0x44930f['env'])==null?void 0x0:_0x299886[_0x41af42(0xe8)])===_0x41af42(0xd2);(_0x42d82c==='next.js'||_0x42d82c===_0x41af42(0xa9)||_0x42d82c===_0x41af42(0xcc)||_0x42d82c==='angular')&&(_0x42d82c+=_0x2b832b?_0x41af42(0x156):_0x41af42(0x11f));let _0x4bd77b='';_0x42d82c===_0x41af42(0xaa)&&(_0x4bd77b=(((_0x14c56a=(_0x482ba2=(_0x5d734b=_0x4007a6[_0x41af42(0x74)])==null?void 0x0:_0x5d734b[_0x41af42(0x6f)])==null?void 0x0:_0x482ba2[_0x41af42(0x72)])==null?void 0x0:_0x14c56a['osName'])||'')[_0x41af42(0x130)](),_0x4bd77b&&(_0x42d82c+='\\\\x20'+_0x4bd77b,_0x4bd77b===_0x41af42(0xd0)&&(_0x7f3615='10.0.2.2'))),_0x4007a6[_0x41af42(0x14a)]={'id':+new Date(),'tool':_0x42d82c},_0x1ac7c5&&_0x42d82c&&!_0x2b832b&&(_0x4bd77b?console[_0x41af42(0x119)](_0x41af42(0xcf)+_0x4bd77b+_0x41af42(0x6e)):console[_0x41af42(0x119)](_0x41af42(0xaf)+(_0x42d82c[_0x41af42(0x162)](0x0)[_0x41af42(0xad)]()+_0x42d82c[_0x41af42(0xd4)](0x1))+',',_0x41af42(0xbc),'see\\\\x20https://tinyurl.com/2vt8jxzw\\\\x20for\\\\x20more\\\\x20info.'));}let _0x4de09c=new z(_0x4007a6,_0x7f3615,_0x453732,_0x3fda34,_0x255a3e,_0x253dd4);return _0x4de09c[_0x41af42(0x172)][_0x41af42(0xc0)](_0x4de09c);}catch(_0x17909b){return console['warn'](_0x41af42(0x84),_0x17909b&&_0x17909b[_0x41af42(0x146)]),()=>{};}});return _0x22ddfa=>_0x24dfae[_0x3da3a8(0x11a)](_0x3bc35e=>_0x3bc35e(_0x22ddfa));}function ne(_0x1fd219,_0x333fdc,_0x47d769,_0x45bbd3){var _0x6922c2=_0x3bb860;_0x45bbd3&&_0x1fd219===_0x6922c2(0x16e)&&_0x47d769[_0x6922c2(0x170)][_0x6922c2(0x16e)]();}function b(_0x1be91c){var _0x168b8c=_0x3bb860,_0x2c3d08,_0x8f1a04;let _0x2f7b8f=function(_0x19089c,_0x523e04){return _0x523e04-_0x19089c;},_0x204928;if(_0x1be91c[_0x168b8c(0x9c)])_0x204928=function(){var _0x4c8584=_0x168b8c;return _0x1be91c[_0x4c8584(0x9c)][_0x4c8584(0xe6)]();};else{if(_0x1be91c[_0x168b8c(0x167)]&&_0x1be91c['process'][_0x168b8c(0x15d)]&&((_0x8f1a04=(_0x2c3d08=_0x1be91c['process'])==null?void 0x0:_0x2c3d08['env'])==null?void 0x0:_0x8f1a04[_0x168b8c(0xe8)])!==_0x168b8c(0xd2))_0x204928=function(){var _0x10f78d=_0x168b8c;return _0x1be91c['process'][_0x10f78d(0x15d)]();},_0x2f7b8f=function(_0x1a41e2,_0x4523ee){return 0x3e8*(_0x4523ee[0x0]-_0x1a41e2[0x0])+(_0x4523ee[0x1]-_0x1a41e2[0x1])/0xf4240;};else try{let {performance:_0x5b1c98}=require('perf_hooks');_0x204928=function(){var _0x4f0b5b=_0x168b8c;return _0x5b1c98[_0x4f0b5b(0xe6)]();};}catch{_0x204928=function(){return+new Date();};}}return{'elapsed':_0x2f7b8f,'timeStamp':_0x204928,'now':()=>Date[_0x168b8c(0xe6)]()};}function _0x4e1d(){var _0x55c7b0=['_isNegativeZero','[object\\\\x20Set]','_connecting','pop','warn','_property','constructor','_console_ninja','level','data','nodeModules','_getOwnPropertyDescriptor','_setNodePermissions','parent','_getOwnPropertyNames','global','_setNodeQueryPath','_addFunctionsNode','time','POSITIVE_INFINITY','object','_isSet','[object\\\\x20Date]','negativeInfinity','elements','timeStamp','_numberRegExp','osName','dockerizedApp','_dateToString','https://tinyurl.com/37x8b79t','valueOf','onmessage','_capIfString','args','resolveGetters','resetWhenQuietMs','Number','log','forEach','env','cappedElements','_ws','split','\\\\x20browser','_undefined','onclose','_propertyName','19480KjoQTx','root_exp_id','_allowedToConnectOnSend','_connected','_quotedRegExp','nan','funcName','_getOwnPropertySymbols','_sortProps','_Symbol','_setNodeId','Console\\\\x20Ninja\\\\x20failed\\\\x20to\\\\x20send\\\\x20logs,\\\\x20restarting\\\\x20the\\\\x20process\\\\x20may\\\\x20help;\\\\x20also\\\\x20see\\\\x20','Map','toLowerCase','13103964QpnQvW','String','array','_cleanNode','push','_processTreeNodeResult','logger\\\\x20websocket\\\\x20error','1870254SUWmxz','_addProperty','_objectToString','_isPrimitiveType','strLength','serialize','_isPrimitiveWrapperType','_addObjectProperty','elapsed','boolean','trace','gateway.docker.internal','Symbol','autoExpand','message','_p_length','reduceLimits','versions','_console_ninja_session','_isUndefined','Set','sortProps','1.0.0','props','autoExpandPropertyCount','unref','getter','node','autoExpandPreviousObjects','Error','\\\\x20server','perLogpoint','_WebSocket','','return\\\\x20import(url.pathToFileURL(path.join(nodeModules,\\\\x20\\\\x27ws/index.js\\\\x27)).toString());',\\\"/Users/matejglasnak/.cursor/extensions/wallabyjs.console-ninja-1.0.496-universal/node_modules\\\",'','hrtime','toString','ninjaSuppressConsole','type','_attemptToReconnectShortly','charAt','date','value','58178','prototype','process','get','cappedProps','_hasSetOnItsPath','_webSocketErrorDocsLink','_setNodeExpandableState','NEGATIVE_INFINITY','reload','current','location','negativeZero','send','_type','_isArray','parse','_WebSocketClass','983374JpTdwS','_connectAttemptCount','noFunctions','_connectToHostNow','127.0.0.1',',\\\\x20see\\\\x20https://tinyurl.com/2vt8jxzw\\\\x20for\\\\x20more\\\\x20info.','modules','2345wsUfrF','_setNodeLabel','ExpoDevice','_sendErrorMessage','expo','length','eventReceivedCallback','stack','url','isArray','resetOnProcessingTimeAverageMs','_HTMLAllCollection','Buffer','startsWith','symbol','count','indexOf','isExpressionToEvaluate','resolve','_ninjaIgnoreNextError','logger\\\\x20failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host','import(\\\\x27path\\\\x27)','HTMLAllCollection','...','host','_maxConnectAttemptCount','_regExpToString','WebSocket','[object\\\\x20Array]','onerror','some','_p_','allStrLength','reduceOnAccumulatedProcessingTimeMs','unknown','hits','reducedLimits','logger\\\\x20failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host,\\\\x20see\\\\x20','_additionalMetadata','reduceOnCount','_reconnectTimeout','_allowedToSend','totalStrLength','_extendedWarning','performance','fromCharCode','Console\\\\x20Ninja\\\\x20failed\\\\x20to\\\\x20send\\\\x20logs,\\\\x20refreshing\\\\x20the\\\\x20page\\\\x20may\\\\x20help;\\\\x20also\\\\x20see\\\\x20','stackTraceLimit','readyState','call','hostname','4473635XDSKgJ','1','getOwnPropertyNames','index','_keyStrRegExp','positiveInfinity','remix','react-native','50079FfGbnb','_consoleNinjaAllowedToStart','toUpperCase','name','%c\\\\x20Console\\\\x20Ninja\\\\x20extension\\\\x20is\\\\x20connected\\\\x20to\\\\x20','_hasSymbolPropertyOnItsPath','getOwnPropertySymbols','origin','number','error','import(\\\\x27url\\\\x27)','stringify','RegExp','autoExpandLimit','close','getWebSocketClass','setter','background:\\\\x20rgb(30,30,30);\\\\x20color:\\\\x20rgb(255,213,92)','concat','console','path','bind','_addLoadNode','ws://','bigint','slice','expId','_inNextEdge','_disposeWebsocket','capped','iterator','_treeNodePropertiesAfterFullValue','Promise','astro','string','158otmrpx','Console\\\\x20Ninja\\\\x20extension\\\\x20is\\\\x20connected\\\\x20to\\\\x20','android',{\\\"resolveGetters\\\":false,\\\"defaultLimits\\\":{\\\"props\\\":100,\\\"elements\\\":100,\\\"strLength\\\":51200,\\\"totalStrLength\\\":51200,\\\"autoExpandLimit\\\":5000,\\\"autoExpandMaxDepth\\\":10},\\\"reducedLimits\\\":{\\\"props\\\":5,\\\"elements\\\":5,\\\"strLength\\\":256,\\\"totalStrLength\\\":768,\\\"autoExpandLimit\\\":30,\\\"autoExpandMaxDepth\\\":2},\\\"reducePolicy\\\":{\\\"perLogpoint\\\":{\\\"reduceOnCount\\\":50,\\\"reduceOnAccumulatedProcessingTimeMs\\\":100,\\\"resetWhenQuietMs\\\":500,\\\"resetOnProcessingTimeAverageMs\\\":100},\\\"global\\\":{\\\"reduceOnCount\\\":1000,\\\"reduceOnAccumulatedProcessingTimeMs\\\":300,\\\"resetWhenQuietMs\\\":50,\\\"resetOnProcessingTimeAverageMs\\\":100}}},'edge','method','substr','map','failed\\\\x20to\\\\x20connect\\\\x20to\\\\x20host:\\\\x20','_p_name','_setNodeExpressionPath','function','sort','_socket','includes','undefined','disabledLog','_blacklistedProperty','4447240xwfavk','[object\\\\x20BigInt]','defaultLimits','getOwnPropertyDescriptor','port','replace','now','[object\\\\x20Map]','NEXT_RUNTIME','autoExpandMaxDepth','expressionsToEvaluate','_treeNodePropertiesBeforeFullValue','rootExpression','depth','_inBrowser','test','reducePolicy','endsWith','_hasMapOnItsPath'];_0x4e1d=function(){return _0x55c7b0;};return _0x4e1d();}function X(_0x483c01,_0x271bd4,_0x44c4e4){var _0x104ef5=_0x3bb860,_0x11870b,_0xd0411e,_0x2b2f35,_0x37f289,_0x19767e,_0x5b1d18,_0x148937,_0x214d11,_0xcc5822;if(_0x483c01['_consoleNinjaAllowedToStart']!==void 0x0)return _0x483c01['_consoleNinjaAllowedToStart'];let _0x1a7fe6=((_0xd0411e=(_0x11870b=_0x483c01[_0x104ef5(0x167)])==null?void 0x0:_0x11870b['versions'])==null?void 0x0:_0xd0411e['node'])||((_0x37f289=(_0x2b2f35=_0x483c01[_0x104ef5(0x167)])==null?void 0x0:_0x2b2f35[_0x104ef5(0x11b)])==null?void 0x0:_0x37f289['NEXT_RUNTIME'])==='edge',_0x4eefc2=!!(_0x44c4e4===_0x104ef5(0xaa)&&((_0x148937=(_0x5b1d18=(_0x19767e=_0x483c01['expo'])==null?void 0x0:_0x19767e[_0x104ef5(0x6f)])==null?void 0x0:_0x5b1d18['ExpoDevice'])==null?void 0x0:_0x148937[_0x104ef5(0x10e)]));function _0x3dc67e(_0x1005a2){var _0x8df396=_0x104ef5;if(_0x1005a2[_0x8df396(0x7d)]('/')&&_0x1005a2[_0x8df396(0xf1)]('/')){let _0x42ca86=new RegExp(_0x1005a2[_0x8df396(0xc4)](0x1,-0x1));return _0x1424cc=>_0x42ca86['test'](_0x1424cc);}else{if(_0x1005a2[_0x8df396(0xdc)]('*')||_0x1005a2[_0x8df396(0xdc)]('?')){let _0x4ca7cb=new RegExp('^'+_0x1005a2[_0x8df396(0xe5)](/\\\\./g,String[_0x8df396(0x9d)](0x5c)+'.')[_0x8df396(0xe5)](/\\\\*/g,'.*')['replace'](/\\\\?/g,'.')+String['fromCharCode'](0x24));return _0x47b79e=>_0x4ca7cb[_0x8df396(0xef)](_0x47b79e);}else return _0x399e60=>_0x399e60===_0x1005a2;}}let _0x1b7b20=_0x271bd4[_0x104ef5(0xd5)](_0x3dc67e);return _0x483c01['_consoleNinjaAllowedToStart']=_0x1a7fe6||!_0x271bd4,!_0x483c01[_0x104ef5(0xac)]&&((_0x214d11=_0x483c01[_0x104ef5(0x170)])==null?void 0x0:_0x214d11[_0x104ef5(0xa2)])&&(_0x483c01[_0x104ef5(0xac)]=_0x1b7b20[_0x104ef5(0x8e)](_0x39e689=>_0x39e689(_0x483c01[_0x104ef5(0x170)][_0x104ef5(0xa2)]))),_0x4eefc2&&!_0x483c01[_0x104ef5(0xac)]&&!((_0xcc5822=_0x483c01[_0x104ef5(0x170)])!=null&&_0xcc5822[_0x104ef5(0xa2)])&&(_0x483c01[_0x104ef5(0xac)]=!0x0),_0x483c01[_0x104ef5(0xac)];}function J(_0x54988f,_0x4ca48c,_0x1c6321,_0x242b6d,_0x2ab5e9,_0x5c9ae8){var _0x362eb9=_0x3bb860;_0x54988f=_0x54988f,_0x4ca48c=_0x4ca48c,_0x1c6321=_0x1c6321,_0x242b6d=_0x242b6d,_0x2ab5e9=_0x2ab5e9,_0x2ab5e9=_0x2ab5e9||{},_0x2ab5e9[_0x362eb9(0xe2)]=_0x2ab5e9['defaultLimits']||{},_0x2ab5e9['reducedLimits']=_0x2ab5e9[_0x362eb9(0x94)]||{},_0x2ab5e9[_0x362eb9(0xf0)]=_0x2ab5e9[_0x362eb9(0xf0)]||{},_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)]=_0x2ab5e9['reducePolicy'][_0x362eb9(0x157)]||{},_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)]=_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)]||{};let _0x2575e9={'perLogpoint':{'reduceOnCount':_0x2ab5e9['reducePolicy']['perLogpoint'][_0x362eb9(0x97)]||0x32,'reduceOnAccumulatedProcessingTimeMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)][_0x362eb9(0x91)]||0x64,'resetWhenQuietMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)][_0x362eb9(0x117)]||0x1f4,'resetOnProcessingTimeAverageMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x157)]['resetOnProcessingTimeAverageMs']||0x64},'global':{'reduceOnCount':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x97)]||0x3e8,'reduceOnAccumulatedProcessingTimeMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x91)]||0x12c,'resetWhenQuietMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x117)]||0x32,'resetOnProcessingTimeAverageMs':_0x2ab5e9[_0x362eb9(0xf0)][_0x362eb9(0x102)][_0x362eb9(0x7a)]||0x64}},_0x3068d4=b(_0x54988f),_0x2020f4=_0x3068d4[_0x362eb9(0x140)],_0x33c06c=_0x3068d4['timeStamp'];function _0x1553d1(){var _0x2f7fd2=_0x362eb9;this[_0x2f7fd2(0xa7)]=/^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[_$a-zA-Z\\\\xA0-\\\\uFFFF][_$a-zA-Z0-9\\\\xA0-\\\\uFFFF]*$/,this[_0x2f7fd2(0x10d)]=/^(0|[1-9][0-9]*)$/,this[_0x2f7fd2(0x127)]=/'([^\\\\\\\\']|\\\\\\\\')*'/,this[_0x2f7fd2(0x120)]=_0x54988f[_0x2f7fd2(0xdd)],this[_0x2f7fd2(0x7b)]=_0x54988f[_0x2f7fd2(0x86)],this[_0x2f7fd2(0xfe)]=Object[_0x2f7fd2(0xe3)],this[_0x2f7fd2(0x101)]=Object[_0x2f7fd2(0xa5)],this[_0x2f7fd2(0x12c)]=_0x54988f[_0x2f7fd2(0x144)],this[_0x2f7fd2(0x8a)]=RegExp[_0x2f7fd2(0x166)][_0x2f7fd2(0x15e)],this[_0x2f7fd2(0x110)]=Date[_0x2f7fd2(0x166)]['toString'];}_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x13d)]=function(_0x4647d7,_0x2a215a,_0x22ed3f,_0x50c2de){var _0x2e0ba3=_0x362eb9,_0x5d74ca=this,_0x51c281=_0x22ed3f[_0x2e0ba3(0x145)];function _0x5cbb2c(_0x2151b5,_0x31b5a1,_0x57d6c8){var _0x303826=_0x2e0ba3;_0x31b5a1[_0x303826(0x160)]='unknown',_0x31b5a1[_0x303826(0xb4)]=_0x2151b5[_0x303826(0x146)],_0x927f28=_0x57d6c8[_0x303826(0x153)]['current'],_0x57d6c8[_0x303826(0x153)]['current']=_0x31b5a1,_0x5d74ca[_0x303826(0xeb)](_0x31b5a1,_0x57d6c8);}let _0x579911,_0xddd6e9,_0x22db18=_0x54988f[_0x2e0ba3(0x15f)];_0x54988f[_0x2e0ba3(0x15f)]=!0x0,_0x54988f[_0x2e0ba3(0xbe)]&&(_0x579911=_0x54988f[_0x2e0ba3(0xbe)]['error'],_0xddd6e9=_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xf7)],_0x579911&&(_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xb4)]=function(){}),_0xddd6e9&&(_0x54988f['console']['warn']=function(){}));try{try{_0x22ed3f['level']++,_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f[_0x2e0ba3(0x154)][_0x2e0ba3(0x135)](_0x2a215a);var _0x423735,_0x575ffc,_0x56086b,_0x237f39,_0x25296e=[],_0x5e2d4e=[],_0x16b7cc,_0x70a2f6=this[_0x2e0ba3(0x173)](_0x2a215a),_0x283f38=_0x70a2f6===_0x2e0ba3(0x133),_0x5b503b=!0x1,_0x95078c=_0x70a2f6===_0x2e0ba3(0xd9),_0x36b80f=this[_0x2e0ba3(0x13b)](_0x70a2f6),_0x4f4889=this[_0x2e0ba3(0x13e)](_0x70a2f6),_0xc8b9f=_0x36b80f||_0x4f4889,_0x2720e2={},_0x40d2dc=0x0,_0x460b57=!0x1,_0x927f28,_0x2173c4=/^(([1-9]{1}[0-9]*)|0)$/;if(_0x22ed3f[_0x2e0ba3(0xed)]){if(_0x283f38){if(_0x575ffc=_0x2a215a[_0x2e0ba3(0x75)],_0x575ffc>_0x22ed3f[_0x2e0ba3(0x10b)]){for(_0x56086b=0x0,_0x237f39=_0x22ed3f['elements'],_0x423735=_0x56086b;_0x423735<_0x237f39;_0x423735++)_0x5e2d4e[_0x2e0ba3(0x135)](_0x5d74ca[_0x2e0ba3(0x139)](_0x25296e,_0x2a215a,_0x70a2f6,_0x423735,_0x22ed3f));_0x4647d7[_0x2e0ba3(0x11c)]=!0x0;}else{for(_0x56086b=0x0,_0x237f39=_0x575ffc,_0x423735=_0x56086b;_0x423735<_0x237f39;_0x423735++)_0x5e2d4e['push'](_0x5d74ca['_addProperty'](_0x25296e,_0x2a215a,_0x70a2f6,_0x423735,_0x22ed3f));}_0x22ed3f[_0x2e0ba3(0x150)]+=_0x5e2d4e['length'];}if(!(_0x70a2f6==='null'||_0x70a2f6===_0x2e0ba3(0xdd))&&!_0x36b80f&&_0x70a2f6!==_0x2e0ba3(0x132)&&_0x70a2f6!==_0x2e0ba3(0x7c)&&_0x70a2f6!==_0x2e0ba3(0xc3)){var _0x25fc93=_0x50c2de[_0x2e0ba3(0x14f)]||_0x22ed3f[_0x2e0ba3(0x14f)];if(this['_isSet'](_0x2a215a)?(_0x423735=0x0,_0x2a215a[_0x2e0ba3(0x11a)](function(_0x2dea34){var _0x320e32=_0x2e0ba3;if(_0x40d2dc++,_0x22ed3f[_0x320e32(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;return;}if(!_0x22ed3f[_0x320e32(0x81)]&&_0x22ed3f['autoExpand']&&_0x22ed3f['autoExpandPropertyCount']>_0x22ed3f[_0x320e32(0xb8)]){_0x460b57=!0x0;return;}_0x5e2d4e[_0x320e32(0x135)](_0x5d74ca['_addProperty'](_0x25296e,_0x2a215a,_0x320e32(0x14c),_0x423735++,_0x22ed3f,function(_0x599ec3){return function(){return _0x599ec3;};}(_0x2dea34)));})):this['_isMap'](_0x2a215a)&&_0x2a215a[_0x2e0ba3(0x11a)](function(_0x298807,_0x2e9c94){var _0x22e685=_0x2e0ba3;if(_0x40d2dc++,_0x22ed3f[_0x22e685(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;return;}if(!_0x22ed3f[_0x22e685(0x81)]&&_0x22ed3f[_0x22e685(0x145)]&&_0x22ed3f[_0x22e685(0x150)]>_0x22ed3f['autoExpandLimit']){_0x460b57=!0x0;return;}var _0x4472d8=_0x2e9c94['toString']();_0x4472d8[_0x22e685(0x75)]>0x64&&(_0x4472d8=_0x4472d8['slice'](0x0,0x64)+_0x22e685(0x87)),_0x5e2d4e[_0x22e685(0x135)](_0x5d74ca[_0x22e685(0x139)](_0x25296e,_0x2a215a,'Map',_0x4472d8,_0x22ed3f,function(_0x376da9){return function(){return _0x376da9;};}(_0x298807)));}),!_0x5b503b){try{for(_0x16b7cc in _0x2a215a)if(!(_0x283f38&&_0x2173c4[_0x2e0ba3(0xef)](_0x16b7cc))&&!this[_0x2e0ba3(0xdf)](_0x2a215a,_0x16b7cc,_0x22ed3f)){if(_0x40d2dc++,_0x22ed3f[_0x2e0ba3(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;break;}if(!_0x22ed3f[_0x2e0ba3(0x81)]&&_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f[_0x2e0ba3(0x150)]>_0x22ed3f[_0x2e0ba3(0xb8)]){_0x460b57=!0x0;break;}_0x5e2d4e[_0x2e0ba3(0x135)](_0x5d74ca[_0x2e0ba3(0x13f)](_0x25296e,_0x2720e2,_0x2a215a,_0x70a2f6,_0x16b7cc,_0x22ed3f));}}catch{}if(_0x2720e2[_0x2e0ba3(0x147)]=!0x0,_0x95078c&&(_0x2720e2[_0x2e0ba3(0xd7)]=!0x0),!_0x460b57){var _0x225309=[][_0x2e0ba3(0xbd)](this['_getOwnPropertyNames'](_0x2a215a))['concat'](this[_0x2e0ba3(0x12a)](_0x2a215a));for(_0x423735=0x0,_0x575ffc=_0x225309[_0x2e0ba3(0x75)];_0x423735<_0x575ffc;_0x423735++)if(_0x16b7cc=_0x225309[_0x423735],!(_0x283f38&&_0x2173c4[_0x2e0ba3(0xef)](_0x16b7cc[_0x2e0ba3(0x15e)]()))&&!this[_0x2e0ba3(0xdf)](_0x2a215a,_0x16b7cc,_0x22ed3f)&&!_0x2720e2[typeof _0x16b7cc!=_0x2e0ba3(0x7e)?_0x2e0ba3(0x8f)+_0x16b7cc[_0x2e0ba3(0x15e)]():_0x16b7cc]){if(_0x40d2dc++,_0x22ed3f[_0x2e0ba3(0x150)]++,_0x40d2dc>_0x25fc93){_0x460b57=!0x0;break;}if(!_0x22ed3f['isExpressionToEvaluate']&&_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f['autoExpandPropertyCount']>_0x22ed3f['autoExpandLimit']){_0x460b57=!0x0;break;}_0x5e2d4e[_0x2e0ba3(0x135)](_0x5d74ca['_addObjectProperty'](_0x25296e,_0x2720e2,_0x2a215a,_0x70a2f6,_0x16b7cc,_0x22ed3f));}}}}}if(_0x4647d7[_0x2e0ba3(0x160)]=_0x70a2f6,_0xc8b9f?(_0x4647d7['value']=_0x2a215a[_0x2e0ba3(0x112)](),this['_capIfString'](_0x70a2f6,_0x4647d7,_0x22ed3f,_0x50c2de)):_0x70a2f6===_0x2e0ba3(0x163)?_0x4647d7['value']=this[_0x2e0ba3(0x110)][_0x2e0ba3(0xa1)](_0x2a215a):_0x70a2f6===_0x2e0ba3(0xc3)?_0x4647d7[_0x2e0ba3(0x164)]=_0x2a215a[_0x2e0ba3(0x15e)]():_0x70a2f6===_0x2e0ba3(0xb7)?_0x4647d7[_0x2e0ba3(0x164)]=this[_0x2e0ba3(0x8a)][_0x2e0ba3(0xa1)](_0x2a215a):_0x70a2f6==='symbol'&&this[_0x2e0ba3(0x12c)]?_0x4647d7[_0x2e0ba3(0x164)]=this[_0x2e0ba3(0x12c)][_0x2e0ba3(0x166)][_0x2e0ba3(0x15e)]['call'](_0x2a215a):!_0x22ed3f[_0x2e0ba3(0xed)]&&!(_0x70a2f6==='null'||_0x70a2f6===_0x2e0ba3(0xdd))&&(delete _0x4647d7[_0x2e0ba3(0x164)],_0x4647d7[_0x2e0ba3(0xc8)]=!0x0),_0x460b57&&(_0x4647d7[_0x2e0ba3(0x169)]=!0x0),_0x927f28=_0x22ed3f[_0x2e0ba3(0x153)][_0x2e0ba3(0x16f)],_0x22ed3f[_0x2e0ba3(0x153)][_0x2e0ba3(0x16f)]=_0x4647d7,this[_0x2e0ba3(0xeb)](_0x4647d7,_0x22ed3f),_0x5e2d4e['length']){for(_0x423735=0x0,_0x575ffc=_0x5e2d4e['length'];_0x423735<_0x575ffc;_0x423735++)_0x5e2d4e[_0x423735](_0x423735);}_0x25296e['length']&&(_0x4647d7[_0x2e0ba3(0x14f)]=_0x25296e);}catch(_0x3cea83){_0x5cbb2c(_0x3cea83,_0x4647d7,_0x22ed3f);}this[_0x2e0ba3(0x96)](_0x2a215a,_0x4647d7),this[_0x2e0ba3(0xca)](_0x4647d7,_0x22ed3f),_0x22ed3f[_0x2e0ba3(0x153)][_0x2e0ba3(0x16f)]=_0x927f28,_0x22ed3f['level']--,_0x22ed3f[_0x2e0ba3(0x145)]=_0x51c281,_0x22ed3f[_0x2e0ba3(0x145)]&&_0x22ed3f[_0x2e0ba3(0x154)][_0x2e0ba3(0xf6)]();}finally{_0x579911&&(_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xb4)]=_0x579911),_0xddd6e9&&(_0x54988f[_0x2e0ba3(0xbe)][_0x2e0ba3(0xf7)]=_0xddd6e9),_0x54988f[_0x2e0ba3(0x15f)]=_0x22db18;}return _0x4647d7;},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x12a)]=function(_0x542adf){var _0x50d3db=_0x362eb9;return Object[_0x50d3db(0xb1)]?Object[_0x50d3db(0xb1)](_0x542adf):[];},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x108)]=function(_0x40db41){var _0x2ca29a=_0x362eb9;return!!(_0x40db41&&_0x54988f[_0x2ca29a(0x14c)]&&this[_0x2ca29a(0x13a)](_0x40db41)===_0x2ca29a(0xf4)&&_0x40db41[_0x2ca29a(0x11a)]);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xdf)]=function(_0x2efd92,_0x209eca,_0x50cec3){var _0x34627=_0x362eb9;if(!_0x50cec3['resolveGetters']){let _0xd9569c=this[_0x34627(0xfe)](_0x2efd92,_0x209eca);if(_0xd9569c&&_0xd9569c[_0x34627(0x168)])return!0x0;}return _0x50cec3[_0x34627(0x6b)]?typeof _0x2efd92[_0x209eca]=='function':!0x1;},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x173)]=function(_0x3a6e45){var _0x3a6d86=_0x362eb9,_0x1ef452='';return _0x1ef452=typeof _0x3a6e45,_0x1ef452===_0x3a6d86(0x107)?this[_0x3a6d86(0x13a)](_0x3a6e45)===_0x3a6d86(0x8c)?_0x1ef452=_0x3a6d86(0x133):this[_0x3a6d86(0x13a)](_0x3a6e45)===_0x3a6d86(0x109)?_0x1ef452=_0x3a6d86(0x163):this[_0x3a6d86(0x13a)](_0x3a6e45)===_0x3a6d86(0xe1)?_0x1ef452=_0x3a6d86(0xc3):_0x3a6e45===null?_0x1ef452='null':_0x3a6e45[_0x3a6d86(0xf9)]&&(_0x1ef452=_0x3a6e45[_0x3a6d86(0xf9)][_0x3a6d86(0xae)]||_0x1ef452):_0x1ef452===_0x3a6d86(0xdd)&&this[_0x3a6d86(0x7b)]&&_0x3a6e45 instanceof this[_0x3a6d86(0x7b)]&&(_0x1ef452='HTMLAllCollection'),_0x1ef452;},_0x1553d1['prototype'][_0x362eb9(0x13a)]=function(_0xbe7254){var _0x3f21ad=_0x362eb9;return Object['prototype'][_0x3f21ad(0x15e)][_0x3f21ad(0xa1)](_0xbe7254);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x13b)]=function(_0x2584e2){var _0x4947d9=_0x362eb9;return _0x2584e2===_0x4947d9(0x141)||_0x2584e2===_0x4947d9(0xcd)||_0x2584e2==='number';},_0x1553d1['prototype'][_0x362eb9(0x13e)]=function(_0xa2a455){var _0x33b765=_0x362eb9;return _0xa2a455==='Boolean'||_0xa2a455==='String'||_0xa2a455===_0x33b765(0x118);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x139)]=function(_0xb78ea3,_0x5c4e5e,_0x37ea9c,_0x5e9c85,_0x2788cd,_0x56a4d2){var _0x4ccc58=this;return function(_0x2e1f3f){var _0x21a4ef=_0x1415,_0x47a755=_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0x16f)],_0x348ee2=_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0xa6)],_0x4f95fd=_0x2788cd['node'][_0x21a4ef(0x100)];_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0x100)]=_0x47a755,_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0xa6)]=typeof _0x5e9c85==_0x21a4ef(0xb3)?_0x5e9c85:_0x2e1f3f,_0xb78ea3[_0x21a4ef(0x135)](_0x4ccc58[_0x21a4ef(0xf8)](_0x5c4e5e,_0x37ea9c,_0x5e9c85,_0x2788cd,_0x56a4d2)),_0x2788cd['node']['parent']=_0x4f95fd,_0x2788cd[_0x21a4ef(0x153)][_0x21a4ef(0xa6)]=_0x348ee2;};},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x13f)]=function(_0x4770b7,_0x19ed8d,_0x5a01f4,_0x2f32a4,_0x2539b5,_0x35b333,_0xcf15f1){var _0x413486=_0x362eb9,_0x1b0ab1=this;return _0x19ed8d[typeof _0x2539b5!='symbol'?_0x413486(0x8f)+_0x2539b5[_0x413486(0x15e)]():_0x2539b5]=!0x0,function(_0xb8c9af){var _0x316ac0=_0x413486,_0x28cf78=_0x35b333['node'][_0x316ac0(0x16f)],_0x135252=_0x35b333['node']['index'],_0x51969c=_0x35b333[_0x316ac0(0x153)][_0x316ac0(0x100)];_0x35b333[_0x316ac0(0x153)]['parent']=_0x28cf78,_0x35b333[_0x316ac0(0x153)]['index']=_0xb8c9af,_0x4770b7['push'](_0x1b0ab1[_0x316ac0(0xf8)](_0x5a01f4,_0x2f32a4,_0x2539b5,_0x35b333,_0xcf15f1)),_0x35b333[_0x316ac0(0x153)][_0x316ac0(0x100)]=_0x51969c,_0x35b333[_0x316ac0(0x153)][_0x316ac0(0xa6)]=_0x135252;};},_0x1553d1['prototype'][_0x362eb9(0xf8)]=function(_0x56f923,_0xe02046,_0x35e01a,_0x31febe,_0x4c60e0){var _0x5dc645=_0x362eb9,_0x42f7fc=this;_0x4c60e0||(_0x4c60e0=function(_0x579f08,_0x5371a1){return _0x579f08[_0x5371a1];});var _0x29473c=_0x35e01a['toString'](),_0x2cbdf1=_0x31febe[_0x5dc645(0xea)]||{},_0x4c9159=_0x31febe['depth'],_0x120fec=_0x31febe['isExpressionToEvaluate'];try{var _0xb650b=this['_isMap'](_0x56f923),_0x2ab92b=_0x29473c;_0xb650b&&_0x2ab92b[0x0]==='\\\\x27'&&(_0x2ab92b=_0x2ab92b['substr'](0x1,_0x2ab92b[_0x5dc645(0x75)]-0x2));var _0x47228a=_0x31febe[_0x5dc645(0xea)]=_0x2cbdf1[_0x5dc645(0x8f)+_0x2ab92b];_0x47228a&&(_0x31febe[_0x5dc645(0xed)]=_0x31febe['depth']+0x1),_0x31febe[_0x5dc645(0x81)]=!!_0x47228a;var _0x23862f=typeof _0x35e01a==_0x5dc645(0x7e),_0x3cd986={'name':_0x23862f||_0xb650b?_0x29473c:this[_0x5dc645(0x122)](_0x29473c)};if(_0x23862f&&(_0x3cd986[_0x5dc645(0x7e)]=!0x0),!(_0xe02046===_0x5dc645(0x133)||_0xe02046===_0x5dc645(0x155))){var _0x53d604=this[_0x5dc645(0xfe)](_0x56f923,_0x35e01a);if(_0x53d604&&(_0x53d604['set']&&(_0x3cd986[_0x5dc645(0xbb)]=!0x0),_0x53d604[_0x5dc645(0x168)]&&!_0x47228a&&!_0x31febe['resolveGetters']))return _0x3cd986[_0x5dc645(0x152)]=!0x0,this[_0x5dc645(0x136)](_0x3cd986,_0x31febe),_0x3cd986;}var _0x299969;try{_0x299969=_0x4c60e0(_0x56f923,_0x35e01a);}catch(_0x145369){return _0x3cd986={'name':_0x29473c,'type':_0x5dc645(0x92),'error':_0x145369[_0x5dc645(0x146)]},this[_0x5dc645(0x136)](_0x3cd986,_0x31febe),_0x3cd986;}var _0x20e649=this[_0x5dc645(0x173)](_0x299969),_0x367e10=this['_isPrimitiveType'](_0x20e649);if(_0x3cd986[_0x5dc645(0x160)]=_0x20e649,_0x367e10)this[_0x5dc645(0x136)](_0x3cd986,_0x31febe,_0x299969,function(){var _0x2dc954=_0x5dc645;_0x3cd986[_0x2dc954(0x164)]=_0x299969[_0x2dc954(0x112)](),!_0x47228a&&_0x42f7fc[_0x2dc954(0x114)](_0x20e649,_0x3cd986,_0x31febe,{});});else{var _0x5dfaf4=_0x31febe[_0x5dc645(0x145)]&&_0x31febe[_0x5dc645(0xfb)]<_0x31febe[_0x5dc645(0xe9)]&&_0x31febe[_0x5dc645(0x154)][_0x5dc645(0x80)](_0x299969)<0x0&&_0x20e649!=='function'&&_0x31febe[_0x5dc645(0x150)]<_0x31febe['autoExpandLimit'];_0x5dfaf4||_0x31febe[_0x5dc645(0xfb)]<_0x4c9159||_0x47228a?this[_0x5dc645(0x13d)](_0x3cd986,_0x299969,_0x31febe,_0x47228a||{}):this[_0x5dc645(0x136)](_0x3cd986,_0x31febe,_0x299969,function(){var _0x223d28=_0x5dc645;_0x20e649==='null'||_0x20e649==='undefined'||(delete _0x3cd986[_0x223d28(0x164)],_0x3cd986[_0x223d28(0xc8)]=!0x0);});}return _0x3cd986;}finally{_0x31febe[_0x5dc645(0xea)]=_0x2cbdf1,_0x31febe[_0x5dc645(0xed)]=_0x4c9159,_0x31febe[_0x5dc645(0x81)]=_0x120fec;}},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x114)]=function(_0x268238,_0x5c408f,_0x1bbfe8,_0x14e025){var _0xb291a7=_0x362eb9,_0x378a39=_0x14e025['strLength']||_0x1bbfe8[_0xb291a7(0x13c)];if((_0x268238==='string'||_0x268238===_0xb291a7(0x132))&&_0x5c408f[_0xb291a7(0x164)]){let _0x11ccc2=_0x5c408f['value']['length'];_0x1bbfe8[_0xb291a7(0x90)]+=_0x11ccc2,_0x1bbfe8[_0xb291a7(0x90)]>_0x1bbfe8['totalStrLength']?(_0x5c408f[_0xb291a7(0xc8)]='',delete _0x5c408f[_0xb291a7(0x164)]):_0x11ccc2>_0x378a39&&(_0x5c408f['capped']=_0x5c408f['value'][_0xb291a7(0xd4)](0x0,_0x378a39),delete _0x5c408f['value']);}},_0x1553d1[_0x362eb9(0x166)]['_isMap']=function(_0x2c418a){var _0x571864=_0x362eb9;return!!(_0x2c418a&&_0x54988f[_0x571864(0x12f)]&&this['_objectToString'](_0x2c418a)===_0x571864(0xe7)&&_0x2c418a['forEach']);},_0x1553d1['prototype'][_0x362eb9(0x122)]=function(_0x259913){var _0x4fb046=_0x362eb9;if(_0x259913['match'](/^\\\\d+$/))return _0x259913;var _0x25f80b;try{_0x25f80b=JSON[_0x4fb046(0xb6)](''+_0x259913);}catch{_0x25f80b='\\\\x22'+this[_0x4fb046(0x13a)](_0x259913)+'\\\\x22';}return _0x25f80b['match'](/^\\\"([a-zA-Z_][a-zA-Z_0-9]*)\\\"$/)?_0x25f80b=_0x25f80b[_0x4fb046(0xd4)](0x1,_0x25f80b['length']-0x2):_0x25f80b=_0x25f80b[_0x4fb046(0xe5)](/'/g,'\\\\x5c\\\\x27')['replace'](/\\\\\\\\\\\"/g,'\\\\x22')[_0x4fb046(0xe5)](/(^\\\"|\\\"$)/g,'\\\\x27'),_0x25f80b;},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x136)]=function(_0x51dac5,_0x17415c,_0x5e7cf5,_0x4b1e80){var _0x394081=_0x362eb9;this[_0x394081(0xeb)](_0x51dac5,_0x17415c),_0x4b1e80&&_0x4b1e80(),this[_0x394081(0x96)](_0x5e7cf5,_0x51dac5),this[_0x394081(0xca)](_0x51dac5,_0x17415c);},_0x1553d1['prototype'][_0x362eb9(0xeb)]=function(_0x152418,_0x11633b){var _0x1e700d=_0x362eb9;this['_setNodeId'](_0x152418,_0x11633b),this['_setNodeQueryPath'](_0x152418,_0x11633b),this[_0x1e700d(0xd8)](_0x152418,_0x11633b),this[_0x1e700d(0xff)](_0x152418,_0x11633b);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x12d)]=function(_0x2b1e43,_0x57edd2){},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x103)]=function(_0x539da7,_0x19786b){},_0x1553d1['prototype']['_setNodeLabel']=function(_0x5e0d54,_0x222367){},_0x1553d1['prototype'][_0x362eb9(0x14b)]=function(_0x5eebd0){var _0x47a672=_0x362eb9;return _0x5eebd0===this[_0x47a672(0x120)];},_0x1553d1['prototype']['_treeNodePropertiesAfterFullValue']=function(_0x488337,_0xfb8c5d){var _0x249fef=_0x362eb9;this['_setNodeLabel'](_0x488337,_0xfb8c5d),this[_0x249fef(0x16c)](_0x488337),_0xfb8c5d[_0x249fef(0x14d)]&&this[_0x249fef(0x12b)](_0x488337),this[_0x249fef(0x104)](_0x488337,_0xfb8c5d),this[_0x249fef(0xc1)](_0x488337,_0xfb8c5d),this[_0x249fef(0x134)](_0x488337);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x96)]=function(_0x50775a,_0x3a2dc1){var _0x18e664=_0x362eb9;try{_0x50775a&&typeof _0x50775a[_0x18e664(0x75)]==_0x18e664(0xb3)&&(_0x3a2dc1[_0x18e664(0x75)]=_0x50775a['length']);}catch{}if(_0x3a2dc1[_0x18e664(0x160)]===_0x18e664(0xb3)||_0x3a2dc1[_0x18e664(0x160)]===_0x18e664(0x118)){if(isNaN(_0x3a2dc1[_0x18e664(0x164)]))_0x3a2dc1[_0x18e664(0x128)]=!0x0,delete _0x3a2dc1[_0x18e664(0x164)];else switch(_0x3a2dc1['value']){case Number[_0x18e664(0x106)]:_0x3a2dc1[_0x18e664(0xa8)]=!0x0,delete _0x3a2dc1[_0x18e664(0x164)];break;case Number[_0x18e664(0x16d)]:_0x3a2dc1[_0x18e664(0x10a)]=!0x0,delete _0x3a2dc1[_0x18e664(0x164)];break;case 0x0:this[_0x18e664(0xf3)](_0x3a2dc1[_0x18e664(0x164)])&&(_0x3a2dc1[_0x18e664(0x171)]=!0x0);break;}}else _0x3a2dc1[_0x18e664(0x160)]===_0x18e664(0xd9)&&typeof _0x50775a['name']==_0x18e664(0xcd)&&_0x50775a[_0x18e664(0xae)]&&_0x3a2dc1['name']&&_0x50775a['name']!==_0x3a2dc1[_0x18e664(0xae)]&&(_0x3a2dc1[_0x18e664(0x129)]=_0x50775a[_0x18e664(0xae)]);},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xf3)]=function(_0x5d4a64){var _0x124dbd=_0x362eb9;return 0x1/_0x5d4a64===Number[_0x124dbd(0x16d)];},_0x1553d1['prototype'][_0x362eb9(0x12b)]=function(_0x5effc0){var _0xcb9369=_0x362eb9;!_0x5effc0[_0xcb9369(0x14f)]||!_0x5effc0[_0xcb9369(0x14f)][_0xcb9369(0x75)]||_0x5effc0[_0xcb9369(0x160)]===_0xcb9369(0x133)||_0x5effc0[_0xcb9369(0x160)]===_0xcb9369(0x12f)||_0x5effc0[_0xcb9369(0x160)]===_0xcb9369(0x14c)||_0x5effc0[_0xcb9369(0x14f)][_0xcb9369(0xda)](function(_0x348183,_0x3a9dfe){var _0x2dc7c8=_0xcb9369,_0x4182bd=_0x348183[_0x2dc7c8(0xae)]['toLowerCase'](),_0x4230c7=_0x3a9dfe[_0x2dc7c8(0xae)][_0x2dc7c8(0x130)]();return _0x4182bd<_0x4230c7?-0x1:_0x4182bd>_0x4230c7?0x1:0x0;});},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x104)]=function(_0x375221,_0x361945){var _0x131a55=_0x362eb9;if(!(_0x361945[_0x131a55(0x6b)]||!_0x375221[_0x131a55(0x14f)]||!_0x375221[_0x131a55(0x14f)][_0x131a55(0x75)])){for(var _0x57e4e3=[],_0x4d073a=[],_0x3d548c=0x0,_0x1a0472=_0x375221['props']['length'];_0x3d548c<_0x1a0472;_0x3d548c++){var _0x392721=_0x375221[_0x131a55(0x14f)][_0x3d548c];_0x392721[_0x131a55(0x160)]==='function'?_0x57e4e3[_0x131a55(0x135)](_0x392721):_0x4d073a[_0x131a55(0x135)](_0x392721);}if(!(!_0x4d073a['length']||_0x57e4e3[_0x131a55(0x75)]<=0x1)){_0x375221[_0x131a55(0x14f)]=_0x4d073a;var _0x300a86={'functionsNode':!0x0,'props':_0x57e4e3};this['_setNodeId'](_0x300a86,_0x361945),this[_0x131a55(0x71)](_0x300a86,_0x361945),this[_0x131a55(0x16c)](_0x300a86),this[_0x131a55(0xff)](_0x300a86,_0x361945),_0x300a86['id']+='\\\\x20f',_0x375221['props']['unshift'](_0x300a86);}}},_0x1553d1['prototype'][_0x362eb9(0xc1)]=function(_0xdd78d6,_0x5ea79f){},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x16c)]=function(_0x2ea115){},_0x1553d1['prototype'][_0x362eb9(0x174)]=function(_0x59d77a){var _0x5648e8=_0x362eb9;return Array[_0x5648e8(0x79)](_0x59d77a)||typeof _0x59d77a=='object'&&this['_objectToString'](_0x59d77a)==='[object\\\\x20Array]';},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xff)]=function(_0x8d330,_0x234a4d){},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0x134)]=function(_0x5c22fa){var _0x64bada=_0x362eb9;delete _0x5c22fa[_0x64bada(0xb0)],delete _0x5c22fa[_0x64bada(0x16a)],delete _0x5c22fa[_0x64bada(0xf2)];},_0x1553d1[_0x362eb9(0x166)][_0x362eb9(0xd8)]=function(_0x564a04,_0xf08319){};let _0x14c23a=new _0x1553d1(),_0x39a863={'props':_0x2ab5e9[_0x362eb9(0xe2)]['props']||0x64,'elements':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0x10b)]||0x64,'strLength':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0x13c)]||0x400*0x32,'totalStrLength':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0x9a)]||0x400*0x32,'autoExpandLimit':_0x2ab5e9[_0x362eb9(0xe2)][_0x362eb9(0xb8)]||0x1388,'autoExpandMaxDepth':_0x2ab5e9['defaultLimits']['autoExpandMaxDepth']||0xa},_0x5de84c={'props':_0x2ab5e9[_0x362eb9(0x94)][_0x362eb9(0x14f)]||0x5,'elements':_0x2ab5e9['reducedLimits'][_0x362eb9(0x10b)]||0x5,'strLength':_0x2ab5e9[_0x362eb9(0x94)][_0x362eb9(0x13c)]||0x100,'totalStrLength':_0x2ab5e9['reducedLimits']['totalStrLength']||0x100*0x3,'autoExpandLimit':_0x2ab5e9[_0x362eb9(0x94)][_0x362eb9(0xb8)]||0x1e,'autoExpandMaxDepth':_0x2ab5e9[_0x362eb9(0x94)]['autoExpandMaxDepth']||0x2};if(_0x5c9ae8){let _0x1b7536=_0x14c23a[_0x362eb9(0x13d)]['bind'](_0x14c23a);_0x14c23a[_0x362eb9(0x13d)]=function(_0x2cec0e,_0xbee19b,_0x5aae30,_0x1cbcb1){return _0x1b7536(_0x2cec0e,_0x5c9ae8(_0xbee19b),_0x5aae30,_0x1cbcb1);};}function _0x4c7fc5(_0x346455,_0x2b6a2f,_0x46c6e1,_0x1cd4b7,_0xafc0be,_0x11c2b6){var _0x507acf=_0x362eb9;let _0x4e3b4f,_0x40b10e;try{_0x40b10e=_0x33c06c(),_0x4e3b4f=_0x1c6321[_0x2b6a2f],!_0x4e3b4f||_0x40b10e-_0x4e3b4f['ts']>_0x2575e9[_0x507acf(0x157)]['resetWhenQuietMs']&&_0x4e3b4f[_0x507acf(0x7f)]&&_0x4e3b4f[_0x507acf(0x105)]/_0x4e3b4f[_0x507acf(0x7f)]<_0x2575e9[_0x507acf(0x157)]['resetOnProcessingTimeAverageMs']?(_0x1c6321[_0x2b6a2f]=_0x4e3b4f={'count':0x0,'time':0x0,'ts':_0x40b10e},_0x1c6321[_0x507acf(0x93)]={}):_0x40b10e-_0x1c6321[_0x507acf(0x93)]['ts']>_0x2575e9[_0x507acf(0x102)]['resetWhenQuietMs']&&_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]&&_0x1c6321[_0x507acf(0x93)][_0x507acf(0x105)]/_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]<_0x2575e9['global'][_0x507acf(0x7a)]&&(_0x1c6321[_0x507acf(0x93)]={});let _0x4786e5=[],_0x1867c7=_0x4e3b4f[_0x507acf(0x148)]||_0x1c6321['hits'][_0x507acf(0x148)]?_0x5de84c:_0x39a863,_0x42979e=_0x35724c=>{var _0x36e35e=_0x507acf;let _0x3cf0b1={};return _0x3cf0b1[_0x36e35e(0x14f)]=_0x35724c['props'],_0x3cf0b1['elements']=_0x35724c[_0x36e35e(0x10b)],_0x3cf0b1['strLength']=_0x35724c['strLength'],_0x3cf0b1[_0x36e35e(0x9a)]=_0x35724c[_0x36e35e(0x9a)],_0x3cf0b1[_0x36e35e(0xb8)]=_0x35724c[_0x36e35e(0xb8)],_0x3cf0b1[_0x36e35e(0xe9)]=_0x35724c[_0x36e35e(0xe9)],_0x3cf0b1[_0x36e35e(0x14d)]=!0x1,_0x3cf0b1[_0x36e35e(0x6b)]=!_0x4ca48c,_0x3cf0b1[_0x36e35e(0xed)]=0x1,_0x3cf0b1[_0x36e35e(0xfb)]=0x0,_0x3cf0b1[_0x36e35e(0xc5)]=_0x36e35e(0x124),_0x3cf0b1[_0x36e35e(0xec)]='root_exp',_0x3cf0b1[_0x36e35e(0x145)]=!0x0,_0x3cf0b1[_0x36e35e(0x154)]=[],_0x3cf0b1['autoExpandPropertyCount']=0x0,_0x3cf0b1[_0x36e35e(0x116)]=_0x2ab5e9[_0x36e35e(0x116)],_0x3cf0b1[_0x36e35e(0x90)]=0x0,_0x3cf0b1[_0x36e35e(0x153)]={'current':void 0x0,'parent':void 0x0,'index':0x0},_0x3cf0b1;};for(var _0xcf31ee=0x0;_0xcf31ee<_0xafc0be[_0x507acf(0x75)];_0xcf31ee++)_0x4786e5[_0x507acf(0x135)](_0x14c23a['serialize']({'timeNode':_0x346455===_0x507acf(0x105)||void 0x0},_0xafc0be[_0xcf31ee],_0x42979e(_0x1867c7),{}));if(_0x346455===_0x507acf(0x142)||_0x346455===_0x507acf(0xb4)){let _0x29266d=Error[_0x507acf(0x9f)];try{Error[_0x507acf(0x9f)]=0x1/0x0,_0x4786e5['push'](_0x14c23a[_0x507acf(0x13d)]({'stackNode':!0x0},new Error()[_0x507acf(0x77)],_0x42979e(_0x1867c7),{'strLength':0x1/0x0}));}finally{Error[_0x507acf(0x9f)]=_0x29266d;}}return{'method':'log','version':_0x242b6d,'args':[{'ts':_0x46c6e1,'session':_0x1cd4b7,'args':_0x4786e5,'id':_0x2b6a2f,'context':_0x11c2b6}]};}catch(_0x1f5703){return{'method':_0x507acf(0x119),'version':_0x242b6d,'args':[{'ts':_0x46c6e1,'session':_0x1cd4b7,'args':[{'type':_0x507acf(0x92),'error':_0x1f5703&&_0x1f5703[_0x507acf(0x146)]}],'id':_0x2b6a2f,'context':_0x11c2b6}]};}finally{try{if(_0x4e3b4f&&_0x40b10e){let _0x21bfd9=_0x33c06c();_0x4e3b4f[_0x507acf(0x7f)]++,_0x4e3b4f[_0x507acf(0x105)]+=_0x2020f4(_0x40b10e,_0x21bfd9),_0x4e3b4f['ts']=_0x21bfd9,_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]++,_0x1c6321['hits'][_0x507acf(0x105)]+=_0x2020f4(_0x40b10e,_0x21bfd9),_0x1c6321[_0x507acf(0x93)]['ts']=_0x21bfd9,(_0x4e3b4f[_0x507acf(0x7f)]>_0x2575e9[_0x507acf(0x157)][_0x507acf(0x97)]||_0x4e3b4f[_0x507acf(0x105)]>_0x2575e9[_0x507acf(0x157)][_0x507acf(0x91)])&&(_0x4e3b4f[_0x507acf(0x148)]=!0x0),(_0x1c6321[_0x507acf(0x93)][_0x507acf(0x7f)]>_0x2575e9['global'][_0x507acf(0x97)]||_0x1c6321[_0x507acf(0x93)]['time']>_0x2575e9[_0x507acf(0x102)]['reduceOnAccumulatedProcessingTimeMs'])&&(_0x1c6321[_0x507acf(0x93)][_0x507acf(0x148)]=!0x0);}}catch{}}}return _0x4c7fc5;}function G(_0x3110a3){var _0x3bd871=_0x3bb860;if(_0x3110a3&&typeof _0x3110a3==_0x3bd871(0x107)&&_0x3110a3['constructor'])switch(_0x3110a3[_0x3bd871(0xf9)][_0x3bd871(0xae)]){case _0x3bd871(0xcb):return _0x3110a3['hasOwnProperty'](Symbol[_0x3bd871(0xc9)])?Promise['resolve']():_0x3110a3;case'bound\\\\x20Promise':return Promise[_0x3bd871(0x82)]();}return _0x3110a3;}((_0x89476e,_0x28b07f,_0x238868,_0x4cce03,_0x2dfef1,_0x1e02d7,_0x12a822,_0x1c8003,_0x4ba878,_0x4d841f,_0x421cd1,_0x9d4723)=>{var _0x41e2dd=_0x3bb860;if(_0x89476e[_0x41e2dd(0xfa)])return _0x89476e[_0x41e2dd(0xfa)];let _0x49128d={'consoleLog':()=>{},'consoleTrace':()=>{},'consoleTime':()=>{},'consoleTimeEnd':()=>{},'autoLog':()=>{},'autoLogMany':()=>{},'autoTraceMany':()=>{},'coverage':()=>{},'autoTrace':()=>{},'autoTime':()=>{},'autoTimeEnd':()=>{}};if(!X(_0x89476e,_0x1c8003,_0x2dfef1))return _0x89476e['_console_ninja']=_0x49128d,_0x89476e[_0x41e2dd(0xfa)];let _0x3b17c2=b(_0x89476e),_0x5e45ab=_0x3b17c2['elapsed'],_0x5e3035=_0x3b17c2[_0x41e2dd(0x10c)],_0x59dd7b=_0x3b17c2['now'],_0x41cf3b={'hits':{},'ts':{}},_0x2245c0=J(_0x89476e,_0x4ba878,_0x41cf3b,_0x1e02d7,_0x9d4723,_0x2dfef1==='next.js'?G:void 0x0),_0x23a585=(_0x50e6b3,_0x4f445a,_0x17722c,_0x24a0e1,_0x5e2f8e,_0x23d340)=>{var _0x320467=_0x41e2dd;let _0x26447d=_0x89476e[_0x320467(0xfa)];try{return _0x89476e[_0x320467(0xfa)]=_0x49128d,_0x2245c0(_0x50e6b3,_0x4f445a,_0x17722c,_0x24a0e1,_0x5e2f8e,_0x23d340);}finally{_0x89476e[_0x320467(0xfa)]=_0x26447d;}},_0x42ba27=_0x7674fa=>{_0x41cf3b['ts'][_0x7674fa]=_0x5e3035();},_0x24d759=(_0x5f8923,_0x3f0a6d)=>{var _0x955907=_0x41e2dd;let _0x55a4b5=_0x41cf3b['ts'][_0x3f0a6d];if(delete _0x41cf3b['ts'][_0x3f0a6d],_0x55a4b5){let _0x42836e=_0x5e45ab(_0x55a4b5,_0x5e3035());_0x1c7723(_0x23a585(_0x955907(0x105),_0x5f8923,_0x59dd7b(),_0x1e7b66,[_0x42836e],_0x3f0a6d));}},_0x1694ef=_0x470e65=>{var _0x25a365=_0x41e2dd,_0x59f8f2;return _0x2dfef1==='next.js'&&_0x89476e['origin']&&((_0x59f8f2=_0x470e65==null?void 0x0:_0x470e65[_0x25a365(0x115)])==null?void 0x0:_0x59f8f2[_0x25a365(0x75)])&&(_0x470e65[_0x25a365(0x115)][0x0][_0x25a365(0xb2)]=_0x89476e['origin']),_0x470e65;};_0x89476e[_0x41e2dd(0xfa)]={'consoleLog':(_0x289d5e,_0x17a27d)=>{var _0x5de7e4=_0x41e2dd;_0x89476e[_0x5de7e4(0xbe)]['log'][_0x5de7e4(0xae)]!==_0x5de7e4(0xde)&&_0x1c7723(_0x23a585(_0x5de7e4(0x119),_0x289d5e,_0x59dd7b(),_0x1e7b66,_0x17a27d));},'consoleTrace':(_0x550c51,_0x217373)=>{var _0x58b605=_0x41e2dd,_0x5c42fd,_0x2eb19b;_0x89476e[_0x58b605(0xbe)][_0x58b605(0x119)][_0x58b605(0xae)]!=='disabledTrace'&&((_0x2eb19b=(_0x5c42fd=_0x89476e[_0x58b605(0x167)])==null?void 0x0:_0x5c42fd[_0x58b605(0x149)])!=null&&_0x2eb19b[_0x58b605(0x153)]&&(_0x89476e[_0x58b605(0x83)]=!0x0),_0x1c7723(_0x1694ef(_0x23a585(_0x58b605(0x142),_0x550c51,_0x59dd7b(),_0x1e7b66,_0x217373))));},'consoleError':(_0x388785,_0x1df99e)=>{var _0x3e3286=_0x41e2dd;_0x89476e[_0x3e3286(0x83)]=!0x0,_0x1c7723(_0x1694ef(_0x23a585(_0x3e3286(0xb4),_0x388785,_0x59dd7b(),_0x1e7b66,_0x1df99e)));},'consoleTime':_0x5dfd28=>{_0x42ba27(_0x5dfd28);},'consoleTimeEnd':(_0x2ea531,_0x32fcea)=>{_0x24d759(_0x32fcea,_0x2ea531);},'autoLog':(_0x3210b3,_0x41f469)=>{var _0x149cc9=_0x41e2dd;_0x1c7723(_0x23a585(_0x149cc9(0x119),_0x41f469,_0x59dd7b(),_0x1e7b66,[_0x3210b3]));},'autoLogMany':(_0x5cca3a,_0xfa047d)=>{_0x1c7723(_0x23a585('log',_0x5cca3a,_0x59dd7b(),_0x1e7b66,_0xfa047d));},'autoTrace':(_0xdc9d24,_0x1f706d)=>{_0x1c7723(_0x1694ef(_0x23a585('trace',_0x1f706d,_0x59dd7b(),_0x1e7b66,[_0xdc9d24])));},'autoTraceMany':(_0x369170,_0x2658f9)=>{var _0x21206c=_0x41e2dd;_0x1c7723(_0x1694ef(_0x23a585(_0x21206c(0x142),_0x369170,_0x59dd7b(),_0x1e7b66,_0x2658f9)));},'autoTime':(_0x216685,_0x1f9d8a,_0x5d3d6a)=>{_0x42ba27(_0x5d3d6a);},'autoTimeEnd':(_0x38e311,_0x8da60e,_0x102528)=>{_0x24d759(_0x8da60e,_0x102528);},'coverage':_0x3ee68b=>{_0x1c7723({'method':'coverage','version':_0x1e02d7,'args':[{'id':_0x3ee68b}]});}};let _0x1c7723=H(_0x89476e,_0x28b07f,_0x238868,_0x4cce03,_0x2dfef1,_0x4d841f,_0x421cd1),_0x1e7b66=_0x89476e[_0x41e2dd(0x14a)];return _0x89476e[_0x41e2dd(0xfa)];})(globalThis,_0x3bb860(0x6d),_0x3bb860(0x165),_0x3bb860(0x15b),'webpack',_0x3bb860(0x14e),'1764769008274',[\\\"localhost\\\",\\\"127.0.0.1\\\",\\\"example.cypress.io\\\",\\\"10.0.2.2\\\",\\\"Matejs-MacBook-Pro.local\\\",\\\"192.168.0.230\\\"],_0x3bb860(0x15c),_0x3bb860(0x159),_0x3bb860(0xa4),_0x3bb860(0xd1));\");\n } catch (e) {\n console.error(e);\n }\n}\n/* istanbul ignore next */\nfunction oo_oo(/**@type{any}**/i, /**@type{any}**/...v) {\n try {\n oo_cm().consoleLog(i, v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_tr(/**@type{any}**/i, /**@type{any}**/...v) {\n try {\n oo_cm().consoleTrace(i, v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_tx(/**@type{any}**/i, /**@type{any}**/...v) {\n try {\n oo_cm().consoleError(i, v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_ts(/**@type{any}**/v) {\n try {\n oo_cm().consoleTime(v);\n } catch (e) {}\n return v;\n}\n/* istanbul ignore next */\nfunction oo_te(/**@type{any}**/v, /**@type{any}**/i) {\n try {\n oo_cm().consoleTimeEnd(v, i);\n } catch (e) {}\n return v;\n} /*eslint unicorn/no-abusive-eslint-disable:,eslint-comments/disable-enable-pair:,eslint-comments/no-unlimited-disable:,eslint-comments/no-aggregating-enable:,eslint-comments/no-duplicate-disable:,eslint-comments/no-unused-disable:,eslint-comments/no-unused-enable:,*/\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-blocker-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -279,7 +279,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-blocker-deleted'],\n data() {\n return {\n visible: false,\n blocker: null,\n isDeleting: false,\n modalName: 'z-delete-blocker-modal'\n };\n },\n methods: {\n async showModal({\n blocker\n }) {\n this.blocker = blocker;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteBlocker() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/blockers/${this.blocker.id}`);\n this.$emit('on-blocker-deleted', this.blocker);\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-delete-blocker-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-blocker-deleted'],\n data() {\n return {\n visible: false,\n blocker: null,\n isDeleting: false,\n modalName: 'z-delete-blocker-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n blocker\n }) {\n this.blocker = blocker;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteBlocker() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/blockers/${this.blocker.id}`);\n this.$emit('on-blocker-deleted', this.blocker);\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-delete-blocker-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -312,7 +312,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['close', 'master-task-edited'],\n data() {\n return {\n visible: false,\n mastertask: null,\n modalName: 'z-complete-master-task-modal'\n };\n },\n methods: {\n async showModal({\n mastertask\n }) {\n this.mastertask = mastertask;\n this.visible = true;\n },\n async complete() {\n try {\n const tempMastertask = {\n ...this.mastertask,\n is_finished: this.mastertask.is_finished ? 0 : 1\n };\n const {\n mastertask\n } = await this.$axios.put_auth(`v1/mastertasks/${tempMastertask.id}`, tempMastertask);\n this.visible = false;\n this.$emit('master-task-edited', mastertask);\n this.$events.emit('close-both-modals');\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-complete-master-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['close', 'master-task-edited'],\n data() {\n return {\n visible: false,\n mastertask: null,\n modalName: 'z-complete-master-task-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n mastertask\n }) {\n this.mastertask = mastertask;\n this.visible = true;\n },\n async complete() {\n try {\n const tempMastertask = {\n ...this.mastertask,\n is_finished: this.mastertask.is_finished ? 0 : 1\n };\n const {\n mastertask\n } = await this.$axios.put_auth(`v1/mastertasks/${tempMastertask.id}`, tempMastertask);\n this.visible = false;\n this.$emit('master-task-edited', mastertask);\n this.$events.emit('close-both-modals');\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-complete-master-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -323,7 +323,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-mastertask-deleted'],\n data() {\n return {\n visible: false,\n mastertask: null,\n isDeleting: false,\n modalName: 'z-delete-master-task-modal'\n };\n },\n methods: {\n async showModal({\n mastertask\n }) {\n this.mastertask = mastertask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteMasterTask() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/mastertasks/${this.mastertask.id}`);\n this.$emit('on-mastertask-deleted', this.mastertask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-master-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-mastertask-deleted'],\n data() {\n return {\n visible: false,\n mastertask: null,\n isDeleting: false,\n modalName: 'z-delete-master-task-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n mastertask\n }) {\n this.mastertask = mastertask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteMasterTask() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/mastertasks/${this.mastertask.id}`);\n this.$emit('on-mastertask-deleted', this.mastertask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-master-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -334,7 +334,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_1__[\"default\"]],\n data() {\n return {\n visible: false,\n member: null,\n team: null,\n modalName: 'z-delete-team-member-modal'\n };\n },\n methods: {\n async showModal({\n member,\n team\n }) {\n this.member = member;\n this.team = team;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteMember() {\n this.team.employees = [...this.team.employees].filter(employee => employee.id !== this.member.id);\n try {\n if (this.team.id) {\n const {\n team\n } = await this.$axios.put_auth(`v1/teams/${this.team.id}`, this.team);\n this.$store.commit('tm/update_team', team);\n } else {\n const {\n team\n } = await this.$axios.post_auth(`v1/teams`, this.team);\n this.$store.commit('tm/save_team', team);\n }\n this.$events.emit('master-task:team-member-deleted', {\n teamId: this.team.id,\n memberId: this.member.id\n });\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n _enrichTeam(team) {\n team.employees = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].enrichEmployees(team.employees);\n return team;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-team-member-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_1__[\"default\"]],\n data() {\n return {\n visible: false,\n member: null,\n team: null,\n modalName: 'z-delete-team-member-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n member,\n team\n }) {\n this.member = member;\n this.team = team;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteMember() {\n this.team.employees = [...this.team.employees].filter(employee => employee.id !== this.member.id);\n try {\n if (this.team.id) {\n const {\n team\n } = await this.$axios.put_auth(`v1/teams/${this.team.id}`, this.team);\n this.$store.commit('tm/update_team', team);\n } else {\n const {\n team\n } = await this.$axios.post_auth(`v1/teams`, this.team);\n this.$store.commit('tm/save_team', team);\n }\n this.$events.emit('master-task:team-member-deleted', {\n teamId: this.team.id,\n memberId: this.member.id\n });\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n _enrichTeam(team) {\n team.employees = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].enrichEmployees(team.employees);\n return team;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-team-member-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -345,7 +345,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@_components/z-datepicker.vue */ \"./src/plugins/tm@_components/z-datepicker.vue\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_components/a-tasks-table.vue */ \"./src/plugins/tm@modal/master-task/_components/a-tasks-table.vue\");\n/* harmony import */ var _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_components/a-mastertask-description.vue */ \"./src/plugins/tm@modal/master-task/_components/a-mastertask-description.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n// import ZAutocomplete from '@/plugins/tm@_components/z-autocomplete.vue'\n\n\n// import tmUtils from '@/plugins/tm@_utils/tm.utils'\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // MIXINS\n // computed: employeesOptions, projectsOptions\n // methods: onProjectSelected, onEmployeeSelected, onEmployeeDurationChanged\n // watch: mastertask.team_id\n\n components: {\n AMastertaskDescription: _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n ATasksTable: _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n ZDatepicker: _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ZFilesUpload: _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n // ZAutocomplete,\n QuillEditor: _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_12__.QuillEditor,\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_22__[\"default\"]\n },\n mixins: [_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_15__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_19__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_13__[\"default\"]],\n // MIXINS\n // computed: employeesOptions, projectsOptions\n // methods: onProjectSelected, onEmployeeSelected, onEmployeeDurationChanged\n // watch: mastertask.team_id\n\n emits: ['master-task-edited', 'close'],\n data() {\n return {\n deadline: null,\n editMode: false,\n visible: false,\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(),\n mastertask: null,\n isSaving: false,\n showAddEmployeeInput: false,\n date: null,\n projectCodeSearch: null,\n modalName: 'z-master-task-modal'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_18__.mapGetters)('tm', ['teams', 'projects', 'enrichedEmployees']),\n enrichedSubtasks() {\n if (!this.mastertask?.subtasks) return null;\n return this.mastertask.subtasks.map(subtask => {\n const employee = this.enrichedEmployees.find(employee => employee.id == subtask.employee_id);\n return {\n ...subtask,\n _initials: employee ? employee.name.charAt(0) + employee.surname.charAt(0) : '?',\n _fullName: employee ? `${employee.name} ${employee.surname}` : ''\n };\n }).filter(subtask => subtask !== null);\n }\n },\n validations() {\n const quillEditorRequired = value => {\n if (!value || !value.length || !value.replace(/<[^>]*>/g, '').length) return false;\n return true;\n };\n return {\n mastertask: {\n employees: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required,\n minLength: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.minLength)(1),\n $each: {\n duration: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n }\n }\n },\n project_id: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n description: {\n quillEditorRequired\n },\n deadline: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n estimated_duration: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n _deadline_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n }\n }\n };\n },\n watch: {\n editMode() {\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.mastertask.description || '');\n if (!this.mastertask?.id) return;\n const date = new Date(this.mastertask.deadline);\n const hours = date.getHours();\n const minutes = date.getMinutes();\n this.mastertask._deadline_time = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n });\n },\n mastertask: {\n handler(val) {\n if (this.editMode && !this.mastertask?.id) {\n localStorage.setItem('mastertaskData', JSON.stringify(val));\n }\n },\n deep: true\n },\n 'mastertask.team_id': {\n handler(value, oldValue) {\n if (this.editMode && !value && oldValue) {\n // Removes only employees from the old team when team_id is removed\n const oldTeamEmployeesIds = this.teams.find(team => team.id == oldValue)?.employees.map(employee => employee?.id) || [];\n const employeesNotInOldTeam = this.mastertask.employees.filter(employee => !oldTeamEmployeesIds.includes(employee?.id));\n this.mastertask.employees = employeesNotInOldTeam;\n }\n },\n deep: true\n },\n '$route.query': {\n handler(_, oldValue) {\n if (oldValue?.subtask?.length && this.mastertask?.id) {\n this.loadMastertask(this.mastertask.id);\n }\n },\n deep: true\n }\n },\n mounted() {\n this.$events.on('close-both-modals', this.closeBothModals);\n this.$events.on('master-task:team-member-deleted', ({\n teamId,\n memberId\n }) => {\n if (this.mastertask.team_id != teamId) return;\n this.mastertask.employees = this.mastertask.employees.filter(employee => employee.id != memberId);\n }), this.$events.on('on-mastertask-deleted', mastertask => {\n if (mastertask?.id == this.mastertask?.id) this.closeModal();\n });\n this.$events.on('on-subtask-deleted', task => {\n if (!this.mastertask) return;\n this.mastertask.subtasks = this.mastertask.subtasks.filter(subtask => subtask.id != task.id);\n });\n this.$events.on('on-subtask-edited', task => {\n if (!this.mastertask?.subtasks) return;\n if (this.mastertask.subtasks.find(subtask => subtask.id == task.id)) {\n this.mastertask.subtasks = this.mastertask.subtasks.map(t => t.id == task.id ? task : t);\n } else {\n this.mastertask.subtasks.push(task);\n }\n });\n },\n beforeUnmount() {\n this.$events.off('on-mastertask-deleted');\n this.$events.off('on-subtask-deleted');\n this.$events.off('on-subtask-edited');\n this.$events.off('master-task:team-member-deleted');\n this.$events.off('close-both-modals', this.closeBothModals);\n },\n methods: {\n closeBothModals() {\n this.$emit('close');\n this.visible = false;\n },\n removeEmployee({\n id\n }) {\n // const isEmployeeInTeam = this.mastertask.team?.employees.find(employee => employee.id == id)\n\n // if (isEmployeeInTeam) {\n // \tthis.mastertask.team_id = null\n // \tthis.mastertask.team = null\n // }\n\n this.mastertask.employees = this.mastertask.employees.filter(employee => employee.id != id);\n },\n removeMemberAlert(member) {\n const team = this.mastertask.team;\n this.$events.emit('show-delete-team-member-modal', {\n member,\n team\n });\n },\n async loadMastertask(id) {\n try {\n this.mastertask = await this.$axios.get_auth_data(`v1/mastertasks/${id}`);\n\n // TODO zmazat ked zacne prichadzat project_id a team_id\n const project = this.projects.find(project => project.code == this.mastertask.project_code);\n this.mastertask.project_id = project?.id || null;\n this.mastertask.team_id = this.mastertask.team?.id || null;\n this.mastertask._allEmployees = this.mastertask.subtasks.map(({\n employee_id,\n duration\n }) => {\n const employee = this.enrichedEmployees.find(({\n id\n }) => id == employee_id);\n if (!employee) {\n return null;\n }\n employee.duration = duration;\n return employee;\n }).filter(employee => employee !== null);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n async showModal({\n mastertask,\n editMode = false\n }) {\n this.isSaving = false;\n this.editMode = null;\n\n // CRITICAL: Prevent v-dialog autofocus BEFORE modal opens\n this.preventInputFocus = true;\n this.visible = true;\n this.mastertask = null;\n this.$nextTick(() => {\n this.v$.$reset();\n\n // Reset after modal is fully rendered and v-dialog autofocus has been blocked\n setTimeout(() => {\n this.preventInputFocus = false;\n }, 300);\n });\n try {\n if (mastertask?.id) {\n await this.loadMastertask(mastertask.id);\n\n // this.mastertask.project_code \t= project.code\n } else {\n const savedMastertask = localStorage.getItem('mastertaskData');\n try {\n if (savedMastertask) {\n const parsedMastertask = JSON.parse(savedMastertask);\n this.mastertask = parsedMastertask;\n // If the parsed result is not an object, reset to default\n if (typeof this.mastertask !== 'object' || this.mastertask === null) {\n throw new Error('Parsed mastertask is not an object');\n }\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.mastertask.description || '');\n });\n } else {\n throw new Error('mastertaskData is null or undefined');\n }\n } catch (error) {\n this.mastertask = {\n employees: [],\n duration: 0,\n _deadline_time: '17:00'\n };\n }\n }\n this.editMode = editMode || !this.mastertask.id;\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n toggleIsFinished() {\n this.$events.emit('show-complete-master-task-modal', {\n mastertask: this.mastertask\n });\n },\n async save() {\n if (this.mastertask.id) {\n this.mastertask.employees = this.mastertask.employees.map(employee => {\n const {\n duration\n } = this.mastertask.subtasks.find(({\n employee_id\n }) => employee_id == employee.id) || {};\n employee.duration = duration || 0;\n return employee;\n });\n }\n const vuelidateValid = await this.v$.$validate();\n const employeesValid = await this._validateEmployees();\n if (!vuelidateValid || !employeesValid) return;\n if (this.$refs['description']) this.mastertask.description = this.$refs['description'].getHTML();\n this._mergeDeadlineTimeDate();\n try {\n this.isSaving = true;\n this.mastertask.deadline = moment__WEBPACK_IMPORTED_MODULE_11___default()(this.mastertask.deadline).format('YYYY-MM-DD HH:MM:SS');\n if (this.mastertask.id) await this.$axios.patch_auth_form(`v1/mastertasks/${this.mastertask.id}`, this.mastertask);else await this.$axios.post_auth_data('v1/mastertasks', this.mastertask);\n localStorage.removeItem('mastertaskData');\n this.$emit('master-task-edited', this.mastertask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isSaving = false;\n }\n },\n filesUploaded(files) {\n this.mastertask.files = files;\n },\n closeModal() {\n this.visible = false;\n },\n openDeleteMasterTaskModal(mastertask) {\n this.$events.emit('show-delete-master-task-modal', {\n mastertask\n });\n },\n addTask() {\n this.$events.emit('show-subtask-modal', {\n subtask: {\n master_task_id: this.mastertask.id,\n project_code: this.mastertask.project_code\n }\n });\n },\n onQuillEditorInput() {\n this.mastertask.description = this.$refs['description'].getHTML();\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.mastertask.deadline);\n const timeParts = this.mastertask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n this.mastertask.deadline = date;\n },\n _validateEmployees() {\n let isValid = true;\n this.mastertask.employees = this.mastertask.employees.map(employee => {\n if (employee.duration === null || employee.duration === undefined) {\n employee.invalid = true;\n isValid = false;\n }\n return employee;\n });\n return isValid;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-master-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@_components/z-datepicker.vue */ \"./src/plugins/tm@_components/z-datepicker.vue\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var _mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_components/a-tasks-table.vue */ \"./src/plugins/tm@modal/master-task/_components/a-tasks-table.vue\");\n/* harmony import */ var _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_components/a-mastertask-description.vue */ \"./src/plugins/tm@modal/master-task/_components/a-mastertask-description.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n// import ZAutocomplete from '@/plugins/tm@_components/z-autocomplete.vue'\n\n\n// import tmUtils from '@/plugins/tm@_utils/tm.utils'\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n // MIXINS\n // computed: employeesOptions, projectsOptions\n // methods: onProjectSelected, onEmployeeSelected, onEmployeeDurationChanged\n // watch: mastertask.team_id\n\n components: {\n AMastertaskDescription: _components_a_mastertask_description_vue__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n ATasksTable: _components_a_tasks_table_vue__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n ZDatepicker: _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ZFilesUpload: _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n // ZAutocomplete,\n QuillEditor: _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_12__.QuillEditor,\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_22__[\"default\"]\n },\n mixins: [_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_15__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_19__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_13__[\"default\"]],\n // MIXINS\n // computed: employeesOptions, projectsOptions\n // methods: onProjectSelected, onEmployeeSelected, onEmployeeDurationChanged\n // watch: mastertask.team_id\n\n emits: ['master-task-edited', 'close'],\n data() {\n return {\n deadline: null,\n editMode: false,\n visible: false,\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(),\n mastertask: null,\n isSaving: false,\n showAddEmployeeInput: false,\n date: null,\n projectCodeSearch: null,\n modalName: 'z-master-task-modal',\n modalSize: 'large'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_18__.mapGetters)('tm', ['teams', 'projects', 'enrichedEmployees']),\n enrichedSubtasks() {\n if (!this.mastertask?.subtasks) return null;\n return this.mastertask.subtasks.map(subtask => {\n const employee = this.enrichedEmployees.find(employee => employee.id == subtask.employee_id);\n return {\n ...subtask,\n _initials: employee ? employee.name.charAt(0) + employee.surname.charAt(0) : '?',\n _fullName: employee ? `${employee.name} ${employee.surname}` : ''\n };\n }).filter(subtask => subtask !== null);\n }\n },\n validations() {\n const quillEditorRequired = value => {\n if (!value || !value.length || !value.replace(/<[^>]*>/g, '').length) return false;\n return true;\n };\n return {\n mastertask: {\n employees: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required,\n minLength: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.minLength)(1),\n $each: {\n duration: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n }\n }\n },\n project_id: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n description: {\n quillEditorRequired\n },\n deadline: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n estimated_duration: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n },\n _deadline_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_9__.required\n }\n }\n };\n },\n watch: {\n editMode() {\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.mastertask.description || '');\n if (!this.mastertask?.id) return;\n const date = new Date(this.mastertask.deadline);\n const hours = date.getHours();\n const minutes = date.getMinutes();\n this.mastertask._deadline_time = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\n });\n },\n mastertask: {\n handler(val) {\n if (this.editMode && !this.mastertask?.id) {\n localStorage.setItem('mastertaskData', JSON.stringify(val));\n }\n },\n deep: true\n },\n 'mastertask.team_id': {\n handler(value, oldValue) {\n if (this.editMode && !value && oldValue) {\n // Removes only employees from the old team when team_id is removed\n const oldTeamEmployeesIds = this.teams.find(team => team.id == oldValue)?.employees.map(employee => employee?.id) || [];\n const employeesNotInOldTeam = this.mastertask.employees.filter(employee => !oldTeamEmployeesIds.includes(employee?.id));\n this.mastertask.employees = employeesNotInOldTeam;\n }\n },\n deep: true\n },\n '$route.query': {\n handler(_, oldValue) {\n if (oldValue?.subtask?.length && this.mastertask?.id) {\n this.loadMastertask(this.mastertask.id);\n }\n },\n deep: true\n }\n },\n mounted() {\n this.$events.on('close-both-modals', this.closeBothModals);\n this.$events.on('master-task:team-member-deleted', ({\n teamId,\n memberId\n }) => {\n if (this.mastertask.team_id != teamId) return;\n this.mastertask.employees = this.mastertask.employees.filter(employee => employee.id != memberId);\n }), this.$events.on('on-mastertask-deleted', mastertask => {\n if (mastertask?.id == this.mastertask?.id) this.closeModal();\n });\n this.$events.on('on-subtask-deleted', task => {\n if (!this.mastertask) return;\n this.mastertask.subtasks = this.mastertask.subtasks.filter(subtask => subtask.id != task.id);\n });\n this.$events.on('on-subtask-edited', task => {\n if (!this.mastertask?.subtasks) return;\n if (this.mastertask.subtasks.find(subtask => subtask.id == task.id)) {\n this.mastertask.subtasks = this.mastertask.subtasks.map(t => t.id == task.id ? task : t);\n } else {\n this.mastertask.subtasks.push(task);\n }\n });\n },\n beforeUnmount() {\n this.$events.off('on-mastertask-deleted');\n this.$events.off('on-subtask-deleted');\n this.$events.off('on-subtask-edited');\n this.$events.off('master-task:team-member-deleted');\n this.$events.off('close-both-modals', this.closeBothModals);\n },\n methods: {\n closeBothModals() {\n this.$emit('close');\n this.visible = false;\n },\n removeEmployee({\n id\n }) {\n // const isEmployeeInTeam = this.mastertask.team?.employees.find(employee => employee.id == id)\n\n // if (isEmployeeInTeam) {\n // \tthis.mastertask.team_id = null\n // \tthis.mastertask.team = null\n // }\n\n this.mastertask.employees = this.mastertask.employees.filter(employee => employee.id != id);\n },\n removeMemberAlert(member) {\n const team = this.mastertask.team;\n this.$events.emit('show-delete-team-member-modal', {\n member,\n team\n });\n },\n async loadMastertask(id) {\n try {\n this.mastertask = await this.$axios.get_auth_data(`v1/mastertasks/${id}`);\n\n // TODO zmazat ked zacne prichadzat project_id a team_id\n const project = this.projects.find(project => project.code == this.mastertask.project_code);\n this.mastertask.project_id = project?.id || null;\n this.mastertask.team_id = this.mastertask.team?.id || null;\n this.mastertask._allEmployees = this.mastertask.subtasks.map(({\n employee_id,\n duration\n }) => {\n const employee = this.enrichedEmployees.find(({\n id\n }) => id == employee_id);\n if (!employee) {\n return null;\n }\n employee.duration = duration;\n return employee;\n }).filter(employee => employee !== null);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n async showModal({\n mastertask,\n editMode = false\n }) {\n this.isSaving = false;\n this.editMode = null;\n\n // CRITICAL: Prevent v-dialog autofocus BEFORE modal opens\n this.preventInputFocus = true;\n this.visible = true;\n this.mastertask = null;\n this.$nextTick(() => {\n this.v$.$reset();\n\n // Reset after modal is fully rendered and v-dialog autofocus has been blocked\n setTimeout(() => {\n this.preventInputFocus = false;\n }, 300);\n });\n try {\n if (mastertask?.id) {\n await this.loadMastertask(mastertask.id);\n\n // this.mastertask.project_code \t= project.code\n } else {\n const savedMastertask = localStorage.getItem('mastertaskData');\n try {\n if (savedMastertask) {\n const parsedMastertask = JSON.parse(savedMastertask);\n this.mastertask = parsedMastertask;\n // If the parsed result is not an object, reset to default\n if (typeof this.mastertask !== 'object' || this.mastertask === null) {\n throw new Error('Parsed mastertask is not an object');\n }\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.mastertask.description || '');\n });\n } else {\n throw new Error('mastertaskData is null or undefined');\n }\n } catch (error) {\n this.mastertask = {\n employees: [],\n duration: 0,\n _deadline_time: '17:00'\n };\n }\n }\n this.editMode = editMode || !this.mastertask.id;\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n toggleIsFinished() {\n this.$events.emit('show-complete-master-task-modal', {\n mastertask: this.mastertask\n });\n },\n async save() {\n if (this.mastertask.id) {\n this.mastertask.employees = this.mastertask.employees.map(employee => {\n const {\n duration\n } = this.mastertask.subtasks.find(({\n employee_id\n }) => employee_id == employee.id) || {};\n employee.duration = duration || 0;\n return employee;\n });\n }\n const vuelidateValid = await this.v$.$validate();\n const employeesValid = await this._validateEmployees();\n if (!vuelidateValid || !employeesValid) return;\n if (this.$refs['description']) this.mastertask.description = this.$refs['description'].getHTML();\n this._mergeDeadlineTimeDate();\n try {\n this.isSaving = true;\n this.mastertask.deadline = moment__WEBPACK_IMPORTED_MODULE_11___default()(this.mastertask.deadline).format('YYYY-MM-DD HH:MM:SS');\n if (this.mastertask.id) await this.$axios.patch_auth_form(`v1/mastertasks/${this.mastertask.id}`, this.mastertask);else await this.$axios.post_auth_data('v1/mastertasks', this.mastertask);\n localStorage.removeItem('mastertaskData');\n this.$emit('master-task-edited', this.mastertask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isSaving = false;\n }\n },\n filesUploaded(files) {\n this.mastertask.files = files;\n },\n closeModal() {\n this.visible = false;\n },\n openDeleteMasterTaskModal(mastertask) {\n this.$events.emit('show-delete-master-task-modal', {\n mastertask\n });\n },\n addTask() {\n this.$events.emit('show-subtask-modal', {\n subtask: {\n master_task_id: this.mastertask.id,\n project_code: this.mastertask.project_code\n }\n });\n },\n onQuillEditorInput() {\n this.mastertask.description = this.$refs['description'].getHTML();\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.mastertask.deadline);\n const timeParts = this.mastertask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n this.mastertask.deadline = date;\n },\n _validateEmployees() {\n let isValid = true;\n this.mastertask.employees = this.mastertask.employees.map(employee => {\n if (employee.duration === null || employee.duration === undefined) {\n employee.invalid = true;\n isValid = false;\n }\n return employee;\n });\n return isValid;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-master-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -356,7 +356,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n props: {\n data: {\n type: Object,\n default: () => ({})\n }\n },\n emits: ['update', 'data'],\n data() {\n return {\n visible: false,\n localData: null,\n modalName: 'z-show-menu-modal'\n };\n },\n mounted() {\n this.$events.on('blocker-created', () => {\n this.closeModal();\n });\n this.$events.on('task-created', () => {\n this.closeModal();\n });\n },\n methods: {\n async showModal(data) {\n this.localData = data;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n createTask() {\n this.$events.emit('show-subtask-modal', {\n subtask: {\n deadline: this.localData.date,\n _deadline_time: this.localData.time,\n employee_id: this.localData.employee\n },\n onTaskCreated: () => {\n this.closeModal();\n }\n });\n },\n createBlocker() {\n this.$events.emit('show-blocker-modal', {\n blocker: {\n starts_at_time: this.localData.time,\n datepicker: this.localData.date,\n employee_id: this.localData.employee\n },\n onBlockerCreated: () => {\n this.closeModal();\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task-cell/z-show-menu-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n props: {\n data: {\n type: Object,\n default: () => ({})\n }\n },\n emits: ['update', 'data'],\n data() {\n return {\n visible: false,\n localData: null,\n modalName: 'z-show-menu-modal',\n modalSize: 'small'\n };\n },\n mounted() {\n this.$events.on('blocker-created', () => {\n this.closeModal();\n });\n this.$events.on('task-created', () => {\n this.closeModal();\n });\n },\n methods: {\n async showModal(data) {\n this.localData = data;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n createTask() {\n this.$events.emit('show-subtask-modal', {\n subtask: {\n deadline: this.localData.date,\n _deadline_time: this.localData.time,\n employee_id: this.localData.employee\n },\n onTaskCreated: () => {\n this.closeModal();\n }\n });\n },\n createBlocker() {\n this.$events.emit('show-blocker-modal', {\n blocker: {\n starts_at_time: this.localData.time,\n datepicker: this.localData.date,\n employee_id: this.localData.employee\n },\n onBlockerCreated: () => {\n this.closeModal();\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task-cell/z-show-menu-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -444,7 +444,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__[\"default\"]],\n props: {\n hours: {\n type: Number,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n moment: (moment__WEBPACK_IMPORTED_MODULE_5___default()),\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n showModal: false,\n form: {\n hours: null\n }\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__.minValue)(0.1)\n }\n }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_10__.mapGetters)('auth', ['user'])\n },\n methods: {\n async submit() {\n if (!(await this.v$.$validate())) return;\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets.push({\n id: null,\n employee_id: this.user.id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n async deleteTimesheet({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets = subtask.timesheets.filter(timesheet => timesheet.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n closeModal() {\n this.form = {\n hours: null\n };\n this.showModal = false;\n this.$nextTick(() => this.v$.$reset());\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_5___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.subtask.deadline);\n const timeParts = this.subtask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n return date;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__[\"default\"]],\n props: {\n hours: {\n type: Number,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n moment: (moment__WEBPACK_IMPORTED_MODULE_5___default()),\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n showModal: false,\n form: {\n hours: null\n },\n modalName: 'a-task-spent-time-modal',\n modalSize: 'medium'\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_8__.minValue)(0.1)\n }\n }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_10__.mapGetters)('auth', ['user'])\n },\n methods: {\n async submit() {\n if (!(await this.v$.$validate())) return;\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets.push({\n id: null,\n employee_id: this.user.id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n async deleteTimesheet({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timesheets = subtask.timesheets.filter(timesheet => timesheet.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_9__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n closeModal() {\n this.form = {\n hours: null\n };\n this.showModal = false;\n this.$nextTick(() => this.v$.$reset());\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_5___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.subtask.deadline);\n const timeParts = this.subtask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n return date;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -455,7 +455,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _employees_a_employee_timeblock_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../employees/a-employee-timeblock.vue */ \"./src/plugins/tm@modal/task/_components/employees/a-employee-timeblock.vue\");\n/* harmony import */ var _plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@_utils/timeblock.utils */ \"./src/plugins/tm@_utils/timeblock.utils.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n// import AEmployeeTimeblockTimeline from '../employees/a-employee-timeblock-timeline.vue';\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AEmployeeTimeblock: _employees_a_employee_timeblock_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n // AEmployeeTimeblockTimeline,\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__[\"default\"]],\n props: {\n timeblocks: {\n type: Array,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n emits: ['update-subtask'],\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n showModal: false,\n visible: false,\n // New timeblock for modal (used by a-employee-timeblock component)\n newTimeblock: {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: null\n },\n // Timeline constants\n START_HOUR: 0,\n END_HOUR: 24,\n HOUR_WIDTH: 60,\n HOUR_WIDTH_MOBILE: 50,\n // Existing timeblocks timeline data\n existingTimeblocksData: {} // { [index]: { tasks: [], loading: false } }\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_10__.mapGetters)('tm', ['mastertasks', 'enrichedEmployees']),\n isOffice365Task() {\n return this.subtask.type == 'office365';\n },\n // Get employee data from subtask\n employee() {\n if (!this.subtask?.employee_id) return null;\n return this.subtask._employee || this.enrichedEmployees.find(emp => emp.id === this.subtask.employee_id);\n },\n // Hour width based on screen size\n hourWidth() {\n return window.innerWidth <= 768 ? this.HOUR_WIDTH_MOBILE : this.HOUR_WIDTH;\n },\n // Computed property to trigger reactivity when existingTimeblocksData changes\n existingTimeblocksDataReactive() {\n // This forces Vue to track changes to existingTimeblocksData\n return {\n ...this.existingTimeblocksData\n };\n }\n },\n watch: {\n // Watch for timeblocks changes\n timeblocks: {\n handler() {\n // Refetch timeline data for all timeblocks when they change\n this.$nextTick(() => {\n this.fetchAllTimelinesData();\n });\n },\n deep: true\n },\n // Watch for employee changes\n 'employee.id': {\n handler(newId) {\n if (newId) {\n this.fetchAllTimelinesData();\n }\n }\n },\n // Watch for modal opening - set employee_id and reset to today\n showModal: {\n handler(isOpen) {\n if (isOpen) {\n this.newTimeblock = {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: this.employee?.id || null\n };\n }\n }\n }\n },\n mounted() {\n // Fetch timeline data on mount\n if (this.employee?.id) {\n this.fetchAllTimelinesData();\n }\n },\n methods: {\n // Submit timeblock from employee timeblock component\n async submitFromEmployeeTimeblock() {\n // Validate using the employee timeblock component's validation\n const isValid = await this.$refs.employeeTimeblockRef?.validate();\n if (!isValid) {\n return;\n }\n\n // The newTimeblock data is already reactive and updated by the component\n await this.submit();\n },\n // Methods for existing timeblocks timeline\n getTimelineLoadingState(index) {\n const reactiveData = this.existingTimeblocksDataReactive;\n return reactiveData[index]?.loading || false;\n },\n getScheduledBlocksForTimeblock(index) {\n // Use the reactive computed property to ensure Vue tracks changes\n const reactiveData = this.existingTimeblocksDataReactive;\n const tasks = reactiveData[index]?.tasks || [];\n const currentTimeblock = this.timeblocks[index];\n\n // Filter out the current timeblock from scheduled blocks\n return tasks.filter(task => !task._timeblock_id || !currentTimeblock.id || task._timeblock_id !== currentTimeblock.id);\n },\n getOtherTimeblocksForTimeblock(timeblock, currentIndex) {\n if (!timeblock.date) return [];\n const selectedDate = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n return this.timeblocks.filter((tb, idx) => {\n // Skip current timeblock\n if (idx === currentIndex) return false;\n if (!tb.date || !tb.starts_at_time || !tb.ends_at_time) return false;\n const tbDate = moment__WEBPACK_IMPORTED_MODULE_8___default()(tb.date).format('YYYY-MM-DD');\n return tbDate === selectedDate;\n });\n },\n getTimeblockRange(timeblock) {\n const {\n start,\n end\n } = (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.timeblockToDateRange)(timeblock);\n return {\n start,\n end\n };\n },\n getCollisionForTimeblock(timeblock, index) {\n const scheduledBlocks = this.getScheduledBlocksForTimeblock(index);\n return (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.detectCollision)(timeblock, scheduledBlocks);\n },\n getCollisionSegmentsForTimeblock(timeblock, index) {\n const scheduledBlocks = this.getScheduledBlocksForTimeblock(index);\n return (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.getCollisionSegments)(timeblock, scheduledBlocks);\n },\n calculateDuration(timeblock) {\n return (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.calculateTimeblockDuration)(timeblock);\n },\n async fetchTimelineDataForTimeblock(index) {\n const timeblock = this.timeblocks[index];\n if (!this.employee?.id || !timeblock.date) {\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks: [],\n loading: false\n }\n };\n return;\n }\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks: this.existingTimeblocksData[index]?.tasks || [],\n loading: true\n }\n };\n try {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n const queryParams = new URLSearchParams({\n start: dateStr,\n end: dateStr,\n employee_id: this.employee.id.toString()\n }).toString();\n const response = await this.$axios.get_auth(`v1/subtasks?${queryParams}`);\n const subtasks = [...(response.subtasks || []), ...(response.blockers || [])];\n const tasks = [];\n subtasks.forEach(subtask => {\n // Check if this is a blocker/adhoc/etc with direct start/end fields (no timeblocks array)\n if (!subtask.timeblocks && subtask.start && subtask.end && ['blocker', 'adhoc', 'home_office', 'vacation', 'free_day', 'office365_blocker'].includes(subtask.type)) {\n const blockerDateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(subtask.start).format('YYYY-MM-DD');\n if (blockerDateStr === dateStr) {\n const type = subtask.type;\n tasks.push({\n id: subtask.id,\n start: new Date(subtask.start),\n end: new Date(subtask.end),\n master_task: null,\n date: new Date(subtask.start),\n project_code: null,\n subtask: subtask,\n blocker: subtask,\n type,\n _timeblock_id: null,\n _timeblock_is_finished: subtask.is_finished || false,\n _real_start: new Date(subtask.start),\n _real_end: new Date(subtask.end)\n });\n }\n } else {\n // Process regular subtasks with timeblocks array\n subtask.timeblocks?.forEach(tb => {\n const timeblockDateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(tb.start).format('YYYY-MM-DD');\n if (timeblockDateStr === dateStr) {\n let type = 'subtask';\n if (subtask.type === 'office365') type = 'office365';\n tasks.push({\n id: subtask.id,\n start: new Date(tb.start),\n end: new Date(tb.end),\n master_task: subtask.master_task,\n date: new Date(tb.start),\n project_code: subtask.project_code,\n subtask: subtask,\n blocker: undefined,\n type,\n _timeblock_id: tb.id,\n _timeblock_is_finished: tb.is_finished,\n _real_start: new Date(tb.start),\n _real_end: new Date(tb.end)\n });\n }\n });\n }\n });\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks,\n loading: false\n }\n };\n } catch (error) {\n console.error('Error fetching timeline data for timeblock:', error);\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks: [],\n loading: false\n }\n };\n }\n },\n // Fetch timeline data for all existing timeblocks\n async fetchAllTimelinesData() {\n if (!this.employee?.id) return;\n const promises = this.timeblocks.map((_, index) => this.fetchTimelineDataForTimeblock(index));\n await Promise.all(promises);\n },\n formatTimeblockStart(timeblock) {\n // Handle internal format with date and time fields\n if (timeblock.date && timeblock.starts_at_time) {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('DD.MM.yyyy');\n return `${dateStr}, ${timeblock.starts_at_time}`;\n }\n // Fallback to backend format\n if (timeblock.start) {\n return _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTime(timeblock.start);\n }\n return '';\n },\n formatTimeblockEnd(timeblock) {\n // Handle internal format with date and time fields\n if (timeblock.date && timeblock.ends_at_time) {\n return timeblock.ends_at_time;\n }\n // Fallback to backend format\n if (timeblock.end) {\n return _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTime(timeblock.end);\n }\n return '';\n },\n async submit() {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n if (!subtask?.timeblocks) {\n subtask.timeblocks = [];\n }\n if (!subtask?.timesheets) {\n subtask.timesheets = [];\n }\n if (!subtask?.is_finished) {\n subtask.is_finished = 0;\n }\n\n // Add timeblock in internal format from newTimeblock\n subtask.timeblocks.push({\n id: null,\n date: this.newTimeblock.date,\n starts_at_time: this.newTimeblock.starts_at_time,\n ends_at_time: this.newTimeblock.ends_at_time,\n is_finished: 0\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n const isAfterDeadline = this.isAfterDeadline();\n if (isAfterDeadline) {\n this.visible = true;\n } else {\n if (!subtask.id) {\n this.$emit('update-unfinished-subtask', subtask);\n this.closeModal();\n } else {\n this._update(subtask);\n }\n }\n },\n async confirmSubmit() {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n if (!subtask?.timeblocks) {\n subtask.timeblocks = [];\n }\n if (!subtask?.timesheets) {\n subtask.timesheets = [];\n }\n if (!subtask?.is_finished) {\n subtask.is_finished = 0;\n }\n\n // Add timeblock in internal format from newTimeblock\n subtask.timeblocks.push({\n id: null,\n date: this.newTimeblock.date,\n starts_at_time: this.newTimeblock.starts_at_time,\n ends_at_time: this.newTimeblock.ends_at_time,\n is_finished: 0\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n if (!subtask.id) {\n this.$emit('update-unfinished-subtask', subtask);\n this.closeModal();\n return;\n }\n this.visible = false;\n this._update(subtask);\n },\n async toggleTimeblockIsFinished(originalTimeblock) {\n // TODO: Pridat odpracovany cas modal?\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n const timeblock = JSON.parse(JSON.stringify(originalTimeblock));\n timeblock.is_finished = timeblock.is_finished == 1 ? 0 : 1;\n try {\n // Convert timeblock to backend format before sending\n const timeblockForBackend = {\n id: timeblock.id,\n is_finished: timeblock.is_finished\n };\n\n // If timeblock is in internal format, convert it\n if (timeblock.date) {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n timeblockForBackend.start = `${dateStr} ${timeblock.starts_at_time}:00`;\n timeblockForBackend.end = `${dateStr} ${timeblock.ends_at_time}:00`;\n } else {\n // Already in backend format\n timeblockForBackend.start = timeblock.start;\n timeblockForBackend.end = timeblock.end;\n }\n const {\n data: newTimeblock\n } = await this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, timeblockForBackend);\n\n // Convert returned timeblock from backend format to internal format\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_8___default()(newTimeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_8___default()(newTimeblock.end, 'YYYY-MM-DD HH:mm:ss');\n const convertedTimeblock = {\n id: newTimeblock.id,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: newTimeblock.is_finished\n };\n subtask.timeblocks = subtask.timeblocks.map(originalTimeblock => {\n if (originalTimeblock.id == convertedTimeblock.id) return convertedTimeblock;\n return originalTimeblock;\n });\n this.$events.emit('on-subtask-edited', subtask);\n this.$emit('update-subtask', subtask);\n if (timeblock.is_finished) this.$events.emit('show-task-add-time-modal', {\n subtask\n });\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n async deleteTimeblock({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n deleteTimeblockWithoutId(_index) {\n this.$emit('delete-timeblock');\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n isAfterDeadline() {\n const deadline = this.getDeadline(this.subtask);\n if (!deadline) return;\n const mDate = moment__WEBPACK_IMPORTED_MODULE_8___default()(this.newTimeblock.date);\n const mDeadline = moment__WEBPACK_IMPORTED_MODULE_8___default()(deadline);\n const [hours, minutes] = this.newTimeblock.ends_at_time.split(':').map(Number);\n mDate.hours(hours);\n mDate.minutes(minutes);\n return mDate.isAfter(mDeadline);\n },\n getDeadline(subtask) {\n if (subtask?.deadline) return subtask.deadline;\n return subtask.master_task_deadline;\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.subtask.deadline);\n const timeParts = this.subtask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n return date;\n },\n closeModal() {\n // Reset newTimeblock\n this.newTimeblock = {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: this.employee?.id || null\n };\n this.showModal = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _employees_a_employee_timeblock_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../employees/a-employee-timeblock.vue */ \"./src/plugins/tm@modal/task/_components/employees/a-employee-timeblock.vue\");\n/* harmony import */ var _plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@_utils/timeblock.utils */ \"./src/plugins/tm@_utils/timeblock.utils.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n// import AEmployeeTimeblockTimeline from '../employees/a-employee-timeblock-timeline.vue';\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AEmployeeTimeblock: _employees_a_employee_timeblock_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n // AEmployeeTimeblockTimeline,\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_15__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_9__[\"default\"]],\n props: {\n timeblocks: {\n type: Array,\n required: true\n },\n subtask: {\n type: Object,\n required: true\n }\n },\n emits: ['update-subtask'],\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n showModal: false,\n visible: false,\n // New timeblock for modal (used by a-employee-timeblock component)\n newTimeblock: {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: null\n },\n // Timeline constants\n START_HOUR: 0,\n END_HOUR: 24,\n HOUR_WIDTH: 60,\n HOUR_WIDTH_MOBILE: 50,\n // Existing timeblocks timeline data\n existingTimeblocksData: {},\n // { [index]: { tasks: [], loading: false } }\n modalName: 'a-task-timeblocks-modal',\n modalSize: 'medium'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_10__.mapGetters)('tm', ['mastertasks', 'enrichedEmployees']),\n isOffice365Task() {\n return this.subtask.type == 'office365';\n },\n // Get employee data from subtask\n employee() {\n if (!this.subtask?.employee_id) return null;\n return this.subtask._employee || this.enrichedEmployees.find(emp => emp.id === this.subtask.employee_id);\n },\n // Hour width based on screen size\n hourWidth() {\n return window.innerWidth <= 768 ? this.HOUR_WIDTH_MOBILE : this.HOUR_WIDTH;\n },\n // Computed property to trigger reactivity when existingTimeblocksData changes\n existingTimeblocksDataReactive() {\n // This forces Vue to track changes to existingTimeblocksData\n return {\n ...this.existingTimeblocksData\n };\n }\n },\n watch: {\n // Watch for timeblocks changes\n timeblocks: {\n handler() {\n // Refetch timeline data for all timeblocks when they change\n this.$nextTick(() => {\n this.fetchAllTimelinesData();\n });\n },\n deep: true\n },\n // Watch for employee changes\n 'employee.id': {\n handler(newId) {\n if (newId) {\n this.fetchAllTimelinesData();\n }\n }\n },\n // Watch for modal opening - set employee_id and reset to today\n showModal: {\n handler(isOpen) {\n if (isOpen) {\n this.newTimeblock = {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: this.employee?.id || null\n };\n }\n }\n }\n },\n mounted() {\n // Fetch timeline data on mount\n if (this.employee?.id) {\n this.fetchAllTimelinesData();\n }\n },\n methods: {\n // Submit timeblock from employee timeblock component\n async submitFromEmployeeTimeblock() {\n // Validate using the employee timeblock component's validation\n const isValid = await this.$refs.employeeTimeblockRef?.validate();\n if (!isValid) {\n return;\n }\n\n // The newTimeblock data is already reactive and updated by the component\n await this.submit();\n },\n // Methods for existing timeblocks timeline\n getTimelineLoadingState(index) {\n const reactiveData = this.existingTimeblocksDataReactive;\n return reactiveData[index]?.loading || false;\n },\n getScheduledBlocksForTimeblock(index) {\n // Use the reactive computed property to ensure Vue tracks changes\n const reactiveData = this.existingTimeblocksDataReactive;\n const tasks = reactiveData[index]?.tasks || [];\n const currentTimeblock = this.timeblocks[index];\n\n // Filter out the current timeblock from scheduled blocks\n return tasks.filter(task => !task._timeblock_id || !currentTimeblock.id || task._timeblock_id !== currentTimeblock.id);\n },\n getOtherTimeblocksForTimeblock(timeblock, currentIndex) {\n if (!timeblock.date) return [];\n const selectedDate = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n return this.timeblocks.filter((tb, idx) => {\n // Skip current timeblock\n if (idx === currentIndex) return false;\n if (!tb.date || !tb.starts_at_time || !tb.ends_at_time) return false;\n const tbDate = moment__WEBPACK_IMPORTED_MODULE_8___default()(tb.date).format('YYYY-MM-DD');\n return tbDate === selectedDate;\n });\n },\n getTimeblockRange(timeblock) {\n const {\n start,\n end\n } = (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.timeblockToDateRange)(timeblock);\n return {\n start,\n end\n };\n },\n getCollisionForTimeblock(timeblock, index) {\n const scheduledBlocks = this.getScheduledBlocksForTimeblock(index);\n return (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.detectCollision)(timeblock, scheduledBlocks);\n },\n getCollisionSegmentsForTimeblock(timeblock, index) {\n const scheduledBlocks = this.getScheduledBlocksForTimeblock(index);\n return (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.getCollisionSegments)(timeblock, scheduledBlocks);\n },\n calculateDuration(timeblock) {\n return (0,_plugins_tm_utils_timeblock_utils__WEBPACK_IMPORTED_MODULE_12__.calculateTimeblockDuration)(timeblock);\n },\n async fetchTimelineDataForTimeblock(index) {\n const timeblock = this.timeblocks[index];\n if (!this.employee?.id || !timeblock.date) {\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks: [],\n loading: false\n }\n };\n return;\n }\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks: this.existingTimeblocksData[index]?.tasks || [],\n loading: true\n }\n };\n try {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n const queryParams = new URLSearchParams({\n start: dateStr,\n end: dateStr,\n employee_id: this.employee.id.toString()\n }).toString();\n const response = await this.$axios.get_auth(`v1/subtasks?${queryParams}`);\n const subtasks = [...(response.subtasks || []), ...(response.blockers || [])];\n const tasks = [];\n subtasks.forEach(subtask => {\n // Check if this is a blocker/adhoc/etc with direct start/end fields (no timeblocks array)\n if (!subtask.timeblocks && subtask.start && subtask.end && ['blocker', 'adhoc', 'home_office', 'vacation', 'free_day', 'office365_blocker'].includes(subtask.type)) {\n const blockerDateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(subtask.start).format('YYYY-MM-DD');\n if (blockerDateStr === dateStr) {\n const type = subtask.type;\n tasks.push({\n id: subtask.id,\n start: new Date(subtask.start),\n end: new Date(subtask.end),\n master_task: null,\n date: new Date(subtask.start),\n project_code: null,\n subtask: subtask,\n blocker: subtask,\n type,\n _timeblock_id: null,\n _timeblock_is_finished: subtask.is_finished || false,\n _real_start: new Date(subtask.start),\n _real_end: new Date(subtask.end)\n });\n }\n } else {\n // Process regular subtasks with timeblocks array\n subtask.timeblocks?.forEach(tb => {\n const timeblockDateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(tb.start).format('YYYY-MM-DD');\n if (timeblockDateStr === dateStr) {\n let type = 'subtask';\n if (subtask.type === 'office365') type = 'office365';\n tasks.push({\n id: subtask.id,\n start: new Date(tb.start),\n end: new Date(tb.end),\n master_task: subtask.master_task,\n date: new Date(tb.start),\n project_code: subtask.project_code,\n subtask: subtask,\n blocker: undefined,\n type,\n _timeblock_id: tb.id,\n _timeblock_is_finished: tb.is_finished,\n _real_start: new Date(tb.start),\n _real_end: new Date(tb.end)\n });\n }\n });\n }\n });\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks,\n loading: false\n }\n };\n } catch (error) {\n console.error('Error fetching timeline data for timeblock:', error);\n this.existingTimeblocksData = {\n ...this.existingTimeblocksData,\n [index]: {\n tasks: [],\n loading: false\n }\n };\n }\n },\n // Fetch timeline data for all existing timeblocks\n async fetchAllTimelinesData() {\n if (!this.employee?.id) return;\n const promises = this.timeblocks.map((_, index) => this.fetchTimelineDataForTimeblock(index));\n await Promise.all(promises);\n },\n formatTimeblockStart(timeblock) {\n // Handle internal format with date and time fields\n if (timeblock.date && timeblock.starts_at_time) {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('DD.MM.yyyy');\n return `${dateStr}, ${timeblock.starts_at_time}`;\n }\n // Fallback to backend format\n if (timeblock.start) {\n return _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTime(timeblock.start);\n }\n return '';\n },\n formatTimeblockEnd(timeblock) {\n // Handle internal format with date and time fields\n if (timeblock.date && timeblock.ends_at_time) {\n return timeblock.ends_at_time;\n }\n // Fallback to backend format\n if (timeblock.end) {\n return _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTime(timeblock.end);\n }\n return '';\n },\n async submit() {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n if (!subtask?.timeblocks) {\n subtask.timeblocks = [];\n }\n if (!subtask?.timesheets) {\n subtask.timesheets = [];\n }\n if (!subtask?.is_finished) {\n subtask.is_finished = 0;\n }\n\n // Add timeblock in internal format from newTimeblock\n subtask.timeblocks.push({\n id: null,\n date: this.newTimeblock.date,\n starts_at_time: this.newTimeblock.starts_at_time,\n ends_at_time: this.newTimeblock.ends_at_time,\n is_finished: 0\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n const isAfterDeadline = this.isAfterDeadline();\n if (isAfterDeadline) {\n this.visible = true;\n } else {\n if (!subtask.id) {\n this.$emit('update-unfinished-subtask', subtask);\n this.closeModal();\n } else {\n this._update(subtask);\n }\n }\n },\n async confirmSubmit() {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n if (!subtask?.timeblocks) {\n subtask.timeblocks = [];\n }\n if (!subtask?.timesheets) {\n subtask.timesheets = [];\n }\n if (!subtask?.is_finished) {\n subtask.is_finished = 0;\n }\n\n // Add timeblock in internal format from newTimeblock\n subtask.timeblocks.push({\n id: null,\n date: this.newTimeblock.date,\n starts_at_time: this.newTimeblock.starts_at_time,\n ends_at_time: this.newTimeblock.ends_at_time,\n is_finished: 0\n });\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n if (!subtask.id) {\n this.$emit('update-unfinished-subtask', subtask);\n this.closeModal();\n return;\n }\n this.visible = false;\n this._update(subtask);\n },\n async toggleTimeblockIsFinished(originalTimeblock) {\n // TODO: Pridat odpracovany cas modal?\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n const timeblock = JSON.parse(JSON.stringify(originalTimeblock));\n timeblock.is_finished = timeblock.is_finished == 1 ? 0 : 1;\n try {\n // Convert timeblock to backend format before sending\n const timeblockForBackend = {\n id: timeblock.id,\n is_finished: timeblock.is_finished\n };\n\n // If timeblock is in internal format, convert it\n if (timeblock.date) {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n timeblockForBackend.start = `${dateStr} ${timeblock.starts_at_time}:00`;\n timeblockForBackend.end = `${dateStr} ${timeblock.ends_at_time}:00`;\n } else {\n // Already in backend format\n timeblockForBackend.start = timeblock.start;\n timeblockForBackend.end = timeblock.end;\n }\n const {\n data: newTimeblock\n } = await this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, timeblockForBackend);\n\n // Convert returned timeblock from backend format to internal format\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_8___default()(newTimeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_8___default()(newTimeblock.end, 'YYYY-MM-DD HH:mm:ss');\n const convertedTimeblock = {\n id: newTimeblock.id,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: newTimeblock.is_finished\n };\n subtask.timeblocks = subtask.timeblocks.map(originalTimeblock => {\n if (originalTimeblock.id == convertedTimeblock.id) return convertedTimeblock;\n return originalTimeblock;\n });\n this.$events.emit('on-subtask-edited', subtask);\n this.$emit('update-subtask', subtask);\n if (timeblock.is_finished) this.$events.emit('show-task-add-time-modal', {\n subtask\n });\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n async deleteTimeblock({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"].formatDateTimeForBackend(this._mergeDeadlineTimeDate());\n this._update(subtask);\n },\n deleteTimeblockWithoutId(_index) {\n this.$emit('delete-timeblock');\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_8___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n isAfterDeadline() {\n const deadline = this.getDeadline(this.subtask);\n if (!deadline) return;\n const mDate = moment__WEBPACK_IMPORTED_MODULE_8___default()(this.newTimeblock.date);\n const mDeadline = moment__WEBPACK_IMPORTED_MODULE_8___default()(deadline);\n const [hours, minutes] = this.newTimeblock.ends_at_time.split(':').map(Number);\n mDate.hours(hours);\n mDate.minutes(minutes);\n return mDate.isAfter(mDeadline);\n },\n getDeadline(subtask) {\n if (subtask?.deadline) return subtask.deadline;\n return subtask.master_task_deadline;\n },\n _mergeDeadlineTimeDate() {\n const date = new Date(this.subtask.deadline);\n const timeParts = this.subtask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n return date;\n },\n closeModal() {\n // Reset newTimeblock\n this.newTimeblock = {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: this.employee?.id || null\n };\n this.showModal = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -477,7 +477,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n modalName: 'z-complete-task-modal'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {\n try {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_4___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...this.subtask,\n is_finished: this.subtask.is_finished ? 0 : 1,\n timesheets,\n timeblocks\n };\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n this.visible = false;\n this.$emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n closeModal() {\n this.visible = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_3__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n modalName: 'z-complete-task-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {\n try {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_4___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...this.subtask,\n is_finished: this.subtask.is_finished ? 0 : 1,\n timesheets,\n timeblocks\n };\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n this.visible = false;\n this.$emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n closeModal() {\n this.visible = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -488,7 +488,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-subtask-deleted'],\n data() {\n return {\n visible: false,\n subtask: null,\n isDeleting: false,\n modalName: 'z-delete-task-modal'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTask() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/subtasks/${this.subtask.id}`);\n this.$store.commit('tm/delete_subtask', this.subtask);\n this.closeModal();\n this.$emit('on-subtask-deleted', this.subtask);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['on-subtask-deleted'],\n data() {\n return {\n visible: false,\n subtask: null,\n isDeleting: false,\n modalName: 'z-delete-task-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTask() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/subtasks/${this.subtask.id}`);\n this.$store.commit('tm/delete_subtask', this.subtask);\n this.closeModal();\n this.$emit('on-subtask-deleted', this.subtask);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -499,7 +499,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_4__[\"default\"]],\n emits: ['on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n isDeleting: false,\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n modalName: 'z-delete-timeblock-modal'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTimeblock({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"].formatDateTimeForBackend(subtask.deadline);\n this._update(subtask);\n },\n deleteTimeblockWithoutId(index) {\n this.subtask.timeblocks.splice(index, 1);\n this._update(this.subtask);\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_6___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-timeblock-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_4__[\"default\"]],\n emits: ['on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n isDeleting: false,\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n modalName: 'z-delete-timeblock-modal',\n modalSize: 'medium'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTimeblock({\n id\n }) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n subtask.timeblocks = subtask.timeblocks.filter(timeblock => timeblock.id != id);\n if (subtask.deadline) subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"].formatDateTimeForBackend(subtask.deadline);\n this._update(subtask);\n },\n deleteTimeblockWithoutId(index) {\n this.subtask.timeblocks.splice(index, 1);\n this._update(this.subtask);\n },\n async _update(data) {\n try {\n const timesheets = data.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (data.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_6___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${data.id}`, {\n ...data,\n timesheets,\n timeblocks\n });\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-timeblock-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -510,7 +510,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['confirm'],\n data() {\n return {\n visible: false,\n modalName: 'z-remove-employee-modal'\n };\n },\n methods: {\n showModal() {\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n confirm() {\n this.$emit('confirm');\n this.closeModal();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-employee-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['confirm'],\n data() {\n return {\n visible: false,\n modalName: 'z-remove-employee-modal',\n modalSize: 'small'\n };\n },\n methods: {\n showModal() {\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n confirm() {\n this.$emit('confirm');\n this.closeModal();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-employee-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -521,7 +521,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n data() {\n return {\n visible: false,\n modalName: 'z-remove-timeblock-modal',\n onConfirmCallback: null\n };\n },\n methods: {\n showModal({\n onConfirm\n }) {\n this.onConfirmCallback = onConfirm;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n this.onConfirmCallback = null;\n },\n confirm() {\n if (this.onConfirmCallback) {\n this.onConfirmCallback();\n }\n this.closeModal();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-timeblock-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n data() {\n return {\n visible: false,\n modalName: 'z-remove-timeblock-modal',\n modalSize: 'small',\n onConfirmCallback: null\n };\n },\n methods: {\n showModal({\n onConfirm\n }) {\n this.onConfirmCallback = onConfirm;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n this.onConfirmCallback = null;\n },\n confirm() {\n if (this.onConfirmCallback) {\n this.onConfirmCallback();\n }\n this.closeModal();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-timeblock-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -532,7 +532,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_7__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n visible: false,\n subtask: null,\n form: {\n hours: null\n },\n modalName: 'z-task-add-time-modal'\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.minValue)(0.1)\n }\n }\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n this.form.hours = null;\n this.$nextTick(() => this.v$.$reset());\n },\n async submit() {\n if (!(await this.v$.$validate())) return;\n if (this.subtask.deadline) this.subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__[\"default\"].formatDateTimeForBackend(this.subtask.deadline);\n this.subtask.timesheets.push({\n id: null,\n employee_id: this.subtask.employee_id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_9___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const payload = {\n ...this.subtask,\n timesheets,\n timeblocks\n };\n try {\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${this.subtask.id}`, payload);\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n closeModal() {\n this.visible = false;\n this.v$.$reset();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-add-time-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_7__[\"default\"]],\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n visible: false,\n subtask: null,\n form: {\n hours: null\n },\n modalName: 'z-task-add-time-modal',\n modalSize: 'medium'\n };\n },\n validations() {\n return {\n form: {\n hours: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required,\n numeric: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.numeric,\n minValue: (0,_vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.minValue)(0.1)\n }\n }\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n this.form.hours = null;\n this.$nextTick(() => this.v$.$reset());\n },\n async submit() {\n if (!(await this.v$.$validate())) return;\n if (this.subtask.deadline) this.subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__[\"default\"].formatDateTimeForBackend(this.subtask.deadline);\n this.subtask.timesheets.push({\n id: null,\n employee_id: this.subtask.employee_id,\n time: typeof this.form.hours == 'string' ? parseFloat(this.form.hours) : this.form.hours\n });\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_9___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const payload = {\n ...this.subtask,\n timesheets,\n timeblocks\n };\n try {\n const {\n subtask\n } = await this.$axios.put_auth(`v1/subtasks/${this.subtask.id}`, payload);\n this.closeModal();\n this.$events.emit('on-subtask-edited', subtask);\n } catch (error) {\n this.$toast.error(error.message || error);\n }\n },\n closeModal() {\n this.visible = false;\n this.v$.$reset();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-add-time-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -543,7 +543,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ \"./node_modules/core-js/modules/esnext.iterator.some.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_components/z-datepicker.vue */ \"./src/plugins/tm@_components/z-datepicker.vue\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../master-task/_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _components_z_task_readonly_info_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./_components/z-task-readonly-info.vue */ \"./src/plugins/tm@modal/task/_components/z-task-readonly-info.vue\");\n/* harmony import */ var _components_employees_a_employee_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_components/employees/a-employee.vue */ \"./src/plugins/tm@modal/task/_components/employees/a-employee.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n/* harmony import */ var _z_remove_employee_modal_vue__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./z-remove-employee-modal.vue */ \"./src/plugins/tm@modal/task/z-remove-employee-modal.vue\");\n/* harmony import */ var _z_remove_timeblock_modal_vue__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./z-remove-timeblock-modal.vue */ \"./src/plugins/tm@modal/task/z-remove-timeblock-modal.vue\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ZTaskReadonlyInfo: _components_z_task_readonly_info_vue__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n AEmployee: _components_employees_a_employee_vue__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n ZFilesUpload: _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ZDatepicker: _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n // ATaskTimeblocks,\n QuillEditor: _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_13__.QuillEditor,\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_23__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_25__[\"default\"],\n ZRemoveEmployeeModal: _z_remove_employee_modal_vue__WEBPACK_IMPORTED_MODULE_26__[\"default\"],\n ZRemoveTimeblockModal: _z_remove_timeblock_modal_vue__WEBPACK_IMPORTED_MODULE_27__[\"default\"]\n },\n mixins: [_master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_14__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_22__[\"default\"]],\n emits: ['close', 'refresh'],\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n editMode: false,\n visible: false,\n subtask: null,\n isSaving: false,\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(),\n showDatePicker: false,\n selectedNewDate: [],\n timeblocks: [],\n deletedTimeblockIds: [],\n // Track IDs of saved timeblocks that have been deleted\n wasFormValidationTriggered: false,\n modalName: 'z-task-modal',\n employeeRefs: [],\n pendingRemoveEmployeeId: undefined,\n pendingRemoveEmployeeIndex: undefined\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_21__.mapGetters)('tm', ['mastertasks', 'enrichedEmployees']),\n enrichedMastertasks() {\n return this.mastertasks.map(mastertask => ({\n ...mastertask,\n _fullName: `${mastertask.name} [${mastertask.project_code}]`\n }));\n },\n editModeEmployee: {\n get() {\n return {\n id: this.subtask?.employee_id || null,\n duration: this.subtask?.duration || null\n };\n },\n set(value) {\n if (this.subtask) {\n this.subtask.employee_id = value.id;\n this.subtask.duration = value.duration;\n }\n }\n },\n isDraftWithMultipleEmployees() {\n return this.subtask?.is_draft && Array.isArray(this.subtask?.employees) && this.subtask.employees.length > 0;\n }\n },\n validations() {\n return {\n subtask: {\n master_task_id: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__.required\n },\n deadline: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__.required\n },\n _deadline_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__.required\n }\n }\n };\n },\n watch: {\n 'subtask.employee_id'(value, oldValue) {\n if (!value || !oldValue) return;\n\n // In edit mode: reassign timeblocks to new employee\n if (this.subtask.id) {\n this.timeblocks = this.timeblocks.map(tb => {\n if (tb.employee_id == oldValue) {\n return {\n ...tb,\n employee_id: value\n };\n }\n return tb;\n });\n } else {\n // In create mode: remove old employee's timeblocks\n this.timeblocks = this.timeblocks.filter(tb => tb.employee_id != oldValue);\n }\n this.subtask._employee = this.enrichedEmployees.find(employee => employee.id == this.subtask.employee_id);\n },\n 'subtask.employees': {\n handler() {\n if (!this.subtask?.employees) return;\n const lastEmployee = this.subtask.employees[this.subtask.employees.length - 1];\n if (lastEmployee?.id || lastEmployee?.duration) this.subtask.employees.push({});\n },\n deep: true\n },\n 'subtask.master_task_id'(value) {\n if (!value) return;\n this.subtask._master_task = this.mastertasks.find(mastertask => mastertask.id == this.subtask.master_task_id);\n this.subtask.project_code = this.subtask._master_task?.project_code || null;\n },\n editMode() {\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.subtask.description || '');\n });\n },\n subtask: {\n handler(val) {\n if (this.editMode && !this.subtask?.id) {\n const employees = val?.employees?.filter(employee => employee?.id || employee?.duration) || [{}];\n const subtaskData = {\n ...val,\n employees: employees && employees.length > 0 ? employees : [{}]\n };\n localStorage.setItem('subtaskData', JSON.stringify(subtaskData));\n }\n },\n deep: true\n },\n timeblocks: {\n handler(val) {\n if (this.editMode && !this.subtask?.id) {\n // Save timeblocks to localStorage for new tasks\n localStorage.setItem('subtaskTimeblocks', JSON.stringify(val));\n }\n },\n deep: true\n }\n },\n mounted() {\n // Handle remove timeblock modal\n this.$events.on('show-remove-timeblock-modal', ({\n onConfirm\n }) => {\n this.$refs.removeTimeblockModal.showModal({\n onConfirm\n });\n });\n this.$events.on('add-timeblock', timeblock => {\n if (!this.subtask) return;\n if (!this.subtask.timeblocks) {\n this.subtask.timeblocks = [];\n }\n if (!this.subtask.timesheets) {\n this.subtask.timesheets = [];\n }\n if (!this.subtask.is_finished) {\n this.subtask.is_finished = 0;\n }\n this.subtask.timeblocks.push(timeblock);\n });\n this.$events.on('on-subtask-edited', subtask => {\n if (subtask?.id !== this.subtask?.id) return;\n const data = JSON.parse(JSON.stringify(subtask));\n const splittedDeadline = data.deadline?.split(' ') || [];\n data.deadline = splittedDeadline[0];\n data._deadline_time = splittedDeadline[1];\n\n // Convert BE format timeblocks to internal format\n const convertedTimeblocks = [];\n if (data.timeblocks && data.timeblocks.length > 0) {\n data.timeblocks.forEach(timeblock => {\n // If already in internal format, keep as is\n if (timeblock.date) {\n convertedTimeblocks.push({\n ...timeblock,\n employee_id: data.employee_id // Add employee_id\n });\n return;\n }\n\n // Convert from BE format to internal format\n if (timeblock.start && timeblock.end) {\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.end, 'YYYY-MM-DD HH:mm:ss');\n convertedTimeblocks.push({\n id: timeblock.id || null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: timeblock.is_finished || 0,\n employee_id: data.employee_id // Add employee_id\n });\n }\n });\n }\n // Store in component's timeblocks array\n this.timeblocks = convertedTimeblocks;\n this.subtask = this._enrichTask(data);\n\n // TODO: Remove? riesil som neodstranovanie jedineho zanamu v trvani a odpracovanom case\n this.$forceUpdate();\n });\n this.$events.on('on-subtask-deleted', subtask => {\n if (subtask?.id == this.subtask?.id) this.closeModal();\n });\n },\n methods: {\n customFilterWithEmployeeFilter(item, input, itemObject) {\n const shouldShowItem = this.customFilter(item, input);\n if (!shouldShowItem) return false;\n if (!itemObject?.value) return false;\n const employeeId = itemObject.value;\n if (!this.subtask.id) {\n // New subtask with multiple employees support or edit of draft with multiple employees\n return shouldShowItem && !this.timeblocks.some(tb => tb.employee_id === employeeId);\n } else if (this.subtask.is_draft) {\n // Edit draft subtask with multiple employees support\n return shouldShowItem && !this.subtask.employees.some(employee => Number(employee.id) === employeeId);\n } else {\n // Saved standard subtask, allow \"re-select\" for better UX\n return shouldShowItem;\n }\n },\n toggleEditMode() {\n if (this.subtask.type == 'office365') return this.$events.emit('show-unable-to-edit-office-task-modal', {\n mode: 'edit'\n });\n this.editMode = !this.editMode;\n },\n // Set refs for employee components in create mode\n setEmployeeRef(el, index) {\n if (el) {\n this.employeeRefs[index] = el;\n }\n },\n openDatepicker(ref) {\n this.$refs[ref].openMenu();\n },\n // Helper: Get employee by ID\n getEmployeeById(employeeId) {\n return this.enrichedEmployees.find(emp => emp.id === employeeId);\n },\n // Helper: Get employee full name\n getEmployeeFullName(employeeId) {\n const employee = this.getEmployeeById(employeeId);\n return employee ? `${employee.name} ${employee.surname}` : '';\n },\n // Helper: Get enriched employee data by ID\n getEnrichedEmployee(employeeId) {\n return this.enrichedEmployees.find(emp => emp.id === employeeId) || {};\n },\n // Helper: Get valid employees (with id and duration) in create mode\n getValidEmployees() {\n if (!this.subtask?.employees) return [];\n return this.subtask.employees.filter(emp => emp.id && emp.duration);\n },\n // Helper: Get timeblocks for specific employee\n getEmployeeTimeblocks(employeeId) {\n if (!this.timeblocks) return [];\n return this.timeblocks.filter(tb => tb.employee_id == employeeId);\n },\n updateEmployeeTimeblocks(updatedTimeblocks, employeeId) {\n // Track deleted timeblocks (saved timeblocks that are no longer in the updated list)\n const updatedIds = new Set(updatedTimeblocks.filter(tb => tb.id).map(tb => tb.id));\n const deletedIds = this.timeblocks.filter(tb => tb.employee_id == employeeId && tb.id && !updatedIds.has(tb.id)).map(tb => tb.id).filter(id => !this.deletedTimeblockIds.includes(id));\n this.deletedTimeblockIds.push(...deletedIds);\n\n // Replace timeblocks for this employee\n const otherEmployeeTimeblocks = this.timeblocks.filter(tb => tb.employee_id != employeeId);\n const updatedWithEmployeeId = updatedTimeblocks.map(tb => ({\n ...tb,\n employee_id: employeeId\n }));\n this.timeblocks = [...otherEmployeeTimeblocks, ...updatedWithEmployeeId];\n },\n updateTimeblock(val, index, employeeId) {\n const employeeTimeblocks = this.getEmployeeTimeblocks(employeeId);\n const timeblock = employeeTimeblocks[index];\n if (!timeblock) return;\n\n // Find the actual index in the full timeblocks array\n const actualIndex = this.timeblocks.indexOf(timeblock);\n if (actualIndex !== -1) {\n this.timeblocks[actualIndex] = {\n ...val,\n employee_id: employeeId\n };\n }\n },\n addTimeblock(employeeId, afterIndex = -1) {\n const newTimeblock = {\n date: new Date(),\n // Preset to current day\n starts_at_time: null,\n ends_at_time: null,\n employee_id: employeeId\n };\n\n // Get timeblocks for this employee\n const employeeTimeblocks = this.timeblocks.filter(tb => tb.employee_id == employeeId);\n if (afterIndex === -1 || afterIndex >= employeeTimeblocks.length - 1) {\n // Add at the end\n this.timeblocks.push(newTimeblock);\n } else {\n // Find the position in the full timeblocks array\n const timeblockToInsertAfter = employeeTimeblocks[afterIndex];\n const insertPosition = this.timeblocks.indexOf(timeblockToInsertAfter) + 1;\n this.timeblocks.splice(insertPosition, 0, newTimeblock);\n }\n },\n removeTimeblock(index, employeeId) {\n const employeeTimeblocks = this.getEmployeeTimeblocks(employeeId);\n const timeblock = employeeTimeblocks[index];\n if (!timeblock) return;\n\n // Find the actual index in the full timeblocks array\n const actualIndex = this.timeblocks.indexOf(timeblock);\n if (actualIndex !== -1) {\n this.timeblocks.splice(actualIndex, 1);\n }\n },\n // Handle remove employee - also removes their timeblocks\n handleRemoveEmployee() {\n this.pendingRemoveEmployeeId = this.subtask.employee_id;\n this.$refs.removeEmployeeModal.showModal();\n },\n removeEmployeeAtIndex(index) {\n this.pendingRemoveEmployeeIndex = index;\n this.$refs.removeEmployeeModal.showModal();\n },\n confirmRemoveEmployee() {\n // Handle edit mode (single employee removal)\n if (this.pendingRemoveEmployeeId !== undefined) {\n if (this.subtask.employee_id) {\n // Remove all timeblocks for this employee\n this.timeblocks = this.timeblocks.filter(tb => tb.employee_id != this.subtask.employee_id);\n }\n\n // Clear employee data in edit mode\n this.subtask.employee_id = null;\n this.subtask.duration = null;\n this.pendingRemoveEmployeeId = undefined;\n }\n // Handle create mode (multiple employees removal)\n else if (this.pendingRemoveEmployeeIndex !== undefined) {\n const employee = this.subtask.employees[this.pendingRemoveEmployeeIndex];\n if (employee?.id) {\n // Remove all timeblocks for this employee\n this.timeblocks = this.timeblocks.filter(tb => tb.employee_id != employee.id);\n }\n\n // Remove employee from array\n this.subtask.employees.splice(this.pendingRemoveEmployeeIndex, 1);\n this.pendingRemoveEmployeeIndex = undefined;\n }\n },\n async showModal({\n subtask,\n editMode = false,\n mastertask = {}\n }) {\n this.isSaving = false;\n this.subtask = null;\n this.wasFormValidationTriggered = false; // Reset validation trigger\n\n // CRITICAL: Prevent v-dialog autofocus BEFORE modal opens\n this.preventInputFocus = true;\n this.visible = true;\n this.timeblocks = [];\n this.deletedTimeblockIds = []; // Reset deleted timeblock IDs\n this.employeeRefs = [];\n this.$nextTick(() => {\n this.v$.$reset();\n\n // Reset after modal is fully rendered and v-dialog autofocus has been blocked\n setTimeout(() => {\n this.preventInputFocus = false;\n }, 300);\n });\n try {\n if (subtask?.id) {\n const data = await this.$axios.get_auth_data(`v1/subtasks/${subtask.id}`);\n\n // Convert BE format timeblocks to internal format\n const convertedTimeblocks = [];\n if (data.timeblocks && data.timeblocks.length > 0) {\n data.timeblocks.forEach(timeblock => {\n // If already in internal format, keep as is\n if (timeblock.date) {\n convertedTimeblocks.push({\n ...timeblock,\n employee_id: data.employee_id // Add employee_id for edit mode\n });\n return;\n }\n\n // Convert from BE format to internal format\n if (timeblock.start && timeblock.end) {\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.end, 'YYYY-MM-DD HH:mm:ss');\n convertedTimeblocks.push({\n id: timeblock.id || null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: timeblock.is_finished || 0,\n employee_id: data.employee_id // Add employee_id for edit mode\n });\n }\n });\n }\n // Store timeblocks in the component's timeblocks array\n this.timeblocks = convertedTimeblocks;\n\n // If draft with employees data, parse timeblocks for each employee\n if (data.is_draft && data.employees && Array.isArray(data.employees)) {\n const draftTimeblocks = [];\n data.employees.forEach(employee => {\n if (employee.timeblocks && Array.isArray(employee.timeblocks)) {\n employee.timeblocks.forEach(timeblock => {\n // Convert BE format to internal format\n if (timeblock.start && timeblock.end) {\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.end, 'YYYY-MM-DD HH:mm:ss');\n draftTimeblocks.push({\n id: timeblock.id || null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: timeblock.is_finished || 0,\n employee_id: employee.id // Associate with employee\n });\n }\n });\n }\n });\n\n // Use draft timeblocks if they exist\n if (draftTimeblocks.length > 0) {\n this.timeblocks = draftTimeblocks;\n }\n\n // Ensure employees array has proper structure for editing\n // Check if last employee is not empty, then add empty slot\n const lastEmployee = data.employees[data.employees.length - 1];\n if (lastEmployee && (lastEmployee.id || lastEmployee.duration)) {\n data.employees.push({});\n }\n }\n\n // Ensure at least one timeblock exists for edit mode (non-draft single employee)\n if (data.employee_id && !data.is_draft && this.timeblocks.length === 0) {\n this.addTimeblock(data.employee_id);\n }\n if (!data.deadline) {\n this.editMode = editMode || !data.id;\n return this.subtask = this._enrichTask(data);\n }\n const splittedDeadline = data.deadline.split(' ');\n data.deadline = splittedDeadline[0];\n data._deadline_time = splittedDeadline[1];\n this.subtask = this._enrichTask(data);\n } else {\n const savedSubtask = localStorage.getItem('subtaskData');\n const savedTimeblocks = localStorage.getItem('subtaskTimeblocks');\n try {\n if (savedSubtask) {\n const parsedSubtask = JSON.parse(savedSubtask);\n this.subtask = parsedSubtask;\n // If the parsed result is not an object, reset to default\n if (typeof this.subtask !== 'object' || this.subtask === null) {\n throw new Error('Parsed subtask is not an object');\n }\n\n // Load timeblocks from localStorage if they exist\n if (savedTimeblocks) {\n try {\n let parsedTimeblocks = JSON.parse(savedTimeblocks);\n\n // Filter out timeblocks that are not valid\n parsedTimeblocks = parsedTimeblocks.filter(tb => tb.employee_id && tb.starts_at_time && tb.ends_at_time);\n if (Array.isArray(parsedTimeblocks)) {\n this.timeblocks = parsedTimeblocks.map(tb => ({\n ...tb,\n date: tb.date ? new Date(tb.date) : null\n }));\n } else {\n this.timeblocks = [];\n }\n } catch (e) {\n console.error('Error parsing saved timeblocks:', e);\n this.timeblocks = [];\n }\n }\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.subtask.description || '');\n });\n } else {\n throw new Error('subtaskData is null or undefined');\n }\n } catch (error) {\n // Initialize with current logged-in employee\n const currentUserId = this.$store.getters['auth/user']?.id;\n const currentEmployee = currentUserId ? this.enrichedEmployees.find(emp => emp.id === currentUserId) : null;\n this.subtask = {\n master_task: mastertask,\n employees: currentEmployee ? [{\n id: currentEmployee.id,\n duration: null\n }] : [{}],\n _deadline_time: '17:00'\n };\n\n // Add a timeblock for the current user if they exist\n if (currentUserId) {\n this.addTimeblock(currentUserId);\n }\n }\n if (subtask?.deadline && subtask._deadline_time && subtask.employee_id) {\n const employee = this.enrichedEmployees.find(employee => employee.id == subtask.employee_id);\n this.subtask.employees = [employee];\n this.subtask.deadline = subtask.deadline;\n this.subtask._deadline_time = subtask._deadline_time;\n setTimeout(() => {\n this.timeblocks = [{\n date: new Date(subtask.deadline),\n starts_at_time: subtask._deadline_time,\n ends_at_time: null,\n employee_id: subtask.employee_id\n }];\n }, 500);\n }\n if (subtask?.master_task_id && subtask?.project_code) {\n this.subtask.master_task_id = subtask.master_task_id;\n this.subtask.project_code = subtask.project_code;\n }\n }\n this.editMode = editMode || !this.subtask.id;\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n deleteTimeblock(i) {\n this.subtask.timeblocks.splice(i, 1);\n },\n closeModal() {\n this.visible = false;\n this.$router.replace({\n name: this.$route.name\n });\n },\n async validate(concept = false) {\n if (concept === false) {\n const employeesValid = await this._validateEmployees();\n const timeblocksValid = await this._validateTimeblocks();\n if (!(await this.v$.$validate())) return;\n if (!employeesValid || !timeblocksValid) return;\n return true;\n } else {\n this.v$.subtask.master_task_id.$touch();\n return this.v$.subtask.master_task_id.$errors.length === 0;\n }\n },\n async save(concept = false) {\n this.v$.$reset();\n this.wasFormValidationTriggered = true;\n if (!(await this.validate(concept))) return;\n this.subtask.description = this.$refs['description'].getHTML();\n this._mergeDeadlineTimeDate();\n try {\n this.isSaving = true;\n\n // Concept tasks may not have a deadline time set\n this.subtask.deadline = this.subtask.deadline ? moment__WEBPACK_IMPORTED_MODULE_16___default()(this.subtask.deadline).format('YYYY-MM-DD HH:mm:SS') : null;\n if (this.subtask?.id) {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format for update\n // Filter out completely empty timeblocks AND timeblocks without all required fields\n const timeblocks = this.timeblocks.filter(timeblock => timeblock.date && timeblock.starts_at_time && timeblock.ends_at_time && timeblock.employee_id == this.subtask.employee_id) // Only send complete timeblocks for this employee\n .map(timeblock => {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const payload = {\n ...this.subtask,\n timesheets,\n timeblocks\n };\n\n // For drafts with multiple employees, include employees array\n if (this.subtask.is_draft && this.isDraftWithMultipleEmployees) {\n const validEmployees = this.subtask.employees.filter(employee => employee.id && employee.duration);\n\n // Assign timeblocks to each employee\n validEmployees.forEach(employee => {\n employee.timeblocks = this.timeblocks.filter(tb => tb.employee_id == employee.id && tb.date && tb.starts_at_time && tb.ends_at_time).map(tb => ({\n start: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(tb.date).format('YYYY-MM-DD')} ${tb.starts_at_time}:00`,\n end: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(tb.date).format('YYYY-MM-DD')} ${tb.ends_at_time}:00`,\n id: tb.id || null\n }));\n });\n payload.employees = validEmployees;\n }\n if (concept) {\n payload.is_draft = 1;\n } else {\n payload.is_draft = 0;\n }\n const {\n subtask\n } = await this.$axios.patch_auth_form(`v1/subtasks/${this.subtask.id}`, payload);\n localStorage.removeItem('subtaskData');\n localStorage.removeItem('subtaskTimeblocks');\n this.$store.commit('tm/update_subtask', subtask);\n this.$events.emit('on-subtask-edited', this.subtask);\n } else {\n // Filter out employees that don't have both id and duration\n const validEmployees = this.subtask.employees.filter(employee => employee.id && employee.duration);\n\n // Assign timeblocks to each employee based on employee_id\n // Filter out empty/incomplete timeblocks - only send fully filled timeblocks\n validEmployees.forEach(employee => {\n employee.timeblocks = this.timeblocks.filter(timeblock => timeblock.date && timeblock.starts_at_time && timeblock.ends_at_time && timeblock.employee_id == employee.id).map(timeblock => {\n return {\n start: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD')} ${timeblock.starts_at_time}:00`,\n end: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD')} ${timeblock.ends_at_time}:00`,\n id: null\n };\n });\n });\n const subtaskCopy = {\n ...this.subtask,\n employees: validEmployees\n };\n if (concept) {\n subtaskCopy.is_draft = true;\n subtaskCopy.employees = subtaskCopy.employees?.length > 0 ? subtaskCopy.employees : [{\n id: this.$store.getters['auth/user']?.id,\n duration: 0\n }];\n }\n delete subtaskCopy._master_task;\n const {\n subtasks\n } = await this.$axios.post_auth(`v1/mastertasks/${this.subtask.master_task_id}/subtasks`, subtaskCopy);\n localStorage.removeItem('subtaskData');\n localStorage.removeItem('subtaskTimeblocks');\n this.subtask.id = subtasks[0].id;\n subtasks.forEach(subtask => {\n this.$store.commit('tm/update_subtask', subtask);\n this.$events.emit('on-subtask-edited', this.subtask);\n });\n this.$events.emit('task-created');\n this.$events.emit('close-both-modals');\n }\n this.closeModal();\n } catch (error) {\n console.log('error', error);\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isSaving = false;\n }\n },\n openDeleteTaskModal(subtask) {\n if (subtask.type == 'office365') return this.$events.emit('show-unable-to-edit-office-task-modal', {\n mode: 'delete'\n });\n this.$events.emit('show-delete-task-modal', {\n subtask\n });\n },\n showCompleteTaskModal() {\n this.$events.emit('show-complete-task-modal', {\n subtask: this.subtask\n });\n if (this.subtask.deadline) this.subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_15__[\"default\"].formatDateTimeForBackend(this.subtask.deadline);\n },\n filesUploaded(files) {\n this.subtask.files = files;\n },\n updateSubtask(subtask) {\n this.subtask = subtask;\n },\n _mergeDeadlineTimeDate() {\n // Override for concept tasks which may not have a deadline time set (check for invalid date)\n if (isNaN(new Date(this.subtask.deadline).getTime()) || !this.subtask._deadline_time) {\n this.subtask.deadline = null;\n } else {\n const date = new Date(this.subtask.deadline);\n const timeParts = this.subtask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n this.subtask.deadline = date;\n }\n },\n async _validateEmployees() {\n if (this.subtask.id && !this.subtask.is_draft) {\n // For existing subtasks, at least one employee is required\n const hasEmployee = !!(this.subtask.employee_id && this.subtask.duration);\n return hasEmployee;\n } else {\n let valid = true;\n\n // Validate ALL employee component refs (this will show errors on inputs)\n for (let i = 0; i < this.employeeRefs.length; i++) {\n const employeeRef = this.employeeRefs[i];\n\n // Validate employees that have any data (partial or complete)\n if (employeeRef && typeof employeeRef.validate === 'function') {\n if (!(await employeeRef.validate())) {\n valid = false;\n }\n }\n }\n return valid;\n }\n },\n async _validateTimeblocks() {\n // Date alone is valid. Validation only applies if start OR end time is filled.\n // If start OR end is filled, then ALL fields (date, start, end) are required.\n let valid = true;\n for (const timeblock of this.timeblocks) {\n const hasStart = !!timeblock.starts_at_time;\n const hasEnd = !!timeblock.ends_at_time;\n const hasAnyTime = hasStart || hasEnd;\n\n // If no time data (start/end), timeblock is valid (date alone is OK)\n if (!hasAnyTime) {\n continue;\n }\n\n // If start OR end is filled, ALL fields are required\n const hasDate = !!timeblock.date;\n if (!hasDate || !hasStart || !hasEnd) {\n valid = false;\n break;\n }\n\n // Validate that end time is after start time\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD');\n const start = moment__WEBPACK_IMPORTED_MODULE_16___default()(`${dateStr} ${timeblock.starts_at_time}`, 'YYYY-MM-DD HH:mm');\n const end = moment__WEBPACK_IMPORTED_MODULE_16___default()(`${dateStr} ${timeblock.ends_at_time}`, 'YYYY-MM-DD HH:mm');\n if (end.isSameOrBefore(start)) {\n valid = false;\n break;\n }\n }\n return valid;\n },\n _enrichTask(subtask) {\n return {\n ...subtask,\n _created_by: this.enrichedEmployees.find(employee => employee.id == subtask.created_by),\n _employee: this.enrichedEmployees.find(employee => employee.id == subtask.employee_id),\n _master_task: this.mastertasks.find(mastertask => mastertask.id == subtask.master_task_id)\n };\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ \"./node_modules/core-js/modules/esnext.iterator.some.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_components/z-datepicker.vue */ \"./src/plugins/tm@_components/z-datepicker.vue\");\n/* harmony import */ var _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@_components/z-files-upload.vue */ \"./src/plugins/tm@_components/z-files-upload.vue\");\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @vueup/vue-quill */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js\");\n/* harmony import */ var _master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../master-task/_mixins/selects.mixin */ \"./src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @vueup/vue-quill/dist/vue-quill.snow.css */ \"./node_modules/@vueup/vue-quill/dist/vue-quill.snow.css\");\n/* harmony import */ var _vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_vueup_vue_quill_dist_vue_quill_snow_css__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _components_z_task_readonly_info_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./_components/z-task-readonly-info.vue */ \"./src/plugins/tm@modal/task/_components/z-task-readonly-info.vue\");\n/* harmony import */ var _components_employees_a_employee_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_components/employees/a-employee.vue */ \"./src/plugins/tm@modal/task/_components/employees/a-employee.vue\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n/* harmony import */ var _z_remove_employee_modal_vue__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./z-remove-employee-modal.vue */ \"./src/plugins/tm@modal/task/z-remove-employee-modal.vue\");\n/* harmony import */ var _z_remove_timeblock_modal_vue__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./z-remove-timeblock-modal.vue */ \"./src/plugins/tm@modal/task/z-remove-timeblock-modal.vue\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ZTaskReadonlyInfo: _components_z_task_readonly_info_vue__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n AEmployee: _components_employees_a_employee_vue__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n ZFilesUpload: _plugins_tm_components_z_files_upload_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ZDatepicker: _plugins_tm_components_z_datepicker_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n // ATaskTimeblocks,\n QuillEditor: _vueup_vue_quill__WEBPACK_IMPORTED_MODULE_13__.QuillEditor,\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_23__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_25__[\"default\"],\n ZRemoveEmployeeModal: _z_remove_employee_modal_vue__WEBPACK_IMPORTED_MODULE_26__[\"default\"],\n ZRemoveTimeblockModal: _z_remove_timeblock_modal_vue__WEBPACK_IMPORTED_MODULE_27__[\"default\"]\n },\n mixins: [_master_task_mixins_selects_mixin__WEBPACK_IMPORTED_MODULE_14__[\"default\"], _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_18__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_22__[\"default\"]],\n emits: ['close', 'refresh'],\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n editMode: false,\n visible: false,\n subtask: null,\n isSaving: false,\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(),\n showDatePicker: false,\n selectedNewDate: [],\n timeblocks: [],\n deletedTimeblockIds: [],\n // Track IDs of saved timeblocks that have been deleted\n wasFormValidationTriggered: false,\n modalName: 'z-task-modal',\n modalSize: 'large',\n employeeRefs: [],\n pendingRemoveEmployeeId: undefined,\n pendingRemoveEmployeeIndex: undefined\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_21__.mapGetters)('tm', ['mastertasks', 'enrichedEmployees']),\n enrichedMastertasks() {\n return this.mastertasks.map(mastertask => ({\n ...mastertask,\n _fullName: `${mastertask.name} [${mastertask.project_code}]`\n }));\n },\n editModeEmployee: {\n get() {\n return {\n id: this.subtask?.employee_id || null,\n duration: this.subtask?.duration || null\n };\n },\n set(value) {\n if (this.subtask) {\n this.subtask.employee_id = value.id;\n this.subtask.duration = value.duration;\n }\n }\n },\n isDraftWithMultipleEmployees() {\n return this.subtask?.is_draft && Array.isArray(this.subtask?.employees) && this.subtask.employees.length > 0;\n }\n },\n validations() {\n return {\n subtask: {\n master_task_id: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__.required\n },\n deadline: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__.required\n },\n _deadline_time: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_11__.required\n }\n }\n };\n },\n watch: {\n 'subtask.employee_id'(value, oldValue) {\n if (!value || !oldValue) return;\n\n // In edit mode: reassign timeblocks to new employee\n if (this.subtask.id) {\n this.timeblocks = this.timeblocks.map(tb => {\n if (tb.employee_id == oldValue) {\n return {\n ...tb,\n employee_id: value\n };\n }\n return tb;\n });\n } else {\n // In create mode: remove old employee's timeblocks\n this.timeblocks = this.timeblocks.filter(tb => tb.employee_id != oldValue);\n }\n this.subtask._employee = this.enrichedEmployees.find(employee => employee.id == this.subtask.employee_id);\n },\n 'subtask.employees': {\n handler() {\n if (!this.subtask?.employees) return;\n const lastEmployee = this.subtask.employees[this.subtask.employees.length - 1];\n if (lastEmployee?.id || lastEmployee?.duration) this.subtask.employees.push({});\n },\n deep: true\n },\n 'subtask.master_task_id'(value) {\n if (!value) return;\n this.subtask._master_task = this.mastertasks.find(mastertask => mastertask.id == this.subtask.master_task_id);\n this.subtask.project_code = this.subtask._master_task?.project_code || null;\n },\n editMode() {\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.subtask.description || '');\n });\n },\n subtask: {\n handler(val) {\n if (this.editMode && !this.subtask?.id) {\n const employees = val?.employees?.filter(employee => employee?.id || employee?.duration) || [{}];\n const subtaskData = {\n ...val,\n employees: employees && employees.length > 0 ? employees : [{}]\n };\n localStorage.setItem('subtaskData', JSON.stringify(subtaskData));\n }\n },\n deep: true\n },\n timeblocks: {\n handler(val) {\n if (this.editMode && !this.subtask?.id) {\n // Save timeblocks to localStorage for new tasks\n localStorage.setItem('subtaskTimeblocks', JSON.stringify(val));\n }\n },\n deep: true\n }\n },\n mounted() {\n // Handle remove timeblock modal\n this.$events.on('show-remove-timeblock-modal', ({\n onConfirm\n }) => {\n this.$refs.removeTimeblockModal.showModal({\n onConfirm\n });\n });\n this.$events.on('add-timeblock', timeblock => {\n if (!this.subtask) return;\n if (!this.subtask.timeblocks) {\n this.subtask.timeblocks = [];\n }\n if (!this.subtask.timesheets) {\n this.subtask.timesheets = [];\n }\n if (!this.subtask.is_finished) {\n this.subtask.is_finished = 0;\n }\n this.subtask.timeblocks.push(timeblock);\n });\n this.$events.on('on-subtask-edited', subtask => {\n if (subtask?.id !== this.subtask?.id) return;\n const data = JSON.parse(JSON.stringify(subtask));\n const splittedDeadline = data.deadline?.split(' ') || [];\n data.deadline = splittedDeadline[0];\n data._deadline_time = splittedDeadline[1];\n\n // Convert BE format timeblocks to internal format\n const convertedTimeblocks = [];\n if (data.timeblocks && data.timeblocks.length > 0) {\n data.timeblocks.forEach(timeblock => {\n // If already in internal format, keep as is\n if (timeblock.date) {\n convertedTimeblocks.push({\n ...timeblock,\n employee_id: data.employee_id // Add employee_id\n });\n return;\n }\n\n // Convert from BE format to internal format\n if (timeblock.start && timeblock.end) {\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.end, 'YYYY-MM-DD HH:mm:ss');\n convertedTimeblocks.push({\n id: timeblock.id || null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: timeblock.is_finished || 0,\n employee_id: data.employee_id // Add employee_id\n });\n }\n });\n }\n // Store in component's timeblocks array\n this.timeblocks = convertedTimeblocks;\n this.subtask = this._enrichTask(data);\n\n // TODO: Remove? riesil som neodstranovanie jedineho zanamu v trvani a odpracovanom case\n this.$forceUpdate();\n });\n this.$events.on('on-subtask-deleted', subtask => {\n if (subtask?.id == this.subtask?.id) this.closeModal();\n });\n },\n methods: {\n customFilterWithEmployeeFilter(item, input, itemObject) {\n const shouldShowItem = this.customFilter(item, input);\n if (!shouldShowItem) return false;\n if (!itemObject?.value) return false;\n const employeeId = itemObject.value;\n if (!this.subtask.id) {\n // New subtask with multiple employees support or edit of draft with multiple employees\n return shouldShowItem && !this.timeblocks.some(tb => tb.employee_id === employeeId);\n } else if (this.subtask.is_draft) {\n // Edit draft subtask with multiple employees support\n return shouldShowItem && !this.subtask.employees.some(employee => Number(employee.id) === employeeId);\n } else {\n // Saved standard subtask, allow \"re-select\" for better UX\n return shouldShowItem;\n }\n },\n toggleEditMode() {\n if (this.subtask.type == 'office365') return this.$events.emit('show-unable-to-edit-office-task-modal', {\n mode: 'edit'\n });\n this.editMode = !this.editMode;\n },\n // Set refs for employee components in create mode\n setEmployeeRef(el, index) {\n if (el) {\n this.employeeRefs[index] = el;\n }\n },\n openDatepicker(ref) {\n this.$refs[ref].openMenu();\n },\n // Helper: Get employee by ID\n getEmployeeById(employeeId) {\n return this.enrichedEmployees.find(emp => emp.id === employeeId);\n },\n // Helper: Get employee full name\n getEmployeeFullName(employeeId) {\n const employee = this.getEmployeeById(employeeId);\n return employee ? `${employee.name} ${employee.surname}` : '';\n },\n // Helper: Get enriched employee data by ID\n getEnrichedEmployee(employeeId) {\n return this.enrichedEmployees.find(emp => emp.id === employeeId) || {};\n },\n // Helper: Get valid employees (with id and duration) in create mode\n getValidEmployees() {\n if (!this.subtask?.employees) return [];\n return this.subtask.employees.filter(emp => emp.id && emp.duration);\n },\n // Helper: Get timeblocks for specific employee\n getEmployeeTimeblocks(employeeId) {\n if (!this.timeblocks) return [];\n return this.timeblocks.filter(tb => tb.employee_id == employeeId);\n },\n updateEmployeeTimeblocks(updatedTimeblocks, employeeId) {\n // Track deleted timeblocks (saved timeblocks that are no longer in the updated list)\n const updatedIds = new Set(updatedTimeblocks.filter(tb => tb.id).map(tb => tb.id));\n const deletedIds = this.timeblocks.filter(tb => tb.employee_id == employeeId && tb.id && !updatedIds.has(tb.id)).map(tb => tb.id).filter(id => !this.deletedTimeblockIds.includes(id));\n this.deletedTimeblockIds.push(...deletedIds);\n\n // Replace timeblocks for this employee\n const otherEmployeeTimeblocks = this.timeblocks.filter(tb => tb.employee_id != employeeId);\n const updatedWithEmployeeId = updatedTimeblocks.map(tb => ({\n ...tb,\n employee_id: employeeId\n }));\n this.timeblocks = [...otherEmployeeTimeblocks, ...updatedWithEmployeeId];\n },\n updateTimeblock(val, index, employeeId) {\n const employeeTimeblocks = this.getEmployeeTimeblocks(employeeId);\n const timeblock = employeeTimeblocks[index];\n if (!timeblock) return;\n\n // Find the actual index in the full timeblocks array\n const actualIndex = this.timeblocks.indexOf(timeblock);\n if (actualIndex !== -1) {\n this.timeblocks[actualIndex] = {\n ...val,\n employee_id: employeeId\n };\n }\n },\n addTimeblock(employeeId, afterIndex = -1) {\n const newTimeblock = {\n date: new Date(),\n // Preset to current day\n starts_at_time: null,\n ends_at_time: null,\n employee_id: employeeId\n };\n\n // Get timeblocks for this employee\n const employeeTimeblocks = this.timeblocks.filter(tb => tb.employee_id == employeeId);\n if (afterIndex === -1 || afterIndex >= employeeTimeblocks.length - 1) {\n // Add at the end\n this.timeblocks.push(newTimeblock);\n } else {\n // Find the position in the full timeblocks array\n const timeblockToInsertAfter = employeeTimeblocks[afterIndex];\n const insertPosition = this.timeblocks.indexOf(timeblockToInsertAfter) + 1;\n this.timeblocks.splice(insertPosition, 0, newTimeblock);\n }\n },\n removeTimeblock(index, employeeId) {\n const employeeTimeblocks = this.getEmployeeTimeblocks(employeeId);\n const timeblock = employeeTimeblocks[index];\n if (!timeblock) return;\n\n // Find the actual index in the full timeblocks array\n const actualIndex = this.timeblocks.indexOf(timeblock);\n if (actualIndex !== -1) {\n this.timeblocks.splice(actualIndex, 1);\n }\n },\n // Handle remove employee - also removes their timeblocks\n handleRemoveEmployee() {\n this.pendingRemoveEmployeeId = this.subtask.employee_id;\n this.$refs.removeEmployeeModal.showModal();\n },\n removeEmployeeAtIndex(index) {\n this.pendingRemoveEmployeeIndex = index;\n this.$refs.removeEmployeeModal.showModal();\n },\n confirmRemoveEmployee() {\n // Handle edit mode (single employee removal)\n if (this.pendingRemoveEmployeeId !== undefined) {\n if (this.subtask.employee_id) {\n // Remove all timeblocks for this employee\n this.timeblocks = this.timeblocks.filter(tb => tb.employee_id != this.subtask.employee_id);\n }\n\n // Clear employee data in edit mode\n this.subtask.employee_id = null;\n this.subtask.duration = null;\n this.pendingRemoveEmployeeId = undefined;\n }\n // Handle create mode (multiple employees removal)\n else if (this.pendingRemoveEmployeeIndex !== undefined) {\n const employee = this.subtask.employees[this.pendingRemoveEmployeeIndex];\n if (employee?.id) {\n // Remove all timeblocks for this employee\n this.timeblocks = this.timeblocks.filter(tb => tb.employee_id != employee.id);\n }\n\n // Remove employee from array\n this.subtask.employees.splice(this.pendingRemoveEmployeeIndex, 1);\n this.pendingRemoveEmployeeIndex = undefined;\n }\n },\n async showModal({\n subtask,\n editMode = false,\n mastertask = {}\n }) {\n this.isSaving = false;\n this.subtask = null;\n this.wasFormValidationTriggered = false; // Reset validation trigger\n\n // CRITICAL: Prevent v-dialog autofocus BEFORE modal opens\n this.preventInputFocus = true;\n this.visible = true;\n this.timeblocks = [];\n this.deletedTimeblockIds = []; // Reset deleted timeblock IDs\n this.employeeRefs = [];\n this.$nextTick(() => {\n this.v$.$reset();\n\n // Reset after modal is fully rendered and v-dialog autofocus has been blocked\n setTimeout(() => {\n this.preventInputFocus = false;\n }, 300);\n });\n try {\n if (subtask?.id) {\n const data = await this.$axios.get_auth_data(`v1/subtasks/${subtask.id}`);\n\n // Convert BE format timeblocks to internal format\n const convertedTimeblocks = [];\n if (data.timeblocks && data.timeblocks.length > 0) {\n data.timeblocks.forEach(timeblock => {\n // If already in internal format, keep as is\n if (timeblock.date) {\n convertedTimeblocks.push({\n ...timeblock,\n employee_id: data.employee_id // Add employee_id for edit mode\n });\n return;\n }\n\n // Convert from BE format to internal format\n if (timeblock.start && timeblock.end) {\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.end, 'YYYY-MM-DD HH:mm:ss');\n convertedTimeblocks.push({\n id: timeblock.id || null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: timeblock.is_finished || 0,\n employee_id: data.employee_id // Add employee_id for edit mode\n });\n }\n });\n }\n // Store timeblocks in the component's timeblocks array\n this.timeblocks = convertedTimeblocks;\n\n // If draft with employees data, parse timeblocks for each employee\n if (data.is_draft && data.employees && Array.isArray(data.employees)) {\n const draftTimeblocks = [];\n data.employees.forEach(employee => {\n if (employee.timeblocks && Array.isArray(employee.timeblocks)) {\n employee.timeblocks.forEach(timeblock => {\n // Convert BE format to internal format\n if (timeblock.start && timeblock.end) {\n const startMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.start, 'YYYY-MM-DD HH:mm:ss');\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.end, 'YYYY-MM-DD HH:mm:ss');\n draftTimeblocks.push({\n id: timeblock.id || null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n is_finished: timeblock.is_finished || 0,\n employee_id: employee.id // Associate with employee\n });\n }\n });\n }\n });\n\n // Use draft timeblocks if they exist\n if (draftTimeblocks.length > 0) {\n this.timeblocks = draftTimeblocks;\n }\n\n // Ensure employees array has proper structure for editing\n // Check if last employee is not empty, then add empty slot\n const lastEmployee = data.employees[data.employees.length - 1];\n if (lastEmployee && (lastEmployee.id || lastEmployee.duration)) {\n data.employees.push({});\n }\n }\n\n // Ensure at least one timeblock exists for edit mode (non-draft single employee)\n if (data.employee_id && !data.is_draft && this.timeblocks.length === 0) {\n this.addTimeblock(data.employee_id);\n }\n if (!data.deadline) {\n this.editMode = editMode || !data.id;\n return this.subtask = this._enrichTask(data);\n }\n const splittedDeadline = data.deadline.split(' ');\n data.deadline = splittedDeadline[0];\n data._deadline_time = splittedDeadline[1];\n this.subtask = this._enrichTask(data);\n } else {\n const savedSubtask = localStorage.getItem('subtaskData');\n const savedTimeblocks = localStorage.getItem('subtaskTimeblocks');\n try {\n if (savedSubtask) {\n const parsedSubtask = JSON.parse(savedSubtask);\n this.subtask = parsedSubtask;\n // If the parsed result is not an object, reset to default\n if (typeof this.subtask !== 'object' || this.subtask === null) {\n throw new Error('Parsed subtask is not an object');\n }\n\n // Load timeblocks from localStorage if they exist\n if (savedTimeblocks) {\n try {\n let parsedTimeblocks = JSON.parse(savedTimeblocks);\n\n // Filter out timeblocks that are not valid\n parsedTimeblocks = parsedTimeblocks.filter(tb => tb.employee_id && tb.starts_at_time && tb.ends_at_time);\n if (Array.isArray(parsedTimeblocks)) {\n this.timeblocks = parsedTimeblocks.map(tb => ({\n ...tb,\n date: tb.date ? new Date(tb.date) : null\n }));\n } else {\n this.timeblocks = [];\n }\n } catch (e) {\n console.error('Error parsing saved timeblocks:', e);\n this.timeblocks = [];\n }\n }\n this.$nextTick(() => {\n this.$refs['description']?.setHTML(this.subtask.description || '');\n });\n } else {\n throw new Error('subtaskData is null or undefined');\n }\n } catch (error) {\n // Initialize with current logged-in employee\n const currentUserId = this.$store.getters['auth/user']?.id;\n const currentEmployee = currentUserId ? this.enrichedEmployees.find(emp => emp.id === currentUserId) : null;\n this.subtask = {\n master_task: mastertask,\n employees: currentEmployee ? [{\n id: currentEmployee.id,\n duration: null\n }] : [{}],\n _deadline_time: '17:00'\n };\n\n // Add a timeblock for the current user if they exist\n if (currentUserId) {\n this.addTimeblock(currentUserId);\n }\n }\n if (subtask?.deadline && subtask._deadline_time && subtask.employee_id) {\n const employee = this.enrichedEmployees.find(employee => employee.id == subtask.employee_id);\n this.subtask.employees = [employee];\n this.subtask.deadline = subtask.deadline;\n this.subtask._deadline_time = subtask._deadline_time;\n setTimeout(() => {\n this.timeblocks = [{\n date: new Date(subtask.deadline),\n starts_at_time: subtask._deadline_time,\n ends_at_time: null,\n employee_id: subtask.employee_id\n }];\n }, 500);\n }\n if (subtask?.master_task_id && subtask?.project_code) {\n this.subtask.master_task_id = subtask.master_task_id;\n this.subtask.project_code = subtask.project_code;\n }\n }\n this.editMode = editMode || !this.subtask.id;\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n deleteTimeblock(i) {\n this.subtask.timeblocks.splice(i, 1);\n },\n closeModal() {\n this.visible = false;\n this.$router.replace({\n name: this.$route.name\n });\n },\n async validate(concept = false) {\n if (concept === false) {\n const employeesValid = await this._validateEmployees();\n const timeblocksValid = await this._validateTimeblocks();\n if (!(await this.v$.$validate())) return;\n if (!employeesValid || !timeblocksValid) return;\n return true;\n } else {\n this.v$.subtask.master_task_id.$touch();\n return this.v$.subtask.master_task_id.$errors.length === 0;\n }\n },\n async save(concept = false) {\n this.v$.$reset();\n this.wasFormValidationTriggered = true;\n if (!(await this.validate(concept))) return;\n this.subtask.description = this.$refs['description'].getHTML();\n this._mergeDeadlineTimeDate();\n try {\n this.isSaving = true;\n\n // Concept tasks may not have a deadline time set\n this.subtask.deadline = this.subtask.deadline ? moment__WEBPACK_IMPORTED_MODULE_16___default()(this.subtask.deadline).format('YYYY-MM-DD HH:mm:SS') : null;\n if (this.subtask?.id) {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format for update\n // Filter out completely empty timeblocks AND timeblocks without all required fields\n const timeblocks = this.timeblocks.filter(timeblock => timeblock.date && timeblock.starts_at_time && timeblock.ends_at_time && timeblock.employee_id == this.subtask.employee_id) // Only send complete timeblocks for this employee\n .map(timeblock => {\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const payload = {\n ...this.subtask,\n timesheets,\n timeblocks\n };\n\n // For drafts with multiple employees, include employees array\n if (this.subtask.is_draft && this.isDraftWithMultipleEmployees) {\n const validEmployees = this.subtask.employees.filter(employee => employee.id && employee.duration);\n\n // Assign timeblocks to each employee\n validEmployees.forEach(employee => {\n employee.timeblocks = this.timeblocks.filter(tb => tb.employee_id == employee.id && tb.date && tb.starts_at_time && tb.ends_at_time).map(tb => ({\n start: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(tb.date).format('YYYY-MM-DD')} ${tb.starts_at_time}:00`,\n end: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(tb.date).format('YYYY-MM-DD')} ${tb.ends_at_time}:00`,\n id: tb.id || null\n }));\n });\n payload.employees = validEmployees;\n }\n if (concept) {\n payload.is_draft = 1;\n } else {\n payload.is_draft = 0;\n }\n const {\n subtask\n } = await this.$axios.patch_auth_form(`v1/subtasks/${this.subtask.id}`, payload);\n localStorage.removeItem('subtaskData');\n localStorage.removeItem('subtaskTimeblocks');\n this.$store.commit('tm/update_subtask', subtask);\n this.$events.emit('on-subtask-edited', this.subtask);\n } else {\n // Filter out employees that don't have both id and duration\n const validEmployees = this.subtask.employees.filter(employee => employee.id && employee.duration);\n\n // Assign timeblocks to each employee based on employee_id\n // Filter out empty/incomplete timeblocks - only send fully filled timeblocks\n validEmployees.forEach(employee => {\n employee.timeblocks = this.timeblocks.filter(timeblock => timeblock.date && timeblock.starts_at_time && timeblock.ends_at_time && timeblock.employee_id == employee.id).map(timeblock => {\n return {\n start: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD')} ${timeblock.starts_at_time}:00`,\n end: `${moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD')} ${timeblock.ends_at_time}:00`,\n id: null\n };\n });\n });\n const subtaskCopy = {\n ...this.subtask,\n employees: validEmployees\n };\n if (concept) {\n subtaskCopy.is_draft = true;\n subtaskCopy.employees = subtaskCopy.employees?.length > 0 ? subtaskCopy.employees : [{\n id: this.$store.getters['auth/user']?.id,\n duration: 0\n }];\n }\n delete subtaskCopy._master_task;\n const {\n subtasks\n } = await this.$axios.post_auth(`v1/mastertasks/${this.subtask.master_task_id}/subtasks`, subtaskCopy);\n localStorage.removeItem('subtaskData');\n localStorage.removeItem('subtaskTimeblocks');\n this.subtask.id = subtasks[0].id;\n subtasks.forEach(subtask => {\n this.$store.commit('tm/update_subtask', subtask);\n this.$events.emit('on-subtask-edited', this.subtask);\n });\n this.$events.emit('task-created');\n this.$events.emit('close-both-modals');\n }\n this.closeModal();\n } catch (error) {\n console.log('error', error);\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isSaving = false;\n }\n },\n openDeleteTaskModal(subtask) {\n if (subtask.type == 'office365') return this.$events.emit('show-unable-to-edit-office-task-modal', {\n mode: 'delete'\n });\n this.$events.emit('show-delete-task-modal', {\n subtask\n });\n },\n showCompleteTaskModal() {\n this.$events.emit('show-complete-task-modal', {\n subtask: this.subtask\n });\n if (this.subtask.deadline) this.subtask.deadline = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_15__[\"default\"].formatDateTimeForBackend(this.subtask.deadline);\n },\n filesUploaded(files) {\n this.subtask.files = files;\n },\n updateSubtask(subtask) {\n this.subtask = subtask;\n },\n _mergeDeadlineTimeDate() {\n // Override for concept tasks which may not have a deadline time set (check for invalid date)\n if (isNaN(new Date(this.subtask.deadline).getTime()) || !this.subtask._deadline_time) {\n this.subtask.deadline = null;\n } else {\n const date = new Date(this.subtask.deadline);\n const timeParts = this.subtask._deadline_time.split(':');\n date.setHours(parseInt(timeParts[0]));\n date.setMinutes(parseInt(timeParts[1]));\n this.subtask.deadline = date;\n }\n },\n async _validateEmployees() {\n if (this.subtask.id && !this.subtask.is_draft) {\n // For existing subtasks, at least one employee is required\n const hasEmployee = !!(this.subtask.employee_id && this.subtask.duration);\n return hasEmployee;\n } else {\n let valid = true;\n\n // Validate ALL employee component refs (this will show errors on inputs)\n for (let i = 0; i < this.employeeRefs.length; i++) {\n const employeeRef = this.employeeRefs[i];\n\n // Validate employees that have any data (partial or complete)\n if (employeeRef && typeof employeeRef.validate === 'function') {\n if (!(await employeeRef.validate())) {\n valid = false;\n }\n }\n }\n return valid;\n }\n },\n async _validateTimeblocks() {\n // Date alone is valid. Validation only applies if start OR end time is filled.\n // If start OR end is filled, then ALL fields (date, start, end) are required.\n let valid = true;\n for (const timeblock of this.timeblocks) {\n const hasStart = !!timeblock.starts_at_time;\n const hasEnd = !!timeblock.ends_at_time;\n const hasAnyTime = hasStart || hasEnd;\n\n // If no time data (start/end), timeblock is valid (date alone is OK)\n if (!hasAnyTime) {\n continue;\n }\n\n // If start OR end is filled, ALL fields are required\n const hasDate = !!timeblock.date;\n if (!hasDate || !hasStart || !hasEnd) {\n valid = false;\n break;\n }\n\n // Validate that end time is after start time\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_16___default()(timeblock.date).format('YYYY-MM-DD');\n const start = moment__WEBPACK_IMPORTED_MODULE_16___default()(`${dateStr} ${timeblock.starts_at_time}`, 'YYYY-MM-DD HH:mm');\n const end = moment__WEBPACK_IMPORTED_MODULE_16___default()(`${dateStr} ${timeblock.ends_at_time}`, 'YYYY-MM-DD HH:mm');\n if (end.isSameOrBefore(start)) {\n valid = false;\n break;\n }\n }\n return valid;\n },\n _enrichTask(subtask) {\n return {\n ...subtask,\n _created_by: this.enrichedEmployees.find(employee => employee.id == subtask.created_by),\n _employee: this.enrichedEmployees.find(employee => employee.id == subtask.employee_id),\n _master_task: this.mastertasks.find(mastertask => mastertask.id == subtask.master_task_id)\n };\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -554,7 +554,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_every_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.every.js */ \"./node_modules/core-js/modules/esnext.iterator.every.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_every_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_every_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__[\"default\"]],\n props: {\n mode: {\n type: String,\n default: 'edit' // edit or delete\n }\n },\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n visible: false,\n subtask: null,\n loadingTimeblocks: {},\n loadingCloseAll: false,\n modalName: 'z-unable-to-complete-task-modal'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {},\n closeModal() {\n this.visible = false;\n },\n async handleFinishTimeblock(timeblock) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n try {\n this.loadingTimeblocks[timeblock.id] = true;\n await this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n timeblock.is_finished = 1;\n const areAllTimeblocksFinished = subtask.timeblocks.every(timeblock => timeblock.is_finished);\n if (areAllTimeblocksFinished) {\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n }\n this.$events.emit('on-subtask-edited', subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n } finally {\n this.loadingTimeblocks[timeblock.id] = false;\n }\n },\n async handleFinishAllTimeblocks() {\n this.loadingCloseAll = true;\n try {\n const promises = this.subtask.timeblocks.map(timeblock => {\n return this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n });\n await Promise.all(promises);\n this.subtask.timeblocks = this.subtask.timeblocks.map(timeblock => {\n timeblock.is_finished = 1;\n return timeblock;\n });\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n this.$events.emit('on-subtask-edited', this.subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n } finally {\n this.loadingCloseAll = false;\n }\n },\n async _finishSubtask() {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_7___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...this.subtask,\n is_finished: 1,\n timesheets,\n timeblocks\n };\n return this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_every_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.every.js */ \"./node_modules/core-js/modules/esnext.iterator.every.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_every_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_every_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_5__[\"default\"]],\n props: {\n mode: {\n type: String,\n default: 'edit' // edit or delete\n }\n },\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n tmUtils: _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n visible: false,\n subtask: null,\n loadingTimeblocks: {},\n loadingCloseAll: false,\n modalName: 'z-unable-to-complete-task-modal',\n modalSize: 'medium'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {},\n closeModal() {\n this.visible = false;\n },\n async handleFinishTimeblock(timeblock) {\n const subtask = JSON.parse(JSON.stringify(this.subtask));\n try {\n this.loadingTimeblocks[timeblock.id] = true;\n await this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n timeblock.is_finished = 1;\n const areAllTimeblocksFinished = subtask.timeblocks.every(timeblock => timeblock.is_finished);\n if (areAllTimeblocksFinished) {\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n }\n this.$events.emit('on-subtask-edited', subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n } finally {\n this.loadingTimeblocks[timeblock.id] = false;\n }\n },\n async handleFinishAllTimeblocks() {\n this.loadingCloseAll = true;\n try {\n const promises = this.subtask.timeblocks.map(timeblock => {\n return this.$axios.put_auth(`v1/timeblocks/${timeblock.id}`, {\n ...timeblock,\n is_finished: 1\n });\n });\n await Promise.all(promises);\n this.subtask.timeblocks = this.subtask.timeblocks.map(timeblock => {\n timeblock.is_finished = 1;\n return timeblock;\n });\n await this._finishSubtask();\n this.$store.dispatch('tm/removeOngoingSubtask', this.subtask.id);\n this.$events.emit('on-subtask-edited', this.subtask);\n this.closeModal();\n } catch (error) {\n this.$toast.error(error.message || error);\n } finally {\n this.loadingCloseAll = false;\n }\n },\n async _finishSubtask() {\n const timesheets = this.subtask.timesheets.map(timesheet => {\n delete timesheet.employee_name;\n return timesheet;\n });\n\n // Convert timeblocks from internal format to BE format\n const timeblocks = (this.subtask.timeblocks || []).filter(timeblock => {\n // Filter timeblocks that have either old format (date) or new format (start)\n return timeblock.date || timeblock.start;\n }).map(timeblock => {\n // If already in BE format (has start field), return as is\n if (timeblock.start && !timeblock.date) {\n return {\n id: timeblock.id || null,\n start: timeblock.start,\n end: timeblock.end,\n is_finished: timeblock.is_finished || 0\n };\n }\n\n // Convert from internal format to BE format\n const dateStr = moment__WEBPACK_IMPORTED_MODULE_7___default()(timeblock.date).format('YYYY-MM-DD');\n return {\n id: timeblock.id || null,\n start: `${dateStr} ${timeblock.starts_at_time}:00`,\n end: `${dateStr} ${timeblock.ends_at_time}:00`,\n is_finished: timeblock.is_finished || 0\n };\n });\n const tempSubtask = {\n ...this.subtask,\n is_finished: 1,\n timesheets,\n timeblocks\n };\n return this.$axios.put_auth(`v1/subtasks/${tempSubtask.id}`, tempSubtask);\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-complete-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -565,7 +565,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var cor /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n props: {\n mode: {\n type: String,\n default: 'edit' // edit or delete\n }\n },\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n modalName: 'z-unable-to-edit-office-task-modal'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {},\n closeModal() {\n this.visible = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-edit-office-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n props: {\n mode: {\n type: String,\n default: 'edit' // edit or delete\n }\n },\n emits: ['close', 'on-subtask-edited'],\n data() {\n return {\n visible: false,\n subtask: null,\n modalName: 'z-unable-to-edit-office-task-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n subtask\n }) {\n this.subtask = subtask;\n this.visible = true;\n },\n async complete() {},\n closeModal() {\n this.visible = false;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-edit-office-task-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -576,7 +576,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['update'],\n data() {\n return {\n visible: false,\n team: null,\n isDeleting: false,\n modalName: 'z-delete-team-modal'\n };\n },\n methods: {\n async showModal({\n team\n }) {\n this.team = team;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTeam() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/teams/${this.team.id}`);\n this.visible = false;\n this.$emit('update', this.team);\n this.$store.commit('tm/delete_team', this.team);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/team/z-delete-team-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n mixins: [_plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_0__[\"default\"]],\n emits: ['update'],\n data() {\n return {\n visible: false,\n team: null,\n isDeleting: false,\n modalName: 'z-delete-team-modal',\n modalSize: 'small'\n };\n },\n methods: {\n async showModal({\n team\n }) {\n this.team = team;\n this.visible = true;\n },\n closeModal() {\n this.visible = false;\n },\n async deleteTeam() {\n if (this.isDeleting) return;\n this.isDeleting = true;\n try {\n await this.$axios.delete_auth(`v1/teams/${this.team.id}`);\n this.visible = false;\n this.$emit('update', this.team);\n this.$store.commit('tm/delete_team', this.team);\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n } finally {\n this.isDeleting = false;\n }\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/team/z-delete-team-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -587,7 +587,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst atLeastOne = value => value.length;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"]\n },\n mixins: [_plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_10__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__[\"default\"]],\n emits: ['close', 'update'],\n data() {\n return {\n visible: false,\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n employeeSelect: null,\n team: null,\n modalName: 'z-team-modal'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_9__.mapGetters)('tm', ['enrichedEmployees']),\n employeesOptions() {\n const selectedEmployeesIds = this.team.employees.map(employee => employee.id);\n return this.enrichedEmployees.filter(employee => !selectedEmployeesIds.includes(employee.id));\n }\n },\n validations() {\n return {\n team: {\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required\n },\n employees: {\n atLeastOne\n }\n }\n };\n },\n watch: {\n employeeSelect(employeeId) {\n if (!employeeId) return;\n const employee = this.enrichedEmployees.find(employee => employee.id == employeeId);\n this.team.employees.push(employee);\n this.employeeSelect = null;\n this.$refs.autocomplete.search = '';\n }\n },\n methods: {\n async showModal({\n team = null\n }) {\n this.visible = true;\n this.team = null;\n this.$nextTick(() => this.v$.$reset());\n try {\n if (team?.id) {\n const t = await this.$axios.get_auth_data(`v1/teams/${team.id}`);\n this.team = this._enrichTeam(t);\n } else {\n this.team = {\n employees: []\n };\n }\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n closeModal() {\n this.visible = false;\n this.$emit('close', this.team);\n },\n async save() {\n if (!(await this.v$.$validate())) return;\n try {\n if (this.team.id) {\n const {\n team\n } = await this.$axios.put_auth(`v1/teams/${this.team.id}`, this.team);\n const fullTeamResource = await this.$axios.get_auth_data(`v1/teams/${team.id}`);\n this.$store.commit('tm/update_team', fullTeamResource);\n } else {\n const {\n team\n } = await this.$axios.post_auth(`v1/teams`, this.team);\n const fullTeamResource = await this.$axios.get_auth_data(`v1/teams/${team.id}`);\n this.$store.commit('tm/save_team', fullTeamResource);\n }\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n _enrichTeam(team) {\n team.employees = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__[\"default\"].enrichEmployees(team.employees);\n return team;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/team/z-team-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _vuelidate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vuelidate/validators */ \"./node_modules/@vuelidate/validators/dist/index.esm.js\");\n/* harmony import */ var _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/plugins/tm@_utils/tm.utils */ \"./src/plugins/tm@_utils/tm.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\n/* harmony import */ var _plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/plugins/tm@_mixins/autocomplete.mixin */ \"./src/plugins/tm@_mixins/autocomplete.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/plugins/tm@modal/_mixins/modal.mixin */ \"./src/plugins/tm@modal/_mixins/modal.mixin.ts\");\n/* harmony import */ var _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-resize-handle.vue */ \"./src/plugins/tm@modal/_components/a-resize-handle.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-reset-size-button.vue */ \"./src/plugins/tm@modal/_components/a-reset-size-button.vue\");\n/* harmony import */ var _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/plugins/tm@modal/_components/a-close-button.vue */ \"./src/plugins/tm@modal/_components/a-close-button.vue\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst atLeastOne = value => value.length;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n components: {\n AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_14__[\"default\"]\n },\n mixins: [_plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_10__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_11__[\"default\"]],\n emits: ['close', 'update'],\n data() {\n return {\n visible: false,\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n employeeSelect: null,\n team: null,\n modalName: 'z-team-modal',\n modalSize: 'medium'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_9__.mapGetters)('tm', ['enrichedEmployees']),\n employeesOptions() {\n const selectedEmployeesIds = this.team.employees.map(employee => employee.id);\n return this.enrichedEmployees.filter(employee => !selectedEmployeesIds.includes(employee.id));\n }\n },\n validations() {\n return {\n team: {\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_6__.required\n },\n employees: {\n atLeastOne\n }\n }\n };\n },\n watch: {\n employeeSelect(employeeId) {\n if (!employeeId) return;\n const employee = this.enrichedEmployees.find(employee => employee.id == employeeId);\n this.team.employees.push(employee);\n this.employeeSelect = null;\n this.$refs.autocomplete.search = '';\n }\n },\n methods: {\n async showModal({\n team = null\n }) {\n this.visible = true;\n this.team = null;\n this.$nextTick(() => this.v$.$reset());\n try {\n if (team?.id) {\n const t = await this.$axios.get_auth_data(`v1/teams/${team.id}`);\n this.team = this._enrichTeam(t);\n } else {\n this.team = {\n employees: []\n };\n }\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n closeModal() {\n this.visible = false;\n this.$emit('close', this.team);\n },\n async save() {\n if (!(await this.v$.$validate())) return;\n try {\n if (this.team.id) {\n const {\n team\n } = await this.$axios.put_auth(`v1/teams/${this.team.id}`, this.team);\n const fullTeamResource = await this.$axios.get_auth_data(`v1/teams/${team.id}`);\n this.$store.commit('tm/update_team', fullTeamResource);\n } else {\n const {\n team\n } = await this.$axios.post_auth(`v1/teams`, this.team);\n const fullTeamResource = await this.$axios.get_auth_data(`v1/teams/${team.id}`);\n this.$store.commit('tm/save_team', fullTeamResource);\n }\n this.closeModal();\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n _enrichTeam(team) {\n team.employees = _plugins_tm_utils_tm_utils__WEBPACK_IMPORTED_MODULE_8__[\"default\"].enrichEmployees(team.employees);\n return team;\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/team/z-team-modal.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1594,7 +1594,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n const _component_Z_datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-datepicker\");\n \n \n \n const _component_W_loadable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"W-loadable\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_W_loadable, {\n content: $data.blocker,\n class: \"h-100\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCard, {\n height: \"100%\",\n class: \"d-flex flex-column\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.blocker.id ? 'Upraviť' : 'Vytvoriť') + \" blocker\", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n icon: \"mdi-close\",\n size: \"large\",\n onClick: _cache[0] || (_cache[0] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardActions, {\n class: \"d-flex flex-column modal-content\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VTextField, {\n modelValue: $data.blocker.name,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.blocker.name = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.blocker.name.$errors.length\n }]),\n label: \"Názov blockeru\",\n hint: $data.v$.blocker.name.$errors ? $data.errorUtils.parseErrors($data.v$.blocker.name.$errors) : null,\n variant: \"solo\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VAutocomplete, {\n modelValue: $data.blocker.employee_id,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.blocker.employee_id = $event),\n \"custom-filter\": _ctx.customFilter,\n \"match-any\": true,\n clearable: \"\",\n label: \"Vyhľadať zamestnanca\",\n items: [..._ctx.enrichedEmployees],\n \"item-title\": \"_fullName\",\n \"item-value\": \"id\",\n variant: \"solo\",\n class: \"modal-input\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"custom-filter\", \"items\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" ({key: employee.id, value: employee._fullName}))\\\" :clear-on-submit=\\\"false\\\" :class=\\\"{ error: v$.blocker.employee.$errors.length }\\\" class=\\\"modal-input\\\" @option-selected=\\\"onEmployeeSelected\\\" /> \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Z_datepicker, {\n modelValue: $data.datepicker,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.datepicker = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input mb-5\", {\n error: $data.v$.datepicker.$errors?.length\n }]),\n \"auto-apply\": true,\n format: \"dd.MM.yyyy\",\n locale: \"sk\",\n validations: $data.v$.datepicker,\n \"select-text\": \"Vybrať\",\n \"cancel-text\": \"Zrušiť\",\n placeholder: \"Dátum\",\n label: \"Dátum\",\n \"enable-time-picker\": false\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"validations\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VTextField, {\n modelValue: $data.starts_at_time,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.starts_at_time = $event),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n hint: $data.v$.starts_at_time.$errors ? $data.errorUtils.parseErrors($data.v$.starts_at_time.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.starts_at_time.$errors.length\n }, \"mb-1 modal-input\"]),\n label: \"Začiatok\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VTextField, {\n modelValue: $data.ends_at_time,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.ends_at_time = $event),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n hint: $data.v$.ends_at_time.$errors ? $data.errorUtils.parseErrors($data.v$.ends_at_time.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.ends_at_time.$errors.length\n }, \"modal-input\"]),\n label: \"Koniec\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n class: \"button primary\",\n onClick: _cache[6] || (_cache[6] = $event => $options.save())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.blocker.id ? 'UPRAVIŤ' : 'VYTVORIŤ'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"content\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-blocker-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_Z_datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-datepicker\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n const _component_W_loadable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"W-loadable\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_W_loadable, {\n content: $data.blocker,\n class: \"h-100\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n },\n class: \"d-flex flex-column\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.blocker.id ? 'Upraviť' : 'Vytvoriť') + \" blocker\", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardActions, {\n class: \"d-flex flex-column modal-content\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VTextField, {\n modelValue: $data.blocker.name,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.blocker.name = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.blocker.name.$errors.length\n }]),\n label: \"Názov blockeru\",\n hint: $data.v$.blocker.name.$errors ? $data.errorUtils.parseErrors($data.v$.blocker.name.$errors) : null,\n variant: \"solo\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VAutocomplete, {\n modelValue: $data.blocker.employee_id,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.blocker.employee_id = $event),\n \"custom-filter\": _ctx.customFilter,\n \"match-any\": true,\n clearable: \"\",\n label: \"Vyhľadať zamestnanca\",\n items: [..._ctx.enrichedEmployees],\n \"item-title\": \"_fullName\",\n \"item-value\": \"id\",\n variant: \"solo\",\n class: \"modal-input\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"custom-filter\", \"items\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" ({key: employee.id, value: employee._fullName}))\\\" :clear-on-submit=\\\"false\\\" :class=\\\"{ error: v$.blocker.employee.$errors.length }\\\" class=\\\"modal-input\\\" @option-selected=\\\"onEmployeeSelected\\\" /> \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Z_datepicker, {\n modelValue: $data.datepicker,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.datepicker = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input mb-5\", {\n error: $data.v$.datepicker.$errors?.length\n }]),\n \"auto-apply\": true,\n format: \"dd.MM.yyyy\",\n locale: \"sk\",\n validations: $data.v$.datepicker,\n \"select-text\": \"Vybrať\",\n \"cancel-text\": \"Zrušiť\",\n placeholder: \"Dátum\",\n label: \"Dátum\",\n \"enable-time-picker\": false\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"validations\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VTextField, {\n modelValue: $data.starts_at_time,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.starts_at_time = $event),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n hint: $data.v$.starts_at_time.$errors ? $data.errorUtils.parseErrors($data.v$.starts_at_time.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.starts_at_time.$errors.length\n }, \"mb-1 modal-input\"]),\n label: \"Začiatok\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VTextField, {\n modelValue: $data.ends_at_time,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.ends_at_time = $event),\n type: \"time\",\n variant: \"solo\",\n \"bg-color\": \"white\",\n hint: $data.v$.ends_at_time.$errors ? $data.errorUtils.parseErrors($data.v$.ends_at_time.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.ends_at_time.$errors.length\n }, \"modal-input\"]),\n label: \"Koniec\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n class: \"button primary\",\n onClick: _cache[6] || (_cache[6] = $event => $options.save())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.blocker.id ? 'UPRAVIŤ' : 'VYTVORIŤ'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"content\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-blocker-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1605,7 +1605,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.blocker.name), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteBlocker())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-delete-blocker-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.blocker.name), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteBlocker())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-delete-blocker-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1638,7 +1638,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.is_finished ? 'znovu otvoriť' : 'dokončiť') + \" \", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask?.name), 1 /* TEXT */), _cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = () => $data.visible = false)\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.complete())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.visible = false, [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-complete-master-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.is_finished ? 'znovu otvoriť' : 'dokončiť') + \" \", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask?.name), 1 /* TEXT */), _cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = () => $data.visible = false)\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.complete())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.visible = false, [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-complete-master-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1649,7 +1649,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.name), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteMasterTask())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-master-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.name), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteMasterTask())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-master-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1660,7 +1660,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardText.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VSpacer.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", {\n class: \"text-h5\"\n }, \"Chcete túto osobu odstrániť z tímu?\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardText, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.member.name + ' ' + $data.member.surname) + \" bude odstránený/á z teamu.\", 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button secondary\",\n variant: \"text\",\n onClick: _cache[1] || (_cache[1] = $event => $options.closeModal())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Zrušiť \", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VSpacer), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary\",\n variant: \"text\",\n onClick: _cache[2] || (_cache[2] = $event => $options.deleteMember())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Áno \", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-team-member-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardText.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VSpacer.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", {\n class: \"text-h5\"\n }, \"Chcete túto osobu odstrániť z tímu?\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardText, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.member.name + ' ' + $data.member.surname) + \" bude odstránený/á z teamu.\", 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button secondary\",\n variant: \"text\",\n onClick: _cache[1] || (_cache[1] = $event => $options.closeModal())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Zrušiť \", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VSpacer), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary\",\n variant: \"text\",\n onClick: _cache[2] || (_cache[2] = $event => $options.deleteMember())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Áno \", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-delete-team-member-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1671,7 +1671,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSelect_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VSelect/index.mjs */ \"./node_modules/vuetify/lib/components/VSelect/VSelect.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_3 = {\n class: \"splitted-inputs\"\n};\nconst _hoisted_4 = {\n ref: \"datepicker-wrapper\",\n class: \"datepicker-wrapper left\"\n};\nconst _hoisted_5 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_6 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_7 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_8 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_9 = {\n class: \"d-flex justify-space-between align-center modal-header border-bottom pb-4\"\n};\nconst _hoisted_10 = {\n class: \"d-flex justify-start\"\n};\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = [\"src\"];\nconst _hoisted_13 = {\n class: \"w-100\"\n};\nconst _hoisted_14 = {\n class: \"d-flex justify-start align-center mt-8\"\n};\nconst _hoisted_15 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_Z_datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-datepicker\");\n \n \n \n const _component_QuillEditor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"QuillEditor\");\n const _component_Z_files_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-files-upload\");\n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n const _component_A_mastertask_description = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-mastertask-description\");\n const _component_A_tasks_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-tasks-table\");\n const _component_W_loadable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"W-loadable\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_W_loadable, {\n content: $data.mastertask,\n class: \"h-100\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$data.editMode ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCard, {\n key: 0,\n height: \"100%\",\n class: \"d-flex flex-column scrolling\",\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask?.id ? 'Upraviť master task' : 'Vytvoriť master task'), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardActions, {\n class: \"d-flex flex-column modal-content\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VAutocomplete, {\n modelValue: $data.mastertask.project_id,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.mastertask.project_id = $event),\n \"custom-filter\": _ctx.customFilter,\n \"match-any\": true,\n label: _ctx.$t('Project code'),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.mastertask.project_id.$errors.length\n }, \"modal-input\"]),\n items: _ctx.projectsOptions,\n \"item-title\": \"code\",\n \"item-value\": \"id\",\n variant: \"solo\",\n clearable: \"\",\n \"onUpdate:search\": _cache[2] || (_cache[2] = $event => $data.projectCodeSearch = $event)\n }, null, 8 /* PROPS */, [\"modelValue\", \"custom-filter\", \"label\", \"class\", \"items\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask.name,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.mastertask.name = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.mastertask.name.$errors.length\n }]),\n label: \"Názov mastertasku\",\n variant: \"solo\",\n hint: $data.v$.mastertask.name.$errors ? $data.errorUtils.parseErrors($data.v$.mastertask.name.$errors) : null\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" TODO: Bialko validacie \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Z_datepicker, {\n ref: \"datepicker\",\n modelValue: $data.mastertask.deadline,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.mastertask.deadline = $event),\n label: \"Deadline\",\n \"auto-apply\": true,\n \"min-date\": new Date(),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.mastertask.deadline.$errors?.length\n }]),\n format: \"dd.MM.yyyy\",\n locale: \"sk\",\n \"select-text\": \"Vybrať\",\n \"cancel-text\": \"Zrušiť\",\n placeholder: \"Deadline\",\n validations: $data.v$.mastertask.deadline\n }, null, 8 /* PROPS */, [\"modelValue\", \"min-date\", \"class\", \"validations\"])], 512 /* NEED_PATCH */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask._deadline_time,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.mastertask._deadline_time = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input right\", {\n error: $data.v$.mastertask._deadline_time.$errors.length\n }]),\n variant: \"solo\",\n label: \"Čas\",\n \"append-inner-icon\": \"mdi-clock-outline\",\n type: \"time\",\n hint: $data.v$.mastertask._deadline_time.$errors ? $data.errorUtils.parseErrors($data.v$.mastertask._deadline_time.$errors) : null\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask.estimated_duration,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.mastertask.estimated_duration = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.mastertask.estimated_duration.$errors.length\n }]),\n variant: \"solo\",\n type: \"number\",\n label: \"Nacenené hodiny\",\n hint: $data.v$.mastertask.estimated_duration.$errors ? $data.errorUtils.parseErrors($data.v$.mastertask.estimated_duration.$errors) : null\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask.duration,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $data.mastertask.duration = $event),\n class: \"modal-input\",\n variant: \"solo\",\n type: \"number\",\n label: \"Naplánované hodiny\",\n disabled: true\n }, null, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSelect_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VSelect, {\n modelValue: $data.mastertask.team_id,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $data.mastertask.team_id = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input border-select\", {\n error: $data.v$.mastertask.employees.$errors.length\n }]),\n label: \"Tím\",\n variant: \"solo\",\n items: _ctx.teams,\n \"item-value\": \"id\",\n \"item-title\": \"name\",\n disabled: !!$data.mastertask.id,\n clearable: true\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"items\", \"disabled\"]), !$data.mastertask.id ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.mastertask.employees, (employee, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n key: employee.id,\n modelValue: $data.mastertask.employees[index].duration,\n \"onUpdate:modelValue\": $event => $data.mastertask.employees[index].duration = $event,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: employee.invalid\n }]),\n label: `${employee.name} ${employee.surname} (h)`,\n variant: \"solo\",\n placeholder: \"h\",\n type: \"number\",\n min: \"1\",\n onInput: _ctx.onEmployeeDurationChanged\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(employee?.name.charAt(0) + employee?.surname.charAt(0)), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"remove-input\",\n icon: \"mdi-close-circle\",\n size: \"default\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.removeEmployee(employee), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"modelValue\", \"onUpdate:modelValue\", \"class\", \"label\", \"onInput\"]);\n }), 128 /* KEYED_FRAGMENT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 1\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" mastertask._allEmployees is used in edit to combine team employees with extra employees and subtask durations \"), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.mastertask._allEmployees, employee => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n key: employee.id,\n modelValue: employee.duration,\n \"onUpdate:modelValue\": $event => employee.duration = $event,\n class: \"modal-input\",\n label: `${employee.name} ${employee.surname}`,\n variant: \"solo\",\n placeholder: \"h\",\n type: \"number\",\n disabled: true\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(employee?.name.charAt(0) + employee?.surname.charAt(0)), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"remove-input\",\n icon: \"mdi-close-circle\",\n size: \"default\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.removeEmployee(employee), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"modelValue\", \"onUpdate:modelValue\", \"label\"]);\n }), 128 /* KEYED_FRAGMENT */))], 64 /* STABLE_FRAGMENT */)), $data.showAddEmployeeInput ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VAutocomplete, {\n key: 2,\n \"custom-filter\": _ctx.customFilter,\n \"match-any\": true,\n label: _ctx.$t('Search for employee'),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.mastertask.project_id.$errors.length\n }, \"modal-input\"]),\n items: _ctx.employeesOptions,\n \"item-title\": \"_fullName\",\n \"item-value\": \"id\",\n variant: \"solo\",\n clearable: \"\",\n \"onUpdate:modelValue\": _ctx.onEmployeeSelected\n }, null, 8 /* PROPS */, [\"custom-filter\", \"label\", \"class\", \"items\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n disabled: !!$data.mastertask.id,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"w-100 mb-5 button secondary\", {\n error: $data.v$.mastertask.project_id.$errors.length\n }]),\n onClick: _cache[9] || (_cache[9] = $event => $data.showAddEmployeeInput = true)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"mx-1\",\n icon: \"mdi-plus\"\n }), _cache[18] || (_cache[18] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Pridať zamestnanca \", -1 /* CACHED */))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\", \"class\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"w-100 modal-input quill-editor-wrapper\", {\n error: $data.v$.mastertask.description.$errors.length\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_QuillEditor, {\n ref: \"description\",\n modelValue: $data.mastertask.description,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = $event => $data.mastertask.description = $event),\n placeholder: \"Popis\",\n theme: \"snow\",\n class: \"rich-text-editor\",\n onKeyup: $options.onQuillEditorInput\n }, null, 8 /* PROPS */, [\"modelValue\", \"onKeyup\"])], 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Z_files_upload, {\n class: \"mt-15 files\",\n files: $data.mastertask.files,\n \"is-saving\": $data.isSaving,\n onFilesUploaded: $options.filesUploaded\n }, null, 8 /* PROPS */, [\"files\", \"is-saving\", \"onFilesUploaded\"])]),\n _: 1 /* STABLE */\n }), !$data.isSaving ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n key: 0,\n class: \"button primary\",\n onClick: _cache[11] || (_cache[11] = $event => $options.save())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.id ? 'ULOŽIŤ' : 'VYTVORIŤ'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n key: 1,\n class: \"button primary disabled\",\n disabled: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.$t('Ukladám...')), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCard, {\n key: 1,\n height: \"100%\",\n class: \"d-flex flex-column scrolling\",\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.project_code), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[12] || (_cache[12] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.name), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_10, [!$data.mastertask.is_finished ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"img\", {\n key: 0,\n class: \"icon\",\n src: __webpack_require__(/*! @/plugins/app/_img/icons/pencil.svg */ \"./src/plugins/app/_img/icons/pencil.svg\"),\n alt: \"pencil-icon\",\n onClick: _cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.editMode = !$data.editMode, [\"stop\"]))\n }, null, 8 /* PROPS */, _hoisted_11)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n class: \"icon trash\",\n src: __webpack_require__(/*! @/plugins/app/_img/icons/bin.svg */ \"./src/plugins/app/_img/icons/bin.svg\"),\n alt: \"trash-icon\",\n onClick: _cache[14] || (_cache[14] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.openDeleteMasterTaskModal($data.mastertask), [\"stop\"]))\n }, null, 8 /* PROPS */, _hoisted_12)])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardActions, {\n class: \"d-flex flex-column modal-content\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_A_mastertask_description, {\n mastertask: $data.mastertask\n }, null, 8 /* PROPS */, [\"mastertask\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n class: \"button primary\",\n onClick: _cache[15] || (_cache[15] = $event => $options.toggleIsFinished($data.mastertask))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.is_finished ? 'Otvoriť mastertask' : 'Ukončiť mastertask'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_A_tasks_table, {\n subtasks: $data.mastertask.subtasks\n }, null, 8 /* PROPS */, [\"subtasks\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n class: \"subtask-btn w-100\",\n onClick: _cache[16] || (_cache[16] = $event => $options.addTask())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"mx-1\",\n icon: \"mdi-plus\"\n }), _cache[19] || (_cache[19] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Pridať sub task\", -1 /* CACHED */))]),\n _: 1 /* STABLE */\n })])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n }))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"content\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-master-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VAutocomplete/index.mjs */ \"./node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.mjs\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSelect_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VSelect/index.mjs */ \"./node_modules/vuetify/lib/components/VSelect/VSelect.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center modal-header\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_3 = {\n class: \"splitted-inputs\"\n};\nconst _hoisted_4 = {\n ref: \"datepicker-wrapper\",\n class: \"datepicker-wrapper left\"\n};\nconst _hoisted_5 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_6 = {\n class: \"employee-select-avatar d-flex justify-center align-center\"\n};\nconst _hoisted_7 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_8 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_9 = {\n class: \"d-flex justify-space-between align-center modal-header border-bottom pb-4\"\n};\nconst _hoisted_10 = {\n class: \"d-flex justify-start\"\n};\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = [\"src\"];\nconst _hoisted_13 = {\n class: \"w-100\"\n};\nconst _hoisted_14 = {\n class: \"d-flex justify-start align-center mt-8\"\n};\nconst _hoisted_15 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_Z_datepicker = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-datepicker\");\n \n \n \n const _component_QuillEditor = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"QuillEditor\");\n const _component_Z_files_upload = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"Z-files-upload\");\n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n const _component_A_mastertask_description = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-mastertask-description\");\n const _component_A_tasks_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"A-tasks-table\");\n const _component_W_loadable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"W-loadable\");\n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[17] || (_cache[17] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_W_loadable, {\n content: $data.mastertask,\n class: \"h-100\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$data.editMode ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCard, {\n key: 0,\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n },\n class: \"d-flex flex-column scrolling\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask?.id ? 'Upraviť master task' : 'Vytvoriť master task'), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardActions, {\n class: \"d-flex flex-column modal-content\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VAutocomplete, {\n modelValue: $data.mastertask.project_id,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.mastertask.project_id = $event),\n \"custom-filter\": _ctx.customFilter,\n \"match-any\": true,\n label: _ctx.$t('Project code'),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.mastertask.project_id.$errors.length\n }, \"modal-input\"]),\n items: _ctx.projectsOptions,\n \"item-title\": \"code\",\n \"item-value\": \"id\",\n variant: \"solo\",\n clearable: \"\",\n \"onUpdate:search\": _cache[2] || (_cache[2] = $event => $data.projectCodeSearch = $event)\n }, null, 8 /* PROPS */, [\"modelValue\", \"custom-filter\", \"label\", \"class\", \"items\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask.name,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.mastertask.name = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.mastertask.name.$errors.length\n }]),\n label: \"Názov mastertasku\",\n variant: \"solo\",\n hint: $data.v$.mastertask.name.$errors ? $data.errorUtils.parseErrors($data.v$.mastertask.name.$errors) : null\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" TODO: Bialko validacie \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Z_datepicker, {\n ref: \"datepicker\",\n modelValue: $data.mastertask.deadline,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.mastertask.deadline = $event),\n label: \"Deadline\",\n \"auto-apply\": true,\n \"min-date\": new Date(),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.mastertask.deadline.$errors?.length\n }]),\n format: \"dd.MM.yyyy\",\n locale: \"sk\",\n \"select-text\": \"Vybrať\",\n \"cancel-text\": \"Zrušiť\",\n placeholder: \"Deadline\",\n validations: $data.v$.mastertask.deadline\n }, null, 8 /* PROPS */, [\"modelValue\", \"min-date\", \"class\", \"validations\"])], 512 /* NEED_PATCH */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask._deadline_time,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $data.mastertask._deadline_time = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input right\", {\n error: $data.v$.mastertask._deadline_time.$errors.length\n }]),\n variant: \"solo\",\n label: \"Čas\",\n \"append-inner-icon\": \"mdi-clock-outline\",\n type: \"time\",\n hint: $data.v$.mastertask._deadline_time.$errors ? $data.errorUtils.parseErrors($data.v$.mastertask._deadline_time.$errors) : null\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask.estimated_duration,\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = $event => $data.mastertask.estimated_duration = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: $data.v$.mastertask.estimated_duration.$errors.length\n }]),\n variant: \"solo\",\n type: \"number\",\n label: \"Nacenené hodiny\",\n hint: $data.v$.mastertask.estimated_duration.$errors ? $data.errorUtils.parseErrors($data.v$.mastertask.estimated_duration.$errors) : null\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"hint\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n modelValue: $data.mastertask.duration,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = $event => $data.mastertask.duration = $event),\n class: \"modal-input\",\n variant: \"solo\",\n type: \"number\",\n label: \"Naplánované hodiny\",\n disabled: true\n }, null, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSelect_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VSelect, {\n modelValue: $data.mastertask.team_id,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $data.mastertask.team_id = $event),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input border-select\", {\n error: $data.v$.mastertask.employees.$errors.length\n }]),\n label: \"Tím\",\n variant: \"solo\",\n items: _ctx.teams,\n \"item-value\": \"id\",\n \"item-title\": \"name\",\n disabled: !!$data.mastertask.id,\n clearable: true\n }, null, 8 /* PROPS */, [\"modelValue\", \"class\", \"items\", \"disabled\"]), !$data.mastertask.id ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.mastertask.employees, (employee, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n key: employee.id,\n modelValue: $data.mastertask.employees[index].duration,\n \"onUpdate:modelValue\": $event => $data.mastertask.employees[index].duration = $event,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"modal-input\", {\n error: employee.invalid\n }]),\n label: `${employee.name} ${employee.surname} (h)`,\n variant: \"solo\",\n placeholder: \"h\",\n type: \"number\",\n min: \"1\",\n onInput: _ctx.onEmployeeDurationChanged\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(employee?.name.charAt(0) + employee?.surname.charAt(0)), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"remove-input\",\n icon: \"mdi-close-circle\",\n size: \"default\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.removeEmployee(employee), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"modelValue\", \"onUpdate:modelValue\", \"class\", \"label\", \"onInput\"]);\n }), 128 /* KEYED_FRAGMENT */)) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 1\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" mastertask._allEmployees is used in edit to combine team employees with extra employees and subtask durations \"), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.mastertask._allEmployees, employee => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VTextField, {\n key: employee.id,\n modelValue: employee.duration,\n \"onUpdate:modelValue\": $event => employee.duration = $event,\n class: \"modal-input\",\n label: `${employee.name} ${employee.surname}`,\n variant: \"solo\",\n placeholder: \"h\",\n type: \"number\",\n disabled: true\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(employee?.name.charAt(0) + employee?.surname.charAt(0)), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"remove-input\",\n icon: \"mdi-close-circle\",\n size: \"default\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.removeEmployee(employee), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])]),\n _: 2 /* DYNAMIC */\n }, 1032 /* PROPS, DYNAMIC_SLOTS */, [\"modelValue\", \"onUpdate:modelValue\", \"label\"]);\n }), 128 /* KEYED_FRAGMENT */))], 64 /* STABLE_FRAGMENT */)), $data.showAddEmployeeInput ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VAutocomplete_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VAutocomplete, {\n key: 2,\n \"custom-filter\": _ctx.customFilter,\n \"match-any\": true,\n label: _ctx.$t('Search for employee'),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.mastertask.project_id.$errors.length\n }, \"modal-input\"]),\n items: _ctx.employeesOptions,\n \"item-title\": \"_fullName\",\n \"item-value\": \"id\",\n variant: \"solo\",\n clearable: \"\",\n \"onUpdate:modelValue\": _ctx.onEmployeeSelected\n }, null, 8 /* PROPS */, [\"custom-filter\", \"label\", \"class\", \"items\", \"onUpdate:modelValue\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n disabled: !!$data.mastertask.id,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"w-100 mb-5 button secondary\", {\n error: $data.v$.mastertask.project_id.$errors.length\n }]),\n onClick: _cache[9] || (_cache[9] = $event => $data.showAddEmployeeInput = true)\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"mx-1\",\n icon: \"mdi-plus\"\n }), _cache[18] || (_cache[18] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Pridať zamestnanca \", -1 /* CACHED */))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\", \"class\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"w-100 modal-input quill-editor-wrapper\", {\n error: $data.v$.mastertask.description.$errors.length\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_QuillEditor, {\n ref: \"description\",\n modelValue: $data.mastertask.description,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = $event => $data.mastertask.description = $event),\n placeholder: \"Popis\",\n theme: \"snow\",\n class: \"rich-text-editor\",\n onKeyup: $options.onQuillEditorInput\n }, null, 8 /* PROPS */, [\"modelValue\", \"onKeyup\"])], 2 /* CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Z_files_upload, {\n class: \"mt-15 files\",\n files: $data.mastertask.files,\n \"is-saving\": $data.isSaving,\n onFilesUploaded: $options.filesUploaded\n }, null, 8 /* PROPS */, [\"files\", \"is-saving\", \"onFilesUploaded\"])]),\n _: 1 /* STABLE */\n }), !$data.isSaving ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n key: 0,\n class: \"button primary\",\n onClick: _cache[11] || (_cache[11] = $event => $options.save())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.id ? 'ULOŽIŤ' : 'VYTVORIŤ'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n key: 1,\n class: \"button primary disabled\",\n disabled: \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.$t('Ukladám...')), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCard, {\n key: 1,\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n },\n class: \"d-flex flex-column scrolling\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.project_code), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[12] || (_cache[12] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.name), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_10, [!$data.mastertask.is_finished ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"img\", {\n key: 0,\n class: \"icon\",\n src: __webpack_require__(/*! @/plugins/app/_img/icons/pencil.svg */ \"./src/plugins/app/_img/icons/pencil.svg\"),\n alt: \"pencil-icon\",\n onClick: _cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.editMode = !$data.editMode, [\"stop\"]))\n }, null, 8 /* PROPS */, _hoisted_11)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n class: \"icon trash\",\n src: __webpack_require__(/*! @/plugins/app/_img/icons/bin.svg */ \"./src/plugins/app/_img/icons/bin.svg\"),\n alt: \"trash-icon\",\n onClick: _cache[14] || (_cache[14] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.openDeleteMasterTaskModal($data.mastertask), [\"stop\"]))\n }, null, 8 /* PROPS */, _hoisted_12)])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardActions, {\n class: \"d-flex flex-column modal-content\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_A_mastertask_description, {\n mastertask: $data.mastertask\n }, null, 8 /* PROPS */, [\"mastertask\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n class: \"button primary\",\n onClick: _cache[15] || (_cache[15] = $event => $options.toggleIsFinished($data.mastertask))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.mastertask.is_finished ? 'Otvoriť mastertask' : 'Ukončiť mastertask'), 1 /* TEXT */)]),\n _: 1 /* STABLE */\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_A_tasks_table, {\n subtasks: $data.mastertask.subtasks\n }, null, 8 /* PROPS */, [\"subtasks\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VBtn, {\n class: \"subtask-btn w-100\",\n onClick: _cache[16] || (_cache[16] = $event => $options.addTask())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VIcon, {\n class: \"mx-1\",\n icon: \"mdi-plus\"\n }), _cache[19] || (_cache[19] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Pridať sub task\", -1 /* CACHED */))]),\n _: 1 /* STABLE */\n })])])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n }))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"content\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/master-task/z-master-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1682,7 +1682,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Vytvoriť\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[1] || (_cache[1] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.createTask(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"SUB TASK\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.createBlocker(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"BLOCKER\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task-cell/z-show-menu-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Vytvoriť\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[1] || (_cache[1] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.createTask(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"SUB TASK\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.createBlocker(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"BLOCKER\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task-cell/z-show-menu-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1770,7 +1770,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VCol.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VRow.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VSheet/index.mjs */ \"./node_modules/vuetify/lib/components/VSheet/VSheet.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center mb-3\"\n};\nconst _hoisted_3 = {\n class: \"d-flex align-center flex-start width-100\"\n};\nconst _hoisted_4 = {\n class: \"task-badge rounded-pill\"\n};\nconst _hoisted_5 = {\n class: \"ml-5\"\n};\nconst _hoisted_6 = {\n class: \"d-flex justify-space-between align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n \n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VRow, {\n \"no-gutters\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VCol, {\n cols: \"5\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n icon: \"mdi-clock-time-three-outline\",\n size: \"large\"\n }), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"mx-3\"\n }, \"Odpracovaný čas\", -1 /* CACHED */))])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VCol, {\n cols: \"7\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.hours) + \" h\", 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n class: \"add-date cursor-pointer mr-2\",\n icon: \"mdi-plus\",\n size: \"medium\",\n onClick: _cache[0] || (_cache[0] = $event => $data.showModal = true)\n }), _cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"task-badge rounded-pill\"\n }, \"Pridať záznam\", -1 /* CACHED */))]), $props.subtask.timesheets.length ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.subtask.timesheets, timesheet => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timesheet.id,\n class: \"d-flex align-center mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n class: \"circle-border cursor-pointer mr-2\",\n icon: \"mdi-minus\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.deleteTimesheet(timesheet), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(timesheet.time), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"

{{ timesheet.employee_name }} ({{ moment(timesheet.timestamp).format('D.M.YYYY') }})

\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(timesheet.employee_name) + \" (\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(timesheet.timestamp) + \") \", 1 /* TEXT */)])]);\n }), 128 /* KEYED_FRAGMENT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.showModal,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.showModal = $event),\n width: \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať odpracovaný čas\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n icon: \"mdi-close\",\n size: \"large\",\n onClick: _cache[1] || (_cache[1] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_9__.VTextField, {\n modelValue: $data.form.hours,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.form.hours = $event),\n variant: \"solo\",\n \"bg-color\": \"white\",\n type: \"number\",\n hint: $data.v$.form.hours.$errors ? $data.errorUtils.parseErrors($data.v$.form.hours.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.form.hours.$errors.length\n }, \"mb-2\"]),\n label: \"Odpracovaný čas\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary mt-5\",\n onClick: _cache[3] || (_cache[3] = $event => $options.submit())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[8] || (_cache[8] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Potvrdiť\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])], 64 /* STABLE_FRAGMENT */);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VCol.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VRow.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VSheet/index.mjs */ \"./node_modules/vuetify/lib/components/VSheet/VSheet.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center mb-3\"\n};\nconst _hoisted_3 = {\n class: \"d-flex align-center flex-start width-100\"\n};\nconst _hoisted_4 = {\n class: \"task-badge rounded-pill\"\n};\nconst _hoisted_5 = {\n class: \"ml-5\"\n};\nconst _hoisted_6 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_7 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VRow, {\n \"no-gutters\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VCol, {\n cols: \"5\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n icon: \"mdi-clock-time-three-outline\",\n size: \"large\"\n }), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"mx-3\"\n }, \"Odpracovaný čas\", -1 /* CACHED */))])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VCol, {\n cols: \"7\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.hours) + \" h\", 1 /* TEXT */)]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n class: \"add-date cursor-pointer mr-2\",\n icon: \"mdi-plus\",\n size: \"medium\",\n onClick: _cache[0] || (_cache[0] = $event => $data.showModal = true)\n }), _cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"task-badge rounded-pill\"\n }, \"Pridať záznam\", -1 /* CACHED */))]), $props.subtask.timesheets.length ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n key: 0\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.subtask.timesheets, timesheet => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timesheet.id,\n class: \"d-flex align-center mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VIcon, {\n class: \"circle-border cursor-pointer mr-2\",\n icon: \"mdi-minus\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.deleteTimesheet(timesheet), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(timesheet.time), 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"

{{ timesheet.employee_name }} ({{ moment(timesheet.timestamp).format('D.M.YYYY') }})

\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(timesheet.employee_name) + \" (\" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(timesheet.timestamp) + \") \", 1 /* TEXT */)])]);\n }), 128 /* KEYED_FRAGMENT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.showModal,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.showModal = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [_cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať odpracovaný čas\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[1] || (_cache[1] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_9__.VTextField, {\n modelValue: $data.form.hours,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.form.hours = $event),\n variant: \"solo\",\n \"bg-color\": \"white\",\n type: \"number\",\n hint: $data.v$.form.hours.$errors ? $data.errorUtils.parseErrors($data.v$.form.hours.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.form.hours.$errors.length\n }, \"mb-2\"]),\n label: \"Odpracovaný čas\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary mt-5\",\n onClick: _cache[3] || (_cache[3] = $event => $options.submit())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[8] || (_cache[8] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Potvrdiť\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"])], 64 /* STABLE_FRAGMENT */);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-spent-time.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1781,7 +1781,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardText.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VCol.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VRow.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuetify/lib/components/VSheet/index.mjs */ \"./node_modules/vuetify/lib/components/VSheet/VSheet.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"d-flex align-center mb-3\"\n};\nconst _hoisted_3 = {\n class: \"d-flex align-center mb-2\"\n};\nconst _hoisted_4 = {\n class: \"d-flex justify-space-between align-center pa-4\"\n};\nconst _hoisted_5 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_6 = {\n class: \"text-red\"\n};\nconst _hoisted_7 = {\n class: \"text-black\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n const _component_a_employee_timeblock = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-employee-timeblock\");\n \n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VRow, {\n \"no-gutters\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VCol, {\n cols: \"5\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_9__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n icon: \"mdi-calendar-week\",\n size: \"large\"\n }), _cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"mx-3\"\n }, \"Trvanie\", -1 /* CACHED */))])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VCol, {\n cols: \"7\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_9__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [!$options.isOffice365Task ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n class: \"add-date cursor-pointer mr-2\",\n icon: \"mdi-plus\",\n size: \"medium\",\n onClick: _cache[0] || (_cache[0] = $event => $data.showModal = true)\n }), _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"task-badge rounded-pill\"\n }, \"Pridať záznam\", -1 /* CACHED */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.timeblocks, (timeblock, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id || `timeblock-${index}`,\n class: \"timeblock-item mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [!$options.isOffice365Task ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n key: 0,\n class: \"circle-border cursor-pointer mr-2\",\n icon: \"mdi-minus\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $props.subtask.id ? $options.deleteTimeblock(timeblock) : $options.deleteTimeblockWithoutId(index), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($options.formatTimeblockStart(timeblock)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($options.formatTimeblockEnd(timeblock)), 3 /* TEXT, CLASS */), !$options.isOffice365Task ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n key: 1,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"circle-border cursor-pointer ml-2\", {\n completed: timeblock.is_finished\n }]),\n icon: \"mdi-check\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.toggleTimeblockIsFinished(timeblock), [\"stop\"])\n }, null, 8 /* PROPS */, [\"class\", \"onClick\"])), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, $props.subtask.id]]) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Timeline Visualization for existing timeblock \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" \\n \\n \")]);\n }), 128 /* KEYED_FRAGMENT */))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.showModal,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.showModal = $event),\n \"max-width\": \"900\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n class: \"add-timeblock-modal\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať dátum\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n icon: \"mdi-close\",\n size: \"large\",\n onClick: _cache[1] || (_cache[1] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardText, {\n class: \"pa-4\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Reuse the a-employee-timeblock component \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_employee_timeblock, {\n ref: \"employeeTimeblockRef\",\n modelValue: $data.newTimeblock,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.newTimeblock = $event),\n employee: $options.employee,\n deletable: false,\n index: 0\n }, null, 8 /* PROPS */, [\"modelValue\", \"employee\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"pa-4\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary\",\n onClick: _cache[3] || (_cache[3] = $event => $options.submitFromEmployeeTimeblock())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[12] || (_cache[12] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Potvrdiť \", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", _hoisted_6, [_cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete pridať timeblock po deadline \", -1 /* CACHED */)), _cache[14] || (_cache[14] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"br\", null, null, -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", _hoisted_7, \"z mastertasku \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.subtask?.project_code) + \" ?\", 1 /* TEXT */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n icon: \"mdi-close\",\n size: \"large\",\n class: \"mb-15\",\n onClick: _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.visible = false, [\"stop\"]))\n })]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.confirmSubmit(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[15] || (_cache[15] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.visible = false, [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[16] || (_cache[16] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])], 64 /* STABLE_FRAGMENT */);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardText.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VCol.mjs\");\n/* harmony import */ var vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VGrid/index.mjs */ \"./node_modules/vuetify/lib/components/VGrid/VRow.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n/* harmony import */ var vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vuetify/lib/components/VSheet/index.mjs */ \"./node_modules/vuetify/lib/components/VSheet/VSheet.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"d-flex align-center mb-3\"\n};\nconst _hoisted_3 = {\n class: \"d-flex align-center mb-2\"\n};\nconst _hoisted_4 = {\n class: \"d-flex justify-space-between align-center pa-4\"\n};\nconst _hoisted_5 = {\n class: \"d-flex align-start\"\n};\nconst _hoisted_6 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_7 = {\n class: \"text-red\"\n};\nconst _hoisted_8 = {\n class: \"text-black\"\n};\nconst _hoisted_9 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n \n \n \n \n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n const _component_a_employee_timeblock = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-employee-timeblock\");\n \n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_7__.VRow, {\n \"no-gutters\": \"\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VCol, {\n cols: \"5\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_9__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n icon: \"mdi-calendar-week\",\n size: \"large\"\n }), _cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"mx-3\"\n }, \"Trvanie\", -1 /* CACHED */))])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VGrid_index_mjs__WEBPACK_IMPORTED_MODULE_6__.VCol, {\n cols: \"7\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VSheet_index_mjs__WEBPACK_IMPORTED_MODULE_9__.VSheet, {\n class: \"py-3\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [!$options.isOffice365Task ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n class: \"add-date cursor-pointer mr-2\",\n icon: \"mdi-plus\",\n size: \"medium\",\n onClick: _cache[0] || (_cache[0] = $event => $data.showModal = true)\n }), _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: \"task-badge rounded-pill\"\n }, \"Pridať záznam\", -1 /* CACHED */))])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.timeblocks, (timeblock, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id || `timeblock-${index}`,\n class: \"timeblock-item mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [!$options.isOffice365Task ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n key: 0,\n class: \"circle-border cursor-pointer mr-2\",\n icon: \"mdi-minus\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $props.subtask.id ? $options.deleteTimeblock(timeblock) : $options.deleteTimeblockWithoutId(index), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($options.formatTimeblockStart(timeblock)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($options.formatTimeblockEnd(timeblock)), 3 /* TEXT, CLASS */), !$options.isOffice365Task ? (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_8__.VIcon, {\n key: 1,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"circle-border cursor-pointer ml-2\", {\n completed: timeblock.is_finished\n }]),\n icon: \"mdi-check\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.toggleTimeblockIsFinished(timeblock), [\"stop\"])\n }, null, 8 /* PROPS */, [\"class\", \"onClick\"])), [[vue__WEBPACK_IMPORTED_MODULE_0__.vShow, $props.subtask.id]]) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Timeline Visualization for existing timeblock \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" \\n \\n \")]);\n }), 128 /* KEYED_FRAGMENT */))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.showModal,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = $event => $data.showModal = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n },\n class: \"add-timeblock-modal\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [_cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať dátum\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[1] || (_cache[1] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VCardText, {\n class: \"pa-4\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Reuse the a-employee-timeblock component \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_employee_timeblock, {\n ref: \"employeeTimeblockRef\",\n modelValue: $data.newTimeblock,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $data.newTimeblock = $event),\n employee: $options.employee,\n deletable: false,\n index: 0\n }, null, 8 /* PROPS */, [\"modelValue\", \"employee\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"pa-4\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary\",\n onClick: _cache[3] || (_cache[3] = $event => $options.submitFromEmployeeTimeblock())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[12] || (_cache[12] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Potvrdiť \", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", _hoisted_7, [_cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete pridať timeblock po deadline \", -1 /* CACHED */)), _cache[14] || (_cache[14] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"br\", null, null, -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", _hoisted_8, \"z mastertasku \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.subtask?.project_code) + \" ?\", 1 /* TEXT */)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[5] || (_cache[5] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[6] || (_cache[6] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.confirmSubmit(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[15] || (_cache[15] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[16] || (_cache[16] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"])], 64 /* STABLE_FRAGMENT */);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1803,7 +1803,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.subtask.is_finished ? 'znovu otvoriť' : 'dokončiť') + \" sub task, z mastertasku \", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.subtask?.master_task?.name || $data.subtask.master_task), 1 /* TEXT */), _cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.complete())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.visible = false, [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-complete-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.subtask.is_finished ? 'znovu otvoriť' : 'dokončiť') + \" sub task, z mastertasku \", 1 /* TEXT */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.subtask?.master_task?.name || $data.subtask.master_task), 1 /* TEXT */), _cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.complete())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.visible = false, [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-complete-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1814,7 +1814,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať sub task z mastertasku \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.subtask.project_code), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteTask())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať sub task z mastertasku \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.subtask.project_code), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteTask())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1825,7 +1825,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h4\", {\n class: \"mt-3\"\n }, \"Vyberte časový úsek, ktorý chcete odstrániť\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.subtask.timeblocks, (timeblock, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id,\n class: \"d-flex align-center justify-center mb-3 mt-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.start)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.end)), 3 /* TEXT, CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VIcon, {\n class: \"close-icon circle-border cursor-pointer ml-3 text-red\",\n icon: \"mdi-close\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.subtask.id ? $options.deleteTimeblock(timeblock) : $options.deleteTimeblockWithoutId(index), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])]);\n }), 128 /* KEYED_FRAGMENT */))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-timeblock-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h4\", {\n class: \"mt-3\"\n }, \"Vyberte časový úsek, ktorý chcete odstrániť\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.subtask.timeblocks, (timeblock, index) => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id,\n class: \"d-flex align-center justify-center mb-3 mt-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.start)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.end)), 3 /* TEXT, CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VIcon, {\n class: \"close-icon circle-border cursor-pointer ml-3 text-red\",\n icon: \"mdi-close\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $data.subtask.id ? $options.deleteTimeblock(timeblock) : $options.deleteTimeblockWithoutId(index), [\"stop\"])\n }, null, 8 /* PROPS */, [\"onClick\"])]);\n }), 128 /* KEYED_FRAGMENT */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-delete-timeblock-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1836,7 +1836,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \" Naozaj chcete odstrániť tohto zamestnanca a všetky jeho timeblocks? \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.confirm())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-employee-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \" Naozaj chcete odstrániť tohto zamestnanca a všetky jeho timeblocks? \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.confirm())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-employee-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1847,7 +1847,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Naozaj chcete odstrániť tento timeblock?\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.confirm())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-timeblock-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Naozaj chcete odstrániť tento timeblock?\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n class: \"mb-15\",\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n onClick: _cache[1] || (_cache[1] = $event => $options.confirm())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-remove-timeblock-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1858,7 +1858,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n \"max-width\": \"750\",\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať odpracovaný čas\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VTextField, {\n modelValue: $data.form.hours,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.form.hours = $event),\n variant: \"solo\",\n \"bg-color\": \"white\",\n type: \"number\",\n hint: $data.v$.form.hours.$errors ? $data.errorUtils.parseErrors($data.v$.form.hours.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.form.hours.$errors.length\n }, \"mb-2\"]),\n label: \"Odpracovaný čas\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary mt-5\",\n onClick: _cache[2] || (_cache[2] = $event => $options.submit())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Potvrdiť\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-add-time-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VTextField/index.mjs */ \"./node_modules/vuetify/lib/components/VTextField/VTextField.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Pridať odpracovaný čas\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VTextField_index_mjs__WEBPACK_IMPORTED_MODULE_5__.VTextField, {\n modelValue: $data.form.hours,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.form.hours = $event),\n variant: \"solo\",\n \"bg-color\": \"white\",\n type: \"number\",\n hint: $data.v$.form.hours.$errors ? $data.errorUtils.parseErrors($data.v$.form.hours.$errors) : null,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{\n error: $data.v$.form.hours.$errors.length\n }, \"mb-2\"]),\n label: \"Odpracovaný čas\"\n }, null, 8 /* PROPS */, [\"modelValue\", \"hint\", \"class\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary mt-5\",\n onClick: _cache[2] || (_cache[2] = $event => $options.submit())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Potvrdiť\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-task-add-time-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1880,7 +1880,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nconst _hoisted_3 = {\n class: \"card-content\"\n};\nconst _hoisted_4 = {\n class: \"card-actions\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Sub Task má nedokončené úlohy\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.subtask?.timeblocks, timeblock => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id,\n class: \"d-flex align-center mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.start)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.end)), 3 /* TEXT, CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VIcon, {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"finish-icon circle-border cursor-pointer ml-2\", {\n disabled: $data.loadingTimeblocks[timeblock.id] || $data.loadingCloseAll,\n finished: timeblock.is_finished\n }]),\n icon: \"mdi-check\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.handleFinishTimeblock(timeblock), [\"stop\"])\n }, null, 8 /* PROPS */, [\"class\", \"onClick\"])]);\n }), 128 /* KEYED_FRAGMENT */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button secondary\",\n onClick: _cache[1] || (_cache[1] = $event => $options.closeModal())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Zrušiť\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n loading: $data.loadingCloseAll,\n class: \"button primary\",\n onClick: _cache[2] || (_cache[2] = $event => $options.handleFinishAllTimeblocks())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Uzatvoriť všetky\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"loading\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-complete-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n/* harmony import */ var vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VIcon/index.mjs */ \"./node_modules/vuetify/lib/components/VIcon/VIcon.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nconst _hoisted_3 = {\n class: \"card-content\"\n};\nconst _hoisted_4 = {\n class: \"card-actions\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, \"Sub Task má nedokončené úlohy\", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($data.subtask?.timeblocks, timeblock => {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", {\n key: timeblock.id,\n class: \"d-flex align-center mb-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"p\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"task-badge rounded-pill\", {\n 'strike-through': timeblock.is_finished\n }])\n }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.start)) + \" - \" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.tmUtils.formatDateTime(timeblock.end)), 3 /* TEXT, CLASS */), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VIcon_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VIcon, {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"finish-icon circle-border cursor-pointer ml-2\", {\n disabled: $data.loadingTimeblocks[timeblock.id] || $data.loadingCloseAll,\n finished: timeblock.is_finished\n }]),\n icon: \"mdi-check\",\n size: \"medium\",\n onClick: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.handleFinishTimeblock(timeblock), [\"stop\"])\n }, null, 8 /* PROPS */, [\"class\", \"onClick\"])]);\n }), 128 /* KEYED_FRAGMENT */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button secondary\",\n onClick: _cache[1] || (_cache[1] = $event => $options.closeModal())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[5] || (_cache[5] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Zrušiť\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n loading: $data.loadingCloseAll,\n class: \"button primary\",\n onClick: _cache[2] || (_cache[2] = $event => $options.handleFinishAllTimeblocks())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"Uzatvoriť všetky\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"loading\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-complete-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1891,7 +1891,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n key: 0\n};\nconst _hoisted_3 = {\n key: 1\n};\nconst _hoisted_4 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [$props.mode === 'edit' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"h1\", _hoisted_2, \" Sub Task zosynchronizovaný z Office365 sa nedá upravovat. Upravte ho vo svojom kalendári a pockajte na zosynchronizovanie s Task Managerom \")) : $props.mode === 'delete' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"h1\", _hoisted_3, \" Sub Task zosynchronizovaný z Office365 sa nedá zmazať. Zmažte ho vo svojom kalendári a pockajte na zosynchronizovanie s Task Managerom \")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-edit-office-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n key: 0\n};\nconst _hoisted_3 = {\n key: 1\n};\nconst _hoisted_4 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [$props.mode === 'edit' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"h1\", _hoisted_2, \" Sub Task zosynchronizovaný z Office365 sa nedá upravovat. Upravte ho vo svojom kalendári a pockajte na zosynchronizovanie s Task Managerom \")) : $props.mode === 'delete' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"h1\", _hoisted_3, \" Sub Task zosynchronizovaný z Office365 sa nedá zmazať. Zmažte ho vo svojom kalendári a pockajte na zosynchronizovanie s Task Managerom \")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/task/z-unable-to-edit-office-task-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -1902,7 +1902,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-center\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať tím \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.team.name), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteTeam())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/team/z-delete-team-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: function() { return /* binding */ render; }\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VBtn/index.mjs */ \"./node_modules/vuetify/lib/components/VBtn/VBtn.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCard.mjs\");\n/* harmony import */ var vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VCard/index.mjs */ \"./node_modules/vuetify/lib/components/VCard/VCardActions.mjs\");\n/* harmony import */ var vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VDialog/index.mjs */ \"./node_modules/vuetify/lib/components/VDialog/VDialog.mjs\");\n\nconst _hoisted_1 = {\n class: \"d-flex justify-space-between align-center\"\n};\nconst _hoisted_2 = {\n class: \"d-flex align-start\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_a_reset_size_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-reset-size-button\");\n const _component_a_close_button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-close-button\");\n \n \n const _component_a_resize_handle = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"a-resize-handle\");\n \n \n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vuetify_lib_components_VDialog_index_mjs__WEBPACK_IMPORTED_MODULE_4__.VDialog, {\n modelValue: $data.visible,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $data.visible = $event),\n width: _ctx.modalWidth,\n height: _ctx.modalHeight,\n persistent: \"\",\n \"retain-focus\": false\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_2__.VCard, {\n style: {\n \"position\": \"relative\",\n \"height\": \"100%\"\n }\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"h1\", null, [_cache[4] || (_cache[4] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\" Ste si istý, že chcete zmazať tím \", -1 /* CACHED */)), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"b\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($data.team.name), 1 /* TEXT */), _cache[5] || (_cache[5] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"? \", -1 /* CACHED */))]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_reset_size_button, {\n onReset: _ctx.resetModalSize\n }, null, 8 /* PROPS */, [\"onReset\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_close_button, {\n onClose: _cache[0] || (_cache[0] = $event => $options.closeModal())\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VCard_index_mjs__WEBPACK_IMPORTED_MODULE_3__.VCardActions, {\n class: \"mt-10 d-flex justify-start align-center mobile-view\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half\",\n variant: \"flat\",\n disabled: $data.isDeleting,\n onClick: _cache[1] || (_cache[1] = $event => $options.deleteTeam())\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[6] || (_cache[6] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ÁNO\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"disabled\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(vuetify_lib_components_VBtn_index_mjs__WEBPACK_IMPORTED_MODULE_1__.VBtn, {\n class: \"button primary half outline\",\n onClick: _cache[2] || (_cache[2] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.withModifiers)($event => $options.closeModal(), [\"stop\"]))\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [...(_cache[7] || (_cache[7] = [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(\"ZRUŠIŤ\", -1 /* CACHED */)]))]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_a_resize_handle, {\n \"current-width\": _ctx.modalWidthPx,\n \"current-height\": _ctx.modalHeightPx,\n onResize: _ctx.handleModalResize,\n onResizeEnd: _ctx.handleResizeEnd\n }, null, 8 /* PROPS */, [\"current-width\", \"current-height\", \"onResize\", \"onResizeEnd\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"width\", \"height\"]);\n}\n\n/* Vuetify */\n\n\n\n\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/team/z-delete-team-modal.vue?./node_modules/webpack-plugin-vuetify/dist/scriptLoader.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use%5B0%5D!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B5%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); /***/ }), @@ -3173,7 +3173,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_utils/modal-resize.utils */ \"./src/plugins/tm@modal/_utils/modal-resize.utils.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n modalWidth: '100%',\n modalHeight: '100%',\n modalName: '' // Should be set by component\n };\n },\n computed: {\n modalWidthPx() {\n return this.modalWidth;\n },\n modalHeightPx() {\n return this.modalHeight;\n }\n },\n mounted() {\n window.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('resize', this.handleWindowResize);\n this.initModalSize();\n },\n beforeUnmount() {\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('resize', this.handleWindowResize);\n },\n methods: {\n handleKeyDown(event) {\n // if (event.keyCode === 27) this.closeModal()\n if (event.keyCode === 27) this.visible = false;\n },\n /**\n * Initialize modal size from localStorage or defaults\n */\n initModalSize() {\n if (!this.modalName) {\n console.warn('Modal name not set for resize functionality');\n return;\n }\n const size = _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModalSize(this.modalName);\n this.modalWidth = typeof size.width === 'number' ? `${size.width}px` : size.width;\n this.modalHeight = typeof size.height === 'number' ? `${size.height}px` : size.height;\n },\n /**\n * Handle window resize - adjust modal if on mobile\n */\n handleWindowResize() {\n if (_plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\n this.modalWidth = '100%';\n this.modalHeight = '100%';\n } else {\n // Reload stored or default size on desktop\n this.initModalSize();\n }\n },\n /**\n * Handle modal resize from resize handle\n */\n handleModalResize({\n width,\n height\n }) {\n if (_plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\n return; // Don't resize on mobile\n }\n const constrained = _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].constrainSize(width, height);\n this.modalWidth = `${constrained.width}px`;\n this.modalHeight = `${constrained.height}px`;\n },\n /**\n * Handle resize end - save to localStorage\n */\n handleResizeEnd() {\n if (!this.modalName || _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\n return;\n }\n // Parse current dimensions\n const width = parseFloat(this.modalWidth);\n const height = parseFloat(this.modalHeight);\n if (!isNaN(width) && !isNaN(height)) {\n _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].saveSize(this.modalName, width, height);\n }\n },\n /**\n * Reset modal size to defaults\n */\n resetModalSize() {\n if (!this.modalName) {\n return;\n }\n _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].resetSize(this.modalName);\n this.initModalSize();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/_mixins/modal.mixin.ts?\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/plugins/tm@modal/_utils/modal-resize.utils */ \"./src/plugins/tm@modal/_utils/modal-resize.utils.ts\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n data() {\n return {\n modalWidth: undefined,\n modalHeight: undefined,\n modalName: '',\n modalSize: 'medium' // Size preset: small, medium, or large\n };\n },\n computed: {\n modalWidthPx() {\n return this.modalWidth;\n },\n modalHeightPx() {\n return this.modalHeight;\n }\n },\n mounted() {\n window.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('resize', this.handleWindowResize);\n this.initModalSize();\n },\n beforeUnmount() {\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('resize', this.handleWindowResize);\n },\n methods: {\n handleKeyDown(event) {\n // if (event.keyCode === 27) this.closeModal()\n if (event.keyCode === 27) this.visible = false;\n },\n /**\n * Initialize modal size from localStorage or defaults\n */\n initModalSize() {\n if (!this.modalName) {\n console.warn('Modal name not set for resize functionality');\n return;\n }\n const size = _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getModalSize(this.modalName, this.modalSize);\n this.modalWidth = typeof size.width === 'number' ? `${size.width}px` : size.width;\n this.modalHeight = typeof size.height === 'number' ? `${size.height}px` : size.height;\n },\n /**\n * Handle window resize - adjust modal if on mobile\n */\n handleWindowResize() {\n if (_plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\n this.modalWidth = '100%';\n this.modalHeight = '100%';\n } else {\n // Reload stored or default size on desktop\n this.initModalSize();\n }\n },\n /**\n * Handle modal resize from resize handle\n */\n handleModalResize({\n width,\n height\n }) {\n if (_plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\n return; // Don't resize on mobile\n }\n const constrained = _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].constrainSize(width, height);\n this.modalWidth = `${constrained.width}px`;\n this.modalHeight = `${constrained.height}px`;\n },\n /**\n * Handle resize end - save to localStorage\n */\n handleResizeEnd() {\n if (!this.modalName || _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isMobile()) {\n return;\n }\n // Parse current dimensions\n const width = parseFloat(this.modalWidth);\n const height = parseFloat(this.modalHeight);\n if (!isNaN(width) && !isNaN(height)) {\n _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].saveSize(this.modalName, width, height);\n }\n },\n /**\n * Reset modal size to defaults\n */\n resetModalSize() {\n if (!this.modalName) {\n return;\n }\n _plugins_tm_modal_utils_modal_resize_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"].resetSize(this.modalName);\n this.initModalSize();\n }\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/_mixins/modal.mixin.ts?\n}"); /***/ }), @@ -3184,7 +3184,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pl /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\nconst MOBILE_BREAKPOINT = 768;\nconst DEFAULT_DESKTOP_WIDTH_PERCENT = 80;\nconst DEFAULT_DESKTOP_MAX_WIDTH = 1440;\nconst DEFAULT_DESKTOP_HEIGHT_PERCENT = 90;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n /**\n * Check if the current viewport is mobile\n */\n isMobile() {\n return window.innerWidth <= MOBILE_BREAKPOINT;\n },\n /**\n * Get default modal size based on viewport\n */\n getDefaultSize() {\n if (this.isMobile()) {\n return {\n width: '100%',\n height: '100%'\n };\n }\n const viewportWidth = window.innerWidth;\n const calculatedWidth = Math.min(viewportWidth * DEFAULT_DESKTOP_WIDTH_PERCENT / 100, DEFAULT_DESKTOP_MAX_WIDTH);\n const calculatedHeight = window.innerHeight * DEFAULT_DESKTOP_HEIGHT_PERCENT / 100;\n return {\n width: calculatedWidth,\n height: calculatedHeight\n };\n },\n /**\n * Get stored modal size from localStorage\n */\n getStoredSize(modalName) {\n try {\n const key = `modal-size-${modalName}`;\n const stored = localStorage.getItem(key);\n if (!stored) {\n return null;\n }\n const parsed = JSON.parse(stored);\n // Return stored size if it exists and is valid\n if (parsed && typeof parsed.width === 'number' && typeof parsed.height === 'number') {\n return {\n width: parsed.width,\n height: parsed.height\n };\n }\n return null;\n } catch (error) {\n console.error('Error reading stored modal size:', error);\n return null;\n }\n },\n /**\n * Save modal size to localStorage\n */\n saveSize(modalName, width, height) {\n try {\n const key = `modal-size-${modalName}`;\n const data = {\n width,\n height,\n timestamp: Date.now()\n };\n localStorage.setItem(key, JSON.stringify(data));\n } catch (error) {\n console.error('Error saving modal size:', error);\n }\n },\n /**\n * Reset modal size (clear from localStorage)\n */\n resetSize(modalName) {\n try {\n const key = `modal-size-${modalName}`;\n localStorage.removeItem(key);\n } catch (error) {\n console.error('Error resetting modal size:', error);\n }\n },\n /**\n * Get modal size (stored or default)\n */\n getModalSize(modalName) {\n // On mobile, always return 100%\n if (this.isMobile()) {\n return {\n width: '100%',\n height: '100%'\n };\n }\n // Check for stored size\n const storedSize = this.getStoredSize(modalName);\n if (storedSize) {\n return storedSize;\n }\n // Return default size\n return this.getDefaultSize();\n },\n /**\n * Convert size to pixels if percentage, otherwise return as is\n */\n normalizeSize(size) {\n if (typeof size === 'number') {\n return size;\n }\n // If it's a percentage, calculate pixel value\n if (size.includes('%')) {\n const percent = parseFloat(size);\n return window.innerWidth * percent / 100;\n }\n // If it's already pixels, parse it\n return parseFloat(size);\n },\n /**\n * Constrain size within reasonable bounds\n */\n constrainSize(width, height) {\n const minWidth = 400;\n const minHeight = 300;\n const maxWidth = window.innerWidth;\n const maxHeight = window.innerHeight;\n return {\n width: Math.max(minWidth, Math.min(width, maxWidth)),\n height: Math.max(minHeight, Math.min(height, maxHeight))\n };\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/_utils/modal-resize.utils.ts?\n}"); +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_0__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\nconst MOBILE_BREAKPOINT = 768;\n// Size presets\nconst SIZE_PRESETS = {\n small: {\n width: 600,\n height: 'fit-content',\n maxWidth: 600\n },\n medium: {\n width: 900,\n height: 'fit-content',\n maxWidth: 900\n },\n large: {\n width: '75%',\n height: '90%',\n maxWidth: '85%'\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n /**\n * Check if the current viewport is mobile\n */\n isMobile() {\n return window.innerWidth <= MOBILE_BREAKPOINT;\n },\n /**\n * Get default modal size based on viewport and size preset\n */\n getDefaultSize(size = 'medium') {\n if (this.isMobile()) {\n return {\n width: '100%',\n height: '100%'\n };\n }\n const preset = SIZE_PRESETS[size];\n // For large size, use percentages; for small/medium use fixed px values\n if (size === 'large') {\n return {\n width: preset.width,\n height: preset.height\n };\n }\n // For small and medium, return the px values directly\n return {\n width: preset.width,\n height: preset.height\n };\n },\n /**\n * Get stored modal size from localStorage\n */\n getStoredSize(modalName) {\n try {\n const key = `modal-size-${modalName}`;\n const stored = localStorage.getItem(key);\n if (!stored) {\n return null;\n }\n const parsed = JSON.parse(stored);\n // Return stored size if it exists and is valid\n if (parsed && typeof parsed.width === 'number' && typeof parsed.height === 'number') {\n return {\n width: parsed.width,\n height: parsed.height\n };\n }\n return null;\n } catch (error) {\n console.error('Error reading stored modal size:', error);\n return null;\n }\n },\n /**\n * Save modal size to localStorage\n */\n saveSize(modalName, width, height) {\n try {\n const key = `modal-size-${modalName}`;\n const data = {\n width,\n height,\n timestamp: Date.now()\n };\n localStorage.setItem(key, JSON.stringify(data));\n } catch (error) {\n console.error('Error saving modal size:', error);\n }\n },\n /**\n * Reset modal size (clear from localStorage)\n */\n resetSize(modalName) {\n try {\n const key = `modal-size-${modalName}`;\n localStorage.removeItem(key);\n } catch (error) {\n console.error('Error resetting modal size:', error);\n }\n },\n /**\n * Get modal size (stored or default)\n */\n getModalSize(modalName, size = 'medium') {\n // On mobile, always return 100%\n if (this.isMobile()) {\n return {\n width: '100%',\n height: '100%'\n };\n }\n // Check for stored size\n const storedSize = this.getStoredSize(modalName);\n if (storedSize) {\n return storedSize;\n }\n // Return default size based on preset\n return this.getDefaultSize(size);\n },\n /**\n * Convert size to pixels if percentage, otherwise return as is\n */\n normalizeSize(size) {\n if (typeof size === 'number') {\n return size;\n }\n // If it's a percentage, calculate pixel value\n if (size.includes('%')) {\n const percent = parseFloat(size);\n return window.innerWidth * percent / 100;\n }\n // If it's already pixels, parse it\n return parseFloat(size);\n },\n /**\n * Constrain size within reasonable bounds\n */\n constrainSize(width, height) {\n const minWidth = 400;\n const minHeight = 300;\n const maxWidth = window.innerWidth;\n const maxHeight = window.innerHeight;\n return {\n width: Math.max(minWidth, Math.min(width, maxWidth)),\n height: Math.max(minHeight, Math.min(height, maxHeight))\n };\n }\n});\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/_utils/modal-resize.utils.ts?\n}"); /***/ }), diff --git a/app/dist/js/src_plugins_tm_dashboard_tasks-concepts_tasks-concepts_vue.js b/app/dist/js/src_plugins_tm_dashboard_tasks-concepts_tasks-concepts_vue.js index 16063cd..39911bb 100644 --- a/app/dist/js/src_plugins_tm_dashboard_tasks-concepts_tasks-concepts_vue.js +++ b/app/dist/js/src_plugins_tm_dashboard_tasks-concepts_tasks-concepts_vue.js @@ -90,7 +90,7 @@ eval("{// style-loader: Adds some css to the DOM by adding a