File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/calendar/resourcebookinguserfield/dist/resourcebookinguserfield.bundle.min.js
Back
this.BX=this.BX||{};(function(e,t,s,i,a,o,r,n){"use strict";class l{constructor(){this.label="";this.formLabel="";this.displayed=false;this.valuePopup=null;this.statePopup=null;this.displayCheckboxDisabled=false;this.DOM={}}build(e){this.updateConfig(e.params);this.DOM.fieldWrap=n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-item"}});this.DOM.labelWrap=this.DOM.fieldWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-field"}}));this.DOM.labelNode=this.DOM.labelWrap.appendChild(n.Dom.create("span",{props:{className:"calendar-resbook-webform-settings-popup-field-title"},text:this.getLabel()}));this.DOM.formTitleWrap=this.DOM.labelWrap.appendChild(n.Dom.create("span",{props:{className:"calendar-resbook-webform-settings-popup-field-subtitle"+(this.isDisplayed()?" show":"")}}));this.DOM.formTitleLabel=this.DOM.formTitleWrap.appendChild(n.Dom.create("span",{props:{className:"calendar-resbook-webform-settings-popup-field-subtitle-text"},text:this.getFormLabel(),events:{click:this.enableFormTitleEditMode.bind(this)}}));this.DOM.formTitleEditIcon=this.DOM.formTitleWrap.appendChild(n.Dom.create("span",{props:{className:"calendar-resbook-webform-settings-popup-field-edit"},events:{click:this.enableFormTitleEditMode.bind(this)}}));this.DOM.checkboxNode=this.DOM.fieldWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-checkbox-container"}})).appendChild(n.Dom.create("input",{attrs:{type:"checkbox",value:"Y",checked:this.isDisplayed(),disabled:this.displayCheckboxDisabled},events:{click:this.checkDisplayMode.bind(this)}}));this.buildStatePopup({wrap:this.DOM.fieldWrap,config:e.config||{}});this.buildValuePopup({wrap:this.DOM.fieldWrap,config:e.config||{}});if(n.Type.isFunction(e.changeSettingsCallback)){this.changeSettingsCallback=e.changeSettingsCallback}e.wrap.appendChild(this.DOM.fieldWrap)}destroy(){if(this.valuePopup&&n.Type.isFunction(this.valuePopup.closePopup)){this.valuePopup.closePopup()}if(this.statePopup&&n.Type.isFunction(this.statePopup.closePopup)){this.statePopup.closePopup()}}updateConfig(e={}){this.setFormLabel(e.label||this.formLabel);if(e.show){this.displayed=e.show!=="N"}}buildStatePopup(e){}buildValuePopup(e){}getLabel(){return this.label}getFormLabel(){return this.formLabel}setFormLabel(e){this.formLabel=e||""}isDisplayed(){return this.displayed}checkDisplayMode(){this.displayed=!!this.DOM.checkboxNode.checked;if(this.displayed){this.displayInForm()}else{this.hideInForm()}}displayInForm(){n.Dom.addClass(this.DOM.formTitleWrap,"show");this.triggerChangeRefresh()}hideInForm(){n.Dom.removeClass(this.DOM.formTitleWrap,"show");this.triggerChangeRefresh()}enableFormTitleEditMode(){if(!this.DOM.formTitleInputNode){this.DOM.formTitleInputNode=this.DOM.formTitleWrap.appendChild(n.Dom.create("input",{attrs:{type:"text",className:"calendar-resbook-webform-settings-popup-field-subtitle-text"},events:{blur:this.finishFormTitleEditMode.bind(this)}}))}this.DOM.formTitleInputNode.value=this.getFormLabel();this.DOM.formTitleInputNode.style.display="";this.DOM.formTitleLabel.style.display="none";this.DOM.formTitleEditIcon.style.display="none";this.DOM.formTitleInputNode.focus()}finishFormTitleEditMode(){this.setFormLabel(this.DOM.formTitleInputNode.value);n.Dom.adjust(this.DOM.formTitleLabel,{text:this.getFormLabel()});this.DOM.formTitleLabel.style.display="";this.DOM.formTitleEditIcon.style.display="";this.DOM.formTitleInputNode.style.display="none";this.triggerChangeRefresh()}getSettingsValue(){}triggerChangeRefresh(){setTimeout(function(){BX.onCustomEvent("ResourceBooking.webformSettings:onChanged")}.bind(this),50)}}class c{constructor(e){this.id="resourcebooking-settings-popup-"+Math.round(Math.random()*1e5);this.menuItems=[];this.DOM={outerWrap:e.wrap};this.handleClickFunc=this.handleClick.bind(this)}build(){this.DOM.innerWrap=this.DOM.outerWrap.appendChild(o.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-select"}}));this.DOM.currentStateLink=this.DOM.innerWrap.appendChild(o.Dom.create("span",{props:{className:"calendar-resbook-webform-settings-popup-select-value"},text:this.getCurrentModeState(),events:{click:this.showPopup.bind(this)}}))}showPopup(){if(this.isPopupShown()||this.disabled){return this.closePopup()}this.menuItems=this.getMenuItems();o.Event.unbind(document,"click",this.handleClickFunc);this.popup=BX.PopupMenu.create(this.id,this.DOM.currentStateLink,this.menuItems,{className:"popup-window-resource-select",closeByEsc:true,autoHide:false,offsetTop:0,offsetLeft:0,cacheable:false});this.popup.popupWindow.setAngle({offset:30,position:"top"});this.popup.show(true);this.popupContainer=this.popup.popupWindow.popupContainer;this.popup.menuItems.forEach((function(e){let t=false,s,i,a="";if(e.dataset&&e.dataset.type){i=e.dataset.checked;let o="menu-popup-item";if(e.dataset.type==="radio"){t="radio";s="menu-popup-item-resource-radio";if(e.dataset.inputName){a=' name="'+e.dataset.inputName+'" '}}else if(e.dataset.type==="checkbox"){t="checkbox";s="menu-popup-item-resource-checkbox"}let r='<div class="menu-popup-item-inner">';if(e.dataset.type==="submenu-list"){o+=" menu-popup-item-submenu";r+='<div class="menu-popup-item-resource menu-popup-item-resource-wide">'+'<span class="menu-popup-item-text">'+"<span>"+e.text+"</span>"+'<span class="menu-popup-item-resource-subvalue">'+(e.dataset.textValue||e.dataset.value)+"</span>"+"</span>"+"</div>"}else if(t){r+='<div class="menu-popup-item-resource">';if(t){r+='<input class="'+s+'" type="'+t+'"'+(i?'checked="checked"':"")+' id="'+e.id+'" '+a+">"+'<label class="menu-popup-item-text" for="'+e.id+'">'+e.text+"</label>"}r+="</div>"}r+="</div>";e.layout.item.className=o;e.layout.item.innerHTML=r}}),this);setTimeout((()=>{o.Event.bind(document,"click",this.handleClickFunc)}),50)}closePopup(){if(this.isPopupShown()){this.popup.close();this.popupContainer.style.maxHeight=""}}isPopupShown(){return this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown&&this.popup.popupWindow.isShown()&&this.popup.popupWindow.popupContainer&&BX.isNodeInDom(this.popup.popupWindow.popupContainer)}getCurrentModeState(){return""}getMenuItems(){return[]}getPopupContent(){this.DOM.innerWrap=o.Dom.create("div",{props:{className:""}});return this.DOM.innerWrap}handlePopupClick(e){let t=e.target||e.srcElement;if(t.hasAttribute("data-bx-resbook-control-node")||BX.findParent(t,{attribute:"data-bx-resbook-control-node"},this.DOM.innerWrap)){this.handleControlChanges()}}handleControlChanges(){if(this.changesTimeout){this.changesTimeout=clearTimeout(this.changesTimeout)}this.changesTimeout=setTimeout(BX.delegate((function(){BX.onCustomEvent("ResourceBooking.webformSettings:onChanged")}),this),50)}menuItemClick(e,t){}handleClick(e){let t=e.target||e.srcElement;if(this.isPopupShown()&&!BX.isParentForNode(this.popupContainer,t)){return this.closePopup({animation:true})}}setDisabled(){this.disabled=true;if(this.isPopupShown()){this.closePopup()}o.Dom.addClass(this.DOM.innerWrap,"disabled")}setEnabled(){this.disabled=false;o.Dom.removeClass(this.DOM.innerWrap,"disabled")}}class p{constructor(e){this.id="resourcebooking-settings-value-popup-"+Math.round(Math.random()*1e5);this.selectedValues=[];this.DOM={outerWrap:e.wrap}}build(){this.DOM.innerWrap=this.DOM.outerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-select-result"}}));this.DOM.valueLink=this.DOM.innerWrap.appendChild(n.Dom.create("span",{props:{className:"calendar-resbook-webform-settings-popup-select-value"},text:this.getCurrentValueState(),events:{click:this.showPopup.bind(this),mouseover:this.showHoverPopup.bind(this),mouseout:this.hideHoverPopup.bind(this)}}))}showPopup(){if(this.popup&&this.popup.isShown()){return this.popup.close()}this.popup=new BX.PopupWindow(this.id,this.DOM.valueLink,{autoHide:true,loseByEsc:true,offsetTop:0,offsetLeft:0,width:this.getPopupWidth(),lightShadow:true,content:this.getPopupContent()});this.popup.setAngle({offset:60,position:"top"});this.popup.show(true);BX.unbind(this.DOM.innerWrap,"click",BX.proxy(this.handlePopupClick,this));BX.bind(this.DOM.innerWrap,"click",BX.proxy(this.handlePopupClick,this));BX.addCustomEvent(this.popup,"onPopupClose",BX.delegate((function(){this.handlePopupCloose();this.popup.destroy(this.id);this.popup=null}),this))}closePopup(){if(this.isPopupShown()){this.popup.close()}}isPopupShown(){return this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown&&this.popup.popupWindow.isShown()&&this.popup.popupWindow.popupContainer&&BX.isNodeInDom(this.popup.popupWindow.popupContainer)}showHoverPopup(){}hideHoverPopup(){}handlePopupCloose(){}getCurrentValueState(){return BX.message("WEBF_RES_NO_VALUE")}getPopupContent(){this.DOM.innerWrap=n.Dom.create("div",{props:{className:""}});this.DOM.innerWrap.style.minWidth="500px";this.DOM.innerWrap.style.minHeight="30px";return this.DOM.innerWrap}getPopupWidth(){return null}handlePopupClick(e){var t=e.target||e.srcElement;if(t.hasAttribute("data-bx-resbook-control-node")||BX.findParent(t,{attribute:"data-bx-resbook-control-node"},this.DOM.innerWrap)){this.handleControlChanges()}}handleControlChanges(){setTimeout(BX.delegate((function(){BX.onCustomEvent("ResourceBooking.webformSettings:onChanged")}),this),50)}showPopupLoader(){if(this.DOM.innerWrap){this.hidePopupLoader();this.DOM.popupLoader=this.DOM.innerWrap.appendChild(n.BookingUtil.getLoader(50))}}hidePopupLoader(){n.Dom.remove(this.DOM.popupLoader)}}class h extends p{constructor(e){super(e);this.id="resourcebooking-settings-multiple-checknox-"+Math.round(Math.random()*1e5)}showPopup(){if(this.isPopupShown()){return this.closePopup()}var e=[];this.values.forEach((function(t){e.push({id:t.id,text:BX.util.htmlspecialchars(t.title),dataset:t.dataset,onclick:BX.proxy(this.menuItemClick,this)})}),this);if(e.length>1){this.selectAllMessage=this.selectAllMessage||"select all";e.push({text:this.selectAllMessage,onclick:BX.proxy(this.selectAllItemClick,this)})}this.popup=BX.PopupMenu.create(this.id,this.DOM.valueLink,e,{className:"popup-window-resource-select",closeByEsc:true,autoHide:false,offsetTop:0,offsetLeft:0});this.popup.popupWindow.setAngle({offset:60,position:"top"});this.popup.show(true);this.popupContainer=this.popup.popupWindow.popupContainer;BX.addCustomEvent(this.popup.popupWindow,"onPopupClose",BX.proxy((function(){this.handlePopupCloose();BX.PopupMenu.destroy(this.id);this.popup=null}),this));this.popup.menuItems.forEach((function(e){var t;if(e.dataset&&e.dataset.id){t=this.selectedValues.find((function(t){return t===e.id}));e.layout.item.className="menu-popup-item";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox" type="checkbox"'+(t?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+e.text+"</label>"+"</div>"+"</div>"}else{this.selectAllChecked=!this.values.find((function(e){return!this.selectedValues.find((function(t){return t===e.id}))}),this);e.layout.item.className="menu-popup-item menu-popup-item-resource-all";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox menu-popup-item-all-resources-checkbox" type="checkbox"'+(this.selectAllChecked?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+e.text+"</label>"+"</div>"+"</div>"}}),this);setTimeout(BX.delegate((function(){BX.bind(document,"click",BX.proxy(this.handleClick,this))}),this),50)}menuItemClick(e,t){var s,i=e.target||e.srcElement,a=t.layout.item.querySelector(".menu-popup-item-resource-checkbox"),o=this.values.find((function(e){return e.id===t.id}));if(o){if(i&&(n.Dom.hasClass(i,"menu-popup-item")||n.Dom.hasClass(i,"menu-popup-item-resource-checkbox")||n.Dom.hasClass(i,"menu-popup-item-inner"))){if(!n.Dom.hasClass(i,"menu-popup-item-resource-checkbox")){a.checked=!a.checked}if(a.checked){this.selectItem(o)}else{this.deselectItem(o);s=this.popupContainer.querySelector(".menu-popup-item-all-resources-checkbox");this.selectAllChecked=false;if(s){s.checked=false}}}this.handleControlChanges()}}selectItem(e){if(!BX.util.in_array(e.id,this.selectedValues)){this.selectedValues.push(e.id)}}deselectItem(e){var t=BX.util.array_search(e.id,this.selectedValues);if(t>=0){this.selectedValues=BX.util.deleteFromArray(this.selectedValues,t)}}selectAllItemClick(e,t){var s=e.target||e.srcElement;if(s&&(n.Dom.hasClass(s,"menu-popup-item")||n.Dom.hasClass(s,"menu-popup-item-resource-checkbox"))){var i=t.layout.item.querySelector(".menu-popup-item-resource-checkbox");if(n.Dom.hasClass(s,"menu-popup-item")){i.checked=!i.checked}var a,o=this.popupContainer.querySelectorAll("input.menu-popup-item-resource-checkbox");this.selectAllChecked=i.checked;for(a=0;a<o.length;a++){o[a].checked=this.selectAllChecked}this.selectedValues=[];if(this.selectAllChecked){this.values.forEach((function(e){this.selectedValues.push(e.id)}),this)}this.handleControlChanges()}}handleClick(e){var t=e.target||e.srcElement;if(this.isPopupShown()&&!BX.isParentForNode(this.popupContainer,t)){this.closePopup({animation:true})}this.handleControlChanges()}closePopup(){if(this.isPopupShown()){this.popup.close();this.popupContainer.style.maxHeight="";BX.unbind(document,"click",BX.proxy(this.handleClick,this))}}getSelectedValues(){return this.selectedValues}}let d=e=>e,u,m;class f extends l{constructor(){super();this.label=o.Loc.getMessage("WEBF_RES_USERS");this.formLabel=o.Loc.getMessage("WEBF_RES_USERS_LABEL");this.displayed=true;this.selectedUsers=[]}updateConfig(e){super.updateConfig(e);this.defaultMode=e.defaultMode}buildStatePopup(e){e.isDisplayed=this.isDisplayed.bind(this);e.defaultMode=e.defaultMode||this.defaultMode;this.statePopup=new g(e)}buildValuePopup(e){this.selectedUsers=o.Type.isArray(e.config.selected)?e.config.selected:e.config.selected.split("|");this.DOM.valueWrap=e.wrap;this.DOM.valueWrap.appendChild(o.Tag.render(u||(u=d` <div class="calendar-resbook-webform-settings-popup-select-result"> ${0} </div> `),this.DOM.usersValueLink=o.Tag.render(m||(m=d` <span class="calendar-resbook-webform-settings-popup-select-value" onclick="${0}" > ${0} </span> `),this.showUserSelectorDialog.bind(this),this.getCurrentUsersValueText())))}getCurrentUsersValueText(){const e=this.selectedUsers.length;return e?e+" "+F.getPluralMessage("WEBF_RES_USER",e):o.Loc.getMessage("WEBF_RES_NO_VALUE")}showUserSelectorDialog(){if(!(this.userSelectorDialog instanceof t.Dialog)){this.userSelectorDialog=new t.Dialog({targetNode:this.DOM.usersValueLink,context:"RESOURCEBOOKING",preselectedItems:this.selectedUsers.map((e=>["user",e])),enableSearch:true,zIndex:this.zIndex+10,events:{"Item:onSelect":this.handleUserSelectorChanges.bind(this),"Item:onDeselect":this.handleUserSelectorChanges.bind(this)},entities:[{id:"user",options:{inviteGuestLink:false,emailUsers:false}}]})}this.userSelectorDialog.show()}handleUserSelectorChanges(){this.selectedUsers=[];this.userSelectorDialog.getSelectedItems().forEach((e=>{if(e.entityId==="user"){this.selectedUsers.push(e.id)}}));this.DOM.usersValueLink.innerHTML=this.getCurrentUsersValueText();s.EventEmitter.emit("ResourceBooking.settingsUserSelector:onChanged");setTimeout((()=>{s.EventEmitter.emit("ResourceBooking.webformSettings:onChanged")}),50)}displayInForm(){super.displayInForm();this.statePopup.handleControlChanges();this.statePopup.setEnabled()}hideInForm(){super.hideInForm();this.statePopup.handleControlChanges();this.statePopup.setDisabled()}getValue(){return{show:this.isDisplayed()?"Y":"N",label:this.getFormLabel(),defaultMode:this.statePopup.getDefaultMode(),value:this.selectedUsers}}}class g extends c{constructor(e){super(e);this.name="usersStatePopup";this.inputName="user-select-mode";this.id="users-state-"+Math.round(Math.random()*1e3);this.defaultMode=e.defaultMode==="none"?"none":"auto";this.isDisplayed=o.Type.isFunction(e.isDisplayed)?e.isDisplayed:function(){return false};this.build()}build(){super.build();this.handleControlChanges()}getMenuItems(){return[new a.MenuItem({text:o.Loc.getMessage("WEBF_RES_SELECT_DEFAULT_TITLE"),delimiter:true}),{id:"users-state-list",text:o.Loc.getMessage("WEBF_RES_SELECT_DEFAULT_EMPTY"),dataset:{type:"radio",value:"none",inputName:this.inputName,checked:this.defaultMode==="none"},onclick:this.menuItemClick.bind(this)},{id:"users-state-auto",text:o.Loc.getMessage("WEBF_RES_SELECT_DEFAULT_FREE_USER"),dataset:{type:"radio",value:"auto",inputName:this.inputName,checked:this.defaultMode==="auto"},onclick:this.menuItemClick.bind(this)}]}menuItemClick(e,t){var s=e.target||e.srcElement;if(o.Type.isDomNode(s)&&s.nodeName.toLowerCase()==="input"&&t.dataset&&t.dataset.inputName===this.inputName){this.defaultMode=t.dataset.value}this.handleControlChanges();setTimeout(this.closePopup.bind(this),50)}getCurrentModeState(){return this.isDisplayed()?o.Loc.getMessage("WEBF_RES_SELECT_USER_FROM_LIST_SHORT")+(this.defaultMode==="none"?"":",<br>"+o.Loc.getMessage("WEBF_RES_AUTO_SELECT_USER_SHORT")):o.Loc.getMessage("WEBF_RES_SELECT_USER_FROM_LIST_AUTO")}handleControlChanges(){super.handleControlChanges();this.DOM.currentStateLink.innerHTML=this.getCurrentModeState();BX.onCustomEvent(this,"ResourceBooking.userSettingsField:onControlChanged",[])}getDefaultMode(){return this.defaultMode}}class E extends l{constructor(){super();this.label=o.Loc.getMessage("WEBF_RES_RESOURCES");this.formLabel=o.Loc.getMessage("WEBF_RES_RESOURCES_LABEL");this.displayed=true}updateConfig(e){super.updateConfig(e);this.defaultMode=e.defaultMode;this.multiple=e.multiple==="Y"}buildStatePopup(e){e.isDisplayed=this.isDisplayed.bind(this);e.defaultMode=e.defaultMode||this.defaultMode;e.multiple=e.multiple==null?this.multiple:e.multiple;this.statePopup=new S(e)}buildValuePopup(e){this.valuePopup=new b(e)}displayInForm(){super.displayInForm();this.statePopup.handleControlChanges();this.statePopup.setEnabled()}hideInForm(){super.hideInForm();this.statePopup.handleControlChanges();this.statePopup.setDisabled()}getValue(){return{show:this.isDisplayed()?"Y":"N",label:this.getFormLabel(),defaultMode:this.statePopup.getDefaultMode(),multiple:this.statePopup.getMultiple()?"Y":"N",value:this.valuePopup.getSelectedId()}}}class S extends c{constructor(e){super(e);this.name="resourcesStatePopup";this.inputName="resource-select-mode";this.defaultMode=e.defaultMode==="none"?"none":"auto";this.multiple=!!e.multiple;this.isDisplayed=o.Type.isFunction(e.isDisplayed)?e.isDisplayed:function(){return false};this.build()}build(){super.build();this.handleControlChanges()}getMenuItems(){return[new a.MenuItem({text:o.Loc.getMessage("WEBF_RES_SELECT_DEFAULT_TITLE"),delimiter:true}),{id:"resources-state-list",text:o.Loc.getMessage("WEBF_RES_SELECT_DEFAULT_EMPTY"),dataset:{type:"radio",value:"none",inputName:this.inputName,checked:this.defaultMode==="none"},onclick:this.menuItemClick.bind(this)},{id:"resources-state-auto",text:o.Loc.getMessage("WEBF_RES_AUTO_SELECT_RES"),dataset:{type:"radio",value:"auto",inputName:this.inputName,checked:this.defaultMode==="auto"},onclick:this.menuItemClick.bind(this)},{delimiter:true},{id:"resources-state-multiple",text:o.Loc.getMessage("WEBF_RES_MULTIPLE"),dataset:{type:"checkbox",value:"Y",checked:this.multiple},onclick:this.menuItemClick.bind(this)}]}getCurrentModeState(){return this.isDisplayed()?o.Loc.getMessage("WEBF_RES_SELECT_RES_FROM_LIST_SHORT")+(this.defaultMode==="none"?"":",<br>"+o.Loc.getMessage("WEBF_RES_AUTO_SELECT_RES_SHORT")):o.Loc.getMessage("WEBF_RES_SELECT_RES_FROM_LIST_AUTO")}handleControlChanges(){super.handleControlChanges();this.DOM.currentStateLink.innerHTML=this.getCurrentModeState();BX.onCustomEvent(this,"ResourceBooking.userSettingsField:onControlChanged",[])}menuItemClick(e,t){let s=e.target||e.srcElement;if(o.Type.isDomNode(s)&&s.nodeName.toLowerCase()==="input"&&t.dataset){if(t.dataset.inputName===this.inputName){this.defaultMode=t.dataset.value}else if(t.id==="resources-state-multiple"){this.multiple=!!s.checked}}this.handleControlChanges()}getDefaultMode(){return this.defaultMode}getMultiple(){return this.multiple}}class b extends h{constructor(e){super(e);this.name="resourcesValuePopup";this.selectAllMessage=o.Loc.getMessage("USER_TYPE_RESOURCE_SELECT_ALL");let t,s={},i=e.config.selected===null;if(o.Type.isArray(e.config.selected)){t=e.config.selected}else if(o.Type.isString(e.config.selected)){t=e.config.selected.split("|")}if(o.Type.isArray(t)){for(let e=0;e<t.length;e++){s[t[e]]=true}}this.values=[];this.selectedValues=[];if(o.Type.isArray(e.config.resources)){e.config.resources.forEach((function(e){let t=this.prepareValueId(e);this.values.push({id:t,title:e.title,dataset:e});if(i||s[e.id]){this.selectedValues.push(t)}}),this)}this.build()}handleControlChanges(){super.handleControlChanges();o.Dom.adjust(this.DOM.valueLink,{text:this.getCurrentValueState()})}getCurrentValueState(){let e=this.selectedValues.length;return e?e+" "+F.getPluralMessage("WEBF_RES_RESOURCE",e):o.Loc.getMessage("WEBF_RES_NO_VALUE")}prepareValueId(e){return e.type+"|"+e.id}getSelectedId(){let e=[];this.getSelectedValues().forEach((function(t){let s=t.split("|");if(s&&s[1]){e.push(parseInt(s[1]))}}));return e}}class C extends l{constructor(){super();this.label=o.Loc.getMessage("WEBF_RES_SERVICES");this.formLabel=o.Loc.getMessage("WEBF_RES_SERVICE_LABEL");this.displayed=true}buildStatePopup(e){if(e&&o.Type.isDomNode(e.wrap)){e.wrap.appendChild(o.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-select disabled"},html:'<span class="calendar-resbook-webform-settings-popup-select-value">'+o.Loc.getMessage("WEBF_RES_FROM_LIST")+"</span>"}))}}buildValuePopup(e){this.valuePopup=new k(e)}getValue(){return{show:this.isDisplayed()?"Y":"N",label:this.getFormLabel(),value:this.valuePopup.getSelectedValues()}}}class k extends h{constructor(e){super(e);this.name="ServiceValuePopup";this.selectAllMessage=o.Loc.getMessage("WEBF_RES_SELECT_ALL_SERVICES");let t=e.config.selected===null||e.config.selected===""||e.config.selected===undefined;this.values=[];this.selectedValues=[];let s,i={};if(o.Type.isArray(e.config.selected)){s=e.config.selected}else if(o.Type.isString(e.config.selected)){s=e.config.selected.split("|")}if(o.Type.isArray(s)){for(let e=0;e<s.length;e++){i[n.BookingUtil.translit(s[e])]=true}}if(o.Type.isArray(e.config.services)){e.config.services.forEach((function(e){e.id=n.BookingUtil.translit(e.name);if(e.id!==""){this.values.push({id:e.id,title:e.name+" - "+n.BookingUtil.getDurationLabel(e.duration),dataset:e});if(t||i[n.BookingUtil.translit(e.name)]){this.selectedValues.push(e.id)}}}),this)}this.config={};this.build()}handleControlChanges(){super.handleControlChanges();o.Dom.adjust(this.DOM.valueLink,{text:this.getCurrentValueState()})}getSelectedValues(){return this.selectedValues.length?this.selectedValues:"#EMPTY-SERVICE-LIST#"}getCurrentValueState(){let e=this.selectedValues.length;return e?e+" "+F.getPluralMessage("WEBF_RES_SERVICE",e):o.Loc.getMessage("WEBF_RES_NO_VALUE")}}class D extends l{constructor(){super();this.label=o.Loc.getMessage("WEBF_RES_DURATION");this.formLabel=o.Loc.getMessage("WEBF_RES_DURATION_LABEL")}updateConfig(e){super.updateConfig();this.defaultValue=e.defaultValue;this.manualInput=e.manualInput==="Y"}buildStatePopup(e){e.isDisplayed=this.isDisplayed.bind(this);e.defaultValue=this.defaultValue;e.manualInput=this.manualInput;this.statePopup=new L(e)}displayInForm(){super.displayInForm();this.statePopup.handleControlChanges()}hideInForm(){super.hideInForm();this.statePopup.handleControlChanges()}getValue(){return{show:this.isDisplayed()?"Y":"N",label:this.getFormLabel(),defaultValue:this.statePopup.getDefaultValue(),manualInput:this.statePopup.getManualInput()?"Y":"N"}}}class L extends c{constructor(e){super(e);this.name="durationStatePopup";this.inputName="duration-select-mode";this.manualInput=!!e.manualInput;this.defaultValue=e.defaultValue||60;this.isDisplayed=o.Type.isFunction(e.isDisplayed)?e.isDisplayed:function(){return false};this.durationList=n.BookingUtil.getDurationList(e.fullDay);this.build()}build(){super.build();this.handleControlChanges()}getMenuItems(){return[{id:"duration-default-value",text:o.Loc.getMessage("WEBF_RES_SELECT_DURATION_AUTO"),dataset:{type:"submenu-list",value:this.defaultValue,textValue:this.getDurationLabelByValue(this.defaultValue)},items:this.getDefaultMenuItems()}].concat(this.isDisplayed()?[{delimiter:true},{id:"duration-manual-input",text:o.Loc.getMessage("WEBF_RES_SELECT_MANUAL_INPUT"),dataset:{type:"checkbox",value:"Y",checked:this.manualInput},onclick:this.menuItemClick.bind(this)}]:[])}getDefaultMenuItems(){let e=[];if(o.Type.isArray(this.durationList)){this.durationList.forEach((function(t){e.push({id:"duration-"+t.value,dataset:{type:"duration",value:t.value},text:t.label,onclick:this.menuItemClick.bind(this)})}),this)}return e}getDurationLabelByValue(e){let t=this.durationList.find((function(t){return parseInt(t.value)===parseInt(e)}));return t?t.label:null}getCurrentModeState(){return this.isDisplayed()?o.Loc.getMessage("WEBF_RES_SELECT_DURATION_FROM_LIST_SHORT")+(",<br>"+o.Loc.getMessage("WEBF_RES_SELECT_DURATION_BY_DEFAULT")+" "+this.getDurationLabelByValue(this.defaultValue)):o.Loc.getMessage("WEBF_RES_SELECT_DURATION_AUTO")+" "+this.getDurationLabelByValue(this.defaultValue)}handleControlChanges(){super.handleControlChanges();this.DOM.currentStateLink.innerHTML=this.getCurrentModeState();BX.onCustomEvent(this,"ResourceBooking.userSettingsField:onControlChanged",[])}menuItemClick(e,t){let s=e.target||e.srcElement;if(o.Type.isDomNode(s)&&s.nodeName.toLowerCase()==="input"&&t.dataset){if(t.id==="duration-manual-input"){this.manualInput=!!s.checked}}else if(t.dataset&&t.dataset.type==="duration"){this.defaultValue=parseInt(t.dataset.value)}this.handleControlChanges()}getManualInput(){return this.manualInput}getDefaultValue(){return this.defaultValue}}class y extends l{constructor(){super();this.label=o.Loc.getMessage("WEBF_RES_DATE");this.formLabel=o.Loc.getMessage("WEBF_RES_DATE_LABEL");this.displayed=true;this.displayCheckboxDisabled=true}updateConfig(e){super.updateConfig();this.style=e.style;this.start=e.start}buildStatePopup(e){e.style=e.style||this.style;e.start=e.start||this.start;this.statePopup=new O(e)}getValue(){return{label:this.getFormLabel(),style:this.statePopup.getStyle(),start:this.statePopup.getStart()}}}class O extends c{constructor(e){super(e);this.name="dateStatePopup";this.styleInputName="date-select-style";this.startInputName="date-select-start";this.style=e.style==="popup"?"popup":"line";this.start=e.start==="today"?"today":"free";this.build()}getMenuItems(){return[new a.MenuItem({text:o.Loc.getMessage("WEBF_RES_CALENDAR_STYLE"),delimiter:true}),{id:"date-state-style-popup",text:o.Loc.getMessage("WEBF_RES_CALENDAR_STYLE_POPUP"),dataset:{type:"radio",value:"popup",inputName:this.styleInputName,checked:this.style==="popup"},onclick:this.menuItemClick.bind(this)},{id:"date-state-style-line",text:o.Loc.getMessage("WEBF_RES_CALENDAR_STYLE_LINE"),dataset:{type:"radio",value:"line",inputName:this.styleInputName,checked:this.style==="line"},onclick:this.menuItemClick.bind(this)},new a.MenuItem({text:o.Loc.getMessage("WEBF_RES_CALENDAR_START_FROM"),delimiter:true}),{id:"date-state-start-from-today",text:o.Loc.getMessage("WEBF_RES_CALENDAR_START_FROM_TODAY"),dataset:{type:"radio",value:"today",inputName:this.startInputName,checked:this.start==="today"},onclick:this.menuItemClick.bind(this)},{id:"date-state-start-from-free",text:o.Loc.getMessage("WEBF_RES_CALENDAR_START_FROM_FREE"),dataset:{type:"radio",value:"free",inputName:this.startInputName,checked:this.start==="free"},onclick:this.menuItemClick.bind(this)}]}getCurrentModeState(){return(this.style==="popup"?o.Loc.getMessage("WEBF_RES_CALENDAR_STYLE_POPUP"):o.Loc.getMessage("WEBF_RES_CALENDAR_STYLE_LINE"))+", "+(this.start==="today"?o.Loc.getMessage("WEBF_RES_CALENDAR_START_FROM_TODAY_SHORT"):o.Loc.getMessage("WEBF_RES_CALENDAR_START_FROM_FREE_SHORT"))}handleControlChanges(){super.handleControlChanges();o.Dom.adjust(this.DOM.currentStateLink,{text:this.getCurrentModeState()})}menuItemClick(e,t){let s=e.target||e.srcElement;if(o.Type.isDomNode(s)&&s.nodeName.toLowerCase()==="input"&&t.dataset){if(t.dataset.inputName===this.styleInputName){this.style=t.dataset.value}else if(t.dataset.inputName===this.startInputName){this.start=t.dataset.value}}this.handleControlChanges()}getStyle(){return this.style}getStart(){return this.start}}class M extends l{constructor(){super();this.label=o.Loc.getMessage("WEBF_RES_TIME");this.formLabel=o.Loc.getMessage("WEBF_RES_TIME_LABEL");this.displayed=true;this.displayCheckboxDisabled=true}updateConfig(e){super.updateConfig();this.style=e.style;this.showOnlyFree=e.showOnlyFree==="Y";this.showFinishTime=e.showFinishTime==="Y";this.scale=parseInt(e.scale)}buildStatePopup(e){e.style=e.style||this.style;e.showOnlyFree=this.showOnlyFree;e.showFinishTime=this.showFinishTime;e.scale=this.scale;this.statePopup=new _(e)}getValue(){return{label:this.getFormLabel(),style:this.statePopup.getStyle(),showFinishTime:this.statePopup.getShowFinishTime(),showOnlyFree:this.statePopup.getShowOnlyFree(),scale:this.statePopup.getScale()}}}class _ extends c{constructor(e){super(e);this.name="timeStatePopup";this.styleInputName="date-select-style";this.showOnlyFree=e.showOnlyFree;this.showFinishTime=e.showFinishTime;this.scale=e.scale;this.stateShowFreeId="time-state-show-free";this.stateShowFinishId="time-state-show-finish";this.style=e.style==="select"?"select":"slots";this.build()}build(){super.build();this.handleControlChanges()}getMenuItems(){return[new a.MenuItem({text:o.Loc.getMessage("WEBF_RES_TIME_STYLE"),delimiter:true}),{id:"time-state-style-select",text:o.Loc.getMessage("WEBF_RES_TIME_STYLE_SELECT"),dataset:{type:"radio",value:"select",inputName:this.styleInputName,checked:this.style==="select"},onclick:this.menuItemClick.bind(this)},{id:"time-state-style-slots",text:o.Loc.getMessage("WEBF_RES_TIME_STYLE_SLOT"),dataset:{type:"radio",value:"slots",inputName:this.styleInputName,checked:this.style==="slots"},onclick:this.menuItemClick.bind(this)},{delimiter:true},{id:"time-state-scale",text:o.Loc.getMessage("WEBF_RES_TIME_BOOKING_SIZE"),dataset:{type:"submenu-list",value:this.scale,textValue:this.getDurationLabelByValue(this.scale)},items:this.getDurationMenuItems()},{delimiter:true},{id:this.stateShowFreeId,text:o.Loc.getMessage("WEBF_RES_TIME_SHOW_FREE_ONLY"),dataset:{type:"checkbox",value:"Y",checked:this.showOnlyFree},onclick:this.menuItemClick.bind(this)},{id:this.stateShowFinishId,text:o.Loc.getMessage("WEBF_RES_TIME_SHOW_FINISH_TIME"),dataset:{type:"checkbox",value:"Y",checked:this.showFinishTime},onclick:this.menuItemClick.bind(this)}]}getCurrentModeState(){return(this.style==="select"?o.Loc.getMessage("WEBF_RES_TIME_STYLE_SELECT"):o.Loc.getMessage("WEBF_RES_TIME_STYLE_SLOT"))+",<br>"+o.Loc.getMessage("WEBF_RES_TIME_BOOKING_SIZE")+": "+this.getDurationLabelByValue(this.scale)}handleControlChanges(){super.handleControlChanges();this.DOM.currentStateLink.innerHTML=this.getCurrentModeState()}menuItemClick(e,t){let s=e.target||e.srcElement;if(o.Type.isDomNode(s)&&s.nodeName.toLowerCase()==="input"&&t.dataset){if(t.dataset.inputName===this.styleInputName){this.style=t.dataset.value}else if(t.id===this.stateShowFreeId){this.showOnlyFree=!!s.checked}else if(t.id===this.stateShowFinishId){this.showFinishTime=!!s.checked}}else if(t.dataset&&t.dataset.type==="scale"){this.scale=parseInt(t.dataset.value)}this.handleControlChanges()}getDurationMenuItems(){let e=this.getDurationList(),t=[];e.forEach((function(e){t.push({id:"duration-"+e.value,dataset:{type:"scale",value:e.value},text:e.label,onclick:this.menuItemClick.bind(this)})}),this);return t}getDurationList(){if(!this.durationList){this.durationList=n.BookingUtil.getDurationList(false);this.durationList=this.durationList.filter((function(e){return e.value&&e.value>=15&&e.value<=240}))}return this.durationList}getDurationLabelByValue(e){let t=this.getDurationList().find((function(t){return t.value===e}));return t?t.label:null}getStyle(){return this.style}getScale(){return this.scale}getShowOnlyFree(){return this.showOnlyFree?"Y":"N"}getShowFinishTime(){return this.showFinishTime?"Y":"N"}}class R extends n.EventEmitter{constructor(e){super();this.setEventNamespace("BX.Calendar.ResourcebookingUserfield.AdjustFieldController");this.params=e;this.complexFields={};this.userFieldParams=null;this.id="resbook-settings-popup-"+Math.round(Math.random()*1e5);this.settingsData=R.getSettingsData(this.params.settings.data);this.params.settings.data=this.settingsData;this.DOM={innerWrap:this.params.innerWrap,settingsWrap:this.params.innerWrap.appendChild(n.Dom.create("div",{attrs:{"data-bx-resource-field-settings":"Y"}})),captionNode:this.params.captionNode,settingsInputs:{}}}init(){this.showFieldLoader();F.getUserFieldParams({fieldName:this.params.entityName,selectedUsers:this.getSelectedUsers()}).then((e=>{this.hideFieldLoader();this.userFieldParams=e;this.fieldLayout=new n.FieldViewControllerEdit({wrap:this.DOM.innerWrap,displayTitle:false,title:this.getCaption(),settings:this.getSettings()});this.fieldLayout.build();this.updateSettingsDataInputs();this.emit("afterInit",new n.BaseEvent({data:{fieldName:this.params.entityName,settings:this.getSettings()}}))}))}showSettingsPopup(){F.getUserFieldParams({fieldName:this.params.entityName,selectedUsers:this.getSelectedUsers()}).then(function(e){this.userFieldParams=e;this.settingsPopupId="calendar-resourcebooking-settings-popup-"+Math.round(Math.random()*1e5);this.settingsPopup=new BX.PopupWindow(this.settingsPopupId,null,{content:this.getSettingsContentNode(),className:"calendar-resbook-webform-settings-popup-window",autoHide:false,lightShadow:true,closeByEsc:true,overlay:{backgroundColor:"black",opacity:500},zIndex:-400,titleBar:n.Loc.getMessage("WEBF_RES_SETTINGS"),closeIcon:true,buttons:[new BX.PopupWindowButton({})]});let t=this.settingsPopup.buttons[0].buttonNode.parentNode;n.Dom.remove(this.settingsPopup.buttons[0].buttonNode);this.settingsPopup.buttons[0].buttonNode=t.appendChild(n.Dom.create("button",{props:{className:"ui-btn ui-btn-success"},events:{click:function(){this.settingsPopup.close()}.bind(this)},text:n.Loc.getMessage("WEBF_RES_CLOSE_SETTINGS_POPUP")}));BX.removeClass(this.settingsPopup.buttons[0].buttonNode,"popup-window-button");this.settingsPopup.show();BX.addCustomEvent(this.settingsPopup,"onPopupClose",function(e){this.destroyControls();this.settingsPopup.destroy(this.id);this.settingsPopup=null;if(this.previewFieldLayout){this.previewFieldLayout.destroy()}}.bind(this))}.bind(this))}getSettingsContentNode(){let e=n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup"}});let t=e.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-inner"}}));this.buildSettingsForm({wrap:t});let s=e.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-preview"}}));this.previewFieldLayout=new n.FieldViewControllerPreview({wrap:s,title:this.getCaption(),settings:this.getSettings()});this.previewFieldLayout.build();BX.addCustomEvent("ResourceBooking.webformSettings:onChanged",this.handleWebformSettingsChanges.bind(this));return e}buildSettingsForm(e){let t=this.getSettings(),s=e.wrap,i="title-"+this.id;this.DOM.captionWrap=s.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-title"},html:'<label for="'+i+'" class="calendar-resbook-webform-settings-popup-label">'+n.Loc.getMessage("WEBF_RES_NAME_LABEL")+"</label>"}));this.DOM.captionInput=this.DOM.captionWrap.appendChild(n.Dom.create("input",{attrs:{id:i,className:"calendar-resbook-webform-settings-popup-input",type:"text",value:this.getCaption()},events:{change:this.updateCaption.bind(this),blur:this.updateCaption.bind(this),keyup:this.updateCaption.bind(this)}}));this.updateCaption();this.DOM.fieldsOuterWrap=s.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-content"},html:'<div class="calendar-resbook-webform-settings-popup-head">'+'<div class="calendar-resbook-webform-settings-popup-head-inner">'+'<span class="calendar-resbook-webform-settings-popup-head-text">'+n.Loc.getMessage("WEBF_RES_FIELD_NAME")+"</span>"+'<span class="calendar-resbook-webform-settings-popup-head-decs">'+n.Loc.getMessage("WEBF_RES_FIELD_NAME_IN_FORM")+"</span>"+"</div>"+'<div class="calendar-resbook-webform-settings-popup-head-inner">'+'<span class="calendar-resbook-webform-settings-popup-head-text">'+n.Loc.getMessage("WEBF_RES_FIELD_SHOW_IN_FORM")+"</span>"+"</div>"+"</div>"}));this.DOM.fieldsWrap=this.DOM.fieldsOuterWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-list"}}));if(t.userfieldSettings.useUsers){this.buildComplexField("users",{wrap:this.DOM.fieldsWrap,changeSettingsCallback:this.updateSettings.bind(this),params:t.data.users,config:{users:t.userfieldSettings.users,selected:t.data.users.value}});BX.addCustomEvent("ResourceBooking.settingsUserSelector:onChanged",this.checkBitrix24Limitation.bind(this))}if(t.userfieldSettings.useResources){this.buildComplexField("resources",{wrap:this.DOM.fieldsWrap,changeSettingsCallback:this.updateSettings.bind(this),params:t.data.resources,config:{resources:t.userfieldSettings.resources,selected:t.data.resources.value}})}if(t.userfieldSettings.useServices){this.buildComplexField("services",{wrap:this.DOM.fieldsWrap,changeSettingsCallback:this.updateSettings.bind(this),params:t.data.services,config:{services:t.userfieldSettings.services,selected:t.data.services.value}})}else{this.buildComplexField("duration",{wrap:this.DOM.fieldsWrap,changeSettingsCallback:this.updateSettings.bind(this),params:t.data.duration})}this.buildComplexField("date",{wrap:this.DOM.fieldsWrap,changeSettingsCallback:this.updateSettings.bind(this),params:t.data.date});if(!t.userfieldSettings.fullDay){this.buildComplexField("time",{wrap:this.DOM.fieldsWrap,changeSettingsCallback:this.updateSettings.bind(this),params:t.data.time})}this.DOM.fieldsWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-webform-settings-popup-item"},html:'<div class="calendar-resbook-webform-settings-popup-decs">'+n.Loc.getMessage("WEBF_RES_BOOKING_SETTINGS_HELP").replace("#START_LINK#",'<a href="javascript:void(0);"'+" onclick=\"if (top.BX.Helper){top.BX.Helper.show('redirect=detail&code=8366733');}\">").replace("#END_LINK#","</a>")+"</div>"}))}destroyControls(){for(let e in this.complexFields){if(this.complexFields.hasOwnProperty(e)&&n.Type.isFunction(this.complexFields[e].destroy)){this.complexFields[e].destroy()}}}handleWebformSettingsChanges(){if(this.refreshLayoutTimeout){this.refreshLayoutTimeout=clearTimeout(this.refreshLayoutTimeout)}this.refreshLayoutTimeout=setTimeout(function(){for(let e in this.complexFields){if(this.complexFields.hasOwnProperty(e)&&n.Type.isFunction(this.complexFields[e].getValue)){this.settingsData[e]=this.complexFields[e].getValue()}}this.updateSettingsDataInputs();this.previewFieldLayout.refreshLayout(this.settingsData);this.fieldLayout.refreshLayout(this.settingsData);this.previewFieldLayout.getOuterWrap().style.maxHeight=Math.round(this.previewFieldLayout.getInnerWrap().offsetHeight*.73)+"px"}.bind(this),100)}buildComplexField(e,t){switch(e){case"users":this.complexFields[e]=new f;break;case"resources":this.complexFields[e]=new E;break;case"services":this.complexFields[e]=new C;break;case"duration":this.complexFields[e]=new D;break;case"date":this.complexFields[e]=new y;break;case"time":this.complexFields[e]=new M;break}if(n.Type.isObject(this.complexFields[e])){this.complexFields[e].build(t)}}static getSettingsData(e){let t,s,i=BX.clone(R.getDefaultSettingsData(),true);if(n.Type.isPlainObject(e)){for(t in e){if(e.hasOwnProperty(t)&&i[t]){if(n.Type.isPlainObject(e[t])){for(s in e[t]){if(e[t].hasOwnProperty(s)){i[t][s]=e[t][s]}}}else{i[t]=e[t]}}}}return i}static getDefaultSettingsData(){return{users:{show:"Y",label:n.Loc.getMessage("WEBF_RES_USERS_LABEL"),defaultMode:"auto",value:null},resources:{show:"Y",label:n.Loc.getMessage("WEBF_RES_RESOURCES_LABEL"),defaultMode:"auto",multiple:"N",value:null},services:{show:"Y",label:n.Loc.getMessage("WEBF_RES_SERVICE_LABEL"),value:null},duration:{show:"Y",label:n.Loc.getMessage("WEBF_RES_DURATION_LABEL"),defaultValue:60,manualInput:"N"},date:{label:n.Loc.getMessage("WEBF_RES_DATE_LABEL"),style:"line",start:"today"},time:{label:n.Loc.getMessage("WEBF_RES_TIME_LABEL"),style:"slots",showOnlyFree:"Y",showFinishTime:"N",scale:60}}}getSelectedUsers(){return this.settingsData&&this.settingsData.users&&n.Type.isString(this.settingsData.users.value)?this.settingsData.users.value.split("|"):[]}updateSettingsDataInputs(){let e,t;for(e in this.settingsData){if(this.settingsData.hasOwnProperty(e)){if(n.Type.isPlainObject(this.settingsData[e])){for(t in this.settingsData[e]){if(this.settingsData[e].hasOwnProperty(t)){this.updateSettingsInputValue([e,t],this.settingsData[e][t])}}}else{this.updateSettingsInputValue([e],this.settingsData[e])}}}}updateSettingsInputValue(e,t){let s=e.join("-");if(!this.DOM.settingsInputs[s]){this.DOM.settingsInputs[s]=this.DOM.settingsWrap.appendChild(n.Dom.create("input",{attrs:{type:"hidden",name:this.params.formName+"[SETTINGS_DATA]["+e.join("][")+"]"}}))}if(n.Type.isArray(t)){t=t.join("|")}this.DOM.settingsInputs[s].value=t}showFieldLoader(){if(this.DOM.innerWrap){this.hideFieldLoader();this.DOM.fieldLoader=this.DOM.innerWrap.appendChild(n.BookingUtil.getLoader(100))}}hideFieldLoader(){n.Dom.remove(this.DOM.fieldLoader)}getSettings(){if(!this.params.settings.userfieldSettings){this.params.settings.userfieldSettings={resources:this.userFieldParams.SETTINGS.SELECTED_RESOURCES,users:this.userFieldParams.SETTINGS.SELECTED_USERS,services:this.userFieldParams.SETTINGS.SERVICE_LIST,fullDay:this.userFieldParams.SETTINGS.FULL_DAY==="Y",useResources:this.userFieldParams.SETTINGS.USE_RESOURCES==="Y"&&this.userFieldParams.SETTINGS.SELECTED_RESOURCES.length,useUsers:this.userFieldParams.SETTINGS.USE_USERS==="Y",useServices:this.userFieldParams.SETTINGS.USE_SERVICES==="Y",resourceLimit:this.userFieldParams.SETTINGS.RESOURCE_LIMIT,userIndex:this.userFieldParams.SETTINGS.USER_INDEX}}return this.params.settings}updateSettings(e){}getCaption(){return this.params.settings.caption}updateCaption(){let e=this.DOM.captionInput.value;if(this.params.settings.caption!==e||!this.DOM.settingsInputs.caption){this.params.settings.caption=e;if(this.previewFieldLayout){this.previewFieldLayout.updateTitle(this.params.settings.caption)}if(!this.DOM.settingsInputs.caption){this.DOM.settingsInputs.caption=this.DOM.settingsWrap.appendChild(n.Dom.create("input",{attrs:{type:"hidden",name:this.params.formName+"[CAPTION]"}}))}this.DOM.settingsInputs.caption.value=this.params.settings.caption;if(this.DOM.captionNode){n.Dom.adjust(this.DOM.captionNode,{text:this.params.settings.caption})}}}isRequired(){return this.params.settings.required==="Y"}updateRequiredValue(){this.params.settings.required=this.DOM.requiredCheckbox.checked?"Y":"N";if(!this.DOM.settingsInputs.required){this.DOM.settingsInputs.required=this.DOM.settingsWrap.appendChild(n.Dom.create("input",{attrs:{type:"hidden",name:this.params.formName+"[REQUIRED]"}}))}this.DOM.settingsInputs.required.value=this.params.settings.required}checkBitrix24Limitation(){let e=0,t=this.getSettings();if(n.Type.isArray(this.params.settings.userfieldSettings.resources)){e+=this.params.settings.userfieldSettings.resources.length}if(t.userfieldSettings.useUsers&&this.complexFields.users){let t=this.complexFields.users.getValue();if(t&&n.Type.isArray(t.value)){e+=t.value.length}}if(t.userfieldSettings.resourceLimit>0&&e>t.userfieldSettings.resourceLimit){n.BookingUtil.showLimitationPopup()}}}class B{constructor(e){this.params=e||{};this.id=this.params.id||"user-selector-"+Math.round(Math.random()*1e5);this.wrapNode=this.params.wrapNode;this.destinationInputName=this.params.inputName||"EVENT_DESTINATION";this.params.selectGroups=false;this.addMessage=this.params.addMessage||BX.message("USER_TYPE_RESOURCE_ADD_USER");this.checkLimit=BX.type.isFunction(e.checkLimitCallback)?e.checkLimitCallback:false;if(!this.params.itemsSelected){this.params.itemsSelected=this.getSocnetDestinationConfig("itemsSelected")}this.DOM={outerWrap:this.params.outerWrap,wrapNode:this.params.wrapNode};this.create()}create(){if(this.DOM.outerWrap){n.Dom.addClass(this.DOM.outerWrap,"calendar-resourcebook-folding-block"+(this.params.shown!==false?" shown":""))}let e=this.id;BX.bind(this.wrapNode,"click",BX.delegate((function(t){let s=t.target||t.srcElement;if(s.className==="calendar-resourcebook-content-block-control-delete"){BX.SocNetLogDestination.deleteItem(s.getAttribute("data-item-id"),s.getAttribute("data-item-type"),e);let t=BX.findParent(s,{className:"calendar-resourcebook-content-block-control-inner"});if(t&&BX.hasClass(t,"shown")){BX.removeClass(t,"shown");setTimeout((function(){BX.remove(t)}),300)}}else{BX.SocNetLogDestination.openDialog(e)}}),this));this.socnetDestinationInputWrap=this.wrapNode.appendChild(BX.create("SPAN",{props:{className:"calendar-resourcebook-destination-input-box"}}));this.socnetDestinationInput=this.socnetDestinationInputWrap.appendChild(BX.create("INPUT",{props:{id:e+"-inp",className:"calendar-resourcebook-destination-input"},attrs:{value:"",type:"text"},events:{keydown:function(t){return BX.SocNetLogDestination.searchBeforeHandler(t,{formName:e,inputId:e+"-inp"})},keyup:function(t){return BX.SocNetLogDestination.searchHandler(t,{formName:e,inputId:e+"-inp",linkId:"event-grid-dest-add-link",sendAjax:true})}}}));this.socnetDestinationLink=this.wrapNode.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-control-text calendar-resourcebook-content-block-control-text-add"},text:this.addMessage}));this.init()}show(){if(this.DOM.outerWrap){n.Dom.addClass(this.DOM.outerWrap,"shown")}}hide(){if(this.DOM.outerWrap){BX.removeClass(this.DOM.outerWrap,"shown")}}isShown(){if(this.DOM.outerWrap){return BX.hasClass(this.DOM.outerWrap,"shown")}}init(){if(!this.socnetDestinationInput||!this.wrapNode)return;let e=this;this.params.items=this.getSocnetDestinationConfig("items");this.params.itemsLast=this.getSocnetDestinationConfig("itemsLast");if(this.params.selectGroups===false){this.params.items.groups={};this.params.items.department={};this.params.items.sonetgroups={}}BX.SocNetLogDestination.init({name:this.id,searchInput:this.socnetDestinationInput,extranetUser:false,userSearchArea:"I",bindMainPopup:{node:this.wrapNode,offsetTop:"5px",offsetLeft:"15px"},bindSearchPopup:{node:this.wrapNode,offsetTop:"5px",offsetLeft:"15px"},callback:{select:BX.proxy(this.selectCallback,this),unSelect:BX.proxy(this.unSelectCallback,this),openDialog:BX.proxy(this.openDialogCallback,this),closeDialog:BX.proxy(this.closeDialogCallback,this),openSearch:BX.proxy(this.openDialogCallback,this),closeSearch:function(){e.closeDialogCallback(true)}},items:this.params.items,itemsLast:this.params.itemsLast,itemsSelected:this.params.itemsSelected,departmentSelectDisable:this.params.selectGroups===false})}closeAll(){if(BX.SocNetLogDestination.isOpenDialog()){BX.SocNetLogDestination.closeDialog()}BX.SocNetLogDestination.closeSearch()}selectCallback(e,t){if(t==="users"){this.addUserBlock(e);BX.onCustomEvent("OnResourceBookDestinationAddNewItem",[e,this.id]);this.socnetDestinationInput.value=""}}addUserBlock(e,t){if(this.checkLimit&&!this.checkLimit()){return n.BookingUtil.showLimitationPopup()}if(this.getAttendeesCodesList().includes(e.id)){return}const s=this.wrapNode.querySelectorAll(`calendar-resourcebook-content-block-control-inner[data-id='${e.id}']`);for(let e=0;e<s.length;e++){BX.remove(s[e])}const i=this.wrapNode.appendChild(BX.create("DIV",{attrs:{"data-id":e.id,className:"calendar-resourcebook-content-block-control-inner green"},html:'<div class="calendar-resourcebook-content-block-control-text">'+e.name+"</div>"+'<div data-item-id="'+e.id+'" data-item-type="users" class="calendar-resourcebook-content-block-control-delete"></div>'+'<input type="hidden" name="'+this.destinationInputName+"[U][]"+'" value="'+e.id+'">'}));if(t!==false){setTimeout(BX.delegate((function(){n.Dom.addClass(i,"shown")}),this),1)}else{n.Dom.addClass(i,"shown")}this.wrapNode.appendChild(this.socnetDestinationInputWrap);this.wrapNode.appendChild(this.socnetDestinationLink)}unSelectCallback(e){let t=BX.findChildren(this.wrapNode,{attribute:{"data-id":e.id}},true);if(t!=null){for(let e=0;e<t.length;e++){BX.remove(t[e])}}BX.onCustomEvent("OnResourceBookDestinationUnselect",[e,this.id]);this.socnetDestinationInput.value="";this.socnetDestinationLink.innerHTML=this.addMessage}openDialogCallback(){BX.style(this.socnetDestinationInputWrap,"display","inline-block");BX.style(this.socnetDestinationLink,"display","none");BX.focus(this.socnetDestinationInput)}closeDialogCallback(e){if(!BX.SocNetLogDestination.isOpenSearch()&&this.socnetDestinationInput.value.length<=0){BX.style(this.socnetDestinationInputWrap,"display","none");BX.style(this.socnetDestinationLink,"display","inline-block");if(e===true)this.socnetDestinationInput.value="";if(BX.SocNetLogDestination.backspaceDisable||BX.SocNetLogDestination.backspaceDisable!=null)BX.unbind(window,"keydown",BX.SocNetLogDestination.backspaceDisable);BX.bind(window,"keydown",BX.SocNetLogDestination.backspaceDisable=function(e){if(e.keyCode===8){e.preventDefault();return false}});setTimeout((function(){BX.unbind(window,"keydown",BX.SocNetLogDestination.backspaceDisable);BX.SocNetLogDestination.backspaceDisable=null}),5e3)}}getCodes(){let e=this.wrapNode.getElementsByTagName("INPUT"),t=[],s,i;for(s=0;s<e.length;s++){i=BX.util.trim(e[s].value);if(i){t.push(e[s].value)}}return t}getAttendeesCodes(){let e=this.wrapNode.getElementsByTagName("INPUT"),t=[],s;for(s=0;s<e.length;s++){t.push(e[s].value)}return this.convertAttendeesCodes(t)}convertAttendeesCodes(e){let t={};if(BX.type.isArray(e)){e.forEach((function(e){if(e.substr(0,2)==="DR"){t[e]="department"}else if(e.substr(0,2)==="UA"){t[e]="groups"}else if(e.substr(0,2)==="SG"){t[e]="sonetgroups"}else if(e.substr(0,1)==="U"){t[e]="users"}}))}return t}getAttendeesCodesList(e){let t=[];if(!e)e=this.getAttendeesCodes();for(let s in e){if(e.hasOwnProperty(s)){t.push(s)}}return t}getSocnetDestinationConfig(e){let t,s=this.params.socnetDestination||{};if(e==="items"){t={users:s.USERS||{},groups:s.EXTRANET_USER==="Y"||s.DENY_TOALL?{}:{UA:{id:"UA",name:BX.message("USER_TYPE_RESOURCE_TO_ALL_USERS")}},sonetgroups:s.SONETGROUPS||{},department:s.DEPARTMENT||{},departmentRelation:s.DEPARTMENT_RELATION||{}}}else if(e==="itemsLast"&&s.LAST){t={users:s.LAST.USERS||{},groups:s.EXTRANET_USER==="Y"?{}:{UA:true},sonetgroups:s.LAST.SONETGROUPS||{},department:s.LAST.DEPARTMENT||{}}}else if(e==="itemsSelected"){t=s.SELECTED||{}}return t||{}}getSelectedValues(){let e=[],t,s=this.wrapNode.querySelectorAll("input");for(t=0;t<s.length;t++){if(s[t].type==="hidden"&&s[t].value){if(s[t].value.substr(0,1)==="U"){e.push(parseInt(s[t].value.substr(1)))}}}return e}setValues(e,t){let s,i;const a=this.wrapNode.querySelectorAll(".calendar-resourcebook-content-block-control-inner");for(s=0;s<a.length;s++){BX.remove(a[s])}for(s=0;s<e.length;s++){if(BX.SocNetLogDestination.obItems[this.id]["users"]){i=BX.SocNetLogDestination.obItems[this.id]["users"]["U"+e[s]];if(i){this.addUserBlock({id:"U"+e[s],name:i.name},false)}}}if(t!==false&&this.onChangeCallback&&BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}}getId(){return this.id}}class T{constructor(e){this.params=e||{};this.editMode=!!this.params.editMode;this.id=this.params.id||"resource-selector-"+Math.round(Math.random()*1e5);this.resourceList=BX.type.isArray(e.resourceList)?e.resourceList:[];this.checkLimit=BX.type.isFunction(e.checkLimitCallback)?e.checkLimitCallback:false;this.checkLimitForNew=BX.type.isFunction(e.checkLimitCallbackForNew)?e.checkLimitCallbackForNew:false;this.selectedValues=[];this.selectedValuesIndex={};this.selectedBlocks=[];this.newValues=[];this.DOM={outerWrap:this.params.outerWrap,blocksWrap:this.params.blocksWrap||false,listWrap:this.params.listWrap};if(this.editMode){this.DOM.controlsWrap=this.params.controlsWrap}else{this.DOM.arrowNode=BX.create("span",{props:{className:"calendar-resourcebook-content-block-detail-icon calendar-resourcebook-content-block-detail-icon-arrow"}})}this.onChangeCallback=this.params.onChangeCallback||null;this.create();this.setValues(e.values)}create(){BX.addClass(this.DOM.outerWrap,"calendar-resourcebook-resource-list-wrap calendar-resourcebook-folding-block"+(this.params.shown!==false?" shown":""));if(this.editMode){this.DOM.addButton=this.DOM.controlsWrap.appendChild(BX.create("span",{props:{className:"calendar-resource-content-block-add-link"},text:BX.message("USER_TYPE_RESOURCE_ADD"),events:{click:BX.delegate(this.addResourceBlock,this)}}));if(this.resourceList.length>0){this.DOM.selectButton=this.DOM.controlsWrap.appendChild(BX.create("span",{props:{className:"calendar-resource-content-block-add-link"},text:BX.message("USER_TYPE_RESOURCE_SELECT"),events:{click:BX.delegate(this.openResourcesPopup,this)}}))}}else{BX.bind(this.DOM.blocksWrap,"click",BX.delegate(this.handleBlockClick,this))}}show(){BX.addClass(this.DOM.outerWrap,"shown")}hide(){this.DOM.outerWrap.style.maxHeight="";BX.removeClass(this.DOM.outerWrap,"shown")}isShown(){return BX.hasClass(this.DOM.outerWrap,"shown")}handleBlockClick(e){let t=e.target||e.srcElement;if(t){let e=t.getAttribute("data-bx-remove-block");if(e){this.selectedBlocks.find((function(t,s){if(t.value===e){BX.removeClass(t.wrap,"shown");setTimeout(BX.delegate((function(){BX.remove(t.wrap)}),this),300);this.selectedBlocks=BX.util.deleteFromArray(this.selectedBlocks,s)}}),this);this.selectedValues.find((function(t,s){if(t.title===e){this.selectedValues=BX.util.deleteFromArray(this.selectedValues,s)}}),this);if(BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}this.checkBlockWrapState()}if(!e){this.openResourcesPopup()}}}openResourcesPopup(){if(!this.resourceList.length){return this.addResourceBlock()}if(this.isResourcesPopupShown()){return}let e=[];this.resourceList.forEach((function(t){if(t.deleted){return}e.push({text:BX.util.htmlspecialchars(t.title),dataset:{type:t.type,id:t.id,title:t.title},onclick:BX.delegate((function(e,t){let s,i=e.target||e.srcElement,a=t.layout.item.querySelector(".menu-popup-item-resource-checkbox"),o=this.resourceList.find((function(e){return parseInt(e.id)===parseInt(t.dataset.id)&&e.type===t.dataset.type}),this);if(o){if(i&&BX.hasClass(i,"calendar-resourcebook-content-block-control-delete")){this.removeResourceBlock({resource:o,trigerOnChange:true});this.selectedValues=this.getSelectedValues();this.checkResourceInputs();s=this.popupContainer.querySelector(".menu-popup-item-all-resources-checkbox");this.selectAllChecked=false;if(s){s.checked=false}let e=BX.findParent(i,{className:"menu-popup-item"});if(e){BX.addClass(e,"menu-popup-item-resource-remove-loader");e.appendChild(n.BookingUtil.getLoader(25));let t=e.querySelector(".menu-popup-item-text");if(t){t.innerHTML=BX.message("USER_TYPE_RESOURCE_DELETING")}}o.deleted=true;setTimeout(BX.delegate((function(){if(e){e.style.maxHeight="0"}if(!this.resourceList.find((function(e){return!e.deleted}))){BX.PopupMenu.destroy(this.id);this.DOM.selectButton.style.opacity=0;setTimeout(BX.delegate((function(){BX.remove(this.DOM.selectButton)}),this),500)}}),this),500)}else if(i&&(BX.hasClass(i,"menu-popup-item")||BX.hasClass(i,"menu-popup-item-resource-checkbox")||BX.hasClass(i,"menu-popup-item-inner"))){if(!BX.hasClass(i,"menu-popup-item-resource-checkbox")){a.checked=!a.checked}if(a.checked){this.addResourceBlock({resource:o,value:o.title,trigerOnChange:true});this.selectedValues=this.getSelectedValues()}else{this.removeResourceBlock({resource:o,trigerOnChange:true});this.selectedValues=this.getSelectedValues();this.checkResourceInputs();s=this.popupContainer.querySelector(".menu-popup-item-all-resources-checkbox");this.selectAllChecked=false;if(s){s.checked=false}}}}}),this)})}),this);if(e.length>1){e.push({text:BX.message("USER_TYPE_RESOURCE_SELECT_ALL"),onclick:BX.delegate((function(e,t){let s=e.target||e.srcElement;if(s&&(BX.hasClass(s,"menu-popup-item")||BX.hasClass(s,"menu-popup-item-resource-checkbox"))){let e=t.layout.item.querySelector(".menu-popup-item-resource-checkbox");if(BX.hasClass(s,"menu-popup-item")){e.checked=!e.checked}let i,a=this.popupContainer.querySelectorAll("input.menu-popup-item-resource-checkbox");this.selectAllChecked=e.checked;for(i=0;i<a.length;i++){a[i].checked=this.selectAllChecked}this.resourceList.forEach((function(e){if(e.deleted){return}if(this.selectAllChecked){this.addResourceBlock({resource:e,value:e.title,trigerOnChange:true})}else{this.removeResourceBlock({resource:e,trigerOnChange:true})}}),this);this.selectedValues=this.getSelectedValues();this.checkResourceInputs()}}),this)})}this.popup=BX.PopupMenu.create(this.id,this.DOM.selectButton||this.DOM.blocksWrap,e,{className:"popup-window-resource-select",closeByEsc:true,autoHide:false,offsetTop:0,offsetLeft:0});this.popup.show(true);this.popupContainer=this.popup.popupWindow.popupContainer;if(!this.editMode){this.popupContainer.style.width=parseInt(this.DOM.blocksWrap.offsetWidth)+"px"}BX.addCustomEvent(this.popup.popupWindow,"onPopupClose",BX.proxy((function(){BX.PopupMenu.destroy(this.id)}),this));this.popup.menuItems.forEach((function(e){let t;if(e.dataset&&e.dataset.type){t=this.selectedValues.find((function(t){return parseInt(t.id)===parseInt(e.dataset.id)&&t.type===e.dataset.type}));e.layout.item.className="menu-popup-item";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox" type="checkbox"'+(t?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+BX.util.htmlspecialchars(e.dataset.title)+"</label>"+"</div>"+(this.editMode?'<div class="calendar-resourcebook-content-block-control-delete"></div>':"")+"</div>"}else{this.selectAllChecked=!this.resourceList.find((function(e){return!this.selectedValues.find((function(t){return parseInt(t.id)===parseInt(e.id)&&t.type===e.type}))}),this);e.layout.item.className="menu-popup-item menu-popup-item-resource-all";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox menu-popup-item-all-resources-checkbox" type="checkbox"'+(this.selectAllChecked?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+BX.message("USER_TYPE_RESOURCE_SELECT_ALL")+"</label>"+"</div>"+"</div>"}}),this);setTimeout(BX.delegate((function(){BX.bind(document,"click",BX.proxy(this.handleClick,this))}),this),50)}addResourceBlock(e){if(!BX.type.isPlainObject(e)){e={}}if(e.resource&&this.checkLimit&&!this.checkLimit()&&window.B24||!e.resource&&this.checkLimitForNew&&!this.checkLimitForNew()&&window.B24){return n.BookingUtil.showLimitationPopup()}let t=this,s;if(this.editMode){if(e.resource&&this.selectedValues.find((function(t){return t.id&&parseInt(t.id)===parseInt(e.resource.id)&&t.type===e.resource.type}))){return}if(!e.value){e.value=""}s={value:e.value,wrap:this.DOM.listWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail calendar-resourcebook-outer-resource-wrap"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource-inner calendar-resourcebook-content-block-detail-resource-inner-wide"}}))};s.input=s.wrap.appendChild(BX.create("input",{props:{className:"calendar-resourcebook-content-input",value:e.value,type:"text",placeholder:BX.message("USER_TYPE_RESOURCE_NAME")},dataset:{resourceType:e.resource?e.resource.type:"",resourceId:e.resource?e.resource.id:""}}));s.delButton=s.wrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-delete"},events:{click(){BX.remove(BX.findParent(this,{className:"calendar-resourcebook-outer-resource-wrap"}));t.selectedValues=t.getSelectedValues();t.checkResourceInputs()}}}));if(e.focusInput!==false){BX.focus(s.input)}}else{if(e.value&&this.selectedBlocks.find((function(t){return t.value&&t.value===e.value}))){return}s={value:e.value,resource:e.resource||false,wrap:this.DOM.blocksWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-inner"+(e.animation?"":" shown")+(e.transparent?" transparent":"")},children:[BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-text"},text:e.value||""}),BX.create("div",{attrs:{"data-bx-remove-block":e.value},props:{className:"calendar-resourcebook-content-block-control-delete"}})]}))};this.selectedBlocks.push(s);if(e.animation){setTimeout(BX.delegate((function(){BX.addClass(s.wrap,"shown")}),this),1)}if(e.trigerOnChange!==false&&this.onChangeCallback&&BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}this.checkBlockWrapState()}if(this.DOM.listWrap&&this.DOM.outerWrap){if(BX.hasClass(this.DOM.outerWrap,"shown")){this.DOM.outerWrap.style.maxHeight=Math.max(1e4,this.DOM.listWrap.childNodes.length*45+100)+"px"}else{this.DOM.outerWrap.style.maxHeight=""}}return s}removeResourceBlock(e){if(this.editMode){let t,s,i,a=this.DOM.listWrap.querySelectorAll(".calendar-resourcebook-content-input");for(i=0;i<a.length;i++){t=a[i].getAttribute("data-resource-type");s=a[i].getAttribute("data-resource-id");if(t===e.resource.type&&parseInt(s)===parseInt(e.resource.id)){BX.remove(BX.findParent(a[i],{className:"calendar-resourcebook-outer-resource-wrap"}))}}}else{if(e.resource){this.selectedBlocks.find((function(t,s){if(t.value===e.resource.title){BX.removeClass(t.wrap,"shown");setTimeout(BX.delegate((function(){BX.remove(t.wrap)}),this),300);this.selectedBlocks=BX.util.deleteFromArray(this.selectedBlocks,s)}}),this)}this.checkBlockWrapState();if(e.trigerOnChange!==false&&this.onChangeCallback&&BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}}}checkResourceInputs(){if(this.editMode){if(!this.selectedValues.length){this.addResourceBlock({animation:true})}}}checkBlockWrapState(){if(!this.editMode){if(!this.selectedBlocks.length){if(!this.DOM.emptyPlaceholder){this.DOM.emptyPlaceholder=this.DOM.blocksWrap.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-control-empty"},html:'<span class="calendar-resourcebook-content-block-control-text">'+BX.message("USER_TYPE_RESOURCE_LIST_PLACEHOLDER")+"</span>"}))}else{this.DOM.emptyPlaceholder.className="calendar-resourcebook-content-block-control-empty";this.DOM.blocksWrap.appendChild(this.DOM.emptyPlaceholder)}setTimeout(BX.delegate((function(){if(BX.isNodeInDom(this.DOM.emptyPlaceholder)){BX.addClass(this.DOM.emptyPlaceholder,"show")}}),this),50)}else if(this.DOM.emptyPlaceholder){BX.remove(this.DOM.emptyPlaceholder)}}}handleClick(e){let t=e.target||e.srcElement;if(this.isResourcesPopupShown()&&!BX.isParentForNode(this.popupContainer,t)){this.closeResourcesPopup({animation:true})}}isResourcesPopupShown(){return this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown&&this.popup.popupWindow.isShown()&&this.popup.popupWindow.popupContainer&&BX.isNodeInDom(this.popup.popupWindow.popupContainer)}closeResourcesPopup(e){if(this.popup){this.popup.close();this.popupContainer.style.maxHeight="";BX.unbind(document,"click",BX.proxy(this.handleClick,this))}}getValues(){return this.resourceList}addToSelectedValues(e){if(!this.selectedValues.find((function(t){return parseInt(t.id)===parseInt(e.id)&&t.type===e.type}))){this.selectedValues.push(e)}}getSelectedValues(){this.selectedValues=[];if(this.editMode){let e,t,s,i=this.DOM.listWrap.querySelectorAll(".calendar-resourcebook-content-input");for(s=0;s<i.length;s++){e=i[s].getAttribute("data-resource-type");t=i[s].getAttribute("data-resource-id");if(e&&t){this.selectedValues.push({type:e,id:t,title:i[s].value})}else{this.selectedValues.push({type:"resource",title:i[s].value})}}}else{this.selectedBlocks.forEach((function(e){this.selectedValues.push({type:e.resource.type,id:e.resource.id})}),this)}return this.selectedValues}getDeletedValues(){return this.resourceList.filter((function(e){return e.deleted}))}setValues(e,t){this.selectedBlocks.forEach((function(e){BX.remove(e.wrap)}));this.selectedBlocks=[];t=t!==false;if(BX.type.isArray(e)){e.forEach((function(e){let s=this.resourceList.find((function(t){return parseInt(t.id)===parseInt(e.id)&&t.type===e.type}),this);if(s){this.addResourceBlock({resource:s,value:s.title,trigerOnChange:t});this.addToSelectedValues(s)}}),this)}if(this.editMode){this.selectedValues=this.getSelectedValues();this.checkResourceInputs()}else{if(this.DOM.arrowNode){this.DOM.blocksWrap.appendChild(this.DOM.arrowNode)}}this.checkBlockWrapState()}}class v{constructor(e){}show(e){if(!e){e={}}this.params=e;this.bindNode=e.bindNode;this.plannerId=this.params.plannerId;this.config=this.params.plannerConfig;if(this.isShown()||!this.bindNode){return}if(this.lastPlannerIdShown&&this.lastPlannerIdShown!==this.plannerId){this.close({animation:false})}this.currentEntries=[];this.plannerWrap=n.Dom.create("DIV",{attrs:{id:this.plannerId,className:"calendar-planner-wrapper"}});this.popup=new a.Popup(this.plannerId+"_popup",this.bindNode,{autoHide:false,closeByEsc:true,offsetTop:-parseInt(this.bindNode.offsetHeight)-20,offsetLeft:this.bindNode.offsetWidth+38,lightShadow:true,content:this.plannerWrap});this.popup.setAngle({offset:100,position:"left"});this.popup.show();this.lastPlannerIdShown=this.plannerId;let t=BX.pos(this.bindNode),s=BX.GetWindowSize();this.plannerWidth=s.innerWidth-t.right-160;this.config.width=this.plannerWidth;if(this.popup&&this.popup.popupContainer){n.Dom.addClass(this.popup.popupContainer,"calendar-resbook-planner-popup");n.Dom.addClass(this.popup.popupContainer,"show");this.popup.popupContainer.style.width=this.plannerWidth+40+"px";n.Event.bind(document,"click",this.handleClick.bind(this))}this.showPlanner();BX.addCustomEvent(this.popup,"onPopupClose",this.close.bind(this))}update(e,t){if(!this.isShown()){return}let s=[],i,a,o,r={},l=BX.clone(this.config,true),c,p,h,d;if(n.Type.isPlainObject(this.lastUpdateParams)&&n.Type.isPlainObject(e)&&t!==true){for(a in e){if(e.hasOwnProperty(a)){this.lastUpdateParams[a]=e[a]}}e=this.lastUpdateParams}if(n.Type.isPlainObject(e)){this.lastUpdateParams=e}e.focusSelector=e.focusSelector!==false;if(e.from&&e.to){h=n.BookingUtil.parseDate(e.from);d=n.BookingUtil.parseDate(e.to);c=h.getTime();p=d.getTime()}else{if(e.selector.fullDay){c=e.selector.from.getTime()-n.BookingUtil.getDayLength()*12;p=e.selector.from.getTime()+n.BookingUtil.getDayLength()*14}else{c=e.selector.from.getTime()-n.BookingUtil.getDayLength()*3;p=e.selector.from.getTime()+n.BookingUtil.getDayLength()*5}h=new Date(c);d=new Date(p);l.scaleDateFrom=h;l.scaleDateTo=d}if(n.Type.isArray(e.userList)){for(i=0;i<e.userList.length;i++){o="U"+e.userList[i].id;if(!r[o]){s.push(o);r[o]=true}}}if(n.Type.isArray(e.selectedUsers)){for(i=0;i<e.selectedUsers.length;i++){o="U"+e.selectedUsers[i];if(!r[o]){s.push(o);r[o]=true}}}let u={codes:s,resources:e.resourceList,from:n.BookingUtil.formatDate(null,c/1e3),to:n.BookingUtil.formatDate(null,p/1e3),currentEventList:this.params.currentEventList||[]};if(this.checkUpdateParams(u)&&this.isShown()){this.showPlannerLoader();BX.ajax.runAction("calendar.api.resourcebookingajax.getplannerdata",{data:u}).then(function(t){this.hidePlannerLoader();if(this.lastRequestData){this.lastRequestData.response=t}this.currentEntries=t.data.entries;this.currentAccessibility=t.data.accessibility;this.currentLoadedDataFrom=h;this.currentLoadedDataTo=d;if(n.Type.isArray(t.data.entries)){t.data.entries.forEach((function(t){t.selected=t.type==="user"&&e.selectedUsers.find((function(e){return parseInt(t.id)===parseInt(e)}))||t.type==="resource"&&e.selectedResources.find((function(e){return t.type===e.type&&parseInt(t.id)===parseInt(e.id)}))}))}if(this.isShown()){BX.onCustomEvent("OnCalendarPlannerDoUpdate",[{plannerId:this.plannerId,config:l,focusSelector:e.focusSelector,selector:{from:e.selector.from,to:e.selector.to,fullDay:e.selector.fullDay,animation:e.focusSelector,updateScaleLimits:e.focusSelector},data:{entries:t.data.entries,accessibility:t.data.accessibility},loadedDataFrom:h,loadedDataTo:d,show:false}])}}.bind(this))}else if(n.Type.isPlainObject(this.lastRequestData.response)){let t=this.lastRequestData.response;this.currentEntries=t.data.entries;this.currentAccessibility=t.data.accessibility;this.currentLoadedDataFrom=h;this.currentLoadedDataTo=d;if(n.Type.isArray(t.data.entries)){t.data.entries.forEach((function(t){t.selected=t.type==="user"&&e.selectedUsers.find((function(e){return parseInt(t.id)===parseInt(e)}))||t.type==="resource"&&e.selectedResources.find((function(e){return t.type===e.type&&parseInt(t.id)===parseInt(e.id)}))}))}if(this.isShown()){BX.onCustomEvent("OnCalendarPlannerDoUpdate",[{plannerId:this.plannerId,config:l,focusSelector:e.focusSelector,selector:{from:e.selector.from,to:e.selector.to,fullDay:e.selector.fullDay,animation:e.focusSelector,updateScaleLimits:e.focusSelector},data:{entries:t.data.entries,accessibility:t.data.accessibility},loadedDataFrom:h,loadedDataTo:d,show:false}])}}}checkUpdateParams(e){let t=false;if(!this.lastRequestData||this.lastRequestPlannerId!==this.plannerId){t=true}if(!t&&e.from!==this.lastRequestData.from){t=true}if(!t&&n.Type.isArray(e.codes)&&n.Type.isArray(this.lastRequestData.codes)&&BX.util.array_diff(e.codes,this.lastRequestData.codes).length>0){t=true}if(!t&&n.Type.isArray(e.resources)&&n.Type.isArray(this.lastRequestData.resources)){if(e.resources.length!==this.lastRequestData.resources.length){t=true}else{let s={};e.resources.forEach((function(e){s[e.type+"_"+e.id]=true}));this.lastRequestData.resources.forEach((function(e){if(!s[e.type+"_"+e.id]){t=true}}))}}if(t){this.lastRequestData=e;this.lastRequestPlannerId=this.plannerId}return t}showPlanner(){this.planner=new CalendarPlanner(this.params.plannerConfig,{config:this.config,data:{accessibility:this.currentAccessibility||{},entries:this.currentEntries},selector:{from:this.params.selector.from,to:this.params.selector.to,fullDay:this.params.selector.fullDay,updateScaleLimits:true,updateScaleType:false,focus:true,RRULE:false,animation:false},loadedDataFrom:this.currentLoadedDataFrom,loadedDataTo:this.currentLoadedDataTo,focusSelector:true,plannerId:this.plannerId,show:true});if(n.Type.isFunction(this.params.selectorOnChangeCallback)){BX.addCustomEvent("OnCalendarPlannerSelectorChanged",this.params.selectorOnChangeCallback)}if(n.Type.isFunction(this.params.selectEntriesOnChangeCallback)){BX.addCustomEvent("OnCalendarPlannerSelectedEntriesOnChange",this.params.selectEntriesOnChangeCallback)}if(n.Type.isFunction(this.params.checkSelectorStatusCallback)){BX.addCustomEvent("OnCalendarPlannerSelectorStatusOnChange",this.params.checkSelectorStatusCallback)}BX.addCustomEvent("OnCalendarPlannerScaleChanged",BX.proxy((function(e){this.update({from:e.from,to:e.to,focusSelector:e.focusSelector===true})}),this))}showPlannerLoader(){if(this.planner&&this.planner.outerWrap){if(this.loader){n.Dom.remove(this.loader)}this.loader=this.planner.outerWrap.appendChild(n.BookingUtil.getLoader(150))}}hidePlannerLoader(){if(this.loader){n.Dom.remove(this.loader);this.loader=false}}close(e){if(this.popup){if(e&&e.animation){n.Dom.removeClass(this.popup.popupContainer,"show");setTimeout(BX.delegate((function(){e.animation=false;this.close(e)}),this),300)}else{BX.unbind(document,"click",BX.proxy(this.handleClick,this));BX.removeCustomEvent(this.popup,"onPopupClose",BX.proxy(this.close,this));this.popup.destroy();this.planner=null;this.popup=null}}}isShown(){return this.lastPlannerIdShown===this.plannerId&&this.popup&&this.popup.isShown()}getPlannerId(){if(typeof this.plannerId==="undefined"){this.plannerId="calendar-planner-"+Math.round(Math.random()*1e5)}return this.plannerId}handleClick(e){let t=e.target||e.srcElement;if(this.isShown()&&!BX.isParentForNode(this.bindNode,t)&&!BX.isParentForNode(BX("BXSocNetLogDestination"),t)&&!BX.isParentForNode(this.popup.popupContainer,t)&&!n.Dom.hasClass(t,"calendar-resourcebook-content-block-control-delete")){if(!document.querySelector("div.popup-window-resource-select")){this.close({animation:true})}}}}class I{constructor(e){this.params=e;this.plannerPopup=null;this.DOM={outerWrap:BX(e.controlId),valueInputs:[]};this.isNew=!this.params.value||!this.params.value.DATE_FROM;if(this.params.socnetDestination){r.ResourcebookingUserfield.setSocnetDestination(this.params.socnetDestination)}}init(){this.buildUserfieldWrap();this.createEventHandlers();this.setControlValues()}buildUserfieldWrap(){this.buildDateControl();this.buildTimeControl();this.buildServiceControl();this.buildDurationControl();this.buildUserSelectorControl();this.buildResourceSelectorControl()}createEventHandlers(){n.Event.bind(this.DOM.outerWrap,"click",this.showPlannerPopup.bind(this));n.Event.bind(this.DOM.fromInput,"focus",this.showPlannerPopup.bind(this));n.Event.bind(this.DOM.durationInput,"focus",this.showPlannerPopup.bind(this));setTimeout(function(){BX.onCustomEvent(window,"onCrmEntityEditorUserFieldSetValidator",[this.params.controlId,function(e){if(!this.params.allowOverbooking&&this.isOverbooked()){if(e&&e.addError&&BX.Crm&&BX.Crm.EntityValidationError){e.addError(BX.Crm.EntityValidationError.create({field:this}))}}return new Promise((e=>{e()}))}.bind(this)])}.bind(this),100);setTimeout(this.onChangeValues.bind(this),100)}setControlValues(){this.allValuesValue=null;let e,t,s=this.params.fullDay?1440:60,i;if(this.isNew){let s=r.ResourcebookingUserfield.getParamsFromHash(this.params.userfieldId);if(s&&s.length>1){e=BX.parseDate(s[0]);i=BX.parseDate(s[1]);if(e&&i){t=Math.round(Math.max((i.getTime()-e.getTime())/6e4,0))}}if(!e){e=new Date;let t=30,s=t*60*1e3,i=Math.ceil(e.getTime()/s)*s;e=new Date(i)}}else{e=BX.parseDate(this.params.value.DATE_FROM);i=BX.parseDate(this.params.value.DATE_TO);t=Math.round(Math.max((i.getTime()-e.getTime())/6e4,0))}if(!t){t=s}this.DOM.fromInput.value=n.BookingUtil.formatDate(n.BookingUtil.getDateFormat(),e);if(this.DOM.timeFromInput){this.DOM.timeFromInput.value=n.BookingUtil.formatDate(n.BookingUtil.getTimeFormatShort(),e)}if(this.durationList){this.durationList.setValue(t)}if(this.serviceList){this.serviceList.setValue(this.params.value.SERVICE_NAME||"")}let a=[];let o=[];if(this.params.value&&n.Type.isArray(this.params.value.ENTRIES)){this.params.value.ENTRIES.forEach((function(e){if(e.TYPE==="user"){a.push(parseInt(e.RESOURCE_ID))}else{o.push({id:parseInt(e.RESOURCE_ID),type:e.TYPE})}}))}if(this.resourceSelector){this.resourceSelector.setValues(o,false)}if(this.userSelector){this.userSelector.setValues(a,false)}}buildDateControl(){this.DOM.dateTimeWrap=this.DOM.outerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-wrap calendar-resourcebook-content-block-detail-wrap-flex"}}));this.DOM.dateWrap=this.DOM.dateTimeWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+n.Loc.getMessage("USER_TYPE_RESOURCE_DATE_LABEL")+"</span></div>"}));this.DOM.fromInput=this.DOM.dateWrap.appendChild(n.Dom.create("INPUT",{attrs:{value:"",placeholder:n.Loc.getMessage("USER_TYPE_RESOURCE_DATE_LABEL"),type:"text"},events:{click:I.showCalendarPicker,change:this.triggerUpdatePlanner.bind(this)},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime"}}));this.DOM.emptyInput=this.DOM.dateWrap.appendChild(n.Dom.create("INPUT",{attrs:{value:"",type:"text"},props:{className:"calendar-resbook-empty-input"}}))}buildTimeControl(){if(!this.params.fullDay){this.DOM.timeWrap=this.DOM.dateTimeWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+n.Loc.getMessage("USER_TYPE_RESOURCE_TIME_LABEL")+"</span></div>"}));this.DOM.timeFromInput=this.DOM.timeWrap.appendChild(n.Dom.create("INPUT",{attrs:{value:"",placeholder:n.Loc.getMessage("USER_TYPE_RESOURCE_TIME_LABEL"),type:"text"},style:{width:"100px"},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime-menu"}}));this.fromTime=new n.SelectInput({input:this.DOM.timeFromInput,values:n.BookingUtil.getSimpleTimeList(),onChangeCallback:this.triggerUpdatePlanner.bind(this),onAfterMenuOpen:(e,t)=>{if(!e&&t){const e=BX.isAmPmMode()?n.Loc.getMessage("FORMAT_DATETIME").replace(":SS",""):n.Loc.getMessage("FORMAT_DATETIME");const s=n.BookingUtil.parseDate(this.DOM.fromInput.value+" "+this.DOM.timeFromInput.value,false,false,e);let i,a;const o=n.BookingUtil.adaptTimeValue({h:s.getHours(),m:s.getMinutes()});if(o&&o.label){for(i=0;i<t.menuItems.length;i++){a=t.menuItems[i];if(a&&o.label===a.text&&a.layout){t.layout.menuContainer.scrollTop=a.layout.item.offsetTop-2}}}}}})}}buildServiceControl(){if(this.params.useServices&&n.Type.isArray(this.params.serviceList)&&this.params.serviceList.length>0){if(this.params.fullDay){this.DOM.durationWrap=this.DOM.dateTimeWrap}else{this.DOM.durationWrap=this.DOM.outerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-wrap calendar-resourcebook-content-block-detail-wrap-flex"}}))}this.DOM.servicesWrap=this.DOM.durationWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+n.Loc.getMessage("USER_TYPE_RESOURCE_SERVICE_LABEL")+"</span></div>"}));this.DOM.serviceInput=this.DOM.servicesWrap.appendChild(n.Dom.create("INPUT",{attrs:{value:"",placeholder:n.Loc.getMessage("USER_TYPE_RESOURCE_SERVICE_LABEL"),type:"text"},style:{width:"200px"},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime-menu"}}));let e=[];this.params.serviceList.forEach((function(t){if(t.name!==""){e.push({value:t.duration,label:t.name})}}));if(this.isNew&&e.length>=1){this.DOM.serviceInput.value=e[0].label}this.serviceList=new n.SelectInput({input:this.DOM.serviceInput,values:e,onChangeCallback:function(e){if(n.Type.isPlainObject(e)&&e.realValue){this.durationList.setValue(parseInt(e.realValue));this.duration=n.BookingUtil.parseDuration(this.DOM.durationInput.value);this.triggerUpdatePlanner()}}.bind(this)})}}buildDurationControl(){if(!this.DOM.durationWrap){this.DOM.durationWrap=this.DOM.dateTimeWrap}this.DOM.durationControlWrap=this.DOM.durationWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+n.Loc.getMessage("USER_TYPE_RESOURCE_DURATION_LABEL")+"</span></div>"}));this.DOM.durationInput=this.DOM.durationControlWrap.appendChild(n.Dom.create("INPUT",{attrs:{placeholder:n.Loc.getMessage("USER_TYPE_RESOURCE_DURATION_LABEL"),type:"text"},style:{width:"90px"},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime-menu"}}));this.durationList=new n.SelectInput({input:this.DOM.durationInput,values:n.BookingUtil.getDurationList(this.params.fullDay),onChangeCallback:function(){this.duration=n.BookingUtil.parseDuration(this.DOM.durationInput.value);this.triggerUpdatePlanner()}.bind(this)})}buildUserSelectorControl(){if(this.params.useUsers){this.DOM.userSelectorWrap=this.DOM.outerWrap.appendChild(n.Dom.create("DIV",{props:{className:"calendar-resbook-users-selector-wrap"}}));this.DOM.userSelectorWrap=this.DOM.outerWrap.appendChild(n.Dom.create("DIV",{props:{className:"calendar-resourcebook-content-block-control-field"}}));let e=n.Loc.getMessage("USER_TYPE_RESOURCE_USERS_CONTROL_DEFAULT_NAME");this.DOM.userSelectorWrap.appendChild(n.Dom.create("DIV",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(n.Dom.create("SPAN",{props:{className:"calendar-resourcebook-content-block-title-text"},text:e}));this.DOM.userListWrap=this.DOM.userSelectorWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control custom-field-item"}}));let t={};if(this.params.value&&n.Type.isArray(this.params.value.ENTRIES)){this.params.value.ENTRIES.forEach((function(e){if(e.TYPE==="user"){const s="U"+parseInt(e.RESOURCE_ID);t[s]="users"}}))}this.userSelector=new B({wrapNode:this.DOM.userListWrap,socnetDestination:r.ResourcebookingUserfield.getSocnetDestination(),addMessage:n.Loc.getMessage("USER_TYPE_RESOURCE_SELECT_USER"),checkLimitCallback:this.checkResourceCountLimit.bind(this),itemsSelected:t});BX.addCustomEvent("OnResourceBookDestinationAddNewItem",this.triggerUpdatePlanner.bind(this));BX.addCustomEvent("OnResourceBookDestinationUnselect",this.triggerUpdatePlanner.bind(this))}}buildResourceSelectorControl(){if(this.params.useResources){this.DOM.resourcesWrap=this.DOM.outerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));let e=n.Loc.getMessage("USER_TYPE_RESOURCE_RESOURCE_CONTROL_DEFAULT_NAME");this.DOM.resourcesWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:e}));this.DOM.resourcesListWrap=this.DOM.resourcesWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control custom-field-item"}}));this.resourceSelector=new T({outerWrap:this.DOM.resourcesWrap,blocksWrap:this.DOM.resourcesListWrap,values:[],resourceList:this.params.resourceList,onChangeCallback:this.triggerUpdatePlanner.bind(this),checkLimitCallback:this.checkResourceCountLimit.bind(this)})}}static showCalendarPicker(e){let t=e.target||e.srcElement;BX.calendar({node:t,field:t,bTime:false});BX.focus(t)}onChangeValues(){this.duration=this.duration||n.BookingUtil.parseDuration(this.DOM.durationInput.value);const e=this.duration*60;let t="",s=BX.isAmPmMode()?n.Loc.getMessage("FORMAT_DATETIME").replace(":SS",""):n.Loc.getMessage("FORMAT_DATETIME"),i,a="",o=this.DOM.serviceInput?this.DOM.serviceInput.value:"",r=[];i=this.params.fullDay?n.BookingUtil.parseDate(this.DOM.fromInput.value):n.BookingUtil.parseDate(this.DOM.fromInput.value+" "+this.DOM.timeFromInput.value,false,false,s);if(n.Type.isDate(i)){if(this.params.useResources){r=r.concat(this.getSelectedResourceList())}if(this.params.useUsers){r=r.concat(this.getSelectedUserList())}a=n.BookingUtil.formatDate(n.BookingUtil.getDateTimeFormat(),i.getTime()/1e3)}this.DOM.valueInputs.forEach((function(e){BX.remove(e)}));this.DOM.valueInputs=[];r.forEach((function(s){let i=s.type+"|"+s.id+"|"+a+"|"+e+"|"+o;t+=i+"#";this.DOM.valueInputs.push(this.DOM.outerWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:this.params.inputName,value:i,type:"hidden"}})))}),this);if(!r.length){this.DOM.valueInputs.push(this.DOM.outerWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:this.params.inputName,value:"empty",type:"hidden"}})))}if(this.allValuesValue!==null&&this.allValuesValue!==t){BX.onCustomEvent(window,"onCrmEntityEditorUserFieldExternalChanged",[this.params.controlId]);BX.fireEvent(this.DOM.emptyInput,"change")}this.allValuesValue=t}showPlannerPopup(){let e=[];if(this.params.value&&n.Type.isArray(this.params.value.ENTRIES)){this.params.value.ENTRIES.forEach((function(t){e.push(t.EVENT_ID)}))}if(n.Type.isNull(this.plannerPopup)){this.plannerPopup=new v}this.plannerPopup.show({plannerId:this.params.plannerId,bindNode:this.DOM.outerWrap,plannerConfig:this.getPlannerConfig(),selector:this.getSelectorData(),selectorOnChangeCallback:this.plannerSelectorOnChange.bind(this),selectEntriesOnChangeCallback:this.plannerSelectedEntriesOnChange.bind(this),checkSelectorStatusCallback:this.checkSelectorStatusCallback.bind(this),currentEventList:e});this.triggerUpdatePlanner()}triggerUpdatePlanner(){if(!n.Type.isNull(this.plannerPopup)&&this.plannerPopup.plannerId===this.params.plannerId&&this.plannerPopup.isShown()){this.plannerPopup.update({plannerId:this.params.plannerId,plannerConfig:this.getPlannerConfig(),selector:this.getSelectorData(),resourceList:this.getResourceList(),selectedResources:this.resourceSelector?this.resourceSelector.getSelectedValues():false,userList:this.getUserList(),selectedUsers:this.userSelector?this.userSelector.getSelectedValues():false},true)}this.onChangeValues()}getPlannerConfig(){if(!this.params.plannerConfig){this.params.plannerConfig={id:this.params.plannerId,selectEntriesMode:true,scaleLimitOffsetLeft:2,scaleLimitOffsetRight:2,maxTimelineSize:300,minEntryRows:300,entriesListWidth:120,timelineCellWidth:49,minWidth:300,accuracy:300,workTime:[parseInt(this.params.workTime[0]),parseInt(this.params.workTime[1])]}}this.params.plannerConfig.clickSelectorScaleAccuracy=Math.max(this.duration*60||300,3600);return this.params.plannerConfig}plannerSelectorOnChange(e){if(e.plannerId===this.params.plannerId&&n.Type.isDate(e.dateFrom)&&n.Type.isDate(e.dateTo)){let t=e.dateFrom,s=e.dateTo;this.DOM.fromInput.value=n.BookingUtil.formatDate(n.BookingUtil.getDateFormat(),t);if(this.DOM.timeFromInput){this.DOM.timeFromInput.value=n.BookingUtil.formatDate(n.BookingUtil.getTimeFormatShort(),t)}this.duration=(s.getTime()-t.getTime()+(this.params.fullDay?n.BookingUtil.getDayLength():0))/6e4;this.duration=Math.round(Math.max(this.duration,0));this.durationList.setValue(this.duration);this.onChangeValues()}}plannerSelectedEntriesOnChange(e){if(e.plannerId===this.params.plannerId&&n.Type.isArray(e.entries)){let t=[],s=[];e.entries.forEach((function(e){if(e.selected){if(e.type==="user"){s.push(e.id)}else{t.push({id:e.id,type:e.type})}}}));if(this.resourceSelector){this.resourceSelector.setValues(t,false)}if(this.userSelector){this.userSelector.setValues(s,false)}this.onChangeValues()}}checkSelectorStatusCallback(e){if(e.plannerId===this.params.plannerId&&!this.params.allowOverbooking){let t="calendar-resbook-error";this.overbooked=e.status==="busy";if(this.overbooked){if(!this.DOM.errorNode){this.DOM.errorNode=this.DOM.dateTimeWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resbook-content-error-text"},text:n.Loc.getMessage("USER_TYPE_RESOURCE_BOOKED_ERROR")}))}if(this.DOM.fromInput){BX.addClass(this.DOM.fromInput,t)}if(this.DOM.timeFromInput){BX.addClass(this.DOM.timeFromInput,t)}setTimeout(BX.delegate((function(){BX.focus(this.DOM.fromInput)}),this),50)}else{if(this.DOM.errorNode){BX.remove(this.DOM.errorNode);this.DOM.errorNode=null}if(this.DOM.fromInput){BX.removeClass(this.DOM.fromInput,t)}if(this.DOM.timeFromInput){BX.removeClass(this.DOM.timeFromInput,t)}}}}getSelectorData(){let e=BX.isAmPmMode()?n.Loc.getMessage("FORMAT_DATETIME").replace(":SS",""):n.Loc.getMessage("FORMAT_DATETIME"),t,s,i=this.duration,a=n.BookingUtil.parseDate(this.DOM.fromInput.value+(this.DOM.timeFromInput?" "+this.DOM.timeFromInput.value:""),false,false,e);if(!i){i=this.params.fullDay?1440:60}if(!n.Type.isDate(a)){a=new Date}s=new Date(a.getTime()+i*6e4-(this.params.fullDay?n.BookingUtil.getDayLength():0));t={from:a,to:s,fullDay:this.params.fullDay,updateScaleLimits:true};return t}getResourceList(){let e=[];if(this.resourceSelector){this.resourceSelector.getValues().forEach((function(t){e.push({id:parseInt(t.id),type:t.type,name:t.title})}))}return e}getSelectedResourceList(){let e=[];if(this.resourceSelector){this.resourceSelector.getSelectedValues().forEach((function(t){e.push({id:parseInt(t.id),type:t.type,name:t.title})}))}return e}getUserList(){let e=[],t={},s;if(this.userSelector){if(n.Type.isArray(this.params.userList)){this.params.userList.forEach((function(s){if(!t[s]){e.push({id:s,type:"user"});t[s]=true}}))}this.userSelector.getAttendeesCodesList().forEach((function(i){if(i.substr(0,1)==="U"){s=parseInt(i.substr(1));if(!t[s]){e.push({id:s,type:"user"});t[s]=true}}}))}return e}getSelectedUserList(){let e=[];if(this.userSelector){this.userSelector.getAttendeesCodesList().forEach((function(t){if(t.substr(0,1)==="U"){e.push({id:parseInt(t.substr(1)),type:"user"})}}))}return e}checkResourceCountLimit(){return this.params.resourceLimit<=0||this.getTotalResourceCount()<=this.params.resourceLimit}getTotalResourceCount(){let e=0;if(this.params.useResources&&this.resourceSelector){e+=this.resourceSelector.getValues().length}if(this.params.useUsers){e+=this.getSelectedUserList().length}return e}isOverbooked(){return this.overbooked}}class w{constructor(e){this.params=n.Type.isPlainObject(e)?e:{};this.outerCont=this.params.outerCont;this.fieldSettings=this.params.fieldSettings||{};this.create()}create(){this.serviceListOuterWrap=this.outerCont.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-wrap calendar-resourcebook-service-list-wrap"}}));this.durationTitleId="duration-title-wrap-"+Math.round(Math.random()*1e5);this.servicesTitleWrap=this.serviceListOuterWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner"},html:'<div class="calendar-resourcebook-content-block-detail-resource">'+'<div class="calendar-resourcebook-content-block-title">'+'<span class="calendar-resourcebook-content-block-title-text">'+n.Loc.getMessage("USER_TYPE_RESOURCE_SERVICE_LABEL")+"</span>"+"</div>"+'<div id="'+this.durationTitleId+'" class="calendar-resourcebook-content-block-title calendar-resourcebook-content-block-duration-title">'+'<span class="calendar-resourcebook-content-block-title-text">'+n.Loc.getMessage("USER_TYPE_RESOURCE_DURATION_LABEL")+"</span>"+"</div>"+"</div>"}));this.serviceListRowsWrap=this.serviceListOuterWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail"}}));BX.bind(this.serviceListRowsWrap,"click",this.handlePopupClick.bind(this));if(n.Type.isArray(this.fieldSettings.SERVICE_LIST)&&this.fieldSettings.SERVICE_LIST.length>0){this.fieldSettings.SERVICE_LIST.forEach((function(e){this.addRow(e,false)}),this)}else{this.addRow(false,false)}this.serviceListAddWrap=this.serviceListOuterWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resource-content-block-add-field"}}));this.serviceAddButton=this.serviceListAddWrap.appendChild(n.Dom.create("span",{props:{className:"calendar-resource-content-block-add-link calendar-resource-content-block-add-link-icon"},text:n.Loc.getMessage("USER_TYPE_RESOURCE_ADD_SERVICE"),events:{click:this.addRow.bind(this)}}));BX.bind(window,"resize",this.checkDurationTitlePosition.bind(this));this.checkDurationTitlePosition();this.show(this.fieldSettings.USE_SERVICES==="Y")}show(e){if(e){this.serviceListOuterWrap.style.display="";n.Dom.addClass(this.serviceListOuterWrap,"show")}else{this.serviceListOuterWrap.style.display="none";n.Dom.removeClass(this.serviceListOuterWrap,"show")}}addRow(e,t){t=t!==false;if(!n.Type.isPlainObject(e)){e={name:"",duration:this.getDefaultDuration()}}let s={outerWrap:this.serviceListRowsWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource calendar-resourcebook-service-row"}}))};if(t){setTimeout((function(){n.Dom.addClass(s.outerWrap,"show")}),1)}else{n.Dom.addClass(s.outerWrap,"show")}s.wrap=s.outerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource-inner"}}));s.nameInput=s.wrap.appendChild(n.Dom.create("input",{props:{className:"calendar-resourcebook-content-input calendar-resourcebook-service-input",placeholder:n.Loc.getMessage("USER_TYPE_RESOURCE_SERVICE_PLACEHOLDER"),type:"text",value:e.name},attrs:{}}));s.durationInput=s.wrap.appendChild(n.Dom.create("input",{props:{className:"calendar-resbook-duration-input calendar-resbook-field-datetime-menu",type:"text",value:e.duration},attrs:{}}));s.durationList=new n.SelectInput({input:s.durationInput,getValues:function(){let e=false;if(n.Type.isFunction(this.params.getFullDayValue)){e=this.params.getFullDayValue()}return n.BookingUtil.getDurationList(e)}.bind(this),value:e.duration});s.deleteWrap=s.wrap.appendChild(n.Dom.create("DIV",{props:{className:"calendar-resourcebook-content-block-detail-delete"},html:'<span class="calendar-resourcebook-content-block-control-delete calendar-resourcebook-content-block-control-delete-detail"></span>'}));this.serviceListOuterWrap.style.maxHeight=Math.max(500,this.serviceListRowsWrap.childNodes.length*45+100)+"px"}checkDurationTitlePosition(e){if(e!==false){if(this.checkDurationTitlePositionTimeout){clearTimeout(this.checkDurationTitlePositionTimeout)}this.checkDurationTitlePositionTimeout=setTimeout(function(){this.checkDurationTitlePosition(false)}.bind(this),100);return}let t=this.serviceListOuterWrap.querySelector("input.calendar-resbook-duration-input");if(this.durationTitleId&&BX(this.durationTitleId)&&t){BX(this.durationTitleId).style.left=t.offsetLeft+15+"px"}}getDefaultDuration(){let e=false;if(n.Type.isFunction(this.params.getFullDayValue)){e=this.params.getFullDayValue()}return e?1440:30}clickHandler(e){let t=e.target||e.srcElement;if(n.Dom.hasClass(t,"calendar-resourcebook-content-block-control-delete")||n.Dom.hasClass(t,"calendar-resourcebook-content-block-detail-delete")){let e=BX.findParent(t,{className:"calendar-resourcebook-service-row"});if(e){n.Dom.removeClass(e,"show");setTimeout((function(){n.Dom.remove(e)}),500);this.checkRows()}}}getValues(e){let t=[],s,i,a,o=this.serviceListRowsWrap.querySelectorAll(".calendar-resourcebook-service-row");for(a=0;a<o.length;a++){if(n.Dom.hasClass(o[a],"show")){s=o[a].querySelector("input.calendar-resourcebook-service-input");i=o[a].querySelector("input.calendar-resbook-duration-input");if(s&&i){t.push({name:s.value,duration:n.BookingUtil.parseDuration(i.value)})}}}return t}checkRows(){let e=this.getValues();if(!e.length){this.show(false);if(n.Type.isFunction(this.params.onFullClearHandler)){this.params.onFullClearHandler()}this.addRow(false,false)}}handlePopupClick(e){let t=e.target||e.srcElement;if(n.Dom.hasClass(t,"calendar-resourcebook-content-block-control-delete")||n.Dom.hasClass(t,"calendar-resourcebook-content-block-detail-delete")){let e=BX.findParent(t,{className:"calendar-resourcebook-service-row"});if(e){BX.removeClass(e,"show");setTimeout((function(){BX.remove(e)}),500);this.checkRows()}}}}class N{constructor(e){this.params=n.Type.isPlainObject(e)?e:{};this.DOM={outerWrap:this.params.outerWrap};n.Dom.addClass(this.DOM.outerWrap,"fields enumeration field-item");this.create()}create(){this.DOM.select=this.DOM.outerWrap.appendChild(n.Dom.create("select"));this.DOM.select.options.add(new Option(n.Loc.getMessage("USER_TYPE_LOADING_TIMEZONE_LIST"),this.params.selectedValue||"",true,true));this.getTimezoneList().then(function(e){n.Dom.remove(this.DOM.select.options[0]);e.forEach((function(e){let t=this.params.selectedValue?this.params.selectedValue===e.value:e.selected;this.DOM.select.options.add(new Option(e.label,e.value,t,t))}),this)}.bind(this))}getTimezoneList(e){e=e||{};return new Promise((t=>{if(!N.timezoneList||e.clearCache){BX.ajax.runAction("calendar.api.calendarajax.getTimezoneList").then(function(e){N.timezoneList=[];for(let t in e.data){if(e.data.hasOwnProperty(t)){N.timezoneList.push({value:e.data[t].timezone_id,label:e.data[t].title,selected:e.data[t].default})}}t(N.timezoneList)}.bind(this),(function(e){t(e)}))}else{t(N.timezoneList)}}))}getValue(){return this.DOM.select.value}}class U{constructor(e){this.params=e;this.outerWrap=this.create()}create(){let e=n.Dom.create("span",{props:{className:"calendar-resourcebook-content-block-select calendar-resourcebook-mode-selector"}}),t=[{text:n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE_RESOURCES"),onclick:function(t,s){if(n.Type.isFunction(this.params.showResources)){this.params.showResources()}e.innerHTML=s.text;this.modeSwitcherPopup.close()}.bind(this)},{text:n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE_USERS"),onclick:function(t,s){if(n.Type.isFunction(this.params.showUsers)){this.params.showUsers()}e.innerHTML=s.text;this.modeSwitcherPopup.close()}.bind(this)},{text:n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE_RESOURCES_AND_USERS"),onclick:function(t,s){if(n.Type.isFunction(this.params.showResourcesAndUsers)){this.params.showResourcesAndUsers()}e.innerHTML=s.text;this.modeSwitcherPopup.close()}.bind(this)}],s="mode-switcher-"+Math.round(Math.random()*1e5);n.Event.bind(e,"click",function(){if(this.modeSwitcherPopup&&this.modeSwitcherPopup.popupWindow&&this.modeSwitcherPopup.popupWindow.isShown()){return this.modeSwitcherPopup.close()}this.modeSwitcherPopup=BX.PopupMenu.create(s,e,t,{closeByEsc:true,autoHide:true,offsetTop:0,offsetLeft:20,angle:true});this.modeSwitcherPopup.show();BX.addCustomEvent(this.modeSwitcherPopup.popupWindow,"onPopupClose",function(){BX.PopupMenu.destroy(s);this.modeSwitcherPopup=null}.bind(this))}.bind(this));if(this.params.useUsers&&!this.params.useResources){e.innerHTML=n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE_USERS")}else if(this.params.useUsers&&this.params.useResources){e.innerHTML=n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE_RESOURCES_AND_USERS")}else{e.innerHTML=n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE_RESOURCES")}return e}getOuterWrap(){return this.outerWrap}}let P=function(e){let t=function(){t.superclass.constructor.apply(this)};BX.extend(t,e);t.create=function(e,s){let i=new t;i.initialize(e,s);return i};t.prototype.layout=function(e,t){if(this._hasLayout){return}if(!BX.type.isPlainObject(t)){t={}}if(this._mode===BX.Crm.EntityEditorMode.view){throw"EntityEditorUserFieldConfigurator. View mode is not supported by this control type."}this.getBitrix24Limitation({callback:BX.delegate((function(e){this.RESOURCE_LIMIT=e}),this)});if(this._field){this.fieldInfo=this._field.getFieldInfo()}else if(!t.settings){return this.getDefaultUserfieldSettings({displayCallback:BX.delegate((function(t){this.layout(e,{settings:t})}),this)})}this._wrapper=BX.create("div",{props:{className:"calendar-resourcebook-content"}});this._innerWrapper=this._wrapper.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-wrap"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-inner"}}));var s=this.fieldInfo?this.fieldInfo.SETTINGS:t.settings,i=[],a=[],o=this._field===null,n=this.getMessage("labelField"),l=this._editor.getUserFieldManager(),c=this._field?this._field.getTitle():l.getDefaultFieldLabel(this._typeId);this.RESOURCE_LIMIT=s.RESOURCE_LIMIT||0;this._labelInput=BX.create("input",{attrs:{className:"crm-entity-widget-content-input",type:"text",value:c}});this._innerWrapper.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block"},children:[BX.create("div",{props:{className:"crm-entity-widget-content-block-title"},children:[BX.create("span",{attrs:{className:"crm-entity-widget-content-block-title-text"},text:n})]}),BX.create("div",{props:{className:"calendar-resourcebook-content-block-field"},children:[this._labelInput]}),BX.create("hr",{props:{className:"crm-entity-widget-hr"}})]}));this._innerWrapper.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block"},children:[BX.create("span",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_CHOOSE")}),new U({useResources:s.USE_RESOURCES==="Y",useUsers:s.USE_USERS==="Y",showUsers:function(){this.resourceList.hide();this.userList.show()}.bind(this),showResources:function(){this.resourceList.show();this.userList.hide()}.bind(this),showResourcesAndUsers:function(){this.resourceList.show();this.userList.show()}.bind(this)}).getOuterWrap()]}));var p=this._innerWrapper.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block"}}));this.resourcesWrap=p.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.resourcesTitleWrap=this.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_RESOURCE_CONTROL_DEFAULT_NAME")+":"}));this.resourcesListWrap=this.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-new-entries-wrap calendar-resourcebook-content-block-detail-inner"}}));this.resourcesListLowControls=this.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resource-content-block-add-field"}}));if(s.RESOURCES&&BX.type.isPlainObject(s.RESOURCES["resource"])&&BX.type.isArray(s.RESOURCES["resource"].SECTIONS)){s.RESOURCES["resource"].SECTIONS.forEach((function(e){i.push({id:e.ID,title:e.NAME,type:e.CAL_TYPE})}))}if(BX.type.isArray(s.SELECTED_RESOURCES)){s.SELECTED_RESOURCES.forEach((function(e){a.push({id:e.id,type:e.type})}))}this.resourceList=new T({shown:s.USE_RESOURCES==="Y",editMode:true,outerWrap:this.resourcesWrap,listWrap:this.resourcesListWrap,controlsWrap:this.resourcesListLowControls,values:a,resourceList:i,checkLimitCallback:this.checkResourceCountLimit.bind(this),checkLimitCallbackForNew:this.checkResourceCountLimitForNewEntries.bind(this)});this.userSelectorWrap=p.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.usersTitleWrap=this.userSelectorWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_USERS_CONTROL_DEFAULT_NAME")+":"}));this.usersListWrap=this.userSelectorWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control"}}));var h=[];if(BX.type.isArray(s.SELECTED_USERS)){s.SELECTED_USERS.forEach((function(e){h.push("U"+parseInt(e))}))}this.userList=new B({shown:s.USE_USERS==="Y",outerWrap:this.userSelectorWrap,wrapNode:this.usersListWrap,socnetDestination:r.ResourcebookingUserfield.getSocnetDestination(),itemsSelected:h,checkLimitCallback:this.checkResourceCountLimit.bind(this)});p.appendChild(BX.create("hr",{props:{className:"crm-entity-widget-hr"}}));this.datetimeOptionsWrap=p.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.datetimeOptionsWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_DATETIME_BLOCK_TITLE")+":"}));this.datetimeOptionsInnerWrap=this.datetimeOptionsWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-options"}}));this.timezoneSettingsWrap=p.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-options"},style:{display:s.FULL_DAY==="Y"?"none":""}}));this.timezoneSettingsWrap.appendChild(BX.create("hr",{props:{className:"crm-entity-widget-hr"}}));this.timezoneSettingsWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("span",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_TIMEZONE_SETTINGS_TITLE")+":"}));this.timezoneSelectorWrap=this.timezoneSettingsWrap.appendChild(BX.create("div",{style:{display:s.USE_USER_TIMEZONE==="Y"?"none":""}}));this.timezoneSelectWrap=this.timezoneSelectorWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-field"}}));this.timezoneSelector=new N({outerWrap:this.timezoneSelectWrap,selectedValue:s.TIMEZONE});this.useUserTimezoneCheckBox=BX.create("input",{props:{type:"checkbox",checked:s.USE_USER_TIMEZONE==="Y"}});this.timezoneSettingsWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.useUserTimezoneCheckBox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_USE_USER_TIMEZONE")})],events:{click:BX.proxy(this.handleUserTimezoneCheckbox,this)}}));this._fulldayCheckBox=BX.create("input",{props:{type:"checkbox",checked:s.FULL_DAY==="Y"},events:{click:BX.proxy(this.handleFullDayMode,this)}});this.datetimeOptionsInnerWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this._fulldayCheckBox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_FULL_DAY")})]}));this._servicesCheckBox=BX.create("input",{props:{type:"checkbox",checked:s.USE_SERVICES==="Y"},events:{click:BX.delegate((function(){if(this.serviceList){this.serviceList.show(this._servicesCheckBox.checked)}}),this)}});this.datetimeOptionsInnerWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this._servicesCheckBox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_ADD_SERVICES")})]}));this.serviceList=new w({outerCont:this.datetimeOptionsInnerWrap,onFullClearHandler:function(){this._servicesCheckBox.checked=false}.bind(this),fieldSettings:s,getFullDayValue:function(){return this._fulldayCheckBox.checked}.bind(this)});p.appendChild(BX.create("hr",{props:{className:"crm-entity-widget-hr"}}));this.additionaOptionsWrap=p.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-options"}}));this._isRequiredCheckBox=BX.create("input",{props:{type:"checkbox",checked:this._field&&this._field.isRequired()}});this.additionaOptionsWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this._isRequiredCheckBox,BX.create("span",{text:this.getMessage("isRequiredField")})]}));this._showAlwaysCheckBox=BX.create("input",{props:{type:"checkbox"}});if(o){this._showAlwaysCheckBox.checked=BX.prop.getBoolean(this._settings,"showAlways",true)}else{this._showAlwaysCheckBox.checked=this._field.checkOptionFlag(BX.Crm.EntityEditorControlOptions.showAlways)}this.additionaOptionsWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this._showAlwaysCheckBox,BX.create("span",{text:this.getMessage("showAlways")})]}));this._overbookingCheckBox=BX.create("input",{props:{type:"checkbox",checked:s.ALLOW_OVERBOOKING==="Y"}});this.additionaOptionsWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this._overbookingCheckBox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_OVERBOOKING")})]}));this._innerWrapper.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-btn-container"},children:[BX.create("hr",{props:{className:"crm-entity-widget-hr"}}),BX.create("button",{props:{type:"button",className:"ui-btn ui-btn-sm ui-btn-primary"},text:BX.message("CRM_EDITOR_SAVE"),events:{click:BX.delegate(this.onSaveButtonClick,this)}}),BX.create("button",{props:{type:"button",className:"ui-btn ui-btn-sm ui-btn-light-border"},text:BX.message("CRM_EDITOR_CANCEL"),events:{click:BX.delegate(this.onCancelButtonClick,this)}})]}));this.fieldSettings=s;this.registerLayout(e);this._hasLayout=true};t.prototype.getDefaultUserfieldSettings=function(e){BX.ajax.runAction("calendar.api.resourcebookingajax.getdefaultuserfieldsettings",{data:{}}).then((function(t){if(e&&BX.type.isFunction(e.displayCallback)){e.displayCallback(t.data)}}),(function(e){}))};t.prototype.getBitrix24Limitation=function(e){BX.ajax.runAction("calendar.api.resourcebookingajax.getbitrix24limitation",{data:{}}).then((function(t){if(e&&BX.type.isFunction(e.callback)){e.callback(t.data)}}),(function(e){}))};t.prototype.onSaveButtonClick=function(){if(this._isLocked){return}if(this.RESOURCE_LIMIT>0&&this.getTotalResourceCount()>this.RESOURCE_LIMIT){n.BookingUtil.showLimitationPopup();return}var e={typeId:this._typeId,label:this._labelInput.value,mandatory:this._isRequiredCheckBox.checked,showAlways:this._showAlwaysCheckBox.checked,multiple:true};if(this._field){e["field"]=this._field}this.fieldSettings.USE_RESOURCES=this.resourceList.isShown()?"Y":"N";this.fieldSettings.USE_USERS=this.userList.isShown()?"Y":"N";if(this.fieldSettings&&BX.type.isPlainObject(this.fieldSettings.RESOURCES)&&BX.type.isPlainObject(this.fieldSettings.RESOURCES["resource"])){this.fieldSettings.SELECTED_RESOURCES=[];this.resourceList.getSelectedValues().forEach((function(e){this.fieldSettings.SELECTED_RESOURCES.push(e)}),this);this.resourceList.getDeletedValues().forEach((function(e){this.fieldSettings.SELECTED_RESOURCES.push(e)}),this)}if(this.fieldSettings&&this.userList){this.fieldSettings.SELECTED_USERS=[0];this.userList.getAttendeesCodesList().forEach((function(e){if(e.substr(0,1)==="U"){this.fieldSettings.SELECTED_USERS.push(parseInt(e.substr(1)))}}),this)}this.fieldSettings.USE_SERVICES=this._servicesCheckBox.checked?"Y":"N";this.fieldSettings.SERVICE_LIST=[];if(this._servicesCheckBox.checked&&this.serviceList){this.fieldSettings.SERVICE_LIST=this.serviceList.getValues()}this.fieldSettings.FULL_DAY=this._fulldayCheckBox.checked?"Y":"N";this.fieldSettings.ALLOW_OVERBOOKING=this._overbookingCheckBox.checked?"Y":"N";if(this.fieldSettings.FULL_DAY==="N"){this.fieldSettings.TIMEZONE=this.timezoneSelector.getValue();this.fieldSettings.USE_USER_TIMEZONE=this.useUserTimezoneCheckBox.checked?"Y":"N"}else{this.fieldSettings.TIMEZONE="";this.fieldSettings.USE_USER_TIMEZONE="N"}e["settings"]=this.fieldSettings;BX.onCustomEvent(this,"onSave",[this,e])};t.prototype.getTotalResourceCount=function(){var e=0;if(this.fieldSettings){if(BX.type.isPlainObject(this.fieldSettings.RESOURCES)&&BX.type.isPlainObject(this.fieldSettings.RESOURCES.resource)&&BX.type.isArray(this.fieldSettings.RESOURCES.resource.SECTIONS)){e+=this.fieldSettings.RESOURCES.resource.SECTIONS.length}e-=this.resourceList.getDeletedValues().length;this.resourceList.getSelectedValues().forEach((function(t){if(!t.id&&t.title!==""){e++}}),this);if(this.userList){e+=this.userList.getAttendeesCodesList().length}}return e};t.prototype.checkResourceCountLimitForNewEntries=function(){return this.RESOURCE_LIMIT<=0||this.getTotalResourceCount()<this.RESOURCE_LIMIT};t.prototype.checkResourceCountLimit=function(){return this.RESOURCE_LIMIT<=0||this.getTotalResourceCount()<=this.RESOURCE_LIMIT};t.prototype.handleFullDayMode=function(){this.timezoneSettingsWrap.style.display=this._fulldayCheckBox.checked?"none":""};t.prototype.handleUserTimezoneCheckbox=function(){this.timezoneSelectorWrap.style.display=this.useUserTimezoneCheckBox.checked?"none":""};return t};class W{constructor(e){this.id="calendar_custom_settings_"+Math.round(Math.random()*1e6);this.zIndex=3100;this.sliderId="calendar:resbook-settings-slider";this.SLIDER_WIDTH=400;this.SLIDER_DURATION=80;this.DOM={};this.params=e}show(){BX.SidePanel.Instance.open(this.sliderId,{contentCallback:BX.delegate(this.create,this),width:this.SLIDER_WIDTH,animationDuration:this.SLIDER_DURATION});this.hideHandler=this.hide.bind(this);this.destroyHandler=this.destroy.bind(this);BX.addCustomEvent("SidePanel.Slider:onClose",this.hideHandler);BX.addCustomEvent("SidePanel.Slider:onCloseComplete")}close(){BX.SidePanel.Instance.close()}hide(e){if(e&&e.getSliderPage&&e.getSliderPage().getUrl()===this.sliderId){BX.removeCustomEvent("SidePanel.Slider:onClose",this.hideHandler)}}destroy(e){if(e&&e.getSliderPage&&e.getSliderPage().getUrl()===this.sliderId){BX.removeCustomEvent("SidePanel.Slider:onCloseComplete",this.destroyHandler);BX.SidePanel.Instance.destroy(this.sliderId)}}create(){let e=new BX.Promise;let t='<div class="webform-buttons calendar-form-buttons-fixed">'+'<span id="'+this.id+'_save" class="webform-small-button webform-small-button-blue">'+BX.message("USER_TYPE_RESOURCE_SAVE")+"</span>"+'<span id="'+this.id+'_close" class="webform-button-link">'+BX.message("USER_TYPE_RESOURCE_CLOSE")+"</span>"+"</div>"+'<div class="calendar-slider-calendar-wrap">'+'<div class="calendar-slider-header"><div class="calendar-head-area"><div class="calendar-head-area-inner"><div class="calendar-head-area-title">'+'<span class="calendar-head-area-name">'+BX.message("USER_TYPE_RESOURCE_SETTINGS")+"</span>"+"</div></div></div></div>"+'<div class="resource-booking-slider-workarea"><div class="resource-booking-slider-content"><div id="'+this.id+'_content" class="resource-booking-settings"></div></div></div></div>';e.fulfill(t);setTimeout(this.initControls.bind(this),100);return e}initControls(){this.DOM.content=BX(this.id+"_content");BX.bind(BX(this.id+"_save"),"click",this.save.bind(this));BX.bind(BX(this.id+"_close"),"click",this.close.bind(this));if(this.params&&BX.type.isArray(this.params.filterSelectValues)){this.DOM.fieldOuterWrap=this.DOM.content.appendChild(BX.create("DIV",{attrs:{className:"calendar-settings-control"}}));this.DOM.fieldOuterWrap.appendChild(BX.create("DIV",{attrs:{className:"calendar-settings-control-name"},text:BX.message("USER_TYPE_RESOURCE_FILTER_NAME")}));this.DOM.fieldSelect=this.DOM.fieldOuterWrap.appendChild(BX.create("DIV",{attrs:{className:"calendar-field-container calendar-field-container-select"}})).appendChild(BX.create("DIV",{attrs:{className:"calendar-field-block"}})).appendChild(BX.create("select",{attrs:{className:"calendar-field calendar-field-select"}}));this.params.filterSelectValues.forEach((function(e){this.DOM.fieldSelect.options.add(new Option(e.TEXT,e.VALUE,this.params.filterSelect===e.VALUE,this.params.filterSelect===e.VALUE))}),this)}}save(){let e=this.params.entityType||"none";BX.userOptions.save("calendar","resourceBooking",e,this.DOM.fieldSelect.value);this.close();BX.reload()}}class X{constructor(e={}){this.params=n.Type.isPlainObject(e)?e:{};this.fieldSettings=n.Type.isPlainObject(this.params.settings)?this.params.settings:{};this.DOM={outerWrap:document.getElementById(this.params.outerWrapId),form:document.forms[this.params.formName]}}showLayout(){if(!this.DOM.outerWrap||!this.DOM.form)return;n.Event.bind(this.DOM.form,"submit",this.onSubmit.bind(this));n.Dom.addClass(this.DOM.outerWrap,"calendar-resourcebook-content calendar-resourcebook-content-admin-settings");this.DOM.innerWrap=this.DOM.outerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-wrap"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-inner"}}));let e=[],t=[];this.DOM.innerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block"},children:[n.Dom.create("span",{props:{className:"calendar-resourcebook-content-block-title-text"},text:n.Loc.getMessage("USER_TYPE_RESOURCE_CHOOSE")}),new U({useResources:this.fieldSettings.USE_RESOURCES==="Y",useUsers:this.fieldSettings.USE_USERS==="Y",showUsers:function(){this.resourceList.hide();this.userList.show()}.bind(this),showResources:function(){this.resourceList.show();this.userList.hide()}.bind(this),showResourcesAndUsers:function(){this.resourceList.show();this.userList.show()}.bind(this)}).getOuterWrap()]}));this.DOM.optionWrap=this.DOM.innerWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block"}}));this.resourcesWrap=this.DOM.optionWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.resourcesTitleWrap=this.resourcesWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:n.Loc.getMessage("USER_TYPE_RESOURCE_RESOURCE_CONTROL_DEFAULT_NAME")+":"}));this.resourcesListWrap=this.resourcesWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-new-entries-wrap calendar-resourcebook-content-block-detail-inner"}}));this.resourcesListLowControls=this.resourcesWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resource-content-block-add-field"}}));if(this.fieldSettings.RESOURCES&&n.Type.isPlainObject(this.fieldSettings.RESOURCES["resource"])&&n.Type.isArray(this.fieldSettings.RESOURCES["resource"].SECTIONS)){this.fieldSettings.RESOURCES["resource"].SECTIONS.forEach((function(t){e.push({id:t.ID,title:t.NAME,type:t.CAL_TYPE})}))}if(n.Type.isArray(this.fieldSettings.SELECTED_RESOURCES)){this.fieldSettings.SELECTED_RESOURCES.forEach((function(e){t.push({id:e.id,type:e.type})}))}this.resourceList=new T({shown:this.fieldSettings.USE_RESOURCES==="Y",editMode:true,outerWrap:this.resourcesWrap,listWrap:this.resourcesListWrap,controlsWrap:this.resourcesListLowControls,values:t,resourceList:e,checkLimitCallback:this.checkResourceCountLimit.bind(this)});this.userSelectorWrap=this.DOM.optionWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.usersTitleWrap=this.userSelectorWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:n.Loc.getMessage("USER_TYPE_RESOURCE_USERS_CONTROL_DEFAULT_NAME")+":"}));this.usersListWrap=this.userSelectorWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control custom-field-item"}}));let s=[];if(n.Type.isArray(this.fieldSettings.SELECTED_USERS)){this.fieldSettings.SELECTED_USERS.forEach((function(e){s.push("U"+parseInt(e))}))}this.userList=new B({shown:this.fieldSettings.USE_USERS==="Y",outerWrap:this.userSelectorWrap,wrapNode:this.usersListWrap,socnetDestination:this.params.socnetDestination,itemsSelected:s});this.DOM.optionWrap.appendChild(n.Dom.create("hr",{props:{className:"calendar-resbook-hr"}}));this.datetimeOptionsWrap=this.DOM.optionWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.datetimeOptionsWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:n.Loc.getMessage("USER_TYPE_RESOURCE_DATETIME_BLOCK_TITLE")+":"}));this.datetimeOptionsInnerWrap=this.datetimeOptionsWrap.appendChild(n.Dom.create("div",{props:{className:"calendar-resourcebook-content-block-options"}}));this.DOM.fulldayCheckBox=n.Dom.create("input",{props:{type:"checkbox",checked:this.fieldSettings.FULL_DAY==="Y"}});this.datetimeOptionsInnerWrap.appendChild(n.Dom.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.DOM.fulldayCheckBox,n.Dom.create("span",{text:n.Loc.getMessage("USER_TYPE_RESOURCE_FULL_DAY")})]}));this.DOM.useServicedayCheckBox=n.Dom.create("input",{props:{type:"checkbox",checked:this.fieldSettings.USE_SERVICES==="Y"},events:{click:function(){if(this.serviceList){this.serviceList.show(this.DOM.useServicedayCheckBox.checked)}}.bind(this)}});this.datetimeOptionsInnerWrap.appendChild(n.Dom.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.DOM.useServicedayCheckBox,n.Dom.create("span",{text:n.Loc.getMessage("USER_TYPE_RESOURCE_ADD_SERVICES")})]}));this.serviceList=new w({outerCont:this.datetimeOptionsInnerWrap,fieldSettings:this.fieldSettings,getFullDayValue:function(){return this.DOM.fulldayCheckBox.checked}.bind(this)});this.DOM.optionWrap.appendChild(n.Dom.create("hr",{props:{className:"calendar-resbook-hr"}}));this.DOM.overbookingCheckbox=n.Dom.create("input",{props:{type:"checkbox",checked:this.fieldSettings.ALLOW_OVERBOOKING==="Y"}});this.DOM.optionWrap.appendChild(n.Dom.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.DOM.overbookingCheckbox,n.Dom.create("span",{text:n.Loc.getMessage("USER_TYPE_RESOURCE_OVERBOOKING")})]}))}onSubmit(e){if(!this.DOM.inputsWrap){this.DOM.inputsWrap=this.DOM.outerWrap.appendChild(n.Dom.create("DIV"))}else{n.Dom.clean(this.DOM.inputsWrap)}let t=this.params.htmlControl.NAME;this.DOM.inputsWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:t+"[USE_USERS]",value:this.userList.isShown()?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:t+"[USE_RESOURCES]",value:this.resourceList.isShown()?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:t+"[USE_SERVICES]",value:this.DOM.useServicedayCheckBox.checked?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:t+"[FULL_DAY]",value:this.DOM.fulldayCheckBox.checked?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(n.Dom.create("INPUT",{attrs:{name:t+"[ALLOW_OVERBOOKING]",value:this.DOM.overbookingCheckbox.checked?"Y":"N",type:"hidden"}}));if(this.resourceList){this.prepareFormDataInputs(this.DOM.inputsWrap,this.resourceList.getSelectedValues().concat(this.resourceList.getDeletedValues()),t+"[SELECTED_RESOURCES]")}if(this.userList){let e=[];this.userList.getAttendeesCodesList().forEach((function(t){if(t.substr(0,1)==="U"){e.push(parseInt(t.substr(1)))}}),this);this.prepareFormDataInputs(this.DOM.inputsWrap,e,t+"[SELECTED_USERS]")}if(this.DOM.useServicedayCheckBox.checked&&this.serviceList){this.prepareFormDataInputs(this.DOM.inputsWrap,this.serviceList.getValues(),t+"[SERVICE_LIST]")}}prepareFormDataInputs(e,t,s){t.forEach((function(t,i){if(n.Type.isPlainObject(t)){let a;for(a in t){if(t.hasOwnProperty(a)){e.appendChild(n.Dom.create("INPUT",{attrs:{name:s+"["+i+"]["+a+"]",value:t[a],type:"hidden"}}))}}}else{e.appendChild(n.Dom.create("INPUT",{attrs:{name:s+"["+i+"]",value:t,type:"hidden"}}))}}),this)}getTotalResourceCount(){let e=0;if(this.fieldSettings){if(n.Type.isPlainObject(this.fieldSettings.RESOURCES)&&n.Type.isPlainObject(this.fieldSettings.RESOURCES.resource)&&n.Type.isArray(this.fieldSettings.RESOURCES.resource.SECTIONS)){e+=this.fieldSettings.RESOURCES.resource.SECTIONS.length}if(this.resourceList){e-=this.resourceList.getDeletedValues().length;this.resourceList.getSelectedValues().forEach((function(t){if(!t.id&&t.title!==""){e++}}),this)}if(this.userList){e+=this.userList.getAttendeesCodesList().length}}return e}checkResourceCountLimitForNewEntries(){return this.RESOURCE_LIMIT<=0||this.getTotalResourceCount()<this.RESOURCE_LIMIT}checkResourceCountLimit(){return this.RESOURCE_LIMIT<=0||this.getTotalResourceCount()<=this.RESOURCE_LIMIT}}class F{static initCrmFormFieldController(e){if(!o.Type.isPlainObject(e)){e={field:{}}}let t={};if(o.Type.isDomNode(e.field.node)){t.outerWrap=e.field.node}else{throw new Error('The argument "params.field.node" must be a DOM node.')}t.innerWrap=t.outerWrap.querySelector(".crm-webform-resourcebooking-wrap");if(!t.innerWrap){throw new Error('Can\'t find necessary DOM node "div.crm-webform-resourcebooking-wrap"')}t.name=e.field.name;t.formName="FIELD["+e.field.name+"]";t.captionNode=e.field.lblCaption;t.entityFieldName=e.field.entity_field_name;t.entityName=e.field.dict.entity_field_name;t.settings={caption:e.field.captionValue||e.field.dict.caption,required:e.field.isRequired||e.field.dict.required,data:o.Type.isPlainObject(e.field.booking)&&o.Type.isPlainObject(e.field.booking.settings_data)?e.field.booking.settings_data:e.field.settingsData||[]};let s=new R(t);s.init();return s}static initEditFieldController(e){let t=new I(e);t.init();return t}static getCrmFieldConfigurator(e,t){if(window.BX&&BX.Crm&&o.Type.isFunction(BX.Crm.EntityEditorUserFieldConfigurator)){return P(BX.Crm.EntityEditorUserFieldConfigurator).create(e,t)}}static getUserFieldParams(e={}){return new Promise((t=>{let s=e.fieldName||"";if(e.clearCache||!F.fieldParamsCache[e.fieldName]){BX.ajax.runAction("calendar.api.resourcebookingajax.getfieldparams",{data:{fieldname:e.fieldName,selectedUsers:e.selectedUsers||[]}}).then((e=>{F.fieldParamsCache[s]=e.data;t(e.data)}),(e=>{}))}else{t(F.fieldParamsCache[s])}}))}static getPluralMessage(e,t){let s,i;i=BX.message("LANGUAGE_ID")||"en";t=parseInt(t);if(t<0){t=-1*t}if(i){switch(i){case"ru":case"ua":if(t%10===1&&t%100!==11){s=0}else{s=t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2}break;case"pl":if(t<=4){s=t===1?0:1}else{s=2}break;default:s=t!==1?1:0;break}}else{s=1}return BX.message(e+"_PLURAL_"+s)}static getParamsFromHash(e){let t,s,i=unescape(window.location.hash);if(i){s=new RegExp("#calendar:"+e+"\\|(.*)","ig").exec(i);if(s&&s.length>1){t=s[1].split("|")}}return t}static openExternalSettingsSlider(e){let t=new W(e);t.show()}static setSocnetDestination(e){F.socnetDestination=e}static getSocnetDestination(){return F.socnetDestination}}F.fieldParamsCache={};F.socnetDestination=null;e.Resourcebooking=n.Resourcebooking;e.BookingUtil=n.BookingUtil;e.AdminSettingsViewer=X;e.ResourcebookingUserfield=F})(this.BX.Calendar=this.BX.Calendar||{},BX.UI.EntitySelector,BX.Event,BX,BX.Main,BX,BX.Calendar,BX.Calendar); //# sourceMappingURL=resourcebookinguserfield.bundle.map.js
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings