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 : |
this.BX=this.BX||{};this.BX.Calendar=this.BX.Calendar||{};(function(e,t,s,i,o,a,r,n){"use strict";class c extends t.AddButton{constructor(e={}){super(e);this.setEventNamespace("BX.Calendar.Rooms.ReserveButton");this.zIndex=e.zIndex||3200;this.popupId=e.id||"add-button-"+Math.round(Math.random()*1e4);this.showTasks=e.showTasks;this.addEntryHandler=o.Type.isFunction(e.addEntry)?e.addEntry:null;this.addTaskHandler=o.Type.isFunction(e.addTask)?e.addTask:null;this.create()}create(){this.DOM.wrap=o.Dom.create("button",{props:{className:"ui-btn ui-btn-success",type:"button"},html:o.Loc.getMessage("EC_RESERVE"),events:{click:this.addEntry.bind(this)}})}}let l=e=>e,d,h,g,p;class u extends i.EventEmitter{constructor(e={}){super();this.DOM={};this.isCreated=false;this.setEventNamespace("BX.Calendar.SectionInterface.EditForm");this.DOM.outerWrap=e.wrap;this.sectionAccessTasks=e.sectionAccessTasks;this.sectionManager=e.sectionManager;this.closeCallback=e.closeCallback;this.BX=a.Util.getBX();this.keyHandlerBinded=this.keyHandler.bind(this)}show(e={}){this.section=e.section;this.create();this.showAccess=e.showAccess!==false;this.allowChangeName=e.allowChangeName!==false;if(this.showAccess){this.DOM.accessLink.style.display="";this.DOM.accessWrap.style.display=""}else{this.DOM.accessLink.style.display="none";this.DOM.accessWrap.style.display="none"}o.Event.bind(document,"keydown",this.keyHandlerBinded);o.Dom.addClass(this.DOM.outerWrap,"show");if(e.section){if(e.section.color){this.setColor(e.section.color)}this.setAccess(e.section.access||e.section.data.ACCESS||{});if(e.section.name){this.DOM.sectionTitleInput.value=e.section.name}}if(this.allowChangeName){BX.focus(this.DOM.sectionTitleInput);if(this.DOM.sectionTitleInput.value!==""){this.DOM.sectionTitleInput.select()}}else{o.Dom.addClass(this.DOM.sectionTitleInput,"--disabled");this.DOM.sectionTitleInput.disabled=true}this.isOpenedState=true}close(){this.isOpenedState=false;o.Event.unbind(document,"keydown",this.keyHandlerBinded);o.Dom.removeClass(this.DOM.outerWrap,"show");if(o.Type.isFunction(this.closeCallback)){this.closeCallback()}}isOpened(){return this.isOpenedState}create(){this.wrap=this.DOM.outerWrap.querySelector(".calendar-form-content");if(this.wrap){o.Dom.clean(this.wrap)}else{this.wrap=this.DOM.outerWrap.appendChild(o.Dom.create("DIV",{props:{className:"calendar-form-content"}}))}this.DOM.formFieldsWrap=this.wrap.appendChild(o.Dom.create("DIV",{props:{className:"calendar-list-slider-widget-content"}})).appendChild(o.Dom.create("DIV",{props:{className:"calendar-list-slider-widget-content-block"}}));this.DOM.sectionTitleInput=this.DOM.formFieldsWrap.appendChild(o.Dom.create("DIV",{props:{className:"calendar-field-container calendar-field-container-string"}})).appendChild(o.Dom.create("DIV",{props:{className:"calendar-field-block"}})).appendChild(o.Dom.create("INPUT",{attrs:{type:"text",placeholder:o.Loc.getMessage("EC_SEC_SLIDER_SECTION_TITLE")},props:{className:"calendar-field calendar-field-string"}}));this.DOM.optionsWrap=this.DOM.formFieldsWrap.appendChild(o.Dom.create("DIV",{props:{className:"calendar-list-slider-new-calendar-options-container"}}));this.initSectionColorSelector();this.initAccessController();this.buttonsWrap=this.DOM.formFieldsWrap.appendChild(o.Dom.create("DIV",{props:{className:"calendar-list-slider-btn-container"}}));this.saveBtn=new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_SAVE"),className:"ui-btn ui-btn-success",events:{click:this.save.bind(this)}});this.saveBtn.renderTo(this.buttonsWrap);new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_CANCEL"),className:"ui-btn ui-btn-link",events:{click:this.checkClose.bind(this)}}).renderTo(this.buttonsWrap);this.isCreated=true}keyHandler(e){if(e.keyCode===a.Util.getKeyCode("escape")){this.checkClose()}else if(e.keyCode===a.Util.getKeyCode("enter")){this.save()}}checkClose(){this.close()}save(){this.saveBtn.setWaiting(true);this.sectionManager.saveSection(this.DOM.sectionTitleInput.value,this.color,this.access,{section:this.section}).then((()=>{this.saveBtn.setWaiting(false);this.close()}))}initSectionColorSelector(){this.DOM.colorContWrap=this.DOM.optionsWrap.appendChild(o.Dom.create("DIV",{props:{className:"calendar-list-slider-new-calendar-option-color"},html:o.Loc.getMessage("EC_SEC_SLIDER_COLOR")}));this.colorIcon=this.DOM.colorContWrap.appendChild(o.Dom.create("SPAN",{props:{className:"calendar-list-slider-new-calendar-option-color-selected"}}));this.colorChangeLink=this.DOM.colorContWrap.appendChild(o.Dom.create("SPAN",{props:{className:"calendar-list-slider-new-calendar-option-color-change"},html:o.Loc.getMessage("EC_SEC_SLIDER_CHANGE")}));o.Event.bind(this.colorIcon,"click",this.showSimplePicker.bind(this));o.Event.bind(this.colorChangeLink,"click",this.showSimplePicker.bind(this))}showSimplePicker(e){const t=o.Runtime.clone(a.Util.getDefaultColorList(),true);const s=o.Dom.create("DIV",{props:{className:"calendar-simple-color-wrap calendar-field-container-colorpicker-square"}});const i=s.appendChild(o.Dom.create("DIV",{events:{click:BX.delegate(this.simplePickerClick,this)}}));const r=s.appendChild(o.Dom.create("DIV",{props:{className:"calendar-simple-color-more-link-wrap"}}));const n=r.appendChild(o.Dom.create("SPAN",{props:{className:"calendar-simple-color-more-link"},html:o.Loc.getMessage("EC_COLOR"),events:{click:BX.delegate(this.showFullPicker,this)}}));this.simplePickerColorWrap=i;this.colors=[];if(!t.includes(this.color)){t.push(this.color)}for(let e=0;e<t.length;e++){this.colors.push({color:t[e],node:i.appendChild(o.Dom.create("SPAN",{props:{className:"calendar-field-colorpicker-color-item"},style:{backgroundColor:t[e]},attrs:{"data-bx-calendar-color":t[e]},html:'<span class="calendar-field-colorpicker-color"></span>'}))})}this.lastActiveNode=this.colors[BX.util.array_search(this.color,t)||0].node;o.Dom.addClass(this.lastActiveNode,"active");this.simpleColorPopup=BX.PopupWindowManager.create("simple-color-popup-"+a.Util.getRandomInt(),this.colorIcon,{autoHide:true,closeByEsc:true,offsetTop:0,offsetLeft:9,lightShadow:true,content:s,cacheable:false});this.simpleColorPopup.setAngle({offset:10});this.simpleColorPopup.show(true)}simplePickerClick(e){const t=a.Util.findTargetNode(e.target||e.srcElement,this.DOM.outerWrap);if(o.Type.isElementNode(t)){const e=t.getAttribute("data-bx-calendar-color");if(e!==null){if(this.lastActiveNode){o.Dom.removeClass(this.lastActiveNode,"active")}o.Dom.addClass(t,"active");this.lastActiveNode=t;this.setColor(e)}}}showFullPicker(){var e;if(this.simpleColorPopup){this.simpleColorPopup.close()}if(!this.fullColorPicker||(e=this.fullColorPicker.getPopupWindow())!=null&&e.isDestroyed()){this.fullColorPicker=new BX.ColorPicker({bindElement:this.DOM.colorContWrap,onColorSelected:BX.delegate((function(e){this.setColor(e)}),this),popupOptions:{cacheable:false,zIndex:this.zIndex,events:{onPopupClose:BX.delegate((function(){}),this)}}})}this.fullColorPicker.open()}setColor(e){this.colorIcon.style.backgroundColor=e;this.color=e}setAccess(e){let t=0;for(let s in e){if(e.hasOwnProperty(s)){t++}}this.accessRowsCount=t;this.access=e;for(let t in e){if(e.hasOwnProperty(t)){this.insertAccessRow(a.Util.getAccessName(t),t,e[t])}}this.checkAccessTableHeight()}initAccessController(){this.buildAccessController();if(this.sectionManager&&this.sectionManager.calendarType==="group"){this.initDialogGroup()}else{this.initDialogStandard()}this.initAccessSelectorPopup()}initAccessSelectorPopup(){o.Event.bind(this.DOM.accessWrap,"click",(e=>{const t=a.Util.findTargetNode(e.target||e.srcElement,this.DOM.outerWrap);if(o.Type.isElementNode(t)){if(t.getAttribute("data-bx-calendar-access-selector")!==null){const e=t.getAttribute("data-bx-calendar-access-selector");if(this.accessControls[e]){this.showAccessSelectorPopup({node:this.accessControls[e].removeIcon,setValueCallback:t=>{if(this.accessTasks[t]&&this.accessControls[e]){this.accessControls[e].valueNode.innerHTML=o.Text.encode(this.accessTasks[t].title);this.access[e]=t}}})}}else if(t.getAttribute("data-bx-calendar-access-remove")!==null){const e=t.getAttribute("data-bx-calendar-access-remove");if(this.accessControls[e]){o.Dom.remove(this.accessControls[e].rowNode);this.accessControls[e]=null;delete this.access[e]}}}}))}buildAccessController(){this.DOM.accessLink=this.DOM.optionsWrap.appendChild(o.Tag.render(d||(d=l`<div class="calendar-list-slider-new-calendar-option-more">${0}</div>`),o.Loc.getMessage("EC_SEC_SLIDER_ACCESS")));this.DOM.accessWrap=this.DOM.formFieldsWrap.appendChild(o.Tag.render(h||(h=l` <div class="calendar-list-slider-access-container"> <div class="calendar-list-slider-access-inner-wrap"> ${0} </div> <div class="calendar-list-slider-new-calendar-options-container"> ${0} </div> </div>`),this.DOM.accessTable=o.Tag.render(g||(g=l` <table class="calendar-section-slider-access-table"></table> `)),this.DOM.accessButton=o.Tag.render(p||(p=l` <span class="calendar-list-slider-new-calendar-option-add"> ${0} </span>`),o.Loc.getMessage("EC_SEC_SLIDER_ACCESS_ADD"))));this.accessControls={};this.accessTasks=this.sectionAccessTasks;o.Event.bind(this.DOM.accessLink,"click",(()=>{if(o.Dom.hasClass(this.DOM.accessWrap,"shown")){o.Dom.removeClass(this.DOM.accessWrap,"shown")}else{o.Dom.addClass(this.DOM.accessWrap,"shown")}this.checkAccessTableHeight()}))}initDialogStandard(){o.Event.bind(this.DOM.accessButton,"click",(()=>{const e=[{id:"user",options:{analyticsSource:"calendar"}},{id:"department",options:{selectMode:"usersAndDepartments"}},{id:"meta-user",options:{"all-users":true}}];if(a.Util.isProjectFeatureEnabled()){e.push({id:"project"})}this.entitySelectorDialog=new r.Dialog({targetNode:this.DOM.accessButton,context:"CALENDAR",preselectedItems:[],enableSearch:true,events:{"Item:onSelect":this.handleEntitySelectorChanges.bind(this),"Item:onDeselect":this.handleEntitySelectorChanges.bind(this)},popupOptions:{targetContainer:document.body},entities:e});this.entitySelectorDialog.show()}))}initDialogGroup(){o.Event.bind(this.DOM.accessButton,"click",(()=>{this.entitySelectorDialog=new r.Dialog({targetNode:this.DOM.accessButton,context:"CALENDAR",preselectedItems:[],enableSearch:true,events:{"Item:onSelect":this.handleEntitySelectorChanges.bind(this),"Item:onDeselect":this.handleEntitySelectorChanges.bind(this)},popupOptions:{targetContainer:document.body},entities:[{id:"user",options:{analyticsSource:"calendar"}},{id:"department",options:{selectMode:"usersAndDepartments"}},{id:"meta-user",options:{"all-users":true}}],tabs:[{id:"groupAccess",title:this.sectionManager.ownerName}],items:[{id:"SG"+this.sectionManager.ownerId+"_"+"A",entityId:"group",tabs:"groupAccess",title:o.Loc.getMessage("EC_ACCESS_GROUP_ADMIN")},{id:"SG"+this.sectionManager.ownerId+"_"+"E",entityId:"group",tabs:"groupAccess",title:o.Loc.getMessage("EC_ACCESS_GROUP_MODERATORS")},{id:"SG"+this.sectionManager.ownerId+"_"+"K",entityId:"group",tabs:"groupAccess",title:o.Loc.getMessage("EC_ACCESS_GROUP_MEMBERS")}]});this.entitySelectorDialog.show()}))}handleEntitySelectorChanges(){const e=this.entitySelectorDialog.getSelectedItems();this.entitySelectorDialog.hide();if(o.Type.isArray(e)){e.forEach((e=>{let t;if(e.entityId==="group"){t=this.sectionManager.ownerName+": "+e.title.text}else{t=e.title.text}const s=a.Util.convertEntityToAccessCode(e);a.Util.setAccessName(s,t);this.insertAccessRow(t,s)}))}o.Runtime.debounce((()=>{this.entitySelectorDialog.destroy()}),400)()}insertAccessRow(e,t,s){if(!this.accessControls[t]){if(s===undefined){for(let e in this.sectionAccessTasks){if(this.sectionAccessTasks.hasOwnProperty(e)&&this.sectionAccessTasks[e].name==="calendar_view"){s=e;break}}}const i=o.Dom.adjust(this.DOM.accessTable.insertRow(-1),{props:{className:"calendar-section-slider-access-table-row"}}),a=o.Dom.adjust(i.insertCell(-1),{props:{className:"calendar-section-slider-access-table-cell"},html:'<span class="calendar-section-slider-access-title">'+o.Text.encode(e)+":</span>"}),r=o.Dom.adjust(i.insertCell(-1),{props:{className:"calendar-section-slider-access-table-cell"},attrs:{"data-bx-calendar-access-selector":t}}),n=r.appendChild(o.Dom.create("SPAN",{props:{className:"calendar-section-slider-access-container"}})),c=n.appendChild(o.Dom.create("SPAN",{text:this.accessTasks[s]?this.accessTasks[s].title:"",props:{className:"calendar-section-slider-access-value"}})),l=n.appendChild(o.Dom.create("SPAN",{props:{className:"calendar-section-slider-access-remove"},attrs:{"data-bx-calendar-access-remove":t}}));this.access[t]=s;this.accessControls[t]={rowNode:i,titleNode:a,valueNode:c,removeIcon:l}}}checkAccessTableHeight(){if(this.checkTableTimeout){this.checkTableTimeout=clearTimeout(this.checkTableTimeout)}this.checkTableTimeout=setTimeout((()=>{if(o.Dom.hasClass(this.DOM.accessWrap,"shown")){if(this.DOM.accessWrap.offsetHeight-this.DOM.accessTable.offsetHeight<36){this.DOM.accessWrap.style.maxHeight=parseInt(this.DOM.accessTable.offsetHeight)+100+"px"}}else{this.DOM.accessWrap.style.maxHeight=""}}),300)}showAccessSelectorPopup(e){if(this.accessPopupMenu&&this.accessPopupMenu.popupWindow&&this.accessPopupMenu.popupWindow.isShown()){return this.accessPopupMenu.close()}const t=this;const s=[];for(let i in this.accessTasks){if(this.accessTasks.hasOwnProperty(i)){s.push({text:this.accessTasks[i].title,onclick:function(s){return function(){e.setValueCallback(s);t.accessPopupMenu.close()}}(i)})}}this.accessPopupMenu=this.BX.PopupMenu.create("section-access-popup"+a.Util.randomInt(),e.node,s,{closeByEsc:true,autoHide:true,offsetTop:-5,offsetLeft:0,angle:true,cacheable:false});this.accessPopupMenu.show()}}let m=e=>e,C,f,y,E,M,O,D,b;class S extends u{constructor(e={}){super(e);this.setEventNamespace("BX.Calendar.Rooms.EditFormRoom");this.DOM.outerWrap=e.wrap;this.roomsManager=e.roomsManager;this.categoryManager=e.categoryManager;this.capacityNumbers=[3,5,7,10,25];this.zIndex=e.zIndex||3100;this.closeCallback=e.closeCallback;this.BX=a.Util.getBX();this.keyHandlerBinded=this.keyHandler.bind(this);this.freezeButtonsCallback=e.freezeButtonsCallback}show(e={}){this.setParams(e);this.create();if(this.showAccess){o.Dom.style(this.DOM.accessLink,"display",null);o.Dom.style(this.DOM.accessWrap,"display",null)}else{o.Dom.style(this.DOM.accessLink,"display","none");o.Dom.style(this.DOM.accessWrap,"display","none")}o.Event.bind(document,"keydown",this.keyHandlerBinded);o.Dom.addClass(this.DOM.outerWrap,"show");if(this.room){this.setInputValues(this.room)}this.setFocusOnInput();this.isOpenedState=true}setParams(e){this.actionType=e.actionType;this.room=e.room;this.showAccess=e.showAccess!==false}setInputValues(e){if(e.color){this.setColor(e.color)}this.setAccess(e.access||e.data.ACCESS||{});if(e.name){this.DOM.roomsTitleInput.value=e.name}if(this.room.capacity){this.DOM.roomsCapacityInput.value=e.capacity}}setFocusOnInput(){BX.focus(this.DOM.roomsTitleInput);if(this.DOM.roomsTitleInput.value!==""){this.DOM.roomsTitleInput.select()}}create(){this.wrap=this.getSliderContentWrap();this.DOM.formFieldsWrap=this.getFormFieldsWrap(this.wrap);this.DOM.roomsTitleInput=this.createTitleInput(this.DOM.formFieldsWrap);this.DOM.roomsCapacityInput=this.createCapacityInput(this.DOM.formFieldsWrap);this.DOM.categorySelect=this.DOM.formFieldsWrap.appendChild(this.renderCategorySelector());this.createBottomOptions(this.DOM.formFieldsWrap);this.createButtons(this.DOM.formFieldsWrap);this.isCreated=true}getSliderContentWrap(){let e=this.DOM.outerWrap.querySelector(".calendar-form-content");if(e){o.Dom.clean(e)}else{e=this.DOM.outerWrap.appendChild(o.Tag.render(C||(C=m` <div class="calendar-form-content"></div> `)))}return e}getFormFieldsWrap(e){return e.appendChild(o.Tag.render(f||(f=m` <div class="calendar-list-slider-widget-content"></div> `))).appendChild(o.Tag.render(y||(y=m` <div class="calendar-list-slider-widget-content-block"></div> `)))}createTitleInput(e){return e.appendChild(o.Tag.render(E||(E=m` <div class="calendar-field-container calendar-field-container-string"> <div class="calendar-field-block"> <input type="text" placeholder="${0}" class="calendar-field calendar-field-string" /> </div> </div> `),o.Loc.getMessage("EC_SEC_SLIDER_SECTION_TITLE"))).querySelector(".calendar-field")}createCapacityInput(e){return e.appendChild(o.Tag.render(M||(M=m` <div class="calendar-field-container calendar-field-container-string"> <div class="calendar-field-block"> <div class ="calendar-list-slider-card-widget-title" style="margin-bottom: 0"> <span class="calendar-list-slider-card-widget-title-text"> ${0} </span> <input type="number" class="calendar-field calendar-field-number" placeholder="0" min="0" max="9999"/> </div> </div> </div> `),o.Loc.getMessage("EC_SEC_SLIDER_SECTION_CAPACITY"))).querySelector(".calendar-field")}renderCategorySelector(){const e=this.renderCategorySelectorWrap();this.categoryTagSelector=this.createCategoryTagSelector();this.categoryTagSelector.renderTo(e.querySelector(".calendar-list-slider-card-widget-title"));if(this.categoryTagSelector.isRendered()){this.onAfterCategorySelectorRender()}return e}renderCategorySelectorWrap(){return o.Tag.render(O||(O=m` <div class="calendar-field-container calendar-field-container-string calendar-field-container-rooms"> <div class="calendar-field-block"> <div class ="calendar-list-slider-card-widget-title"> <span class="calendar-list-slider-card-widget-title-text"> ${0} </span> </div> </div> </div> `),o.Loc.getMessage("EC_SEC_SLIDER_ROOM_CATEGORY"))}createCategoryTagSelector(){let e=[];e=this.prepareCategoriesForDialog(this.categoryManager.getCategories());this.selectedCategory=null;if(this.room&&this.room.categoryId){this.selectedCategory=this.prepareCategoriesForDialog([this.categoryManager.getCategory(this.room.categoryId)])}return new r.TagSelector({placeholder:o.Loc.getMessage("EC_SEC_SLIDER_CATEGORY_SELECTOR_PLACEHOLDER"),textBoxWidth:320,multiple:false,events:{onTagAdd:()=>{const e=this.categoryTagSelector.getItemsContainer();o.Dom.addClass(e,"calendar-room-form-category-selector-container-with-change-button")},onTagRemove:()=>{const e=this.categoryTagSelector.getItemsContainer();o.Dom.removeClass(e,"calendar-room-form-category-selector-container-with-change-button")}},dialogOptions:{context:"CALENDAR_CONTEXT",width:315,height:280,compactView:true,showAvatars:false,dropdownMode:true,tabs:[{id:"category",title:"categories",itemOrder:{title:"asc"},icon:"none",stubOptions:{title:o.Loc.getMessage("EC_SEC_SLIDER_CATEGORY_SELECTOR_STUB")}}],items:e,selectedItems:this.selectedCategory}})}onAfterCategorySelectorRender(){o.Dom.addClass(this.categoryTagSelector.getDialog().getContainer(),"calendar-room-form-category-selector-dialog");o.Dom.addClass(this.categoryTagSelector.getOuterContainer(),"calendar-field-tag-selector-outer-container");o.Dom.addClass(this.categoryTagSelector.getTextBox(),"calendar-field-tag-selector-text-box");if(this.selectedCategory!==null){const e=this.categoryTagSelector.getItemsContainer();o.Dom.addClass(e,"calendar-room-form-category-selector-container-with-change-button")}}createBottomOptions(e){this.DOM.optionsWrap=e.appendChild(o.Tag.render(D||(D=m` <div class="calendar-list-slider-new-calendar-options-container"></div>`)));this.initSectionColorSelector();this.initAccessController()}createButtons(e){this.buttonsWrap=e.appendChild(o.Tag.render(b||(b=m` <div class="calendar-list-slider-btn-container"></div> `)));if(this.actionType==="createRoom"){this.renderCreateButton(this.buttonsWrap)}else if(this.actionType==="updateRoom"){this.renderUpdateButton(this.buttonsWrap)}this.renderCancelButton(this.buttonsWrap)}renderCreateButton(e){this.saveBtn=new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_SAVE"),className:"ui-btn ui-btn-success",events:{click:this.createRoom.bind(this)}});this.saveBtn.renderTo(e)}renderUpdateButton(e){this.saveBtn=new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_SAVE"),className:"ui-btn ui-btn-success",events:{click:this.updateRoom.bind(this)}});this.saveBtn.renderTo(e)}renderCancelButton(e){new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_CANCEL"),className:"ui-btn ui-btn-link",events:{click:this.checkClose.bind(this)}}).renderTo(e)}createRoom(){if(this.freezeButtonsCallback){this.freezeButtonsCallback()}this.saveBtn.setWaiting(true);this.roomsManager.createRoom({name:this.DOM.roomsTitleInput.value,capacity:this.DOM.roomsCapacityInput.value,color:this.color,access:this.access,categoryId:this.getSelectedCategory()}).then((()=>{this.saveBtn.setWaiting(false);this.close()}))}initAccessController(){this.buildAccessController();this.initDialogStandard();this.initAccessSelectorPopup()}updateRoom(){if(this.freezeButtonsCallback){this.freezeButtonsCallback()}this.saveBtn.setWaiting(true);this.roomsManager.updateRoom({id:this.room.id,location_id:this.room.location_id,name:this.DOM.roomsTitleInput.value,capacity:this.DOM.roomsCapacityInput.value,color:this.color,access:this.access,categoryId:this.getSelectedCategory()}).then((()=>{this.saveBtn.setWaiting(false);this.close()}))}keyHandler(e){if(this.categoryTagSelector.getDialog().isOpen()){return}if(e.keyCode===a.Util.getKeyCode("escape")){this.checkClose()}else if(e.keyCode===a.Util.getKeyCode("enter")&&this.actionType==="createRoom"){this.createRoom()}else if(e.keyCode===a.Util.getKeyCode("enter")&&this.actionType==="updateRoom"){this.updateRoom()}}prepareCategoriesForDialog(e){return e.map((e=>({id:e.id,entityId:"category",title:e.name,tabs:"category"})))}getSelectedCategory(){const e=this.categoryTagSelector.getDialog().getSelectedItems()[0];return e?e.id:null}}let R=e=>e,B,k,T,v,_,w;class A extends u{constructor(e={}){super(e);this.setEventNamespace("BX.Calendar.Rooms.EditFormCategory");this.DOM.outerWrap=e.wrap;this.categoryManager=e.categoryManager;this.zIndex=e.zIndex||3100;this.closeCallback=e.closeCallback;this.BX=a.Util.getBX();this.keyHandlerBinded=this.keyHandler.bind(this);this.preparedSelectedRooms=[];this.freezeButtonsCallback=e.freezeButtonsCallback}show(e={}){this.setParams(e);if(this.category&&this.category.rooms){this.preparedSelectedRooms=this.prepareRoomsForDialog(this.category.rooms)}this.create();o.Event.bind(document,"keydown",this.keyHandlerBinded);o.Dom.addClass(this.DOM.outerWrap,"show");if(this.category){this.setInputValues(this.category)}this.setFocusOnInput();this.isOpenedState=true}setParams(e){this.actionType=e.actionType;this.category=e.category}setInputValues(){if(this.category.name){this.DOM.categoryTitleInput.value=this.category.name}}setFocusOnInput(){BX.focus(this.DOM.categoryTitleInput);if(this.DOM.categoryTitleInput.value!==""){this.DOM.categoryTitleInput.select()}}create(e){this.wrap=this.getSliderContentWrap();this.DOM.formFieldsWrap=this.getFormFieldsWrap(this.wrap);this.DOM.categoryTitleInput=this.createTitleInput(this.DOM.formFieldsWrap);this.DOM.locationSelector=this.DOM.formFieldsWrap.appendChild(this.renderRoomSelector());this.createButtons(this.DOM.formFieldsWrap);this.isCreated=true}getSliderContentWrap(){let e=this.DOM.outerWrap.querySelector(".calendar-form-content");if(e){o.Dom.clean(e)}else{e=this.DOM.outerWrap.appendChild(o.Tag.render(B||(B=R` <div class="calendar-form-content"></div> `)))}return e}getFormFieldsWrap(e){return e.appendChild(o.Tag.render(k||(k=R` <div class="calendar-list-slider-widget-content"></div> `))).appendChild(o.Tag.render(T||(T=R` <div class="calendar-list-slider-widget-content-block"></div> `)))}createTitleInput(e){return e.appendChild(o.Tag.render(v||(v=R` <div class="calendar-field-container calendar-field-container-string"> <div class="calendar-field-block"> <input type="text" placeholder="${0}" class="calendar-field calendar-field-string" /> </div> </div> `),o.Loc.getMessage("EC_SEC_SLIDER_SECTION_TITLE"))).querySelector(".calendar-field")}renderRoomSelector(){const e=this.renderRoomSelectorWrap();this.roomTagSelector=this.createRoomTagSelector();this.roomTagSelector.renderTo(e.querySelector(".calendar-list-slider-card-widget-title"));if(this.roomTagSelector.isRendered()){this.onAfterRoomSelectorRender()}return e}renderRoomSelectorWrap(){return o.Tag.render(_||(_=R` <div class="calendar-field-container calendar-field-container-string"> <div class="calendar-field-block" > <div class ="calendar-list-slider-card-widget-title" style="border: none"> <span class="calendar-list-slider-card-widget-title-text"> ${0} </span> </div> </div> </div> `),o.Loc.getMessage("EC_SEC_SLIDER_ROOM_SELECTOR"))}createRoomTagSelector(){return new r.TagSelector({placeholder:o.Loc.getMessage("EC_SEC_SLIDER_ROOM_SELECTOR_PLACEHOLDER"),textBoxWidth:320,dialogOptions:{context:"CALENDAR_CONTEXT",width:315,height:280,compactView:true,showAvatars:true,dropdownMode:true,preload:true,entities:[{id:"room",dynamicLoad:true,filters:[{id:"calendar.roomFilter"}]}],selectedItems:this.preparedSelectedRooms,tabs:[{id:"room",title:"rooms",itemOrder:{title:"asc"},icon:"none",stubOptions:{title:o.Loc.getMessage("EC_SEC_SLIDER_ROOM_SELECTOR_STUB")}}]}})}onAfterRoomSelectorRender(){o.Dom.addClass(this.roomTagSelector.getDialog().getContainer(),"calendar-category-form-room-selector-dialog");o.Dom.addClass(this.roomTagSelector.getContainer(),"calendar-category-form-room-tag-selector");o.Dom.addClass(this.roomTagSelector.getOuterContainer(),"calendar-field-tag-selector-outer-container");o.Dom.addClass(this.roomTagSelector.getTextBox(),"calendar-field-tag-selector-text-box")}createButtons(e){this.buttonsWrap=e.appendChild(o.Tag.render(w||(w=R` <div class="calendar-list-slider-btn-container"></div> `)));if(this.actionType==="createCategory"){this.renderCreateButton(this.buttonsWrap)}else if(this.actionType==="updateCategory"){this.renderUpdateButton(this.buttonsWrap)}this.renderCancelButton(this.buttonsWrap)}renderCreateButton(e){this.saveBtn=new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_SAVE"),className:"ui-btn ui-btn-success",events:{click:this.createCategory.bind(this)}});this.saveBtn.renderTo(e)}renderUpdateButton(e){this.saveBtn=new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_SAVE"),className:"ui-btn ui-btn-success",events:{click:this.updateCategory.bind(this)}});this.saveBtn.renderTo(e)}renderCancelButton(e){new BX.UI.Button({text:o.Loc.getMessage("EC_SEC_SLIDER_CANCEL"),className:"ui-btn ui-btn-link",events:{click:this.checkClose.bind(this)}}).renderTo(e)}createCategory(){if(this.freezeButtonsCallback){this.freezeButtonsCallback()}this.saveBtn.setWaiting(true);const e=this.getSelectedRooms();this.categoryManager.createCategory({name:this.DOM.categoryTitleInput.value,rooms:e}).then((()=>{this.saveBtn.setWaiting(false);this.close()}))}updateCategory(){if(this.freezeButtonsCallback){this.freezeButtonsCallback()}const e=this.prepareRoomsBeforeUpdate(this.getSelectedRooms());const t=this.prepareRoomsBeforeUpdate(this.preparedSelectedRooms);const s=e.filter((e=>!t.includes(e)));const i=t.filter((t=>!e.includes(t)));this.saveBtn.setWaiting(true);this.categoryManager.updateCategory({toAddCategory:s,toRemoveCategory:i,id:this.category.id,name:this.DOM.categoryTitleInput.value}).then((()=>{this.saveBtn.setWaiting(false);this.close()}))}getSelectedRooms(){const e=this.roomTagSelector.getDialog().getSelectedItems();const t=[];e.map((e=>t.push(e.id)));return t}keyHandler(e){if(this.roomTagSelector.getDialog().isOpen()){return}if(e.keyCode===a.Util.getKeyCode("escape")){this.checkClose()}else if(e.keyCode===a.Util.getKeyCode("enter")&&this.actionType==="createCategory"){this.createCategory()}else if(e.keyCode===a.Util.getKeyCode("enter")&&this.actionType==="updateCategory"){this.updateCategory()}}prepareRoomsForDialog(e){return e.map((e=>({id:e.id,entityId:"room",title:e.name,avatarOptions:{bgColor:e.color,bgSize:"22px",bgImage:"none"},tabs:"room"})))}prepareRoomsBeforeUpdate(e){if(!e){return[]}return e.map((e=>{if(e.id){return parseInt(e.id,10)}return parseInt(e,10)}))}}let I=e=>e,x,W,L,N,X,P,U,F,H,z,G,$,V,Y,K,q,j,J,Q;class Z extends s.SectionInterface{constructor({calendarContext:e,readonly:t,roomsManager:s,categoryManager:i,isConfigureList:o=false}){super({calendarContext:e,readonly:t,roomsManager:s});this.SLIDER_WIDTH=400;this.SLIDER_DURATION=80;this.sliderId="calendar:rooms-slider";this.CATEGORY_ROOMS_SHOWN_ALL=0;this.CATEGORY_ROOMS_SHOWN_SOME=1;this.CATEGORY_ROOMS_SHOWN_NONE=2;this.HELP_DESK_CODE=14327694;this.setEventNamespace("BX.Calendar.RoomsInterface");this.roomsManager=s;this.categoryManager=i;this.isConfigureList=o;this.calendarContext=e;this.readonly=t;this.BX=a.Util.getBX();this.sliderOnClose=this.hide.bind(this);this.deleteRoomHandlerBinded=this.deleteRoomHandler.bind(this);this.refreshRoomsBinded=this.refreshRooms.bind(this);this.refreshCategoriesBinded=this.refreshCategories.bind(this);if(this.calendarContext!==null){if(this.calendarContext.util.config.accessNames){var r,n,c;a.Util.setAccessNames((r=this.calendarContext)==null?void 0:(n=r.util)==null?void 0:(c=n.config)==null?void 0:c.accessNames)}}this.setRoomsFromManager();this.setCategoriesFromManager()}addEventEmitterSubscriptions(){a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms:create",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms:update",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms:delete",this.deleteRoomHandlerBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms:pull-create",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms:pull-update",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms:pull-delete",this.deleteRoomHandlerBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms.Categories:create",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms.Categories:update",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms.Categories:delete",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms.Categories:pull-create",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms.Categories:pull-update",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.subscribe("BX.Calendar.Rooms.Categories:pull-delete",this.refreshCategoriesBinded)}destroyEventEmitterSubscriptions(){a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms:create",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms:update",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms:delete",this.deleteRoomHandlerBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms:pull-create",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms:pull-update",this.refreshRoomsBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms:pull-delete",this.deleteRoomHandlerBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms.Categories:create",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms.Categories:update",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms.Categories:delete",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms.Categories:pull-create",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms.Categories:pull-update",this.refreshCategoriesBinded);a.Util.getBX().Event.EventEmitter.unsubscribe("BX.Calendar.Rooms.Categories:pull-delete",this.refreshCategoriesBinded)}createContent(){this.DOM.outerWrap=this.renderOuterWrap();this.DOM.titleWrap=this.DOM.outerWrap.appendChild(this.renderTitleWrap());if(!this.readonly){this.DOM.addButton=this.DOM.titleWrap.appendChild(this.renderAddButton());this.DOM.roomFormWrap=this.DOM.outerWrap.appendChild(this.renderRoomFormWrap())}this.createRoomBlocks();return this.DOM.outerWrap}renderOuterWrap(){return o.Tag.render(x||(x=I` <div class="calendar-list-slider-wrap"></div> `))}renderTitleWrap(){return o.Tag.render(W||(W=I` <div class="calendar-list-slider-title-container"> <div class="calendar-list-slider-title"> ${0} <span onclick="${0}" class="ui-hint" title="${0}"> <span class="ui-hint-icon"></span> </span> </div> </div> `),o.Loc.getMessage("EC_SECTION_ROOMS"),this.openHelpDesk.bind(this),o.Loc.getMessage("EC_CALENDAR_HOW_DOES_IT_WORK"))}renderAddButton(){return o.Tag.render(L||(L=I` <span class="ui-btn-split ui-btn-light-border" style="margin-right: 0"> <span class="ui-btn-main" onclick="${0}"> ${0} </span> <span id = "add-menu-button" class="ui-btn-menu" onclick="${0}"></span> </span> `),this.showEditRoomForm.bind(this),o.Loc.getMessage("EC_ADD"),this.showAddMenu.bind(this))}renderRoomFormWrap(){return o.Tag.render(N||(N=I` <div class="calendar-list-slider-card-widget calendar-list-slider-form-wrap"> <div class="calendar-list-slider-card-widget-title"> <span class="calendar-list-slider-card-widget-title-text">${0}</span> </div> </div> `),o.Loc.getMessage("EC_SEC_SLIDER_NEW_ROOM"))}showAddMenu(){const e=this.createAddMenuButtons();if(e&&e.length>0){this.addRoomMenu=this.createAddMenu(e);this.addRoomMenu.popupWindow.show();this.addRoomMenu.popupWindow.subscribe("onClose",(()=>{this.allowSliderClose()}));this.denySliderClose()}}createAddMenuButtons(){const e=[];e.push({text:o.Loc.getMessage("EC_ADD_LOCATION"),onclick:()=>{this.addRoomMenu.close();this.showEditRoomForm()}});e.push({text:o.Loc.getMessage("EC_ADD_CATEGORY"),onclick:()=>{this.addRoomMenu.close();this.showEditCategoryForm()}});return e}createAddMenu(e){const t={offsetLeft:20,closeByEsc:true,angle:{position:"top"},autoHide:true,offsetTop:0,cacheable:false};return new BX.PopupMenuWindow("add-menu-form-"+a.Util.getRandomInt(),BX("add-menu-button"),e,t)}createRoomBlocks(){this.setBlocksWrap();if(o.Type.isArray(this.rooms)||o.Type.isObject(this.categories)){this.categories["categories"].forEach((e=>{if(e.rooms.length!==0){this.createCategoryBlock(e,this.createBlockWrap(this.DOM.blocksWrap))}}));if(this.categories["default"].length>0){let e=this.createBlockWrap(this.DOM.blocksWrap);this.categories["default"].forEach((t=>this.createRoomBlock(t,e)))}this.categories["categories"].forEach((e=>{if(e.rooms.length===0&&this.categoryManager.canDo("edit")){this.createCategoryBlock(e,this.createBlockWrap(this.DOM.blocksWrap))}}))}if(this.isFrozen()){this.unfreezeButtons()}}setRoomsFromManager(){this.rooms=this.roomsManager.getRooms().filter((function(e){return e.belongsToView()||e.isPseudo()}))}setCategoriesFromManager(){this.categories=this.categoryManager.getCategoriesWithRooms(this.rooms)}setBlocksWrap(){if(this.DOM.blocksWrap){o.Dom.clean(this.DOM.blocksWrap);o.Dom.adjust(this.DOM.blocksWrap,{props:{className:""}})}else{this.DOM.blocksWrap=this.DOM.outerWrap.appendChild(o.Tag.render(X||(X=I` <div></div> `)))}}showEditRoomForm(e={}){if(typeof e.actionType==="undefined"){e.actionType="createRoom"}this.closeForms();const t=this.DOM.roomFormWrap.querySelector(".calendar-list-slider-card-widget-title-text");this.editSectionForm=new S({wrap:this.DOM.roomFormWrap,sectionAccessTasks:this.roomsManager.getSectionAccessTasks(),roomsManager:this.roomsManager,categoryManager:this.categoryManager,freezeButtonsCallback:this.freezeButtons.bind(this),closeCallback:()=>{this.allowSliderClose()}});let s=true;if(e.room&&e.room.id){t.innerHTML=o.Loc.getMessage("EC_SEC_SLIDER_EDIT_SECTION_ROOM");s=e.room.canDo("access")}else{t.innerHTML=o.Loc.getMessage("EC_SEC_SLIDER_NEW_ROOM")}this.editSectionForm.show({showAccess:s,room:e.room||{color:a.Util.getRandomColor(),access:this.roomsManager.getDefaultSectionAccess()},actionType:e.actionType});this.denySliderClose()}showEditCategoryForm(e={}){if(typeof e.actionType==="undefined"){e.actionType="createCategory"}this.closeForms();const t=this.DOM.roomFormWrap.querySelector(".calendar-list-slider-card-widget-title-text");this.editSectionForm=new A({wrap:this.DOM.roomFormWrap,sectionAccessTasks:this.roomsManager.getSectionAccessTasks(),categoryManager:this.categoryManager,freezeButtonsCallback:this.freezeButtons.bind(this),closeCallback:()=>{this.allowSliderClose()}});if(e.category&&e.category.id){t.innerHTML=o.Loc.getMessage("EC_SEC_SLIDER_EDIT_ROOM_CATEGORY")}else{t.innerHTML=o.Loc.getMessage("EC_SEC_SLIDER_NEW_CATEGORY")}this.editSectionForm.show({category:e.category||{},actionType:e.actionType});this.denySliderClose()}showRoomMenu(e,t){const s=t.closest("[data-bx-calendar-section]")||t.closest("[ data-bx-calendar-section-without-action]");if(o.Type.isElementNode(s)){o.Dom.addClass(s,"active")}const i=this.createRoomMenuButtons(e);if(i&&i.length>0){this.roomActionMenu=this.createRoomMenu(i,t);this.roomActionMenu.show();this.roomActionMenu.popupWindow.subscribe("onClose",(()=>{if(o.Type.isElementNode(s)){o.Dom.removeClass(s,"active")}this.allowSliderClose()}));this.denySliderClose()}else{o.Dom.removeClass(s,"active")}}createRoomMenuButtons(e){const t=[];if(e.canDo("view_time")&&!this.isConfigureList){t.push({text:o.Loc.getMessage("EC_SEC_LEAVE_ONE_ROOM"),onclick:()=>{this.roomActionMenu.close();this.showOnlyOneSection(e,this.roomsManager.rooms);this.updateAllCategoriesCheckboxState()}})}if(!this.readonly&&e.canDo("edit_section")){t.push({text:o.Loc.getMessage("EC_SEC_EDIT"),onclick:()=>{this.roomActionMenu.close();this.showEditRoomForm({room:e,actionType:"updateRoom"})}})}if(e.canDo("edit_section")&&e.belongsToView()){t.push({text:o.Loc.getMessage("EC_SEC_DELETE"),onclick:()=>{this.roomActionMenu.close();this.showRoomDeleteConfirm(e)}})}return t}createRoomMenu(e,t){const s={closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:9,angle:true,cacheable:false};return top.BX.PopupMenu.create("section-menu-"+a.Util.getRandomInt(),t,e,s)}refreshRooms(){this.setRoomsFromManager();this.setCategoriesFromManager();this.createRoomBlocks()}refreshCategories(){this.roomsManager.reloadRoomsFromDatabase().then(this.refreshRoomsBinded)}createBlockWrap(e){const t=e.appendChild(o.Tag.render(P||(P=I` <div class="calendar-list-slider-card-widget calendar-list-slider-category-widget"> <div class="calendar-list-slider-widget-content"> <div class="calendar-list-slider-widget-content-block"> <ul class="calendar-list-slider-container"></ul> </div> </div> </div> `))).querySelector(".calendar-list-slider-container");o.Event.bind(t,"click",this.roomClickHandler.bind(this));return t}createCategoryBlock(e,t){if(!e.DOM){e.DOM={}}e.DOM.item=t.appendChild(this.renderCategoryBlockWrap(e));const s=this.categoryManager.getCategoryRooms(e,this.rooms);if(!this.isConfigureList&&s.length){e.setCheckboxStatus(this.determineCategoryCheckboxStatus(e,s));e.DOM.checkbox=e.DOM.item.appendChild(this.renderCategoryBlockCheckbox(e,s))}e.DOM.title=e.DOM.item.appendChild(this.renderCategoryBlockTitle(e));if(this.categoryManager.canDo("edit")||e.rooms.length>0){e.DOM.actionCont=e.DOM.item.appendChild(this.renderCategoryBlockActionsContainer(e))}this.createCategoryBlockContent(e,t);return e}renderCategoryBlockWrap(e){if(this.isConfigureList){return o.Tag.render(U||(U=I` <li class="calendar-list-slider-item-category" data-bx-calendar-category-without-action="${0}" > </li> `),e.id)}return o.Tag.render(F||(F=I` <li class="calendar-list-slider-item-category" data-bx-calendar-category="${0}"></li> `),e.id)}renderCategoryBlockCheckbox(e){let t="";if(e.checkboxStatus===this.CATEGORY_ROOMS_SHOWN_ALL){t="calendar-list-slider-item-checkbox-checked"}else if(e.checkboxStatus===this.CATEGORY_ROOMS_SHOWN_SOME){t="calendar-list-slider-item-checkbox-indeterminate"}return o.Tag.render(H||(H=I` <div class="calendar-title-checkbox calendar-list-slider-item-checkbox ${0}" style="background-color: #a5abb2" > </div> `),t)}renderCategoryBlockActionsContainer(e){return o.Tag.render(z||(z=I` <div class="calendar-list-slider-item-actions-container calendar-list-slider-item-context-menu-category-wrap" data-bx-calendar-category-menu="${0}" > <span class="calendar-list-slider-item-context-menu calendar-list-slider-item-context-menu-category" > </span> </div> `),e.id)}renderCategoryBlockTitle(e){return o.Tag.render(G||(G=I` <div class="calendar-list-slider-card-widget-title-text calendar-list-slider-item-category-text" title="${0}" > ${0} </div> `),o.Text.encode(e.name),o.Text.encode(e.name))}createCategoryBlockContent(e,t){if(e.rooms.length){e.rooms.forEach((e=>this.createRoomBlock(e,t)))}else{t.appendChild(o.Tag.render($||($=I` <li class="calendar-list-slider-card-widget-title-text">${0}</li> `),o.Loc.getMessage("EC_CATEGORY_EMPTY")))}}createRoomBlock(e,t){if(!e.DOM){e.DOM={}}e.DOM.item=t.appendChild(this.renderRoomBlockWrap(e));e.DOM.checkbox=e.DOM.item.appendChild(this.renderRoomBlockCheckbox(e));e.DOM.title=e.DOM.item.appendChild(this.renderRoomBlockTitle(e));e.DOM.actionCont=e.DOM.item.appendChild(this.renderRoomBlockActionsContainer(e));return e}renderRoomBlockWrap(e){if(this.isConfigureList){return o.Tag.render(V||(V=I` <li class="calendar-list-slider-item" data-bx-calendar-section-without-action="${0}"></li> `),e.id)}return o.Tag.render(Y||(Y=I` <li class="calendar-list-slider-item" data-bx-calendar-section="${0}"></li> `),e.id)}renderRoomBlockCheckbox(e){if(this.isConfigureList){return o.Tag.render(K||(K=I` <div class="calendar-field-select-icon" style="background-color: ${0}"></div> `),e.color)}return o.Tag.render(q||(q=I` <div class="calendar-list-slider-item-checkbox ${0}" style="background-color: ${0}" > </div> `),e.isShown()?"calendar-list-slider-item-checkbox-checked":"",e.color)}renderRoomBlockTitle(e){return o.Tag.render(j||(j=I` <div class="calendar-list-slider-item-name" title="${0}"> ${0} </div> `),o.Text.encode(e.name),o.Text.encode(e.name))}renderRoomBlockActionsContainer(e){return o.Tag.render(J||(J=I` <div class="calendar-list-slider-item-actions-container" data-bx-calendar-section-menu="${0}"> <span class="calendar-list-slider-item-context-menu"></span> </div> `),e.id)}roomClickHandler(e){const t=a.Util.findTargetNode(e.target||e.srcElement,this.DOM.outerWrap);if(t&&t.getAttribute){if(t.getAttribute("data-bx-calendar-category")!==null){const e=this.categoryManager.getCategory(parseInt(t.getAttribute("data-bx-calendar-category"),10));if(e&&e.rooms.length>0){this.switchCategory(e,this.rooms)}}else if(t.getAttribute("data-bx-calendar-category-menu")!==null){let e=t.getAttribute("data-bx-calendar-category-menu");this.showCategoryMenu(this.categoryManager.getCategory(e),t)}else if(t.getAttribute("data-bx-calendar-section-menu")!==null){let e=t.getAttribute("data-bx-calendar-section-menu");this.showRoomMenu(this.roomsManager.getRoom(e),t)}else if(t.getAttribute("data-bx-calendar-section")!==null){let e=t.getAttribute("data-bx-calendar-section");const s=this.roomsManager.getRoom(e);this.switchSection(s);this.updateCategoryCheckboxState(this.categoryManager.getCategory(s.categoryId))}}}setRoomsForCategory(e){this.categoryManager.unsetCategoryRooms(e);const t=this.roomsManager.getRooms();const s=this.categoryManager;t.forEach((function(t){if(t.categoryId===e){s.getCategory(e).addRoom(t)}}),this)}showOnlyOneCategory(e,t){for(let s of t){if(s.categoryId===e.id){this.switchOnSection(s)}else{this.switchOffSection(s)}}this.updateAllCategoriesCheckboxState();this.calendarContext.reload()}showCategoryMenu(e,t){this.setRoomsForCategory(e.id);const s=this.createCategoryMenuButtons(e);if(s&&s.length>0){this.categoryActionMenu=this.createCategoryMenu(s,t);this.categoryActionMenu.show();this.categoryActionMenu.popupWindow.subscribe("onClose",(()=>{this.allowSliderClose()}));this.denySliderClose()}}createCategoryMenuButtons(e){const t=[];if(this.categoryManager.canDo("view")&&!this.isConfigureList&&e.rooms.length>0){t.push({text:o.Loc.getMessage("EC_SEC_LEAVE_ONE_ROOM"),onclick:()=>{this.categoryActionMenu.close();this.showOnlyOneCategory(e,this.roomsManager.rooms)}})}if(!this.readonly&&this.categoryManager.canDo("edit")){t.push({text:o.Loc.getMessage("EC_SEC_EDIT"),onclick:()=>{this.categoryActionMenu.close();this.showEditCategoryForm({category:e,actionType:"updateCategory"})}})}if(this.categoryManager.canDo("edit")){t.push({text:o.Loc.getMessage("EC_SEC_DELETE"),onclick:()=>{this.categoryActionMenu.close();this.freezeButtons();this.showCategoryDeleteConfirm(e)}})}return t}createCategoryMenu(e,t){const s={closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:9,angle:true,cacheable:false};return top.BX.PopupMenu.create("category-menu-"+a.Util.getRandomInt(),t,e,s)}findCheckBoxNodes(e){return this.DOM.blocksWrap.querySelectorAll(".calendar-list-slider-item[data-bx-calendar-section='"+e+"'] .calendar-list-slider-item-checkbox")}destroy(e){if(e&&e.getSlider&&e.getSlider().getUrl()===this.sliderId){this.destroyEventEmitterSubscriptions();BX.removeCustomEvent("SidePanel.Slider:onCloseComplete",BX.proxy(this.destroy,this));BX.SidePanel.Instance.destroy(this.sliderId);delete this.DOM.blocksWrap;if(this.roomActionMenu){this.roomActionMenu.close()}}}deleteRoomHandler(e){if(e&&e instanceof a.Util.getBX().Event.BaseEvent){const t=e.getData();const s=parseInt(t.id);this.rooms.forEach(((e,t)=>{if(parseInt(e.id)===s&&e.DOM&&e.DOM.item){o.Dom.addClass(e.DOM.item,"calendar-list-slider-item-disappearing");setTimeout((()=>{o.Dom.clean(e.DOM.item,true);this.rooms.splice(t,1)}),300)}}),this);this.closeForms()}this.refreshRooms()}deleteRoom(e){this.roomsManager.deleteRoom(e.id,e.location_id);if(this.DOM.confirmRoomPopup){this.DOM.confirmRoomPopup.close();delete this.DOM.confirmRoomPopup}if(this.currentRoom){delete this.currentRoom}}deleteCategory(e){this.categoryManager.deleteCategory(e.id);if(this.DOM.confirmCategoryPopup){this.DOM.confirmCategoryPopup.close();delete this.DOM.confirmCategoryPopup}if(this.currentCategory){delete this.currentCategory}}freezeButtons(){o.Dom.addClass(this.DOM.outerWrap,"calendar-content-locked")}unfreezeButtons(){o.Dom.removeClass(this.DOM.outerWrap,"calendar-content-locked")}isFrozen(){return o.Dom.hasClass(this.DOM.outerWrap,"calendar-content-locked")}updateCategoryCheckboxState(e){if(!e){return}const t=this.determineCategoryCheckboxStatus(e,this.roomsManager.rooms);if(e.checkboxStatus!==t){e.setCheckboxStatus(t);this.setCategoryCheckboxState(this.findCategoryCheckBoxNode(e.id),t)}}determineCategoryCheckboxStatus(e,t){let s=false;let i=false;t.forEach((t=>{if(t.categoryId===e.id){if(t.isShown()&&!s){s=true}if(!t.isShown()&&!i){i=true}}}));if(s&&i){return this.CATEGORY_ROOMS_SHOWN_SOME}if(s){return this.CATEGORY_ROOMS_SHOWN_ALL}return this.CATEGORY_ROOMS_SHOWN_NONE}switchCategory(e,t){const s=this.findCategoryCheckBoxNode(e.id);switch(e.checkboxStatus){case this.CATEGORY_ROOMS_SHOWN_SOME:case this.CATEGORY_ROOMS_SHOWN_NONE:this.switchOnCategoryRooms(e.id,t);this.setCategoryCheckboxState(s,this.CATEGORY_ROOMS_SHOWN_ALL);e.setCheckboxStatus(this.CATEGORY_ROOMS_SHOWN_ALL);break;case this.CATEGORY_ROOMS_SHOWN_ALL:this.switchOffCategoryRooms(e.id,t);this.setCategoryCheckboxState(s,this.CATEGORY_ROOMS_SHOWN_NONE);e.setCheckboxStatus(this.CATEGORY_ROOMS_SHOWN_NONE);break;default:break}this.calendarContext.reload()}setCategoryCheckboxState(e,t){o.Dom.removeClass(e,"calendar-list-slider-item-checkbox-checked");o.Dom.removeClass(e,"calendar-list-slider-item-checkbox-indeterminate");switch(t){case this.CATEGORY_ROOMS_SHOWN_SOME:o.Dom.addClass(e,"calendar-list-slider-item-checkbox-indeterminate");break;case this.CATEGORY_ROOMS_SHOWN_ALL:o.Dom.addClass(e,"calendar-list-slider-item-checkbox-checked");break;default:break}}findCategoryCheckBoxNode(e){return this.DOM.outerWrap.querySelector(".calendar-list-slider-item-category[data-bx-calendar-category='"+e+"'] .calendar-list-slider-item-checkbox")}switchOnCategoryRooms(e,t){t.forEach((t=>{if(t.categoryId===e&&!t.isShown()){this.switchOnSection(t)}}))}switchOffCategoryRooms(e,t){t.forEach((t=>{if(t.categoryId===e&&t.isShown()){this.switchOffSection(t)}}))}updateAllCategoriesCheckboxState(){this.categoryManager.getCategories().forEach((e=>this.updateCategoryCheckboxState(e)))}showRoomDeleteConfirm(e){this.currentRoom=e;this.DOM.confirmRoomPopup=new n.MessageBox({message:this.getConfirmRoomInterfaceContent(o.Loc.getMessage("EC_ROOM_DELETE_CONFIRM")),minHeight:120,minWidth:280,maxWidth:300,buttons:BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,onOk:()=>{this.deleteRoom(e)},onCancel:()=>{this.DOM.confirmRoomPopup.close()},okCaption:o.Loc.getMessage("EC_SEC_DELETE"),popupOptions:{events:{onPopupClose:()=>{delete this.DOM.confirmRoomPopup;delete this.currentRoom}},closeByEsc:true,padding:0,contentPadding:0,animation:"fading-slide"}});this.DOM.confirmRoomPopup.show()}showCategoryDeleteConfirm(e){this.currentCategory=e;this.DOM.confirmCategoryPopup=new n.MessageBox({message:this.getConfirmRoomInterfaceContent(o.Loc.getMessage("EC_CATEGORY_DELETE_CONFIRM")),minHeight:120,minWidth:280,maxWidth:300,buttons:BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,onOk:()=>{this.deleteCategory(e)},onCancel:()=>{this.DOM.confirmCategoryPopup.close()},okCaption:o.Loc.getMessage("EC_SEC_DELETE"),popupOptions:{events:{onPopupClose:()=>{this.unfreezeButtons();delete this.DOM.confirmCategoryPopup;delete this.currentCategory}},closeByEsc:true,padding:0,contentPadding:0,animation:"fading-slide"}});this.DOM.confirmCategoryPopup.show()}getConfirmRoomInterfaceContent(e){return o.Tag.render(Q||(Q=I`<div class="calendar-list-slider-messagebox-text">${0}</div>`),e)}openHelpDesk(){top.BX.Helper.show("redirect=detail&code="+this.HELP_DESK_CODE)}keyHandler(e){if(e.keyCode===a.Util.getKeyCode("enter")){if(this.DOM.confirmRoomPopup&&this.currentRoom){this.deleteRoom(this.currentRoom)}if(this.DOM.confirmCategoryPopup&&this.currentCategory){this.deleteCategory(this.currentCategory)}}}}e.ReserveButton=c;e.RoomsInterface=Z;e.EditFormRoom=S})(this.BX.Calendar.Rooms=this.BX.Calendar.Rooms||{},BX.Calendar.Controls,BX.Calendar,BX.Event,BX,BX.Calendar,BX.UI.EntitySelector,BX.UI.Dialogs); //# sourceMappingURL=rooms.bundle.map.js