Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/calendar/rooms/dist/ |
Upload File : |
{"version":3,"file":"rooms.bundle.js","sources":["../src/reservebutton.js","../../sectioninterface/src/editform.js","../src/editformroom.js","../src/editformcategory.js","../src/roomsinterface.js"],"sourcesContent":["import { Type, Dom, Loc } from 'main.core';\nimport { AddButton } from 'calendar.controls';\n\nexport class ReserveButton extends AddButton\n{\n\tconstructor(params = {})\n\t{\n\t\tsuper(params);\n\t\tthis.setEventNamespace('BX.Calendar.Rooms.ReserveButton');\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.popupId = params.id || 'add-button-' + Math.round(Math.random() * 10000);\n\t\tthis.showTasks = params.showTasks;\n\n\t\tthis.addEntryHandler = Type.isFunction(params.addEntry) ? params.addEntry : null;\n\t\tthis.addTaskHandler = Type.isFunction(params.addTask) ? params.addTask : null;\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tthis.DOM.wrap = Dom.create('button', {\n\t\t\tprops: { className: 'ui-btn ui-btn-success', type: 'button' },\n\t\t\thtml: Loc.getMessage('EC_RESERVE'),\n\t\t\tevents: { click: this.addEntry.bind(this) }\n\t\t});\n\t}\n}","import { Runtime, Dom, Event, Loc, Text, Type, Tag } from 'main.core';\nimport { Util } from 'calendar.util';\nimport {EventEmitter} from 'main.core.events';\nimport {Dialog as EntitySelectorDialog} from 'ui.entity-selector';\n\n\nexport class EditForm extends EventEmitter\n{\n\tDOM = {};\n\tisCreated = false;\n\n\tconstructor(options = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.SectionInterface.EditForm');\n\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.sectionAccessTasks = options.sectionAccessTasks;\n\t\tthis.sectionManager = options.sectionManager;\n\t\tthis.closeCallback = options.closeCallback;\n\t\tthis.BX = Util.getBX();\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.section = params.section;\n\t\tthis.create();\n\t\tthis.showAccess = params.showAccess !== false;\n\t\tthis.allowChangeName = params.allowChangeName !== false;\n\t\tif (this.showAccess)\n\t\t{\n\t\t\tthis.DOM.accessLink.style.display = '';\n\t\t\tthis.DOM.accessWrap.style.display = '';\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.accessLink.style.display = 'none';\n\t\t\tthis.DOM.accessWrap.style.display = 'none';\n\t\t}\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\n\t\tif (params.section)\n\t\t{\n\t\t\tif (params.section.color)\n\t\t\t{\n\t\t\t\tthis.setColor(params.section.color);\n\t\t\t}\n\n\t\t\tthis.setAccess(params.section.access || params.section.data.ACCESS || {});\n\n\t\t\tif (params.section.name)\n\t\t\t{\n\t\t\t\tthis.DOM.sectionTitleInput.value = params.section.name;\n\t\t\t}\n\t\t}\n\n\t\tif (this.allowChangeName)\n\t\t{\n\t\t\tBX.focus(this.DOM.sectionTitleInput);\n\t\t\tif (this.DOM.sectionTitleInput.value !== '')\n\t\t\t{\n\t\t\t\tthis.DOM.sectionTitleInput.select();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.DOM.sectionTitleInput, '--disabled');\n\t\t\tthis.DOM.sectionTitleInput.disabled = true;\n\t\t}\n\n\t\tthis.isOpenedState = true;\n\t}\n\n\tclose()\n\t{\n\t\tthis.isOpenedState = false;\n\t\tEvent.unbind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.removeClass(this.DOM.outerWrap, 'show');\n\n\t\tif (Type.isFunction(this.closeCallback))\n\t\t{\n\t\t\tthis.closeCallback();\n\t\t}\n\t}\n\n\tisOpened()\n\t{\n\t\treturn this.isOpenedState;\n\t}\n\n\tcreate()\n\t{\n\t\tthis.wrap = this.DOM.outerWrap.querySelector('.calendar-form-content');\n\n\t\tif (this.wrap)\n\t\t{\n\t\t\tDom.clean(this.wrap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.wrap = this.DOM.outerWrap.appendChild(Dom.create('DIV', {props: {className: 'calendar-form-content'}}));\n\t\t}\n\n\t\tthis.DOM.formFieldsWrap = this.wrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-list-slider-widget-content'}\n\t\t\t\t}\n\t\t\t)\n\t\t)\n\t\t\t.appendChild(\n\t\t\t\tDom.create(\n\t\t\t\t\t'DIV',\n\t\t\t\t\t{\n\t\t\t\t\t\tprops: {className: 'calendar-list-slider-widget-content-block'}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t);\n\n\t\t// Title\n\t\tthis.DOM.sectionTitleInput = this.DOM.formFieldsWrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-field-container calendar-field-container-string'}\n\t\t\t\t}\n\t\t\t)\n\t\t)\n\t\t\t.appendChild(Dom.create('DIV', {props: {className: 'calendar-field-block'}}))\n\t\t\t.appendChild(Dom.create('INPUT', {\n\t\t\t\tattrs: {type: 'text', placeholder: Loc.getMessage('EC_SEC_SLIDER_SECTION_TITLE')},\n\t\t\t\tprops: {className: 'calendar-field calendar-field-string'}\n\t\t\t}));\n\n\t\tthis.DOM.optionsWrap = this.DOM.formFieldsWrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-list-slider-new-calendar-options-container'}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\tthis.initSectionColorSelector();\n\n\t\tthis.initAccessController();\n\n\t\t// Buttons\n\t\tthis.buttonsWrap = this.DOM.formFieldsWrap.appendChild(Dom.create('DIV', {props: {className: 'calendar-list-slider-btn-container'}}));\n\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: {click: this.save.bind(this)}\n\t\t});\n\t\tthis.saveBtn.renderTo(this.buttonsWrap);\n\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\tevents: {click: this.checkClose.bind(this)}\n\t\t}).renderTo(this.buttonsWrap);\n\n\t\tthis.isCreated = true;\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif(e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.checkClose();\n\t\t}\n\t\telse if(e.keyCode === Util.getKeyCode('enter'))\n\t\t{\n\t\t\tthis.save();\n\t\t}\n\t}\n\n\tcheckClose()\n\t{\n\t\tthis.close();\n\t}\n\n\tsave()\n\t{\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.sectionManager.saveSection(\n\t\t\tthis.DOM.sectionTitleInput.value,\n\t\t\tthis.color,\n\t\t\tthis.access,\n\t\t\t{section: this.section}\n\t\t)\n\t\t\t.then(() => {\n\t\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\t\tthis.close();\n\t\t\t});\n\t}\n\n\tinitSectionColorSelector()\n\t{\n\t\tthis.DOM.colorContWrap = this.DOM.optionsWrap.appendChild(Dom.create('DIV', {\n\t\t\tprops: { className: 'calendar-list-slider-new-calendar-option-color' },\n\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_COLOR')\n\t\t}));\n\t\tthis.colorIcon = this.DOM.colorContWrap.appendChild(Dom.create('SPAN', {\n\t\t\tprops: { className: 'calendar-list-slider-new-calendar-option-color-selected' }\n\t\t}));\n\t\tthis.colorChangeLink = this.DOM.colorContWrap.appendChild(Dom.create('SPAN', {\n\t\t\tprops: { className: 'calendar-list-slider-new-calendar-option-color-change' },\n\t\t\thtml: Loc.getMessage('EC_SEC_SLIDER_CHANGE')\n\t\t}));\n\n\t\tEvent.bind(this.colorIcon, 'click', this.showSimplePicker.bind(this));\n\t\tEvent.bind(this.colorChangeLink, 'click', this.showSimplePicker.bind(this));\n\t}\n\n\tshowSimplePicker(value)\n\t{\n\t\tconst colors = Runtime.clone(Util.getDefaultColorList(), true);\n\t\tconst innerCont = Dom.create(\n\t\t\t'DIV',\n\t\t\t{\n\t\t\t\tprops: {className: 'calendar-simple-color-wrap calendar-field-container-colorpicker-square'}\n\t\t\t}\n\t\t);\n\t\tconst colorWrap = innerCont.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\t\tevents: {click: BX.delegate(this.simplePickerClick, this)}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\tconst moreLinkWrap = innerCont.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'DIV',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-simple-color-more-link-wrap'}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\tconst moreLink = moreLinkWrap.appendChild(\n\t\t\tDom.create(\n\t\t\t\t'SPAN',\n\t\t\t\t{\n\t\t\t\t\tprops: {className: 'calendar-simple-color-more-link'},\n\t\t\t\t\thtml: Loc.getMessage('EC_COLOR'),\n\t\t\t\t\tevents: {click: BX.delegate(this.showFullPicker, this)}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\tthis.simplePickerColorWrap = colorWrap;\n\t\tthis.colors = [];\n\n\t\tif (!colors.includes(this.color))\n\t\t{\n\t\t\tcolors.push(this.color);\n\t\t}\n\n\t\tfor (let i = 0; i < colors.length; i++)\n\t\t{\n\t\t\tthis.colors.push({\n\t\t\t\tcolor: colors[i],\n\t\t\t\tnode: colorWrap.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-field-colorpicker-color-item'},\n\t\t\t\t\tstyle: {backgroundColor: colors[i]},\n\t\t\t\t\tattrs: {'data-bx-calendar-color': colors[i]},\n\t\t\t\t\thtml: '<span class=\"calendar-field-colorpicker-color\"></span>'\n\t\t\t\t}))\n\t\t\t});\n\t\t}\n\n\t\tthis.lastActiveNode = this.colors[BX.util.array_search(this.color, colors) || 0].node;\n\t\tDom.addClass(this.lastActiveNode, 'active');\n\n\t\tthis.simpleColorPopup = BX.PopupWindowManager.create(\n\t\t\t\"simple-color-popup-\" + Util.getRandomInt(),\n\t\t\tthis.colorIcon,\n\t\t\t{\n\t\t\t\t//zIndex: this.zIndex,\n\t\t\t\tautoHide: true,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\toffsetTop: 0,\n\t\t\t\toffsetLeft: 9,\n\t\t\t\tlightShadow: true,\n\t\t\t\tcontent: innerCont,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.simpleColorPopup.setAngle({offset: 10});\n\t\tthis.simpleColorPopup.show(true);\n\t}\n\n\tsimplePickerClick(e)\n\t{\n\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\t\tif (Type.isElementNode(target))\n\t\t{\n\t\t\tconst value = target.getAttribute('data-bx-calendar-color');\n\t\t\tif(value !== null)\n\t\t\t{\n\t\t\t\tif (this.lastActiveNode)\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(this.lastActiveNode, 'active');\n\t\t\t\t}\n\n\t\t\t\tDom.addClass(target, 'active');\n\t\t\t\tthis.lastActiveNode = target;\n\t\t\t\tthis.setColor(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tshowFullPicker()\n\t{\n\t\tif (this.simpleColorPopup)\n\t\t{\n\t\t\tthis.simpleColorPopup.close();\n\t\t}\n\n\t\tif (!this.fullColorPicker || this.fullColorPicker.getPopupWindow()?.isDestroyed())\n\t\t{\n\t\t\tthis.fullColorPicker = new BX.ColorPicker({\n\t\t\t\tbindElement: this.DOM.colorContWrap,\n\t\t\t\tonColorSelected: BX.delegate(function(color){\n\t\t\t\t\tthis.setColor(color);\n\t\t\t\t}, this),\n\t\t\t\tpopupOptions: {\n\t\t\t\t\tcacheable: false,\n\t\t\t\t\tzIndex: this.zIndex,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupClose:BX.delegate(function(){\n\t\t\t\t\t\t}, this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.fullColorPicker.open();\n\t}\n\n\tsetColor(value)\n\t{\n\t\tthis.colorIcon.style.backgroundColor = value;\n\t\tthis.color = value;\n\t}\n\n\tsetAccess(value)\n\t{\n\t\tlet rowsCount = 0;\n\t\tfor (let code in value)\n\t\t{\n\t\t\tif (value.hasOwnProperty(code))\n\t\t\t{\n\t\t\t\trowsCount++;\n\t\t\t}\n\t\t}\n\t\tthis.accessRowsCount = rowsCount;\n\t\tthis.access = value;\n\n\t\tfor (let code in value)\n\t\t{\n\t\t\tif (value.hasOwnProperty(code))\n\t\t\t{\n\t\t\t\tthis.insertAccessRow(Util.getAccessName(code), code, value[code]);\n\t\t\t}\n\t\t}\n\t\tthis.checkAccessTableHeight();\n\t}\n\n\tinitAccessController()\n\t{\n\t\tthis.buildAccessController();\n\t\tif (this.sectionManager && this.sectionManager.calendarType === 'group')\n\t\t{\n\t\t\tthis.initDialogGroup();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.initDialogStandard();\n\t\t}\n\t\tthis.initAccessSelectorPopup();\n\t}\n\n\tinitAccessSelectorPopup()\n\t{\n\t\tEvent.bind(this.DOM.accessWrap, 'click', (e) => {\n\t\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\t\t\tif (Type.isElementNode(target))\n\t\t\t{\n\t\t\t\tif (target.getAttribute('data-bx-calendar-access-selector') !== null)\n\t\t\t\t{\n\t\t\t\t\t// show selector\n\t\t\t\t\tconst code = target.getAttribute('data-bx-calendar-access-selector');\n\t\t\t\t\tif (this.accessControls[code])\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showAccessSelectorPopup({\n\t\t\t\t\t\t\t\tnode: this.accessControls[code].removeIcon,\n\t\t\t\t\t\t\t\tsetValueCallback: (value) => {\n\t\t\t\t\t\t\t\t\tif (this.accessTasks[value] && this.accessControls[code])\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tthis.accessControls[code].valueNode.innerHTML =\n\t\t\t\t\t\t\t\t\t\t\tText.encode(this.accessTasks[value].title);\n\t\t\t\t\t\t\t\t\t\tthis.access[code] = value;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (target.getAttribute('data-bx-calendar-access-remove') !== null)\n\t\t\t\t{\n\t\t\t\t\tconst code = target.getAttribute('data-bx-calendar-access-remove');\n\t\t\t\t\tif (this.accessControls[code])\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.remove(this.accessControls[code].rowNode);\n\t\t\t\t\t\tthis.accessControls[code] = null;\n\t\t\t\t\t\tdelete this.access[code];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tbuildAccessController()\n\t{\n\t\tthis.DOM.accessLink = this.DOM.optionsWrap.appendChild(\n\t\t\tTag.render`<div class=\"calendar-list-slider-new-calendar-option-more\">${Loc.getMessage('EC_SEC_SLIDER_ACCESS')}</div>`,\n\t\t);\n\n\t\tthis.DOM.accessWrap = this.DOM.formFieldsWrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-access-container\">\n\t\t\t\t\t<div class=\"calendar-list-slider-access-inner-wrap\">\n\t\t\t\t\t\t${this.DOM.accessTable = Tag.render`\n\t\t\t\t\t\t\t<table class=\"calendar-section-slider-access-table\"></table>\n\t\t\t\t\t\t`}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"calendar-list-slider-new-calendar-options-container\">\n\t\t\t\t\t\t${this.DOM.accessButton = Tag.render`\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-new-calendar-option-add\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ACCESS_ADD')}\n\t\t\t\t\t\t\t</span>`\n\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>`,\n\t\t);\n\n\t\tthis.accessControls = {};\n\t\tthis.accessTasks = this.sectionAccessTasks;\n\n\t\tEvent.bind(this.DOM.accessLink, 'click', () => {\n\t\t\tif (Dom.hasClass(this.DOM.accessWrap, 'shown'))\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.accessWrap, 'shown');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.accessWrap, 'shown');\n\t\t\t}\n\t\t\tthis.checkAccessTableHeight();\n\t\t});\n\t}\n\n\tinitDialogStandard()\n\t{\n\t\tEvent.bind(this.DOM.accessButton, 'click', () => {\n\t\t\tconst entities = [\n\t\t\t\t{\n\t\t\t\t\tid: 'user',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tanalyticsSource: 'calendar',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'department',\n\t\t\t\t\toptions: { selectMode: 'usersAndDepartments' },\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'meta-user',\n\t\t\t\t\toptions: { 'all-users': true },\n\t\t\t\t},\n\t\t\t];\n\n\t\t\tif (Util.isProjectFeatureEnabled())\n\t\t\t{\n\t\t\t\tentities.push({\n\t\t\t\t\tid: 'project',\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.entitySelectorDialog = new EntitySelectorDialog({\n\t\t\t\ttargetNode: this.DOM.accessButton,\n\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\tpreselectedItems: [],\n\t\t\t\tenableSearch: true,\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t\t'Item:onDeselect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t},\n\t\t\t\tpopupOptions: {\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t},\n\t\t\t\tentities,\n\t\t\t});\n\t\t\tthis.entitySelectorDialog.show();\n\t\t});\n\t}\n\n\tinitDialogGroup()\n\t{\n\t\tEvent.bind(this.DOM.accessButton, 'click', () => {\n\t\t\tthis.entitySelectorDialog = new EntitySelectorDialog({\n\t\t\t\ttargetNode: this.DOM.accessButton,\n\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\tpreselectedItems: [],\n\t\t\t\tenableSearch: true,\n\t\t\t\tevents: {\n\t\t\t\t\t'Item:onSelect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t\t'Item:onDeselect': this.handleEntitySelectorChanges.bind(this),\n\t\t\t\t},\n\t\t\t\tpopupOptions: {\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t},\n\t\t\t\tentities: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'user',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tanalyticsSource: 'calendar',\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'department',\n\t\t\t\t\t\toptions: { selectMode: 'usersAndDepartments' },\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'meta-user',\n\t\t\t\t\t\toptions: { 'all-users': true },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'groupAccess',\n\t\t\t\t\t\ttitle: this.sectionManager.ownerName,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'SG' + this.sectionManager.ownerId + '_' + 'A',\n\t\t\t\t\t\tentityId: 'group',\n\t\t\t\t\t\ttabs: 'groupAccess',\n\t\t\t\t\t\ttitle: Loc.getMessage('EC_ACCESS_GROUP_ADMIN'),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'SG' + this.sectionManager.ownerId + '_' + 'E',\n\t\t\t\t\t\tentityId: 'group',\n\t\t\t\t\t\ttabs: 'groupAccess',\n\t\t\t\t\t\ttitle: Loc.getMessage('EC_ACCESS_GROUP_MODERATORS'),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'SG' + this.sectionManager.ownerId + '_' + 'K',\n\t\t\t\t\t\tentityId: 'group',\n\t\t\t\t\t\ttabs: 'groupAccess',\n\t\t\t\t\t\ttitle: Loc.getMessage('EC_ACCESS_GROUP_MEMBERS'),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tthis.entitySelectorDialog.show();\n\t\t});\n\t}\n\n\thandleEntitySelectorChanges()\n\t{\n\t\tconst entityList = this.entitySelectorDialog.getSelectedItems();\n\t\tthis.entitySelectorDialog.hide();\n\t\tif (Type.isArray(entityList))\n\t\t{\n\t\t\tentityList.forEach((entity) => {\n\t\t\t\tlet title;\n\t\t\t\tif (entity.entityId === 'group')\n\t\t\t\t{\n\t\t\t\t\ttitle = this.sectionManager.ownerName + ': ' + entity.title.text;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttitle = entity.title.text;\n\t\t\t\t}\n\t\t\t\tconst code = Util.convertEntityToAccessCode(entity);\n\t\t\t\tUtil.setAccessName(code, title);\n\t\t\t\tthis.insertAccessRow(title, code);\n\t\t\t});\n\t\t}\n\n\t\tRuntime.debounce(() => {\n\t\t\tthis.entitySelectorDialog.destroy();\n\t\t}, 400)();\n\t}\n\n\t// todo: refactor it\n\tinsertAccessRow(title, code, value)\n\t{\n\t\tif (!this.accessControls[code])\n\t\t{\n\t\t\tif (value === undefined)\n\t\t\t{\n\t\t\t\tfor(let taskId in this.sectionAccessTasks)\n\t\t\t\t{\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.sectionAccessTasks.hasOwnProperty(taskId)\n\t\t\t\t\t\t&& this.sectionAccessTasks[taskId].name === 'calendar_view'\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = taskId;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst\n\t\t\t\trowNode = Dom.adjust(this.DOM.accessTable.insertRow(-1), {props : {className: 'calendar-section-slider-access-table-row'}}),\n\t\t\t\ttitleNode = Dom.adjust(rowNode.insertCell(-1), {\n\t\t\t\t\tprops : {className: 'calendar-section-slider-access-table-cell'},\n\t\t\t\t\thtml: '<span class=\"calendar-section-slider-access-title\">' + Text.encode(title) + ':</span>'}),\n\t\t\t\tvalueCell = Dom.adjust(rowNode.insertCell(-1), {\n\t\t\t\t\tprops : {className: 'calendar-section-slider-access-table-cell'},\n\t\t\t\t\tattrs: {'data-bx-calendar-access-selector': code}\n\t\t\t\t}),\n\t\t\t\tselectNode = valueCell.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-section-slider-access-container'}\n\t\t\t\t})),\n\t\t\t\tvalueNode = selectNode.appendChild(Dom.create('SPAN', {\n\t\t\t\t\ttext: this.accessTasks[value] ? this.accessTasks[value].title : '',\n\t\t\t\t\tprops: {className: 'calendar-section-slider-access-value'}\n\t\t\t\t})),\n\t\t\t\tremoveIcon = selectNode.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-section-slider-access-remove'},\n\t\t\t\t\tattrs: {'data-bx-calendar-access-remove': code}\n\t\t\t\t}));\n\n\t\t\tthis.access[code] = value;\n\n\t\t\tthis.accessControls[code] = {\n\t\t\t\trowNode: rowNode,\n\t\t\t\ttitleNode: titleNode,\n\t\t\t\tvalueNode: valueNode,\n\t\t\t\tremoveIcon: removeIcon\n\t\t\t};\n\t\t}\n\t}\n\n\tcheckAccessTableHeight()\n\t{\n\t\tif (this.checkTableTimeout)\n\t\t{\n\t\t\tthis.checkTableTimeout = clearTimeout(this.checkTableTimeout);\n\t\t}\n\n\t\tthis.checkTableTimeout = setTimeout(() => {\n\t\t\tif (Dom.hasClass(this.DOM.accessWrap, 'shown'))\n\t\t\t{\n\t\t\t\tif (this.DOM.accessWrap.offsetHeight - this.DOM.accessTable.offsetHeight < 36)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.accessWrap.style.maxHeight = parseInt(this.DOM.accessTable.offsetHeight) + 100 + 'px';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.DOM.accessWrap.style.maxHeight = '';\n\t\t\t}\n\t\t}, 300);\n\t}\n\n\tshowAccessSelectorPopup(params)\n\t{\n\t\tif (\n\t\t\tthis.accessPopupMenu\n\t\t\t&& this.accessPopupMenu.popupWindow\n\t\t\t&& this.accessPopupMenu.popupWindow.isShown()\n\t\t)\n\t\t{\n\t\t\treturn this.accessPopupMenu.close();\n\t\t}\n\n\t\tconst _this = this;\n\t\tconst menuItems = [];\n\n\t\tfor(let taskId in this.accessTasks)\n\t\t{\n\t\t\tif (this.accessTasks.hasOwnProperty(taskId))\n\t\t\t{\n\t\t\t\tmenuItems.push(\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: this.accessTasks[taskId].title,\n\t\t\t\t\t\tonclick: (function (value)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn function ()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tparams.setValueCallback(value);\n\t\t\t\t\t\t\t\t_this.accessPopupMenu.close();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})(taskId)\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.accessPopupMenu = this.BX.PopupMenu.create(\n\t\t\t'section-access-popup' + Util.randomInt(),\n\t\t\tparams.node,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : true,\n\t\t\t\toffsetTop: -5,\n\t\t\t\toffsetLeft: 0,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.accessPopupMenu.show();\n\n\t}\n}\n\n\n\n\n\n\n\n\n","import { Tag, Dom, Loc, Event} from 'main.core';\nimport { EditForm } from '../../sectioninterface/src/editform';\nimport { Util } from 'calendar.util';\nimport { TagSelector } from 'ui.entity-selector';\n\nexport class EditFormRoom extends EditForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Calendar.Rooms.EditFormRoom');\n\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.roomsManager = options.roomsManager;\n\t\tthis.categoryManager = options.categoryManager;\n\t\tthis.capacityNumbers = [3, 5, 7, 10, 25];\n\t\tthis.zIndex = options.zIndex || 3100;\n\t\tthis.closeCallback = options.closeCallback;\n\t\tthis.BX = Util.getBX();\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t\tthis.freezeButtonsCallback = options.freezeButtonsCallback;\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.setParams(params);\n\t\tthis.create();\n\t\tif (this.showAccess)\n\t\t{\n\t\t\tDom.style(this.DOM.accessLink, 'display', null);\n\t\t\tDom.style(this.DOM.accessWrap, 'display', null);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.style(this.DOM.accessLink, 'display', 'none');\n\t\t\tDom.style(this.DOM.accessWrap, 'display', 'none');\n\t\t}\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\n\t\tif (this.room)\n\t\t{\n\t\t\tthis.setInputValues(this.room);\n\t\t}\n\n\t\tthis.setFocusOnInput();\n\n\t\tthis.isOpenedState = true;\n\t}\n\n\tsetParams(params)\n\t{\n\t\tthis.actionType = params.actionType;\n\t\tthis.room = params.room;\n\t\tthis.showAccess = params.showAccess !== false;\n\t}\n\n\tsetInputValues(room)\n\t{\n\t\tif (room.color)\n\t\t{\n\t\t\tthis.setColor(room.color);\n\t\t}\n\n\t\tthis.setAccess(room.access || room.data.ACCESS || {});\n\n\t\tif (room.name)\n\t\t{\n\t\t\tthis.DOM.roomsTitleInput.value = room.name;\n\t\t}\n\n\t\tif (this.room.capacity)\n\t\t{\n\t\t\tthis.DOM.roomsCapacityInput.value = room.capacity;\n\t\t}\n\t}\n\n\tsetFocusOnInput()\n\t{\n\t\tBX.focus(this.DOM.roomsTitleInput);\n\t\tif (this.DOM.roomsTitleInput.value !== '')\n\t\t{\n\t\t\tthis.DOM.roomsTitleInput.select();\n\t\t}\n\t}\n\n\tcreate()\n\t{\n\t\tthis.wrap = this.getSliderContentWrap();\n\t\tthis.DOM.formFieldsWrap = this.getFormFieldsWrap(this.wrap);\n\n\t\tthis.DOM.roomsTitleInput = this.createTitleInput(this.DOM.formFieldsWrap);\n\t\tthis.DOM.roomsCapacityInput = this.createCapacityInput(this.DOM.formFieldsWrap);\n\t\tthis.DOM.categorySelect = this.DOM.formFieldsWrap.appendChild(this.renderCategorySelector());\n\n\t\tthis.createBottomOptions(this.DOM.formFieldsWrap);\n\t\tthis.createButtons(this.DOM.formFieldsWrap);\n\n\t\tthis.isCreated = true;\n\t}\n\n\tgetSliderContentWrap()\n\t{\n\t\tlet sliderContentWrap = this.DOM.outerWrap.querySelector('.calendar-form-content');\n\t\tif (sliderContentWrap)\n\t\t{\n\t\t\tDom.clean(sliderContentWrap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsliderContentWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-form-content\"></div>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\n\t\treturn sliderContentWrap;\n\t}\n\n\tgetFormFieldsWrap(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content\"></div>\n\t\t\t`\n\t\t\t)\n\t\t\t.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\"></div>\n\t\t\t`\n\t\t\t);\n\t}\n\n\tcreateTitleInput(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"${Loc.getMessage('EC_SEC_SLIDER_SECTION_TITLE')}\" \n\t\t\t\t\t\t\tclass=\"calendar-field calendar-field-string\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`)\n\t\t.querySelector('.calendar-field')\n\t\t;\n\t}\n\n\tcreateCapacityInput(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t\t<div class =\"calendar-list-slider-card-widget-title\" style=\"margin-bottom: 0\">\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_SECTION_CAPACITY')}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<input type=\"number\" class=\"calendar-field calendar-field-number\" placeholder=\"0\" min=\"0\" max=\"9999\"/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`)\n\t\t.querySelector('.calendar-field')\n\t\t;\n\t}\n\n\trenderCategorySelector()\n\t{\n\t\tconst categorySelector = this.renderCategorySelectorWrap();\n\n\t\tthis.categoryTagSelector = this.createCategoryTagSelector();\n\n\t\tthis.categoryTagSelector.renderTo(categorySelector.querySelector('.calendar-list-slider-card-widget-title'));\n\t\tif(this.categoryTagSelector.isRendered())\n\t\t{\n\t\t\tthis.onAfterCategorySelectorRender();\n\t\t}\n\n\t\treturn categorySelector;\n\t}\n\n\trenderCategorySelectorWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-field-container calendar-field-container-string calendar-field-container-rooms\">\n\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t<div class =\"calendar-list-slider-card-widget-title\">\n\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">\n\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ROOM_CATEGORY')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreateCategoryTagSelector()\n\t{\n\t\tlet preparedCategories = [];\n\t\tpreparedCategories = this.prepareCategoriesForDialog(this.categoryManager.getCategories());\n\n\t\tthis.selectedCategory = null;\n\t\tif(this.room && this.room.categoryId)\n\t\t{\n\t\t\tthis.selectedCategory = this.prepareCategoriesForDialog([\n\t\t\t\tthis.categoryManager.getCategory(this.room.categoryId)\n\t\t\t]);\n\t\t}\n\n\t\treturn new TagSelector({\n\t\t\tplaceholder: Loc.getMessage('EC_SEC_SLIDER_CATEGORY_SELECTOR_PLACEHOLDER'),\n\t\t\ttextBoxWidth: 320,\n\t\t\tmultiple: false,\n\t\t\tevents: {\n\t\t\t\tonTagAdd: () => {\n\t\t\t\t\tconst itemsContainer = this.categoryTagSelector.getItemsContainer();\n\t\t\t\t\tDom.addClass(\n\t\t\t\t\t\titemsContainer,\n\t\t\t\t\t\t'calendar-room-form-category-selector-container-with-change-button',\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tonTagRemove: () => {\n\t\t\t\t\tconst itemsContainer = this.categoryTagSelector.getItemsContainer();\n\t\t\t\t\tDom.removeClass(\n\t\t\t\t\t\titemsContainer,\n\t\t\t\t\t\t'calendar-room-form-category-selector-container-with-change-button',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdialogOptions: {\n\t\t\t\tcontext: 'CALENDAR_CONTEXT',\n\t\t\t\twidth: 315,\n\t\t\t\theight: 280,\n\t\t\t\tcompactView: true,\n\t\t\t\tshowAvatars: false,\n\t\t\t\tdropdownMode: true,\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'category',\n\t\t\t\t\t\ttitle: 'categories',\n\t\t\t\t\t\titemOrder: { title: 'asc' },\n\t\t\t\t\t\ticon: 'none',\n\t\t\t\t\t\tstubOptions: { title: Loc.getMessage('EC_SEC_SLIDER_CATEGORY_SELECTOR_STUB') },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\titems: preparedCategories,\n\t\t\t\tselectedItems: this.selectedCategory,\n\t\t\t},\n\t\t});\n\t}\n\n\tonAfterCategorySelectorRender()\n\t{\n\t\t//make avatar containers in input smaller and hide tab icon\n\t\tDom.addClass(this.categoryTagSelector.getDialog().getContainer(),'calendar-room-form-category-selector-dialog');\n\n\t\t//make entity selector input style similar to other inputs in room slider\n\t\tDom.addClass(this.categoryTagSelector.getOuterContainer(), 'calendar-field-tag-selector-outer-container');\n\t\tDom.addClass(this.categoryTagSelector.getTextBox(), 'calendar-field-tag-selector-text-box');\n\t\tif(this.selectedCategory !== null)\n\t\t{\n\t\t\tconst itemsContainer = this.categoryTagSelector.getItemsContainer();\n\t\t\tDom.addClass(itemsContainer, 'calendar-room-form-category-selector-container-with-change-button');\n\t\t}\n\t}\n\n\tcreateBottomOptions(wrap)\n\t{\n\t\tthis.DOM.optionsWrap = wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t<div class=\"calendar-list-slider-new-calendar-options-container\"></div>`\n\t\t);\n\n\t\tthis.initSectionColorSelector();\n\n\t\tthis.initAccessController();\n\t}\n\n\tcreateButtons(wrap)\n\t{\n\t\tthis.buttonsWrap = wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-btn-container\"></div>\n\t\t\t`\n\t\t);\n\n\t\tif (this.actionType === 'createRoom')\n\t\t{\n\t\t\tthis.renderCreateButton(this.buttonsWrap);\n\t\t}\n\t\telse if (this.actionType === 'updateRoom')\n\t\t{\n\t\t\tthis.renderUpdateButton(this.buttonsWrap);\n\t\t}\n\n\t\tthis.renderCancelButton(this.buttonsWrap);\n\t}\n\n\trenderCreateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.createRoom.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderUpdateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.updateRoom.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderCancelButton(wrap)\n\t{\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\tevents: { click: this.checkClose.bind(this) }\n\t\t}).renderTo(wrap);\n\t}\n\n\tcreateRoom()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.roomsManager.createRoom({\n\t\t\t\tname: this.DOM.roomsTitleInput.value,\n\t\t\t\tcapacity: this.DOM.roomsCapacityInput.value,\n\t\t\t\tcolor: this.color,\n\t\t\t\taccess: this.access,\n\t\t\t\tcategoryId: this.getSelectedCategory(),\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\t\tthis.close();\n\t\t\t});\n\t}\n\n\tinitAccessController()\n\t{\n\t\tthis.buildAccessController();\n\t\tthis.initDialogStandard();\n\t\tthis.initAccessSelectorPopup();\n\t}\n\n\tupdateRoom()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.roomsManager.updateRoom({\n\t\t\t\tid: this.room.id,\n\t\t\t\tlocation_id: this.room.location_id,\n\t\t\t\tname: this.DOM.roomsTitleInput.value,\n\t\t\t\tcapacity: this.DOM.roomsCapacityInput.value,\n\t\t\t\tcolor: this.color,\n\t\t\t\taccess: this.access,\n\t\t\t\tcategoryId: this.getSelectedCategory(),\n\t\t\t})\n\t\t\t.then(() => {\n\t\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\t\tthis.close();\n\t\t\t});\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif (this.categoryTagSelector.getDialog().isOpen())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.checkClose();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'createRoom')\n\t\t{\n\t\t\tthis.createRoom();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'updateRoom')\n\t\t{\n\t\t\tthis.updateRoom();\n\t\t}\n\t}\n\n\tprepareCategoriesForDialog(categories)\n\t{\n\t\treturn categories.map((category) => {\n\t\t\treturn {\n\t\t\t\tid: category.id,\n\t\t\t\tentityId: 'category',\n\t\t\t\ttitle: category.name,\n\t\t\t\ttabs: 'category',\n\t\t\t}\n\t\t});\n\t}\n\n\tgetSelectedCategory()\n\t{\n\t\tconst item = this.categoryTagSelector.getDialog().getSelectedItems()[0];\n\n\t\treturn item ? item.id : null;\n\t}\n}","import { Tag, Dom, Loc, Event} from 'main.core';\nimport { EditForm } from '../../sectioninterface/src/editform';\nimport { Util } from 'calendar.util';\nimport { Dialog, TagSelector } from 'ui.entity-selector';\n\nexport class EditFormCategory extends EditForm\n{\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Calendar.Rooms.EditFormCategory');\n\t\tthis.DOM.outerWrap = options.wrap;\n\t\tthis.categoryManager = options.categoryManager;\n\t\tthis.zIndex = options.zIndex || 3100;\n\t\tthis.closeCallback = options.closeCallback;\n\t\tthis.BX = Util.getBX();\n\t\tthis.keyHandlerBinded = this.keyHandler.bind(this);\n\t\tthis.preparedSelectedRooms = [];\n\t\tthis.freezeButtonsCallback = options.freezeButtonsCallback;\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.setParams(params);\n\n\t\tif(this.category && this.category.rooms)\n\t\t{\n\t\t\tthis.preparedSelectedRooms = this.prepareRoomsForDialog(this.category.rooms);\n\t\t}\n\n\t\tthis.create();\n\n\t\tEvent.bind(document, 'keydown', this.keyHandlerBinded);\n\t\tDom.addClass(this.DOM.outerWrap, 'show');\n\n\t\tif (this.category)\n\t\t{\n\t\t\tthis.setInputValues(this.category);\n\t\t}\n\n\t\tthis.setFocusOnInput();\n\n\t\tthis.isOpenedState = true;\n\t}\n\n\tsetParams(params)\n\t{\n\t\tthis.actionType = params.actionType;\n\t\tthis.category = params.category;\n\t}\n\n\tsetInputValues()\n\t{\n\t\tif(this.category.name)\n\t\t{\n\t\t\tthis.DOM.categoryTitleInput.value = this.category.name;\n\t\t}\n\t}\n\n\tsetFocusOnInput()\n\t{\n\t\tBX.focus(this.DOM.categoryTitleInput);\n\t\tif (this.DOM.categoryTitleInput.value !== '')\n\t\t{\n\t\t\tthis.DOM.categoryTitleInput.select();\n\t\t}\n\t}\n\n\tcreate(params)\n\t{\n\t\tthis.wrap = this.getSliderContentWrap();\n\t\tthis.DOM.formFieldsWrap = this.getFormFieldsWrap(this.wrap);\n\n\t\tthis.DOM.categoryTitleInput = this.createTitleInput(this.DOM.formFieldsWrap);\n\t\tthis.DOM.locationSelector = this.DOM.formFieldsWrap.appendChild(this.renderRoomSelector());\n\t\tthis.createButtons(this.DOM.formFieldsWrap);\n\n\t\tthis.isCreated = true;\n\t}\n\n\tgetSliderContentWrap()\n\t{\n\t\tlet sliderContentWrap = this.DOM.outerWrap.querySelector('.calendar-form-content');\n\t\tif (sliderContentWrap)\n\t\t{\n\t\t\tDom.clean(sliderContentWrap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsliderContentWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-form-content\"></div>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\n\t\treturn sliderContentWrap;\n\t}\n\n\tgetFormFieldsWrap(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content\"></div>\n\t\t\t`\n\t\t\t)\n\t\t\t.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\"></div>\n\t\t\t`\n\t\t);\n\t}\n\n\tcreateTitleInput(wrap)\n\t{\n\t\treturn wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"${Loc.getMessage('EC_SEC_SLIDER_SECTION_TITLE')}\" \n\t\t\t\t\t\t\tclass=\"calendar-field calendar-field-string\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`)\n\t\t.querySelector('.calendar-field')\n\t\t;\n\t}\n\n\trenderRoomSelector()\n\t{\n\t\tconst roomSelector = this.renderRoomSelectorWrap();\n\n\t\tthis.roomTagSelector = this.createRoomTagSelector();\n\n\t\tthis.roomTagSelector.renderTo(roomSelector.querySelector('.calendar-list-slider-card-widget-title'));\n\t\tif(this.roomTagSelector.isRendered())\n\t\t{\n\t\t\tthis.onAfterRoomSelectorRender();\n\t\t}\n\n\t\treturn roomSelector;\n\t}\n\n\trenderRoomSelectorWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-field-container calendar-field-container-string\">\n\t\t\t\t\t<div class=\"calendar-field-block\" >\n\t\t\t\t\t\t<div class =\"calendar-list-slider-card-widget-title\" style=\"border: none\">\n\t\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">\n\t\t\t\t\t\t\t\t${Loc.getMessage('EC_SEC_SLIDER_ROOM_SELECTOR')}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreateRoomTagSelector()\n\t{\n\t\treturn new TagSelector({\n\t\t\tplaceholder: Loc.getMessage('EC_SEC_SLIDER_ROOM_SELECTOR_PLACEHOLDER'),\n\t\t\ttextBoxWidth:320,\n\t\t\tdialogOptions: {\n\t\t\t\tcontext: 'CALENDAR_CONTEXT',\n\t\t\t\twidth: 315,\n\t\t\t\theight: 280,\n\t\t\t\tcompactView: true,\n\t\t\t\tshowAvatars: true,\n\t\t\t\tdropdownMode: true,\n\t\t\t\tpreload: true,\n\t\t\t\tentities: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'room',\n\t\t\t\t\t\tdynamicLoad: true,\n\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'calendar.roomFilter',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tselectedItems: this.preparedSelectedRooms,\n\t\t\t\ttabs: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'room',\n\t\t\t\t\t\ttitle: 'rooms',\n\t\t\t\t\t\titemOrder: { title: 'asc' },\n\t\t\t\t\t\ticon: 'none',\n\t\t\t\t\t\tstubOptions: { title: Loc.getMessage('EC_SEC_SLIDER_ROOM_SELECTOR_STUB') },\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t}\n\n\tonAfterRoomSelectorRender()\n\t{\n\t\t//make avatar containers in input smaller and hide tab icon\n\t\tDom.addClass(this.roomTagSelector.getDialog().getContainer(), 'calendar-category-form-room-selector-dialog');\n\t\tDom.addClass(this.roomTagSelector.getContainer(), 'calendar-category-form-room-tag-selector');\n\n\t\t//make entity selector input style similar to other inputs in room slider\n\t\tDom.addClass(this.roomTagSelector.getOuterContainer(), 'calendar-field-tag-selector-outer-container');\n\t\tDom.addClass(this.roomTagSelector.getTextBox(), 'calendar-field-tag-selector-text-box');\n\t}\n\n\tcreateButtons(wrap)\n\t{\n\t\tthis.buttonsWrap = wrap.appendChild(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"calendar-list-slider-btn-container\"></div>\n\t\t\t`\n\t\t);\n\n\t\tif (this.actionType === 'createCategory')\n\t\t{\n\t\t\tthis.renderCreateButton(this.buttonsWrap);\n\t\t}\n\t\telse if (this.actionType === 'updateCategory')\n\t\t{\n\t\t\tthis.renderUpdateButton(this.buttonsWrap);\n\t\t}\n\n\t\tthis.renderCancelButton(this.buttonsWrap);\n\t}\n\n\trenderCreateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.createCategory.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderUpdateButton(wrap)\n\t{\n\t\tthis.saveBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_SAVE'),\n\t\t\tclassName: 'ui-btn ui-btn-success',\n\t\t\tevents: { click: this.updateCategory.bind(this) }\n\t\t});\n\t\tthis.saveBtn.renderTo(wrap);\n\t}\n\n\trenderCancelButton(wrap)\n\t{\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\tevents: { click: this.checkClose.bind(this) }\n\t\t}).renderTo(wrap);\n\t}\n\n\tcreateCategory()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tthis.saveBtn.setWaiting(true);\n\t\tconst selectedRooms = this.getSelectedRooms();\n\t\tthis.categoryManager.createCategory({\n\t\t\t\tname: this.DOM.categoryTitleInput.value,\n\t\t\t\trooms: selectedRooms,\n\t\t})\n\t\t.then(() => {\n\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\tthis.close();\n\t\t});\n\t}\n\n\tupdateCategory()\n\t{\n\t\tif(this.freezeButtonsCallback)\n\t\t{\n\t\t\tthis.freezeButtonsCallback();\n\t\t}\n\t\tconst newSelectedRooms = this.prepareRoomsBeforeUpdate(this.getSelectedRooms());\n\t\tconst oldSelectedRooms = this.prepareRoomsBeforeUpdate(this.preparedSelectedRooms);\n\n\t\tconst toAddCategory = newSelectedRooms.filter(x => !oldSelectedRooms.includes(x));\n\t\tconst toRemoveCategory = oldSelectedRooms.filter(x => !newSelectedRooms.includes(x));\n\t\tthis.saveBtn.setWaiting(true);\n\t\tthis.categoryManager.updateCategory({\n\t\t\ttoAddCategory,\n\t\t\ttoRemoveCategory,\n\t\t\tid: this.category.id,\n\t\t\tname: this.DOM.categoryTitleInput.value,\n\t\t})\n\t\t.then(() => {\n\t\t\tthis.saveBtn.setWaiting(false);\n\t\t\tthis.close();\n\t\t});\n\t}\n\n\tgetSelectedRooms()\n\t{\n\t\tconst items = this.roomTagSelector.getDialog().getSelectedItems();\n\t\tconst rooms = [];\n\t\titems.map(item => rooms.push(item.id));\n\n\t\treturn rooms;\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif (this.roomTagSelector.getDialog().isOpen())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (e.keyCode === Util.getKeyCode('escape'))\n\t\t{\n\t\t\tthis.checkClose();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'createCategory')\n\t\t{\n\t\t\tthis.createCategory();\n\t\t}\n\t\telse if (e.keyCode === Util.getKeyCode('enter') && this.actionType === 'updateCategory')\n\t\t{\n\t\t\tthis.updateCategory();\n\t\t}\n\t}\n\n\tprepareRoomsForDialog(rooms)\n\t{\n\t\treturn rooms.map((room) => {\n\t\t\treturn {\n\t\t\t\tid: room.id,\n\t\t\t\tentityId: 'room',\n\t\t\t\ttitle: room.name,\n\t\t\t\tavatarOptions: {\n\t\t\t\t\t'bgColor': room.color,\n\t\t\t\t\t'bgSize': '22px',\n\t\t\t\t\t'bgImage': 'none',\n\t\t\t\t},\n\t\t\t\ttabs: 'room',\n\t\t\t}\n\t\t});\n\t}\n\n\tprepareRoomsBeforeUpdate(rooms)\n\t{\n\t\tif(!rooms)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\treturn rooms.map((room) => {\n\t\t\tif(room.id)\n\t\t\t{\n\t\t\t\treturn parseInt(room.id, 10);\n\t\t\t}\n\n\t\t\treturn parseInt(room, 10);\n\t\t});\n\t}\n}","import { Type, Dom, Loc, Tag, Event, Text } from 'main.core';\nimport { SectionInterface } from 'calendar.sectioninterface';\nimport { Util } from 'calendar.util';\nimport { EditFormRoom } from './editformroom';\nimport { EditFormCategory } from './editformcategory';\nimport { MessageBox } from 'ui.dialogs.messagebox';\n\nexport class RoomsInterface extends SectionInterface\n{\n\tSLIDER_WIDTH = 400;\n\tSLIDER_DURATION = 80;\n\tsliderId = \"calendar:rooms-slider\";\n\tCATEGORY_ROOMS_SHOWN_ALL = 0;\n\tCATEGORY_ROOMS_SHOWN_SOME = 1;\n\tCATEGORY_ROOMS_SHOWN_NONE = 2;\n\tHELP_DESK_CODE = 14327694;\n\n\tconstructor({ calendarContext, readonly, roomsManager, categoryManager, isConfigureList = false })\n\t{\n\t\tsuper({ calendarContext, readonly, roomsManager });\n\t\tthis.setEventNamespace('BX.Calendar.RoomsInterface');\n\t\tthis.roomsManager = roomsManager;\n\t\tthis.categoryManager = categoryManager;\n\t\tthis.isConfigureList = isConfigureList;\n\t\tthis.calendarContext = calendarContext;\n\t\tthis.readonly = readonly;\n\t\tthis.BX = Util.getBX();\n\t\tthis.sliderOnClose = this.hide.bind(this);\n\t\tthis.deleteRoomHandlerBinded = this.deleteRoomHandler.bind(this);\n\t\tthis.refreshRoomsBinded = this.refreshRooms.bind(this);\n\t\tthis.refreshCategoriesBinded = this.refreshCategories.bind(this);\n\t\tif (this.calendarContext !== null)\n\t\t{\n\t\t\tif (this.calendarContext.util.config.accessNames)\n\t\t\t{\n\t\t\t\tUtil.setAccessNames(this.calendarContext?.util?.config?.accessNames);\n\t\t\t}\n\t\t}\n\t\tthis.setRoomsFromManager();\n\t\tthis.setCategoriesFromManager();\n\t}\n\n\taddEventEmitterSubscriptions()\n\t{\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:pull-create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:pull-update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms:pull-delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:create',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:update',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:delete',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-create',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-update',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.subscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-delete',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t}\n\n\tdestroyEventEmitterSubscriptions()\n\t{\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:pull-create',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:pull-update',\n\t\t\tthis.refreshRoomsBinded\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms:pull-delete',\n\t\t\tthis.deleteRoomHandlerBinded\n\t\t);\n\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:create',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:update',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:delete',\n\t\t\tthis.refreshCategoriesBinded\n\t\t);\n\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-create',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-update',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t\tUtil.getBX().Event.EventEmitter.unsubscribe(\n\t\t\t'BX.Calendar.Rooms.Categories:pull-delete',\n\t\t\tthis.refreshCategoriesBinded,\n\t\t);\n\t}\n\n\tcreateContent()\n\t{\n\t\tthis.DOM.outerWrap = this.renderOuterWrap();\n\t\tthis.DOM.titleWrap = this.DOM.outerWrap.appendChild(this.renderTitleWrap());\n\n\t\tif (!this.readonly)\n\t\t{\n\t\t\t// #1. Controls\n\t\t\tthis.DOM.addButton = this.DOM.titleWrap.appendChild(this.renderAddButton());\n\n\t\t\t// #2. Forms\n\t\t\tthis.DOM.roomFormWrap = this.DOM.outerWrap.appendChild(this.renderRoomFormWrap());\n\t\t}\n\t\tthis.createRoomBlocks();\n\n\t\treturn this.DOM.outerWrap;\n\t}\n\n\trenderOuterWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-wrap\"></div>\n\t\t\t`\n\t\t;\n\t}\n\n\trenderTitleWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar-list-slider-title-container\">\n\t\t\t\t<div class=\"calendar-list-slider-title\">\n\t\t\t\t\t${Loc.getMessage('EC_SECTION_ROOMS')}\n\t\t\t\t\t<span onclick=\"${this.openHelpDesk.bind(this)}\" class=\"ui-hint\" title=\"${Loc.getMessage('EC_CALENDAR_HOW_DOES_IT_WORK')}\">\n\t\t\t\t\t\t<span class=\"ui-hint-icon\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderAddButton()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<span class=\"ui-btn-split ui-btn-light-border\" style=\"margin-right: 0\">\n\t\t\t\t\t<span class=\"ui-btn-main\" onclick=\"${this.showEditRoomForm.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('EC_ADD')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span id = \"add-menu-button\" class=\"ui-btn-menu\" onclick=\"${this.showAddMenu.bind(this)}\"></span>\n\t\t\t\t</span>\n\t\t`;\n\t}\n\n\trenderRoomFormWrap()\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-form-wrap\">\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget-title\">\n\t\t\t\t\t\t<span class=\"calendar-list-slider-card-widget-title-text\">${Loc.getMessage('EC_SEC_SLIDER_NEW_ROOM')}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\tshowAddMenu(): void\n\t{\n\t\tconst menuButtons = this.createAddMenuButtons();\n\n\t\tif (menuButtons && menuButtons.length > 0)\n\t\t{\n\t\t\tthis.addRoomMenu = this.createAddMenu(menuButtons);\n\t\t\tthis.addRoomMenu.popupWindow.show();\n\t\t\tthis.addRoomMenu.popupWindow.subscribe('onClose', () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t});\n\n\t\t\tthis.denySliderClose();\n\t\t}\n\t}\n\n\tcreateAddMenuButtons()\n\t{\n\t\tconst menuButtons = [];\n\n\t\tmenuButtons.push({\n\t\t\ttext: Loc.getMessage('EC_ADD_LOCATION'),\n\t\t\tonclick: () => {\n\t\t\t\tthis.addRoomMenu.close();\n\t\t\t\tthis.showEditRoomForm();\n\t\t\t},\n\t\t});\n\t\tmenuButtons.push({\n\t\t\ttext: Loc.getMessage('EC_ADD_CATEGORY'),\n\t\t\tonclick: () => {\n\t\t\t\tthis.addRoomMenu.close();\n\t\t\t\tthis.showEditCategoryForm();\n\t\t\t},\n\t\t});\n\n\t\treturn menuButtons;\n\t}\n\n\tcreateAddMenu(menuButtons)\n\t{\n\t\tconst params = {\n\t\t\toffsetLeft: 20,\n\t\t\tcloseByEsc: true,\n\t\t\tangle: {\n\t\t\t\tposition: 'top'\n\t\t\t},\n\t\t\tautoHide: true,\n\t\t\toffsetTop: 0,\n\t\t\tcacheable: false\n\t\t};\n\n\t\treturn new BX.PopupMenuWindow(\n\t\t\t'add-menu-form-' + Util.getRandomInt(),\n\t\t\tBX(\"add-menu-button\"),\n\t\t\tmenuButtons,\n\t\t\tparams\n\t\t);\n\t}\n\n\tcreateRoomBlocks()\n\t{\n\t\tthis.setBlocksWrap();\n\n\t\tif (Type.isArray(this.rooms) || Type.isObject(this.categories))\n\t\t{\n\t\t\tthis.categories['categories'].forEach((category) => {\n\t\t\t\tif(category.rooms.length !== 0)\n\t\t\t\t{\n\t\t\t\t\tthis.createCategoryBlock(category, this.createBlockWrap(this.DOM.blocksWrap));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif(this.categories['default'].length > 0)\n\t\t\t{\n\t\t\t\tlet defaultBlockWrap = this.createBlockWrap(this.DOM.blocksWrap);\n\t\t\t\tthis.categories['default'].forEach(room => this.createRoomBlock(room, defaultBlockWrap));\n\t\t\t}\n\n\t\t\tthis.categories['categories'].forEach((category) => {\n\t\t\t\tif(category.rooms.length === 0 && this.categoryManager.canDo('edit'))\n\t\t\t\t{\n\t\t\t\t\tthis.createCategoryBlock(category, this.createBlockWrap(this.DOM.blocksWrap));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif(this.isFrozen())\n\t\t{\n\t\t\tthis.unfreezeButtons();\n\t\t}\n\t}\n\n\tsetRoomsFromManager()\n\t{\n\t\tthis.rooms = this.roomsManager.getRooms()\n\t\t\t.filter(function(room) {\n\t\t\t\treturn room.belongsToView() || room.isPseudo();\n\t\t\t})\n\t\t;\n\t}\n\n\tsetCategoriesFromManager()\n\t{\n\t\tthis.categories = this.categoryManager.getCategoriesWithRooms(this.rooms);\n\t}\n\n\tsetBlocksWrap()\n\t{\n\t\tif (this.DOM.blocksWrap)\n\t\t{\n\t\t\tDom.clean(this.DOM.blocksWrap);\n\t\t\tDom.adjust(this.DOM.blocksWrap, {\n\t\t\t\tprops: { className: '' }\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.blocksWrap = this.DOM.outerWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div></div>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\t}\n\n\tshowEditRoomForm(params = {})\n\t{\n\t\tif (typeof params.actionType === 'undefined')\n\t\t{\n\t\t\tparams.actionType = 'createRoom';\n\t\t}\n\t\tthis.closeForms();\n\t\tconst formTitleNode = this.DOM.roomFormWrap.querySelector('.calendar-list-slider-card-widget-title-text');\n\n\t\tthis.editSectionForm = new EditFormRoom({\n\t\t\twrap: this.DOM.roomFormWrap,\n\t\t\tsectionAccessTasks: this.roomsManager.getSectionAccessTasks(),\n\t\t\troomsManager: this.roomsManager,\n\t\t\tcategoryManager: this.categoryManager,\n\t\t\tfreezeButtonsCallback: this.freezeButtons.bind(this),\n\t\t\tcloseCallback: () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t}\n\t\t});\n\n\t\tlet showAccess = true;\n\t\tif (params.room && params.room.id)\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_EDIT_SECTION_ROOM');\n\t\t\tshowAccess = params.room.canDo('access');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_NEW_ROOM');\n\t\t}\n\n\t\tthis.editSectionForm.show({\n\t\t\tshowAccess,\n\t\t\troom: params.room || {\n\t\t\t\tcolor: Util.getRandomColor(),\n\t\t\t\taccess: this.roomsManager.getDefaultSectionAccess()\n\t\t\t},\n\t\t\tactionType: params.actionType\n\t\t});\n\n\t\tthis.denySliderClose();\n\t}\n\n\tshowEditCategoryForm(params = {})\n\t{\n\t\tif (typeof params.actionType === 'undefined')\n\t\t{\n\t\t\tparams.actionType = 'createCategory';\n\t\t}\n\n\t\tthis.closeForms();\n\t\tconst formTitleNode = this.DOM.roomFormWrap.querySelector('.calendar-list-slider-card-widget-title-text');\n\n\t\tthis.editSectionForm = new EditFormCategory({\n\t\t\twrap: this.DOM.roomFormWrap,\n\t\t\tsectionAccessTasks: this.roomsManager.getSectionAccessTasks(),\n\t\t\tcategoryManager: this.categoryManager,\n\t\t\tfreezeButtonsCallback: this.freezeButtons.bind(this),\n\t\t\tcloseCallback: () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t}\n\t\t});\n\n\t\tif (params.category && params.category.id)\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_EDIT_ROOM_CATEGORY');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tformTitleNode.innerHTML = Loc.getMessage('EC_SEC_SLIDER_NEW_CATEGORY');\n\t\t}\n\n\t\tthis.editSectionForm.show({\n\t\t\tcategory: params.category || {},\n\t\t\tactionType: params.actionType\n\t\t});\n\n\t\tthis.denySliderClose();\n\t}\n\n\tshowRoomMenu(room, menuItemNode)\n\t{\n\t\tconst itemNode = menuItemNode.closest('[data-bx-calendar-section]')\n\t\t\t|| menuItemNode.closest('[ data-bx-calendar-section-without-action]')\n\t\t;\n\n\t\tif (Type.isElementNode(itemNode))\n\t\t{\n\t\t\tDom.addClass(itemNode, 'active');\n\t\t}\n\n\t\tconst menuItems = this.createRoomMenuButtons(room);\n\n\t\tif (menuItems && menuItems.length > 0)\n\t\t{\n\t\t\tthis.roomActionMenu = this.createRoomMenu(menuItems, menuItemNode);\n\n\t\t\tthis.roomActionMenu.show();\n\t\t\tthis.roomActionMenu.popupWindow.subscribe('onClose', () => {\n\t\t\t\tif (Type.isElementNode(itemNode))\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(itemNode, 'active');\n\t\t\t\t}\n\t\t\t\tthis.allowSliderClose();\n\t\t\t});\n\n\t\t\tthis.denySliderClose();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(itemNode, 'active');\n\t\t}\n\t}\n\n\tcreateRoomMenuButtons(room)\n\t{\n\t\tconst menuItems = [];\n\n\t\tif (room.canDo('view_time') && !this.isConfigureList)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_LEAVE_ONE_ROOM'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.roomActionMenu.close();\n\t\t\t\t\tthis.showOnlyOneSection(room, this.roomsManager.rooms);\n\t\t\t\t\tthis.updateAllCategoriesCheckboxState();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!this.readonly && room.canDo('edit_section'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_EDIT'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.roomActionMenu.close();\n\t\t\t\t\tthis.showEditRoomForm({ room: room, actionType: 'updateRoom' });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (room.canDo('edit_section') && room.belongsToView())\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.roomActionMenu.close();\n\t\t\t\t\tthis.showRoomDeleteConfirm(room);\n\t\t\t\t\t// this.deleteRoom(room);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn menuItems;\n\t}\n\n\tcreateRoomMenu(menuItems, menuItemNode)\n\t{\n\t\tconst params = {\n\t\t\tcloseByEsc: true,\n\t\t\tautoHide: true,\n\t\t\tzIndex: this.zIndex,\n\t\t\toffsetTop: 0,\n\t\t\toffsetLeft: 9,\n\t\t\tangle: true,\n\t\t\tcacheable: false,\n\t\t};\n\n\t\treturn top.BX.PopupMenu.create(\n\t\t\t'section-menu-' + Util.getRandomInt(),\n\t\t\tmenuItemNode,\n\t\t\tmenuItems,\n\t\t\tparams\n\t\t);\n\t}\n\n\trefreshRooms()\n\t{\n\t\tthis.setRoomsFromManager();\n\t\tthis.setCategoriesFromManager();\n\t\tthis.createRoomBlocks();\n\t}\n\n\trefreshCategories()\n\t{\n\t\tthis.roomsManager.reloadRoomsFromDatabase().then(this.refreshRoomsBinded);\n\t}\n\n\tcreateBlockWrap(wrap)\n\t{\n\t\tconst listWrap =\n\t\t\twrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-card-widget calendar-list-slider-category-widget\">\n\t\t\t\t\t\t<div class=\"calendar-list-slider-widget-content\">\n\t\t\t\t\t\t\t<div class=\"calendar-list-slider-widget-content-block\">\n\t\t\t\t\t\t\t\t<ul class=\"calendar-list-slider-container\"></ul>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t`\n\t\t\t)\n\t\t\t.querySelector('.calendar-list-slider-container')\n\t\t;\n\t\tEvent.bind(listWrap, 'click', this.roomClickHandler.bind(this));\n\n\t\treturn listWrap;\n\t}\n\n\tcreateCategoryBlock(category, listWrap)\n\t{\n\t\tif (!category.DOM)\n\t\t{\n\t\t\tcategory.DOM = {};\n\t\t}\n\n\t\tcategory.DOM.item = listWrap.appendChild(this.renderCategoryBlockWrap(category));\n\n\t\tconst categoryRooms = this.categoryManager.getCategoryRooms(category, this.rooms);\n\t\tif(!this.isConfigureList && categoryRooms.length)\n\t\t{\n\t\t\tcategory.setCheckboxStatus(this.determineCategoryCheckboxStatus(category, categoryRooms));\n\t\t\tcategory.DOM.checkbox =\n\t\t\t\tcategory.DOM.item.appendChild(this.renderCategoryBlockCheckbox(category, categoryRooms))\n\t\t\t;\n\t\t}\n\n\t\tcategory.DOM.title = category.DOM.item.appendChild(this.renderCategoryBlockTitle(category));\n\n\t\tif(this.categoryManager.canDo('edit') || category.rooms.length > 0)\n\t\t{\n\t\t\tcategory.DOM.actionCont = category.DOM.item.appendChild(this.renderCategoryBlockActionsContainer(category));\n\t\t}\n\n\t\tthis.createCategoryBlockContent(category, listWrap);\n\t\treturn category;\n\t}\n\n\trenderCategoryBlockWrap(category)\n\t{\n\t\tif (this.isConfigureList)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item-category\"\n\t\t\t\t\t\tdata-bx-calendar-category-without-action=\"${category.id}\"\n\t\t\t\t\t>\n\t\t\t\t\t</li>\n\t\t\t\t`\n\t\t\t;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item-category\" data-bx-calendar-category=\"${category.id}\"></li>\n\t\t`;\n\t}\n\n\trenderCategoryBlockCheckbox(category)\n\t{\n\t\tlet checkboxStyle = '';\n\t\tif(category.checkboxStatus === this.CATEGORY_ROOMS_SHOWN_ALL)\n\t\t{\n\t\t\tcheckboxStyle = 'calendar-list-slider-item-checkbox-checked';\n\t\t}\n\t\telse if(category.checkboxStatus === this.CATEGORY_ROOMS_SHOWN_SOME)\n\t\t{\n\t\t\tcheckboxStyle = 'calendar-list-slider-item-checkbox-indeterminate';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"calendar-title-checkbox calendar-list-slider-item-checkbox\n\t\t\t\t\t\t${checkboxStyle}\" style=\"background-color: #a5abb2\"\n\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderCategoryBlockActionsContainer(category)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"calendar-list-slider-item-actions-container\n\t\t\t\t\tcalendar-list-slider-item-context-menu-category-wrap\" \n\t\t\t\t\t\tdata-bx-calendar-category-menu=\"${category.id}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"calendar-list-slider-item-context-menu\n\t\t\t\t\t\t\tcalendar-list-slider-item-context-menu-category\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderCategoryBlockTitle(category)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-card-widget-title-text calendar-list-slider-item-category-text\" \n\t\t\t\t\ttitle=\"${Text.encode(category.name)}\"\n\t\t\t\t>\n\t\t\t\t\t${Text.encode(category.name)}\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\tcreateCategoryBlockContent(category, wrap)\n\t{\n\t\tif(category.rooms.length)\n\t\t{\n\t\t\tcategory.rooms.forEach((room) => this.createRoomBlock(room, wrap));\n\t\t}\n\t\telse\n\t\t{\n\t\t\twrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-card-widget-title-text\">${Loc.getMessage('EC_CATEGORY_EMPTY')}</li>\n\t\t\t\t`\n\t\t\t);\n\t\t}\n\t}\n\n\tcreateRoomBlock(room, listWrap)\n\t{\n\t\tif (!room.DOM)\n\t\t{\n\t\t\troom.DOM = {};\n\t\t}\n\n\t\troom.DOM.item = listWrap.appendChild(this.renderRoomBlockWrap(room))\n\t\troom.DOM.checkbox = room.DOM.item.appendChild(this.renderRoomBlockCheckbox(room));\n\t\troom.DOM.title = room.DOM.item.appendChild(this.renderRoomBlockTitle(room));\n\t\troom.DOM.actionCont = room.DOM.item.appendChild(this.renderRoomBlockActionsContainer(room));\n\n\t\treturn room;\n\t}\n\n\trenderRoomBlockWrap(room)\n\t{\n\t\tif (this.isConfigureList)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item\" data-bx-calendar-section-without-action=\"${room.id}\"></li>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t\t<li class=\"calendar-list-slider-item\" data-bx-calendar-section=\"${room.id}\"></li>\n\t\t`;\n\t}\n\n\trenderRoomBlockCheckbox(room)\n\t{\n\t\tif (this.isConfigureList)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"calendar-field-select-icon\" style=\"background-color: ${room.color}\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-item-checkbox \n\t\t\t\t\t${room.isShown() ? 'calendar-list-slider-item-checkbox-checked' : ''}\" \n\t\t\t\t\tstyle=\"background-color: ${room.color}\"\n\t\t\t\t>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderRoomBlockTitle(room)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-item-name\" title=\"${Text.encode(room.name)}\">\n\t\t\t\t\t${Text.encode(room.name)}\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderRoomBlockActionsContainer(room)\n\t{\n\t\treturn Tag.render`\n\t\t\t\t<div class=\"calendar-list-slider-item-actions-container\" data-bx-calendar-section-menu=\"${room.id}\">\n\t\t\t\t\t<span class=\"calendar-list-slider-item-context-menu\"></span>\n\t\t\t\t</div>\n\t\t`;\n\t}\n\n\troomClickHandler(e)\n\t{\n\t\tconst target = Util.findTargetNode(e.target || e.srcElement, this.DOM.outerWrap);\n\n\t\tif (target && target.getAttribute)\n\t\t{\n\t\t\tif (target.getAttribute('data-bx-calendar-category') !== null)\n\t\t\t{\n\t\t\t\tconst category = this.categoryManager.getCategory(\n\t\t\t\t\tparseInt(target.getAttribute('data-bx-calendar-category'), 10)\n\t\t\t\t);\n\t\t\t\tif(category && category.rooms.length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.switchCategory(category, this.rooms);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (target.getAttribute('data-bx-calendar-category-menu') !== null)\n\t\t\t{\n\t\t\t\tlet categoryId = target.getAttribute('data-bx-calendar-category-menu');\n\t\t\t\tthis.showCategoryMenu(this.categoryManager.getCategory(categoryId), target);\n\t\t\t}\n\t\t\telse if (target.getAttribute('data-bx-calendar-section-menu') !== null)\n\t\t\t{\n\t\t\t\tlet roomId = target.getAttribute('data-bx-calendar-section-menu');\n\t\t\t\tthis.showRoomMenu(this.roomsManager.getRoom(roomId), target);\n\t\t\t}\n\t\t\telse if (target.getAttribute('data-bx-calendar-section') !== null)\n\t\t\t{\n\t\t\t\tlet roomId = target.getAttribute('data-bx-calendar-section');\n\t\t\t\tconst room = this.roomsManager.getRoom(roomId);\n\t\t\t\tthis.switchSection(room);\n\t\t\t\tthis.updateCategoryCheckboxState(this.categoryManager.getCategory(room.categoryId));\n\t\t\t}\n\t\t}\n\t}\n\n\tsetRoomsForCategory(categoryId)\n\t{\n\t\tthis.categoryManager.unsetCategoryRooms(categoryId);\n\n\t\tconst rooms = this.roomsManager.getRooms();\n\t\tconst categoryManager = this.categoryManager;\n\n\t\trooms.forEach(function(room){\n\t\t\tif(room.categoryId === categoryId)\n\t\t\t{\n\t\t\t\tcategoryManager.getCategory(categoryId).addRoom(room)\n\t\t\t}\n\t\t},this);\n\t}\n\n\tshowOnlyOneCategory(category, sections)\n\t{\n\t\tfor (let curSection of sections)\n\t\t{\n\t\t\tif (curSection.categoryId === category.id)\n\t\t\t{\n\t\t\t\tthis.switchOnSection(curSection);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.switchOffSection(curSection);\n\t\t\t}\n\t\t}\n\n\t\tthis.updateAllCategoriesCheckboxState();\n\n\t\tthis.calendarContext.reload();\n\t}\n\n\tshowCategoryMenu(category, menuItemNode)\n\t{\n\t\tthis.setRoomsForCategory(category.id);\n\n\t\tconst menuItems = this.createCategoryMenuButtons(category);\n\n\t\tif (menuItems && menuItems.length > 0)\n\t\t{\n\t\t\tthis.categoryActionMenu = this.createCategoryMenu(menuItems, menuItemNode);\n\n\t\t\tthis.categoryActionMenu.show();\n\t\t\tthis.categoryActionMenu.popupWindow.subscribe('onClose', () => {\n\t\t\t\tthis.allowSliderClose();\n\t\t\t});\n\n\t\t\tthis.denySliderClose();\n\t\t}\n\t}\n\n\tcreateCategoryMenuButtons(category)\n\t{\n\t\tconst menuItems = [];\n\n\t\tif (this.categoryManager.canDo('view') && !this.isConfigureList && category.rooms.length > 0)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_LEAVE_ONE_ROOM'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.categoryActionMenu.close();\n\t\t\t\t\tthis.showOnlyOneCategory(category, this.roomsManager.rooms);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!this.readonly && this.categoryManager.canDo('edit'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_EDIT'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.categoryActionMenu.close();\n\t\t\t\t\tthis.showEditCategoryForm({ category: category, actionType: 'updateCategory' });\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tif (this.categoryManager.canDo('edit'))\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.categoryActionMenu.close();\n\t\t\t\t\tthis.freezeButtons();\n\t\t\t\t\tthis.showCategoryDeleteConfirm(category);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn menuItems;\n\t}\n\n\tcreateCategoryMenu(menuItems, menuItemNode)\n\t{\n\t\tconst params = {\n\t\t\tcloseByEsc: true,\n\t\t\tautoHide: true,\n\t\t\tzIndex: this.zIndex,\n\t\t\toffsetTop: 0,\n\t\t\toffsetLeft: 9,\n\t\t\tangle: true,\n\t\t\tcacheable: false,\n\t\t};\n\n\t\treturn top.BX.PopupMenu.create(\n\t\t\t'category-menu-' + Util.getRandomInt(),\n\t\t\tmenuItemNode,\n\t\t\tmenuItems,\n\t\t\tparams,\n\t\t);\n\t}\n\n\tfindCheckBoxNodes(id)\n\t{\n\t\treturn this.DOM.blocksWrap.querySelectorAll(\n\t\t\t'.calendar-list-slider-item[data-bx-calendar-section=\\''\n\t\t\t+ id\n\t\t\t+ '\\'] .calendar-list-slider-item-checkbox'\n\t\t);\n\t}\n\n\tdestroy(event)\n\t{\n\t\tif (event && event.getSlider && event.getSlider().getUrl() === this.sliderId)\n\t\t{\n\t\t\tthis.destroyEventEmitterSubscriptions();\n\t\t\tBX.removeCustomEvent('SidePanel.Slider:onCloseComplete', BX.proxy(this.destroy, this));\n\t\t\tBX.SidePanel.Instance.destroy(this.sliderId);\n\t\t\tdelete this.DOM.blocksWrap;\n\n\t\t\tif (this.roomActionMenu)\n\t\t\t{\n\t\t\t\tthis.roomActionMenu.close();\n\t\t\t}\n\t\t}\n\t}\n\n\tdeleteRoomHandler(event)\n\t{\n\t\tif (event && event instanceof Util.getBX().Event.BaseEvent)\n\t\t{\n\t\t\tconst data = event.getData();\n\t\t\tconst deleteID = parseInt(data.id);\n\n\t\t\tthis.rooms.forEach((room, index) => {\n\t\t\t\tif (parseInt(room.id) === deleteID && room.DOM && room.DOM.item)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(room.DOM.item, 'calendar-list-slider-item-disappearing');\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tDom.clean(room.DOM.item, true);\n\t\t\t\t\t\tthis.rooms.splice(index, 1);\n\t\t\t\t\t}, 300);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tthis.closeForms();\n\t\t}\n\t\tthis.refreshRooms();\n\t}\n\n\tdeleteRoom(room)\n\t{\n\t\tthis.roomsManager.deleteRoom(\n\t\t\troom.id,\n\t\t\troom.location_id\n\t\t);\n\n\t\tif (this.DOM.confirmRoomPopup)\n\t\t{\n\t\t\tthis.DOM.confirmRoomPopup.close();\n\t\t\tdelete this.DOM.confirmRoomPopup;\n\t\t}\n\t\tif (this.currentRoom)\n\t\t{\n\t\t\tdelete this.currentRoom;\n\t\t}\n\t}\n\n\tdeleteCategory(category)\n\t{\n\t\tthis.categoryManager.deleteCategory(\n\t\t\tcategory.id\n\t\t);\n\n\t\tif (this.DOM.confirmCategoryPopup)\n\t\t{\n\t\t\tthis.DOM.confirmCategoryPopup.close();\n\t\t\tdelete this.DOM.confirmCategoryPopup;\n\t\t}\n\t\tif (this.currentCategory)\n\t\t{\n\t\t\tdelete this.currentCategory;\n\t\t}\n\t}\n\n\tfreezeButtons()\n\t{\n\t\tDom.addClass(this.DOM.outerWrap, 'calendar-content-locked');\n\t}\n\n\tunfreezeButtons()\n\t{\n\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-content-locked');\n\t}\n\n\tisFrozen()\n\t{\n\t\treturn Dom.hasClass(this.DOM.outerWrap, 'calendar-content-locked');\n\t}\n\n\tupdateCategoryCheckboxState(category)\n\t{\n\t\tif(!category)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst updatedCategoryCheckboxStatus = this.determineCategoryCheckboxStatus(category, this.roomsManager.rooms);\n\n\t\tif(category.checkboxStatus !== updatedCategoryCheckboxStatus)\n\t\t{\n\t\t\tcategory.setCheckboxStatus(updatedCategoryCheckboxStatus);\n\t\t\tthis.setCategoryCheckboxState(this.findCategoryCheckBoxNode(category.id), updatedCategoryCheckboxStatus);\n\t\t}\n\t}\n\n\tdetermineCategoryCheckboxStatus(category, rooms)\n\t{\n\t\tlet hasEnabled = false;\n\t\tlet hasDisabled = false;\n\n\t\trooms.forEach((room) => {\n\t\t\tif(room.categoryId === category.id)\n\t\t\t{\n\t\t\t\tif(room.isShown() && !hasEnabled)\n\t\t\t\t{\n\t\t\t\t\thasEnabled = true;\n\t\t\t\t}\n\n\t\t\t\tif(!room.isShown() && !hasDisabled)\n\t\t\t\t{\n\t\t\t\t\thasDisabled = true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (hasEnabled && hasDisabled)\n\t\t{\n\t\t\treturn this.CATEGORY_ROOMS_SHOWN_SOME;\n\t\t}\n\n\t\tif (hasEnabled)\n\t\t{\n\t\t\treturn this.CATEGORY_ROOMS_SHOWN_ALL;\n\t\t}\n\n\t\treturn this.CATEGORY_ROOMS_SHOWN_NONE;\n\t}\n\n\tswitchCategory(category, rooms)\n\t{\n\t\tconst checkboxNode = this.findCategoryCheckBoxNode(category.id);\n\n\t\tswitch (category.checkboxStatus)\n\t\t{\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_SOME:\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_NONE:\n\t\t\t\tthis.switchOnCategoryRooms(category.id, rooms);\n\t\t\t\tthis.setCategoryCheckboxState(checkboxNode, this.CATEGORY_ROOMS_SHOWN_ALL);\n\t\t\t\tcategory.setCheckboxStatus(this.CATEGORY_ROOMS_SHOWN_ALL);\n\t\t\t\tbreak;\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_ALL:\n\t\t\t\tthis.switchOffCategoryRooms(category.id, rooms);\n\t\t\t\tthis.setCategoryCheckboxState(checkboxNode, this.CATEGORY_ROOMS_SHOWN_NONE);\n\t\t\t\tcategory.setCheckboxStatus(this.CATEGORY_ROOMS_SHOWN_NONE);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.calendarContext.reload();\n\t}\n\n\tsetCategoryCheckboxState(checkboxNode, checkboxStatus)\n\t{\n\t\tDom.removeClass(checkboxNode, 'calendar-list-slider-item-checkbox-checked');\n\t\tDom.removeClass(checkboxNode, 'calendar-list-slider-item-checkbox-indeterminate');\n\n\t\tswitch (checkboxStatus)\n\t\t{\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_SOME:\n\t\t\t\tDom.addClass(checkboxNode, 'calendar-list-slider-item-checkbox-indeterminate');\n\t\t\t\tbreak;\n\t\t\tcase this.CATEGORY_ROOMS_SHOWN_ALL:\n\t\t\t\tDom.addClass(checkboxNode, 'calendar-list-slider-item-checkbox-checked');\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfindCategoryCheckBoxNode(id)\n\t{\n\t\treturn this.DOM.outerWrap.querySelector(\n\t\t\t'.calendar-list-slider-item-category[data-bx-calendar-category=\\''\n\t\t\t+ id\n\t\t\t+ '\\'] .calendar-list-slider-item-checkbox'\n\t\t);\n\t}\n\n\tswitchOnCategoryRooms(categoryId, rooms)\n\t{\n\t\trooms.forEach((room) =>{\n\t\t\tif(room.categoryId === categoryId && !room.isShown())\n\t\t\t{\n\t\t\t\tthis.switchOnSection(room);\n\t\t\t}\n\t\t});\n\t}\n\n\tswitchOffCategoryRooms(categoryId, rooms)\n\t{\n\t\trooms.forEach((room) =>{\n\t\t\tif(room.categoryId === categoryId && room.isShown())\n\t\t\t{\n\t\t\t\tthis.switchOffSection(room);\n\t\t\t}\n\t\t});\n\t}\n\n\tupdateAllCategoriesCheckboxState()\n\t{\n\t\tthis.categoryManager.getCategories().forEach(category => this.updateCategoryCheckboxState(category));\n\t}\n\n\tshowRoomDeleteConfirm(room)\n\t{\n\t\tthis.currentRoom = room;\n\n\t\tthis.DOM.confirmRoomPopup = new MessageBox({\n\t\t\tmessage: this.getConfirmRoomInterfaceContent(Loc.getMessage('EC_ROOM_DELETE_CONFIRM')),\n\t\t\tminHeight: 120,\n\t\t\tminWidth: 280,\n\t\t\tmaxWidth: 300,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,\n\t\t\tonOk: () => {\n\t\t\t\tthis.deleteRoom(room);\n\t\t\t},\n\t\t\tonCancel: () => {\n\t\t\t\tthis.DOM.confirmRoomPopup.close();\n\t\t\t},\n\t\t\tokCaption: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\tpopupOptions: {\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tdelete this.DOM.confirmRoomPopup;\n\t\t\t\t\t\tdelete this.currentRoom;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tpadding: 0,\n\t\t\t\tcontentPadding: 0,\n\t\t\t\tanimation: 'fading-slide',\n\t\t\t}\n\t\t});\n\n\t\tthis.DOM.confirmRoomPopup.show();\n\t}\n\n\tshowCategoryDeleteConfirm(category)\n\t{\n\t\tthis.currentCategory = category;\n\n\t\tthis.DOM.confirmCategoryPopup = new MessageBox({\n\t\t\tmessage: this.getConfirmRoomInterfaceContent(Loc.getMessage('EC_CATEGORY_DELETE_CONFIRM')),\n\t\t\tminHeight: 120,\n\t\t\tminWidth: 280,\n\t\t\tmaxWidth: 300,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,\n\t\t\tonOk: () => {\n\t\t\t\tthis.deleteCategory(category);\n\t\t\t},\n\t\t\tonCancel: () => {\n\t\t\t\tthis.DOM.confirmCategoryPopup.close();\n\t\t\t},\n\t\t\tokCaption: Loc.getMessage('EC_SEC_DELETE'),\n\t\t\tpopupOptions: {\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tthis.unfreezeButtons();\n\t\t\t\t\t\tdelete this.DOM.confirmCategoryPopup;\n\t\t\t\t\t\tdelete this.currentCategory;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tpadding: 0,\n\t\t\t\tcontentPadding: 0,\n\t\t\t\tanimation: 'fading-slide',\n\t\t\t}\n\t\t});\n\n\t\tthis.DOM.confirmCategoryPopup.show();\n\t}\n\n\tgetConfirmRoomInterfaceContent(text)\n\t{\n\t\treturn Tag.render`<div class=\"calendar-list-slider-messagebox-text\">${text}</div>`;\n\t}\n\n\topenHelpDesk()\n\t{\n\t\ttop.BX.Helper.show('redirect=detail&code=' + this.HELP_DESK_CODE);\n\t}\n\n\tkeyHandler(e)\n\t{\n\t\tif (e.keyCode === Util.getKeyCode('enter'))\n\t\t{\n\t\t\tif (this.DOM.confirmRoomPopup && this.currentRoom)\n\t\t\t{\n\t\t\t\tthis.deleteRoom(this.currentRoom);\n\t\t\t}\n\t\t\tif (this.DOM.confirmCategoryPopup && this.currentCategory)\n\t\t\t{\n\t\t\t\tthis.deleteCategory(this.currentCategory);\n\t\t\t}\n\t\t}\n\t}\n}"],"names":["ReserveButton","AddButton","constructor","params","setEventNamespace","zIndex","popupId","id","Math","round","random","showTasks","addEntryHandler","Type","isFunction","addEntry","addTaskHandler","addTask","create","DOM","wrap","Dom","props","className","type","html","Loc","getMessage","events","click","bind","EditForm","EventEmitter","options","isCreated","outerWrap","sectionAccessTasks","sectionManager","closeCallback","BX","Util","getBX","keyHandlerBinded","keyHandler","show","section","showAccess","allowChangeName","accessLink","style","display","accessWrap","Event","document","addClass","color","setColor","setAccess","access","data","ACCESS","name","sectionTitleInput","value","focus","select","disabled","isOpenedState","close","unbind","removeClass","isOpened","querySelector","clean","appendChild","formFieldsWrap","attrs","placeholder","optionsWrap","initSectionColorSelector","initAccessController","buttonsWrap","saveBtn","UI","Button","text","save","renderTo","checkClose","e","keyCode","getKeyCode","setWaiting","saveSection","then","colorContWrap","colorIcon","colorChangeLink","showSimplePicker","colors","Runtime","clone","getDefaultColorList","innerCont","colorWrap","delegate","simplePickerClick","moreLinkWrap","moreLink","showFullPicker","simplePickerColorWrap","includes","push","i","length","node","backgroundColor","lastActiveNode","util","array_search","simpleColorPopup","PopupWindowManager","getRandomInt","autoHide","closeByEsc","offsetTop","offsetLeft","lightShadow","content","cacheable","setAngle","offset","target","findTargetNode","srcElement","isElementNode","getAttribute","fullColorPicker","getPopupWindow","isDestroyed","ColorPicker","bindElement","onColorSelected","popupOptions","onPopupClose","open","rowsCount","code","hasOwnProperty","accessRowsCount","insertAccessRow","getAccessName","checkAccessTableHeight","buildAccessController","calendarType","initDialogGroup","initDialogStandard","initAccessSelectorPopup","accessControls","showAccessSelectorPopup","removeIcon","setValueCallback","accessTasks","valueNode","innerHTML","Text","encode","title","remove","rowNode","Tag","render","accessTable","accessButton","hasClass","entities","analyticsSource","selectMode","isProjectFeatureEnabled","entitySelectorDialog","EntitySelectorDialog","targetNode","context","preselectedItems","enableSearch","handleEntitySelectorChanges","targetContainer","body","tabs","ownerName","items","ownerId","entityId","entityList","getSelectedItems","hide","isArray","forEach","entity","convertEntityToAccessCode","setAccessName","debounce","destroy","undefined","taskId","adjust","insertRow","titleNode","insertCell","valueCell","selectNode","checkTableTimeout","clearTimeout","setTimeout","offsetHeight","maxHeight","parseInt","accessPopupMenu","popupWindow","isShown","_this","menuItems","onclick","PopupMenu","randomInt","angle","EditFormRoom","roomsManager","categoryManager","capacityNumbers","freezeButtonsCallback","setParams","room","setInputValues","setFocusOnInput","actionType","roomsTitleInput","capacity","roomsCapacityInput","getSliderContentWrap","getFormFieldsWrap","createTitleInput","createCapacityInput","categorySelect","renderCategorySelector","createBottomOptions","createButtons","sliderContentWrap","categorySelector","renderCategorySelectorWrap","categoryTagSelector","createCategoryTagSelector","isRendered","onAfterCategorySelectorRender","preparedCategories","prepareCategoriesForDialog","getCategories","selectedCategory","categoryId","getCategory","TagSelector","textBoxWidth","multiple","onTagAdd","itemsContainer","getItemsContainer","onTagRemove","dialogOptions","width","height","compactView","showAvatars","dropdownMode","itemOrder","icon","stubOptions","selectedItems","getDialog","getContainer","getOuterContainer","getTextBox","renderCreateButton","renderUpdateButton","renderCancelButton","createRoom","updateRoom","getSelectedCategory","location_id","isOpen","categories","map","category","item","EditFormCategory","preparedSelectedRooms","rooms","prepareRoomsForDialog","categoryTitleInput","locationSelector","renderRoomSelector","roomSelector","renderRoomSelectorWrap","roomTagSelector","createRoomTagSelector","onAfterRoomSelectorRender","preload","dynamicLoad","filters","createCategory","updateCategory","selectedRooms","getSelectedRooms","newSelectedRooms","prepareRoomsBeforeUpdate","oldSelectedRooms","toAddCategory","filter","x","toRemoveCategory","avatarOptions","RoomsInterface","SectionInterface","calendarContext","readonly","isConfigureList","SLIDER_WIDTH","SLIDER_DURATION","sliderId","CATEGORY_ROOMS_SHOWN_ALL","CATEGORY_ROOMS_SHOWN_SOME","CATEGORY_ROOMS_SHOWN_NONE","HELP_DESK_CODE","sliderOnClose","deleteRoomHandlerBinded","deleteRoomHandler","refreshRoomsBinded","refreshRooms","refreshCategoriesBinded","refreshCategories","config","accessNames","setAccessNames","setRoomsFromManager","setCategoriesFromManager","addEventEmitterSubscriptions","subscribe","destroyEventEmitterSubscriptions","unsubscribe","createContent","renderOuterWrap","titleWrap","renderTitleWrap","addButton","renderAddButton","roomFormWrap","renderRoomFormWrap","createRoomBlocks","openHelpDesk","showEditRoomForm","showAddMenu","menuButtons","createAddMenuButtons","addRoomMenu","createAddMenu","allowSliderClose","denySliderClose","showEditCategoryForm","position","PopupMenuWindow","setBlocksWrap","isObject","createCategoryBlock","createBlockWrap","blocksWrap","defaultBlockWrap","createRoomBlock","canDo","isFrozen","unfreezeButtons","getRooms","belongsToView","isPseudo","getCategoriesWithRooms","closeForms","formTitleNode","editSectionForm","getSectionAccessTasks","freezeButtons","getRandomColor","getDefaultSectionAccess","showRoomMenu","menuItemNode","itemNode","closest","createRoomMenuButtons","roomActionMenu","createRoomMenu","showOnlyOneSection","updateAllCategoriesCheckboxState","showRoomDeleteConfirm","top","reloadRoomsFromDatabase","listWrap","roomClickHandler","renderCategoryBlockWrap","categoryRooms","getCategoryRooms","setCheckboxStatus","determineCategoryCheckboxStatus","checkbox","renderCategoryBlockCheckbox","renderCategoryBlockTitle","actionCont","renderCategoryBlockActionsContainer","createCategoryBlockContent","checkboxStyle","checkboxStatus","renderRoomBlockWrap","renderRoomBlockCheckbox","renderRoomBlockTitle","renderRoomBlockActionsContainer","switchCategory","showCategoryMenu","roomId","getRoom","switchSection","updateCategoryCheckboxState","setRoomsForCategory","unsetCategoryRooms","addRoom","showOnlyOneCategory","sections","curSection","switchOnSection","switchOffSection","reload","createCategoryMenuButtons","categoryActionMenu","createCategoryMenu","showCategoryDeleteConfirm","findCheckBoxNodes","querySelectorAll","event","getSlider","getUrl","removeCustomEvent","proxy","SidePanel","Instance","BaseEvent","getData","deleteID","index","splice","deleteRoom","confirmRoomPopup","currentRoom","deleteCategory","confirmCategoryPopup","currentCategory","updatedCategoryCheckboxStatus","setCategoryCheckboxState","findCategoryCheckBoxNode","hasEnabled","hasDisabled","checkboxNode","switchOnCategoryRooms","switchOffCategoryRooms","MessageBox","message","getConfirmRoomInterfaceContent","minHeight","minWidth","maxWidth","buttons","Dialogs","MessageBoxButtons","OK_CANCEL","onOk","onCancel","okCaption","padding","contentPadding","animation","Helper"],"mappings":"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"}