AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.149.238.29
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/js/calendar/userfield/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/js/calendar/userfield/resourcebooking-webform-field.min.js
(function(){"use strict";BX.namespace("BX.Calendar.UserField");function e(e){this.params=e}BX.Calendar.UserField.CrmFormResourceBookingFieldLiveController=e;e.prototype={init:function(){this.previewFieldLayout=new a({wrap:this.params.wrap,title:this.getCaption(),settings:this.getSettings()});this.previewFieldLayout.build()},getCaption:function(){return this.params.field.caption},getSettings:function(){return{caption:this.getCaption(),data:this.params.field.settings_data,userfieldSettings:{useUsers:true,useResources:true}}}};function t(e){this.settings=e.settings||{};this.showTitle=e.displayTitle!==false;this.title=e.title||"";this.DOM={wrap:e.wrap}}BX.Calendar.UserField.ResourceBookingFieldLayoutAbstract=t;t.prototype={build:function(){this.controls={};this.DOM.outerWrap=this.DOM.wrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-wrapper calendar-resbook-webform-wrapper-form"}}));this.DOM.innerWrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-inner"}}));if(this.settings.userfieldSettings.useUsers||this.settings.userfieldSettings.useResources){this.displayTitle();this.displayUsersControl();this.displayResourcesControl();this.displayServicesControl();this.displayDurationControl();this.displayDateControl();this.displayTimeControl()}else{this.displayWarning(BX.message("WEBF_RES_BOOKING_WARNING"))}},destroy:function(){BX.remove(this.DOM.outerWrap)},displayTitle:function(){if(this.showTitle){this.DOM.titleWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-title-text"}}));this.updateTitle(this.title)}},updateTitle:function(e){if(this.showTitle){this.title=e;BX.adjust(this.DOM.titleWrap,{text:this.title})}},displayWarning:function(e){this.DOM.warningWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"ui-alert ui-alert-warning ui-alert-text-center ui-alert-icon-warning"},style:{marginBottom:0},html:'<span class="ui-alert-message">'+e+"</span>"}))},displayUsersControl:function(){if(this.settings.userfieldSettings.useUsers){if(this.settings.data.users.value===null&&BX.type.isArray(this.settings.userfieldSettings.users)){this.settings.data.users.value=this.settings.userfieldSettings.users}this.controls.users=new o({outerWrap:this.DOM.innerWrap,data:this.settings.data.users,userIndex:this.settings.userfieldSettings.userIndex});this.controls.users.display()}},displayResourcesControl:function(){if(this.settings.userfieldSettings.useResources){if(this.settings.data.resources.value===null&&BX.type.isArray(this.settings.userfieldSettings.resources)){this.settings.data.resources.value=[];this.settings.userfieldSettings.resources.forEach(function(e){this.settings.data.resources.value.push(parseInt(e.id))},this)}this.controls.resources=new l({outerWrap:this.DOM.innerWrap,data:this.settings.data.resources,resourceList:this.settings.userfieldSettings.resources});this.controls.resources.display()}},displayServicesControl:function(){if(this.settings.userfieldSettings.useServices){if(this.settings.data.services.value===null&&BX.type.isArray(this.settings.userfieldSettings.services)){this.settings.data.services.value=[];this.settings.userfieldSettings.services.forEach(function(e){this.settings.data.services.value.push(e.name)},this)}this.controls.services=new n({outerWrap:this.DOM.innerWrap,data:this.settings.data.services,serviceList:this.settings.userfieldSettings.services});this.controls.services.display()}},displayDurationControl:function(){if(!this.settings.userfieldSettings.useServices){this.controls.duration=new h({outerWrap:this.DOM.innerWrap,data:this.settings.data.duration,fullDay:this.settings.userfieldSettings.fullDay});this.controls.duration.display()}},displayDateControl:function(){this.controls.date=new p({outerWrap:this.DOM.innerWrap,data:this.settings.data.date});this.controls.date.display()},displayTimeControl:function(){if(!this.settings.userfieldSettings.fullDay){this.controls.time=new u({outerWrap:this.DOM.innerWrap,data:this.settings.data.time});this.controls.time.display()}},refreshLayout:function(e){for(var t in this.controls){if(this.controls.hasOwnProperty(t)&&BX.type.isFunction(this.controls[t].refresh)){this.controls[t].refresh(e[t]||this.settings.data[t])}}},getInnerWrap:function(){return this.DOM.innerWrap},getOuterWrap:function(){return this.DOM.outerWrap}};function s(){s.superclass.constructor.apply(this,arguments)}BX.Calendar.UserField.ResourceBookingFieldViewLayout=s;BX.extend(s,t);function i(){i.superclass.constructor.apply(this,arguments)}BX.Calendar.UserField.ResourceBookingFieldPreviewLayout=i;BX.extend(i,t);i.prototype.build=function(){s.superclass.build.apply(this);this.DOM.outerWrap.className="calendar-resbook-webform-wrapper calendar-resbook-webform-wrapper-preview calendar-resbook-webform-wrapper-dark"};function a(){a.superclass.constructor.apply(this,arguments)}BX.extend(a,t);a.prototype.build=function(){a.superclass.build.apply(this);this.DOM.outerWrap.className="calendar-resbook-webform-wrapper"};function r(e){this.name=null;this.classNames={wrap:e.wrapClassName||"calendar-resbook-webform-block",innerWrap:"calendar-resbook-webform-block-inner",title:"calendar-resbook-webform-block-title",field:"calendar-resbook-webform-block-field"};this.DOM={outerWrap:e.outerWrap,wrap:null,dataWrap:null,innerWrap:null,labelWrap:null};this.data=e.data;this.shown=false}r.prototype={isDisplayed:function(){return this.data.show!=="N"},isShown:function(){return this.shown},display:function(){this.DOM.wrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:this.classNames.wrap}}));this.DOM.dataWrap=this.DOM.wrap.appendChild(BX.create("div",{attrs:{"data-bx-resource-data-wrap":"Y"}}));if(this.isDisplayed()){this.show({animation:false})}},refresh:function(e){this.refreshLabel(e);this.data=e;if(this.setDataConfig()){if(this.isDisplayed()){this.show({animation:true})}else{this.hide({animation:true})}}this.data=e},setDataConfig:function(){return true},refreshLabel:function(e){if(this.data.label!==e.label){BX.adjust(this.DOM.labelWrap,{text:e.label})}},show:function(){if(this.DOM.innerWrap){this.hide()}this.DOM.innerWrap=this.DOM.wrap.appendChild(BX.create("div",{props:{className:this.classNames.innerWrap}}));if(this.data.label||this.label){this.DOM.labelWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:this.classNames.title},text:this.data.label||this.label}))}this.DOM.controlWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:this.classNames.field}}));this.displayControl();this.shown=true},hide:function(){BX.remove(this.DOM.innerWrap);this.DOM.innerWrap=null;this.shown=false},displayControl:function(){},showWarning:function(e){if(this.shown&&this.DOM.wrap&&this.DOM.innerWrap){BX.addClass(this.DOM.wrap,"calendar-resbook-webform-block-error");this.displayErrorText(e||BX.message("WEBF_RES_BOOKING_REQUIRED_WARNING"))}},hideWarning:function(){if(this.DOM.wrap){BX.removeClass(this.DOM.wrap,"calendar-resbook-webform-block-error");if(this.DOM.errorTextWrap){BX.remove(this.DOM.errorTextWrap)}}},displayErrorText:function(e){if(this.DOM.errorTextWrap){BX.remove(this.DOM.errorTextWrap)}this.DOM.errorTextWrap=this.DOM.innerWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-error-text"},text:e}))}};function o(e){o.superclass.constructor.apply(this,arguments);this.name="ViewFormUsersControl";this.data=e.data;this.userList=[];this.userIndex={};this.values=[];this.defaultMode="auto";this.previewMode=e.previewMode===undefined;this.autoSelectDefaultValue=e.autoSelectDefaultValue;this.changeValueCallback=e.changeValueCallback;this.handleSettingsData(this.data,e.userIndex)}BX.extend(o,r);BX.Calendar.UserField.ViewFormUsersControl=o;o.prototype.displayControl=function(){this.selectedValue=this.getSelectedUser();this.dropdownSelect=new f({wrap:this.DOM.controlWrap,values:this.userList,selected:this.selectedValue,handleChangesCallback:BX.proxy(this.handleChanges,this)});this.dropdownSelect.build()};o.prototype.refresh=function(e,t){this.refreshLabel(e);this.data=e;this.handleSettingsData(this.data,t);this.selectedValue=this.getSelectedUser();if(this.dropdownSelect){this.dropdownSelect.setSettings({values:this.userList,selected:this.selectedValue})}if(this.setDataConfig()){if(this.isDisplayed()){this.show({animation:true})}else{this.hide({animation:true})}}};o.prototype.handleSettingsData=function(e,t){if(BX.type.isPlainObject(t)){for(var s in t){if(t.hasOwnProperty(s)){this.userIndex[s]=t[s]}}}this.defaultMode=this.data.defaultMode==="none"?"none":"auto";var i=[];this.userList=[];if(this.data.value){var a=BX.type.isArray(this.data.value)?this.data.value:this.data.value.split("|");a.forEach(function(e){e=parseInt(e);if(e>0){i.push(e);if(this.userIndex[e]){this.userList.push({id:e,title:this.userIndex[e].displayName})}}},this)}this.values=i};o.prototype.getSelectedUser=function(){var e=null;if(this.dropdownSelect){e=this.dropdownSelect.getSelectedValues();e=BX.type.isArray(e)&&e.length?e[0]:null}if(!e&&this.previewMode&&this.data.defaultMode==="auto"&&this.userList&&this.userList[0]){e=this.userList[0].id}if(!e&&this.autoSelectDefaultValue){e=this.autoSelectDefaultValue}return e};o.prototype.setSelectedUser=function(e){if(this.dropdownSelect){this.dropdownSelect.setSelectedValues([e])}else{this.autoSelectDefaultValue=parseInt(e)}};o.prototype.handleChanges=function(e){if(!this.previewMode&&BX.type.isFunction(this.changeValueCallback)){this.changeValueCallback(e[0]||null)}};function l(e){l.superclass.constructor.apply(this,arguments);this.name="ViewFormResourcesControl";this.data=e.data;this.allResourceList=e.resourceList;this.autoSelectDefaultValue=e.autoSelectDefaultValue;this.changeValueCallback=e.changeValueCallback;this.handleSettingsData(e.data)}BX.extend(l,r);BX.Calendar.UserField.ViewFormResourcesControl=l;l.prototype.handleSettingsData=function(e){if(!BX.type.isArray(e.value)){var t=[];if(e.value){e.value.split("|").forEach(function(e){if(parseInt(e)>0){t.push(parseInt(e))}})}this.data.value=t}this.resourceList=[];if(BX.type.isArray(this.allResourceList)){this.allResourceList.forEach(function(e){if(BX.util.in_array(parseInt(e.id),this.data.value)){this.resourceList.push(e)}},this)}this.setSelectedValues(this.getSelectedValues())};l.prototype.displayControl=function(){this.dropdownSelect=new f({wrap:this.DOM.controlWrap,values:this.resourceList,selected:this.selectedValues,multiple:this.data.multiple==="Y",handleChangesCallback:this.changeValueCallback});this.dropdownSelect.build()};l.prototype.refresh=function(e){this.refreshLabel(e);this.data=e;this.handleSettingsData(this.data);this.setSelectedValues(this.getSelectedValues());if(this.dropdownSelect){this.dropdownSelect.setSettings({values:this.resourceList,selected:this.selectedValues,multiple:this.data.multiple==="Y"})}if(this.setDataConfig()){if(this.isDisplayed()){this.show({animation:true})}else{this.hide({animation:true})}}};l.prototype.getSelectedValues=function(){var e=null;if(this.dropdownSelect){e=this.dropdownSelect.getSelectedValues()}if(!e&&this.autoSelectDefaultValue){e=[this.autoSelectDefaultValue]}if(!e&&this.data.defaultMode==="auto"){if(this.resourceList&&this.resourceList[0]){e=[this.resourceList[0].id]}}return e};l.prototype.setSelectedValues=function(e){this.selectedValues=e};l.prototype.setSelectedResource=function(e){if(this.dropdownSelect){this.dropdownSelect.setSelectedValues([e])}else{this.autoSelectDefaultValue=parseInt(e);this.selectedValues=[e]}};function n(e){n.superclass.constructor.apply(this,arguments);this.name="ViewFormServicesControl";this.data=e.data;this.serviceList=[];this.allServiceList=e.serviceList||[];this.values=[];this.changeValueCallback=e.changeValueCallback;if(e.selectedValue){this.setSelectedService(e.selectedValue)}this.handleSettingsData(this.data)}BX.extend(n,r);BX.Calendar.UserField.ViewFormServicesControl=n;n.prototype.displayControl=function(){this.dropdownSelect=new f({wrap:this.DOM.controlWrap,values:this.serviceList,selected:this.getSelectedService(),handleChangesCallback:BX.proxy(function(e){if(e&&e[0]){this.setSelectedService(e[0]);this.changeValueCallback()}},this)});this.dropdownSelect.build()};n.prototype.refresh=function(e){this.refreshLabel(e);this.data=e;this.handleSettingsData(this.data);if(this.dropdownSelect){this.dropdownSelect.setSettings({values:this.serviceList,selected:this.getSelectedService()})}if(this.setDataConfig()){if(this.isDisplayed()){this.show({animation:true})}else{this.hide({animation:true})}}};n.prototype.handleSettingsData=function(){this.serviceIndex={};if(BX.type.isArray(this.allServiceList)){this.allServiceList.forEach(function(e){if(BX.type.isPlainObject(e)&&BX.type.isString(e.name)&&BX.util.trim(e.name)!==""){this.serviceIndex[this.prepareServiceId(e.name)]=e}},this)}this.serviceList=[];if(this.data.value){var e=BX.type.isArray(this.data.value)?this.data.value:this.data.value.split("|");e.forEach(function(e){var t=this.serviceIndex[this.prepareServiceId(e)];if(BX.type.isPlainObject(t)&&BX.type.isString(t.name)&&BX.util.trim(t.name)!==""){this.serviceList.push({id:this.prepareServiceId(t.name),title:t.name+" - "+BX.Calendar.UserField.ResourceBooking.getDurationLabel(t.duration)})}},this)}};n.prototype.setSelectedService=function(e){this.selectedService=e};n.prototype.getSelectedService=function(e){return e!==true?this.selectedService||null:this.serviceIndex[this.prepareServiceId(this.selectedService)]||null};n.prototype.prepareServiceId=function(e){return BX.type.isString(e)?BX.translit(e).replace(/[^a-z0-9_]/gi,"_"):e};function h(e){h.superclass.constructor.apply(this,arguments);this.name="ViewFormDurationControl";this.data=e.data;this.durationList=BX.Calendar.UserField.ResourceBooking.getDurationList(e.fullDay);this.changeValueCallback=e.changeValueCallback;this.defaultValue=e.defaultValue||this.data.defaultValue;this.handleSettingsData(e.data)}BX.extend(h,r);BX.Calendar.UserField.ViewFormDurationControl=h;h.prototype.handleSettingsData=function(){this.durationItems=[];if(BX.type.isArray(this.durationList)){this.durationList.forEach(function(e){this.durationItems.push({id:e.value,title:e.label})},this)}};h.prototype.displayControl=function(){this.DOM.durationInput=this.DOM.controlWrap.appendChild(BX.create("INPUT",{attrs:{value:this.data.defaultValue||null,type:"text"},props:{className:"calendar-resbook-webform-block-input calendar-resbook-webform-block-input-dropdown"}}));this.durationControl=new BX.Calendar.UserField.ResourceBooking.SelectInput({input:this.DOM.durationInput,values:this.durationList,value:this.data.defaultValue||null,editable:this.data.manualInput==="Y",defaultValue:this.defaultValue,setFirstIfNotFound:true,onChangeCallback:this.changeValueCallback})};h.prototype.refresh=function(e){this.refreshLabel(e);this.data=e;this.handleSettingsData(this.data);if(this.setDataConfig()){if(this.isDisplayed()){this.show({animation:true});if(this.durationControl){this.durationControl.setValue(this.data.defaultValue||null)}}else{this.hide({animation:true})}}};h.prototype.getSelectedValue=function(){var e=null;if(this.durationControl){e=BX.Calendar.UserField.ResourceBooking.parseDuration(this.durationControl.getValue())}else{e=parseInt(this.defaultValue)}return e};function p(e){this.DOM={outerWrap:e.outerWrap,wrap:null};this.DATE_FORMAT=BX.date.convertBitrixFormat(BX.message("FORMAT_DATE"));this.data=e.data||{};this.changeValueCallback=e.changeValueCallback;this.requestDataCallback=e.requestDataCallback;this.previewMode=e.previewMode===undefined;this.allowOverbooking=e.allowOverbooking;this.setDataConfig();this.displayed=true}BX.extend(p,r);BX.Calendar.UserField.DateSelector=p;p.prototype.display=function(e){e=e||{};this.setDateIndex(e.availableDateIndex);this.setCurrentDate(e.selectedValue);this.DOM.wrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block"}}));this.DOM.innerWrap=this.DOM.wrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-inner"}}));if(this.data.label){this.DOM.labelWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-title"},text:this.data.label+"*"}))}this.displayControl();this.shown=true};p.prototype.refresh=function(e,t){t=t||{};this.setDateIndex(t.availableDateIndex);this.setCurrentDate(t.selectedValue);this.data=e;BX.adjust(this.DOM.labelWrap,{text:this.data.label+"*"});if(this.setDataConfig()){BX.remove(this.DOM.controlWrap);this.displayControl()}if(this.style==="line"){this.lineDateControl.refreshDateAvailability()}};p.prototype.setDataConfig=function(){var e=this.data.style==="line"?"line":"popup",t=this.data.start==="today"?"today":"free",s=this.style!==e||this.start!==t;this.style=e;this.start=t;return s};p.prototype.hide=function(){BX.remove(this.DOM.innerWrap);this.DOM.innerWrap=null};p.prototype.displayControl=function(){this.DOM.controlWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-date"}}));if(this.style==="popup"){this.DOM.controlWrap.className="calendar-resbook-webform-block-calendar";this.popupSateControl=new c({wrap:this.DOM.controlWrap,isDateAvailable:BX.proxy(this.isDateAvailable,this),onChange:BX.proxy(function(e){this.onChange(e)},this)});this.popupSateControl.build();this.popupSateControl.setValue(this.getValue())}else if(this.style==="line"){this.DOM.controlWrap.className="calendar-resbook-webform-block-date";this.lineDateControl=new d({wrap:this.DOM.controlWrap,isDateAvailable:BX.proxy(this.isDateAvailable,this),onChange:BX.proxy(this.onChange,this)});this.lineDateControl.build();this.lineDateControl.setValue(this.getValue())}};p.prototype.setCurrentDate=function(e){if(BX.type.isDate(e)){this.currentDate=e}};p.prototype.setDateIndex=function(e){if(BX.type.isPlainObject(e)){this.availableDateIndex=e}};p.prototype.isDateLoaded=function(e){if(BX.type.isDate(e)&&!this.isItPastDate(e)&&this.availableDateIndex){if(this.availableDateIndex[BX.date.format(this.DATE_FORMAT,e)]!==undefined){return true}if(BX.type.isFunction(this.requestDataCallback)){this.requestDataCallback({date:e})}}return false};p.prototype.isDateAvailable=function(e){if(this.previewMode||this.allowOverbooking){return true}if(BX.type.isDate(e)&&!this.isItPastDate(e)&&this.availableDateIndex){var t=BX.date.format(this.DATE_FORMAT,e);if(this.availableDateIndex[t]===undefined){if(BX.type.isFunction(this.requestDataCallback)){this.requestDataCallback({date:e})}return false}else{return this.availableDateIndex[t]}}return false};p.prototype.isItPastDate=function(e){if(BX.type.isDate(e)){var t=new Date,s=new Date(e.getTime());t.setHours(0,0,0,0);s.setHours(0,0,0,0);return s.getTime()<t.getTime()}return false};p.prototype.refreshCurrentValue=function(){this.onChange(this.getDisplayedValue())};p.prototype.getDisplayedValue=function(){return this.style==="popup"?this.popupSateControl.getValue():this.lineDateControl.getValue()};p.prototype.onChange=function(e){if(BX.type.isFunction(this.changeValueCallback)){var t=e;if(!BX.type.isDate(t)){t=this.getDisplayedValue()}this.setCurrentDate(e);this.changeValueCallback(e,t,this.isDateAvailable(t))}};p.prototype.getValue=function(){if(!this.currentDate){this.currentDate=new Date}return this.currentDate};function c(e){this.DOM={outerWrap:e.wrap,wrap:null};this.value=null;this.isDateAvailable=BX.type.isFunction(e.isDateAvailable)?e.isDateAvailable:function(){return true};this.onChange=BX.type.isFunction(e.onChange)?e.onChange:function(){}}c.prototype={build:function(){this.DOM.wrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-strip"},events:{click:BX.proxy(this.handleClick,this)}}));this.DOM.valueInput=this.DOM.wrap.appendChild(BX.create("input",{attrs:{type:"hidden",value:""}}));this.DOM.previousArrow=this.DOM.wrap.appendChild(BX.create("span",{attrs:{className:"calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-prev","data-bx-resbook-date-meta":"previous"}}));this.DOM.stateWrap=this.DOM.wrap.appendChild(BX.create("span",{attrs:{className:"calendar-resbook-webform-block-strip-text","data-bx-resbook-date-meta":"calendar"}}));this.DOM.stateWrapDate=this.DOM.stateWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-strip-date"}}));this.DOM.stateWrapDay=this.DOM.stateWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-strip-day"}}));this.DOM.nextArrow=this.DOM.wrap.appendChild(BX.create("span",{attrs:{className:"calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-next","data-bx-resbook-date-meta":"next"}}))},getValue:function(){return this.value},setValue:function(e){this.value=e;BX.adjust(this.DOM.stateWrapDate,{text:BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_DATE_LINE"),e)});BX.adjust(this.DOM.stateWrapDay,{text:BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_DAY_LINE"),e)});if(!this.isDateAvailable(e)||!BX.type.isDate(e)){this.onChange(false)}else{this.onChange(this.value)}},handleClick:function(e){var t,s=e.target||e.srcElement;if(s.hasAttribute("data-bx-resbook-date-meta")||(s=BX.findParent(s,{attribute:"data-bx-resbook-date-meta"},this.DOM.wrap))){var i=s.getAttribute("data-bx-resbook-date-meta");if(i==="previous"){t=this.getValue();t.setDate(t.getDate()-1);this.setValue(t)}else if(i==="next"){t=this.getValue();t.setDate(t.getDate()+1);this.setValue(t)}else if(i==="calendar"){this.openCalendarPopup()}}},openCalendarPopup:function(){this.DOM.valueInput.value=BX.date.format(BX.date.convertBitrixFormat(BX.message("FORMAT_DATE")),this.getValue().getTime()/1e3);BX.calendar({node:this.DOM.stateWrap,field:this.DOM.valueInput,bTime:false});if(BX.calendar.get().popup){BX.removeCustomEvent(BX.calendar.get().popup,"onPopupClose",BX.proxy(this.handleCalendarClose,this));BX.addCustomEvent(BX.calendar.get().popup,"onPopupClose",BX.proxy(this.handleCalendarClose,this))}},handleCalendarClose:function(){this.setValue(BX.parseDate(this.DOM.valueInput.value))}};function d(e){e=e||{};this.DOM={outerWrap:e.wrap,wrap:null};this.value=null;this.isDateAvailable=BX.type.isFunction(e.isDateAvailable)?e.isDateAvailable:function(){return true};this.onChange=BX.type.isFunction(e.onChange)?e.onChange:function(){};this.DAYS_DISPLAY_SIZE=30;this.DOM.dayNodes={};this.dayNodeIndex={}}d.prototype={build:function(){this.DOM.monthTitle=this.DOM.outerWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-date-month"}}));this.DOM.wrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-date-range"},events:{click:BX.proxy(this.handleClick,this)}}));this.DOM.controlStaticWrap=this.DOM.wrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-date-range-static-wrap"}}));this.DOM.controlInnerWrap=this.DOM.controlStaticWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-date-range-inner-wrap"}}));this.DOM.valueInput=this.DOM.wrap.appendChild(BX.create("input",{attrs:{type:"hidden",value:""}}));this.fillDays();this.initCustomScroll()},fillDays:function(){var e,t=this.getStartLoadDate(),s=new Date(t.getTime());for(e=0;e<this.DAYS_DISPLAY_SIZE;e++){this.addDateSlot(s);s.setDate(s.getDate()+1)}this.innerWidth=parseInt(this.DOM.controlInnerWrap.offsetWidth)},addDateSlot:function(e){var t=BX.date.format("Y-m-d",e.getTime()/1e3);this.dayNodeIndex[t]=new Date(e.getTime());this.DOM.dayNodes[t]=this.DOM.controlInnerWrap.appendChild(BX.create("div",{attrs:{className:"calendar-resbook-webform-block-date-item"+(this.isDateAvailable(e)?"":" calendar-resbook-webform-block-date-item-off"),"data-bx-resbook-date-meta":t},html:'<div class="calendar-resbook-webform-block-date-item-inner">'+'<span class="calendar-resbook-webform-block-date-number">'+BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_DATE"),e)+"</span>"+'<span class="calendar-resbook-webform-block-date-day">'+BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_DAY_OF_THE_WEEK"),e)+"</span>"+"</div>"}))},refreshDateAvailability:function(){for(var e in this.DOM.dayNodes){if(this.DOM.dayNodes.hasOwnProperty(e)){if(this.isDateAvailable(this.dayNodeIndex[e])){BX.removeClass(this.DOM.dayNodes[e],"calendar-resbook-webform-block-date-item-off")}else{BX.addClass(this.DOM.dayNodes[e],"calendar-resbook-webform-block-date-item-off")}}}},handleClick:function(e){var t,s=e.target||e.srcElement;if(s.hasAttribute("data-bx-resbook-date-meta")||(s=BX.findParent(s,{attribute:"data-bx-resbook-date-meta"},this.DOM.wrap))){var i=s.getAttribute("data-bx-resbook-date-meta");if(i&&(t=BX.parseDate(i,false,"YYYY-MM-DD"))){this.setValue(t)}}},setValue:function(e){if(BX.type.isDate(e)){this.value=e;var t=this.getDayNode(e);if(t){this.setSelected(t)}this.onChange(this.value)}},getValue:function(){return this.value},getDayNode:function(e){var t=BX.date.format("Y-m-d",e.getTime()/1e3);if(this.DOM.dayNodes[t]){return this.DOM.dayNodes[t]}else{this.fillDays(e);if(this.DOM.dayNodes[t]){return this.DOM.dayNodes[t]}}return null},setSelected:function(e){if(this.currentSelected){BX.removeClass(this.currentSelected,"calendar-resbook-webform-block-date-item-select")}this.currentSelected=e;BX.addClass(e,"calendar-resbook-webform-block-date-item-select")},getStartLoadDate:function(){if(!this.startLoadDate){this.startLoadDate=new Date}else{this.startLoadDate.setDate(this.startLoadDate.getDate()+this.DAYS_DISPLAY_SIZE)}return this.startLoadDate},initCustomScroll:function(){var e=this.DOM.wrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-arrow-container"}}));this.DOM.leftArrow=e.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-prev"},events:{click:BX.proxy(this.handlePrevArrowClick,this)}}));this.DOM.rightArrow=e.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-next"},events:{click:BX.proxy(this.handleNextArrowClick,this)}}));this.outerWidth=parseInt(this.DOM.controlStaticWrap.offsetWidth);this.innerWidth=parseInt(this.DOM.controlInnerWrap.offsetWidth);if("onwheel"in document){BX.bind(this.DOM.controlStaticWrap,"wheel",BX.proxy(this.mousewheelScrollHandler,this))}else{BX.bind(this.DOM.controlStaticWrap,"mousewheel",BX.proxy(this.mousewheelScrollHandler,this))}this.checkScrollPosition()},handleNextArrowClick:function(){this.DOM.controlStaticWrap.scrollLeft=this.DOM.controlStaticWrap.scrollLeft+100;this.checkScrollPosition()},handlePrevArrowClick:function(){this.DOM.controlStaticWrap.scrollLeft=Math.max(this.DOM.controlStaticWrap.scrollLeft-100,0);this.checkScrollPosition()},mousewheelScrollHandler:function(e){e=e||window.event;var t=e.deltaY||e.detail||e.wheelDelta;if(Math.abs(t)>0){if(!BX.browser.IsMac()){t=t*3}this.DOM.controlStaticWrap.scrollLeft=Math.max(this.DOM.controlStaticWrap.scrollLeft+t,0);this.checkScrollPosition();return BX.PreventDefault(e)}},checkScrollPosition:function(){if(this.outerWidth<=this.innerWidth){this.DOM.leftArrow.style.display=this.DOM.controlStaticWrap.scrollLeft===0?"none":"";if(this.innerWidth-this.outerWidth-4<=this.DOM.controlStaticWrap.scrollLeft){this.fillDays()}}this.updateMonthTitle()},updateMonthTitle:function(){if(!this.dayNodeOuterWidth){this.dayNodeOuterWidth=this.DOM.controlInnerWrap.childNodes[1].offsetLeft-this.DOM.controlInnerWrap.childNodes[0].offsetLeft;if(!this.dayNodeOuterWidth){return setTimeout(BX.delegate(this.updateMonthTitle,this),100)}}var e,t,s,i,a=Math.floor(this.DOM.controlStaticWrap.scrollLeft/this.dayNodeOuterWidth),r=Math.floor((this.DOM.controlStaticWrap.scrollLeft+this.outerWidth)/this.dayNodeOuterWidth);if(this.DOM.controlInnerWrap.childNodes[a]){s=this.DOM.controlInnerWrap.childNodes[a].getAttribute("data-bx-resbook-date-meta");if(s&&(i=BX.parseDate(s,false,"YYYY-MM-DD"))){e=t=BX.date.format("f",i)}}if(this.DOM.controlInnerWrap.childNodes[r]){s=this.DOM.controlInnerWrap.childNodes[r].getAttribute("data-bx-resbook-date-meta");if(s&&(i=BX.parseDate(s,false,"YYYY-MM-DD"))){t=BX.date.format("f",i)}}if(e&&t){BX.adjust(this.DOM.monthTitle,{text:t===e?e:e+" - "+t})}}};function u(e){this.DOM={outerWrap:e.outerWrap,wrap:null};this.data=e.data||{};this.setDataConfig();this.timeFrom=this.data.timeFrom||e.timeFrom||7;if(e.timeFrom!==undefined){this.timeFrom=e.timeFrom}this.timeTo=this.data.timeTo||20;if(e.timeTo!==undefined){this.timeTo=e.timeTo}this.SLOTS_ROW_AMOUNT=6;this.id="time-selector-"+Math.round(Math.random()*1e3);this.popupSelectId=this.id+"-select-popup";this.previewMode=e.previewMode===undefined;this.changeValueCallback=e.changeValueCallback;this.timezone=e.timezone;this.timezoneOffset=e.timezoneOffset;this.timezoneOffsetLabel=e.timezoneOffsetLabel;this.timeMidday=12;this.timeEvening=17;this.displayed=true}BX.extend(u,r);BX.Calendar.UserField.TimeSelector=u;u.prototype.setDataConfig=function(){var e=this.data.style==="select"?"select":"slots",t=this.data.showOnlyFree!=="N",s=this.data.showFinishTime==="Y",i=parseInt(this.data.scale||30),a=this.style!==e||this.showOnlyFree!==t||this.showFinishTime!==s||this.scale!==i;this.style=e;this.showOnlyFree=t;this.showFinishTime=s;this.scale=i;return a};u.prototype.display=function(){this.DOM.wrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block"}}));this.DOM.innerWrap=this.DOM.wrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-inner"}}));if(this.data.label){this.DOM.labelWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-title"},text:this.data.label+"*"}));if(this.timezone){this.DOM.timezoneLabelWrap=this.DOM.labelWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-title-timezone"}}));BX.adjust(this.DOM.timezoneLabelWrap,{html:BX.message("USER_TYPE_RESOURCE_TIMEZONE").replace("#TIMEZONE#",this.timezone+" "+this.timezoneOffsetLabel)})}}this.displayControl();this.setValue(this.getValue());this.shown=true};u.prototype.refresh=function(e,t){t=t||{};this.setSlotIndex(t.slotIndex);this.currentDate=t.currentDate||new Date;this.data=e;if(!this.isShown()){this.setDataConfig();this.display()}else{if(this.DOM.labelWrap&&this.data.label){BX.adjust(this.DOM.labelWrap,{text:this.data.label+"*"})}if(this.timezone){if(!this.DOM.timezoneLabelWrap||!BX.isNodeInDom(this.DOM.timezoneLabelWrap)){this.DOM.timezoneLabelWrap=this.DOM.labelWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-title-timezone"}}))}BX.adjust(this.DOM.timezoneLabelWrap,{html:BX.message("USER_TYPE_RESOURCE_TIMEZONE").replace("#TIMEZONE#",this.timezone+" "+this.timezoneOffsetLabel)})}if(this.setDataConfig()||t.slotIndex||t.selectedValue){BX.remove(this.DOM.controlWrap);this.displayControl()}}this.setCurrentValue(t.selectedValue||this.getValue())};u.prototype.setSlotIndex=function(e){if(BX.type.isPlainObject(e)){this.availableSlotIndex=e}};u.prototype.setCurrentValue=function(e){if(e&&(this.previewMode||this.availableSlotIndex[e])){this.setValue(e)}else{this.setValue(null)}};u.prototype.showEmptyWarning=function(){if(this.DOM.labelWrap){this.DOM.labelWrap.style.display="none"}if(!this.DOM.warningWrap){this.DOM.warningTextNode=BX.create("span",{props:{className:"calendar-resbook-webform-block-notice-date"}});this.DOM.warningWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-notice"},children:[BX.create("span",{props:{className:"calendar-resbook-webform-block-notice-icon"}}),this.DOM.warningTextNode,BX.create("span",{props:{className:"calendar-resbook-webform-block-notice-detail"},text:BX.message("WEBF_RES_BOOKING_BUSY_DAY_WARNING")})]}))}if(this.DOM.warningWrap){BX.adjust(this.DOM.warningTextNode,{text:BX.date.format(BX.message("WEBF_RES_BUSY_DAY_DATE_FORMAT"),this.currentDate)});this.DOM.warningWrap.style.display="";this.noSlotsAvailable=true}};u.prototype.hideEmptyWarning=function(){this.noSlotsAvailable=false;if(this.DOM.labelWrap){this.DOM.labelWrap.style.display=""}if(this.DOM.warningWrap){this.DOM.warningWrap.style.display="none"}};u.prototype.displayControl=function(){var e=this.getSlotsInfo();this.slots=e.slots;if(!e.freeSlotsCount){this.showEmptyWarning()}else{this.hideEmptyWarning();if(this.style==="select"){this.createSelectControl()}else if(this.style==="slots"){this.createSlotsControl()}}};u.prototype.hide=function(){if(this.DOM.innerWrap){this.DOM.innerWrap.style.display="none"}};u.prototype.show=function(){if(this.DOM.innerWrap){this.DOM.innerWrap.style.display=""}};u.prototype.createSlotsControl=function(){if(this.DOM.controlWrap){BX.remove(this.DOM.controlWrap)}this.DOM.controlWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-time"},events:{click:BX.proxy(this.handleClick,this)}}));if(!this.showFinishTime&&!BX.isAmPmMode()){BX.addClass(this.DOM.controlWrap,"calendar-resbook-webform-block-time-sm")}else if(!this.showFinishTime&&BX.isAmPmMode()){BX.addClass(this.DOM.controlWrap,"calendar-resbook-webform-block-time-md")}else if(BX.isAmPmMode()){BX.addClass(this.DOM.controlWrap,"calendar-resbook-webform-block-time-lg")}this.DOM.controlStaticWrap=this.DOM.controlWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-time-static-wrap"}}));this.DOM.controlInnerWrap=this.DOM.controlStaticWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-time-inner-wrap"}}));var e,t=3,s={},i=0,a;this.slots.forEach(function(e){if(!s[e.partOfTheDay]){s[e.partOfTheDay]={items:[]}}s[e.partOfTheDay].items.push(e)});this.slots.forEach(function(r){if(!s[r.partOfTheDay].wrap){i=0;e=6;s[r.partOfTheDay].wrap=BX.create("div",{props:{className:"calendar-resbook-webform-block-col"},html:'<span class="calendar-resbook-webform-block-col-title">'+BX.message("WEBF_RES_PART_OF_THE_DAY_"+r.partOfTheDay.toUpperCase())+"</span>"});s[r.partOfTheDay].itemsWrap=s[r.partOfTheDay].wrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-col-list"}}));if(s[r.partOfTheDay].items.length>t*e){e=Math.ceil(s[r.partOfTheDay].items.length/t)}}if(i%e===0){a=s[r.partOfTheDay].itemsWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-col-list-inner"}}))}if(a&&(!r.booked||!this.showOnlyFree)){a.appendChild(BX.create("div",{attrs:{"data-bx-resbook-time-meta":"slot"+(r.booked?"-off":""),"data-bx-resbook-slot":r.time.toString(),className:"calendar-resbook-webform-block-col-item"+(r.selected?" calendar-resbook-webform-block-col-item-select":"")+(r.booked?" calendar-resbook-webform-block-col-item-off":"")},html:'<div class="calendar-resbook-webform-block-col-item-inner">'+'<span class="calendar-resbook-webform-block-col-time">'+r.fromTime+"</span>"+(this.showFinishTime?'- <span class="calendar-resbook-webform-block-col-time calendar-resbook-webform-block-col-time-end">'+r.toTime+"</span>":"")+"</div>"}));i++}s[r.partOfTheDay].itemsAmount=i},this);var r;for(r in s){if(s.hasOwnProperty(r)&&s[r].itemsAmount>0){this.DOM.controlInnerWrap.appendChild(s[r].wrap)}}this.initCustomScrollForSlots()};u.prototype.createSelectControl=function(){if(this.DOM.controlWrap){BX.remove(this.DOM.controlWrap)}this.DOM.controlWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-field"},events:{click:BX.proxy(this.handleClick,this)}}));this.DOM.timeSelectWrap=this.DOM.controlWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-strip"}}));this.DOM.valueInput=this.DOM.timeSelectWrap.appendChild(BX.create("input",{attrs:{type:"hidden",value:""}}));this.DOM.previousArrow=this.DOM.timeSelectWrap.appendChild(BX.create("span",{attrs:{className:"calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-prev","data-bx-resbook-time-meta":"previous"}}));this.DOM.stateWrap=this.DOM.timeSelectWrap.appendChild(BX.create("span",{attrs:{className:"calendar-resbook-webform-block-strip-text","data-bx-resbook-time-meta":"select"}}));this.DOM.stateWrap=this.DOM.stateWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-strip-date"}}));this.DOM.nextArrow=this.DOM.timeSelectWrap.appendChild(BX.create("span",{attrs:{className:"calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-next","data-bx-resbook-time-meta":"next"}}));this.setValue(this.getValue())};u.prototype.setValue=function(e){var t=this.getSlotByTime(e);if(t){if(this.style==="select"){BX.adjust(this.DOM.stateWrap,{text:this.getTimeTextBySlot(t)})}else if(this.style==="slots"){this.setSelected(this.getSlotNode(t.time))}this.value=t.time}else{this.value=null}if(!this.previewMode&&BX.type.isFunction(this.changeValueCallback)){this.changeValueCallback(this.value)}};u.prototype.getValue=function(){if(!this.value&&(this.previewMode||this.style==="select")){this.value=this.slots[0].time}return this.value};u.prototype.hasAvailableSlots=function(){return!this.noSlotsAvailable};u.prototype.getTimeTextBySlot=function(e){return e.fromTime+(this.showFinishTime?" - "+e.toTime:"")};u.prototype.getSlotByTime=function(e){return BX.type.isArray(this.slots)?this.slots.find(function(t){return parseInt(t.time)===parseInt(e)}):null};u.prototype.handleClick=function(e){var t=e.target||e.srcElement;if(t.hasAttribute("data-bx-resbook-time-meta")||(t=BX.findParent(t,{attribute:"data-bx-resbook-time-meta"},this.DOM.wrap))){var s=t.getAttribute("data-bx-resbook-time-meta");if(this.style==="select"){if(s==="previous"){this.setValue(this.getValue()-this.scale)}else if(s==="next"){this.setValue(this.getValue()+this.scale)}else if(s==="select"){this.openSelectPopup()}}else if(s==="slot"){this.setValue(parseInt(t.getAttribute("data-bx-resbook-slot")))}}};u.prototype.getSlotsInfo=function(){var e=[],t,s=0,i,a,r,o,l,n="morning",h=0,p=this.timeFrom*60;while(p<this.timeTo*60){if(p>=this.timeEvening*60){n="evening"}else if(p>=this.timeMidday*60){n="afternoon"}a=Math.floor(p/60);r=p-a*60;i=p+this.scale;o=Math.floor(i/60);l=i-o*60;t={time:p,fromTime:BX.Calendar.UserField.ResourceBooking.formatTime(a,r),toTime:BX.Calendar.UserField.ResourceBooking.formatTime(o,l),partOfTheDay:n};if(this.previewMode){if(!h){t.selected=true}else if(Math.round(Math.random()*10)<=3){t.booked=true}}else if(this.availableSlotIndex){t.booked=!this.availableSlotIndex[p]}if(!t.booked){s++}e.push(t);p+=this.scale;h++}return{slots:e,freeSlotsCount:s}};u.prototype.initCustomScrollForSlots=function(){var e=this.DOM.controlWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-arrow-container"}}));this.DOM.leftArrow=e.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-prev"},events:{click:BX.proxy(this.handlePrevArrowClick,this)}}));this.DOM.rightArrow=e.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-next"},events:{click:BX.proxy(this.handleNextArrowClick,this)}}));this.outerWidth=parseInt(this.DOM.controlStaticWrap.offsetWidth);this.innerWidth=parseInt(this.DOM.controlInnerWrap.offsetWidth);if("onwheel"in document)BX.bind(this.DOM.controlStaticWrap,"wheel",BX.proxy(this.mousewheelScrollHandler,this));else BX.bind(this.DOM.controlStaticWrap,"mousewheel",BX.proxy(this.mousewheelScrollHandler,this));this.checkSlotsScroll()};u.prototype.handleNextArrowClick=function(){this.DOM.controlStaticWrap.scrollLeft=this.DOM.controlStaticWrap.scrollLeft+100;this.checkSlotsScroll()};u.prototype.handlePrevArrowClick=function(){this.DOM.controlStaticWrap.scrollLeft=Math.max(this.DOM.controlStaticWrap.scrollLeft-100,0);this.checkSlotsScroll()};u.prototype.mousewheelScrollHandler=function(e){e=e||window.event;var t=e.deltaY||e.detail||e.wheelDelta;if(Math.abs(t)>0){if(!BX.browser.IsMac()){t=t*5}this.DOM.controlStaticWrap.scrollLeft=Math.max(this.DOM.controlStaticWrap.scrollLeft+t,0);this.checkSlotsScroll();return BX.PreventDefault(e)}};u.prototype.checkSlotsScroll=function(){if(this.outerWidth<=this.innerWidth){this.DOM.leftArrow.style.display=this.DOM.controlStaticWrap.scrollLeft?"":"none";if(this.innerWidth-this.outerWidth-4<=this.DOM.controlStaticWrap.scrollLeft){this.DOM.rightArrow.style.display="none"}else{this.DOM.rightArrow.style.display=""}}};u.prototype.openSelectPopup=function(){if(this.isSelectPopupShown()){return this.closeSelectPopup()}this.popup=BX.PopupMenu.create(this.popupSelectId,this.DOM.stateWrap,this.getTimeSelectItems(),{className:"calendar-resbook-time-select-popup",angle:true,closeByEsc:true,autoHide:true,offsetTop:5,offsetLeft:10});this.popup.show(true);BX.addCustomEvent(this.popup.popupWindow,"onPopupClose",BX.proxy(function(){BX.PopupMenu.destroy(this.popupSelectId);this.popup=null},this))};u.prototype.closeSelectPopup=function(){if(this.isSelectPopupShown()){this.popup.close();BX.unbind(document,"click",BX.proxy(this.handleClick,this))}};u.prototype.isSelectPopupShown=function(){return this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown&&this.popup.popupWindow.isShown()};u.prototype.getTimeSelectItems=function(){var e=[];this.slots.forEach(function(t){if(this.showOnlyFree&&t.booked){return}var s="menu-popup-no-icon";if(t.booked){s+=" menu-item-booked"}if(t.selected){s+=" menu-item-selected"}e.push({className:s,text:this.getTimeTextBySlot(t),dataset:{value:t.time,booked:!!t.booked},onclick:BX.proxy(this.menuItemClick,this)})},this);return e};u.prototype.menuItemClick=function(e,t){if(t&&t.dataset&&t.dataset.value){if(!t.dataset.booked){this.setValue(t.dataset.value)}}this.closeSelectPopup()};u.prototype.getSlotNode=function(e){var t,s=this.DOM.controlInnerWrap.querySelectorAll(".calendar-resbook-webform-block-col-item");for(t=0;t<s.length;t++){if(parseInt(s[t].getAttribute("data-bx-resbook-slot"))===parseInt(e)){return s[t]}}return null};u.prototype.setSelected=function(e){if(BX.type.isDomNode(e)){if(this.currentSelected){BX.removeClass(this.currentSelected,"calendar-resbook-webform-block-col-item-select")}this.currentSelected=e;BX.addClass(e,"calendar-resbook-webform-block-col-item-select")}};function f(e){this.id="viewform-dropdown-select-"+Math.round(Math.random()*1e5);this.DOM={wrap:e.wrap};this.maxHeight=e.maxHeight;this.selectAllMessage=BX.message("WEBF_RES_SELECT_ALL");this.setSettings(e)}f.prototype={build:function(){this.DOM.select=this.DOM.wrap.appendChild(BX.create("div",{attrs:{className:"calendar-resbook-webform-block-input calendar-resbook-webform-block-input-dropdown"},events:{click:BX.delegate(this.openPopup,this)}}));this.setSelectedValues(this.selected)},setSettings:function(e){this.handleChangesCallback=BX.type.isFunction(e.handleChangesCallback)?e.handleChangesCallback:null;this.values=e.values;this.selected=!BX.type.isArray(e.selected)?[e.selected]:e.selected;this.multiple=e.multiple},openPopup:function(){if(this.isPopupShown()){return this.closePopup()}var e=[];this.values.forEach(function(t){var s="menu-popup-no-icon";if(BX.util.in_array(parseInt(t.id),this.selected)){s+=" menu-item-selected"}e.push({id:t.id,className:s,text:BX.util.htmlspecialchars(t.title),onclick:BX.proxy(this.menuItemClick,this)})},this);if(this.multiple&&e.length<=1){this.multiple=false}if(this.multiple){e.push({id:"select-all",text:this.selectAllMessage,onclick:BX.proxy(this.selectAllItemClick,this)})}this.popup=BX.PopupMenu.create(this.id,this.DOM.select,e,{className:"calendar-resbook-form-popup"+(this.multiple?" popup-window-resource-select":""),closeByEsc:true,autoHide:!this.multiple,offsetTop:0,offsetLeft:0});this.popup.show(true);this.popupContainer=this.popup.popupWindow.popupContainer;this.popupContainer.style.width=parseInt(this.DOM.select.offsetWidth)+"px";BX.addCustomEvent(this.popup.popupWindow,"onPopupClose",BX.proxy(function(){BX.PopupMenu.destroy(this.id);this.popup=null},this));if(this.multiple){this.popup.menuItems.forEach(function(e){var t;if(e.id==="select-all"){this.selectAllChecked=!this.values.find(function(e){return!this.selected.find(function(t){return t===e.id})},this);e.layout.item.className="menu-popup-item menu-popup-item-resource-all";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox menu-popup-item-all-resources-checkbox" type="checkbox"'+(this.selectAllChecked?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+e.text+"</label>"+"</div>"+"</div>"}else{t=this.selected.find(function(t){return t===e.id});e.layout.item.className="menu-popup-item";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox" type="checkbox"'+(t?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+e.text+"</label>"+"</div>"+"</div>"}},this);BX.unbind(document,"click",BX.proxy(this.handleClick,this));setTimeout(BX.delegate(function(){BX.bind(document,"click",BX.proxy(this.handleClick,this))},this),50)}},closePopup:function(){if(this.isPopupShown()){this.popup.close();if(this.multiple){BX.unbind(document,"click",BX.proxy(this.handleClick,this))}}},isPopupShown:function(){return this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown&&this.popup.popupWindow.isShown()&&this.popup.popupWindow.popupContainer&&BX.isNodeInDom(this.popup.popupWindow.popupContainer)},menuItemClick:function(e,t){var s,i=e.target||e.srcElement,a,r;if(this.multiple){a=this.values.find(function(e){return e.id==t.id});r=t.layout.item.querySelector(".menu-popup-item-resource-checkbox");if(a&&i&&(BX.hasClass(i,"menu-popup-item")||BX.hasClass(i,"menu-popup-item-resource-checkbox")||BX.hasClass(i,"menu-popup-item-inner"))){if(!BX.hasClass(i,"menu-popup-item-resource-checkbox")){r.checked=!r.checked}if(r.checked){this.selectItem(a)}else{this.deselectItem(a);s=this.popupContainer.querySelector(".menu-popup-item-all-resources-checkbox");this.selectAllChecked=false;if(s){s.checked=false}}this.setSelectedValues(this.selected);this.handleControlChanges()}}else{this.setSelectedValues([t.id]);this.handleControlChanges();this.closePopup()}},selectItem:function(e){if(!BX.util.in_array(e.id,this.selected)){this.selected.push(e.id)}},deselectItem:function(e){var t=BX.util.array_search(e.id,this.selected);if(t>=0){this.selected=BX.util.deleteFromArray(this.selected,t)}},selectAllItemClick:function(e,t){var s=e.target||e.srcElement;if(s&&(BX.hasClass(s,"menu-popup-item")||BX.hasClass(s,"menu-popup-item-resource-checkbox"))){var i=t.layout.item.querySelector(".menu-popup-item-resource-checkbox");if(BX.hasClass(s,"menu-popup-item")){i.checked=!i.checked}var a,r=this.popupContainer.querySelectorAll("input.menu-popup-item-resource-checkbox");this.selectAllChecked=i.checked;for(a=0;a<r.length;a++){r[a].checked=this.selectAllChecked}this.selected=[];if(this.selectAllChecked){this.values.forEach(function(e){this.selected.push(e.id)},this)}this.setSelectedValues(this.selected);this.handleControlChanges()}},handleClick:function(e){var t=e.target||e.srcElement;if(this.isPopupShown()&&!BX.isParentForNode(this.popupContainer,t)){this.closePopup({animation:true})}this.handleControlChanges()},getSelectedValues:function(){return this.selected},setSelectedValues:function(e){var t,s,i=[],a=[];for(t=0;t<e.length;t++){s=this.values.find(function(s){return s.id===e[t]});if(s){i.push(s.title);a.push(s.id)}}this.selected=a;BX.adjust(this.DOM.select,{text:i.length?i.join(", "):BX.message("USER_TYPE_RESOURCE_LIST_PLACEHOLDER")})},handleControlChanges:function(){if(this.handleChangesCallback){this.handleChangesCallback(this.getSelectedValues())}}};function m(e){this.DOM={outerWrap:e.outerWrap};this.timezone=e.timezone;this.timezoneOffsetLabel=e.timezoneOffsetLabel;this.shown=false;this.built=false}BX.Calendar.UserField.ResourceBookingStatusControl=m;m.prototype={isShown:function(){return this.shown},build:function(){this.DOM.wrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-webform-block-result"},style:{display:"none"}}));this.DOM.innerWrap=this.DOM.wrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-result-inner"}}));this.DOM.labelWrap=this.DOM.innerWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-result-text"},text:BX.message("WEBF_RES_BOOKING_STATUS_LABEL")}));this.DOM.statusWrap=this.DOM.innerWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-result-value"}}));this.DOM.statusTimezone=this.DOM.innerWrap.appendChild(BX.create("span",{props:{className:"calendar-resbook-webform-block-result-timezone"},text:this.timezoneOffsetLabel||"",style:{display:"none"}}));this.built=true},refresh:function(e){if(!this.built){this.build()}if(!this.isShown()){this.show()}if(e.dateFrom){this.DOM.labelWrap.style.display="";BX.removeClass(this.DOM.wrap,"calendar-resbook-webform-block-result-error");if(this.timezone){this.DOM.statusTimezone.style.display=""}BX.adjust(this.DOM.statusWrap,{text:this.getStatusText(e)})}else if(!e.dateFrom&&e.fullDay){this.DOM.labelWrap.style.display="none";this.DOM.statusTimezone.style.display="none";BX.addClass(this.DOM.wrap,"calendar-resbook-webform-block-result-error");BX.adjust(this.DOM.statusWrap,{text:BX.message("WEBF_RES_BOOKING_STATUS_DATE_IS_NOT_AVAILABLE")})}else{this.DOM.labelWrap.style.display="none";this.DOM.statusTimezone.style.display="none";BX.removeClass(this.DOM.wrap,"calendar-resbook-webform-block-result-error");BX.adjust(this.DOM.statusWrap,{text:BX.message("WEBF_RES_BOOKING_STATUS_NO_TIME_SELECTED")})}},getStatusText:function(e){var t=e.dateFrom,s=new Date(t.getTime()+e.duration*60*1e3+(e.fullDay?-1:0)),i="";if(e.fullDay){if(BX.date.format("Y-m-d",t.getTime()/1e3)===BX.date.format("Y-m-d",s.getTime()/1e3)){i=BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_STATUS"),t)}else{i=BX.message("WEBF_RES_DATE_FORMAT_FROM_TO").replace("#DATE_FROM#",BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_STATUS_SHORT"),t)).replace("#DATE_TO#",BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_STATUS_SHORT"),s))}}else{if(BX.date.format("Y-m-d",t.getTime()/1e3)===BX.date.format("Y-m-d",s.getTime()/1e3)){i=BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_STATUS"),t)+" "+BX.message("WEBF_RES_TIME_FORMAT_FROM_TO").replace("#TIME_FROM#",BX.Calendar.UserField.ResourceBooking.formatTime(t.getHours(),t.getMinutes())).replace("#TIME_TO#",BX.Calendar.UserField.ResourceBooking.formatTime(s.getHours(),s.getMinutes()))}else{i=BX.message("WEBF_RES_DATE_FORMAT_FROM_TO").replace("#DATE_FROM#",BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_STATUS_SHORT"),t)+" "+BX.Calendar.UserField.ResourceBooking.formatTime(t.getHours(),t.getMinutes())).replace("#DATE_TO#",BX.date.format(BX.message("WEBF_RES_DATE_FORMAT_STATUS_SHORT"),s)+" "+BX.Calendar.UserField.ResourceBooking.formatTime(s.getHours(),s.getMinutes()))}}return i},hide:function(){if(this.built&&this.shown){this.DOM.wrap.style.display="none";this.shown=false}},show:function(){if(this.built&&!this.shown){this.DOM.wrap.style.display="";this.shown=true}},setError:function(e){if(this.DOM.labelWrap){this.DOM.labelWrap.style.display="none"}BX.addClass(this.DOM.wrap,"calendar-resbook-webform-block-result-error");BX.adjust(this.DOM.statusWrap,{text:e})}}})();
//# sourceMappingURL=resourcebooking-webform-field.map.js

Anon7 - 2022
AnonSec Team