{"version":3,"sources":["webpack:///./src/views/components/HourPicker/HourPicker.vue?a860","webpack:///./src/views/components/HourPicker/HourPicker.ts","webpack:///./src/views/components/HourPicker/HourPicker.vue","webpack:///./src/assets/images/entrancePlants/icon-message.svg","webpack:///./src/views/components/DialogConfirmDelete/DialogConfirmDelete.vue?b090","webpack:///./src/views/components/DialogConfirmDelete/DialogConfirmDelete.ts","webpack:///./src/views/components/DialogConfirmDelete/DialogConfirmDelete.vue","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/DialogAddEditMessage/DialogAddEditMessage.scss?3290","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./src/core/utils/axios-instance.ts","webpack:///./src/assets/images/icons/icon-alert-medium-outline.svg","webpack:///./src/core/services/plants.ts","webpack:///./src/views/components/HourPicker/HourPicker.scss","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/EntrancePlantMessages.scss?026f","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/EntrancePlantMessages.vue?37ae","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/MessageItem/MessageItem.vue?38dd","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/MessageItem/MessageItem.ts","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/MessageItem/MessageItem.vue","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/DialogAddEditMessage/DialogAddEditMessage.vue?797c","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/DialogAddEditMessage/DialogAddEditMessage.ts","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/DialogAddEditMessage/DialogAddEditMessage.vue","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/EntrancePlantMessages.ts","webpack:///./src/views/pages/EntrancePlantDetail/EntrancePlantMessages/EntrancePlantMessages.vue"],"names":["_withId","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","render","_ctx","_cache","$props","$setup","$data","$options","_component_ElPopover","disabled","reference","width","inputError","type","readonly","inputmode","value","textToShow","tabindex","icon","default","onClick","addHour","removeHour","_","newModelValue","this","modelValue","maxHour","$emit","minHour","toString","padStart","name","props","Number","required","String","Boolean","emits","__exports__","module","exports","_component_InlineSvgScoped","_component_Button","_component_Dialog","visible","isDialogVisible","$event","onHide","doHideDialog","modal","showHeader","closable","src","dialogTitle","dialogMessage","handleHideDialog","$t","doConfirm","title","message","isVisible","watch","newValue","$","$trim","trim","forcedStringTrimMethod","target","proto","forced","a","defaults","timeout","interceptors","request","use","config","getToken","token","headers","Authorization","response","error","addError","JSON","stringify","toJSON","status","emit","Promise","reject","push","prototype","init","data","property","Object","hasOwnProperty","call","$type","plantsClient","fails","whitespaces","non","METHOD_NAME","_hoisted_6","key","_hoisted_7","_hoisted_8","_hoisted_9","_component_router_link","_component_TabPanel","_component_TabView","_component_MessageItem","_component_ElScrollbar","_component_DialogAddEditMessage","to","backLink","currentEntrancePlant","offlinePlant","toggleAddEditMessage","onTabChange","handleTabClick","header","messagesList","length","id","offline","plantGates","gatesWithPE","onEditMessage","onDeleteMessage","handleDeleteMessage","expired","tabSelected","MessagesTab","active","messageToEdit","isVisibleAddEditMessage","onHideDialog","onUpdateList","handleUpdateList","_component_ElDropdownItem","_component_ElDropdownMenu","_component_ElDropdown","_component_Card","_component_DialogConfirmDelete","content","gates","getValidTime","trigger","placement","dropdown","style","handleEditMessage","toggleDeleteMessageConfirm","label","isVisibleDeleteMessageConfirm","onConfirm","dateFrom","getParsedDate","durationSince","dateTo","durationUntil","hourFrom","hourTo","filter","gate","gateIds","includes","gateId","map","join","toLocaleUpperCase","date","optionsDate","month","day","year","timeZone","optionsTime","hour","minute","toLocaleString","navigator","language","Array","components","DialogConfirmDelete","for","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_component_InputText","_component_Textarea","_component_Calendar","_component_HourPicker","_component_ListItemCheck","noOverlapping","titleMaxLength","maxlength","validator","text","messageMaxLength","remainingChars","dateSince","minDate","maxDate","dateFormat","manualInput","showIcon","timeSince","updateSince","dateUntil","minDurationUntilDate","timeUntil","updateUntil","g","gateIdx","inputId","last","currentEntrancePlantGatesCount","isEdit","handleButtonSubmitAction","saveButtonDisabled","validTime","Date","devices","some","device","Linea5000","today","nextYear","setUTCFullYear","getUTCFullYear","startDate","setUTCHours","nextMonth","setUTCMonth","getUTCMonth","nextDay","selectedDurationHasOverlappings","createDate","getHours","dateToSinceCheck","dateToUntilCheck","existingMessagesForGate","gateMessages","every","m","endDate","getUTCHours","toISOString","split","saveGateMessage","undefined","desktopId","$store","dispatch","getTime","Error","gatemessagePUT","gatemessagePOST","$toast","add","severity","summary","life","console","log","setTimeout","hours","newDate","getFullYear","getMonth","setUTCDate","getDate","badTitle","badText","badTime","overlap","badGates","checkIfValidTime","checkIfAnotherMessageExists","computed","initMessage","deep","handler","HourPicker","MessageTab","params","$route","messagesFilteredList","messages","dateAdjust","event","setSelectionCriteria","index","selectionCriteria","messageId","gatemessageDELETE","DialogAddEditMessage","MessageItem"],"mappings":"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","file":"js/page-entranceplant-messages.6cb97266.js","sourcesContent":["import { createVNode as _createVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-a2b2f734\")\n\n_pushScopeId(\"data-v-a2b2f734\")\nconst _hoisted_1 = { class: \"p-component\" }\nconst _hoisted_2 = { class: \"p-timepicker\" }\nconst _hoisted_3 = { class: \"p-hour-picker\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"span\", { class: \"pi pi-chevron-up\" }, null, -1)\nconst _hoisted_5 = /*#__PURE__*/_createVNode(\"span\", { class: \"pi pi-chevron-down\" }, null, -1)\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) => {\n const _component_ElPopover = _resolveComponent(\"ElPopover\")\n\n return (_openBlock(), _createBlock(_component_ElPopover, {\n disabled: _ctx.disabled,\n \"popper-class\": \"el-dropdown__popper el-dropdown--context\"\n }, {\n reference: _withId(() => [\n _createVNode(\"span\", {\n class: [\"p-calendar p-component p-inputwrapper p-calendar-w-btn p-inputwrapper-filled\", _ctx.width]\n }, [\n _createVNode(\"input\", {\n class: [\"p-inputtext p-component\", {'input-error': _ctx.inputError}],\n type: \"text\",\n disabled: _ctx.disabled,\n readonly: \"\",\n inputmode: \"none\",\n value: _ctx.textToShow\n }, null, 10, [\"disabled\", \"value\"]),\n _createVNode(\"button\", {\n class: \"p-button p-component p-button-icon-only p-datepicker-trigger\",\n disabled: _ctx.disabled,\n tabindex: -1,\n type: \"button\"\n }, [\n _createVNode(\"span\", {\n class: [\"p-button-icon\", _ctx.icon]\n }, null, 2)\n ], 8, [\"disabled\"])\n ], 2)\n ]),\n default: _withId(() => [\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"button\", {\n class: \"p-link\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.addHour && _ctx.addHour(...args)))\n }, [\n _hoisted_4\n ]),\n _createVNode(\"span\", null, _toDisplayString(_ctx.textToShow), 1),\n _createVNode(\"button\", {\n class: \"p-link\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.removeHour && _ctx.removeHour(...args)))\n }, [\n _hoisted_5\n ])\n ])\n ])\n ])\n ]),\n _: 1\n }, 8, [\"disabled\"]))\n})","import { Options, Vue } from 'vue-class-component';\n\n@Options({\n name: 'HourPicker',\n props: {\n modelValue: {\n type: Number,\n required: true,\n },\n width: {\n type: String,\n default:''\n },\n disabled: {\n type: Boolean,\n required:false,\n default:false\n },\n inputError: {\n type: Boolean,\n required: false,\n default: false,\n },\n minHour: {\n type: Number,\n required: false,\n default: 0,\n },\n maxHour: {\n type: Number,\n required: false,\n default: 23,\n },\n icon: {\n type: String,\n required: false,\n default: 'pi pi-clock',\n }\n },\n emits: ['update:modelValue'],\n})\nexport default class HourPicker extends Vue {\n disabled!: boolean;\n width!: string\n modelValue!: number;\n inputError!: boolean;\n minHour!: number;\n maxHour!: number;\n icon!: string;\n\n addHour() {\n let newModelValue = this.modelValue;\n if (this.modelValue < this.maxHour) {\n newModelValue = this.modelValue +1 \n }\n this.$emit('update:modelValue', newModelValue);\n }\n\n removeHour() {\n let newModelValue = this.modelValue\n if (this.modelValue > this.minHour) {\n newModelValue = this.modelValue -1 \n }\n this.$emit('update:modelValue', newModelValue);\n }\n\n get textToShow() {\n return `${this.modelValue.toString().padStart(2, '0')}:00`;\n }\n}\n","import { render } from \"./HourPicker.vue?vue&type=template&id=a2b2f734&scoped=true&ts=true\"\nimport script from \"./HourPicker.ts?vue&type=script&lang=ts\"\nexport * from \"./HourPicker.ts?vue&type=script&lang=ts\"\n\nimport \"./HourPicker.scss?vue&type=style&index=0&id=a2b2f734&scoped=true&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a2b2f734\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/icon-message.297290d6.svg\";","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon text-primary\" }\nconst _hoisted_2 = { class: \"dialog-confirm__title\" }\nconst _hoisted_3 = { class: \"dialog-confirm__message\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"hr\", null, null, -1)\nconst _hoisted_5 = { class: \"dialog-confirm__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.isDialogVisible = $event)),\n onHide: _ctx.doHideDialog,\n modal: true,\n showHeader: false,\n closable: false,\n class: \"dialog-confirm\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-alert-medium-outline.svg`)\n ,\n \"aria-label\": \"icon-alert-medium-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h5\", _hoisted_2, _toDisplayString(_ctx.dialogTitle), 1),\n _createVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.dialogMessage), 1),\n _hoisted_4,\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_Button, {\n class: \"p-button-text p-button-secondary text-uppercase mr-2\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Cancel\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button--m\",\n onClick: _ctx.doConfirm\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Ok\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'DialogConfirmDelete',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n title: {\n type: String,\n required: true,\n },\n message: {\n type: String,\n required: true,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n },\n },\n emits: ['hide-dialog', 'confirm'],\n})\nexport default class DialogConfirmDelete extends Vue {\n isVisible!: boolean;\n title!: string;\n message!: string;\n isDialogVisible = false;\n\n get dialogTitle() {\n return this.title;\n }\n\n get dialogMessage() {\n return this.message;\n }\n\n mounted() {\n this.isDialogVisible = this.isVisible;\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n doConfirm() {\n this.$emit('confirm');\n this.handleHideDialog();\n }\n}\n","import { render } from \"./DialogConfirmDelete.vue?vue&type=template&id=009d4b24&ts=true\"\nimport script from \"./DialogConfirmDelete.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogConfirmDelete.ts?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./DialogAddEditMessage.scss?vue&type=style&index=0&lang=scss\"","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","import axios from 'axios';\nimport router from '../../core/router/index';\n\naxios.defaults.timeout = 30000;\n\nimport authService from '../services/auth.service';\nimport emitter from '@/core/config/emitter';\nimport { MANAGE_ELIOT_PARSE_EXCEPTION } from './emitter-events';\nimport globalErrors from './global-errors';\n\naxios.interceptors.request.use(async (config) => {\n const token = await authService.getToken();\n if (token) config.headers.Authorization = `Bearer ${token}`;\n else config.headers.Authorization = '';\n return config;\n});\n\naxios.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n globalErrors.addError(JSON.stringify(error.toJSON()));\n if (error.response.status === 412) {\n emitter.emit(MANAGE_ELIOT_PARSE_EXCEPTION);\n } else if (error.response.status === 477) {\n // user is not in allowed list\n router.push({ name: 'page-user-not-allowed' });\n } else {\n return Promise.reject(error);\n }\n }\n);\n\nexport default axios;\n","module.exports = __webpack_public_path__ + \"img/icon-alert-medium-outline.b8add9d7.svg\";","import {\n Client,\n ActuatorSettings,\n CommandSettings,\n GeneralCommandsAndGroupsAction,\n DefaultObjectAction,\n ObjectAction,\n WaitTimeAction,\n Action,\n Trigger,\n Condition,\n ObjectTrigger,\n ButtonTrigger,\n DateAndTimeTrigger,\n TimeCondition,\n ObjectCondition,\n ExtDevice,\n ColoredLightExtDevice,\n XmeterExtDevice,\n PlayerExtDevice,\n} from '@/../client-generator/generated-clients/plants';\nimport axiosInstance from '../utils/axios-instance';\n\nCondition.prototype.init \n= Trigger.prototype.init \n= Action.prototype.init \n= ActuatorSettings.prototype.init \n= CommandSettings.prototype.init \n= GeneralCommandsAndGroupsAction.prototype.init \n= DefaultObjectAction.prototype.init \n= ObjectAction.prototype.init \n= WaitTimeAction.prototype.init \n= ObjectTrigger.prototype.init \n= ButtonTrigger.prototype.init \n= DateAndTimeTrigger.prototype.init \n= TimeCondition.prototype.init \n= ObjectCondition.prototype.init\n= ExtDevice.prototype.init\n= ColoredLightExtDevice.prototype.init\n= XmeterExtDevice.prototype.init\n= PlayerExtDevice.prototype.init = function (\n data?: any\n) {\n if (data) {\n for (var property in data) {\n if (Object.prototype.hasOwnProperty.call(data, property))\n (this)[property] = (data)[property];\n }\n }\n};\n\nCondition.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.Condition, ProtocolManager`,\n ...this,\n };\n};\nTrigger.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.Trigger, ProtocolManager`,\n ...this,\n };\n};\nAction.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.Action, ProtocolManager`,\n ...this,\n };\n};\nActuatorSettings.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ActuatorSettings, ProtocolManager`,\n ...this,\n };\n};\nCommandSettings.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.CommandSettings, ProtocolManager`,\n ...this,\n };\n};\nGeneralCommandsAndGroupsAction.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.GeneralCommandsAndGroupsAction, ProtocolManager`,\n ...this,\n };\n};\nDefaultObjectAction.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.DefaultObjectAction, ProtocolManager`,\n ...this,\n };\n};\nObjectAction.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ObjectAction, ProtocolManager`,\n ...this,\n };\n};\nWaitTimeAction.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.WaitTimeAction, ProtocolManager`,\n ...this,\n };\n};\nObjectTrigger.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ObjectTrigger, ProtocolManager`,\n ...this,\n };\n};\nButtonTrigger.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ButtonTrigger, ProtocolManager`,\n ...this,\n };\n};\nDateAndTimeTrigger.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.DateAndTimeTrigger, ProtocolManager`,\n ...this,\n };\n};\nTimeCondition.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.TimeCondition, ProtocolManager`,\n ...this,\n };\n};\nObjectCondition.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ObjectCondition, ProtocolManager`,\n ...this,\n };\n};\nExtDevice.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ExtDevice, ProtocolManager`,\n ...this,\n };\n};\nColoredLightExtDevice.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.ColoredLightExtDevice, ProtocolManager`,\n ...this,\n };\n};\nXmeterExtDevice.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.XmeterExtDevice, ProtocolManager`,\n ...this,\n };\n};\nPlayerExtDevice.prototype.toJSON = function (data?: any) {\n return {\n $type: `ProtocolManager.Model.PlayerExtDevice, ProtocolManager`,\n ...this,\n };\n};\n\nconst plantsClient = new Client('', axiosInstance);\n\nexport default plantsClient;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./HourPicker.scss?vue&type=style&index=0&id=a2b2f734&scoped=true&lang=scss\"","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./EntrancePlantMessages.scss?vue&type=style&index=0&lang=scss\"","import { createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex align-items-start\" }\nconst _hoisted_2 = /*#__PURE__*/_createVNode(\"i\", { class: \"pi pi-chevron-left mr-1\" }, null, -1)\nconst _hoisted_3 = { class: \"mt-2\" }\nconst _hoisted_4 = { class: \"ml-auto d-flex align-items-center\" }\nconst _hoisted_5 = { class: \"d-flex align-items-baseline justify-content-between\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-messages text-center\"\n}\nconst _hoisted_8 = { class: \"text-uppercase\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"fs-18 text-gray\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_TabPanel = _resolveComponent(\"TabPanel\")\n const _component_TabView = _resolveComponent(\"TabView\")\n const _component_MessageItem = _resolveComponent(\"MessageItem\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_DialogAddEditMessage = _resolveComponent(\"DialogAddEditMessage\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", null, [\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(\"div\", null, [\n _createVNode(_component_router_link, {\n to: _ctx.backLink,\n class: \"fs-18 text-decoration-none text-gray\"\n }, {\n default: _withCtx(() => [\n _hoisted_2,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"general.backTo\")) + \": \" + _toDisplayString(_ctx.currentEntrancePlant.name), 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createVNode(\"h1\", _hoisted_3, _toDisplayString(_ctx.$t(\"AppResourceEP.Messages\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_4, [\n (!_ctx.offlinePlant)\n ? (_openBlock(), _createBlock(_component_Button, {\n key: 0,\n class: \"p-button-rounded p-button-raised p-button--m\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.toggleAddEditMessage()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResourceEP.NewGateMessage\")), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_TabView, {\n class: \"messages-list p-tabview--custom\",\n onTabChange: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleTabClick($event)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_TabPanel, {\n header: _ctx.$t('AppResourceEP.ActiveMessage')\n }, null, 8, [\"header\"]),\n _createVNode(_component_TabPanel, {\n header: _ctx.$t('AppResourceEP.ExpiredMessages')\n }, null, 8, [\"header\"])\n ]),\n _: 1\n })\n ]),\n (_ctx.messagesList.length > 0)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_6, [\n _createVNode(_component_ElScrollbar, { class: \"message-card-list\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.messagesList, (message) => {\n return (_openBlock(), _createBlock(_component_MessageItem, {\n key: message.id,\n offline: _ctx.offlinePlant,\n message: message,\n plantGates: _ctx.gatesWithPE,\n onEditMessage: _ctx.toggleAddEditMessage,\n onDeleteMessage: _ctx.handleDeleteMessage,\n expired: _ctx.tabSelected === _ctx.MessagesTab.expired\n }, null, 8, [\"offline\", \"message\", \"plantGates\", \"onEditMessage\", \"onDeleteMessage\", \"expired\"]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n : (_openBlock(), _createBlock(\"div\", _hoisted_7, [\n _createVNode(\"h1\", _hoisted_8, _toDisplayString(_ctx.$t(\"entrancePlant.noMessages\")), 1),\n (_ctx.tabSelected === _ctx.MessagesTab.active)\n ? (_openBlock(), _createBlock(\"span\", _hoisted_9, _toDisplayString(_ctx.$t(\"entrancePlant.hintNewMessage\")), 1))\n : _createCommentVNode(\"\", true)\n ])),\n _createVNode(_component_DialogAddEditMessage, {\n messageToEdit: _ctx.messageToEdit,\n isVisible: _ctx.isVisibleAddEditMessage,\n onHideDialog: _cache[3] || (_cache[3] = ($event: any) => (_ctx.toggleAddEditMessage())),\n onUpdateList: _ctx.handleUpdateList\n }, null, 8, [\"messageToEdit\", \"isVisible\", \"onUpdateList\"])\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"card__head d-flex align-items-center\" }\nconst _hoisted_2 = { class: \"d-flex align-items-center icon-text ml-2\" }\nconst _hoisted_3 = { class: \"bt-icon my-auto bt-icon--m\" }\nconst _hoisted_4 = { class: \"ml-3\" }\nconst _hoisted_5 = { class: \"mt-1 mb-0\" }\nconst _hoisted_6 = { class: \"my-0 text-gray\" }\nconst _hoisted_7 = { class: \"btn-stripped\" }\nconst _hoisted_8 = { class: \"btn-stripped text-danger\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_ElDropdownItem = _resolveComponent(\"ElDropdownItem\")\n const _component_ElDropdownMenu = _resolveComponent(\"ElDropdownMenu\")\n const _component_ElDropdown = _resolveComponent(\"ElDropdown\")\n const _component_Card = _resolveComponent(\"Card\")\n const _component_DialogConfirmDelete = _resolveComponent(\"DialogConfirmDelete\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(_component_Card, {\n class: [\"message-card card--slim\", {'message-expired': _ctx.expired}]\n }, {\n content: _withCtx(() => [\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"span\", _hoisted_3, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/entrancePlants/icon-message.svg`)\n ,\n \"aria-label\": \"icon-message\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"h6\", _hoisted_5, _toDisplayString(_ctx.message.title), 1),\n _createVNode(\"small\", _hoisted_6, _toDisplayString(_ctx.gates) + \": \" + _toDisplayString(_ctx.getValidTime()), 1)\n ])\n ]),\n (!_ctx.offline)\n ? (_openBlock(), _createBlock(_component_ElDropdown, {\n key: 0,\n class: \"ml-auto my-auto p-button-text\",\n trigger: \"click\",\n placement: \"bottom-end\",\n \"popper-class\": \"el-dropdown__popper el-dropdown--context\"\n }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_ElDropdownMenu, { style: {\"width\":\"300px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_ElDropdownItem, { onClick: _ctx.handleEditMessage }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_7, _toDisplayString(_ctx.$t(\"AppResource.Edit\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_ElDropdownItem, { onClick: _ctx.toggleDeleteMessageConfirm }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_8, _toDisplayString(_ctx.$t(\"AppResource.Delete\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_Button, {\n label: _ctx.$t('AppResource.More'),\n class: \"ml-auto p-button-text\"\n }, null, 8, [\"label\"])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }, 8, [\"class\"]),\n _createVNode(_component_DialogConfirmDelete, {\n \"is-visible\": _ctx.isVisibleDeleteMessageConfirm,\n title: _ctx.$t('AppResourceEP.GateMessageDeletionPopupTitle'),\n message: _ctx.$t('AppResourceEP.GateMessageDeletionPopupMessage'),\n onHideDialog: _ctx.toggleDeleteMessageConfirm,\n onConfirm: _ctx.handleDeleteMessage\n }, null, 8, [\"is-visible\", \"title\", \"message\", \"onHideDialog\", \"onConfirm\"])\n ], 64))\n}","import { PropType } from 'vue';\nimport { Options, Vue } from 'vue-class-component';\nimport { GateDTO, GateMessageDTO } from '@/../client-generator/generated-clients/plants';\nimport DialogConfirmDelete from '@/views/components/DialogConfirmDelete/DialogConfirmDelete.vue';\n\n@Options({\n name: 'messageItem',\n props: {\n message: {\n type: Object as PropType,\n required: true,\n },\n plantGates: {\n type: Array as PropType,\n required: true,\n },\n offline: {\n type: Boolean,\n required: false,\n default: false\n },\n expired: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n components: { DialogConfirmDelete },\n emits: ['edit-message', 'delete-message'],\n})\nexport default class MessageItem extends Vue {\n message!: GateMessageDTO;\n isVisibleDeleteMessageConfirm = false;\n offline!: boolean;\n plantGates!: GateDTO[];\n expired!: boolean;\n\n getValidTime() {\n const dateFrom = this.getParsedDate(this.message.durationSince!, 'date');\n const dateTo = this.getParsedDate(this.message.durationUntil!, 'date');\n const hourFrom = this.getParsedDate(this.message.durationSince!, 'time');\n const hourTo = this.getParsedDate(this.message.durationUntil!, 'time');\n return `${dateFrom} h ${hourFrom} - ${dateTo} h ${hourTo}`;\n }\n\n get gates() {\n const gates = this.plantGates.filter((gate) => this.message.gateIds!.includes(gate.gateId!));\n return gates.map((gate) => gate.name).join(', ').toLocaleUpperCase();\n }\n\n getParsedDate(date: Date, type: 'date' | 'time') {\n if (!date) return '-';\n const optionsDate: any = {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'Utc',\n };\n const optionsTime: any = {\n hour: '2-digit',\n minute: '2-digit',\n timeZone: 'Utc',\n };\n return date.toLocaleString(navigator.language, type === 'date' ? optionsDate : optionsTime);\n }\n\n handleEditMessage() {\n this.$emit('edit-message', this.message);\n }\n\n toggleDeleteMessageConfirm() {\n this.isVisibleDeleteMessageConfirm = !this.isVisibleDeleteMessageConfirm;\n }\n\n async handleDeleteMessage() {\n this.$emit('delete-message', this.message.id);\n }\n\n}\n","import { render } from \"./MessageItem.vue?vue&type=template&id=6e5d9200&ts=true\"\nimport script from \"./MessageItem.ts?vue&type=script&lang=ts\"\nexport * from \"./MessageItem.ts?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header mb-4 d-flex align-items-start\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"form-custom invalid-time\"\n}\nconst _hoisted_4 = { class: \"p-field-label text-danger\" }\nconst _hoisted_5 = { class: \"dialog-custom__content form-custom dialog-message\" }\nconst _hoisted_6 = { class: \"dialog-message__grid\" }\nconst _hoisted_7 = { class: \"p-field\" }\nconst _hoisted_8 = {\n class: \"p-field-label\",\n for: \"messagetitle\"\n}\nconst _hoisted_9 = { class: \"p-field\" }\nconst _hoisted_10 = {\n class: \"p-field-label mb-3\",\n for: \"messagetext\"\n}\nconst _hoisted_11 = { class: \"message-text\" }\nconst _hoisted_12 = { class: \"p-field-label char-remain-count\" }\nconst _hoisted_13 = { class: \"p-field mt-3\" }\nconst _hoisted_14 = { class: \"p-field-label\" }\nconst _hoisted_15 = { class: \"p-field mt-3\" }\nconst _hoisted_16 = { class: \"p-field-label\" }\nconst _hoisted_17 = { class: \"p-field\" }\nconst _hoisted_18 = { class: \"p-field-label mb-3\" }\nconst _hoisted_19 = { class: \"mb-3\" }\nconst _hoisted_20 = { class: \"dialog-custom__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_Textarea = _resolveComponent(\"Textarea\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_Calendar = _resolveComponent(\"Calendar\")\n const _component_HourPicker = _resolveComponent(\"HourPicker\")\n const _component_ListItemCheck = _resolveComponent(\"ListItemCheck\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[8] || (_cache[8] = ($event: any) => (_ctx.isDialogVisible = $event)),\n showHeader: false,\n modal: true,\n onHide: _ctx.doHideDialog,\n class: \"dialog-custom\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.dialogTitle), 1),\n (!_ctx.noOverlapping)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_3, [\n _createVNode(\"label\", _hoisted_4, _toDisplayString(_ctx.$t(\"AppResourceEP.GateMessageWarningPopupMessage\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(_component_ElScrollbar, { class: \"dialog-scroll\" }, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t(\"AppResourceEP.GateMessateTitleUpper\", \n [_ctx.titleMaxLength] )), 1),\n _createVNode(_component_InputText, {\n modelValue: _ctx.message.title,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.message.title = $event)),\n id: \"messagetitle\",\n type: \"text\",\n class: \"w-100\",\n maxlength: _ctx.titleMaxLength,\n validator: '/^(?!\\s).+(? (_ctx.message.text = $event)),\n class: \"message-text__area\",\n id: \"messagetext\",\n maxlength: _ctx.messageMaxLength\n }, null, 8, [\"modelValue\", \"maxlength\"]),\n _createVNode(\"label\", _hoisted_12, _toDisplayString(`${_ctx.remainingChars} ${_ctx.$t(\n \"AppResourceEP.HomepageMessageRemaingChar\"\n )}`), 1)\n ])\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_ElScrollbar, { class: \"dialog-scroll\" }, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_13, [\n _createVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t(\"AppResource.FromTime\")), 1),\n _createVNode(_component_Calendar, {\n class: \"w-50\",\n modelValue: _ctx.dateSince,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.dateSince = $event)),\n \"min-date\": _ctx.minDate,\n \"max-date\": _ctx.maxDate,\n dateFormat: \"dd MM yy\",\n manualInput: false,\n showIcon: \"\",\n icon: \"pi pi-chevron-down\"\n }, null, 8, [\"modelValue\", \"min-date\", \"max-date\"]),\n _createVNode(_component_HourPicker, {\n modelValue: _ctx.timeSince,\n \"onUpdate:modelValue\": [\n _cache[4] || (_cache[4] = ($event: any) => (_ctx.timeSince = $event)),\n _ctx.updateSince\n ],\n icon: \"pi pi-chevron-down\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]),\n _createVNode(\"div\", _hoisted_15, [\n _createVNode(\"label\", _hoisted_16, _toDisplayString(_ctx.$t(\"AppResource.ToTime\")), 1),\n _createVNode(_component_Calendar, {\n class: \"w-50\",\n modelValue: _ctx.dateUntil,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_ctx.dateUntil = $event)),\n dateFormat: \"dd MM yy\",\n showIcon: \"\",\n icon: \"pi pi-chevron-down\",\n manualInput: false,\n \"min-date\": _ctx.minDurationUntilDate,\n \"max-date\": _ctx.maxDate\n }, null, 8, [\"modelValue\", \"min-date\", \"max-date\"]),\n _createVNode(_component_HourPicker, {\n modelValue: _ctx.timeUntil,\n \"onUpdate:modelValue\": [\n _cache[6] || (_cache[6] = ($event: any) => (_ctx.timeUntil = $event)),\n _ctx.updateUntil\n ],\n icon: \"pi pi-chevron-down\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]),\n _createVNode(\"div\", _hoisted_17, [\n _createVNode(\"label\", _hoisted_18, _toDisplayString(_ctx.$t(\"AppResourceEP.SelectGateMessage\")), 1),\n _createVNode(\"div\", _hoisted_19, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.gates, (g, gateIdx) => {\n return (_openBlock(), _createBlock(_component_ListItemCheck, {\n key: g.gateId,\n modelValue: _ctx.message.gateIds,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => (_ctx.message.gateIds = $event)),\n label: g.name,\n value: g.gateId,\n name: \"specificGate\",\n inputId: 'specificg' + gateIdx,\n last: \n gateIdx ==\n _ctx.currentEntrancePlantGatesCount - 1\n \n }, null, 8, [\"modelValue\", \"label\", \"value\", \"inputId\", \"last\"]))\n }), 128))\n ])\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(\"footer\", _hoisted_20, [\n _createVNode(_component_Button, {\n class: \"p-button-text mr-2\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Cancel\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n label: \n _ctx.isEdit ? _ctx.$t('AppResource.Save') : _ctx.$t('AppResource.Create')\n ,\n onClick: _ctx.handleButtonSubmitAction,\n class: \"p-button-rounded p-button-raised p-button--m\",\n disabled: _ctx.saveButtonDisabled\n }, null, 8, [\"label\", \"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Options, Vue } from 'vue-class-component';\nimport { mapState } from 'vuex';\nimport {\n EntrancePlantDetailDTO,\n EPDeviceTypeEnum,\n GateMessageDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { SET_APP_LOADING } from '@/core/store/action-types';\nimport plantsClient from '@/core/services/plants';\nimport { PropType } from 'vue';\nimport HourPicker from '@/views/components/HourPicker/HourPicker.vue';\n\n@Options({\n name: 'DialogAddEditMessage',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n messageToEdit: {\n type: Object as PropType,\n required: false,\n },\n },\n computed: {\n ...mapState(['currentEntrancePlant']),\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n if (this.isDialogVisible) {\n this.initMessage();\n }\n },\n 'dateSince': function () {\n this.checkIfValidTime();\n this.checkIfAnotherMessageExists();\n },\n 'dateUntil': function () {\n this.checkIfValidTime();\n this.checkIfAnotherMessageExists();\n },\n 'message.gateIds': {\n deep: true,\n handler() {\n this.checkIfValidTime();\n this.checkIfAnotherMessageExists();\n }\n },\n },\n components: {HourPicker},\n emits: ['hide-dialog', 'update-list'],\n})\nexport default class DialogAddEditMessage extends Vue {\n messageToEdit!: GateMessageDTO;\n currentEntrancePlant!: EntrancePlantDetailDTO;\n\n message: GateMessageDTO = new GateMessageDTO();\n readonly titleMaxLength = 20;\n readonly messageMaxLength = 225;\n isVisible!: boolean;\n isDialogVisible = false;\n isEdit = false;\n noOverlapping = false;\n validTime = true;\n\n dateSince = new Date();\n dateUntil = new Date();\n\n timeSince = 0;\n timeUntil = 0;\n\n get dialogTitle() {\n return this.isEdit\n ? this.$t('AppResourceEP.EditGateMessage')\n : this.$t('AppResourceEP.NewGateMessage');\n }\n\n get currentEntrancePlantGatesCount() {\n return this.gates?.length ?? 0;\n }\n\n get remainingChars() {\n if (!this.message.text) return this.messageMaxLength;\n return this.messageMaxLength - this.message.text.length;\n }\n\n get gates() {\n return this.currentEntrancePlant.gates?.filter((gate) => gate.devices?.some(\n (device) => device.type === EPDeviceTypeEnum.Linea5000\n ))\n }\n\n get today() { \n return new Date();\n }\n\n get minDate() {\n return this.today;\n }\n\n get maxDate() {\n const nextYear = new Date(this.minDate);\n nextYear.setUTCFullYear(this.minDate.getUTCFullYear() + 1);\n return nextYear;\n }\n\n get startDate() {\n const startDate = new Date();\n startDate.setUTCHours(0, 0);\n return startDate;\n }\n\n get endDate() {\n const nextMonth = new Date(this.today);\n nextMonth.setUTCMonth(this.today.getUTCMonth() + 1);\n nextMonth.setUTCHours(0, 0);\n return nextMonth;\n }\n\n get minDurationUntilDate() {\n const nextDay = new Date(this.dateSince!);\n return nextDay;\n }\n\n checkIfAnotherMessageExists() {\n this.noOverlapping = !this.selectedDurationHasOverlappings();\n }\n\n checkIfValidTime() {\n const today = this.createDate(this.today, this.today.getHours());\n const dateToSinceCheck = this.createDate(this.dateSince, this.timeSince);\n const dateToUntilCheck = this.createDate(this.dateUntil, this.timeUntil);\n this.validTime = dateToUntilCheck > today && dateToSinceCheck < dateToUntilCheck;\n }\n\n selectedDurationHasOverlappings() {\n const dateToSinceCheck = this.createDate(this.dateSince, this.timeSince);\n const dateToUntilCheck = this.createDate(this.dateUntil, this.timeUntil);\n for (let gateId of this.message.gateIds ?? []) {\n const existingMessagesForGate = this.currentEntrancePlant.gateMessages!.filter(\n (message) =>\n message.gateIds!.includes(gateId) &&\n message.id !== this.message.id\n );\n if (!existingMessagesForGate.every(m => (m.durationSince! >= dateToUntilCheck && m.durationUntil! >= dateToUntilCheck)\n || (m.durationSince! <= dateToSinceCheck && m.durationUntil! <= dateToSinceCheck)))\n return true;\n }\n return false;\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n initMessage() {\n if (this.messageToEdit) {\n this.isEdit = true;\n this.message = new GateMessageDTO(this.messageToEdit);\n } else {\n this.isEdit = false;\n this.message = new GateMessageDTO({\n title: '',\n text: '',\n durationSince: new Date(this.startDate),\n durationUntil: new Date(this.endDate),\n gateIds: [],\n });\n }\n this.timeSince = this.message.durationSince!.getUTCHours() \n this.timeUntil = this.message.durationUntil!.getUTCHours()\n // take only date part without being affected by timezone\n this.dateSince = new Date(this.message.durationSince!.toISOString().split('Z')[0]) \n this.dateUntil = new Date(this.message.durationUntil!.toISOString().split('Z')[0])\n }\n\n async handleButtonSubmitAction() {\n this.isDialogVisible = false;\n\n await this.saveGateMessage();\n\n this.$emit('update-list');\n }\n\n async saveGateMessage() {\n if (this.currentEntrancePlant.desktopId === undefined) return;\n this.$store.dispatch(SET_APP_LOADING, true);\n try {\n this.message.durationSince = this.createDate(this.dateSince, this.timeSince);\n this.message.durationUntil = this.createDate(this.dateUntil, this.timeUntil);\n if(this.message.durationSince!.getTime() > this.message.durationUntil!.getTime()) {\n throw new Error('Invalid time range');\n }\n\n if (this.isEdit) {\n await plantsClient.gatemessagePUT(\n this.currentEntrancePlant.desktopId,\n this.message\n );\n } else {\n await plantsClient.gatemessagePOST(\n this.currentEntrancePlant.desktopId,\n this.message\n );\n }\n\n this.$toast.add({\n severity: 'success',\n summary: this.isEdit \n ? this.$t('entrancePlant.gateMessageEdited') \n : this.$t('AppResourceEP.GateMessageBannerCreated'),\n closable: false,\n life: 3000,\n });\n } catch (error) {\n console.log(error);\n setTimeout(() => {\n this.$toast.add({\n severity: 'error',\n summary: 'Error',\n closable: false,\n life: 3000,\n });\n }, 1500);\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n createDate(date: Date, hours: number) {\n const newDate = new Date();\n newDate.setUTCFullYear(date.getFullYear());\n newDate.setUTCMonth(date.getMonth());\n newDate.setUTCDate(date.getDate());\n newDate.setUTCHours(hours, 0, 0, 0);\n return newDate;\n }\n\n get saveButtonDisabled() {\n const badTitle = !this.message.title || this.message.title.trim().length === 0;\n const badText = !this.message.text || this.message.text?.trim().length === 0;\n const badTime = !this.validTime;\n const overlap = !this.noOverlapping;\n const badGates = this.message.gateIds?.length === 0;\n return badTitle || badText || badTime || badGates || overlap;\n }\n\n updateUntil(value: number) {\n this.timeUntil = value;\n this.checkIfValidTime();\n this.checkIfAnotherMessageExists();\n }\n\n updateSince(value: number) {\n this.timeSince = value;\n if(this.timeSince > this.timeUntil) {\n this.timeUntil = this.timeSince +1;\n }\n this.checkIfValidTime();\n this.checkIfAnotherMessageExists();\n }\n}\n","import { render } from \"./DialogAddEditMessage.vue?vue&type=template&id=7a3b3e32&ts=true\"\nimport script from \"./DialogAddEditMessage.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogAddEditMessage.ts?vue&type=script&lang=ts\"\n\nimport \"./DialogAddEditMessage.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\n EntrancePlantDetailDTO,\n EPDeviceTypeEnum,\n GateMessageDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { mapState } from 'vuex';\nimport { Options, Vue } from 'vue-class-component';\nimport MessageItem from './MessageItem/MessageItem.vue';\nimport DialogAddEditMessage from './DialogAddEditMessage/DialogAddEditMessage.vue';\nimport plantsClient from '@/core/services/plants';\nimport { SET_APP_LOADING } from '@/core/store/action-types';\n\nenum MessageTab {\n active = 'active',\n expired = 'expired',\n}\n\n@Options({\n name: 'EntrancePlantMessages',\n computed: {\n ...mapState(['currentEntrancePlant', 'offlinePlant']),\n },\n components: { DialogAddEditMessage, MessageItem },\n emits: ['update-list'],\n})\nexport default class EntrancePlantMessages extends Vue {\n MessagesTab = MessageTab;\n currentEntrancePlant!: EntrancePlantDetailDTO;\n offlinePlant!: boolean;\n tabSelected: MessageTab = MessageTab.active;\n isVisibleAddEditMessage = false;\n messageToEdit: GateMessageDTO | null = null;\n\n async mounted() {}\n\n get backLink() {\n return {\n name: 'page-entranceplant-dashboard',\n params: this.$route.params,\n };\n }\n\n get messages() {\n return this.currentEntrancePlant.gateMessages;\n }\n\n get messagesList() {\n let messagesFilteredList: GateMessageDTO[] = [];\n const today = new Date();\n\n if (this.messages) {\n switch (this.tabSelected) {\n case MessageTab.active:\n messagesFilteredList = this.messages.filter(\n (message) =>\n !message.durationUntil ||\n this.dateAdjust(message.durationUntil).getTime() >= today.getTime()\n );\n break;\n\n case MessageTab.expired:\n messagesFilteredList = this.messages.filter(\n (message) =>\n message.durationUntil &&\n this.dateAdjust(message.durationUntil).getTime() < today.getTime()\n );\n break;\n }\n }\n\n return messagesFilteredList;\n }\n\n get gatesWithPE() {\n return this.currentEntrancePlant.gates?.filter((gate) => gate.devices?.some(\n (device) => device.type === EPDeviceTypeEnum.Linea5000\n ))\n }\n\n handleTabClick(event: { index: number }) {\n this.setSelectionCriteria(\n event.index === 0 ? MessageTab.active : MessageTab.expired\n );\n }\n\n setSelectionCriteria(selectionCriteria: MessageTab) {\n this.tabSelected = selectionCriteria;\n }\n\n toggleAddEditMessage(messageToEdit?: GateMessageDTO) {\n this.messageToEdit = messageToEdit ?? null;\n this.isVisibleAddEditMessage = !this.isVisibleAddEditMessage;\n }\n\n handleUpdateList() {\n this.$emit('update-list');\n }\n\n dateAdjust(date: Date) {\n return new Date(date.toISOString().split('Z')[0])\n }\n\n async handleDeleteMessage(messageId: string) {\n this.$store.dispatch(SET_APP_LOADING, true);\n try {\n await plantsClient.gatemessageDELETE(\n this.currentEntrancePlant.desktopId as number,\n messageId\n );\n\n this.$emit('update-list');\n setTimeout(() => {\n this.$toast.add({\n severity: 'success',\n summary: this.$t('AppResourceEP.GateMessageBannerDeleted'),\n closable: false,\n life: 3000,\n });\n }, 1500);\n } catch {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 3000,\n });\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n}\n","import { render } from \"./EntrancePlantMessages.vue?vue&type=template&id=1ed00361&ts=true\"\nimport script from \"./EntrancePlantMessages.ts?vue&type=script&lang=ts\"\nexport * from \"./EntrancePlantMessages.ts?vue&type=script&lang=ts\"\n\nimport \"./EntrancePlantMessages.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"sourceRoot":""}