File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/calendar/install/js/calendar/controls/dist/controls.bundle.min.js
Back
this.BX=this.BX||{};this.BX.Calendar=this.BX.Calendar||{};(function(e,t,i,s,a,n,o,l,r,d,h,c,u){"use strict";class p{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:d.Util.formatTime(e,0)});this.valueList.push({value:e*60+30,label:d.Util.formatTime(e,30)})}this.onChangeCallback=h.Type.isFunction(e.onChangeCallback)?e.onChangeCallback:null;this.selectContol=new BX.Calendar.Controls.SelectInput({input:this.DOM.input,zIndex:this.Z_INDEX,values:this.valueList,onChangeCallback:e=>{if(this.onChangeCallback){this.onChangeCallback(this.selectContol.getInputValue(),e.dataValue)}}})}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=d.Util.parseTime(e);const n=d.Util.parseTime(t);const o=d.Util.parseDate(i);const l=d.Util.parseDate(s);const r=a.h*60+a.m;const h=n.h*60+n.m;const c=i===s;const u=c?this.approximate(r+15,15):0;const p=this.approximate(r+60+15/2,30);this.valueList=[];if(i===s){this.valueList.push(this.getValueElement(r,r,h,o,l))}for(let e=u;e<=24*60;e+=c&&e<p?15:30){this.valueList.push(this.getValueElement(r,e,h,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=d.Util.formatTime(n,o);const r=this.getStyledDurationHint(e,t,s,a);const h=t===i;return{value:t,label:l,hint:r,selected:h}}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 d=this.approximate(o/(1e3*60),1);const c=this.approximate(d,15);if(l>=1){return""}if(d>=60){const e=d!==c?"~":"";return`${e}${this.formatDecimal(r)} ${h.Loc.getMessage("EC_HOUR_SHORT")}`}return`${this.formatDecimal(d)} ${h.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 m=e=>e,f,D,g,M,C,E,T,v;class y extends r.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(h.Type.isElementNode(e.wrap)){this.DOM.wrap=e.wrap}if(!h.Type.isElementNode(this.DOM.wrap)){return}h.Dom.addClass(this.DOM.wrap,"calendar-notification-values");if(!this.viewMode){this.DOM.addButton=this.DOM.wrap.appendChild(h.Tag.render(f||(f=m` <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>`),h.Loc.getMessage("EC_REMIND1_ADD")))}}bindEventHandlers(){if(h.Type.isDomNode(this.DOM.addButton)){h.Event.bind(this.DOM.addButton,"click",this.showPopup.bind(this))}if(h.Type.isDomNode(this.DOM.wrap)){h.Event.bind(this.DOM.wrap,"click",this.handleClick.bind(this))}}getValues(){let e=[];if(!this.fullDayMode){e=e.concat([{value:0,label:h.Loc.getMessage("EC_REMIND1_0"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_0")},{value:5,label:h.Loc.getMessage("EC_REMIND1_5"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_5")},{value:10,label:h.Loc.getMessage("EC_REMIND1_10"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_10")},{value:15,label:h.Loc.getMessage("EC_REMIND1_15"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_15")},{value:20,label:h.Loc.getMessage("EC_REMIND1_20"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_20")},{value:30,label:h.Loc.getMessage("EC_REMIND1_30"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_30")},{value:60,label:h.Loc.getMessage("EC_REMIND1_60"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_60")},{value:120,label:h.Loc.getMessage("EC_REMIND1_120"),shortLabel:h.Loc.getMessage("EC_REMIND1_SHORT_120")}])}if(this.extendedMode){e=e.concat([{id:"time-menu-day-0",label:h.Loc.getMessage("EC_REMIND1_DAY_0"),dataset:{mode:"time-menu",daysBefore:0,time:this.defaultReminderTime}},{id:"time-menu-day-1",label:h.Loc.getMessage("EC_REMIND1_DAY_1"),dataset:{mode:"time-menu",daysBefore:1,time:this.defaultReminderTime}},{id:"time-menu-day-2",label:h.Loc.getMessage("EC_REMIND1_DAY_2"),dataset:{mode:"time-menu",daysBefore:2,time:this.defaultReminderTime}},{id:"custom",label:h.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(h.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"||!BX.util.in_array(s.value,this.selectedValues)){let a={};if(s.dataset&&s.dataset.mode==="time-menu"){a.id=s.id;let i=d.Util.getTimeByInt(this.defaultReminderTime);a.text=s.label.replace("#TIME#",d.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(h.Type.isFunction(e.addValueCallback)){e.addValueCallback()}}}()}else if(s.dataset&&s.dataset.mode==="custom"){a.id="custom";a.text=s.label;a.items=[{id:"tmp",text:"tmp"}]}else{a.text=s.label;a.onclick=function(i,s){return()=>{t.addValue(i);t.reminderMenu.close();if(h.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);r.EventEmitter.subscribe("BX.Main.Popup:onShow",s);r.EventEmitter.subscribe("BX.Main.Popup:onClose",a);this.reminderMenu.popupWindow.subscribe("onClose",(()=>{r.EventEmitter.unsubscribe("BX.Main.Popup:onShow",s);r.EventEmitter.unsubscribe("BX.Main.Popup:onClose",a)}));this.reminderMenu.show()}getSubmenuTimeValues(e,t,i){let s=[];y.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=d.Util.getTimeByInt(a.dataset.value);let o=this.reminderMenu.getMenuItem(e.id);if(o){o.setText(t.replace("#TIME#",d.Util.formatTime(n.hour,n.min)))}this.addValue({time:a.dataset.value,before:a.dataset.daysBefore});BX.defer((function(){this.reminderMenu.close()}),this)();if(h.Type.isFunction(i.addValueCallback)){i.addValueCallback()}}.bind(this)})}),this);return s}addValue(e,t=true,i=true){let s;const a=y.formatValue(e);if(h.Type.isPlainObject(e)&&e.count){e=parseInt(a)}if(h.Type.isPlainObject(e)&&!this.selectedValues.includes(a)){if(h.Type.isInteger(parseInt(e.before))&&h.Type.isInteger(parseInt(e.time))){s=this.DOM.wrap.appendChild(h.Tag.render(D||(D=m` <span class="calendar-reminder-item"> <span class="calendar-reminder-item-title"> ${0} </span> </span>`),y.getReminderLabel(e)));if(!this.viewMode){s.appendChild(h.Tag.render(g||(g=m`<span class="calendar-reminder-clear-icon" data-bxc-value="${0}"/>`),a))}}else if(e.type==="date"&&h.Type.isDate(e.value)){s=this.DOM.wrap.appendChild(h.Tag.render(M||(M=m`<span class="calendar-reminder-item"> <span class="calendar-reminder-item-title"> ${0} </span> </span>`),d.Util.formatDateUsable(e.value)+" "+d.Util.formatTime(e.value)));if(!this.viewMode){s.appendChild(h.Tag.render(C||(C=m`<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(h.Tag.render(E||(E=m` <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(h.Tag.render(T||(T=m`<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(h.Dom.create("SPAN",{props:{className:"calendar-reminder-item"},text:y.getText(e)}));if(!this.viewMode){s.appendChild(h.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 r.BaseEvent({data:{values:this.selectedValues}}))}this.changedByUser=t&&i;if(h.Type.isElementNode(this.DOM.addButton)){this.DOM.wrap.appendChild(this.DOM.addButton)}}removeValue(e,t=true){if(this.controlList[e]&&h.Type.isDomNode(this.controlList[e])){h.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 r.BaseEvent({data:{values:this.selectedValues}}));this.changedByUser=true}}static getTimeValueList(e=30){if(!y.timeValueList){y.timeValueList=[];let t;for(t=0;t<24;t++){y.timeValueList.push({value:t*60,label:d.Util.formatTime(t,0)});if(e<=30){y.timeValueList.push({value:t*60+30,label:d.Util.formatTime(t,30)})}}}return y.timeValueList}handleClick(e){let t=e.target||e.srcElement;let i=t.getAttribute("data-bxc-value");if(!h.Type.isNull(i)&&this.selectedValues.includes(i)){this.removeValue(i)}if(h.Dom.hasClass(t,"calendar-reminder-item-title")){this.showPopup({bindTarget:t,addValueCallback:()=>{const e=t.parentNode.querySelector(".calendar-reminder-clear-icon");if(h.Type.isElementNode(e)&&!h.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(h.Type.isInteger(e.before)&&h.Type.isInteger(e.time)&&[0,1,2].includes(e.before)){let i=d.Util.getTimeByInt(e.time);t=h.Loc.getMessage("EC_REMIND1_DAY_"+e.before+"_SHORT").replace("#TIME#",d.Util.formatTime(i.hour,i.min))}return t}adjustSubmenuPopup(e){if(e instanceof r.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$/.test(t.getId())){this.adjustCalendarSubmenuPopup(t)}}}}closeSubmenuPopup(e){if(e instanceof r.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$/.test(t.getId())){let e=t.bindElement;let i=e.querySelector(".menu-popup-item-text");if(h.Type.isDomNode(i)){h.Dom.clean(i);i.innerHTML=h.Loc.getMessage("EC_REMIND1_CUSTOM")}}}}}adjustTimeSubmenuPopup(e){let t=e.getContentContainer().querySelector('span[data-value="'+this.defaultReminderTime+'"]');if(h.Type.isDomNode(t)){setTimeout((()=>{e.getContentContainer().scrollTop=parseInt(t.offsetTop)-10;h.Dom.addClass(t,"menu-popup-item-open")}),50)}}adjustCalendarSubmenuPopup(e){let t=e.bindElement;let i=t.querySelector(".menu-popup-item-text");if(h.Type.isDomNode(i)){h.Dom.clean(i);const t=i.appendChild(h.Tag.render(v||(v=m`<input id="inp-${0}" type="text" class="calendar-field calendar-field-datetime" value="" autocomplete="off" placeholder="${0}"/>`),Math.round(Math.random()*1e5),h.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:d.Util.formatDateTime(d.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(h.Type.isDomNode(t)){e.contentContainer.appendChild(t)}a.close();c.MenuManager.destroy(a.uniquePopupId)}h.Event.bind(t,"change",(()=>{let e=t.value,i=d.Util.parseDate(e);if(h.Type.isDate(i)){this.addValue({type:"date",value:i});this.reminderMenu.close()}}))}}setViewMode(e){this.viewMode=e;if(this.viewMode){h.Dom.addClass(this.DOM.wrap,"calendar-reminder-readonly");if(h.Type.isElementNode(this.DOM.addButton)){this.DOM.addButton.style.display="none"}}else{h.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=h.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(h.Type.isPlainObject(e)&&h.Type.isInteger(parseInt(e.before))&&h.Type.isInteger(parseInt(e.time))){return"daybefore|"+e.before+"|"+e.time}else if(h.Type.isPlainObject(e)&&h.Type.isDate(e.value)){return"date|"+d.Util.formatDateTime(e.value)}else if(h.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()}}y.timeValueList=null;let O=e=>e,I,b,L,w,_,N,B;class S{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.disabled=!e.richLocationEnabled;this.value={type:"",text:"",value:""};this.inlineEditModeEnabled=e.inlineEditModeEnabled;this.meetingRooms=e.iblockMeetingRoomList||[];S.setMeetingRoomList(e.iblockMeetingRoomList);S.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),70)}create(){this.DOM.wrapNode.style.display="flex";this.DOM.inputWrap=this.DOM.wrapNode.appendChild(h.Tag.render(I||(I=O` <div class="calendar-field-block"></div> `)));this.DOM.alertIconLocation=h.Tag.render(b||(b=O` <div class="ui-alert-icon-danger calendar-location-alert-icon" data-hint-no-icon="Y" data-hint="${0}"> <i></i> </div> `),h.Loc.getMessage("EC_LOCATION_OVERFLOW"));if(this.inlineEditModeEnabled){this.DOM.inlineEditLinkWrap=this.DOM.wrapNode.appendChild(h.Tag.render(L||(L=O` <div class="calendar-field-place-link calendar-location-readonly">${0} </div>`),this.DOM.inlineEditLink=h.Tag.render(w||(w=O` <span class="calendar-text-link">${0}</span>`),h.Loc.getMessage("EC_REMIND1_ADD"))));this.DOM.inputWrap.style.display="none";h.Event.bind(this.DOM.inlineEditLinkWrap,"click",(()=>{this.displayInlineEditControls();this.selectContol.showPopup()}))}this.DOM.inputWrapInner=this.DOM.inputWrap.appendChild(h.Tag.render(_||(_=O` <div class="calendar-event-location-input-wrap-inner"> </div>`)));this.DOM.input=this.DOM.inputWrapInner.appendChild(h.Dom.create("INPUT",{attrs:{name:this.params.inputName||"",placeholder:this.disabled?h.Loc.getMessage("EC_LOCATION_PLACEHOLDER_LOCKED"):h.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){h.Dom.addClass(this.DOM.wrapNode,"locked");this.DOM.lockIcon=h.Tag.render(N||(N=O` <div class="calendar-lock-icon"></div> `));h.Event.bind(this.DOM.lockIcon,"click",(()=>{top.BX.UI.InfoHelper.show("limit_office_calendar_location")}));h.Dom.append(this.DOM.lockIcon,this.DOM.inputWrapInner)}}setValues(){var e;this.addLocationRemoveButton();if(!this.categoryManagerFromDB){var t;(t=this.setValuesDebounced)==null?void 0:t.call(this);return}this.prohibitClick();let i=[],s=false,a=S.getMeetingRoomList(),n=S.getLocationList();const o=this.createRoomList(n);this.categoriesWithRooms=this==null?void 0:(e=this.categoryManagerFromDB)==null?void 0:e.getCategoriesWithRooms(o);if(h.Type.isArray(a)){a.forEach((function(e){e.ID=parseInt(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"&&parseInt(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);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"});if(this.value.type==="calendar"&&parseInt(this.value.value)===parseInt(e.id)){s=i.length-1}};if(h.Type.isObject(this.categoriesWithRooms)){if(this.categoriesWithRooms.categories.length||this.categoriesWithRooms.default.length){this.categoriesWithRooms.categories.forEach((e=>{if(e.rooms.length){i.push({text:e.name,delimiter:true});e.rooms.forEach((e=>l(e)),this)}}));if(this.categoriesWithRooms.default.length){i.push({text:"\0",className:"calendar-popup-window-delimiter-default-category",delimiter:true});this.categoriesWithRooms.default.forEach((e=>l(e)),this)}if(this.locationAccess){this.loadRoomSlider();i.push({delimiter:true});i.push({label:h.Loc.getMessage("EC_LOCATION_MEETING_ROOM_SET"),callback:this.openRoomsSlider.bind(this)})}}else{if(this.locationAccess){this.loadRoomSlider();i.push({label:h.Loc.getMessage("EC_ADD_LOCATION"),callback:this.openRoomsSlider.bind(this)})}}}if(this.selectContol){this.selectContol.destroy()}let d=this.disabled;if(!i.length){d=true}this.processValue();this.selectContol=new BX.Calendar.Controls.SelectInput({input:this.DOM.input,values:i,valueIndex:s,zIndex:this.zIndex,disabled:d,minWidth:300,onChangeCallback:()=>{r.EventEmitter.emit("Calendar.LocationControl.onValueChange");let e,t=this.DOM.input.value;this.value={text:t};for(e=0;e<i.length;e++){if(i[e].labelRaw===t){this.value.type=i[e].type;this.value.value=i[e].value;S.setCurrentCapacity(i[e].capacity);break}}if(h.Type.isFunction(this.params.onChangeCallback)){this.params.onChangeCallback()}if(this.value.text===""){this.removeLocationRemoveButton()}this.addLocationRemoveButton();this.allowClick()}});this.allowClick()}processValue(){if(this.value){this.DOM.input.value=this.value.str||"";if(this.value.type&&(this.value.str===this.getTextLocation(this.value)||this.getTextLocation(this.value)===h.Loc.getMessage("EC_LOCATION_EMPTY"))){this.DOM.input.value="";this.value=""}for(const e of S.locationList){if(parseInt(e.ID)===this.value.room_id){S.setCurrentCapacity(parseInt(e.CAPACITY));break}}}}setValuesDebounce(){this.setCategoryManager();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(h.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(h.Tag.render(B||(B=O` <span class="calendar-location-clear-btn-wrap calendar-location-readonly"> <span class="calendar-location-clear-btn-text">${0}</span> </span>`),h.Loc.getMessage("EC_LOCATION_CLEAR_INPUT")));h.Event.bind(this.DOM.removeLocationButton,"click",this.removeValue.bind(this))}}setViewMode(e){this.viewMode=e;if(this.viewMode){h.Dom.addClass(this.DOM.wrapNode,"calendar-location-readonly")}else{h.Dom.removeClass(this.DOM.wrapNode,"calendar-location-readonly")}}addCapacityAlert(){if(!h.Dom.hasClass(this.DOM.input,"calendar-field-location-select-border")){h.Dom.addClass(this.DOM.input,"calendar-field-location-select-border")}if(h.Type.isDomNode(this.DOM.alertIconLocation)){d.Util.initHintNode(this.DOM.alertIconLocation)}setTimeout((()=>{this.DOM.inputWrapInner.after(this.DOM.alertIconLocation)}),200)}removeCapacityAlert(){if(h.Dom.hasClass(this.DOM.input,"calendar-field-location-select-border")){h.Dom.removeClass(this.DOM.input,"calendar-field-location-select-border")}if(this.DOM.alertIconLocation.parentNode===this.DOM.inputWrap){h.Dom.remove(this.DOM.alertIconLocation)}}getCapacityMessage(e){let t;if(e%100>10&&e%100<20){t=5}else{t=e%10}return h.Loc.getMessage("EC_LOCATION_CAPACITY_"+t,{"#NUM#":e})}checkLocationAccessibility(e){this.getLocationAccessibility(e.from,e.to).then((()=>{let t;let i;let s=e.from.getTime();let a=e.to.getTime();if(e.fullDay){a+=S.DAY_LENGTH}for(const n in S.locationList){S.locationList[n].reserved=false;let o=S.locationList[n].ID;for(const l of this.datesRange){if(h.Type.isUndefined(S.accessibility[l][o])){continue}for(const r of S.accessibility[l][o]){if(parseInt(r.PARENT_ID)===parseInt(e.currentEventId)){continue}t=d.Util.parseDate(r.DATE_FROM).getTime();i=d.Util.parseDate(r.DATE_TO).getTime();if(r.DT_SKIP_TIME!=="Y"){t-=r["~USER_OFFSET_FROM"]*1e3;i-=r["~USER_OFFSET_TO"]*1e3}else{i+=S.DAY_LENGTH}if(t<a&&i>s){S.locationList[n].reserved=true;break}}if(S.locationList[n].reserved){break}}}this.setValuesDebounce()}))}getLocationAccessibility(e,t){return new Promise((i=>{this.datesRange=S.getDatesRange(e,t);let s=true;for(let e of this.datesRange){if(h.Type.isUndefined(S.accessibility[e])){s=false;break}}if(!s){BX.ajax.runAction("calendar.api.locationajax.getLocationAccessibility",{data:{datesRange:this.datesRange,locationList:S.locationList}}).then((e=>{for(let t of this.datesRange){S.accessibility[t]=e.data[t]}i(S.accessibility,this.datesRange)}),(e=>{i(e.errors)}))}else{i(S.accessibility,this.datesRange)}}))}static handlePull(e){if(!e.fields.DATE_FROM||!e.fields.DATE_TO){return}let t=d.Util.parseDate(e.fields.DATE_FROM);let i=d.Util.parseDate(e.fields.DATE_TO);let s=S.getDatesRange(t,i);for(let e of s){if(S.accessibility[e]){delete S.accessibility[e]}}}loadRoomSlider(){this.setRoomsManager();this.setCategoryManager()}openRoomsSlider(){this.getRoomsInterface().then(function(e){if(!this.roomsInterface){this.roomsInterface=new e({calendarContext:null,readonly:false,roomsManager:this.roomsManagerFromDB,categoryManager:this.categoryManagerFromDB,isConfigureList:true})}this.roomsInterface.show()}.bind(this))}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(h.Type.isPlainObject(e)){this.value.text=e.text||"";this.value.type=e.type||"";this.value.value=e.value||""}else{this.value=S.parseStringValue(e)}if(t){this.setValuesDebounce()}else{this.setValues()}if(this.inlineEditModeEnabled){let e=this.getTextLocation(this.value);this.DOM.inlineEditLink.innerHTML=h.Text.encode(e||h.Loc.getMessage("EC_REMIND1_ADD"));if(e){this.addLocationRemoveButton()}}}static parseStringValue(e){if(!h.Type.isString(e)){e=""}let t={type:false,value:false,str:e};if(e.substr(0,5)==="ECMR_"){t.type="mr";let 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.substr(0,9)==="calendar_"){t.type="calendar";let 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){let t=h.Type.isPlainObject(e)?e:S.parseStringValue(e),i,s=t.str;if(h.Type.isArray(this.meetingRooms)&&t.type==="mr"){s=h.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(h.Type.isArray(S.locationList)&&t.type==="calendar"){s=h.Loc.getMessage("EC_LOCATION_EMPTY");for(i=0;i<S.locationList.length;i++){if(parseInt(t.value)===parseInt(S.locationList[i].ID)){s=S.locationList[i].NAME;break}}}return s}static setLocationList(e){if(h.Type.isArray(e)){S.locationList=e;this.sortLocationList()}}static sortLocationList(){S.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 S.locationList}static setMeetingRoomList(e){if(h.Type.isArray(e)){S.meetingRoomList=e}}static getMeetingRoomList(){return S.meetingRoomList}static setLocationAccessibility(e){S.accessibility=e}static getLocationAccessibility(){return S.accessibility}static setCurrentCapacity(e){S.currentRoomCapacity=e}static getCurrentCapacity(){return S.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)){const t=this.activeRooms[0];for(const i of e){if(parseInt(i.ID)===t){S.setCurrentCapacity(parseInt(i.CAPACITY));return"calendar_"+t}}}else{S.setCurrentCapacity(parseInt(e[0].CAPACITY));return"calendar_"+e[0].ID}}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.categoryManagerFromDB){this.getCategoryManager().then(this.getCategoryManagerData())}}prohibitClick(){if(this.DOM.inlineEditLinkWrap&&!h.Dom.hasClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")){h.Dom.addClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")}if(this.DOM.removeLocationButton&&!h.Dom.hasClass(this.DOM.removeLocationButton,"calendar-location-readonly")){h.Dom.addClass(this.DOM.removeLocationButton,"calendar-location-readonly")}}allowClick(){if(this.DOM.inlineEditLinkWrap&&h.Dom.hasClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")){h.Dom.removeClass(this.DOM.inlineEditLinkWrap,"calendar-location-readonly")}if(this.DOM.removeLocationButton&&h.Dom.hasClass(this.DOM.removeLocationButton,"calendar-location-readonly")){h.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){let i=new Date(e);let s=new Date(t);let a=i.setHours(0,0,0,0);let n=s.setHours(0,0,0,0);let o=[];while(a<=n){o.push(S.getDateInFormat(new Date(a)));a+=S.DAY_LENGTH}return o}}S.locationList=[];S.meetingRoomList=[];S.currentRoomCapacity=0;S.accessibility=[];S.DAY_LENGTH=864e5;class x{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(h.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(h.Dom.create("DIV",{props:{className:"event-grid-dest-wrap"},events:{click:t=>{BX.SocNetLogDestination.openDialog(e)}}}));this.socnetDestinationItems=this.DOM.socnetDestinationWrap.appendChild(h.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(h.Dom.create("SPAN",{props:{className:"feed-add-destination-input-box"}}));this.socnetDestinationInput=this.socnetDestinationInputWrap.appendChild(h.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(h.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(h.Dom.create("span",{attrs:{"data-id":e.id},props:{className:"event-grid-dest event-grid-dest-"+i},children:[h.Dom.create("input",{attrs:{type:"hidden",name:this.destinationInputName+"["+s+"][]",value:e.id}}),h.Dom.create("span",{props:{className:"event-grid-dest-text"},html:e.name}),h.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(h.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){h.Dom.clean(this.socnetDestinationItems)}if(h.Type.isArray(e)){this.params.itemsSelected=this.convertAttendeesCodes(e)}this.init()}}let k=e=>e,A,R;class V extends r.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=d.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(h.Dom.create("LI",{props:{className:"calendar-field-colorpicker-color-item"},attrs:{"data-bx-calendar-color":this.defaultColors[e]},style:{backgroundColor:this.defaultColors[e]},html:'<span class="calendar-field-colorpicker-color"></span>'}))})}this.DOM.customColorNode=this.DOM.wrap.appendChild(h.Dom.create("LI",{props:{className:"calendar-field-colorpicker-color-item"},style:{backgroundColor:"transparent",width:0},html:'<span class="calendar-field-colorpicker-color"></span>'}));this.DOM.customColorLink=this.DOM.wrap.appendChild(h.Dom.create("LI",{props:{className:"calendar-field-colorpicker-color-item-more"},html:'<span class="calendar-field-colorpicker-color-item-more-link">'+h.Loc.getMessage("EC_COLOR")+"</span>",events:{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()}}}));h.Event.bind(this.DOM.wrap,"click",this.handleColorClick.bind(this))}else if(this.mode===this.SELECTOR_MODE){this.DOM.colorIcon=this.DOM.wrap.appendChild(h.Tag.render(A||(A=k` <div style="background-color: #000;" class="calendar-field-select-icon"></div> `)));h.Event.bind(this.DOM.wrap,"click",this.openPopup.bind(this))}else if(this.mode===this.VIEW_MODE){this.DOM.colorIcon=this.DOM.wrap.appendChild(h.Tag.render(R||(R=k` <div style="background-color: #000;" class="calendar-field-select-icon"></div> `)))}}handleColorClick(e){if(this.viewMode){return}let t=d.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){BX.removeClass(this.DOM.activeColorNode,"active")}if(!BX.util.in_array(this.activeColor,this.defaultColors)&&this.activeColor){this.DOM.customColorNode.style.backgroundColor=this.activeColor;this.DOM.customColorNode.style.width="";this.DOM.activeColorNode=this.DOM.customColorNode;BX.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;BX.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 r.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(h.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){h.Dom.clean(this.DOM.wrap);this.DOM.wrap.className="calendar-field-select-icon";this.DOM.wrap.style.backgroundColor=this.activeColor}}}let P=e=>e,X,U,W,H,z,F,$,Y;class G{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(h.Tag.render(X||(X=P`<span class="calendar-field-choice-calendar-img"></span>`)));this.DOM.selectInnerText=this.DOM.select.appendChild(h.Tag.render(U||(U=P`<span class="calendar-field-choice-calendar-name">${0}</span>`),h.Text.encode(h.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(h.Tag.render(W||(W=P`<span class="calendar-field-choice-calendar-img"></span>`)));this.DOM.selectInnerText=this.DOM.select.appendChild(h.Tag.render(H||(H=P`<span class="calendar-field-choice-calendar-name calendar-field-choice-calendar-name-location">${0}</span>`),h.Text.encode(h.Loc.getMessage("EC_CALENDAR_LOCATION_TITLE")+" "+this.getCurrentTitle())))}else{this.DOM.select=this.DOM.outerWrap.appendChild(h.Dom.create("DIV",{props:{className:"calendar-field calendar-field-select"+(this.mode==="compact"?" calendar-field-tiny":"")}}));this.DOM.innerValue=this.DOM.select.appendChild(h.Dom.create("DIV",{props:{className:"calendar-field-select-icon"},style:{backgroundColor:this.getCurrentColor()}}));if(this.mode==="full"){this.DOM.selectInnerText=this.DOM.select.appendChild(h.Dom.create("SPAN",{text:this.getCurrentTitle()}))}}}initEventHandlers(){h.Event.bind(this.DOM.select,"click",BX.delegate(this.openPopup,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(h.Type.isArray(this.sectionGroupList)){this.sectionGroupList.forEach((s=>{let a;if(s.belongsToView){a=i.filter((e=>G.getSectionType(e)===this.defaultCalendarType&&G.getSectionOwner(e)===this.defaultOwnerId),this)}else if(s.type==="user"||s.type==="location"){a=i.filter((e=>G.getSectionType(e)==="user"&&G.getSectionOwner(e)===s.ownerId))}else if(s.type==="company"){a=i.filter((e=>G.getSectionType(e)==="company_calendar"||G.getSectionType(e)==="calendar_company"||G.getSectionType(e)===s.type))}else{a=i.filter((e=>G.getSectionType(e)===s.type))}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,{closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:a,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}}}BX.addClass(this.DOM.select,"active");if(h.Type.isFunction(this.openPopupCallback)){this.openPopupCallback(this)}BX.addCustomEvent(this.sectionMenu.popupWindow,"onPopupClose",BX.delegate((function(){if(h.Type.isFunction(this.openPopupCallback)){this.closePopupCallback()}BX.removeClass(this.DOM.select,"active");BX.PopupMenu.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||h.Type.isFunction(e.canDo)&&e.canDo("edit")))}updateSectionImageNode(e){if(!h.Type.isElementNode(this.DOM.selectImageWrap)){return}if(e===undefined){e=this.sectionList.find((e=>parseInt(e.id)===parseInt(this.getCurrentSection().id)))}if(e&&e.type){const t=G.getSectionImage(e);let i;if(t){i=h.Tag.render(z||(z=P`<img class="calendar-field-choice-calendar-img-value" src="${0}">`),encodeURI(t))}else if(e.type==="group"){i=h.Tag.render(F||(F=P`<div class="ui-icon ui-icon-common-user-group"><i></i></div>`))}else if(e.type==="user"){i=h.Tag.render($||($=P`<div class="ui-icon ui-icon-common-user"><i></i></div>`))}else{i=h.Tag.render(Y||(Y=P`<div class="ui-icon ui-icon-common-bitrix24"><i></i></div>`))}h.Dom.clean(this.DOM.selectImageWrap);this.DOM.selectImageWrap.appendChild(i)}}getPopup(){return this.sectionMenu}getMenuItem(e){let t=this;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:function(i){return()=>{if(h.Type.isDomNode(t.DOM.innerValue)){t.DOM.innerValue.style.backgroundColor=i.color||e.COLOR}t.updateSectionImageNode(i);if(h.Type.isFunction(t.selectCallback)){if(!i.color&&e.COLOR){i.color=e.COLOR}if(!i.id&&e.ID){i.id=e.ID}t.selectCallback(i)}t.sectionMenu.close();t.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)}updateValue(){if(h.Type.isDomNode(this.DOM.innerValue)){this.DOM.innerValue.style.backgroundColor=this.getCurrentColor()}if(this.mode==="full"){this.DOM.select.appendChild(h.Dom.adjust(this.DOM.selectInnerText,{text:this.getCurrentTitle(),props:{title:this.getCurrentTitle()}}))}else if(this.mode==="textselect"){this.updateSectionImageNode();this.DOM.select.appendChild(h.Dom.adjust(this.DOM.selectInnerText,{props:{title:h.Loc.getMessage("EC_CALENDAR_SECTION_TITLE")+" "+this.getCurrentTitle()},text:h.Loc.getMessage("EC_CALENDAR_SECTION_TITLE")+" "+this.getCurrentTitle()}))}else if(this.mode==="location"){this.updateSectionImageNode();this.DOM.select.appendChild(h.Dom.adjust(this.DOM.selectInnerText,{props:{title:h.Loc.getMessage("EC_CALENDAR_LOCATION_TITLE")+" "+this.getCurrentTitle()},text:h.Loc.getMessage("EC_CALENDAR_LOCATION_TITLE")+" "+this.getCurrentTitle()}))}}setViewMode(e){this.viewMode=e;if(this.viewMode){h.Dom.addClass(this.DOM.outerWrap,"calendar-section-selector-readonly");if(this.DOM.outerWrap!==this.DOM.select){h.Dom.removeClass(this.DOM.select,"calendar-field-select");h.Dom.addClass(this.DOM.select,"calendar-section-selector-readonly")}}else{h.Dom.removeClass(this.DOM.outerWrap,"calendar-section-selector-readonly")}}}class j{constructor(e){let t=e.rruleType.form.elements;this.getDate=e.getDate;this.previousDate=null;this.DOM={formElements:t,wrap:e.wrap,rruleType:e.rruleType,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.create()}create(){BX.bind(this.DOM.rruleType,"change",(()=>{this.changeType(this.DOM.rruleType.value)}));BX.bind(this.DOM.until,"click",(e=>{u.DateTimeControl.showInputCalendar(e);this.DOM.rruleEndsOn.until.checked=true}));BX.bind(this.DOM.count,"click",(()=>{this.DOM.rruleEndsOn.count.checked=true}))}changeType(e){this.DOM.rruleType.value=e?e.toUpperCase():"NONE";let t=this.DOM.rruleType.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=d.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={}){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.value.toLowerCase()}}class q{constructor(e){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=e.onChangeCallback||null;this.zIndex=e.zIndex||1200;this.disabled=e.disabled;this.setValue({value:e.value,valueIndex:e.valueIndex});this.curInd=false;this.bindEventHandlers()}bindEventHandlers(){if(this.onChangeCallback){BX.bind(this.input,"change",this.onChangeCallback)}if(this.values){BX.bind(this.input,"click",BX.proxy(this.onClick,this));BX.bind(this.input,"focus",BX.proxy(this.onFocus,this));BX.bind(this.input,"blur",BX.proxy(this.onBlur,this));BX.bind(this.input,"keyup",BX.proxy(this.onKeyup,this))}}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}getInputValue(){return this.input.value}showPopup(){if(this.shown||this.disabled)return;let e=0,t=0,i=[],s,a=this;for(s=0;s<this.values.length;s++){if(this.values[s].delimiter){i.push(this.values[s])}else{if(this.currentValue&&this.values[s]&&s>0&&this.currentValue.value>=this.values[s-1].value&&this.currentValue.value<=this.values[s].value){e=t}let n;if(this.values[s].reserved){n=`\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[s].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${h.Loc.getMessage("EC_LOCATION_RESERVED")}\n\t\t\t\t\t\t</span>`}else if(this.values[s].capacity){n=`\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[s].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[s].labelCapacity)}\n\t\t\t\t \t</span>`}else{n=`\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[s].label)}\n\t\t\t\t\t\t</span>`}if(this.values[s].color){i.push({id:this.values[s].value,title:this.values[s].label,className:"menu-popup-display-flex calendar-location-popup-menu-item",html:n,color:this.values[s].color,onclick:this.values[s].callback||function(e,t){return function(){a.input.value=t;a.popupMenu.close();a.onChange()}}(this.values[s].value,this.values[s].labelRaw||this.values[s].label)})}else{const e=this.values[s].hint?" "+this.values[s].hint:"";i.push({id:this.values[s].value,html:this.values[s].label+e,title:this.values[s].label,className:"menu-popup-no-icon"+(this.values[s].selected?" calendar-menu-popup-time-selected":""),onclick:this.values[s].callback||function(e,t){return function(){a.input.value=t;a.popupMenu.close();a.onChange(e)}}(this.values[s].value,this.values[s].labelRaw||this.values[s].label)})}t++}}this.popupMenu=BX.PopupMenu.create(this.id,this.input,i,{closeByEsc:true,autoHide:true,zIndex:this.zIndex,offsetTop:0,offsetLeft:-1});if(!BX.browser.IsFirefox()){this.popupMenu.popupWindow.setMinWidth(this.input.offsetWidth+2)}this.popupMenu.popupWindow.setMaxWidth(300);let n=this.popupMenu.layout.menuContainer;BX.addClass(this.popupMenu.layout.menuContainer,"calendar-select-popup");this.popupMenu.show();let o=this.popupMenu.menuItems[e];if(o&&o.layout){n.scrollTop=o.layout.item.offsetTop-o.layout.item.offsetHeight-36*3}let l=this.popupMenu.menuItems;for(s=0;s<l.length;s++){if(l[s].layout.item){let e=l[s].layout.item.querySelector(".menu-popup-item-icon");if(e){e.style.backgroundColor=l[s].color}}}BX.addCustomEvent(this.popupMenu.popupWindow,"onPopupClose",function(){BX.PopupMenu.destroy(this.id);this.shown=false;this.popupMenu=null}.bind(this));this.input.select();this.shown=true}closePopup(){BX.PopupMenu.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()}}onBlur(){setTimeout(BX.delegate(this.closePopup,this),200)}onKeyup(){setTimeout(BX.delegate(this.closePopup,this),50)}onChange(e){var t=this.input.value;BX.onCustomEvent(this,"onSelectInputChanged",[this,t]);if(BX.type.isFunction(this.onChangeCallback)){this.onChangeCallback({value:t,dataValue:e})}}destroy(){if(this.onChangeCallback){BX.unbind(this.input,"change",this.onChangeCallback);BX.unbind(this.input,"keyup",this.onChangeCallback)}BX.unbind(this.input,"click",BX.proxy(this.onClick,this));BX.unbind(this.input,"focus",BX.proxy(this.onFocus,this));BX.unbind(this.input,"blur",BX.proxy(this.onBlur,this));BX.unbind(this.input,"keyup",BX.proxy(this.onKeyup,this));if(this.popupMenu){this.popupMenu.close()}BX.PopupMenu.destroy(this.id);this.popupMenu=null;this.shown=false}}class K{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 Z=e=>e,Q,J,ee,te,ie;class se extends r.EventEmitter{constructor(e={}){super();this.views=[];this.created=false;this.currentValue=null;this.currentViewMode=null;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.ViewSelector");if(h.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=h.Tag.render(Q||(Q=Z`<div class="calendar-view-switcher-selector"></div>`));this.DOM.selectorText=h.Tag.render(J||(J=Z`<div class="calendar-view-switcher-text"></div>`));this.DOM.selectorTextInner=this.DOM.selectorText.appendChild(h.Tag.render(ee||(ee=Z`<div class="calendar-view-switcher-text-inner"></div>`)));this.DOM.wrap.appendChild(this.DOM.selectorText);this.DOM.wrap.appendChild(h.Tag.render(te||(te=Z`<div class="calendar-view-switcher-dropdown"></div>`)));h.Event.bind(this.DOM.wrap,"click",this.showPopup.bind(this));this.DOM.viewModeTextInner=this.DOM.selectorText.appendChild(h.Tag.render(ie||(ie=Z`<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){h.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){h.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>"+h.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()}}}let ae=e=>e,ne,oe;class le extends r.EventEmitter{constructor(e={}){super();this.views=[];this.created=false;this.currentValue=null;this.currentViewMode=null;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.LineViewSelector");if(h.Type.isArray(e.views)){this.views=e.views}this.viewsMap=new WeakMap;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(){this.DOM.wrap=h.Tag.render(ne||(ne=ae`<div class="calendar-view-switcher-list"></div>`));this.views.forEach((e=>{if(e.type==="base"){this.viewsMap.set(e,{wrap:this.DOM.wrap.appendChild(h.Tag.render(oe||(oe=ae`<span class="calendar-view-switcher-list-item" onclick="${0}" >${0}</span>`),(()=>{this.emit("onChange",{name:e.name,type:e.type,dataset:e.dataset})}),e.text))})}}));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){let e=this.viewsMap.get(this.currentValue);let t=this.DOM.wrap.querySelector(".calendar-view-switcher-list-item-active");if(h.Type.isDomNode(t)){h.Dom.removeClass(t,"calendar-view-switcher-list-item-active")}if(h.Type.isDomNode(e.wrap)){h.Dom.addClass(e.wrap,"calendar-view-switcher-list-item-active")}}}setViewMode(e){if(e){this.currentViewMode=this.views.find((function(t){return e===t.name&&t.type==="additional"}),this)}}getMenuItems(){let 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>"+h.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 re extends r.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=h.Type.isFunction(e.addEntry)?e.addEntry:null;this.addTaskHandler=h.Type.isFunction(e.addTask)?e.addTask:null;this.create()}create(){this.menuItems=[{text:h.Loc.getMessage("EC_EVENT_BUTTON"),onclick:this.addEntry.bind(this)}];if(this.addTaskHandler){this.menuItems.push({text:h.Loc.getMessage("EC_TASK_BUTTON"),onclick:this.addTask.bind(this)})}if(this.menuItems.length>1){this.DOM.wrap=h.Dom.create("span",{props:{className:"ui-btn-split ui-btn-success"},children:[h.Dom.create("button",{props:{className:"ui-btn-main",type:"button"},html:h.Loc.getMessage("EC_CREATE"),events:{click:this.addEntry.bind(this)}})]});this.DOM.addButtonExtra=h.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=h.Dom.create("button",{props:{className:"ui-btn ui-btn-success",type:"button"},html:h.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 de extends h.Event.EventEmitter{constructor(e={}){super();this.showTasks=false;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.MeetingStatusControl");this.BX=d.Util.getBX();if(e.wrap&&h.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:h.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:h.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(h.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 h.Event.BaseEvent({data:{status:e}}))}}}class he extends r.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(){let e=h.Dom.create("DIV");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:h.Loc.getMessage("EC_DECLINE_REC_EVENT"),closeIcon:{right:"12px",top:"10px"},className:"bxc-popup-window",buttons:[new BX.PopupWindowButtonLink({text:h.Loc.getMessage("EC_SEC_SLIDER_CANCEL"),className:"popup-window-button-link-cancel",events:{click:this.close.bind(this)}})],content:e,cacheable:false});e.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_DECLINE_ONLY_THIS"),events:{click:()=>{this.onDeclineHandler();this.emit("onDecline",new r.BaseEvent({data:{recursionMode:"this"}}))}}}).buttonNode);e.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_DECLINE_NEXT"),events:{click:()=>{this.onDeclineHandler();this.emit("onDecline",new r.BaseEvent({data:{recursionMode:"next"}}))}}}).buttonNode);e.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_DECLINE_ALL"),events:{click:()=>{this.onDeclineHandler();this.emit("onDecline",new r.BaseEvent({data:{recursionMode:"all"}}))}}}).buttonNode);this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}onDeclineHandler(){this.close();const e=a.EntryManager.getCompactViewForm();if(e&&e.isShown()){e.close()}}}class ce extends r.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(){let e=h.Dom.create("DIV");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:h.Loc.getMessage("EC_EDIT_REC_EVENT"),closeIcon:{right:"12px",top:"10px"},className:"bxc-popup-window",buttons:[new BX.PopupWindowButtonLink({text:h.Loc.getMessage("EC_SEC_SLIDER_CANCEL"),className:"popup-window-button-link-cancel",events:{click:this.close.bind(this)}})],content:e,events:{},cacheable:false});e.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_REC_EV_ONLY_THIS_EVENT"),events:{click:()=>{this.emit("onEdit",new r.BaseEvent({data:{recursionMode:"this"}}));this.close()}}}).buttonNode);e.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_REC_EV_NEXT"),events:{click:()=>{this.emit("onEdit",new r.BaseEvent({data:{recursionMode:"next"}}));this.close()}}}).buttonNode);e.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_REC_EV_ALL"),events:{click:()=>{this.emit("onEdit",new r.BaseEvent({data:{recursionMode:"all"}}));this.close()}}}).buttonNode);this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}}class ue extends K{constructor(e={}){super(e);this.title=BX.message("EC_DEL_REC_EVENT");this.entry=e.entry}getContent(){this.DOM.content=BX.create("DIV");this.DOM.content.appendChild(new BX.PopupWindowButton({text:BX.message("EC_REC_EV_ONLY_THIS_EVENT"),events:{click:function(){this.entry.deleteThis();this.close()}.bind(this)}}).buttonNode);this.DOM.content.appendChild(new BX.PopupWindowButton({text:BX.message("EC_REC_EV_NEXT"),events:{click:function(){this.entry.deleteNext();this.close()}.bind(this)}}).buttonNode);this.DOM.content.appendChild(new BX.PopupWindowButton({text:BX.message("EC_REC_EV_ALL"),events:{click:function(){this.entry.deleteAll();this.close()}.bind(this)}}).buttonNode);return this.DOM.content}getButtons(){return[new BX.PopupWindowButtonLink({text:BX.message("EC_SEC_SLIDER_CANCEL"),className:"popup-window-button-link-cancel",events:{click:this.close.bind(this)}})]}}let pe=e=>e,me,fe,De,ge,Me,Ce,Ee,Te,ve,ye,Oe,Ie,be,Le;class we extends r.EventEmitter{constructor(e,t={showTimezone:true}){super();this.DATE_INPUT_WIDTH=110;this.TIME_INPUT_WIDTH=90;this.zIndex=4200;this.from=null;this.to=null;this.setEventNamespace("BX.Calendar.Controls.DateTimeControl");this.showTimezone=t.showTimezone;this.inlineEditMode=!!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(h.Type.isDomNode(this.DOM.outerWrap)){if(this.inlineEditMode){h.Dom.addClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-view")}this.DOM.leftInnerWrap=this.DOM.outerWrap.appendChild(h.Tag.render(me||(me=pe`<div class="calendar-field-block calendar-field-block-left"></div>`)));this.DOM.fromDate=this.DOM.leftInnerWrap.appendChild(h.Tag.render(fe||(fe=pe` <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(h.Tag.render(De||(De=pe`<span class="calendar-field-value calendar-field-value-date"></span>`)))}this.DOM.fromTime=this.DOM.leftInnerWrap.appendChild(h.Tag.render(ge||(ge=pe` <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(h.Tag.render(Me||(Me=pe`<span class="calendar-field-value calendar-field-value-time"></span>`)))}this.DOM.betweenSpacer=this.DOM.outerWrap.appendChild(h.Tag.render(Ce||(Ce=pe`<div class="calendar-field-block calendar-field-block-between" />`)));this.DOM.rightInnerWrap=this.DOM.outerWrap.appendChild(h.Tag.render(Ee||(Ee=pe`<div class="calendar-field-block calendar-field-block-right"></div>`)));this.DOM.toTime=this.DOM.rightInnerWrap.appendChild(h.Tag.render(Te||(Te=pe` <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(h.Tag.render(ve||(ve=pe`<span class="calendar-field-value calendar-field-value-time"></span>`)))}this.DOM.toDate=this.DOM.rightInnerWrap.appendChild(h.Tag.render(ye||(ye=pe` <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(h.Tag.render(Oe||(Oe=pe`<span class="calendar-field-value calendar-field-value-date"></span>`)))}this.fromTimeControl=new p({input:this.DOM.fromTime,onChangeCallback:this.handleTimeFromChange.bind(this)});this.toTimeControl=new p({input:this.DOM.toTime,onChangeCallback:this.handleTimeToChange.bind(this)});let e=this.DOM.outerWrap.appendChild(h.Tag.render(Ie||(Ie=pe` <span class="calendar-event-full-day"></span> `)));this.DOM.fullDay=e.appendChild(h.Tag.render(be||(be=pe` <input value="Y" type="checkbox" id="{this.UID}"/> `)));e.appendChild(h.Tag.render(Le||(Le=pe`<label for="{this.UID}">${0}</label>`),h.Loc.getMessage("EC_ALL_DAY")))}if(this.showTimezone);this.bindEventHandlers()}setValue(e={}){this.DOM.fromDate.value=d.Util.formatDate(e.from);this.DOM.toDate.value=d.Util.formatDate(e.to);this.DOM.fromTime.value=d.Util.formatTime(e.from);this.DOM.toTime.value=d.Util.formatTime(e.to);const t=d.Util.parseTime(this.DOM.fromTime.value);const i=d.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=d.Util.formatDateUsable(e.from,true,true);this.DOM.toDateText.innerHTML=d.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=h.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&&h.Type.isDomNode(this.DOM.fromTz)){this.DOM.fromTz.value=e.timezoneFrom}if(e.timezoneTo!==undefined&&h.Type.isDomNode(this.DOM.toTz)){this.DOM.toTz.value=e.timezoneTo}if(e.timezoneName!==undefined&&(e.timezoneName!==e.timezoneFrom||e.timezoneName!==e.timezoneTo)){this.switchTimezone(true)}}this.value=e;this.handleFullDayChange()}updateTimePeriod(){this.from=this.getFrom();this.to=this.getTo();this.fromTimeControl.highlightValue(this.from);this.toTimeControl.highlightValue(this.to);this.updateToTimeDurationHints()}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=d.Util.parseDate(e);if(!i){return null}return new Date(i.getTime()+t*60*1e3)}getValue(){let 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.value:this.value.timezoneFrom||this.value.timezoneName||null,timezoneTo:this.DOM.toTz?this.DOM.toTz.value:this.value.timezoneTo||this.value.timezoneName||null};e.from=d.Util.parseDate(e.fromDate);if(h.Type.isDate(e.from)){e.to=d.Util.parseDate(e.toDate);if(!h.Type.isDate(e.to)){e.to=e.from}if(e.fullDay){e.from.setHours(0,0,0);e.to.setHours(0,0,0)}else{let t=d.Util.parseTime(e.fromTime),i=d.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(){h.Event.bind(this.DOM.fromDate,"click",we.showInputCalendar);h.Event.bind(this.DOM.fromDate,"change",this.handleDateFromChange.bind(this));h.Event.bind(this.DOM.toDate,"click",we.showInputCalendar);h.Event.bind(this.DOM.toDate,"change",this.handleDateToChange.bind(this));h.Event.bind(this.DOM.fromTime,"input",this.handleTimeInput.bind(this));h.Event.bind(this.DOM.toTime,"input",this.handleTimeInput.bind(this));h.Event.bind(this.DOM.fullDay,"click",(()=>{this.handleFullDayChange();this.handleValueChange()}));if(this.inlineEditMode){h.Event.bind(this.DOM.outerWrap,"click",this.changeInlineEditMode.bind(this))}if(h.Type.isDomNode(this.DOM.defTimezone)){h.Event.bind(this.DOM.defTimezone,"change",BX.delegate((function(){if(this.bindFromToDefaultTimezones){this.DOM.fromTz.value=this.DOM.toTz.value=this.DOM.defTimezone.value}}),this))}if(this.showTimezone){if(h.Type.isDomNode(this.DOM.tzButton)){h.Event.bind(this.DOM.tzButton,"click",this.switchTimezone.bind(this))}h.Event.bind(this.DOM.fromTz,"change",function(){if(this.bindTimezones){this.DOM.toTz.value=this.DOM.fromTz.value}this.bindFromToDefaultTimezones=false}.bind(this));h.Event.bind(this.DOM.toTz,"change",function(){this.bindTimezones=false;this.bindFromToDefaultTimezones=false}.bind(this));this.bindTimezones=this.DOM.fromTz.value===this.DOM.toTz.value;this.bindFromToDefaultTimezones=this.bindTimezones&&this.DOM.fromTz.value===this.DOM.toTz.value&&this.DOM.fromTz.value===this.DOM.defTimezone.value}}static showInputCalendar(e){let t=e.target||e.srcElement;if(h.Type.isDomNode(t)&&t.nodeName.toLowerCase()==="input"){const e=BX.calendar.get();if(e.popup){e.popup.destroy();e.popup=null;e._current_layer=null;e._layers={}}if(e.popup_month){e.popup_month.destroy();e.popup_month=null}if(e.popup_year){e.popup_year.destroy();e.popup_year=null}e.Show({node:t.parentNode,field:t,bTime:false});BX.onCustomEvent(window,"onCalendarControlChildPopupShown");const i=e.popup;if(i){BX.removeCustomEvent(i,"onPopupClose",we.inputCalendarClosePopupHandler);BX.addCustomEvent(i,"onPopupClose",we.inputCalendarClosePopupHandler)}}}static inputCalendarClosePopupHandler(){BX.onCustomEvent(window,"onCalendarControlChildPopupClosed")}handleDateFromChange(){if(!this.getFrom()){this.DOM.fromDate.value=d.Util.formatDate(this.from.getTime());return}this.DOM.fromDate.value=d.Util.formatDate(this.getFrom());const e=this.getFrom().getTime()-this.from.getTime();this.DOM.toDate.value=d.Util.formatDate(this.to.getTime()+e);this.handleValueChange()}handleDateToChange(){if(!this.getTo()){this.DOM.toDate.value=d.Util.formatDate(this.to.getTime());return}this.DOM.toDate.value=d.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=d.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=d.Util.formatDate(i)}if(this.getTo()<this.getFrom()){this.DOM.toDate.value=this.DOM.fromDate.value;this.DOM.toTime.value=this.DOM.fromTime.value;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=d.Util.formatTime(this.from)}else{this.fromMinutes=t!=null?t:this.getMinutesFromFormattedTime(this.DOM.fromTime.value);this.DOM.fromTime.value=d.Util.formatTime(this.getFrom())}if(this.getTo()){const e=this.getFrom().getTime()-this.from.getTime();this.toMinutes=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=d.Util.formatTime(this.to)}else{this.toMinutes=t!=null?t:this.getMinutesFromFormattedTime(this.DOM.toTime.value);this.DOM.toTime.value=d.Util.formatTime(this.getTo())}if(this.getTo()<this.getFrom()){const e=this.getTo().getTime()-this.to.getTime();this.fromMinutes=this.fromMinutes+e/(60*1e3);const t=new Date(this.from.getTime()+e);this.DOM.fromTime.value=d.Util.formatTime(t);this.DOM.fromDate.value=d.Util.formatDate(t)}this.handleValueChange()}isIncorrectTimeValue(e){if(BX.isAmPmMode()){return e===""}return e===""||e[0]!=="0"&&d.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(8<=e&&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=`${a}`;if(e.length-s.length===1||e.indexOf(":")!==-1){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=this.beautifyTime(s)+" am"}if(t==="p"){s=this.beautifyTime(s)+" pm"}}return s}getMinutesAndHours(e,t){let i=this.clearTimeString(e,t);let s,a;if(i.indexOf(":")!==-1){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)));if(e.length===4&&e[0]>this.getMaxHours()/10){e.pop()}if(e.length===1){s=`${e[0]}`}if(e.length===2){s=`${e[0]}${e[1]}`;if(parseInt(s)>this.getMaxHours()){s=`${e[0]}`;a=`${e[1]}`}}if(e.length===3){if(BX.isAmPmMode()){if(e[0]>=1){s=`${e[0]}`;a=`${e[1]}${e[2]}`}else{s=`${e[0]}${e[1]}`;a=`${e[2]}`}}else{if(parseInt(`${e[0]}${e[1]}`)<24){s=`${e[0]}${e[1]}`;a=`${e[2]}`}else{s=`${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.replace(/[ap]/g,"").replace(/\D/g,":");i=i.replace(/:*/,"");const s=i.indexOf(":");i=i.substr(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))&&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)>this.getMaxHours()/10){return`0${t}`}if(parseInt(e)<=this.getMaxHours()){var i;return`${t}${(i=e[1])!=null?i:""}`}return`${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.indexOf(":")===-1){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(){let e=this.getFullDayValue();if(e){if(h.Type.isDomNode(this.DOM.dateTimeWrap)){h.Dom.addClass(this.DOM.dateTimeWrap,"calendar-options-item-datetime-hide-time")}if(h.Type.isDomNode(this.DOM.outerWrap)){h.Dom.addClass(this.DOM.outerWrap,"calendar-options-item-datetime-hide-time")}}else{if(h.Type.isDomNode(this.DOM.dateTimeWrap)){h.Dom.removeClass(this.DOM.dateTimeWrap,"calendar-options-item-datetime-hide-time")}if(h.Type.isDomNode(this.DOM.outerWrap)){h.Dom.removeClass(this.DOM.outerWrap,"calendar-options-item-datetime-hide-time")}}}handleValueChange(){this.setValue({from:this.getFrom(),to:this.getTo()});this.emit("onChange",new r.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!!this.DOM.fullDay.checked}getMinutesFromFormattedTime(e){const t=d.Util.parseTime(e);return t.h*60+t.m}switchTimezone(e){if(!h.Type.isBoolean(e)){e=BX.hasClass(this.DOM.tzCont,"calendar-options-timezone-collapse")}if(e){h.Dom.addClass(this.DOM.tzCont,"calendar-options-timezone-expand");h.Dom.removeClass(this.DOM.tzCont,"calendar-options-timezone-collapse")}else{h.Dom.addClass(this.DOM.tzCont,"calendar-options-timezone-collapse");h.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"){h.Dom.addClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-edit");h.Dom.removeClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-view")}else{h.Dom.removeClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-edit");h.Dom.addClass(this.DOM.outerWrap,"calendar-datetime-inline-mode-view")}}}}class _e extends r.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;let t,i=[];for(t=0;t<e.users.length;t++){i.push(e.users[t].DISPLAY_NAME)}i=i.join(", ");let s=BX.create("DIV",{props:{className:"calendar-busy-users-content-wrap"},html:'<div class="calendar-busy-users-content">'+BX.util.htmlspecialchars(this.plural?h.Loc.getMessage("EC_BUSY_USERS_PLURAL").replace("#USER_LIST#",i):h.Loc.getMessage("EC_BUSY_USERS_SINGLE").replace("#USER_NAME#",e.users[0].DISPLAY_NAME))+"</div>"});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:h.Loc.getMessage("EC_BUSY_USERS_TITLE"),closeIcon:{right:"12px",top:"10px"},className:"bxc-popup-window",content:s,events:{}});s.appendChild(new BX.PopupWindowButton({text:h.Loc.getMessage("EC_BUSY_USERS_BACK2EDIT"),events:{click:()=>{this.close()}}}).buttonNode);s.appendChild(new BX.PopupWindowButton({text:this.plural?h.Loc.getMessage("EC_BUSY_USERS_EXCLUDE_PLURAL"):h.Loc.getMessage("EC_BUSY_USERS_EXCLUDE_SINGLE"),events:{click:()=>{this.emit("onSaveWithout");this.close()}}}).buttonNode);this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}}let Ne=e=>e,Be,Se,xe;class ke extends r.EventEmitter{constructor(e={}){super();this.zIndex=4200;this.readOnlyMode=true;this.meetingNotifyValue=true;this.userSelectorDialog=null;this.attendeesEntityList=[];this.inlineEditMode=ke.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=d.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=h.Runtime.debounce(this.refreshPlannerState,this.REFRESH_PLANNER_DELAY,this);if(h.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.dayOfWeekMonthFormat=e.dayOfWeekMonthFormat;this.plannerFeatureEnabled=!!e.plannerFeatureEnabled;this.create()}create(){if(this.DOM.changeLink&&!this.isReadOnly()){h.Event.bind(this.DOM.changeLink,"click",(()=>{if(!this.userSelectorDialog){this.userSelectorDialog=new o.Dialog({targetNode:this.DOM.changeLink,context:"CALENDAR",preselectedItems:this.attendeesPreselectedItems,enableSearch:true,zIndex:this.zIndex+10,events:{"Item:onSelect":this.handleUserSelectorChanges.bind(this),"Item:onDeselect":this.handleUserSelectorChanges.bind(this)},entities:[{id:"user",options:{inviteGuestLink:true,emailUsers:true}},{id:"project"},{id:"department",options:{selectMode:"usersAndDepartments"}},{id:"meta-user",options:{"all-users":true}}],searchTabOptions:{stubOptions:{title:h.Loc.getMessage("EC_USER_DIALOG_404_TITLE"),subtitle:h.Loc.getMessage("EC_USER_DIALOG_404_SUBTITLE"),icon:"/bitrix/images/calendar/search-email.svg",iconOpacity:100,arrow:true}}})}this.userSelectorDialog.show()}))}if(this.DOM.moreLink){h.Event.bind(this.DOM.moreLink,"click",this.showMoreAttendeesPopup.bind(this))}this.planner=new n.Planner({wrap:this.DOM.plannerOuterWrap,minWidth:ke.PLANNER_WIDTH,width:ke.PLANNER_WIDTH,showEntryName:false,locked:!this.plannerFeatureEnabled,dayOfWeekMonthFormat:this.dayOfWeekMonthFormat});h.Event.bind(this.DOM.informWrap,"click",(()=>{this.setInformValue(!this.meetingNotifyValue);this.emit("onNotifyChange")}));this.DOM.attendeesLabel.innerHTML=h.Text.encode(h.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()){h.Event.bind(this.DOM.hideGuestsWrap,"click",(()=>{this.setHideGuestsValue(!this.hideGuests)}))}}setValue({attendeesEntityList:e,attendees:t,location:i,notify:s,hideGuests:a,viewMode:n,entry:o}){var r,c;this.attendeesEntityList=h.Type.isArray(e)?e:[];this.attendeesPreselectedItems=this.attendeesEntityList.map((e=>[e.entityId,e.id]));this.entry=o;this.entryId=this.entry.id;this.setEntityList(this.attendeesEntityList);this.setInformValue(s);this.setLocationValue(i);if(h.Type.isArray(t)){this.displayAttendees(t)}this.refreshPlannerStateDebounce();let u=this.getDateTime();if(u){this.planner.updateSelector(u.from,u.to,u.fullDay)}if(this.entryId&&this.entry&&this.entry.data["PARENT_ID"]&&this.entry.data["EVENT_TYPE"]==="#shared#"&&this.entry.getCurrentStatus()!==false){h.Dom.clean(this.DOM.videocallWrap);h.Dom.removeClass(this.DOM.videocallWrap,"calendar-videocall-hidden");this.conferenceButton=h.Tag.render(Be||(Be=Ne` <div class="calendar-text-link --gray">${0}</div> `),h.Loc.getMessage("EC_CONFERENCE_START"));h.Event.bind(this.conferenceButton,"click",this.handleVideoconferenceButtonClick.bind(this));h.Dom.append(this.conferenceButton,this.DOM.videocallWrap)}else if((r=BX)!=null&&(c=r.Intranet)!=null&&c.ControlButton&&this.DOM.videocallWrap&&this.entryId&&this.entry.getCurrentStatus()!==false){h.Dom.clean(this.DOM.videocallWrap);h.Dom.removeClass(this.DOM.videocallWrap,"calendar-videocall-hidden");this.intranetControllButton=new l.ControlButton({container:this.DOM.videocallWrap,entityType:"calendar_event",entityId:this.entry.parentId,mainItem:"chat",entityData:{dateFrom:d.Util.formatDate(this.entry.from),parentId:this.entry.parentId},analyticsLabel:{formType:"compact"}});if(h.Type.isElementNode(this.intranetControllButton.button)){this.intranetControllButton.button.setAttribute("data-role","videocallButton")}}else if(this.DOM.videocallWrap){h.Dom.addClass(this.DOM.videocallWrap,"calendar-videocall-hidden")}this.setHideGuestsValue(a)}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()){h.Dom.addClass(this.DOM.outerWrap,"user-selector-edit-mode");this.planner.show();this.planner.showLoader()}}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}).then((t=>{for(let e in t.data.accessibility){if(t.data.accessibility.hasOwnProperty(e)){this.loadedAccessibilityData[e]=t.data.accessibility[e]}}if(h.Type.isArray(t.data.entries)){t.data.entries.forEach((e=>{if(e.type==="user"&&!this.prevUserList.includes(parseInt(e.id))){this.prevUserList.push(parseInt(e.id))}}))}if(h.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(h.Type.isObject(n)&&h.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,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(h.Type.isArray(e.data.entries)){e.data.entries.forEach((e=>{if(e.type==="user"&&!this.prevUserList.includes(parseInt(e.id))){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,entryLocation:this.entry.data.LOCATION||"",ownerId:this.ownerId,type:this.type,entityList:e.entityList||[],dateFrom:d.Util.formatDate(this.planner.scaleDateFrom),dateTo:d.Util.formatDate(this.planner.scaleDateTo),timezone:e.timezone||"",location:e.location||"",entries:e.entrieIds||false,prevUserList:e.prevUserList||[]}})}setDateTime(e,t=false){this.dateTime=e;this.planner.currentFromDate=e.from;this.planner.currentToDate=e.to;if(this.planner&&t){this.planner.updateSelector(e.from,e.to,e.fullDay)}else if(this.planner){let t=parseInt(e.from.getHours())+Math.floor(e.from.getMinutes()/60);let i=parseInt(e.to.getHours())+Math.floor(e.to.getMinutes()/60);if(t!==0&&t<=this.planner.shownScaleTimeFrom||i!==0&&i!==23&&i+1>=this.planner.shownScaleTimeTo){this.planner.updateSelector(e.from,e.to,e.fullDay)}}}getDateTime(){return this.dateTime}setLocationValue(e){this.location=e}getLocationValue(){return this.location}displayAttendees(e=[]){h.Dom.clean(this.DOM.attendeesList);this.attendeeList=u.AttendeesList.sortAttendees(e);const t=this.attendeeList.accepted.length+this.attendeeList.requested.length;this.emit("onDisplayAttendees",new r.BaseEvent({data:{usersCount:t}}));const i=Math.min(this.attendeeList.accepted.length,ke.MAX_USER_COUNT_DISPLAY);if(i>0){for(let e=0;e<i;e++){this.attendeeList.accepted[e].shown=true;this.DOM.attendeesList.appendChild(ke.getUserAvatarNode(this.attendeeList.accepted[e]))}}if(i>1){this.DOM.attendeesLabel.innerHTML=h.Text.encode(h.Loc.getMessage("EC_ATTENDEES_LABEL_NUM")).replace("#COUNT#",`<span>(</span>${this.attendeeList.accepted.length}<span>)</span>`)}else{this.DOM.attendeesLabel.innerHTML=h.Text.encode(h.Loc.getMessage("EC_ATTENDEES_LABEL_ONE"))}if(e.length>1){this.DOM.moreLink.innerHTML=h.Text.encode(h.Loc.getMessage("EC_ATTENDEES_ALL_COUNT").replace("#COUNT#",e.length));h.Dom.show(this.DOM.moreLink)}else{h.Dom.hide(this.DOM.moreLink)}if(this.hasExternalEmailUsers(e)&&this.isPlannerDisplayed()&&!this.isReadOnly()){this.showHideGuestsOption()}else{this.hideHideGuestsOption()}}static getUserAvatarNode(e){let t,i=e.AVATAR||e.SMALL_AVATAR;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=h.Tag.render(Se||(Se=Ne`<div title="${0}" class="ui-icon ${0}"><i></i></div>`),h.Text.encode(e.DISPLAY_NAME),i)}else{t=h.Tag.render(xe||(xe=Ne` <img title="${0}" class="calendar-member" id="simple_popup_${0}" src="${0}" >`),h.Text.encode(e.DISPLAY_NAME),parseInt(e.ID),encodeURI(i))}return t}showMoreAttendeesPopup(){new u.AttendeesList(this.DOM.moreLink,this.attendeeList).showPopup()}setInformValue(e){if(h.Type.isBoolean(e)){const t="calendar-field-container-inform-off";this.meetingNotifyValue=e;if(this.meetingNotifyValue){h.Dom.removeClass(this.DOM.informWrap,t);this.DOM.informWrap.title=h.Loc.getMessage("EC_NOTIFY_OPTION_ON_TITLE");this.DOM.informWrapText.innerHTML=h.Loc.getMessage("EC_NOTIFY_OPTION")}else{h.Dom.addClass(this.DOM.informWrap,t);this.DOM.informWrap.title=h.Loc.getMessage("EC_NOTIFY_OPTION_OFF_TITLE");this.DOM.informWrapText.innerHTML=h.Loc.getMessage("EC_DONT_NOTIFY_OPTION")}}}getInformValue(e){return this.meetingNotifyValue}setViewMode(e){this.readOnlyMode=e;if(this.readOnlyMode){h.Dom.addClass(this.DOM.outerWrap,"calendar-userselector-readonly")}else{h.Dom.removeClass(this.DOM.outerWrap,"calendar-userselector-readonly")}}isPlannerDisplayed(){return this.planner.isShown()}hasExternalEmailUsers(e=[]){return!!e.find((e=>e.EMAIL_USER))||!!this.getEntityList().find((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="";d.Util.initHintNode(this.DOM.hideGuestsWrap.querySelector(".calendar-hide-members-helper"))}hideHideGuestsOption(){this.DOM.hideGuestsWrap.style.display="none"}setHideGuestsValue(e=true){this.hideGuests=e;if(h.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(h.Type.isElementNode(t)){t.innerHTML=this.hideGuests?h.Loc.getMessage("EC_HIDE_GUEST_NAMES"):h.Loc.getMessage("EC_SHOW_GUEST_NAMES")}}preparedDataAccessibility(e){return e.map((e=>n.Planner.prepareAccessibilityItem(e)))}clearAccessibilityData(e){if(h.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"]}}).then((e=>{if(top.window.BXIM&&e.data&&e.data.chatId){top.BXIM.openMessenger("chat"+parseInt(e.data.chatId));return null}alert(h.Loc.getMessage("EC_CONFERENCE_ERROR"));return null}),(e=>{alert(h.Loc.getMessage("EC_CONFERENCE_ERROR"));return null}))}}ke.VIEW_MODE="view";ke.EDIT_MODE="edit";ke.MAX_USER_COUNT_DISPLAY=8;ke.PLANNER_WIDTH=550;class Ae extends r.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=h.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:h.Loc.getMessage("EC_REINVITE_TITLE"),closeIcon:{right:"12px",top:"10px"},className:"reinvite-popup-window",content:e,events:{},cacheable:false});new BX.UI.Button({text:h.Loc.getMessage("EC_REINVITE_YES"),className:"ui-btn ui-btn-primary",events:{click:()=>{this.emit("onSelect",new r.BaseEvent({data:{sendInvitesAgain:true}}));this.close()}}}).renderTo(e);new BX.UI.Button({text:h.Loc.getMessage("EC_REINVITE_NO"),className:"ui-btn ui-btn-light-border",events:{click:()=>{this.emit("onSelect",new r.BaseEvent({data:{sendInvitesAgain:false}}));this.close()}}}).renderTo(e);this.dialog.show()}close(){if(this.dialog){this.dialog.close()}}}let Re=e=>e,Ve;class Pe extends r.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=h.Type.isArray(e.mailboxList)?e.mailboxList:[];this.DOM.componentWrap=this.DOM.select.parentNode.appendChild(h.Tag.render(Ve||(Ve=Re`<div style="display: none;"></div>`)));this.allowAddNewEmail=e.allowAddNewEmail;this.checkValueDebounce=h.Runtime.debounce(this.checkValue,50,this);this.create()}create(){this.setSelectValues();h.Event.bind(this.DOM.select,"change",this.checkValueDebounce);h.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(){h.Dom.clean(this.DOM.select);this.DOM.select.options.add(new Option(h.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(h.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 Xe=e=>e,Ue;class We extends r.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=h.Tag.render(Ue||(Ue=Xe`<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>`),h.Loc.getMessage("EC_CONFIRMED_EMAIL_TEXT_1"),h.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:h.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:h.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=d.Util.getUserSettings();e.sendFromEmail=this.emailSelectorControl.getValue();d.Util.setUserSettings(e);BX.userOptions.save("calendar","user_settings","sendFromEmail",e.sendFromEmail);this.emit("onSelect",new r.BaseEvent({data:{sendFromEmail:e.sendFromEmail}}));this.close()}}}}),new BX.UI.Button({text:h.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");h.Dom.addClass(this.DOM.select,BX.UI.Button.State.CLOCKING);this.DOM.select.disabled=true;this.emailSelectorControl=new u.EmailSelectorControl({selectNode:this.DOM.select,allowAddNewEmail:true});h.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(d.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");h.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"){h.Dom.removeClass(this.DOM.processButton,BX.UI.Button.State.DISABLED)}else{h.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 He=e=>e,ze;class Fe extends r.EventEmitter{constructor(){super();this.Z_INDEX=3200;this.EXPAND_LICENSE_URL="/settings/license_all.php";this.WIDTH=480;this.DOM={};this.setEventNamespace("BX.Calendar.Controls.EmailLimitationDialog");this.id="email-limitation-dialog-"+Math.round(Math.random()*1e4)}show(){const e=d.Util.getEventWithEmailGuestAmount();const t=d.Util.isEventWithEmailGuestAllowed();if(e===4){this.text=h.Loc.getMessage("EC_EMAIL_LIMIT_5")}else if(e===8){this.text=h.Loc.getMessage("EC_EMAIL_LIMIT_9")}else{this.text=h.Loc.getMessage("EC_EMAIL_LIMIT_DENY")}this.subText=h.Loc.getMessage("EC_EMAIL_LIMIT_SUBTEXT");this.DOM.content=h.Tag.render(ze||(ze=He`<div> <div class="calendar-email-limit-text">${0}</div> <div class="calendar-email-limit-subtext">${0}</div> </div>`),this.text,this.subText);this.dialog=this.getDialogPopup();this.dialog.subscribe("onClose",(()=>{this.emit("onClose")}));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:h.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:h.Loc.getMessage("EC_EMAIL_LIMIT_EXPAND_PLAN"),className:`ui-btn ui-btn-primary ui-btn-icon-plan`,events:{click:()=>{window.open(this.EXPAND_LICENSE_URL,"_blank")}}}),new BX.UI.Button({text:d.Util.isEventWithEmailGuestAllowed()?h.Loc.getMessage("EC_SEC_SLIDER_CLOSE"):h.Loc.getMessage("EC_EMAIL_LIMIT_SAVE_WITHOUT"),className:`ui-btn ui-btn-link`,events:{click:this.close.bind(this)}})]})}close(){if(this.dialog){this.dialog.close()}}}class $e{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(h.Type.isPlainObject(e.dataset)){t.appendChild(u.UserPlannerSelector.getUserAvatarNode(e.dataset.user))}}))}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:h.Loc.getMessage("EC_ATTENDEES_Y_NUM")},{code:"requested",title:h.Loc.getMessage("EC_ATTENDEES_Q_NUM")},{code:"declined",title:h.Loc.getMessage("EC_ATTENDEES_N_NUM")}].forEach((t=>{let 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",onclick:()=>{BX.SidePanel.Instance.open(t.URL,{loader:"intranet:profile",cacheable:false,allowChangeHistory:false,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"))}}}e.Reminder=y;e.Location=S;e.UserSelector=x;e.ColorSelector=V;e.SectionSelector=G;e.RepeatSelector=j;e.TimeSelector=p;e.SelectInput=q;e.PopupDialog=K;e.ViewSelector=se;e.LineViewSelector=le;e.AddButton=re;e.MeetingStatusControl=de;e.ConfirmStatusDialog=he;e.ConfirmEditDialog=ce;e.ConfirmDeleteDialog=ue;e.DateTimeControl=we;e.BusyUsersDialog=_e;e.UserPlannerSelector=ke;e.ReinviteUserDialog=Ae;e.EmailSelectorControl=Pe;e.ConfirmedEmailDialog=We;e.EmailLimitationDialog=Fe;e.AttendeesList=$e})(this.BX.Calendar.Controls=this.BX.Calendar.Controls||{},BX.Calendar,BX.Calendar,BX,BX.Calendar,BX.Calendar,BX.UI.EntitySelector,BX.Intranet,BX.Event,BX.Calendar,BX,BX.Main,BX.Calendar.Controls); //# sourceMappingURL=controls.bundle.map.js
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings