Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/calendar/controls/dist/ |
Upload File : |
this.BX=this.BX||{};this.BX.Calendar=this.BX.Calendar||{};(function(e,t,i,s,a,n,o,l,r,c,h,d,u,p,m,g,f,D,M,C){"use strict";class T{constructor(e){this.Z_INDEX=4e3;this.valueList=[];this.DOM={wrap:e.wrap,input:e.input};for(let e=0;e<24;e++){this.valueList.push({value:e*60,label:M.Util.formatTime(e,0)});this.valueList.push({value:e*60+30,label:M.Util.formatTime(e,30)})}this.onChangeCallback=D.Type.isFunction(e.onChangeCallback)?e.onChangeCallback:null;this.selectContol=new g.SelectInput({input:this.DOM.input,zIndex:this.Z_INDEX,values:this.valueList,onChangeCallback:e=>{if(this.onChangeCallback){this.onChangeCallback(this.selectContol.getInputValue(),e.dataValue)}},onPopupShowCallback:()=>D.Dom.addClass(this.DOM.input.parentNode,"active"),onPopupCloseCallback:()=>D.Dom.removeClass(this.DOM.input.parentNode,"active")})}highlightValue(e){this.valueList.forEach((e=>e.selected=false));const t=e.getHours()*60+e.getMinutes();this.selectContol.setValue({value:t});let i=this.valueList.find((e=>e.value===t));if(!i){return}i.selected=true;this.selectContol.setValueList(this.valueList)}updateDurationHints(e,t,i,s){const a=M.Util.parseTime(e);const n=M.Util.parseTime(t);const o=M.Util.parseDate(i);const l=M.Util.parseDate(s);const r=a.h*60+a.m;const c=n.h*60+n.m;const h=i===s;const d=h?this.approximate(r+15,15):0;const u=this.approximate(r+60+15/2,30);this.valueList=[];if(i===s){this.valueList.push(this.getValueElement(r,r,c,o,l))}for(let e=d;e<=24*60;e+=h&&e<u?15:30){this.valueList.push(this.getValueElement(r,e,c,o,l))}this.selectContol.setValueList(this.valueList)}getValueElement(e,t,i,s,a){const n=Math.floor(t/60);const o=t%60;const l=M.Util.formatTime(n,o);const r=this.getStyledDurationHint(e,t,s,a);const c=t===i;return{value:t,label:l,hint:r,selected:c}}getStyledDurationHint(e,t,i,s){const a=this.getDurationHint(e,t,i,s);if(a!==""){return`<div class="menu-popup-item-hint">${a}</div>`}return""}getDurationHint(e,t,i,s){const a=new Date(i.getTime()+e*60*1e3);const n=new Date(s.getTime()+t*60*1e3);const o=n.getTime()-a.getTime();const l=this.approximateFloor(o/(1e3*60*60*24),1);const r=this.approximate(o/(1e3*60*60),.5);const c=this.approximate(o/(1e3*60),1);const h=this.approximate(c,15);if(l>=1){return""}if(c>=60){const e=c!==h?"~":"";return`${e}${this.formatDecimal(r)} ${D.Loc.getMessage("EC_HOUR_SHORT")}`}return`${this.formatDecimal(c)} ${D.Loc.getMessage("EC_MINUTE_SHORT")}`}formatDecimal(e){return`${e}`.replace(".",",")}approximateFloor(e,t){return Math.floor(e/t)*t}approximate(e,t){return Math.round(e/t)*t}}let v=e=>e,E,b,y,O,L,I,w,_;class N extends p.EventEmitter{constructor(e){super();this.defaultReminderTime=540;this.fullDayMode=false;this.extendedMode=true;this.selectedValues=[];this.controlList={};this.viewMode=false;this.DOM={};this.changedByUser=false;this.setEventNamespace("BX.Calendar.Controls.Reminder");this.values=this.getValues();this.id=e.id||"reminder-"+Math.round(Math.random()*1e6);this.zIndex=e.zIndex||3200;this.rawValuesMap=new Map;this.viewMode=e.viewMode===true;this.changeCallack=e.changeCallack;this.showPopupCallBack=e.showPopupCallBack;this.hidePopupCallBack=e.hidePopupCallBack;this.create(e);this.setValue(e.selectedValues||[]);this.bindEventHandlers()}create(e){if(D.Type.isElementNode(e.wrap)){this.DOM.wrap=e.wrap}if(!D.Type.isElementNode(this.DOM.wrap)){return}D.Dom.addClass(this.DOM.wrap,"calendar-notification-values");if(!this.viewMode){this.DOM.addButton=this.DOM.wrap.appendChild(D.Tag.render(E||(E=v` <span class="calendar-notification-add-btn-wrap"> <span class="calendar-notification-text">${0}</span> <span class="calendar-notification-btn-container calendar-notification-btn-add"> <span class="calendar-notification-icon"></span> </span> </span>`),D.Loc.getMessage("EC_REMIND1_ADD")))}}bindEventHandlers(){if(D.Type.isDomNode(this.DOM.addButton)){D.Event.bind(this.DOM.addButton,"click",this.showPopup.bind(this))}if(D.Type.isDomNode(this.DOM.wrap)){D.Event.bind(this.DOM.wrap,"click",this.handleClick.bind(this))}}getValues(){let e=[];if(!this.fullDayMode){e=e.concat([{value:0,label:D.Loc.getMessage("EC_REMIND1_0"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_0")},{value:5,label:D.Loc.getMessage("EC_REMIND1_5"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_5")},{value:10,label:D.Loc.getMessage("EC_REMIND1_10"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_10")},{value:15,label:D.Loc.getMessage("EC_REMIND1_15"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_15")},{value:20,label:D.Loc.getMessage("EC_REMIND1_20"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_20")},{value:30,label:D.Loc.getMessage("EC_REMIND1_30"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_30")},{value:60,label:D.Loc.getMessage("EC_REMIND1_60"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_60")},{value:120,label:D.Loc.getMessage("EC_REMIND1_120"),shortLabel:D.Loc.getMessage("EC_REMIND1_SHORT_120")}])}if(this.extendedMode){e=e.concat([{id:"time-menu-day-0",label:D.Loc.getMessage("EC_REMIND1_DAY_0"),dataset:{mode:"time-menu",daysBefore:0,time:this.defaultReminderTime}},{id:"time-menu-day-1",label:D.Loc.getMessage("EC_REMIND1_DAY_1"),dataset:{mode:"time-menu",daysBefore:1,time:this.defaultReminderTime}},{id:"time-menu-day-2",label:D.Loc.getMessage("EC_REMIND1_DAY_2"),dataset:{mode:"time-menu",daysBefore:2,time:this.defaultReminderTime}},{id:"custom-reminder",label:D.Loc.getMessage("EC_REMIND1_CUSTOM"),dataset:{mode:"custom"}}])}return e}setValue(e,t=true,i=true){this.selectedValues.forEach((e=>{this.removeValue(e,t)}));if(D.Type.isArray(e)){e.forEach((e=>{this.addValue(e,t,i)}),this)}}getSelectedValues(){return this.selectedValues}getSelectedRawValues(){let e=[];this.selectedValues.forEach((t=>{e.push(this.rawValuesMap.get(t)||t)}));return e}setFullDayMode(e){if(e!==this.fullDayMode){this.fullDayMode=e;this.values=this.getValues()}}showPopup(e={}){const t=this;const i=[];this.values.forEach((s=>{if(s.mode==="time-menu"||s.mode==="custom-reminder"||!BX.util.in_array(s.value,this.selectedValues)){let a={};if(s.dataset&&s.dataset.mode==="time-menu"){a.id=s.id;let i=M.Util.getTimeByInt(this.defaultReminderTime);a.text=s.label.replace("#TIME#",M.Util.formatTime(i.hour,i.min));a.dataset=BX.util.objectMerge({type:"submenu-list",value:this.defaultReminderTime},s.dataset);a.items=this.getSubmenuTimeValues(a,s.label,e);a.onclick=function(){return function(){t.addValue({before:s.dataset.daysBefore,time:s.dataset.time});BX.defer((function(){t.reminderMenu.close()}),t)();if(D.Type.isFunction(e.addValueCallback)){e.addValueCallback()}}}()}else if(s.dataset&&s.dataset.mode==="custom"){a.id="custom-reminder";a.text=s.label;a.items=[{id:"tmp",text:""}]}else{a.text=s.label;a.onclick=function(i,s){return()=>{t.addValue(i);t.reminderMenu.close();if(D.Type.isFunction(e.addValueCallback)){e.addValueCallback()}}}(s.value,s.mode)}i.push(a)}}),this);this.reminderMenu=C.MenuManager.create(this.id,e.bindTarget||this.DOM.addButton,i,{closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:9,angle:true,cacheable:false});let s=this.adjustSubmenuPopup.bind(this);let a=this.closeSubmenuPopup.bind(this);p.EventEmitter.subscribe("BX.Main.Popup:onShow",s);p.EventEmitter.subscribe("BX.Main.Popup:onClose",a);this.reminderMenu.popupWindow.subscribe("onClose",(()=>{p.EventEmitter.unsubscribe("BX.Main.Popup:onShow",s);p.EventEmitter.unsubscribe("BX.Main.Popup:onClose",a)}));this.reminderMenu.show()}getSubmenuTimeValues(e,t,i){let s=[];N.getTimeValueList(60).forEach((function(a){s.push({id:"time-"+a.value,dataset:{value:a.value,daysBefore:e.dataset.daysBefore},text:a.label,onclick:function(s,a){let n=M.Util.getTimeByInt(a.dataset.value);let o=this.reminderMenu.getMenuItem(e.id);if(o){o.setText(t.replace("#TIME#",M.Util.formatTime(n.hour,n.min)))}this.addValue({time:a.dataset.value,before:a.dataset.daysBefore});BX.defer((function(){this.reminderMenu.close()}),this)();if(D.Type.isFunction(i.addValueCallback)){i.addValueCallback()}}.bind(this)})}),this);return s}addValue(e,t=true,i=true){let s;const a=N.formatValue(e);if(D.Type.isPlainObject(e)&&e.count){e=parseInt(a)}if(D.Type.isPlainObject(e)&&!this.selectedValues.includes(a)){if(D.Type.isInteger(parseInt(e.before))&&D.Type.isInteger(parseInt(e.time))){s=this.DOM.wrap.appendChild(D.Tag.render(b||(b=v` <span class="calendar-reminder-item"> <span class="calendar-reminder-item-title"> ${0} </span> </span>`),N.getReminderLabel(e)));if(!this.viewMode){s.appendChild(D.Tag.render(y||(y=v`<span class="calendar-reminder-clear-icon" data-bxc-value="${0}"/>`),a))}}else if(e.type==="date"&&D.Type.isDate(e.value)){s=this.DOM.wrap.appendChild(D.Tag.render(O||(O=v`<span class="calendar-reminder-item"> <span class="calendar-reminder-item-title"> ${0} </span> </span>`),M.Util.formatDateUsable(e.value)+" "+M.Util.formatTime(e.value)));if(!this.viewMode){s.appendChild(D.Tag.render(L||(L=v`<span class="calendar-reminder-clear-icon" data-bxc-value="${0}"/>`),a))}}this.selectedValues.push(a);this.controlList[a]=s;this.rawValuesMap.set(a,e)}else if(parseInt(e)>=0&&!this.selectedValues.includes(a)){for(let t=0;t<this.values.length;t++){if(this.values[t].value===parseInt(e)){s=this.DOM.wrap.appendChild(D.Tag.render(I||(I=v` <span class="calendar-reminder-item"> <span class="calendar-reminder-item-title"> ${0} </span> </span>`),this.values[t].shortLabel||this.values[t].label));if(!this.viewMode){s.appendChild(D.Tag.render(w||(w=v`<span class="calendar-reminder-clear-icon" data-bxc-value="${0}"/>`),a))}this.selectedValues.push(a);this.controlList[a]=s;this.rawValuesMap.set(a,e);break}}if(s===undefined){s=this.DOM.wrap.appendChild(D.Dom.create("SPAN",{props:{className:"calendar-reminder-item"},text:N.getText(e)}));if(!this.viewMode){s.appendChild(D.Dom.create("SPAN",{props:{className:"calendar-reminder-clear-icon"},events:{click:function(){this.removeValue(e)}.bind(this)}}))}this.selectedValues.push(e);this.controlList[e]=s;this.rawValuesMap.set(e,e)}}if(this.changeCallack){this.changeCallack(this.selectedValues)}if(t){this.emit("onChange",new p.BaseEvent({data:{values:this.selectedValues}}))}this.changedByUser=t&&i;if(D.Type.isElementNode(this.DOM.addButton)){this.DOM.wrap.appendChild(this.DOM.addButton)}}removeValue(e,t=true){if(this.controlList[e]&&D.Type.isDomNode(this.controlList[e])){D.Dom.remove(this.controlList[e])}this.selectedValues=BX.util.deleteFromArray(this.selectedValues,BX.util.array_search(e,this.selectedValues));if(this.changeCallack){this.changeCallack(this.selectedValues)}if(t){this.emit("onChange",new p.BaseEvent({data:{values:this.selectedValues}}));this.changedByUser=true}}static getTimeValueList(e=30){if(!N.timeValueList){N.timeValueList=[];let t;for(t=0;t<24;t++){N.timeValueList.push({value:t*60,label:M.Util.formatTime(t,0)});if(e<=30){N.timeValueList.push({value:t*60+30,label:M.Util.formatTime(t,30)})}}}return N.timeValueList}handleClick(e){let t=e.target||e.srcElement;let i=t.getAttribute("data-bxc-value");if(!D.Type.isNull(i)&&this.selectedValues.includes(i)){this.removeValue(i)}if(D.Dom.hasClass(t,"calendar-reminder-item-title")){this.showPopup({bindTarget:t,addValueCallback:()=>{const e=t.parentNode.querySelector(".calendar-reminder-clear-icon");if(D.Type.isElementNode(e)&&!D.Type.isNull(e.getAttribute("data-bxc-value"))){this.removeValue(e.getAttribute("data-bxc-value"))}}})}}static inputCalendarClosePopupHandler(e){BX.onCustomEvent(window,"onCalendarControlChildPopupClosed")}static getReminderLabel(e){let t="";e.before=parseInt(e.before);e.time=parseInt(e.time);if(D.Type.isInteger(e.before)&&D.Type.isInteger(e.time)&&[0,1,2].includes(e.before)){let i=M.Util.getTimeByInt(e.time);t=D.Loc.getMessage("EC_REMIND1_DAY_"+e.before+"_SHORT").replace("#TIME#",M.Util.formatTime(i.hour,i.min))}return t}adjustSubmenuPopup(e){if(e instanceof p.BaseEvent){let t=e.getTarget();if(t instanceof C.Popup){if(/^menu-popup-popup-submenu-time-menu-day-\d$/.test(t.getId())){this.adjustTimeSubmenuPopup(t)}else if(/^menu-popup-popup-submenu-custom-reminder$/.test(t.getId())){this.adjustCalendarSubmenuPopup(t)}}}}closeSubmenuPopup(e){if(e instanceof p.BaseEvent){let t=e.getTarget();if(t instanceof C.Popup){if(/^menu-popup-popup-submenu-time-menu-day-\d$/.test(t.getId()));else if(/^menu-popup-popup-submenu-custom-reminder$/.test(t.getId())){let e=t.bindElement;let i=e.querySelector(".menu-popup-item-text");if(D.Type.isDomNode(i)){D.Dom.clean(i);i.innerHTML=D.Loc.getMessage("EC_REMIND1_CUSTOM")}}}}}adjustTimeSubmenuPopup(e){let t=e.getContentContainer().querySelector('span[data-value="'+this.defaultReminderTime+'"]');if(D.Type.isDomNode(t)){setTimeout((()=>{e.getContentContainer().scrollTop=parseInt(t.offsetTop)-10;D.Dom.addClass(t,"menu-popup-item-open")}),50)}}adjustCalendarSubmenuPopup(e){let t=e.bindElement;let i=t.querySelector(".menu-popup-item-text");if(D.Type.isDomNode(i)){D.Dom.clean(i);const t=i.appendChild(D.Tag.render(_||(_=v`<input id="inp-${0}" type="text" class="calendar-field calendar-field-datetime" value="" autocomplete="off" placeholder="${0}"/>`),Math.round(Math.random()*1e5),D.Loc.getMessage("EC_REMIND1_CUSTOM_PLACEHOLDER")));const s=BX.calendar.get();if(s.popup){s.popup.destroy();s.popup=null;s._current_layer=null;s._layers={}}if(s.popup_month){s.popup_month.destroy();s.popup_month=null}if(s.popup_year){s.popup_year.destroy();s.popup_year=null}s.Show({node:t,value:M.Util.formatDateTime(M.Util.getUsableDateTime(new Date)),field:t,bTime:true,bHideTime:false});let a=s.popup;a.cacheable=false;if(a&&a.popupContainer){let t=a.popupContainer.querySelector(".bx-calendar");if(D.Type.isDomNode(t)){e.contentContainer.appendChild(t)}a.close();C.MenuManager.destroy(a.uniquePopupId)}D.Event.bind(t,"change",(()=>{let e=t.value,i=M.Util.parseDate(e);if(D.Type.isDate(i)){this.addValue({type:"date",value:i});this.reminderMenu.close()}}))}}setViewMode(e){this.viewMode=e;if(this.viewMode){D.Dom.addClass(this.DOM.wrap,"calendar-reminder-readonly");if(D.Type.isElementNode(this.DOM.addButton)){this.DOM.addButton.style.display="none"}}else{D.Dom.removeClass(this.DOM.wrap,"calendar-reminder-readonly")}}wasChangedByUser(){return this.changedByUser}static getText(e){let t=e,i=[60,24],s=["EC_REMIND1_MIN_COUNT","EC_REMIND1_HOUR_COUNT","EC_REMIND1_DAY_COUNT"],a="";for(let e=0;e<s.length;e++){if(t<i[e]||e===i.length){a=D.Loc.getMessage(s[e]).toString();a=a.replace("#COUNT#",t.toString());break}else{t=Math.ceil(t/i[e])}}return a}static formatValue(e){if(D.Type.isPlainObject(e)&&D.Type.isInteger(parseInt(e.before))&&D.Type.isInteger(parseInt(e.time))){return"daybefore|"+e.before+"|"+e.time}else if(D.Type.isPlainObject(e)&&D.Type.isDate(e.value)){return"date|"+M.Util.formatDateTime(e.value)}else if(D.Type.isPlainObject(e)&&e.type){if(e.type==="min"){return e.count.toString()}if(e.type==="hour"){return(parseInt(e.count)*60).toString()}if(e.type==="day"){return(parseInt(e.count)*60*24).toString()}}return e.toString()}}N.timeValueList=null;let B=e=>e,S,P,A,k,x,R,U;class V{constructor(e){this.datesRange=[];this.viewMode=false;this.params=e;this.id=e.id||`location-${Math.round(Math.random()*1e6)}`;this.zIndex=e.zIndex||3100;this.DOM={wrapNode:e.wrap};this.roomsManager=e.roomsManager||null;this.locationAccess=e.locationAccess||false;this.readOnly=e.readOnly||false;this.disabled=!e.richLocationEnabled;this.hideLocationLock=e.hideLocationLock;this.value={type:"",text:"",value:""};this.isLoading=false;this.inlineEditModeEnabled=e.inlineEditModeEnabled;this.meetingRooms=e.iblockMeetingRoomList||[];V.setMeetingRoomList(e.iblockMeetingRoomList);V.setLocationList(e.locationList);if(!this.disabled){this.default=this.setDefaultRoom(e.locationList)||""}this.create();this.setViewMode(e.viewMode===true);this.processValue();this.setCategoryManager();this.setValuesDebounced=BX.debounce(this.setValues.bind(this),100);this.updateAccessibilityDebounce=D.Runtime.debounce(this.updateAccessibility.bind(this),100);V.instances.push(this)}create(){this.DOM.wrapNode.style.display="flex";this.DOM.inputWrap=this.DOM.wrapNode.appendChild(D.Tag.render(S||(S=B` <div class="calendar-field-block"></div> `)));this.DOM.alertIconLocation=D.Tag.render(P||(P=B` <div class="ui-alert-icon-danger calendar-location-alert-icon" data-hint-no-icon="Y" data-hint="${0}"> <i></i> </div> `),D.Loc.getMessage("EC_LOCATION_OVERFLOW"));if(this.inlineEditModeEnabled){this.DOM.inlineEditLinkWrap=this.DOM.wrapNode.appendChild(D.Tag.render(A||(A=B` <div class="calendar-field-place-link calendar-location-readonly">${0} </div> `),this.DOM.inlineEditLink=D.Tag.render(k||(k=B` <span class="calendar-text-link">${0}</span> `),D.Loc.getMessage("EC_REMIND1_ADD"))));this.DOM.inputWrap.style.display="none";D.Event.bind(this.DOM.inlineEditLinkWrap,"click",(()=>{this.displayInlineEditControls();this.selectContol.showPopup()}))}this.DOM.inputWrapInner=this.DOM.inputWrap.appendChild(D.Tag.render(x||(x=B` <div class="calendar-event-location-input-wrap-inner"> </div> `)));this.DOM.input=this.DOM.inputWrapInner.appendChild(D.Dom.create("INPUT",{attrs:{name:this.params.inputName||"",placeholder:this.disabled?D.Loc.getMessage("EC_LOCATION_PLACEHOLDER_LOCKED"):D.Loc.getMessage("EC_LOCATION_PLACEHOLDER"),type:"text",autocomplete:this.disabled?"on":"off"},props:{className:"calendar-field calendar-field-select"},style:{paddingRight:`${25}px`,minWidth:`${300}px`,maxWidth:`${300}px`}}));if(!this.disabled){return}if(this.hideLocationLock){D.Dom.addClass(this.DOM.wrapNode,"hidden-locked")}else{D.Dom.addClass(this.DOM.wrapNode,"locked");this.DOM.lockIcon=D.Tag.render(R||(R=B` <div class="calendar-lock-icon"></div> `));D.Event.bind(this.DOM.lockIcon,"click",(()=>{m.FeaturePromotersRegistry.getPromoter({featureId:"calendar_location"}).show()}));D.Dom.append(this.DOM.lockIcon,this.DOM.inputWrapInner)}}setValues(){var e,t;this.addLocationRemoveButton();if(!this.categoryManagerFromDB){this.setValuesDebounced();return}this.prohibitClick();const i=[];let s=false;const a=V.getMeetingRoomList();const n=V.getLocationList();const o=this.createRoomList(n);this.categoriesWithRooms=this==null?void 0:(e=this.categoryManagerFromDB)==null?void 0:e.getCategoriesWithRooms(o);if(D.Type.isArray(a)){a.forEach((function(e){e.ID=Number(e.ID);i.push({ID:e.ID,label:e.NAME,labelRaw:e.NAME,value:e.ID,capacity:0,type:"mr"});if(this.value.type==="mr"&&Number(this.value.value)===e.ID){s=i.length-1}}),this);if(i.length>0){i.push({delimiter:true})}}const l=e=>{e.id=parseInt(e.id);e.location_id=parseInt(e.location_id);const t=parseInt(this.value.value)===parseInt(e.id);i.push({ID:e.id,LOCATION_ID:e.location_id,label:e.name,capacity:parseInt(e.capacity)||0,color:e.color,reserved:e.reserved||false,labelRaw:e.name,labelCapacity:this.getCapacityMessage(e.capacity),value:e.id,type:"calendar",selected:t});if(this.value.type==="calendar"&&t){s=i.length-1}};if(D.Type.isObject(this.categoriesWithRooms)){if(this.categoriesWithRooms.categories.length>0||this.categoriesWithRooms.default.length>0){this.categoriesWithRooms.categories.forEach((e=>{if(e.rooms.length>0){i.push({text:e.name,delimiter:true});e.rooms.forEach((e=>l(e)))}}));if(this.categoriesWithRooms.default.length>0){i.push({className:"calendar-popup-window-delimiter-default-category",delimiter:true});this.categoriesWithRooms.default.forEach((e=>l(e)))}if(this.locationAccess){this.loadRoomSlider();i.push({delimiter:true});i.push({label:D.Loc.getMessage("EC_LOCATION_MEETING_ROOM_SET"),callback:this.openRoomsSlider.bind(this)})}}else if(this.locationAccess){this.loadRoomSlider();i.push({label:D.Loc.getMessage("EC_ADD_LOCATION"),callback:this.openRoomsSlider.bind(this)})}}let r=this.disabled;if(i.length===0){r=true}this.processValue();this.menuItemList=i;const c=this.selectContol;(t=this.selectContol)!=null?t:this.selectContol=new g.SelectInput({input:this.DOM.input,values:i,valueIndex:s,zIndex:this.zIndex,disabled:r,minWidth:300,onChangeCallback:()=>{const e=this.menuItemList;p.EventEmitter.emit("Calendar.LocationControl.onValueChange");const t=this.DOM.input.value;this.value={text:t};for(const i of e){if(i.labelRaw===t){this.value.type=i.type;this.value.value=i.value;V.setCurrentCapacity(i.capacity);break}}if(D.Type.isFunction(this.params.onChangeCallback)){this.params.onChangeCallback()}if(this.value.text===""){this.removeLocationRemoveButton()}this.addLocationRemoveButton();e.forEach((e=>{e.selected=e.value===this.value.value}));this.selectContol.setValueList(e);this.allowClick()},onPopupShowCallback:()=>{if(this.getShouldCheckLocationAccessibility()){this.checkLocationAccessibility(this.accessibilityParams)}}});this.selectContol.setValueList(i);this.selectContol.setValue({valueIndex:s});this.selectContol.setDisabled(r);if(!c){this.setLoading(this.isLoading)}this.allowClick()}processValue(){if(this.value){this.DOM.input.value=this.value.str||this.value.text||"";if(this.value.type&&(this.value.str===this.getTextLocation(this.value)||this.getTextLocation(this.value)===D.Loc.getMessage("EC_LOCATION_EMPTY"))){this.DOM.input.value="";this.value=""}for(const e of V.locationList){if(parseInt(e.ID)===this.value.room_id){V.setCurrentCapacity(parseInt(e.CAPACITY));break}}}}setValuesDebounce(){this.setValuesDebounced()}removeValue(){this.setValue(false,false);this.selectContol.onChangeCallback();this.removeLocationRemoveButton()}removeLocationRemoveButton(){if(this.DOM.inputWrap.contains(this.DOM.removeLocationButton)){this.DOM.inputWrap.removeChild(this.DOM.removeLocationButton)}else if(this.DOM.wrapNode.contains(this.DOM.removeLocationButton)){this.DOM.wrapNode.removeChild(this.DOM.removeLocationButton)}this.DOM.removeLocationButton=null;if(D.Type.isDomNode(this.DOM.inlineEditLink)){this.displayInlineEditControls()}}addLocationRemoveButton(){var e,t;let i=this.DOM.inputWrap;if(((e=this.DOM)==null?void 0:(t=e.inlineEditLinkWrap)==null?void 0:t.style.display)===""){i=this.DOM.wrapNode}if((this.value.value||this.value.str||this.value.text)&&!this.viewMode&&!this.DOM.removeLocationButton&&this.value.text!==""){this.DOM.removeLocationButton=i.appendChild(D.Tag.render(U||(U=B` <span class="calendar-location-clear-btn-wrap calendar-location-readonly"> <span class="calendar-location-clear-btn-text">${0}</span> </span> `),D.Loc.getMessage("EC_LOCATION_CLEAR_INPUT")));D.Event.bind(this.DOM.removeLocationButton,"click",this.removeValue.bind(this))}}isShown(){var e,t;return(e=(t=this.selectContol)==null?void 0:t.shown)!=null?e:false}setViewMode(e){this.viewMode=e;if(this.viewMode){D.Dom.addClass(this.DOM.wrapNode,"calendar-location-readonly")}else{D.Dom.removeClass(this.DOM.wrapNode,"calendar-location-readonly")}}addCapacityAlert(){if(!D.Dom.hasClass(this.DOM.input,"calendar-field-location-select-border")){D.Dom.addClass(this.DOM.input,"calendar-field-location-select-border")}if(D.Type.isDomNode(this.DOM.alertIconLocation)){M.Util.initHintNode(this.DOM.alertIconLocation)}setTimeout((()=>{this.DOM.inputWrapInner.after(this.DOM.alertIconLocation)}),200)}removeCapacityAlert(){if(D.Dom.hasClass(this.DOM.input,"calendar-field-location-select-border")){D.Dom.removeClass(this.DOM.input,"calendar-field-location-select-border")}if(this.DOM.alertIconLocation.parentNode===this.DOM.inputWrap){D.Dom.remove(this.DOM.alertIconLocation)}}getCapacityMessage(e){let t;if(e%100>10&&e%100<20){t=5}else{t=e%10}return D.Loc.getMessage(`EC_LOCATION_CAPACITY_${t}`,{"#NUM#":e})}getShouldCheckLocationAccessibility(){return this.shouldCheckLocationAccessibility}setShouldCheckLocationAccessibility(e){this.shouldCheckLocationAccessibility=e}checkLocationAccessibility(e){this.accessibilityParams=e;this.setLoading(true);this.updateAccessibilityDebounce()}updateAccessibility(){if(this.readOnly){return}const e=this.accessibilityParams;this.getLocationAccessibility(e.from,e.to).then((()=>{const t=e.timezone&&e.timezone!==""?e.timezone:M.Util.getUserSettings().timezoneName;const i=M.Util.getTimeZoneOffset(t)*60*1e3;const s=new Date(e.from.getTime()+i).getTime();let a=new Date(e.to.getTime()+i).getTime();if(e.fullDay){a+=V.DAY_LENGTH}for(const t in V.locationList){V.locationList[t].reserved=false;const i=V.locationList[t].ID;for(const n of this.datesRange){if(D.Type.isUndefined(V.accessibility[n])||!D.Type.isArrayFilled(V.accessibility[n][i])){continue}for(const o of V.accessibility[n][i]){if(parseInt(o.PARENT_ID,10)===parseInt(e.currentEventId,10)){continue}let i=0;if(o.DT_SKIP_TIME==="N"){i=M.Util.getTimeZoneOffset(o.TZ_FROM)*60*1e3}const n=new Date(M.Util.parseDate(o.DATE_FROM).getTime()+i).getTime();let l=new Date(M.Util.parseDate(o.DATE_TO).getTime()+i).getTime();if(o.DT_SKIP_TIME==="Y"){l+=V.DAY_LENGTH}if(n<a&&l>s){V.locationList[t].reserved=true;break}}if(V.locationList[t].reserved){break}}}this.setValues();this.setLoading(false)}))}setLoading(e){var t;this.isLoading=e;(t=this.selectContol)==null?void 0:t.setLoading(e)}getLocationAccessibility(e,t){return new Promise((i=>{this.datesRange=V.getDatesRange(e,t);let s=true;for(const e of this.datesRange){if(D.Type.isUndefined(V.accessibility[e])){s=false;break}}if(s){i(V.accessibility,this.datesRange)}else{BX.ajax.runAction("calendar.api.locationajax.getLocationAccessibility",{data:{datesRange:this.datesRange,locationList:V.locationList}}).then((e=>{for(const t of this.datesRange){V.accessibility[t]=e.data[t]}i(V.accessibility,this.datesRange)}),(e=>{i(e.errors)}))}}))}static handlePull(e){var t;const i=e.fields;if(!i.DATE_FROM||!i.DATE_TO){return}const s=M.Util.parseDate(i.DATE_FROM);const a=M.Util.parseDate(i.DATE_TO);const n=V.getDatesRange(s,a);const o=(t=i.EXDATE)==null?void 0:t.split(";");if(D.Type.isArrayFilled(o)){n.push(o.pop())}for(const e of n){if(V.accessibility[e]){delete V.accessibility[e]}}V.instances.forEach((e=>{if(e.isShown()){e.checkLocationAccessibility(e.accessibilityParams)}else{e.setShouldCheckLocationAccessibility(true)}}))}loadRoomSlider(){this.setRoomsManager()}openRoomsSlider(){this.getRoomsInterface().then((e=>{if(!this.roomsInterface){this.roomsInterface=new e({calendarContext:null,readonly:false,roomsManager:this.roomsManagerFromDB,categoryManager:this.categoryManagerFromDB,isConfigureList:true})}this.roomsInterface.show()}))}getTextValue(e){if(!e){e=this.value}let t=e.str||e.text||"";if(e&&e.type==="mr"){t=`ECMR_${e.value}${e.mrevid?`_${e.mrevid}`:""}`}else if(e&&e.type==="calendar"){t=`calendar_${e.value}${e.room_event_id?`_${e.room_event_id}`:""}`}return t}getValue(){return this.value}setValue(e,t=true){if(D.Type.isPlainObject(e)){this.value.text=e.text||"";this.value.type=e.type||"";this.value.value=e.value||""}else{this.value=V.parseStringValue(e)}if(t){this.setValuesDebounce()}else{this.setValues()}if(this.inlineEditModeEnabled){const e=this.getTextLocation(this.value);this.DOM.inlineEditLink.innerHTML=D.Text.encode(e||D.Loc.getMessage("EC_REMIND1_ADD"));if(e){this.addLocationRemoveButton()}}}static parseStringValue(e){if(!D.Type.isString(e)){e=""}const t={type:false,value:false,str:e};if(e.slice(0,5)==="ECMR_"){t.type="mr";const i=e.split("_");if(i.length>=2){if(!isNaN(parseInt(i[1]))&&parseInt(i[1])>0){t.value=t.mrid=parseInt(i[1])}if(!isNaN(parseInt(i[2]))&&parseInt(i[2])>0){t.mrevid=parseInt(i[2])}}}else if(e.slice(0,9)==="calendar_"){t.type="calendar";const i=e.split("_");if(i.length>=2){if(!isNaN(parseInt(i[1]))&&parseInt(i[1])>0){t.value=t.room_id=parseInt(i[1])}if(!isNaN(parseInt(i[2]))&&parseInt(i[2])>0){t.room_event_id=parseInt(i[2])}}}return t}getTextLocation(e){const t=D.Type.isPlainObject(e)?e:V.parseStringValue(e);let i;let s=t.str;if(D.Type.isArray(this.meetingRooms)&&t.type==="mr"){s=D.Loc.getMessage("EC_LOCATION_EMPTY");for(i=0;i<this.meetingRooms.length;i++){if(parseInt(t.value)===parseInt(this.meetingRooms[i].ID)){s=this.meetingRooms[i].NAME;break}}}if(D.Type.isArray(V.locationList)&&t.type==="calendar"){s=D.Loc.getMessage("EC_LOCATION_EMPTY");for(i=0;i<V.locationList.length;i++){if(parseInt(t.value)===parseInt(V.locationList[i].ID)){s=V.locationList[i].NAME;break}}}return s}static setLocationList(e){if(D.Type.isArray(e)){V.locationList=e;this.sortLocationList()}}static sortLocationList(){V.locationList.sort(((e,t)=>{if(e.NAME.toLowerCase()>t.NAME.toLowerCase()){return 1}if(e.NAME.toLowerCase()<t.NAME.toLowerCase()){return-1}return 0}))}static getLocationList(){return V.locationList}static setMeetingRoomList(e){if(D.Type.isArray(e)){V.meetingRoomList=e}}static getMeetingRoomList(){return V.meetingRoomList}static setLocationAccessibility(e){V.accessibility=e}static getLocationAccessibility(){return V.accessibility}static setCurrentCapacity(e){V.currentRoomCapacity=e}static getCurrentCapacity(){return V.currentRoomCapacity||0}displayInlineEditControls(){this.DOM.inlineEditLinkWrap.style.display="none";this.DOM.inputWrap.style.display="";this.addLocationRemoveButton()}setDefaultRoom(e){if(this.roomsManager&&!t.RoomsManager.isEmpty(e)){this.activeRooms=this.roomsManager.getRoomsInfo().active;if(t.RoomsManager.isEmpty(this.activeRooms)){V.setCurrentCapacity(parseInt(e[0].CAPACITY));return`calendar_${e[0].ID}`}const i=this.activeRooms[0];for(const t of e){if(parseInt(t.ID)===i){V.setCurrentCapacity(parseInt(t.CAPACITY));return`calendar_${i}`}}}else{return""}}getRoomsInterface(){return new Promise((e=>{const t=BX.Calendar.Util.getBX();const i="calendar.rooms";t.Runtime.loadExtension(i).then((()=>{if(t.Calendar.Rooms.RoomsInterface){e(t.Calendar.Rooms.RoomsInterface)}else{console.error(`Extension ${i} not found`);e(t.Calendar.Rooms.RoomsInterface)}}))}))}getRoomsManager(){return new Promise((e=>{const t=BX.Calendar.Util.getBX();const i="calendar.roomsmanager";t.Runtime.loadExtension(i).then((()=>{if(t.Calendar.RoomsManager){e(t.Calendar.RoomsManager)}else{console.error(`Extension ${i} not found`);e(t.Calendar.RoomsManager)}}))}))}getRoomsManagerData(){return new Promise((e=>{BX.ajax.runAction("calendar.api.locationajax.getRoomsManagerData").then((i=>{this.roomsManagerFromDB=new t.RoomsManager({sections:i.data.sections,rooms:i.data.rooms},{locationAccess:i.data.config.locationAccess,hiddenSections:i.data.config.hiddenSections,type:i.data.config.type,ownerId:i.data.config.ownerId,userId:i.data.config.userId,new_section_access:i.data.config.defaultSectionAccess,sectionAccessTasks:i.data.config.sectionAccessTasks,showTasks:i.data.config.showTasks,locationContext:this,accessNames:i.data.config.accessNames});e(i.data)}),(t=>{console.error("Extension not found");e(t.data)}))}))}createRoomList(e){return e.map((e=>new t.RoomsSection(e)))}setRoomsManager(){if(!this.roomsManagerFromDB){this.getRoomsManager().then(this.getRoomsManagerData())}}getCategoryManager(){return new Promise((e=>{const t=BX.Calendar.Util.getBX();const i="calendar.categorymanager";t.Runtime.loadExtension(i).then((()=>{if(t.Calendar.CategoryManager){e(t.Calendar.CategoryManager)}else{console.error(`Extension ${i} not found`);e(t.Calendar.CategoryManager)}}))}))}getCategoryManagerData(){return new Promise((e=>{BX.ajax.runAction("calendar.api.locationajax.getCategoryManagerData").then((t=>{this.categoryManagerFromDB=new i.CategoryManager({categories:t.data.categories},{perm:t.data.permissions,locationContext:this});e(t.data)}),(t=>{console.error("Extension not found");e(t.data)}))}))}setCategoryManager(){if(this.readOnly){return}if(!this.categoryManagerFromDB){this.getCategoryManager().then(this.getCategoryManagerData())}}prohibitClick(){if(this.DOM.inlineEditLinkWrap&&!D.Dom.hasClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")){D.Dom.addClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")}if(this.DOM.removeLocationButton&&!D.Dom.hasClass(this.DOM.removeLocationButton,"calendar-location-readonly")){D.Dom.addClass(this.DOM.removeLocationButton,"calendar-location-readonly")}}allowClick(){if(this.DOM.inlineEditLinkWrap&&D.Dom.hasClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")){D.Dom.removeClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")}if(this.DOM.removeLocationButton&&D.Dom.hasClass(this.DOM.removeLocationButton,"calendar-location-readonly")){D.Dom.removeClass(this.DOM.removeLocationButton,"calendar-location-readonly")}}static getDateInFormat(e){return`${`0${e.getDate()}`.slice(-2)}.${`0${e.getMonth()+1}`.slice(-2)}.${e.getFullYear()}`}static getDatesRange(e,t){const i=new Date(e.getTime()-M.Util.getDayLength());const s=new Date(t.getTime()+M.Util.getDayLength());let a=i.setHours(0,0,0,0);const n=s.setHours(0,0,0,0);const o=[];while(a<=n){o.push(V.getDateInFormat(new Date(a)));a+=V.DAY_LENGTH}return o}}V.locationList=[];V.meetingRoomList=[];V.currentRoomCapacity=0;V.accessibility=[];V.DAY_LENGTH=864e5;V.instances=[];class H{constructor(e={}){this.params=e;this.id=e.id||"user_selector_"+Math.round(Math.random()*1e6);this.zIndex=e.zIndex||3100;this.DOM={wrapNode:e.wrapNode};this.destinationInputName=e.inputName||"EVENT_DESTINATION";if(D.Type.isArray(this.params.itemsSelected)&&this.params.itemsSelected.length){this.params.itemsSelected=this.convertAttendeesCodes(this.params.itemsSelected)}this.create()}create(){let e=this.id;this.DOM.socnetDestinationWrap=this.DOM.wrapNode.appendChild(D.Dom.create("DIV",{props:{className:"event-grid-dest-wrap"},events:{click:t=>{BX.SocNetLogDestination.openDialog(e)}}}));this.socnetDestinationItems=this.DOM.socnetDestinationWrap.appendChild(D.Dom.create("SPAN",{props:{className:""},events:{click:function(t){var i=t.target||t.srcElement;if(i.className==="feed-event-del-but"){top.BX.SocNetLogDestination.deleteItem(i.getAttribute("data-item-id"),i.getAttribute("data-item-type"),e);t.preventDefault();t.stopPropagation()}},mouseover:function(e){var t=e.target||e.srcElement;if(t.className==="feed-event-del-but")BX.addClass(t.parentNode,"event-grid-dest-hover")},mouseout:function(e){var t=e.target||e.srcElement;if(t.className==="feed-event-del-but")BX.removeClass(t.parentNode,"event-grid-dest-hover")}}}));this.socnetDestinationInputWrap=this.DOM.socnetDestinationWrap.appendChild(D.Dom.create("SPAN",{props:{className:"feed-add-destination-input-box"}}));this.socnetDestinationInput=this.socnetDestinationInputWrap.appendChild(D.Dom.create("INPUT",{props:{id:e+"-inp",className:"feed-add-destination-inp"},attrs:{value:"",type:"text"},events:{keydown:function(t){return top.BX.SocNetLogDestination.searchBeforeHandler(t,{formName:e,inputId:e+"-inp"})},keyup:function(t){return top.BX.SocNetLogDestination.searchHandler(t,{formName:e,inputId:e+"-inp",linkId:"event-grid-dest-add-link",sendAjax:true})}}}));this.socnetDestinationLink=this.DOM.socnetDestinationWrap.appendChild(D.Dom.create("SPAN",{html:this.params.addLinkMessage||BX.message("EC_DESTINATION_ADD_USERS"),props:{id:e+"-link",className:"feed-add-destination-link"},events:{keydown:function(t){return top.BX.SocNetLogDestination.searchBeforeHandler(t,{formName:e,inputId:e+"-inp"})},keyup:function(t){return top.BX.SocNetLogDestination.searchHandler(t,{formName:e,inputId:e+"-inp",linkId:"event-grid-dest-add-link",sendAjax:true})}}}));this.init()}init(){if(!this.socnetDestinationInput||!this.DOM.socnetDestinationWrap||!this.params.items){return}if(this.params.selectGroups===false){this.params.items.groups={};this.params.items.department={};this.params.items.sonetgroups={}}if(this.params.selectUsers===false){this.params.items.users={};this.params.items.groups={};this.params.items.department={}}BX.SocNetLogDestination.init({name:this.id,searchInput:this.socnetDestinationInput,extranetUser:false,userSearchArea:"I",bindMainPopup:{node:this.DOM.socnetDestinationWrap,offsetTop:"5px",offsetLeft:"15px"},bindSearchPopup:{node:this.DOM.socnetDestinationWrap,offsetTop:"5px",offsetLeft:"15px"},callback:{select:this.selectCallback.bind(this),unSelect:this.unSelectCallback.bind(this),openDialog:this.openDialogCallback.bind(this),closeDialog:this.closeDialogCallback.bind(this),openSearch:this.openDialogCallback.bind(this),closeSearch:()=>{this.closeDialogCallback(true)}},items:this.params.items,itemsLast:this.params.itemsLast,itemsSelected:this.params.itemsSelected,departmentSelectDisable:this.params.selectGroups===false})}closeAll(){if(top.BX.SocNetLogDestination.isOpenDialog()){top.BX.SocNetLogDestination.closeDialog()}top.BX.SocNetLogDestination.closeSearch()}selectCallback(e,t){var i=t,s="S";if(t==="sonetgroups"){s="SG"}else if(t==="groups"){s="UA";i="all-users"}else if(t==="users"){s="U"}else if(t==="department"){s="DR"}this.socnetDestinationItems.appendChild(D.Dom.create("span",{attrs:{"data-id":e.id},props:{className:"event-grid-dest event-grid-dest-"+i},children:[D.Dom.create("input",{attrs:{type:"hidden",name:this.destinationInputName+"["+s+"][]",value:e.id}}),D.Dom.create("span",{props:{className:"event-grid-dest-text"},html:e.name}),D.Dom.create("span",{props:{className:"feed-event-del-but"},attrs:{"data-item-id":e.id,"data-item-type":t}})]}));BX.onCustomEvent("OnDestinationAddNewItem",[e]);this.socnetDestinationInput.value="";this.socnetDestinationLink.innerHTML=this.params.addLinkMessage||(top.BX.SocNetLogDestination.getSelectedCount(this.id)>0?BX.message("EC_DESTINATION_ADD_MORE"):BX.message("EC_DESTINATION_ADD_USERS"))}unSelectCallback(e,t,i){var s=BX.findChildren(this.socnetDestinationItems,{attribute:{"data-id":e.id}},true);if(s!=null){for(var a=0;a<s.length;a++){BX.remove(s[a])}}BX.onCustomEvent("OnDestinationUnselect");this.socnetDestinationInput.value="";this.socnetDestinationLink.innerHTML=this.params.addLinkMessage||(top.BX.SocNetLogDestination.getSelectedCount(this.id)>0?BX.message("EC_DESTINATION_ADD_MORE"):BX.message("EC_DESTINATION_ADD_USERS"))}openDialogCallback(){BX.style(this.socnetDestinationInputWrap,"display","inline-block");BX.style(this.socnetDestinationLink,"display","none");BX.focus(this.socnetDestinationInput)}closeDialogCallback(e){if(!top.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(top.BX.SocNetLogDestination.backspaceDisable||top.BX.SocNetLogDestination.backspaceDisable!=null)BX.unbind(window,"keydown",top.BX.SocNetLogDestination.backspaceDisable);BX.bind(window,"keydown",top.BX.SocNetLogDestination.backspaceDisable=function(e){if(e.keyCode===8){e.preventDefault();return false}});setTimeout((function(){BX.unbind(window,"keydown",top.BX.SocNetLogDestination.backspaceDisable);top.BX.SocNetLogDestination.backspaceDisable=null}),5e3)}}getCodes(){var e=this.socnetDestinationItems.getElementsByTagName("INPUT"),t=[],i;for(i=0;i<e.length;i++){t.push(e[i].value)}return t}getAttendeesCodes(){var e=this.socnetDestinationItems.getElementsByTagName("INPUT"),t=[],i;for(i=0;i<e.length;i++){t.push(e[i].value)}return this.convertAttendeesCodes(t)}convertAttendeesCodes(e){let t={};if(D.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 i in e){if(e.hasOwnProperty(i)){t.push(i)}}return t}setValue(e){if(this.socnetDestinationItems){D.Dom.clean(this.socnetDestinationItems)}if(D.Type.isArray(e)){this.params.itemsSelected=this.convertAttendeesCodes(e)}this.init()}}let W=e=>e,F,z,X,$,Y;class j extends p.EventEmitter{constructor(e){super();this.LINE_MODE="line";this.SELECTOR_MODE="selector";this.VIEW_MODE="view";this.setEventNamespace("BX.Calendar.Controls.ColorSelector");this.id=e.id||"color-select-"+Math.round(Math.random()*1e6);this.defaultColors=M.Util.getDefaultColorList();this.colors=[];this.zIndex=3100;this.mode=e.mode||this.LINE_MODE;this.DOM={wrap:e.wrap};this.create();this.setViewMode(e.viewMode||false)}create(){if(this.mode===this.LINE_MODE){for(let e=0;e<this.defaultColors.length;e++){this.colors.push({color:this.defaultColors[e],node:this.DOM.wrap.appendChild(D.Tag.render(F||(F=W` <li class="calendar-field-colorpicker-color-item" data-bx-calendar-color="${0}" style="background-color: ${0}"> <span class="calendar-field-colorpicker-color"></span> </li> `),this.defaultColors[e],this.defaultColors[e]))})}this.DOM.customColorNode=this.DOM.wrap.appendChild(D.Tag.render(z||(z=W` <li class="calendar-field-colorpicker-color-item" style="background-color: transparent; width: 0"> <span class="calendar-field-colorpicker-color"></span> </li>`)));this.DOM.customColorLink=this.DOM.wrap.appendChild(D.Tag.render(X||(X=W` <li class="calendar-field-colorpicker-color-item-more"> <span class="calendar-field-colorpicker-color-item-more-link">${0}</span> </li> `),D.Loc.getMessage("EC_COLOR")));D.Event.bind(this.DOM.customColorLink,"click",(()=>{if(!this.colorPickerPopup){this.colorPickerPopup=new BX.ColorPicker({bindElement:this.DOM.customColorLink,onColorSelected:this.setValue.bind(this),popupOptions:{zIndex:this.zIndex}})}this.colorPickerPopup.open()}));D.Event.bind(this.DOM.wrap,"click",this.handleColorClick.bind(this))}else if(this.mode===this.SELECTOR_MODE){this.DOM.colorIcon=this.DOM.wrap.appendChild(D.Tag.render($||($=W` <div style="background-color: #000;" class="calendar-field-select-icon"></div> `)));D.Event.bind(this.DOM.wrap,"click",this.openPopup.bind(this))}else if(this.mode===this.VIEW_MODE){this.DOM.colorIcon=this.DOM.wrap.appendChild(D.Tag.render(Y||(Y=W` <div style="background-color: #000;" class="calendar-field-select-icon"></div> `)))}}handleColorClick(e){if(this.viewMode){return}let t=M.Util.findTargetNode(e.target||e.srcElement,this.DOM.wrap);if(t&&t.getAttribute){let e=t.getAttribute("data-bx-calendar-color");if(e!==null){this.setValue(e)}}}setValue(e,t=true){if(this.viewMode){return}this.activeColor=e;if(this.mode===this.LINE_MODE){if(this.DOM.activeColorNode){D.Dom.removeClass(this.DOM.activeColorNode,"active")}if(!BX.util.in_array(this.activeColor,this.defaultColors)&&this.activeColor){D.Dom.attr(this.DOM.customColorNode,"data-bx-calendar-color",this.activeColor);this.DOM.customColorNode.style.backgroundColor=this.activeColor;this.DOM.customColorNode.style.width="";this.DOM.activeColorNode=this.DOM.customColorNode;D.Dom.addClass(this.DOM.activeColorNode,"active")}let e;for(e=0;e<this.colors.length;e++){if(this.colors[e].color===this.activeColor){this.DOM.activeColorNode=this.colors[e].node;D.Dom.addClass(this.DOM.activeColorNode,"active");break}}}else if(this.mode===this.SELECTOR_MODE||this.mode===this.VIEW_MODE){if(this.DOM.colorIcon){this.DOM.colorIcon.style.backgroundColor=this.activeColor}if(this.viewMode){this.DOM.wrap.style.backgroundColor=this.activeColor}}if(t){this.emit("onChange",new p.BaseEvent({data:{value:this.activeColor}}))}}getValue(){return this.activeColor}openPopup(){if(this.viewMode){return}if(this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown()){return this.popup.close()}let e,t=[],i;this.defaultColors.forEach((e=>{t.push({text:e,color:e,className:"calendar-add-popup-color-menu-item",onclick:(e=>()=>{this.setValue(e);this.popup.close()})(e)})}));this.popup=C.MenuManager.create(this.id,this.DOM.colorIcon,t,{className:"calendar-color-popup-wrap",width:162,closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:52,angle:true,cacheable:false});this.popup.show();for(e=0;e<this.popup.menuItems.length;e++){if(this.popup.menuItems[e].layout.item){i=this.popup.menuItems[e].layout.item.querySelector(".menu-popup-item-icon");if(D.Type.isDomNode(i)){i.style.backgroundColor=this.popup.menuItems[e].color}}}this.popup.popupWindow.angle.element.style.left="6px"}setViewMode(e){this.viewMode=e;if(this.viewMode){D.Dom.addClass(this.DOM.wrap,"calendar-colorpicker-readonly");D.Event.unbind(this.DOM.wrap,"click",this.openPopup.bind(this))}}}let G=e=>e,K,q,Z,Q,J,ee,te,ie,se,ae,ne;class oe{static getModes(){return["textselect","location","inline","compact","full"]}constructor(e){this.id=e.id||"section-select-"+Math.round(Math.random()*1e6);this.sectionList=e.sectionList;this.sectionGroupList=e.sectionGroupList;this.selectCallback=e.selectCallback;this.openPopupCallback=e.openPopupCallback;this.closePopupCallback=e.closePopupCallback;this.getCurrentSection=e.getCurrentSection;this.defaultCalendarType=e.defaultCalendarType;this.defaultOwnerId=parseInt(e.defaultOwnerId)||0;this.zIndex=e.zIndex||3200;this.mode=e.mode;this.DOM={outerWrap:e.outerWrap};this.create();this.initEventHandlers()}create(){if(this.mode==="textselect"){this.DOM.select=this.DOM.outerWrap;this.DOM.selectImageWrap=this.DOM.select.appendChild(D.Tag.render(K||(K=G`<span class="calendar-field-choice-calendar-img"></span>`)));this.DOM.selectInnerText=this.DOM.select.appendChild(D.Tag.render(q||(q=G`<span class="calendar-field-choice-calendar-name">${0}</span>`),D.Text.encode(D.Loc.getMessage("EC_CALENDAR_SECTION_TITLE")+" "+this.getCurrentTitle())))}else if(this.mode==="location"){this.DOM.select=this.DOM.outerWrap;this.DOM.selectImageWrap=this.DOM.select.appendChild(D.Tag.render(Z||(Z=G`<span class="calendar-field-choice-calendar-img"></span>`)));this.DOM.selectInnerText=this.DOM.select.appendChild(D.Tag.render(Q||(Q=G`<span class="calendar-field-choice-calendar-name calendar-field-choice-calendar-name-location">${0}</span>`),D.Text.encode(D.Loc.getMessage("EC_CALENDAR_LOCATION_TITLE")+" "+this.getCurrentTitle())))}else if(this.mode==="inline"){this.DOM.select=this.DOM.outerWrap}else{this.DOM.select=this.DOM.outerWrap.appendChild(D.Tag.render(J||(J=G` <div class="calendar-field calendar-field-select"></div> `)));this.DOM.innerValue=this.DOM.select.appendChild(D.Tag.render(ee||(ee=G` <div class="calendar-field-select-icon" style="background-color: ${0}"></div> `),this.getCurrentColor()));if(this.mode==="full"){this.DOM.selectInnerText=this.DOM.select.appendChild(D.Tag.render(te||(te=G`<span>${0}</span>`),D.Text.encode(this.getCurrentTitle())))}}}initEventHandlers(){D.Event.bind(this.DOM.select,"click",this.openPopup.bind(this))}openPopup(){if(this.viewMode){return false}if(this.sectionMenu&&this.sectionMenu.popupWindow&&this.sectionMenu.popupWindow.isShown()){return this.sectionMenu.close()}const e=[];const t=[];const i=this.getSectionList();let s;if(D.Type.isArray(this.sectionGroupList)){this.sectionGroupList.forEach((s=>{let a;if(s.belongsToView){a=i.filter((e=>oe.getSectionType(e)===this.defaultCalendarType&&oe.getSectionOwner(e)===this.defaultOwnerId))}else if(s.type==="user"||s.type==="location"){a=i.filter((e=>oe.getSectionType(e)==="user"&&oe.getSectionOwner(e)===s.ownerId))}else if(s.type==="company"){a=i.filter((e=>oe.getSectionType(e)==="company_calendar"||oe.getSectionType(e)==="calendar_company"||oe.getSectionType(e)===s.type))}else if(s.type==="collab"){a=i.filter((e=>D.Type.isFunction(e.isCollab)&&e.isCollab()||e["IS_COLLAB"]))}else{a=i.filter((e=>oe.getSectionType(e)===s.type&&!(D.Type.isFunction(e.isCollab)&&e.isCollab()||e["IS_COLLAB"])))}a=a.filter((e=>{const i=parseInt(e.id||e.ID);if(t.includes(i)){return false}t.push(i);return true}));if(a.length>0){e.push(new C.MenuItem({text:s.title,delimiter:true}));for(let t=0;t<a.length;t++){e.push(this.getMenuItem(a[t]))}}}))}else{for(s=0;s<i.length;s++){e.push(this.getMenuItem(i[s]))}}let a=0;if(this.mode==="compact"){a=40}else if(this.mode==="textselect"||this.mode==="location"){a=0}this.sectionMenu=C.MenuManager.create(this.id,this.DOM.select,e,{offsetLeft:a,closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,angle:this.mode==="compact"});this.sectionMenu.popupWindow.contentContainer.style.overflow="auto";this.sectionMenu.popupWindow.contentContainer.style.maxHeight="400px";if(this.mode==="full"){this.sectionMenu.popupWindow.setWidth(this.DOM.select.offsetWidth-2);this.sectionMenu.popupWindow.contentContainer.style.overflowX="hidden"}this.sectionMenu.show();for(s=0;s<this.sectionMenu.menuItems.length;s++){if(this.sectionMenu.menuItems[s].layout.item){let e=this.sectionMenu.menuItems[s].layout.item.querySelector(".menu-popup-item-icon");if(e){e.style.backgroundColor=this.sectionMenu.menuItems[s].color}}}D.Dom.addClass(this.DOM.select,"active");if(D.Type.isFunction(this.openPopupCallback)){this.openPopupCallback(this)}BX.addCustomEvent(this.sectionMenu.popupWindow,"onPopupClose",BX.delegate((function(){if(D.Type.isFunction(this.closePopupCallback)){this.closePopupCallback()}D.Dom.removeClass(this.DOM.select,"active");C.MenuManager.destroy(this.id);this.sectionMenu=null}),this))}getCurrentColor(){return(this.getCurrentSection()||{}).color||false}getCurrentTitle(){return(this.getCurrentSection()||{}).name||""}getSectionList(){return this.sectionList.filter((e=>e.PERM&&e.PERM.edit||D.Type.isFunction(e.canDo)&&e.canDo("edit")))}updateSectionImageNode(e){var t;if(!D.Type.isElementNode(this.DOM.selectImageWrap)){return}if(e===undefined){e=this.sectionList.find((e=>parseInt(e.id,10)===parseInt(this.getCurrentSection().id,10)))}let i;if((t=e)!=null&&t.type||this.defaultCalendarType){var s;const t=((s=e)==null?void 0:s.type)||this.defaultCalendarType;const a=e?oe.getSectionImage(e):null;if(a){i=D.Tag.render(ie||(ie=G`<img class="calendar-field-choice-calendar-img-value" src="${0}" alt="">`),encodeURI(a))}else if(t==="group"){i=D.Tag.render(se||(se=G`<div class="ui-icon ui-icon-common-user-group"><i></i></div>`))}else if(t==="user"){i=D.Tag.render(ae||(ae=G`<div class="ui-icon ui-icon-common-user"><i></i></div>`))}else{i=D.Tag.render(ne||(ne=G`<div class="ui-icon ui-icon-common-bitrix24"><i></i></div>`))}D.Dom.clean(this.DOM.selectImageWrap);this.DOM.selectImageWrap.appendChild(i)}}getPopup(){return this.sectionMenu}getMenuItem(e){return{html:BX.util.htmlspecialchars(e.name||e.NAME),color:e.color||e.COLOR,className:"calendar-add-popup-section-menu-item"+(this.mode==="full"?" section-menu-item-full":""),onclick:(t=>()=>{if(D.Type.isDomNode(this.DOM.innerValue)){this.DOM.innerValue.style.backgroundColor=t.color||e.COLOR}this.updateSectionImageNode(t);if(D.Type.isFunction(this.selectCallback)){if(!t.color&&e.COLOR){t.color=e.COLOR}if(!t.id&&e.ID){t.id=e.ID}this.selectCallback(t)}this.sectionMenu.close();this.updateValue()})(e)}}static getSectionType(e){return e.type||e.CAL_TYPE}static getSectionImage(e={}){return e.data?e.data.IMAGE:e.IMAGE||""}static getSectionOwner(e){return parseInt(e.OWNER_ID||e.data.OWNER_ID,10)}updateValue(){if(D.Type.isDomNode(this.DOM.innerValue)){this.DOM.innerValue.style.backgroundColor=this.getCurrentColor()}if(this.mode==="full"){this.DOM.select.appendChild(D.Dom.adjust(this.DOM.selectInnerText,{text:this.getCurrentTitle(),props:{title:this.getCurrentTitle()}}))}else if(this.mode==="textselect"){this.updateSectionImageNode();this.DOM.select.appendChild(D.Dom.adjust(this.DOM.selectInnerText,{props:{title:D.Loc.getMessage("EC_CALENDAR_SECTION_TITLE")+" "+this.getCurrentTitle()},text:D.Loc.getMessage("EC_CALENDAR_SECTION_TITLE")+" "+this.getCurrentTitle()}))}else if(this.mode==="location"){this.updateSectionImageNode();this.DOM.select.appendChild(D.Dom.adjust(this.DOM.selectInnerText,{props:{title:D.Loc.getMessage("EC_CALENDAR_LOCATION_TITLE")+" "+this.getCurrentTitle()},text:D.Loc.getMessage("EC_CALENDAR_LOCATION_TITLE")+" "+this.getCurrentTitle()}))}}setViewMode(e){this.viewMode=e;if(this.viewMode){D.Dom.addClass(this.DOM.outerWrap,"calendar-section-selector-readonly");if(this.DOM.outerWrap!==this.DOM.select){D.Dom.removeClass(this.DOM.select,"calendar-field-select");D.Dom.addClass(this.DOM.select,"calendar-section-selector-readonly")}}else{D.Dom.removeClass(this.DOM.outerWrap,"calendar-section-selector-readonly")}}}var le=babelHelpers.classPrivateFieldLooseKey("untilPicker");var re=babelHelpers.classPrivateFieldLooseKey("rruleTypeMenu");var ce=babelHelpers.classPrivateFieldLooseKey("rruleCountMenu");var he=babelHelpers.classPrivateFieldLooseKey("onUntilSelected");var de=babelHelpers.classPrivateFieldLooseKey("showRruleTypeMenu");var ue=babelHelpers.classPrivateFieldLooseKey("getRruleTypeMenuItems");var pe=babelHelpers.classPrivateFieldLooseKey("selectRruleType");var me=babelHelpers.classPrivateFieldLooseKey("showRruleCountMenu");var ge=babelHelpers.classPrivateFieldLooseKey("getRruleCountMenuItems");var fe=babelHelpers.classPrivateFieldLooseKey("selectRruleCount");class De{constructor(e){Object.defineProperty(this,ge,{value:Ce});Object.defineProperty(this,ue,{value:Me});Object.defineProperty(this,le,{writable:true,value:void 0});Object.defineProperty(this,re,{writable:true,value:void 0});Object.defineProperty(this,ce,{writable:true,value:void 0});Object.defineProperty(this,he,{writable:true,value:e=>{const{date:t}=e.getData();this.DOM.until.value=M.Util.formatDate(t.getTime())}});Object.defineProperty(this,de,{writable:true,value:()=>{var e,t;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,re))[re])!=null?t:e[re]=new C.Menu({id:`${this.uid}-calendar-rrule-type-menu`,bindElement:this.DOM.rruleType,closeByEsc:true,items:babelHelpers.classPrivateFieldLooseBase(this,ue)[ue]()});babelHelpers.classPrivateFieldLooseBase(this,re)[re].show()}});Object.defineProperty(this,pe,{writable:true,value:(e,t)=>{babelHelpers.classPrivateFieldLooseBase(this,re)[re].close();this.DOM.rruleType.value=t;this.DOM.rruleType.dataset.value=e;this.changeType(e)}});Object.defineProperty(this,me,{writable:true,value:()=>{var e,t;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,ce))[ce])!=null?t:e[ce]=new C.Menu({id:`${this.uid}-calendar-rrule-count-menu`,bindElement:this.DOM.rruleCount,closeByEsc:true,items:babelHelpers.classPrivateFieldLooseBase(this,ge)[ge](),maxHeight:300});babelHelpers.classPrivateFieldLooseBase(this,ce)[ce].show()}});Object.defineProperty(this,fe,{writable:true,value:e=>{babelHelpers.classPrivateFieldLooseBase(this,ce)[ce].close();this.DOM.rruleCount.value=e}});let t=e.rruleType.form.elements;this.uid=e.uid;this.getDate=e.getDate;this.DOM={formElements:t,wrap:e.wrap,rruleType:e.rruleType,rruleCount:e.rruleCount,interval:t["EVENT_RRULE[INTERVAL]"],rruleEndsOn:{never:t["rrule_endson"][0],count:t["rrule_endson"][1],until:t["rrule_endson"][2]},count:t["EVENT_RRULE[COUNT]"],until:t["EVENT_RRULE[UNTIL]"]};this.viewMode=false;this.create();this.initDatePicker()}create(){D.Event.bind(this.DOM.rruleType,"click",babelHelpers.classPrivateFieldLooseBase(this,de)[de]);D.Event.bind(this.DOM.rruleCount,"click",babelHelpers.classPrivateFieldLooseBase(this,me)[me]);D.Event.bind(this.DOM.until,"click",(()=>{this.showUntilPicker();this.DOM.rruleEndsOn.until.checked=true}));D.Event.bind(this.DOM.count,"click",(()=>{this.DOM.rruleEndsOn.count.checked=true}))}initDatePicker(){var e,t;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,le))[le])!=null?t:e[le]=new l.DatePicker({targetNode:this.DOM.until,events:{onSelect:babelHelpers.classPrivateFieldLooseBase(this,he)[he]}})}showUntilPicker(){babelHelpers.classPrivateFieldLooseBase(this,le)[le].show()}changeType(e){this.DOM.rruleType.dataset.value=e?e.toUpperCase():"NONE";this.DOM.rruleType.value=this.getTypeName();let t=this.DOM.rruleType.dataset.value.toLowerCase();this.DOM.wrap.className="calendar-rrule-type-"+t;if(t==="weekly"&&BX.type.isFunction(this.getDate)){let e=this.getDate();if(BX.type.isDate(e)){let t=M.Util.getWeekDayByInd(e.getDay());this.DOM.formElements["EVENT_RRULE[BYDAY][]"].forEach((function(e){if(e.checked&&this.previousDay===e.value&&this.previousDay!==t){e.checked=false}else{e.checked=e.checked||e.value===t}}),this);this.previousDay=t}}}setValue(e={}){if(D.Type.isNil(e)){e={}}this.changeType(e.FREQ);this.DOM.interval.value=e.INTERVAL||1;if(e.COUNT){this.DOM.rruleEndsOn.count.checked="checked";this.DOM.count.value=e.COUNT}else if(e["~UNTIL"]){this.DOM.rruleEndsOn.until.checked="checked";this.DOM.until.value=e["~UNTIL"]}else{this.DOM.rruleEndsOn.never.checked="checked"}if(BX.type.isPlainObject(e.BYDAY)){this.DOM.formElements["EVENT_RRULE[BYDAY][]"].forEach((function(t){t.checked=e.BYDAY.hasOwnProperty(t.value)}),this)}}getType(){return this.DOM.rruleType.dataset.value.toLowerCase()}getTypeName(){switch(this.DOM.rruleType.dataset.value){case"NONE":{return D.Loc.getMessage("EC_CONTROL_REPEAT_NONE")}case"DAILY":{return D.Loc.getMessage("EC_CONTROL_REPEAT_DAILY")}case"WEEKLY":{return D.Loc.getMessage("EC_CONTROL_REPEAT_WEEKLY")}case"MONTHLY":{return D.Loc.getMessage("EC_CONTROL_REPEAT_MONTHLY")}case"YEARLY":{return D.Loc.getMessage("EC_CONTROL_REPEAT_YEARLY")}default:{return""}}}setViewMode(e){if(!D.Type.isStringFilled(e)){e=this.DOM.rruleType.value}D.Dom.clean(this.DOM.wrap);this.DOM.wrap.innerText=e.toLowerCase();D.Dom.addClass(this.DOM.wrap,"calendar-field calendar-repeat-selector-readonly")}}function Me(){const e=[];const t={NONE:D.Loc.getMessage("EC_CONTROL_REPEAT_NONE"),DAILY:D.Loc.getMessage("EC_CONTROL_REPEAT_DAILY"),WEEKLY:D.Loc.getMessage("EC_CONTROL_REPEAT_WEEKLY"),MONTHLY:D.Loc.getMessage("EC_CONTROL_REPEAT_MONTHLY"),YEARLY:D.Loc.getMessage("EC_CONTROL_REPEAT_YEARLY")};Object.entries(t).forEach((([t,i])=>{e.push(new C.MenuItem({text:i,onclick:()=>babelHelpers.classPrivateFieldLooseBase(this,pe)[pe](t,i)}))}));return e}function Ce(){const e=[];for(let t=1;t<=36;t++){e.push(new C.MenuItem({text:String(t),onclick:()=>babelHelpers.classPrivateFieldLooseBase(this,fe)[fe](t)}))}return e}let Te=e=>e,ve;var Ee=babelHelpers.classPrivateFieldLooseKey("renderLoader");class be{constructor(e){Object.defineProperty(this,Ee,{value:ye});this.id=e.id||"bx-select-input-"+Math.round(Math.random()*1e6);this.values=e.values||false;this.input=e.input;this.defaultValue=e.defaultValue||"";this.openTitle=e.openTitle||"";this.className=e.className||"";this.onChangeCallback=D.Type.isFunction(e.onChangeCallback)?e.onChangeCallback:()=>{};this.onPopupShowCallback=D.Type.isFunction(e.onPopupShowCallback)?e.onPopupShowCallback:()=>{};this.onPopupCloseCallback=D.Type.isFunction(e.onPopupCloseCallback)?e.onPopupCloseCallback:()=>{};this.zIndex=e.zIndex||1200;this.disabled=e.disabled;this.setValue({value:e.value,valueIndex:e.valueIndex});this.curInd=false;this.eventHandlers={click:this.onClick.bind(this),focus:this.onFocus.bind(this),keydown:this.onKeydown.bind(this),change:this.onChangeCallback};this.bindEventHandlers(this.eventHandlers)}bindEventHandlers(e){for(const[t,i]of Object.entries(e)){D.Event.bind(this.input,t,i)}}unbindEventHandlers(e){for(const[t,i]of Object.entries(e)){D.Event.unbind(this.input,t,i)}}setValue(e){this.currentValue={value:e.value};this.currentValueIndex=e.valueIndex;if(this.currentValueIndex!==undefined&&this.values[this.currentValueIndex]){this.input.value=this.values[this.currentValueIndex].label}}setValueList(e){this.values=e;if(!this.popupMenu){return}const t=this.popupMenu.getMenuItems().length;for(let e=0;e<t;e++){const e=this.popupMenu.getMenuItems()[0];this.popupMenu.removeMenuItem(e.getId(),{destroyEmptyPopup:false})}for(const e of this.getMenuItems()){this.popupMenu.addMenuItem(e)}this.updateIconColors()}setDisabled(e){this.disabled=e;if(e){this.closePopup()}}getInputValue(){return this.input.value}showPopup(){if(this.shown||this.disabled){return}const e=this.getMenuItems();this.popupMenu=C.MenuManager.create(this.id,this.input,e,{closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:-1,events:{onPopupShow:this.onPopupShowCallback,onPopupClose:this.onPopupCloseCallback,onPopupDestroy:this.onPopupCloseCallback}});this.updateLoader();if(!BX.browser.IsFirefox()){this.popupMenu.popupWindow.setMinWidth(this.input.offsetWidth+2)}this.popupMenu.popupWindow.setMaxWidth(300);let t=this.popupMenu.getPopupWindow().getContentContainer();D.Dom.addClass(this.popupMenu.layout.menuContainer,"calendar-select-popup");this.popupMenu.show();const i=this.getCurrentItem();if(i!=null&&i.layout){t.scrollTop=i.layout.item.offsetTop-i.layout.item.offsetHeight-36*3}this.updateIconColors();BX.addCustomEvent(this.popupMenu.popupWindow,"onPopupClose",(()=>{C.MenuManager.destroy(this.id);this.shown=false;this.popupMenu=null}));this.input.select();this.shown=true}getMenuItems(){const e=[];for(let t=0;t<this.values.length;t++){if(this.values[t].delimiter){e.push(this.values[t])}else{let i;if(this.values[t].reserved){i=`\n\t\t\t\t\t\t<span class="calendar-menu-item-title-with-status">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.values[t].label)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class="calendar-menu-item-status --red">\n\t\t\t\t\t\t\t${D.Loc.getMessage("EC_LOCATION_RESERVED")}\n\t\t\t\t\t\t</span>`}else if(this.values[t].capacity){i=`\n\t\t\t\t\t\t<span class="calendar-menu-item-title-with-status">\n\t\t\t\t\t \t${BX.util.htmlspecialchars(this.values[t].label)}\n\t\t\t\t \t</span>\n\t\t\t\t \t<span class="calendar-menu-item-capacity">\n\t\t\t\t\t \t${BX.util.htmlspecialchars(this.values[t].labelCapacity)}\n\t\t\t\t \t</span>`}else{i=`\n\t\t\t\t\t\t<span class="calendar-menu-item-title">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.values[t].label)}\n\t\t\t\t\t\t</span>`}const s=this.values[t].selected?"calendar-menu-popup-time-selected":"";if(this.values[t].color){e.push({id:this.values[t].value,title:this.values[t].label,className:"menu-popup-display-flex calendar-location-popup-menu-item "+s,html:i,color:this.values[t].color,onclick:this.values[t].callback||((e,t)=>()=>{this.input.value=t;this.popupMenu.close();this.onChange()})(this.values[t].value,this.values[t].labelRaw||this.values[t].label)})}else{const i=this.values[t].hint?" "+this.values[t].hint:"";e.push({id:this.values[t].value,html:this.values[t].label+i,title:this.values[t].label,className:"menu-popup-no-icon "+s,onclick:this.values[t].callback||((e,t)=>()=>{this.input.value=t;this.popupMenu.close();this.onChange(e)})(this.values[t].value,this.values[t].labelRaw||this.values[t].label)})}}}return e}updateIconColors(){let e=this.popupMenu.menuItems;for(let t=0;t<e.length;t++){if(e[t].layout.item){let i=e[t].layout.item.querySelector(".menu-popup-item-icon");if(i){i.style.backgroundColor=e[t].color}}}}getCurrentItem(){return this.popupMenu.menuItems[this.getCurrentIndex()]}getCurrentIndex(){for(let e=0;e<this.values.length;e++){if(this.values[e].selected){return e}if(this.currentValue&&this.values[e]&&e>0&&this.currentValue.value>=this.values[e-1].value&&this.currentValue.value<=this.values[e].value){return e}}return 0}closePopup(){C.MenuManager.destroy(this.id);this.popupMenu=null;this.shown=false}onFocus(){setTimeout(function(){if(!this.shown){this.showPopup()}}.bind(this),200)}onClick(){if(this.shown){this.closePopup()}else{this.showPopup()}}onKeydown(){setTimeout(BX.delegate(this.closePopup,this),50)}onChange(e){const t=this.input.value;BX.onCustomEvent(this,"onSelectInputChanged",[this,t]);this.onChangeCallback({value:t,dataValue:e})}setLoading(e){this.isLoading=e;this.updateLoader()}updateLoader(){if(!this.popupMenu){return}if(this.isLoading){this.popupMenu.getPopupWindow().getPopupContainer().append(babelHelpers.classPrivateFieldLooseBase(this,Ee)[Ee]())}else{var e;(e=this.loaderContainer)==null?void 0:e.remove()}}destroy(){this.unbindEventHandlers(this.eventHandlers);if(this.popupMenu){this.popupMenu.close()}C.MenuManager.destroy(this.id);this.popupMenu=null;this.shown=false}}function ye(){if(this.loaderContainer){return this.loaderContainer}this.loaderContainer=D.Tag.render(ve||(ve=Te`<div style="position: absolute; inset: 0;"></div>`));void(new a.Loader).show(this.loaderContainer);return this.loaderContainer}class Oe{constructor(e={}){this.id=e.id||"popup-dialog-"+Math.random();this.zIndex=e.zIndex||3200;this.DOM={};this.title=""}create(){this.dialog=new BX.PopupWindow(this.id,null,{overlay:{opacity:10},autoHide:true,closeByEsc:true,zIndex:this.zIndex,offsetLeft:0,offsetTop:0,draggable:true,bindOnResize:false,titleBar:this.getTitle(),closeIcon:{right:"12px",top:"10px"},className:"bxc-popup-window",buttons:this.getButtons(),content:this.getContent(),events:{}})}getTitle(){return this.title}getContent(){this.DOM.content=BX.create("DIV");return this.DOM.content}getButtons(){this.buttons=[];return this.buttons}show(e){if(!this.dialog){this.create()}this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}}let Le=e=>e,Ie,we,_e,Ne,Be;class Se extends p.EventEmitter{constructor(e={}){super();this.views=[];this.created=false;this.currentValue=null;this.currentViewMode=null;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ViewSelector");if(D.Type.isArray(e.views)){this.views=e.views}this.zIndex=e.zIndex||3200;this.popupId=e.id||"view-selector-"+Math.round(Math.random()*1e4);this.create();if(e.currentView){this.setValue(e.currentView)}if(e.currentViewMode){this.setViewMode(e.currentViewMode)}}create(){this.DOM.wrap=D.Tag.render(Ie||(Ie=Le`<div class="calendar-view-switcher-selector"></div>`));this.DOM.selectorText=D.Tag.render(we||(we=Le`<div class="calendar-view-switcher-text"></div>`));this.DOM.selectorTextInner=this.DOM.selectorText.appendChild(D.Tag.render(_e||(_e=Le`<div class="calendar-view-switcher-text-inner"></div>`)));this.DOM.wrap.appendChild(this.DOM.selectorText);this.DOM.wrap.appendChild(D.Tag.render(Ne||(Ne=Le`<div class="calendar-view-switcher-dropdown"></div>`)));D.Event.bind(this.DOM.wrap,"click",this.showPopup.bind(this));this.DOM.viewModeTextInner=this.DOM.selectorText.appendChild(D.Tag.render(Be||(Be=Le`<div class="calendar-view-switcher-text-mode-inner" style="display: none;"></div>`)));this.created=true}getOuterWrap(){if(!this.created){this.create()}return this.DOM.wrap}setValue(e){this.currentValue=this.views.find((function(t){return e.name===t.name}),this);if(this.currentValue){D.Dom.adjust(this.DOM.selectorTextInner,{text:this.currentValue.text})}}setViewMode(e){if(e){this.currentViewMode=this.views.find((function(t){return e===t.name&&t.type==="additional"}),this);if(this.currentViewMode){D.Dom.adjust(this.DOM.viewModeTextInner,{text:"("+this.currentViewMode.text+")"})}this.DOM.viewModeTextInner.style.display=this.currentViewMode?"":"block"}}getMenuItems(){let e=[];this.views.forEach((function(t){if(t.type==="base"){e.push({html:"<span>"+t.text+"</span>"+(t.hotkey?'<span class="calendar-item-hotkey">'+t.hotkey+"</span>":""),className:this.currentValue.name===t.name?"menu-popup-item-accept":" ",onclick:function(){this.emit("onChange",{name:t.name,type:t.type,dataset:t.dataset});this.menuPopup.close()}.bind(this)})}}),this);if(e.length<this.views.length){e.push({html:"<span>"+D.Loc.getMessage("EC_VIEW_MODE_SHOW_BY")+"</span>",className:"main-buttons-submenu-separator main-buttons-submenu-item main-buttons-hidden-label"});this.views.forEach((function(t){if(t.type==="additional"){e.push({text:t.text,className:this.currentViewMode.name===t.name?"menu-popup-item-accept":" ",onclick:function(){this.emit("onChange",{name:t.name,type:t.type,dataset:t.dataset});this.menuPopup.close()}.bind(this)})}}),this)}return e}showPopup(){if(this.menuPopup&&this.menuPopup.popupWindow&&this.menuPopup.popupWindow.isShown()){return this.menuPopup.close()}this.menuPopup=C.MenuManager.create(this.popupId,this.DOM.selectorText,this.getMenuItems(),{className:"calendar-view-switcher-popup",closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:-3,offsetLeft:this.DOM.selectorText.offsetWidth-6,angle:true,cacheable:false});this.menuPopup.show()}closePopup(){if(this.menuPopup&&this.menuPopup.popupWindow&&this.menuPopup.popupWindow.isShown()){this.menuPopup.close()}}show(){this.DOM.wrap.style.display=""}hide(){this.DOM.wrap.style.display="none"}}class Pe extends p.EventEmitter{constructor(e={}){super();this.views=[];this.created=false;this.currentValue=null;this.currentViewMode=null;this.DOM={};this.target=null;this.navigationPanel=null;this.setEventNamespace("BX.Calendar.Controls.LineViewSelector");if(D.Type.isArray(e.views)){this.views=e.views}this.target=e.target;this.zIndex=e.zIndex||3200;this.popupId=e.id||`view-selector-${Math.round(Math.random()*1e4)}`;this.create();if(e.currentView){this.setValue(e.currentView)}}create(){if(D.Type.isDomNode(this.target)&&!this.navigationPanel){const e=[];this.views.forEach((t=>{if(t.type==="base"){e.push(this.getItem(t))}}));this.navigationPanel=new n.NavigationPanel({target:this.target,items:e});this.navigationPanel.init()}}getItem(e){const t=()=>{this.emit("onChange",{name:e.name,type:e.type,dataset:e.dataset})};return{id:e.name,title:e.text,active:false,events:{click:t}}}setValue(e){this.currentValue=this.views.find((t=>e.name===t.name));if(this.currentValue){const e=this.navigationPanel.getItemById(this.currentValue.name);if(e){e.activate()}}}setViewMode(e){if(e){this.currentViewMode=this.views.find((t=>e===t.name&&t.type==="additional"))}}getMenuItems(){const e=[];this.views.forEach((t=>{if(t.type==="base"){e.push({html:`<span>${t.text}</span>${t.hotkey?`<span class="calendar-item-hotkey">${t.hotkey}</span>`:""}`,className:this.currentValue.name===t.name?"menu-popup-item-accept":" ",onclick:()=>{this.emit("onChange",{name:t.name,type:t.type,dataset:t.dataset});this.menuPopup.close()}})}}));if(e.length<this.views.length){e.push({html:`<span>${D.Loc.getMessage("EC_VIEW_MODE_SHOW_BY")}</span>`,className:"main-buttons-submenu-separator main-buttons-submenu-item main-buttons-hidden-label"});this.views.forEach((function(t){if(t.type==="additional"){e.push({text:t.text,className:this.currentViewMode.name===t.name?"menu-popup-item-accept":" ",onclick:function(){this.emit("onChange",{name:t.name,type:t.type,dataset:t.dataset});this.menuPopup.close()}.bind(this)})}}),this)}return e}}class Ae extends p.EventEmitter{constructor(e={}){super();this.showTasks=false;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.AddButton");this.zIndex=e.zIndex||3200;this.popupId=e.id||"add-button-"+Math.round(Math.random()*1e4);this.showTasks=e.showTasks;this.addEntryHandler=D.Type.isFunction(e.addEntry)?e.addEntry:null;this.addTaskHandler=D.Type.isFunction(e.addTask)?e.addTask:null;this.create()}create(){this.menuItems=[{text:D.Loc.getMessage("EC_EVENT_BUTTON"),onclick:this.addEntry.bind(this)}];if(this.addTaskHandler){this.menuItems.push({text:D.Loc.getMessage("EC_TASK_BUTTON"),onclick:this.addTask.bind(this)})}if(this.menuItems.length>1){this.DOM.wrap=D.Dom.create("span",{props:{className:"ui-btn-split ui-btn-success"},children:[D.Dom.create("button",{props:{className:"ui-btn-main",type:"button"},html:D.Loc.getMessage("EC_CREATE"),events:{click:this.addEntry.bind(this)}})]});this.DOM.addButtonExtra=D.Dom.create("span",{props:{className:"ui-btn-extra"},events:{click:this.showPopup.bind(this)}});this.DOM.wrap.appendChild(this.DOM.addButtonExtra)}else{this.DOM.wrap=D.Dom.create("button",{props:{className:"ui-btn ui-btn-success",type:"button"},html:D.Loc.getMessage("EC_CREATE"),events:{click:this.addEntry.bind(this)}})}this.DOM.wrap.setAttribute("data-role","addButton")}getWrap(){return this.DOM.wrap}showPopup(){if(this.menuPopup&&this.menuPopup.popupWindow&&this.menuPopup.popupWindow.isShown()){return this.menuPopup.close()}this.menuPopup=BX.PopupMenu.create(this.popupId,this.DOM.addButtonExtra,this.menuItems,{closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:15,angle:true});this.menuPopup.show();BX.addCustomEvent(this.menuPopup.popupWindow,"onPopupClose",function(){BX.PopupMenu.destroy(this.popupId);this.menuPopup=null;this.addBtnMenu=null}.bind(this))}addEntry(){if(this.addEntryHandler){this.addEntryHandler()}if(this.menuPopup&&this.menuPopup.popupWindow&&this.menuPopup.popupWindow.isShown()){this.menuPopup.close()}}addTask(){if(this.addTaskHandler){this.addTaskHandler()}if(this.menuPopup&&this.menuPopup.popupWindow&&this.menuPopup.popupWindow.isShown()){this.menuPopup.close()}}}class ke extends D.Event.EventEmitter{constructor(e={}){super();this.showTasks=false;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.MeetingStatusControl");this.BX=M.Util.getBX();if(e.wrap&&D.Type.isDomNode(e.wrap)){this.DOM.wrap=e.wrap}else{throw new Error('The argument "params.wrap" must be a DOM node.')}this.id=e.id||"meeting-status-control-"+Math.round(Math.random()*1e4);this.zIndex=3100;this.create();this.status=e.currentStatus||null;if(this.status){this.updateStatus()}}create(){this.acceptBtn=new BX.UI.Button({text:D.Loc.getMessage("EC_VIEW_DESIDE_BUT_Y"),className:"ui-btn ui-btn-primary",events:{click:this.accept.bind(this)}});this.acceptBtn.renderTo(this.DOM.wrap);this.declineBtn=new BX.UI.Button({text:D.Loc.getMessage("EC_VIEW_DESIDE_BUT_N"),className:"ui-btn ui-btn-light-border",events:{click:this.decline.bind(this)}});this.declineBtn.renderTo(this.DOM.wrap)}updateStatus(){if(this.status==="H"){this.acceptBtn.getContainer().style.display="none";this.declineBtn.getContainer().style.display="";this.declineBtn.setText(D.Loc.getMessage("EC_VIEW_DESIDE_BUT_OWNER_N"))}else{if(this.status==="Y"){this.acceptBtn.getContainer().style.display="none";this.declineBtn.getContainer().style.display=""}else if(this.status==="N"){this.acceptBtn.getContainer().style.display="";this.declineBtn.getContainer().style.display="none"}else{this.acceptBtn.getContainer().style.display="";this.declineBtn.getContainer().style.display=""}}}accept(){this.setStatus("Y")}decline(){this.setStatus("N")}setStatus(e,t=true){this.status=e;if(this.menuPopup){this.menuPopup.close()}if(t){this.emit("onSetStatus",new D.Event.BaseEvent({data:{status:e}}))}}}let xe=e=>e,Re;class Ue extends p.EventEmitter{constructor(){super();this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ConfirmStatusDialog");this.zIndex=3200;this.id="confirm-status-dialog-"+Math.round(Math.random()*1e4)}show(){this.dialog=new C.Popup({id:this.id,titleBar:D.Loc.getMessage("EC_DECLINE_REC_EVENT"),content:this.getContent(),className:"calendar__confirm-dialog",lightShadow:true,maxWidth:700,minHeight:120,autoHide:true,closeByEsc:true,draggable:true,closeIcon:true,animation:"fading-slide",contentBackground:"#fff",overlay:{opacity:15},cacheable:false});this.dialog.show()}getContent(){const e=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_DECLINE_ONLY_THIS"),events:{click:()=>{this.onDeclineHandler();this.emit("onDecline",new p.BaseEvent({data:{recursionMode:"this"}}))}}});const t=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_DECLINE_NEXT"),events:{click:()=>{this.onDeclineHandler();this.emit("onDecline",new p.BaseEvent({data:{recursionMode:"next"}}))}}});const i=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_DECLINE_ALL"),events:{click:()=>{this.onDeclineHandler();this.emit("onDecline",new p.BaseEvent({data:{recursionMode:"all"}}))}}});return D.Tag.render(Re||(Re=xe` <div class="calendar__confirm-dialog-content"> ${0} ${0} ${0} </div> `),e.render(),t.render(),i.render())}close(){if(this.dialog){this.dialog.close()}}onDeclineHandler(){this.close();const e=o.EntryManager.getCompactViewForm();if(e&&e.isShown()){e.close()}}}let Ve=e=>e,He;class We extends p.EventEmitter{constructor(){super();this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ConfirmEditDialog");this.zIndex=3200;this.id="confirm-edit-dialog-"+Math.round(Math.random()*1e4)}show(e){this.dialog=new C.Popup({titleBar:D.Loc.getMessage("EC_EDIT_REC_EVENT"),content:this.getContent(e),className:"calendar__confirm-dialog",lightShadow:true,maxWidth:700,minHeight:120,autoHide:true,closeByEsc:true,draggable:true,closeIcon:true,animation:"fading-slide",contentBackground:"#fff",overlay:{opacity:15},cacheable:false});this.dialog.show()}getContent(e){const t=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_REC_EV_ONLY_THIS_EVENT"),events:{click:()=>{this.emit("onEdit",new p.BaseEvent({data:{recursionMode:"this"}}));this.close()}}});const i=e.canEditOnlyThis?c.ButtonState.DISABLED:null;const s=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_REC_EV_NEXT"),events:{click:()=>{if(e.canEditOnlyThis){this.showCanEditOnlyThisPopup(s.getContainer(),D.Loc.getMessage("EC_ONLY_AUTHOR_CAN_EDIT_NEXT"));return}this.emit("onEdit",new p.BaseEvent({data:{recursionMode:"next"}}));this.close()}},state:i});const a=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_REC_EV_ALL"),events:{click:()=>{if(e.canEditOnlyThis){this.showCanEditOnlyThisPopup(a.getContainer(),D.Loc.getMessage("EC_ONLY_AUTHOR_CAN_EDIT_ALL"));return}this.emit("onEdit",new p.BaseEvent({data:{recursionMode:"all"}}));this.close()}},state:i});return D.Tag.render(He||(He=Ve` <div class="calendar__confirm-dialog-content"> ${0} ${0} ${0} </div> `),t.render(),s.render(),a.render())}showCanEditOnlyThisPopup(e,t){clearTimeout(this.hideCanEditOnlyThisPopupTimeout);const i=new C.Popup({bindElement:e,content:t,darkMode:true,bindOptions:{position:"top"},offsetTop:-10,angle:true,autoHide:true,events:{onShow:()=>{const e=C.Popup.getOption("angleMinBottom");const t=i.getPopupContainer().offsetWidth;const s=i.bindElement.offsetWidth;i.setOffset({offsetLeft:s/2-t/2});i.adjustPosition();if(i.angle){i.setAngle({offset:t/2+e})}}}});i.show();this.hideCanEditOnlyThisPopupTimeout=setTimeout((()=>i.close()),2e3)}close(){if(this.dialog){this.dialog.close()}}}let Fe=e=>e,ze;class Xe{constructor(e={}){this.entry=e.entry}show(){this.dialog=new C.Popup({titleBar:D.Loc.getMessage("EC_DEL_REC_EVENT"),content:this.getContent(),className:"calendar__confirm-dialog",lightShadow:true,maxWidth:700,minHeight:120,autoHide:true,closeByEsc:true,draggable:true,closeIcon:true,animation:"fading-slide",contentBackground:"#fff",overlay:{opacity:15},cacheable:false});this.dialog.show()}getContent(){const e=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_REC_EV_ONLY_THIS_EVENT"),events:{click:()=>{this.entry.deleteThis();this.close()}}});const t=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_REC_EV_NEXT"),events:{click:()=>{this.entry.deleteNext();this.close()}}});const i=new c.Button({size:c.ButtonSize.MEDIUM,color:c.ButtonColor.LIGHT_BORDER,text:D.Loc.getMessage("EC_REC_EV_ALL"),events:{click:()=>{this.entry.deleteAll();this.close()}}});return D.Tag.render(ze||(ze=Fe` <div class="calendar__confirm-dialog-content"> ${0} ${0} ${0} </div> `),e.render(),t.render(),i.render())}close(){if(this.dialog){this.dialog.close()}}}let $e=e=>e,Ye,je,Ge,Ke,qe,Ze,Qe,Je,et,tt,it,st,at,nt;var ot=babelHelpers.classPrivateFieldLooseKey("dateFromPicker");var lt=babelHelpers.classPrivateFieldLooseKey("dateToPicker");var rt=babelHelpers.classPrivateFieldLooseKey("tzFromMenu");var ct=babelHelpers.classPrivateFieldLooseKey("tzToMenu");var ht=babelHelpers.classPrivateFieldLooseKey("selectTimezoneFrom");var dt=babelHelpers.classPrivateFieldLooseKey("selectTimezoneTo");var ut=babelHelpers.classPrivateFieldLooseKey("onDateFromSelected");var pt=babelHelpers.classPrivateFieldLooseKey("onDateToSelected");class mt extends p.EventEmitter{constructor(e,t={showTimezone:true}){super();Object.defineProperty(this,ot,{writable:true,value:void 0});Object.defineProperty(this,lt,{writable:true,value:void 0});Object.defineProperty(this,rt,{writable:true,value:void 0});Object.defineProperty(this,ct,{writable:true,value:void 0});this.DATE_INPUT_WIDTH=110;this.TIME_INPUT_WIDTH=90;this.zIndex=4200;this.from=null;this.to=null;Object.defineProperty(this,ht,{writable:true,value:e=>{this.DOM.fromTz.value=e.title;this.DOM.fromTz.dataset.value=e.timezone_id;babelHelpers.classPrivateFieldLooseBase(this,rt)[rt].close();if(this.showTimezone){if(this.bindTimezones){this.DOM.toTz.value=this.DOM.fromTz.value;this.DOM.toTz.dataset.value=this.DOM.fromTz.dataset.value}this.bindFromToDefaultTimezones=false}this.handleValueChange()}});Object.defineProperty(this,dt,{writable:true,value:e=>{this.DOM.toTz.value=e.title;this.DOM.toTz.dataset.value=e.timezone_id;babelHelpers.classPrivateFieldLooseBase(this,ct)[ct].close();if(this.showTimezone){this.bindTimezones=false;this.bindFromToDefaultTimezones=false}this.handleValueChange()}});Object.defineProperty(this,ut,{writable:true,value:e=>{const{date:t}=e.getData();this.DOM.fromDate.value=M.Util.formatDate(this.createDateFromUtc(t).getTime());this.handleDateFromChange()}});Object.defineProperty(this,pt,{writable:true,value:e=>{const{date:t}=e.getData();this.DOM.toDate.value=M.Util.formatDate(this.createDateFromUtc(t).getTime());this.handleDateToChange()}});this.setEventNamespace("BX.Calendar.Controls.DateTimeControl");this.showTimezone=t.showTimezone;this.inlineEditMode=Boolean(t.inlineEditMode);this.currentInlineEditMode=t.currentInlineEditMode||"view";this.UID=e||`date-time-${Math.round(Math.random()*1e5)}`;this.DOM={outerWrap:t.outerWrap||null,outerContent:t.outerContent||null};this.create()}create(){if(D.Type.isDomNode(this.DOM.outerWrap)){if(this.inlineEditMode){D.Dom.addClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-view")}this.DOM.leftInnerWrap=this.DOM.outerWrap.appendChild(D.Tag.render(Ye||(Ye=$e`<div class="calendar-field-block calendar-field-block-left"></div>`)));this.DOM.fromDate=this.DOM.leftInnerWrap.appendChild(D.Tag.render(je||(je=$e` <input class="calendar-field calendar-field-datetime" value="" type="text" autocomplete="off" style="width: ${0}px;"/> `),this.DATE_INPUT_WIDTH));if(this.inlineEditMode){this.DOM.fromDateText=this.DOM.leftInnerWrap.appendChild(D.Tag.render(Ge||(Ge=$e`<span class="calendar-field-value calendar-field-value-date"></span>`)))}this.DOM.fromTime=this.DOM.leftInnerWrap.appendChild(D.Tag.render(Ke||(Ke=$e` <input class="calendar-field calendar-field-time" value="" type="text" autocomplete="off" style="width: ${0}px; max-width: ${0}px;"/> `),this.TIME_INPUT_WIDTH,this.TIME_INPUT_WIDTH));if(this.inlineEditMode){this.DOM.fromTimeText=this.DOM.leftInnerWrap.appendChild(D.Tag.render(qe||(qe=$e`<span class="calendar-field-value calendar-field-value-time"></span>`)))}this.DOM.betweenSpacer=this.DOM.outerWrap.appendChild(D.Tag.render(Ze||(Ze=$e`<div class="calendar-field-block calendar-field-block-between" />`)));this.DOM.rightInnerWrap=this.DOM.outerWrap.appendChild(D.Tag.render(Qe||(Qe=$e`<div class="calendar-field-block calendar-field-block-right"></div>`)));this.DOM.toTime=this.DOM.rightInnerWrap.appendChild(D.Tag.render(Je||(Je=$e` <input class="calendar-field calendar-field-time" value="" type="text" autocomplete="off" style="width: ${0}px; max-width: ${0}px;"/> `),this.TIME_INPUT_WIDTH,this.TIME_INPUT_WIDTH));if(this.inlineEditMode){this.DOM.toTimeText=this.DOM.rightInnerWrap.appendChild(D.Tag.render(et||(et=$e`<span class="calendar-field-value calendar-field-value-time"></span>`)))}this.DOM.toDate=this.DOM.rightInnerWrap.appendChild(D.Tag.render(tt||(tt=$e` <input class="calendar-field calendar-field-datetime" value="" type="text" autocomplete="off" style="width: ${0}px;"/> `),this.DATE_INPUT_WIDTH));if(this.inlineEditMode){this.DOM.toDateText=this.DOM.rightInnerWrap.appendChild(D.Tag.render(it||(it=$e`<span class="calendar-field-value calendar-field-value-date"></span>`)))}this.fromTimeControl=new T({input:this.DOM.fromTime,onChangeCallback:this.handleTimeFromChange.bind(this)});this.toTimeControl=new T({input:this.DOM.toTime,onChangeCallback:this.handleTimeToChange.bind(this)});const e=this.DOM.outerWrap.appendChild(D.Tag.render(st||(st=$e` <span class="calendar-event-full-day"></span> `)));this.DOM.fullDay=e.appendChild(D.Tag.render(at||(at=$e` <input value="Y" type="checkbox" id="{this.UID}"/> `)));e.appendChild(D.Tag.render(nt||(nt=$e`<label for="{this.UID}">${0}</label>`),D.Loc.getMessage("EC_ALL_DAY")))}if(this.showTimezone);this.bindEventHandlers()}setValue(e={}){this.DOM.fromDate.value=M.Util.formatDate(e.from);this.DOM.toDate.value=M.Util.formatDate(e.to);this.DOM.fromTime.value=M.Util.formatTime(e.from);this.DOM.toTime.value=M.Util.formatTime(e.to);const t=M.Util.parseTime(this.DOM.fromTime.value);const i=M.Util.parseTime(this.DOM.toTime.value);this.fromMinutes=t.h*60+t.m;this.toMinutes=i.h*60+i.m;this.updateTimePeriod();if(this.inlineEditMode){this.DOM.fromDateText.innerHTML=M.Util.formatDateUsable(e.from,true,true);this.DOM.toDateText.innerHTML=M.Util.formatDateUsable(e.to,true,true);this.DOM.toDateText.style.display=this.DOM.fromDate.value===this.DOM.toDate.value?"none":"";if(e.fullDay){if(this.DOM.fromDate.value===this.DOM.toDate.value){this.DOM.toTimeText.innerHTML=D.Loc.getMessage("EC_ALL_DAY");this.DOM.toTimeText.style.display="";this.DOM.fromTimeText.style.display="none";this.DOM.fromTimeText.innerHTML=""}else{this.DOM.betweenSpacer.style.display="";this.DOM.fromTimeText.style.display="none";this.DOM.toTimeText.style.display="none"}}else{this.DOM.fromTimeText.innerHTML=this.DOM.fromTime.value;this.DOM.toTimeText.innerHTML=this.DOM.toTime.value;this.DOM.betweenSpacer.style.display="";this.DOM.fromTimeText.style.display="";this.DOM.toTimeText.style.display=""}}if(e.fullDay!==undefined){this.DOM.fullDay.checked=e.fullDay}if(this.showTimezone){e.timezoneFrom=e.timezoneFrom||e.timezoneName;e.timezoneTo=e.timezoneTo||e.timezoneName;if(e.timezoneFrom!==undefined&&D.Type.isDomNode(this.DOM.fromTz)){this.DOM.fromTz.dataset.value=e.timezoneFrom;this.DOM.fromTz.value=this.getTimezoneNameWithShift(e.timezoneFrom)}if(e.timezoneTo!==undefined&&D.Type.isDomNode(this.DOM.toTz)){this.DOM.toTz.dataset.value=e.timezoneTo;this.DOM.toTz.value=this.getTimezoneNameWithShift(e.timezoneTo)}if(e.timezoneName!==undefined&&(e.timezoneName!==e.timezoneFrom||e.timezoneName!==e.timezoneTo)){this.switchTimezone(true)}}this.value=e;this.handleFullDayChange();this.emit("onSetValue")}updateTimePeriod(){this.from=this.getFrom();this.to=this.getTo();this.fromTimeControl.highlightValue(this.from);this.toTimeControl.highlightValue(this.to);this.updateToTimeDurationHints();this.initDatePicker()}initDatePicker(){var e,t,i,s;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,ot))[ot])!=null?t:e[ot]=new l.DatePicker({targetNode:this.DOM.fromDate,selectedDates:[this.from.getTime()],events:{onSelect:babelHelpers.classPrivateFieldLooseBase(this,ut)[ut]}});(s=(i=babelHelpers.classPrivateFieldLooseBase(this,lt))[lt])!=null?s:i[lt]=new l.DatePicker({targetNode:this.DOM.toDate,selectedDates:[this.to.getTime()],events:{onSelect:babelHelpers.classPrivateFieldLooseBase(this,pt)[pt]}})}getFrom(){return this.getDateWithTime(this.DOM.fromDate.value,this.fromMinutes)}getTo(){return this.getDateWithTime(this.DOM.toDate.value,this.toMinutes)}getDateWithTime(e,t){const i=M.Util.parseDate(e);if(!i){return null}return new Date(i.getTime()+t*60*1e3)}getValue(){const e={fullDay:this.DOM.fullDay.checked,fromDate:this.DOM.fromDate.value,toDate:this.DOM.toDate.value,fromTime:this.DOM.fromTime.value,toTime:this.DOM.toTime.value,timezoneFrom:this.DOM.fromTz?this.DOM.fromTz.dataset.value:this.value.timezoneFrom||this.value.timezoneName||null,timezoneTo:this.DOM.toTz?this.DOM.toTz.dataset.value:this.value.timezoneTo||this.value.timezoneName||null};e.from=M.Util.parseDate(e.fromDate);if(D.Type.isDate(e.from)){e.to=M.Util.parseDate(e.toDate);if(!D.Type.isDate(e.to)){e.to=e.from}if(e.fullDay){e.from.setHours(0,0,0);e.to.setHours(0,0,0)}else{const t=M.Util.parseTime(e.fromTime);const i=M.Util.parseTime(e.toTime)||t;if(t&&i){e.from.setHours(t.h,t.m,0);e.to.setHours(i.h,i.m,0)}}}return e}bindEventHandlers(){D.Event.bind(this.DOM.fromDate,"click",this.showDateFromInputCalendar.bind(this));D.Event.bind(this.DOM.toDate,"click",this.showDateToInputCalendar.bind(this));D.Event.bind(this.DOM.fromTime,"input",this.handleTimeInput.bind(this));D.Event.bind(this.DOM.toTime,"input",this.handleTimeInput.bind(this));D.Event.bind(this.DOM.fromTz,"click",this.showTzFromMenu.bind(this));D.Event.bind(this.DOM.toTz,"click",this.showTzToMenu.bind(this));D.Event.bind(this.DOM.fullDay,"click",(()=>{this.handleFullDayChange();this.handleValueChange()}));if(this.inlineEditMode){D.Event.bind(this.DOM.outerWrap,"click",this.changeInlineEditMode.bind(this))}if(D.Type.isDomNode(this.DOM.defTimezone)){D.Event.bind(this.DOM.defTimezone,"change",BX.delegate((function(){if(this.bindFromToDefaultTimezones){this.DOM.fromTz.dataset.value=this.DOM.toTz.dataset.value=this.DOM.defTimezone.value;this.DOM.fromTz.value=this.DOM.toTz.value=this.DOM.defTimezone.value}}),this))}if(this.showTimezone){if(D.Type.isDomNode(this.DOM.tzButton)){D.Event.bind(this.DOM.tzButton,"click",this.switchTimezone.bind(this))}this.bindTimezones=this.DOM.fromTz.value===this.DOM.toTz.value;this.bindFromToDefaultTimezones=this.bindTimezones&&this.DOM.fromTz.dataset.value===this.DOM.toTz.dataset.value&&this.DOM.fromTz.dataset.value===this.DOM.defTimezone.value}}showDateFromInputCalendar(e){const t=e.target||e.srcElement;if(D.Type.isDomNode(t)&&t.nodeName.toLowerCase()==="input"){babelHelpers.classPrivateFieldLooseBase(this,ot)[ot].show()}}showDateToInputCalendar(e){const t=e.target||e.srcElement;if(D.Type.isDomNode(t)&&t.nodeName.toLowerCase()==="input"){babelHelpers.classPrivateFieldLooseBase(this,lt)[lt].show()}}showTzFromMenu(){var e,t;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,rt))[rt])!=null?t:e[rt]=new C.Menu({id:`${this.UID}-calendar-tz-from-menu`,bindElement:this.DOM.fromTz,closeByEsc:true,items:this.getMenuItems(babelHelpers.classPrivateFieldLooseBase(this,ht)[ht]),maxHeight:300});babelHelpers.classPrivateFieldLooseBase(this,rt)[rt].show()}showTzToMenu(){var e,t;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,ct))[ct])!=null?t:e[ct]=new C.Menu({id:`${this.UID}-calendar-tz-to-menu`,bindElement:this.DOM.toTz,closeByEsc:true,items:this.getMenuItems(babelHelpers.classPrivateFieldLooseBase(this,dt)[dt]),maxHeight:300});babelHelpers.classPrivateFieldLooseBase(this,ct)[ct].show()}getMenuItems(e){const t=[];const i=Object.values(M.Util.getTimezoneList());for(const s of i){t.push(new C.MenuItem({text:s.title,onclick:()=>e(s)}))}return t}createDateFromUtc(e){return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes())}handleDateFromChange(){if(!this.getFrom()){this.DOM.fromDate.value=M.Util.formatDate(this.from.getTime());return}this.DOM.fromDate.value=M.Util.formatDate(this.getFrom());const e=this.getFrom().getTime()-this.from.getTime();this.DOM.toDate.value=M.Util.formatDate(this.to.getTime()+e);babelHelpers.classPrivateFieldLooseBase(this,lt)[lt].selectDate(this.to.getTime()+e);this.handleValueChange()}handleDateToChange(){if(!this.getTo()){this.DOM.toDate.value=M.Util.formatDate(this.to.getTime());return}this.DOM.toDate.value=M.Util.formatDate(this.getTo());const e=Math.abs(this.to.getTime()-this.getTo().getTime());const t=1e3*60*60*24*300;if(e>t){const e=this.to.getTime()-this.from.getTime();const t=M.Util.parseDate(this.DOM.toDate.value);t.setHours(this.to.getHours(),this.to.getMinutes(),0,0);const i=new Date(t.getTime()-e);this.DOM.fromDate.value=M.Util.formatDate(i);babelHelpers.classPrivateFieldLooseBase(this,ot)[ot].selectDate(t.getTime()-e)}if(this.getTo()<this.getFrom()){this.DOM.toDate.value=this.DOM.fromDate.value;this.DOM.toTime.value=this.DOM.fromTime.value;babelHelpers.classPrivateFieldLooseBase(this,lt)[lt].selectDate(this.from.getTime());this.toMinutes=this.getMinutesFromFormattedTime(this.DOM.toTime.value)}this.handleValueChange()}handleTimeFromChange(e,t){this.handleTimeChange(this.DOM.fromTime);if(this.isIncorrectTimeValue(this.DOM.fromTime.value)){this.DOM.fromTime.value=M.Util.formatTime(this.from)}else{this.fromMinutes=t!=null?t:this.getMinutesFromFormattedTime(this.DOM.fromTime.value);this.DOM.fromTime.value=M.Util.formatTime(this.getFrom())}if(this.getTo()){const e=this.getFrom().getTime()-this.from.getTime();this.toMinutes+=e/(60*1e3)}this.handleValueChange()}handleTimeToChange(e,t){this.handleTimeChange(this.DOM.toTime);if(this.isIncorrectTimeValue(this.DOM.toTime.value)){this.DOM.toTime.value=M.Util.formatTime(this.to)}else{this.toMinutes=t!=null?t:this.getMinutesFromFormattedTime(this.DOM.toTime.value);this.DOM.toTime.value=M.Util.formatTime(this.getTo())}if(this.getTo()<this.getFrom()){const e=this.getTo().getTime()-this.to.getTime();this.fromMinutes+=e/(60*1e3);const t=new Date(this.from.getTime()+e);this.DOM.fromTime.value=M.Util.formatTime(t);this.DOM.fromDate.value=M.Util.formatDate(t)}this.handleValueChange()}isIncorrectTimeValue(e){if(BX.isAmPmMode()){return e===""}return e===""||e[0]!=="0"&&M.Util.parseTime(e).h===0}handleTimeChange(e){if(e.value===""){return}let t=this.getMaskedTime(e.value);t=this.beautifyTime(t);if(BX.isAmPmMode()){var i;let s=((i=e.value.toLowerCase().match(/[ap]/g))!=null?i:[]).pop();if(!s){const e=parseInt(this.getMinutesAndHours(t).hours);if(e>=8&&e<=11){s="a"}else{s="p"}}if(s==="a"){t+=" am"}if(s==="p"){t+=" pm"}}e.value=t}handleTimeInput(e){e.target.value=this.getMaskedTime(e.target.value,e.data,e.inputType==="deleteContentBackward")}getMaskedTime(e,t,i=false){if(i){return e}let s="";const{hours:a,minutes:n}=this.getMinutesAndHours(e,t);if(a&&!n){s=String(a);if(e.length-s.length===1||e.includes(":")){s+=":"}}if(a&&n){s=`${a}:${n}`}if(BX.isAmPmMode()&&this.clearTimeString(s)!==""){var o;const t=((o=e.toLowerCase().match(/[ap]/g))!=null?o:[]).pop();if(t==="a"){s=`${s} am`}if(t==="p"){s=`${s} pm`}}return s}getMinutesAndHours(e,t){const i=this.clearTimeString(e,t);let s;let a;if(i.includes(":")){s=i.match(/\d*:/g)[0].slice(0,-1);a=i.match(/:\d*/g)[0].slice(1)}else{var n;const e=((n=i.match(/\d/g))!=null?n:[]).splice(0,4).map((e=>parseInt(e,10)));if(e.length===4&&e[0]>this.getMaxHours()/10){e.pop()}if(e.length===1){s=String(e[0])}if(e.length===2){s=`${e[0]}${e[1]}`;if(parseInt(s,10)>this.getMaxHours()){s=String(e[0]);a=String(e[1])}}if(e.length===3){if(BX.isAmPmMode()){if(e[0]>1){s=String(e[0]);a=`${e[1]}${e[2]}`}else{s=`${e[0]}${e[1]}`;a=String(e[2])}}else if(parseInt(`${e[0]}${e[1]}`,10)<24){s=`${e[0]}${e[1]}`;a=String(e[2])}else{s=String(e[0]);a=`${e[1]}${e[2]}`}}if(e.length===4){s=`${e[0]}${e[1]}`;a=`${e[2]}${e[3]}`}}if(s){s=this.formatHours(s)}if(a){a=this.formatMinutes(a)}return{hours:s,minutes:a}}clearTimeString(e,t){let i=e.replaceAll(/[amp]/g,"").trim().replaceAll(/\D/g,":");i=i.replace(/:*/,"");const s=i.indexOf(":");i=i.slice(0,Math.max(0,s+1))+i.slice(s+1).replaceAll(":","");if(s!==-1){const e=this.formatHours(i.match(/\d*:/g)[0].slice(0,-1));const s=i.match(/:\d*/g)[0].slice(1).slice(0,3);if(e.length===1&&s.length===3&&!isNaN(parseInt(t,10))&&this.areTimeDigitsCorrect(`${e}${s}`)){return`${e}${s}`}return`${e}:${s}`}return i.slice(0,4)}areTimeDigitsCorrect(e){const t=e.slice(0,2);const i=e.slice(2);return this.formatHours(t)===t&&this.formatMinutes(i)===i}formatHours(e){const t=e[0];if(parseInt(t,10)>this.getMaxHours()/10){return`0${t}`}if(parseInt(e,10)<=this.getMaxHours()){var i;return`${t}${(i=e[1])!=null?i:""}`}return String(t)}formatMinutes(e){var t;const i=e[0];if(i>=6){return`0${i}`}return`${i}${(t=e[1])!=null?t:""}`}beautifyTime(e){if(this.clearTimeString(e)===""){return""}if(!e.includes(":")){e+=":00"}if(e.indexOf(":")===e.length-1){e+="00"}let{hours:t,minutes:i}=this.getMinutesAndHours(e);t=`0${t}`.slice(-2);i=`0${i}`.slice(-2);return`${t}:${i}`}getMaxHours(){return BX.isAmPmMode()?12:24}handleFullDayChange(){const e=this.getFullDayValue();if(e){if(D.Type.isDomNode(this.DOM.dateTimeWrap)){D.Dom.addClass(this.DOM.dateTimeWrap,"calendar-options-item-datetime-hide-time")}if(D.Type.isDomNode(this.DOM.outerWrap)){D.Dom.addClass(this.DOM.outerWrap,"calendar-options-item-datetime-hide-time")}}else{if(D.Type.isDomNode(this.DOM.dateTimeWrap)){D.Dom.removeClass(this.DOM.dateTimeWrap,"calendar-options-item-datetime-hide-time")}if(D.Type.isDomNode(this.DOM.outerWrap)){D.Dom.removeClass(this.DOM.outerWrap,"calendar-options-item-datetime-hide-time")}}}handleValueChange(){this.setValue({from:this.getFrom(),to:this.getTo()});this.emit("onChange",new p.BaseEvent({data:{value:this.getValue()}}))}updateToTimeDurationHints(){this.toTimeControl.updateDurationHints(this.DOM.fromTime.value,this.DOM.toTime.value,this.DOM.fromDate.value,this.DOM.toDate.value)}getFullDayValue(){return Boolean(this.DOM.fullDay.checked)}getMinutesFromFormattedTime(e){const t=M.Util.parseTime(e);return t.h*60+t.m}switchTimezone(e){if(!D.Type.isBoolean(e)){e=BX.hasClass(this.DOM.tzCont,"calendar-options-timezone-collapse")}if(e){D.Dom.addClass(this.DOM.tzCont,"calendar-options-timezone-expand");D.Dom.removeClass(this.DOM.tzCont,"calendar-options-timezone-collapse")}else{D.Dom.addClass(this.DOM.tzCont,"calendar-options-timezone-collapse");D.Dom.removeClass(this.DOM.tzCont,"calendar-options-timezone-expand")}}changeInlineEditMode(){if(!this.viewMode){this.setInlineEditMode("edit")}}setViewMode(e){this.viewMode=e;if(this.viewMode&&this.currentInlineEditMode==="edit"){this.setInlineEditMode("view")}}setInlineEditMode(e){if(this.inlineEditMode){this.currentInlineEditMode=e;if(this.currentInlineEditMode==="edit"){D.Dom.addClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-edit");D.Dom.removeClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-view")}else{D.Dom.removeClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-edit");D.Dom.addClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-view")}}}getTimezoneNameWithShift(e){const t=M.Util.getTimezoneList();if(D.Type.isObject(t)){var i;return((i=t[e])==null?void 0:i.title)||e}return e}}class gt extends p.EventEmitter{constructor(){super();this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ConfirmStatusDialog");this.zIndex=3200;this.id="busy-user-dialog-"+Math.round(Math.random()*1e4)}show(e={}){this.plural=e.users.length>1;const t=[];e.users.forEach((e=>{t.push(e.DISPLAY_NAME)}));const i=t.join(", ");const s=this.plural?D.Loc.getMessage("EC_BUSY_USERS_PLURAL").replace("#USER_LIST#",i):D.Loc.getMessage("EC_BUSY_USERS_SINGLE").replace("#USER_NAME#",e.users[0].DISPLAY_NAME);this.dialog=new r.MessageBox({title:D.Loc.getMessage("EC_BUSY_USERS_TITLE"),message:D.Text.encode(s),buttons:this.getButtons(),popupOptions:{autoHide:true,closeByEsc:true,draggable:false,closeIcon:true,maxWidth:700,minHeight:150,animation:"fading-slide"}});this.dialog.show()}getButtons(){return[new c.Button({size:c.ButtonSize.SMALL,color:c.ButtonColor.PRIMARY,text:D.Loc.getMessage("EC_BUSY_USERS_BACK2EDIT"),events:{click:()=>{this.emit("onContinueEditing");this.close()}}}),new c.Button({size:c.ButtonSize.SMALL,color:c.ButtonColor.LIGHT_BORDER,text:this.plural?D.Loc.getMessage("EC_BUSY_USERS_EXCLUDE_PLURAL"):D.Loc.getMessage("EC_BUSY_USERS_EXCLUDE_SINGLE"),events:{click:()=>{this.emit("onSaveWithout");this.close()}}})]}close(){if(this.dialog){this.dialog.close()}}isShown(){if(this.dialog){return this.dialog.getPopupWindow().isShown()}return false}}let ft=e=>e,Dt,Mt,Ct;class Tt extends p.EventEmitter{constructor(e={}){super();this.zIndex=4200;this.readOnlyMode=true;this.meetingNotifyValue=true;this.userSelectorDialog=null;this.attendeesEntityList=[];this.inlineEditMode=Tt.VIEW_MODE;this.prevUserList=[];this.loadedAccessibilityData={};this.REFRESH_PLANNER_DELAY=500;this.setEventNamespace("BX.Calendar.Controls.UserPlannerSelector");this.selectorId=e.id||`user-selector-${Math.round(Math.random()*1e4)}`;this.BX=M.Util.getBX();this.DOM={outerWrap:e.outerWrap,wrap:e.wrap,informWrap:e.informWrap,informWrapText:e.informWrap.querySelector(".calendar-field-container-inform-text"),moreLink:e.outerWrap.querySelector(".calendar-members-more"),changeLink:e.outerWrap.querySelector(".calendar-members-change-link"),attendeesLabel:e.outerWrap.querySelector(".calendar-attendees-label"),attendeesList:e.outerWrap.querySelector(".calendar-attendees-list"),userSelectorWrap:e.outerWrap.querySelector(".calendar-user-selector-wrap"),plannerOuterWrap:e.plannerOuterWrap,videocallWrap:e.outerWrap.querySelector(".calendar-videocall-wrap"),hideGuestsWrap:e.hideGuestsWrap,hideGuestsIcon:e.hideGuestsWrap.querySelector(".calendar-hide-members-icon-hidden")};this.refreshPlannerStateDebounce=D.Runtime.debounce(this.refreshPlannerState,this.REFRESH_PLANNER_DELAY,this);if(D.Type.isBoolean(e.readOnlyMode)){this.readOnlyMode=e.readOnlyMode}this.userId=e.userId;this.type=e.type;this.ownerId=e.ownerId;this.zIndex=e.zIndex||this.zIndex;this.plannerReadOnly=e.plannerReadOnly||false;this.plannerFeatureEnabled=Boolean(e.plannerFeatureEnabled);this.isEditableSharingEvent=Boolean(e.isEditableSharingEvent);this.openEditFormCallback=e.openEditFormCallback;this.create()}create(){if(this.DOM.changeLink&&!this.isReadOnly()){let e;if(!this.isEditableSharingEvent){e=()=>{if(!this.userSelectorDialog){this.userSelectorDialog=new d.Dialog({targetNode:this.DOM.changeLink,context:"CALENDAR",preselectedItems:this.attendeesPreselectedItems,undeselectedItems:this.attendeesUndeselectedItems,enableSearch:true,zIndex:this.zIndex+10,events:{"Item:onSelect":this.handleUserSelectorChanges.bind(this),"Item:onDeselect":this.handleUserSelectorChanges.bind(this)},entities:this.getSelectorEntities(),searchTabOptions:{stubOptions:{title:D.Loc.getMessage("EC_USER_DIALOG_404_TITLE"),subtitle:D.Loc.getMessage("EC_USER_DIALOG_404_SUBTITLE"),icon:"/bitrix/images/calendar/search-email.svg",iconOpacity:100,arrow:true}}})}this.userSelectorDialog.show()};D.Event.bind(this.DOM.changeLink,"click",e)}}if(this.DOM.moreLink){D.Event.bind(this.DOM.moreLink,"click",this.showMoreAttendeesPopup.bind(this))}this.planner=new h.Planner({readonly:this.plannerReadOnly,solidStatus:this.plannerReadOnly,showWorkTimeNotice:true,wrap:this.DOM.plannerOuterWrap,minWidth:Tt.PLANNER_WIDTH,width:Tt.PLANNER_WIDTH,showEntryName:false,locked:!this.plannerFeatureEnabled});D.Event.bind(this.DOM.informWrap,"click",(()=>{this.setInformValue(!this.meetingNotifyValue);this.emit("onNotifyChange")}));this.DOM.attendeesLabel.innerHTML=D.Text.encode(D.Loc.getMessage("EC_ATTENDEES_LABEL_ONE"));this.planner.subscribe("onDateChange",(e=>{this.emit("onDateChange",e)}));this.planner.subscribe("onExpandTimeline",this.handleExpandPlannerTimeline.bind(this));if(this.DOM.hideGuestsWrap&&!this.isReadOnly()){D.Event.bind(this.DOM.hideGuestsWrap,"click",(()=>{this.setHideGuestsValue(!this.hideGuests)}))}}getSelectorEntities(){const e=[{id:"user",options:{inviteGuestLink:true,emailUsers:M.Util.isEventWithEmailGuestAllowed(),analyticsSource:"calendar",lockGuestLink:!M.Util.isEventWithEmailGuestAllowed(),lockGuestLinkFeatureId:"calendar_events_with_email_guests"}},{id:"department",options:{selectMode:"usersAndDepartments"}},{id:"meta-user",options:{"all-users":true}}];if(M.Util.isProjectFeatureEnabled()){e.push({id:"project"})}return e}setValue(e){var t,i;const{attendeesEntityList:s,attendees:a,location:n,notify:o,hideGuests:l,viewMode:r,entry:c}=e;this.attendeesEntityList=D.Type.isArray(s)?s:[];this.attendeesPreselectedItems=this.attendeesEntityList.map((e=>[e.entityId,e.id]));this.attendeesUndeselectedItems=e.attendeesUndeselectedItems||[];this.entry=c;this.entryId=this.entry.id;this.setEntityList(this.attendeesEntityList);this.setInformValue(o);this.setLocationValue(n);if(D.Type.isArray(a)){this.displayAttendees(a)}this.refreshPlannerStateDebounce();let h=this.getDateTime();if(h){this.planner.updateSelector(h.from,h.to,h.fullDay)}if(this.entryId&&this.entry&&this.entry.data.PARENT_ID&&(this.entry.data.EVENT_TYPE==="#shared#"||this.entry.data.EVENT_TYPE==="#shared_crm#")&&this.entry.getCurrentStatus()!==false){D.Dom.clean(this.DOM.videocallWrap);D.Dom.removeClass(this.DOM.videocallWrap,"calendar-videocall-hidden");this.conferenceButton=D.Tag.render(Dt||(Dt=ft` <div class="calendar-text-link --gray">${0}</div> `),D.Loc.getMessage("EC_CONFERENCE_START"));D.Event.bind(this.conferenceButton,"click",this.handleVideoconferenceButtonClick.bind(this));D.Dom.append(this.conferenceButton,this.DOM.videocallWrap)}else if((t=BX)!=null&&(i=t.Intranet)!=null&&i.ControlButton&&this.DOM.videocallWrap&&this.entryId&&this.entry.getCurrentStatus()!==false){D.Dom.clean(this.DOM.videocallWrap);D.Dom.removeClass(this.DOM.videocallWrap,"calendar-videocall-hidden");const e=M.Util.getCalendarContext().isCollabUser?["chat","videocall","task"]:["chat","videocall","blog_post","task"];this.intranetControllButton=new g.IntranetButton({intranetControlButtonParams:{items:e,container:this.DOM.videocallWrap,entityType:"calendar_event",entityId:this.entry.parentId,mainItem:"chat",entityData:{dateFrom:M.Util.formatDate(this.entry.from),parentId:this.entry.parentId},analytics:{startVideoCall:{tool:"im",category:"events",event:"click_call",type:"group",c_section:"card_compact",c_sub_section:"context_menu",p5:`eventId_${this.entry.parentId}`}}},callbacks:{getUsersCount:()=>this.getUsersCount(),hasChat:()=>{var e,t;return((e=this.entry.data)==null?void 0:(t=e.MEETING)==null?void 0:t.CHAT_ID)>0}}})}else if(this.DOM.videocallWrap){D.Dom.addClass(this.DOM.videocallWrap,"calendar-videocall-hidden")}this.setHideGuestsValue(l)}handleUserSelectorChanges(){this.showPlanner();const e=this.getDateTime();this.planner.updateSelector(e.from,e.to,e.fullDay);this.setEntityList(this.userSelectorDialog.getSelectedItems().map((e=>({entityId:e.entityId,id:e.id,entityType:e.entityType}))));this.refreshPlannerStateDebounce();this.emit("onUserCodesChange")}getEntityList(){return this.selectorEntityList}setEntityList(e){if(this.type==="user"&&this.userId!==this.ownerId){e.push({entityId:"user",id:this.ownerId})}this.selectorEntityList=e}isReadOnly(){return this.readOnlyMode}getUserSelector(){return BX.UI.SelectorManager.instances[this.selectorId]}showPlanner(){if(!this.isPlannerDisplayed()){D.Dom.addClass(this.DOM.outerWrap,"user-selector-edit-mode");this.planner.show();this.planner.showLoader();if(this.entry.isFullDay()){this.planner.updateSelector(this.planner.currentFromDate,this.planner.currentToDate,true)}this.planner.setEntriesCount(this.getUsersCount())}}checkBusyTime(){const e=this.getDateTime();const t=this.getEntityList();this.planner.updateScaleLimitsFromEntry(e.from,e.to);this.runPlannerDataRequest({entityList:t,timezone:e.timezoneFrom,location:this.getLocationValue(),entryId:this.entryId,parentId:this.entry.parentId}).then((t=>{for(let e in t.data.accessibility){if(t.data.accessibility.hasOwnProperty(e)){this.loadedAccessibilityData[e]=t.data.accessibility[e]}}if(D.Type.isArray(t.data.entries)){t.data.entries.forEach((e=>{const t=this.loadedAccessibilityData[e.id];if(e.type==="user"&&!this.prevUserList.includes(parseInt(e.id))&&t){this.prevUserList.push(parseInt(e.id))}}))}if(D.Type.isArray(t.data.accessibility[this.ownerId])){const i=this.getDateTime().from;const s=this.getDateTime().to;const a=this.preparedDataAccessibility(t.data.accessibility[this.ownerId]);if(!this.planner.currentFromDate){this.planner.currentFromDate=i}if(!this.planner.currentToDate){this.planner.currentToDate=s}const n=this.planner.checkTimePeriod(i,s,a);if(D.Type.isObject(n)&&D.Type.isArray(t.data.entries)){this.showPlanner();this.planner.update(t.data.entries,t.data.accessibility);this.planner.updateSelector(e.from,e.to,e.fullDay);this.planner.hideLoader();this.displayAttendees(this.prepareAttendeesForDisplay(t.data.entries))}}}))}prepareAttendeesForDisplay(e){return e.filter((e=>e.type==="user")).map((e=>({ID:e.id,AVATAR:e.avatar,DISPLAY_NAME:e.name,EMAIL_USER:e.emailUser,SHARING_USER:e.sharingUser,STATUS:(e.status||"").toUpperCase(),URL:e.url})))}refreshPlannerState(){if(this.planner&&this.planner.isShown()){let e=this.getDateTime();this.loadPlannerData({entityList:this.getEntityList(),timezone:e.timezoneFrom,location:this.getLocationValue(),entryId:this.entryId,parentId:this.entry.parentId,prevUserList:this.prevUserList})}}loadPlannerData(e={}){this.planner.showLoader();return new Promise((t=>{this.runPlannerDataRequest(e).then((e=>{for(let t in e.data.accessibility){if(e.data.accessibility.hasOwnProperty(t)){this.loadedAccessibilityData[t]=e.data.accessibility[t]}}if(D.Type.isArray(e.data.entries)){e.data.entries.forEach((e=>{const t=this.loadedAccessibilityData[e.id];if(e.type==="user"&&!this.prevUserList.includes(parseInt(e.id))&&t){this.prevUserList.push(parseInt(e.id))}}))}this.planner.hideLoader();this.planner.update(e.data.entries,this.loadedAccessibilityData);t(e)}),(e=>{t(e)}))}))}runPlannerDataRequest(e){return this.BX.ajax.runAction("calendar.api.calendarajax.updatePlanner",{data:{entryId:e.entryId||0,parentId:e.parentId||0,entryLocation:this.entry.data.LOCATION||"",ownerId:this.ownerId,hostId:this.entry.data.MEETING_HOST||null,type:this.type,entityList:e.entityList||[],dateFrom:M.Util.formatDate(this.planner.scaleDateFrom),dateTo:M.Util.formatDate(this.planner.scaleDateTo),timezone:e.timezone||"",location:e.location||"",entries:e.entrieIds||false,prevUserList:e.prevUserList||[],entry:this.entry}})}setDateTime(e,t=false){const i={...e};if(i.fullDay){i.from.setHours(0,0,0,0);const e=Math.ceil((i.to.getTime()-i.from.getTime()+1)/(1e3*3600*24));i.to=new Date(i.from.getTime()+(e-1)*24*3600*1e3);i.to.setHours(23,55,0,0)}this.dateTime=i;this.planner.currentFromDate=i.from;this.planner.currentToDate=i.to;if(this.planner&&t){this.planner.updateSelector(i.from,i.to,i.fullDay)}else if(this.planner){const e=parseInt(i.from.getHours(),10)+Math.floor(i.from.getMinutes()/60);const t=parseInt(i.to.getHours(),10)+Math.floor(i.to.getMinutes()/60);if(e!==0&&e<=this.planner.shownScaleTimeFrom||t!==0&&t!==23&&t+1>=this.planner.shownScaleTimeTo){this.planner.updateSelector(i.from,i.to,i.fullDay)}}}getDateTime(){return this.dateTime}setLocationValue(e){this.location=e}getLocationValue(){return this.location}displayAttendees(e=[]){D.Dom.clean(this.DOM.attendeesList);this.attendeeList=g.AttendeesList.sortAttendees(e);const t=this.getUsersCount();this.emit("onDisplayAttendees",new p.BaseEvent({data:{usersCount:t}}));const i=Math.min(this.attendeeList.accepted.length,Tt.MAX_USER_COUNT_DISPLAY);if(i>0){for(let e=0;e<i;e++){this.attendeeList.accepted[e].shown=true;this.DOM.attendeesList.appendChild(Tt.getUserAvatarNode(this.attendeeList.accepted[e]))}}this.DOM.attendeesLabel.innerHTML=D.Text.encode(D.Loc.getMessage("EC_ATTENDEES_LABEL_ONE"));if(e.length>1){this.DOM.moreLink.innerHTML=D.Text.encode(D.Loc.getMessage("EC_ATTENDEES_ALL_COUNT").replace("#COUNT#",e.length));D.Dom.show(this.DOM.moreLink)}else{D.Dom.hide(this.DOM.moreLink)}if(this.hasExternalEmailUsers(e)&&this.isPlannerDisplayed()&&!this.isReadOnly()){this.showHideGuestsOption()}else{this.hideHideGuestsOption()}}getUsersCount(){return this.attendeeList.accepted.length+this.attendeeList.requested.length}static getUserAvatarNode(e){let t;let i=e.AVATAR||e.SMALL_AVATAR;if(e.COLLAB_USER){t=new u.AvatarRoundGuest({size:22,userName:e.DISPLAY_NAME,userpicPath:e.AVATAR&&e.AVATAR!=="/bitrix/images/1.gif"?e.AVATAR:null,baseColor:"#19cc45"}).getContainer()}else if(!i||i==="/bitrix/images/1.gif"){let i="ui-icon-common-user";if(e.EMAIL_USER){i="ui-icon-common-user-mail"}if(e.SHARING_USER){i+=" ui-icon-common-user-sharing"}t=D.Tag.render(Mt||(Mt=ft`<div title="${0}" class="ui-icon ${0}"><i></i></div>`),D.Text.encode(e.DISPLAY_NAME),i)}else{t=D.Tag.render(Ct||(Ct=ft` <img title="${0}" class="calendar-member" id="simple_popup_${0}" src="${0}" > `),D.Text.encode(e.DISPLAY_NAME),parseInt(e.ID,10),encodeURI(i))}return t}showMoreAttendeesPopup(){new g.AttendeesList(this.DOM.moreLink,this.attendeeList).showPopup()}setInformValue(e){if(D.Type.isBoolean(e)){const t="calendar-field-container-inform-off";this.meetingNotifyValue=e;if(this.meetingNotifyValue){D.Dom.removeClass(this.DOM.informWrap,t);this.DOM.informWrap.title=D.Loc.getMessage("EC_NOTIFY_OPTION_ON_TITLE");this.DOM.informWrapText.innerHTML=D.Loc.getMessage("EC_NOTIFY_OPTION")}else{D.Dom.addClass(this.DOM.informWrap,t);this.DOM.informWrap.title=D.Loc.getMessage("EC_NOTIFY_OPTION_OFF_TITLE");this.DOM.informWrapText.innerHTML=D.Loc.getMessage("EC_DONT_NOTIFY_OPTION")}}}getInformValue(e){return this.meetingNotifyValue}setViewMode(e){this.readOnlyMode=e;if(this.readOnlyMode){D.Dom.addClass(this.DOM.outerWrap,"calendar-userselector-readonly")}else{D.Dom.removeClass(this.DOM.outerWrap,"calendar-userselector-readonly")}}isPlannerDisplayed(){return this.planner.isShown()}hasExternalEmailUsers(e=[]){return Boolean(e.some((e=>e.EMAIL_USER)))||Boolean(this.getEntityList().some((e=>e.entityType==="email")))}destroy(){if(this.userSelectorDialog&&this.userSelectorDialog.destroy){this.userSelectorDialog.destroy();this.userSelectorDialog=null}if(this.intranetControllButton&&this.intranetControllButton.destroy){this.intranetControllButton.destroy();this.intranetControllButton=null}}showHideGuestsOption(){this.DOM.hideGuestsWrap.style.display="";M.Util.initHintNode(this.DOM.hideGuestsWrap.querySelector(".calendar-hide-members-helper"))}hideHideGuestsOption(){this.DOM.hideGuestsWrap.style.display="none"}setHideGuestsValue(e=true){this.hideGuests=e;if(D.Type.isElementNode(this.DOM.hideGuestsIcon)){this.DOM.hideGuestsIcon.className=this.hideGuests?"calendar-hide-members-icon-hidden":"calendar-hide-members-icon-visible"}const t=this.DOM.hideGuestsWrap.querySelector(".calendar-hide-members-text");if(D.Type.isElementNode(t)){t.innerHTML=this.hideGuests?D.Loc.getMessage("EC_HIDE_GUEST_NAMES"):D.Loc.getMessage("EC_SHOW_GUEST_NAMES")}}preparedDataAccessibility(e){return e.map((e=>h.Planner.prepareAccessibilityItem(e)))}clearAccessibilityData(e){if(D.Type.isArray(e)&&e.length&&this.prevUserList.length){this.prevUserList=this.prevUserList.filter((t=>!e.includes(t)))}}handleExpandPlannerTimeline(e){if(e&&e.getData){let t=e.getData();if(t.reload){const e=this.getDateTime();this.loadPlannerData({entityList:this.getEntityList(),timezone:e.timezoneFrom,location:this.getLocationValue(),entryId:this.entryId,focusSelector:false})}}}handleVideoconferenceButtonClick(){this.getConferenceChatId()}getConferenceChatId(){return this.BX.ajax.runAction("calendar.api.calendarajax.getConferenceChatId",{data:{eventId:this.entry.data.PARENT_ID},analytics:{tool:"im",category:"events",event:"click_call",type:"videoconf",c_section:"card_compact",c_sub_section:"card",p5:`eventId_${this.entry.data.PARENT_ID}`}}).then((e=>{if(top.window.BXIM&&e.data&&e.data.chatId){top.BXIM.openMessenger(`chat${parseInt(e.data.chatId,10)}`);return null}alert(D.Loc.getMessage("EC_CONFERENCE_ERROR"));return null}),(e=>{alert(D.Loc.getMessage("EC_CONFERENCE_ERROR"));return null}))}setEditableSharingEventMode(){D.Dom.style(this.DOM.changeLink,"display","inline-block");const e=()=>{if(D.Type.isFunction(this.openEditFormCallback())){this.openEditFormCallback()}};D.Event.bind(this.DOM.changeLink,"click",e);if(this.attendeesPreselectedItems.length<=2){this.showCanEditAttendeesPopup()}}setCanEditAttendeesMode(){this.showCanEditAttendeesPopup()}showCanEditAttendeesPopup(){if(Tt.canEditAttendeesPopupShown){return}Tt.canEditAttendeesPopupShown=true;const e=new BX.PopupWindow(`ui-hint-popup-${Date.now()}`,this.DOM.changeLink,{darkMode:true,content:D.Loc.getMessage("EC_EDIT_SHARING_EVENTS_FEATURE_POPUP_CONTENT"),angle:{position:"top",offset:50},autoHide:true,animation:{showClassName:"calendar-edit-sharing-events-feature-popup-animation-open",closeClassName:"calendar-edit-sharing-events-feature-popup-animation-close",closeAnimationType:"animation"}});setTimeout((()=>e.show()),500);setTimeout((()=>e.close()),5e3);const t=()=>{e.close();p.EventEmitter.unsubscribe("BX.Calendar.EntityRelation.onMouseEnter",t.bind(this))};p.EventEmitter.subscribe("BX.Calendar.EntityRelation.onMouseEnter",t.bind(this))}}Tt.VIEW_MODE="view";Tt.EDIT_MODE="edit";Tt.MAX_USER_COUNT_DISPLAY=8;Tt.PLANNER_WIDTH=550;Tt.canEditAttendeesPopupShown=false;class vt extends p.EventEmitter{constructor(){super();this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ReinviteUserDialog");this.zIndex=3200;this.id="reinvite-dialog-"+Math.round(Math.random()*1e4)}show(){const e=D.Dom.create("DIV");this.close();this.dialog=new C.Popup(this.id,null,{overlay:{opacity:10},autoHide:true,closeByEsc:true,zIndex:this.zIndex,offsetLeft:0,offsetTop:0,draggable:true,bindOnResize:false,titleBar:D.Loc.getMessage("EC_REINVITE_TITLE"),closeIcon:{right:"12px",top:"10px"},className:"reinvite-popup-window",content:e,events:{},cacheable:false});new BX.UI.Button({text:D.Loc.getMessage("EC_REINVITE_YES"),className:"ui-btn ui-btn-primary",events:{click:()=>{this.emit("onSelect",new p.BaseEvent({data:{sendInvitesAgain:true}}));this.close()}}}).renderTo(e);new BX.UI.Button({text:D.Loc.getMessage("EC_REINVITE_NO"),className:"ui-btn ui-btn-light-border",events:{click:()=>{this.emit("onSelect",new p.BaseEvent({data:{sendInvitesAgain:false}}));this.close()}}}).renderTo(e);this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}}let Et=e=>e,bt;class yt extends p.EventEmitter{constructor(e){super();this.DOM={};this.CONFIRM_POPUP_ID="add_from_email";this.setEventNamespace("BX.Calendar.Controls.EmailSelectorControl");this.DOM.select=e.selectNode;this.mailboxList=D.Type.isArray(e.mailboxList)?e.mailboxList:[];this.DOM.componentWrap=this.DOM.select.parentNode.appendChild(D.Tag.render(bt||(bt=Et`<div style="display: none;"></div>`)));this.allowAddNewEmail=e.allowAddNewEmail;this.checkValueDebounce=D.Runtime.debounce(this.checkValue,50,this);this.create()}create(){this.setSelectValues();D.Event.bind(this.DOM.select,"change",this.checkValueDebounce);D.Event.bind(this.DOM.select,"click",this.checkValueDebounce)}checkValue(){if(this.DOM.select.value==="add"){this.showAdd();this.setValue("")}}getValue(){return this.DOM.select.value}setValue(e){if(this.mailboxList.length&&this.mailboxList.find((t=>t.email===e))){this.DOM.select.value=e}else{this.DOM.select.value=""}this.emit("onSetValue",{value:this.DOM.select.value})}setSelectValues(){D.Dom.clean(this.DOM.select);this.DOM.select.options.add(new Option(D.Loc.getMessage("EC_NO_VALUE"),""));if(this.mailboxList.length){this.mailboxList.forEach((e=>{this.DOM.select.options.add(new Option(e.formatted,e.email))}),this)}if(this.allowAddNewEmail){this.DOM.select.options.add(new Option(D.Loc.getMessage("EC_ADD_NEW"),"add"))}}onClick(e){this.input.value=e.sender;this.mailbox.textContent=e.sender}showAdd(){if(window.BXMainMailConfirm){window.BXMainMailConfirm.showForm(this.onAdd.bind(this))}const e=C.PopupManager.getPopupById(this.CONFIRM_POPUP_ID);if(e){e.subscribe("onClose",(()=>{this.reloadMailboxList()}))}}onAdd(e){this.reloadMailboxList().then((()=>{setTimeout((()=>{this.setValue(e.email)}),0)}))}getMenuItem(e){return{id:e.id,text:BX.util.htmlspecialchars(e.sender),onclick:this.onClick.bind(this,e)}}loadMailboxData(){return new Promise((e=>{BX.ajax.runAction("calendar.api.calendarajax.getAllowedMailboxData").then((t=>{BX.html(this.DOM.componentWrap,t.data.html);this.mailboxList=t.data.additionalParams.mailboxList;this.checkBXMainMailConfirmLoaded(e)}))}))}checkBXMainMailConfirmLoaded(e){if(window.BXMainMailConfirm){this.setSelectValues();e()}else{setTimeout((()=>{this.checkBXMainMailConfirmLoaded(e)}),200)}}reloadMailboxList(){return new Promise((e=>{BX.ajax.runAction("calendar.api.calendarajax.getAllowedMailboxList").then((t=>{this.mailboxList=t.data.mailboxList;this.setSelectValues();e()}))}))}}let Ot=e=>e,Lt;class It extends p.EventEmitter{constructor(){super();this.Z_INDEX=3200;this.SLIDER_Z_INDEX=4400;this.WIDTH=400;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ConfirmedEmailDialog");this.id="confirm-email-dialog-"+Math.round(Math.random()*1e4)}show(){this.DOM.content=D.Tag.render(Lt||(Lt=Ot`<div> <div class="calendar-confirm-email-text">${0}</div> <div class="calendar-confirm-email-text"><a class="calendar-confirm-email-help-link" href="javascript:void(0);">${0}</a></div> <div class="calendar-field-block"> <select class="calendar-field calendar-field-select ui-btn ui-btn ui-btn-light-border ui-btn-clock"></select> </div> </div>`),D.Loc.getMessage("EC_CONFIRMED_EMAIL_TEXT_1"),D.Loc.getMessage("EC_CONFIRMED_EMAIL_HELP_LINK"));this.dialog=new C.Popup(this.id,null,{overlay:{opacity:10},autoHide:true,width:this.WIDTH,closeByEsc:true,zIndex:this.Z_INDEX,offsetLeft:0,offsetTop:0,draggable:true,bindOnResize:false,titleBar:D.Loc.getMessage("EC_CONFIRMED_EMAIL_TITLE"),closeIcon:{right:"12px",top:"10px"},className:"confirmemail-popup-window",content:this.DOM.content,events:{},cacheable:false,buttons:[new BX.UI.Button({text:D.Loc.getMessage("EC_CONFIRMED_EMAIL_SEND"),className:`ui-btn ui-btn-primary ${BX.UI.Button.State.DISABLED}`,events:{click:()=>{if(this.DOM.select.value&&this.DOM.select.value!=="add"){const e=M.Util.getUserSettings();e.sendFromEmail=this.emailSelectorControl.getValue();M.Util.setUserSettings(e);BX.userOptions.save("calendar","user_settings","sendFromEmail",e.sendFromEmail);this.emit("onSelect",new p.BaseEvent({data:{sendFromEmail:e.sendFromEmail}}));this.close()}}}}),new BX.UI.Button({text:D.Loc.getMessage("EC_SEC_SLIDER_CANCEL"),className:"ui-btn ui-btn-light-border",events:{click:this.close.bind(this)}})]});this.DOM.processButton=this.dialog.buttons[0].button;this.DOM.select=this.DOM.content.querySelector("select.calendar-field-select");D.Dom.addClass(this.DOM.select,BX.UI.Button.State.CLOCKING);this.DOM.select.disabled=true;this.emailSelectorControl=new g.EmailSelectorControl({selectNode:this.DOM.select,allowAddNewEmail:true});D.Event.bind(this.DOM.select,"change",this.handleSelectChanges.bind(this));this.emailSelectorControl.subscribe("onSetValue",this.handleSelectChanges.bind(this));this.emailSelectorControl.loadMailboxData().then((()=>{this.emailSelectorControl.setValue(M.Util.getUserSettings().sendFromEmail);this.DOM.select.disabled=false;this.DOM.select.className="calendar-field calendar-field-select"}));this.DOM.helpLinlk=this.DOM.content.querySelector(".calendar-confirm-email-help-link");D.Event.bind(this.DOM.helpLinlk,"click",this.openHelpSlider.bind(this));this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}handleSelectChanges(){if(this.DOM.select.value&&this.DOM.select.value!=="add"){D.Dom.removeClass(this.DOM.processButton,BX.UI.Button.State.DISABLED)}else{D.Dom.addClass(this.DOM.processButton,BX.UI.Button.State.DISABLED)}}openHelpSlider(){if(BX.Helper){BX.Helper.show("redirect=detail&code=12070142",{zIndex:this.SLIDER_Z_INDEX})}}}let wt=e=>e,_t;class Nt extends p.EventEmitter{constructor(){super();this.Z_INDEX=3200;this.WIDTH=480;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.EmailLimitationDialog");this.id=`email-limitation-dialog-${Math.round(Math.random()*1e4)}`}show(){this.DOM.content=D.Tag.render(_t||(_t=wt` <div> <div class="calendar-email-limit-text">${0}</div> <div class="calendar-email-limit-subtext">${0}</div> </div> `),D.Loc.getMessage("EC_EMAIL_LIMIT_DENY"),D.Loc.getMessage("EC_EMAIL_LIMIT_SUBTEXT"));this.dialog=this.getDialogPopup();this.dialog.show()}getDialogPopup(){return new C.Popup(this.id,null,{overlay:{opacity:10},autoHide:true,width:this.WIDTH,closeByEsc:true,zIndex:this.Z_INDEX,offsetLeft:0,offsetTop:0,draggable:true,bindOnResize:false,titleBar:D.Loc.getMessage("EC_EMAIL_LIMIT_TITLE"),closeIcon:{right:"12px",top:"10px"},className:"email-limit-popup",content:this.DOM.content,events:{},cacheable:false,buttons:[new BX.UI.Button({text:D.Loc.getMessage("EC_EMAIL_LIMIT_EXPAND_PLAN"),className:"ui-btn ui-btn-primary ui-btn-icon-plan",events:{click:()=>{m.FeaturePromotersRegistry.getPromoter({featureId:"calendar_events_with_email_guests"}).show();this.close()}}}),new BX.UI.Button({text:D.Loc.getMessage("EC_EMAIL_LIMIT_SAVE_WITHOUT"),className:"ui-btn ui-btn-link",events:{click:()=>{this.saveWithoutAttendees();this.close()}}})]})}close(){if(this.dialog){this.dialog.close()}}saveWithoutAttendees(){this.emit("onSaveWithoutAttendees")}}class Bt{constructor(e,t={}){this.attendeesList=t;this.node=e}setAttendeesList(e){this.attendeesList=e;return this}showPopup(){if(this.popup){this.popup.destroy()}const e=this.getMenuItems();this.popup=this.getPopup(e);this.popup.show();this.addAvatarToMenuItems()}addAvatarToMenuItems(){this.popup.menuItems.forEach((e=>{const t=e.layout.item.querySelector(".menu-popup-item-icon");if(D.Type.isPlainObject(e.dataset)){D.Dom.append(g.UserPlannerSelector.getUserAvatarNode(e.dataset.user),t)}}))}getPopup(e){return C.MenuManager.create(`compact-event-form-attendees${Math.round(Math.random()*1e5)}`,this.node,e,{closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:15,angle:true,cacheable:false,className:"calendar-popup-user-menu"})}getMenuItems(){const e=[];[{code:"accepted",title:D.Loc.getMessage("EC_ATTENDEES_Y_NUM")},{code:"requested",title:D.Loc.getMessage("EC_ATTENDEES_Q_NUM")},{code:"declined",title:D.Loc.getMessage("EC_ATTENDEES_N_NUM")}].forEach((t=>{const i=this.attendeesList[t.code];if(i.length>0){e.push(new C.MenuItem({text:t.title.replace("#COUNT#",i.length),delimiter:true}));i.forEach((t=>{t.toString=()=>t.ID;e.push({text:BX.util.htmlspecialchars(t.DISPLAY_NAME),dataset:{user:t},className:`calendar-add-popup-user-menu-item ${t.COLLAB_USER?"calendar-collab-user":""}`,onclick:()=>BX.SidePanel.Instance.open(t.URL,{loader:"intranet:profile",cacheable:false,allowChangeHistory:true,contentClassName:"bitrix24-profile-slider-content",width:1100})})}))}}));return e}static sortAttendees(e){return{accepted:e.filter((e=>["H","Y"].includes(e.STATUS))),requested:e.filter((e=>e.STATUS==="Q"||e.STATUS==="")),declined:e.filter((e=>e.STATUS==="N"))}}}class St{constructor(e={}){this.intranetControllButton=new f.ControlButton(e.intranetControlButtonParams);this.hasChat=e.callbacks.hasChat;this.getUsersCount=e.callbacks.getUsersCount;if(D.Type.isElementNode(this.intranetControllButton.button)){this.openChat=this.intranetControllButton.openChat.bind(this.intranetControllButton);this.intranetControllButton.openChat=this.openChatWithConfirm.bind(this);this.startVideoCall=this.intranetControllButton.startVideoCall.bind(this.intranetControllButton);this.intranetControllButton.startVideoCall=this.startVideoCallWithConfirm.bind(this);const t=this.intranetControllButton.button.querySelector("button.ui-btn-main");if(e.intranetControlButtonParams.mainItem==="chat"){this.setClickListener(t,this.openChatWithConfirm.bind(this))}else{this.setClickListener(t,this.startVideoCallFromButton.bind(this))}this.intranetControllButton.button.setAttribute("data-role","videocallButton")}}openChatWithConfirm(){if(this.shouldNotConfirmOpenChat()){this.openChat();return}M.Util.showConfirmPopup(this.openChat,D.Loc.getMessage("EC_CREATE_CHAT_CONFIRM_QUESTION"),{okCaption:D.Loc.getMessage("EC_CREATE_CHAT_OK"),minWidth:350,maxWidth:350})}startVideoCallWithConfirm(e="context_menu"){if(this.shouldNotConfirmOpenChat()){this.startVideoCall(e);return}M.Util.showConfirmPopup(this.startVideoCall,D.Loc.getMessage("EC_START_VIDEOCONFERENCE_CONFIRM_QUESTION"),{okCaption:D.Loc.getMessage("EC_START_VIDEOCONFERENCE_OK"),minWidth:350,maxWidth:350})}startVideoCallFromButton(){this.startVideoCallWithConfirm("card")}shouldNotConfirmOpenChat(){return this.hasChat()||this.getUsersCount()<10}setClickListener(e,t){const i=e.cloneNode(true);D.Event.bind(i,"click",t);e.parentNode.replaceChild(i,e)}destroy(){if(this.intranetControllButton&&this.intranetControllButton.destroy){this.intranetControllButton.destroy();this.intranetControllButton=null}}}var Pt=babelHelpers.classPrivateFieldLooseKey("accessibilityMenu");var At=babelHelpers.classPrivateFieldLooseKey("showMenu");var kt=babelHelpers.classPrivateFieldLooseKey("getMenuItems");var xt=babelHelpers.classPrivateFieldLooseKey("selectItem");class Rt{constructor(e){Object.defineProperty(this,kt,{value:Ut});Object.defineProperty(this,Pt,{writable:true,value:void 0});Object.defineProperty(this,At,{writable:true,value:()=>{var e,t;(t=(e=babelHelpers.classPrivateFieldLooseBase(this,Pt))[Pt])!=null?t:e[Pt]=new C.Menu({id:`${this.uid}-calendar-accessibility-menu`,bindElement:this.input,closeByEsc:true,items:babelHelpers.classPrivateFieldLooseBase(this,kt)[kt]()});babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt].show()}});Object.defineProperty(this,xt,{writable:true,value:e=>{babelHelpers.classPrivateFieldLooseBase(this,Pt)[Pt].close();this.input.value=this.getItemName(e);this.input.dataset.value=e}});this.uid=e.uid;this.readonly=e.readonly;this.input=e.input;if(!this.readonly){D.Event.bind(this.input,"click",babelHelpers.classPrivateFieldLooseBase(this,At)[At])}}getItemName(e){switch(e){case"busy":{return D.Loc.getMessage("EC_CONTROL_ACC_B")}case"quest":{return D.Loc.getMessage("EC_CONTROL_ACC_Q")}case"free":{return D.Loc.getMessage("EC_CONTROL_ACC_F")}case"absent":{return D.Loc.getMessage("EC_CONTROL_ACC_A")}default:{return""}}}setValue(e){this.input.value=this.getItemName(e);this.input.dataset.value=e}}function Ut(){const e=[];const t=["busy","quest","free"];if(M.Util.getAbsenceAvailable()){t.push("absent")}for(const i of t){e.push(new C.MenuItem({text:this.getItemName(i),onclick:()=>babelHelpers.classPrivateFieldLooseBase(this,xt)[xt](i)}))}return e}e.Reminder=N;e.Location=V;e.UserSelector=H;e.ColorSelector=j;e.SectionSelector=oe;e.RepeatSelector=De;e.TimeSelector=T;e.SelectInput=be;e.PopupDialog=Oe;e.ViewSelector=Se;e.LineViewSelector=Pe;e.AddButton=Ae;e.MeetingStatusControl=ke;e.ConfirmStatusDialog=Ue;e.ConfirmEditDialog=We;e.ConfirmDeleteDialog=Xe;e.DateTimeControl=mt;e.BusyUsersDialog=gt;e.UserPlannerSelector=Tt;e.ReinviteUserDialog=vt;e.EmailSelectorControl=yt;e.ConfirmedEmailDialog=It;e.EmailLimitationDialog=Nt;e.AttendeesList=Bt;e.IntranetButton=St;e.AccessibilitySelector=Rt})(this.BX.Calendar.Controls=this.BX.Calendar.Controls||{},BX.Calendar,BX.Calendar,BX,BX,BX.UI,BX.Calendar,BX.UI.DatePicker,BX.UI.Dialogs,BX.UI,BX.Calendar,BX.UI.EntitySelector,BX.UI,BX.Event,BX.UI,BX.Calendar.Controls,BX.Intranet,BX,BX.Calendar,BX.Main); //# sourceMappingURL=controls.bundle.map.js