From 78d4d3c970651b24c7e08814b2d84b9239302938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Glasn=C3=A1k?= Date: Wed, 14 Jan 2026 17:27:42 +0100 Subject: [PATCH] feat(modals): update z-blocker-modal to include scoped styles and improve component structure for better maintainability --- app/dist/js/index.js | 58 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/app/dist/js/index.js b/app/dist/js/index.js index 6010e2b..f155eea 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/* 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}"); +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 _vuelidate_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @vuelidate/core */ \"./node_modules/@vuelidate/core/dist/index.esm.js\");\n/* harmony import */ var _vuelidate_validators__WEBPACK_IMPORTED_MODULE_3__ = __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_4__ = __webpack_require__(/*! @/plugins/lib@auth/_utils/error.utils */ \"./src/plugins/lib@auth/_utils/error.utils.ts\");\n/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm-bundler.js\");\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_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_7__ = __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_8__ = __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_9__ = __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_10__ = __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_11__ = __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_task_components_employees_a_employee_timeblock_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/plugins/tm@modal/task/_components/employees/a-employee-timeblock.vue */ \"./src/plugins/tm@modal/task/_components/employees/a-employee-timeblock.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 AResizeHandle: _plugins_tm_modal_components_a_resize_handle_vue__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n AResetSizeButton: _plugins_tm_modal_components_a_reset_size_button_vue__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n ACloseButton: _plugins_tm_modal_components_a_close_button_vue__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n AEmployeeTimeblock: _plugins_tm_modal_task_components_employees_a_employee_timeblock_vue__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n },\n mixins: [_plugins_tm_mixins_autocomplete_mixin__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _plugins_tm_modal_mixins_modal_mixin__WEBPACK_IMPORTED_MODULE_8__[\"default\"]],\n emits: ['close'],\n data() {\n return {\n visible: false,\n v$: (0,_vuelidate_core__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(),\n errorUtils: _plugins_lib_auth_utils_error_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n blocker: null,\n timeblockData: {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: null\n },\n employee: null,\n modalName: 'z-blocker-modal',\n modalSize: 'large'\n };\n },\n computed: {\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_5__.mapGetters)('tm', ['enrichedEmployees']),\n ...(0,vuex__WEBPACK_IMPORTED_MODULE_5__.mapGetters)('auth', ['user']),\n selectedEmployee() {\n if (!this.blocker?.employee_id) return null;\n return this.enrichedEmployees.find(emp => emp.id === this.blocker.employee_id);\n }\n },\n validations() {\n return {\n blocker: {\n name: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_3__.required\n },\n start: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_3__.required\n },\n end: {\n required: _vuelidate_validators__WEBPACK_IMPORTED_MODULE_3__.required\n }\n }\n };\n },\n watch: {\n 'blocker.employee_id'(newEmployeeId) {\n // Update timeblock employee_id when blocker employee changes\n if (this.timeblockData) {\n this.timeblockData.employee_id = newEmployeeId;\n }\n },\n 'timeblockData.date'() {\n this._syncDatesTimes();\n },\n 'timeblockData.starts_at_time'() {\n this._syncDatesTimes();\n },\n 'timeblockData.ends_at_time'() {\n this._syncDatesTimes();\n }\n },\n methods: {\n async showModal({\n blocker\n }) {\n this.visible = true;\n this.blocker = null;\n this.timeblockData = {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: null\n };\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 const startMoment = moment__WEBPACK_IMPORTED_MODULE_6___default()(blocker.start);\n const endMoment = moment__WEBPACK_IMPORTED_MODULE_6___default()(blocker.end);\n this.timeblockData = {\n id: null,\n date: startMoment.toDate(),\n starts_at_time: startMoment.format('HH:mm'),\n ends_at_time: endMoment.format('HH:mm'),\n employee_id: blocker.employee.id\n };\n blocker.employee_id = blocker.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.timeblockData = {\n id: null,\n date: blocker.datepicker,\n starts_at_time: blocker.starts_at_time,\n ends_at_time: blocker.ends_at_time,\n employee_id: blocker.employee_id\n };\n this.blocker.employee_id = blocker.employee_id;\n } else {\n this.timeblockData.employee_id = this.user.id;\n }\n }\n } catch (error) {\n this.$toast.error(this.$parseError(error));\n }\n },\n async save() {\n // Validate using the employee timeblock component's validation\n const isTimeblockValid = await this.$refs.employeeTimeblockRef?.validate();\n if (!isTimeblockValid || !(await this.v$.$validate())) return;\n try {\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.timeblockData = {\n id: null,\n date: new Date(),\n starts_at_time: null,\n ends_at_time: null,\n employee_id: null\n };\n this.$emit('close', this.blocker);\n },\n _syncDatesTimes() {\n if (!this.timeblockData.starts_at_time || !this.timeblockData.ends_at_time || !this.timeblockData.date) return;\n const splittedStart = this.timeblockData.starts_at_time.split(':');\n const splittedEnd = this.timeblockData.ends_at_time.split(':');\n this.blocker.start = moment__WEBPACK_IMPORTED_MODULE_6___default()(this.timeblockData.date).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_6___default()(this.timeblockData.date).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}"); /***/ }), @@ -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 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 if (data.is_draft && Array.isArray(data.employees)) {\n // Handle draft subtasks with employees array\n const allDraftTimeblocks = [];\n data.employees = data.employees.map(emp => {\n const convertedTimeblocks = (emp.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, emp.id)).filter(Boolean);\n\n // Add to flat array for edit mode\n allDraftTimeblocks.push(...convertedTimeblocks);\n return {\n ...emp,\n timeblocks: convertedTimeblocks\n };\n });\n\n // Update flat timeblocks array for edit mode\n this.timeblocks = allDraftTimeblocks;\n } else {\n // Handle published subtasks with root-level timeblocks\n this.timeblocks = (data.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, data.employee_id)).filter(Boolean);\n }\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 /**\n * Convert a timeblock from backend format to internal format\n * @param {Object} timeblock - Timeblock in BE format (start/end) or internal format (date/times)\n * @param {Number} employeeId - Employee ID to associate with the timeblock\n * @returns {Object} Timeblock in internal format\n */\n _convertTimeblockToInternal(timeblock, employeeId) {\n // If already in internal format, return as is\n if (timeblock.date) {\n return {\n ...timeblock,\n employee_id: employeeId\n };\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 return {\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: employeeId\n };\n }\n return null;\n },\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\n // Hide employees that are already selected in any slot\n // The v-autocomplete will still display the currently selected employee\n const isAlreadySelected = Array.isArray(this.subtask.employees) && this.subtask.employees.some(emp => emp.id && Number(emp.id) === employeeId);\n return shouldShowItem && !isAlreadySelected;\n } else if (this.subtask.is_draft) {\n // Edit draft subtask with multiple employees support\n // Hide employees that are already selected in any slot\n const isAlreadySelected = Array.isArray(this.subtask.employees) && this.subtask.employees.some(emp => emp.id && Number(emp.id) === employeeId);\n return shouldShowItem && !isAlreadySelected;\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 && Array.isArray(this.subtask.employees)) {\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 if (data.is_draft && data.employees && Array.isArray(data.employees)) {\n // Handle draft subtasks with employees array\n const draftTimeblocks = [];\n data.employees = data.employees.map(employee => {\n const convertedTimeblocks = (employee.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, employee.id)).filter(Boolean);\n draftTimeblocks.push(...convertedTimeblocks);\n return {\n ...employee,\n timeblocks: convertedTimeblocks\n };\n });\n this.timeblocks = draftTimeblocks;\n\n // Ensure employees array has proper structure for editing\n const lastEmployee = data.employees[data.employees.length - 1];\n if (lastEmployee && (lastEmployee.id || lastEmployee.duration)) {\n data.employees.push({});\n }\n } else {\n // Handle published subtasks with root-level timeblocks\n this.timeblocks = (data.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, data.employee_id)).filter(Boolean);\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\n // Get current logged-in user\n const currentUserId = this.$store.getters['auth/user']?.id;\n const isCurrentUser = currentUserId === subtask.employee_id;\n\n // If the clicked employee is different from current user, add current user first as empty slot\n if (!isCurrentUser) {\n this.subtask.employees = [{\n id: currentUserId,\n duration: null\n },\n // Empty current user slot\n employee // The clicked employee with data\n ];\n } else {\n // Same user or no current user, just add the clicked employee\n this.subtask.employees = [employee];\n }\n this.subtask.deadline = subtask.deadline;\n this.subtask._deadline_time = subtask._deadline_time;\n setTimeout(() => {\n this.timeblocks = [...(!isCurrentUser ? [{\n date: new Date(subtask.deadline),\n starts_at_time: subtask._deadline_time,\n ends_at_time: null,\n employee_id: currentUserId\n }] : []), {\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._filterValidEmployees(this.subtask.employees, concept);\n\n // Assign timeblocks to each employee\n validEmployees.forEach(employee => {\n const employeeTimeblocks = this._getEmployeeTimeblocks(employee.id, true);\n employee.timeblocks = employeeTimeblocks.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 const validEmployees = this._filterValidEmployees(this.subtask.employees, concept);\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 const employeeTimeblocks = this._getEmployeeTimeblocks(employee.id, true);\n employee.timeblocks = employeeTimeblocks.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 _filterValidEmployees(employees, isConcept) {\n // Filter employees based on whether it's a concept/draft or published task\n // For concepts: only require id (duration can be null/0)\n // For published tasks: require both id and duration\n if (!Array.isArray(employees)) return [];\n return employees.filter(employee => {\n if (isConcept) {\n return employee.id; // Only require ID for concepts/drafts\n }\n return employee.id && employee.duration; // Require both for published tasks\n });\n },\n _getEmployeeTimeblocks(employeeId, requireComplete = true) {\n // Get timeblocks for a specific employee with proper type handling\n // Use Number() conversion to avoid type mismatch issues (string vs number)\n const filtered = this.timeblocks.filter(tb => {\n const idsMatch = Number(tb.employee_id) === Number(employeeId);\n if (!requireComplete) {\n return idsMatch;\n }\n\n // For complete timeblocks, also require date and time fields\n return idsMatch && tb.date && tb.starts_at_time && tb.ends_at_time;\n });\n return filtered;\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 if (data.is_draft && Array.isArray(data.employees)) {\n // Handle draft subtasks with employees array\n const allDraftTimeblocks = [];\n data.employees = data.employees.map(emp => {\n const convertedTimeblocks = (emp.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, emp.id)).filter(Boolean);\n\n // Add to flat array for edit mode\n allDraftTimeblocks.push(...convertedTimeblocks);\n return {\n ...emp,\n timeblocks: convertedTimeblocks\n };\n });\n\n // Update flat timeblocks array for edit mode\n this.timeblocks = allDraftTimeblocks;\n } else {\n // Handle published subtasks with root-level timeblocks\n this.timeblocks = (data.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, data.employee_id)).filter(Boolean);\n }\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 /**\n * Convert a timeblock from backend format to internal format\n * @param {Object} timeblock - Timeblock in BE format (start/end) or internal format (date/times)\n * @param {Number} employeeId - Employee ID to associate with the timeblock\n * @returns {Object} Timeblock in internal format\n */\n _convertTimeblockToInternal(timeblock, employeeId) {\n // If already in internal format, return as is\n if (timeblock.date) {\n return {\n ...timeblock,\n employee_id: employeeId\n };\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 return {\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: employeeId\n };\n }\n return null;\n },\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\n // Hide employees that are already selected in any slot\n // The v-autocomplete will still display the currently selected employee\n const isAlreadySelected = Array.isArray(this.subtask.employees) && this.subtask.employees.some(emp => emp.id && Number(emp.id) === employeeId);\n return shouldShowItem && !isAlreadySelected;\n } else if (this.subtask.is_draft) {\n // Edit draft subtask with multiple employees support\n // Hide employees that are already selected in any slot\n const isAlreadySelected = Array.isArray(this.subtask.employees) && this.subtask.employees.some(emp => emp.id && Number(emp.id) === employeeId);\n return shouldShowItem && !isAlreadySelected;\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 && Array.isArray(this.subtask.employees)) {\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 if (data.is_draft && data.employees && Array.isArray(data.employees)) {\n // Handle draft subtasks with employees array\n const draftTimeblocks = [];\n data.employees = data.employees.map(employee => {\n const convertedTimeblocks = (employee.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, employee.id)).filter(Boolean);\n draftTimeblocks.push(...convertedTimeblocks);\n return {\n ...employee,\n timeblocks: convertedTimeblocks\n };\n });\n this.timeblocks = draftTimeblocks;\n\n // Ensure employees array has proper structure for editing\n const lastEmployee = data.employees[data.employees.length - 1];\n if (lastEmployee && (lastEmployee.id || lastEmployee.duration)) {\n data.employees.push({});\n }\n } else {\n // Handle published subtasks with root-level timeblocks\n this.timeblocks = (data.timeblocks || []).map(tb => this._convertTimeblockToInternal(tb, data.employee_id)).filter(Boolean);\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.subtask = this._enrichTask(data);\n this.editMode = editMode || !data.id;\n\n // Set Quill editor content after subtask is loaded and editMode is set\n this.$nextTick(() => {\n if (this.$refs['description']) {\n this.$refs['description'].setHTML(this.subtask.description || '');\n }\n });\n return;\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\n // Get current logged-in user\n const currentUserId = this.$store.getters['auth/user']?.id;\n const isCurrentUser = currentUserId === subtask.employee_id;\n\n // If the clicked employee is different from current user, add current user first as empty slot\n if (!isCurrentUser) {\n this.subtask.employees = [{\n id: currentUserId,\n duration: null\n },\n // Empty current user slot\n employee // The clicked employee with data\n ];\n } else {\n // Same user or no current user, just add the clicked employee\n this.subtask.employees = [employee];\n }\n this.subtask.deadline = subtask.deadline;\n this.subtask._deadline_time = subtask._deadline_time;\n setTimeout(() => {\n this.timeblocks = [...(!isCurrentUser ? [{\n date: new Date(subtask.deadline),\n starts_at_time: subtask._deadline_time,\n ends_at_time: null,\n employee_id: currentUserId\n }] : []), {\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\n // Set Quill editor content after editMode is set\n // This ensures the description is loaded when opening in edit mode\n if (this.editMode) {\n this.$nextTick(() => {\n if (this.$refs['description']) {\n this.$refs['description'].setHTML(this.subtask?.description || '');\n }\n });\n }\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._filterValidEmployees(this.subtask.employees, concept);\n\n // Assign timeblocks to each employee\n validEmployees.forEach(employee => {\n const employeeTimeblocks = this._getEmployeeTimeblocks(employee.id, true);\n employee.timeblocks = employeeTimeblocks.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 const validEmployees = this._filterValidEmployees(this.subtask.employees, concept);\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 const employeeTimeblocks = this._getEmployeeTimeblocks(employee.id, true);\n employee.timeblocks = employeeTimeblocks.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 _filterValidEmployees(employees, isConcept) {\n // Filter employees based on whether it's a concept/draft or published task\n // For concepts: only require id (duration can be null/0)\n // For published tasks: require both id and duration\n if (!Array.isArray(employees)) return [];\n return employees.filter(employee => {\n if (isConcept) {\n return employee.id; // Only require ID for concepts/drafts\n }\n return employee.id && employee.duration; // Require both for published tasks\n });\n },\n _getEmployeeTimeblocks(employeeId, requireComplete = true) {\n // Get timeblocks for a specific employee with proper type handling\n // Use Number() conversion to avoid type mismatch issues (string vs number)\n const filtered = this.timeblocks.filter(tb => {\n const idsMatch = Number(tb.employee_id) === Number(employeeId);\n if (!requireComplete) {\n return idsMatch;\n }\n\n // For complete timeblocks, also require date and time fields\n return idsMatch && tb.date && tb.starts_at_time && tb.ends_at_time;\n });\n return filtered;\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}"); /***/ }), @@ -745,6 +745,17 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _no /***/ }), +/***/ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/plugins/tm@modal/blocker/z-blocker-modal.vue?vue&type=style&index=0&id=2ddccf71&lang=sass&scoped=true": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/plugins/tm@modal/blocker/z-blocker-modal.vue?vue&type=style&index=0&id=2ddccf71&lang=sass&scoped=true ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-2ddccf71] .timeblock__header__top {\\n display: none;\\n}\\n[data-v-2ddccf71] .actions {\\n display: none;\\n}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://jandl/./src/plugins/tm@modal/blocker/z-blocker-modal.vue?./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use%5B1%5D!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use%5B2%5D!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use%5B3%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use%5B0%5D\n}"); + +/***/ }), + /***/ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/plugins/tm@modal/master-task/_components/a-tasks-table.vue?vue&type=style&index=0&id=5fad4e89&lang=sass&scoped=true": /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-27.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-27.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-27.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/plugins/tm@modal/master-task/_components/a-tasks-table.vue?vue&type=style&index=0&id=5fad4e89&lang=sass&scoped=true ***! @@ -1041,6 +1052,16 @@ eval("{// style-loader: Adds some css to the DOM by adding a