File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/calendar/install/js/calendar/resourcebooking/dist/resourcebooking.bundle.js.map
Back
{"version":3,"file":"resourcebooking.bundle.js","sources":["../src/viewcontrolabstract.js","../src/viewdropdownselect.js","../src/controls/userselector.js","../src/controls/resourceselector.js","../src/controls/serviceselector.js","../src/controls/durationselector.js","../src/controls/dateselector.js","../src/controls/timeselector.js","../src/controls/statusinformer.js","../src/livefieldcontroller.js","../src/translit.js","../src/bookingutil.js","../src/fieldviewcontrollerabstract.js","../src/fieldviewcontrolleredit.js","../src/fieldviewcontrollerpreview.js","../src/controls/selectinput.js","../src/resourcebooking.js"],"sourcesContent":["import {Loc, Dom, Tag} from \"./resourcebooking\";\n\nexport class ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tif (new.target === ViewControlAbstract)\n\t\t{\n\t\t\tthrow new TypeError(\"Cannot construct Abstract instances directly\");\n\t\t}\n\n\t\tthis.name = null;\n\t\tthis.classNames = {\n\t\t\twrap: params.wrapClassName || 'calendar-resbook-webform-block',\n\t\t\tinnerWrap: 'calendar-resbook-webform-block-inner',\n\t\t\ttitle: 'calendar-resbook-webform-block-title',\n\t\t\tfield: 'calendar-resbook-webform-block-field'\n\t\t};\n\n\t\tthis.DOM = {\n\t\t\touterWrap: params.outerWrap,\n\t\t\twrap: null,\n\t\t\tdataWrap: null,\n\t\t\tinnerWrap: null,\n\t\t\tlabelWrap: null\n\t\t};\n\t\tthis.data = params.data;\n\t\tthis.shown = false;\n\t}\n\n\tisDisplayed()\n\t{\n\t\treturn this.data.show !== 'N';\n\t}\n\n\tisShown()\n\t{\n\t\treturn this.shown;\n\t}\n\n\tdisplay()\n\t{\n\t\tthis.DOM.wrap = this.DOM.outerWrap.appendChild(Dom.create(\"div\", {props : { className : this.classNames.wrap}}));\n\n\t\tthis.DOM.dataWrap = this.DOM.wrap.appendChild(Tag.render`<div data-bx-resource-data-wrap=\"Y\"></div>`);\n\n\t\tif (this.isDisplayed())\n\t\t{\n\t\t\tthis.show({animation: false});\n\t\t}\n\t}\n\n\trefresh(data)\n\t{\n\t\tthis.refreshLabel(data);\n\t\tthis.data = data;\n\n\t\tif (this.setDataConfig())\n\t\t{\n\t\t\tif (this.isDisplayed())\n\t\t\t{\n\t\t\t\tthis.show({animation: true});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hide({animation: true});\n\t\t\t}\n\t\t}\n\t\tthis.data = data;\n\t}\n\n\tsetDataConfig()\n\t{\n\t\treturn true;\n\t}\n\n\trefreshLabel(data)\n\t{\n\t\tif (this.data.label !== data.label)\n\t\t{\n\t\t\tDom.adjust(this.DOM.labelWrap, {text: data.label});\n\t\t}\n\t}\n\n\tshow()\n\t{\n\t\tif (this.DOM.innerWrap)\n\t\t{\n\t\t\tthis.hide();\n\t\t}\n\n\t\tthis.DOM.innerWrap = this.DOM.wrap.appendChild(Dom.create(\"div\", {props : { className : this.classNames.innerWrap}}));\n\n\t\tif (this.data.label || this.label)\n\t\t{\n\t\t\tthis.DOM.labelWrap = this.DOM.innerWrap.appendChild(Dom.create(\"div\", {props : { className : this.classNames.title}, text: this.data.label || this.label}));\n\t\t}\n\t\tthis.DOM.controlWrap = this.DOM.innerWrap.appendChild(Dom.create(\"div\", {props : { className : this.classNames.field}}));\n\t\tthis.displayControl();\n\t\tthis.shown = true;\n\t}\n\n\thide()\n\t{\n\t\tDom.remove(this.DOM.innerWrap);\n\t\tthis.DOM.innerWrap = null;\n\t\tthis.shown = false;\n\t}\n\n\tdisplayControl()\n\t{\n\t}\n\n\tshowWarning(errorMessage)\n\t{\n\t\tif (this.shown && this.DOM.wrap && this.DOM.innerWrap)\n\t\t{\n\t\t\tDom.addClass(this.DOM.wrap, \"calendar-resbook-webform-block-error\");\n\t\t\tthis.displayErrorText(errorMessage || Loc.getMessage('WEBF_RES_BOOKING_REQUIRED_WARNING'));\n\t\t}\n\t}\n\n\thideWarning()\n\t{\n\t\tif (this.DOM.wrap)\n\t\t{\n\t\t\tDom.removeClass(this.DOM.wrap, \"calendar-resbook-webform-block-error\");\n\t\t\tif (this.DOM.errorTextWrap)\n\t\t\t{\n\t\t\t\tDom.remove(this.DOM.errorTextWrap);\n\t\t\t}\n\t\t}\n\t}\n\n\tdisplayErrorText(errorMessage)\n\t{\n\t\tif (this.DOM.errorTextWrap)\n\t\t{\n\t\t\tDom.remove(this.DOM.errorTextWrap);\n\t\t}\n\t\tthis.DOM.errorTextWrap = this.DOM.innerWrap.appendChild(Dom.create(\"span\", {props : { className : 'calendar-resbook-webform-block-error-text'}, text: errorMessage}));\n\t}\n}\n\n\n","import {Type, Loc, Dom, Event, Text, BookingUtil, MenuManager} from \"./resourcebooking\";\n\nexport class ViewDropDownSelect\n{\n\tconstructor(params)\n\t{\n\t\tthis.id = 'viewform-dropdown-select-' + Math.round(Math.random() * 100000);\n\t\tthis.DOM = {\n\t\t\twrap: params.wrap\n\t\t};\n\t\tthis.maxHeight = params.maxHeight;\n\t\tthis.selectAllMessage = Loc.getMessage('WEBF_RES_SELECT_ALL');\n\t\tthis.setSettings(params);\n\t}\n\n\tbuild()\n\t{\n\t\tthis.DOM.select = this.DOM.wrap.appendChild(Dom.create(\"div\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"calendar-resbook-webform-block-input calendar-resbook-webform-block-input-dropdown\"\n\t\t\t},\n\t\t\tevents: {click: this.openPopup.bind(this)}\n\t\t}));\n\n\t\tthis.setSelectedValues(this.selected);\n\t}\n\n\tsetSettings(params)\n\t{\n\t\tthis.handleChangesCallback = Type.isFunction(params.handleChangesCallback) ? params.handleChangesCallback : null;\n\t\tthis.values = params.values;\n\t\tthis.selected = !Type.isArray(params.selected) ? [params.selected] : params.selected;\n\t\tthis.multiple = params.multiple;\n\t}\n\n\topenPopup()\n\t{\n\t\tif (this.isPopupShown())\n\t\t{\n\t\t\treturn this.closePopup();\n\t\t}\n\n\t\tlet menuItems = [];\n\t\tthis.values.forEach(function(item)\n\t\t{\n\t\t\tlet className = 'menu-popup-no-icon';\n\t\t\tif (Type.isArray(this.selected) && this.selected.includes(parseInt(item.id)))\n\t\t\t{\n\t\t\t\tclassName += ' menu-item-selected';\n\t\t\t}\n\n\t\t\tmenuItems.push({\n\t\t\t\tid: item.id,\n\t\t\t\tclassName: className,\n\t\t\t\ttext: Text.encode(item.title),\n\t\t\t\tonclick: this.menuItemClick.bind(this)\n\t\t\t});\n\t\t}, this);\n\n\t\tif (this.multiple && menuItems.length <= 1)\n\t\t{\n\t\t\tthis.multiple = false;\n\t\t}\n\n\t\tif (this.multiple)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\tid: 'select-all',\n\t\t\t\ttext: this.selectAllMessage,\n\t\t\t\tonclick: this.selectAllItemClick.bind(this)\n\t\t\t});\n\t\t}\n\n\t\tthis.popup = MenuManager.create(\n\t\t\tthis.id,\n\t\t\tthis.DOM.select,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tclassName: 'calendar-resbook-form-popup' + (this.multiple ? ' popup-window-resource-select' : ''),\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : !this.multiple,\n\t\t\t\toffsetTop: 0,\n\t\t\t\toffsetLeft: 0,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.popup.show(true);\n\t\tthis.popupContainer = this.popup.popupWindow.popupContainer;\n\t\tthis.popupContainer.style.width = parseInt(this.DOM.select.offsetWidth) + 'px';\n\n\t\tif (this.multiple)\n\t\t{\n\t\t\tthis.popup.menuItems.forEach(function(menuItem)\n\t\t\t{\n\t\t\t\tlet checked;\n\t\t\t\tif (menuItem.id === 'select-all')\n\t\t\t\t{\n\t\t\t\t\tthis.selectAllChecked = !this.values.find(function(value){\n\t\t\t\t\t\treturn !this.selected.find(function(itemId){return itemId === value.id});\n\t\t\t\t\t},this);\n\n\t\t\t\t\tmenuItem.layout.item.className = 'menu-popup-item menu-popup-item-resource-all';\n\t\t\t\t\tmenuItem.layout.item.innerHTML = '<div class=\"menu-popup-item-inner\">' +\n\t\t\t\t\t\t'<div class=\"menu-popup-item-resource\">' +\n\t\t\t\t\t\t'<input class=\"menu-popup-item-resource-checkbox menu-popup-item-all-resources-checkbox\" type=\"checkbox\"' + (this.selectAllChecked ? 'checked=\"checked\"' : '') + ' id=\"' + menuItem.id + '\">' +\n\t\t\t\t\t\t'<label class=\"menu-popup-item-text\" for=\"' + menuItem.id + '\">' + menuItem.text + '</label>' +\n\t\t\t\t\t\t'</div>' +\n\t\t\t\t\t\t'</div>';\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tchecked = this.selected.find(function(itemId){return itemId === menuItem.id});\n\n\t\t\t\t\tmenuItem.layout.item.className = 'menu-popup-item';\n\t\t\t\t\tmenuItem.layout.item.innerHTML = '<div class=\"menu-popup-item-inner\">' +\n\t\t\t\t\t\t'<div class=\"menu-popup-item-resource\">' +\n\t\t\t\t\t\t'<input class=\"menu-popup-item-resource-checkbox\" type=\"checkbox\"' + (checked ? 'checked=\"checked\"' : '') + ' id=\"' + menuItem.id + '\">' +\n\t\t\t\t\t\t'<label class=\"menu-popup-item-text\" for=\"' + menuItem.id + '\">' + menuItem.text + '</label>' +\n\t\t\t\t\t\t'</div>' +\n\t\t\t\t\t\t'</div>';\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tEvent.unbind(document, 'click', this.handleClick.bind(this));\n\t\t\tsetTimeout(function(){\n\t\t\t\tEvent.bind(document, 'click', this.handleClick.bind(this));\n\t\t\t}.bind(this), 50);\n\t\t}\n\t}\n\n\tclosePopup()\n\t{\n\t\tif (this.isPopupShown())\n\t\t{\n\t\t\tthis.popup.close();\n\t\t\tif (this.multiple)\n\t\t\t{\n\t\t\t\tEvent.unbind(document, 'click', this.handleClick.bind(this));\n\t\t\t}\n\t\t}\n\t}\n\n\tisPopupShown()\n\t{\n\t\treturn this.popup && this.popup.popupWindow &&\n\t\t\tthis.popup.popupWindow.isShown && this.popup.popupWindow.isShown() &&\n\t\t\tthis.popup.popupWindow.popupContainer &&\n\t\t\tDom.isShown(this.popup.popupWindow.popupContainer);\n\t}\n\n\tmenuItemClick(e, menuItem)\n\t{\n\t\tlet\n\t\t\tselectAllcheckbox,\n\t\t\ttarget = e.target || e.srcElement,\n\t\t\tfoundValue, checkbox;\n\n\n\t\tif (this.multiple)\n\t\t{\n\t\t\tfoundValue = this.values.find(function(value){return value.id == menuItem.id;});\n\t\t\tcheckbox = menuItem.layout.item.querySelector('.menu-popup-item-resource-checkbox');\n\n\t\t\tif (foundValue && target && (Dom.hasClass(target, \"menu-popup-item\") || Dom.hasClass(target, \"menu-popup-item-resource-checkbox\") || Dom.hasClass(target, \"menu-popup-item-inner\")))\n\t\t\t{\n\t\t\t\tif (!Dom.hasClass(target, \"menu-popup-item-resource-checkbox\"))\n\t\t\t\t{\n\t\t\t\t\tcheckbox.checked = !checkbox.checked;\n\t\t\t\t}\n\n\t\t\t\tif (checkbox.checked)\n\t\t\t\t{\n\t\t\t\t\tthis.selectItem(foundValue);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.deselectItem(foundValue);\n\t\t\t\t\tselectAllcheckbox = this.popupContainer.querySelector('.menu-popup-item-all-resources-checkbox');\n\t\t\t\t\tthis.selectAllChecked = false;\n\t\t\t\t\tif (selectAllcheckbox)\n\t\t\t\t\t{\n\t\t\t\t\t\tselectAllcheckbox.checked = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.setSelectedValues(this.selected);\n\t\t\t\tthis.handleControlChanges();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setSelectedValues([menuItem.id]);\n\t\t\tthis.handleControlChanges();\n\t\t\tthis.closePopup();\n\t\t}\n\t}\n\n\tselectItem(value)\n\t{\n\t\tif (!this.selected.includes(value.id))\n\t\t{\n\t\t\tthis.selected.push(value.id);\n\t\t}\n\t}\n\n\tdeselectItem(value)\n\t{\n\t\tlet index = this.selected.indexOf(parseInt(value.id));\n\t\tif (index >= 0)\n\t\t{\n\t\t\tthis.selected = this.selected.slice(0, index).concat(this.selected.slice(index + 1));\n\t\t}\n\t}\n\n\tselectAllItemClick(e, menuItem)\n\t{\n\t\tlet target = e.target || e.srcElement;\n\t\tif (target && (Dom.hasClass(target, \"menu-popup-item\") || Dom.hasClass(target, \"menu-popup-item-resource-checkbox\")))\n\t\t{\n\t\t\tlet checkbox = menuItem.layout.item.querySelector('.menu-popup-item-resource-checkbox');\n\n\t\t\tif (Dom.hasClass(target, \"menu-popup-item\"))\n\t\t\t{\n\t\t\t\tcheckbox.checked = !checkbox.checked;\n\t\t\t}\n\n\t\t\tlet i, checkboxes = this.popupContainer.querySelectorAll('input.menu-popup-item-resource-checkbox');\n\t\t\tthis.selectAllChecked = checkbox.checked;\n\n\t\t\tfor (i = 0; i < checkboxes.length; i++)\n\t\t\t{\n\t\t\t\tcheckboxes[i].checked = this.selectAllChecked;\n\t\t\t}\n\t\t\tthis.selected = [];\n\t\t\tif (this.selectAllChecked)\n\t\t\t{\n\t\t\t\tthis.values.forEach(function(value){this.selected.push(value.id);}, this);\n\t\t\t}\n\t\t\tthis.setSelectedValues(this.selected);\n\t\t\tthis.handleControlChanges();\n\t\t}\n\t}\n\n\thandleClick(e)\n\t{\n\t\tif (this.isPopupShown() && !this.popupContainer.contains(e.target || e.srcElement))\n\t\t{\n\t\t\tthis.closePopup({animation: true});\n\t\t}\n\t\tthis.handleControlChanges();\n\t}\n\n\tgetSelectedValues()\n\t{\n\t\treturn this.selected;\n\t}\n\n\tsetSelectedValues(values)\n\t{\n\t\tlet i,\n\t\t\tfoundValue,\n\t\t\ttextValues = [],\n\t\t\tselectedValues = [];\n\n\t\tfor (i = 0; i < values.length; i++)\n\t\t{\n\t\t\tfoundValue = this.values.find(function(value){return value.id === values[i];});\n\t\t\tif (foundValue)\n\t\t\t{\n\t\t\t\ttextValues.push(foundValue.title);\n\t\t\t\tselectedValues.push(foundValue.id);\n\t\t\t}\n\t\t}\n\n\t\tthis.selected = selectedValues;\n\t\tDom.adjust(this.DOM.select, {text: textValues.length ? textValues.join(', ') : Loc.getMessage('USER_TYPE_RESOURCE_LIST_PLACEHOLDER')});\n\t}\n\n\thandleControlChanges()\n\t{\n\t\tif (this.handleChangesCallback)\n\t\t{\n\t\t\tthis.handleChangesCallback(this.getSelectedValues());\n\t\t}\n\t}\n}\n","import {Type} from \"../resourcebooking\";\nimport {ViewControlAbstract} from \"../viewcontrolabstract\";\nimport {ViewDropDownSelect} from \"../viewdropdownselect\";\n\nexport class UserSelector extends ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\n\t\tthis.name = 'UserSelector';\n\t\tthis.data = params.data || {};\n\t\tthis.userList = [];\n\t\tthis.userIndex = {};\n\n\t\tthis.values = [];\n\t\tthis.defaultMode = 'auto';\n\t\tthis.previewMode = params.previewMode === undefined;\n\t\tthis.autoSelectDefaultValue = params.autoSelectDefaultValue;\n\t\tthis.changeValueCallback = params.changeValueCallback;\n\n\t\tthis.handleSettingsData(this.data, params.userIndex);\n\t}\n\n\tdisplayControl()\n\t{\n\t\tthis.selectedValue = this.getSelectedUser();\n\t\tthis.dropdownSelect = new ViewDropDownSelect({\n\t\t\twrap: this.DOM.controlWrap,\n\t\t\tvalues: this.userList,\n\t\t\tselected: this.selectedValue,\n\t\t\thandleChangesCallback: this.handleChanges.bind(this)\n\t\t});\n\t\tthis.dropdownSelect.build();\n\t}\n\n\trefresh(data, userIndex)\n\t{\n\t\tthis.refreshLabel(data);\n\t\tthis.data = data;\n\t\tthis.handleSettingsData(this.data, userIndex);\n\t\tthis.selectedValue = this.getSelectedUser();\n\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tthis.dropdownSelect.setSettings({\n\t\t\t\tvalues: this.userList,\n\t\t\t\tselected: this.selectedValue\n\t\t\t});\n\t\t}\n\n\t\tif (this.setDataConfig())\n\t\t{\n\t\t\tif (this.isDisplayed())\n\t\t\t{\n\t\t\t\tthis.show({animation: true});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hide({animation: true});\n\t\t\t}\n\t\t}\n\t}\n\n\thandleSettingsData(data, userIndex)\n\t{\n\t\tif (Type.isPlainObject(userIndex))\n\t\t{\n\t\t\tfor (let id in userIndex)\n\t\t\t{\n\t\t\t\tif (userIndex.hasOwnProperty(id))\n\t\t\t\t{\n\t\t\t\t\tthis.userIndex[id] = userIndex[id];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.defaultMode = this.data.defaultMode === 'none' ? 'none' : 'auto';\n\t\tlet dataValue = [];\n\t\tthis.userList = [];\n\t\tif (this.data.value)\n\t\t{\n\t\t\tlet dataValueRaw = Type.isArray(this.data.value) ? this.data.value : this.data.value.split('|');\n\t\t\tdataValueRaw.forEach(function(id)\n\t\t\t{\n\t\t\t\tid = parseInt(id);\n\t\t\t\tif (id > 0)\n\t\t\t\t{\n\t\t\t\t\tdataValue.push(id);\n\t\t\t\t\tif (this.userIndex[id])\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.userList.push({\n\t\t\t\t\t\t\tid: id,\n\t\t\t\t\t\t\ttitle: this.userIndex[id].displayName\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\t\tthis.values = dataValue;\n\t}\n\n\tgetSelectedUser()\n\t{\n\t\tlet selected = null;\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tselected = this.dropdownSelect.getSelectedValues();\n\t\t\tselected = (Type.isArray(selected) && selected.length) ? selected[0] : null;\n\t\t}\n\n\t\tif (!selected && this.previewMode\n\t\t\t&& this.data.defaultMode === 'auto'\n\t\t\t&& this.userList && this.userList[0])\n\t\t{\n\t\t\tselected = this.userList[0].id;\n\t\t}\n\n\t\tif (!selected && this.autoSelectDefaultValue)\n\t\t{\n\t\t\tselected = this.autoSelectDefaultValue;\n\t\t}\n\n\t\treturn selected;\n\t}\n\n\tsetSelectedUser(userId)\n\t{\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tthis.dropdownSelect.setSelectedValues([userId]);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.autoSelectDefaultValue = parseInt(userId);\n\t\t}\n\t}\n\n\thandleChanges(selectedValues)\n\t{\n\t\tif (!this.previewMode && Type.isFunction(this.changeValueCallback))\n\t\t{\n\t\t\tthis.changeValueCallback(selectedValues[0] || null);\n\t\t}\n\t}\n}","import {Type} from \"../resourcebooking\";\nimport {ViewControlAbstract} from \"../viewcontrolabstract\";\nimport {ViewDropDownSelect} from \"../viewdropdownselect\";\n\nexport class ResourceSelector extends ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.name = 'ResourceSelector';\n\t\tthis.data = params.data;\n\t\tthis.allResourceList = params.resourceList;\n\t\tthis.autoSelectDefaultValue = params.autoSelectDefaultValue;\n\t\tthis.changeValueCallback = params.changeValueCallback;\n\t\tthis.handleSettingsData(params.data);\n\t}\n\n\thandleSettingsData(data)\n\t{\n\t\tif (!Type.isArray(data.value))\n\t\t{\n\t\t\tlet dataValue = [];\n\t\t\tif (data.value)\n\t\t\t{\n\t\t\t\tdata.value.split('|').forEach(function(id)\n\t\t\t\t{\n\t\t\t\t\tif (parseInt(id) > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tdataValue.push(parseInt(id))\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.data.value = dataValue;\n\t\t}\n\n\t\tthis.resourceList = [];\n\t\tif (Type.isArray(this.allResourceList) && Type.isArray(this.data.value))\n\t\t{\n\t\t\tthis.allResourceList.forEach(function(item)\n\t\t\t{\n\t\t\t\tif (this.data.value.includes(parseInt(item.id)))\n\t\t\t\t{\n\t\t\t\t\tthis.resourceList.push(item);\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\n\t\tthis.setSelectedValues(this.getSelectedValues());\n\t}\n\n\tdisplayControl()\n\t{\n\t\tthis.dropdownSelect = new ViewDropDownSelect({\n\t\t\twrap: this.DOM.controlWrap,\n\t\t\tvalues: this.resourceList,\n\t\t\tselected: this.selectedValues,\n\t\t\tmultiple: this.data.multiple === 'Y',\n\t\t\thandleChangesCallback: this.changeValueCallback\n\t\t});\n\t\tthis.dropdownSelect.build();\n\t}\n\n\trefresh(data)\n\t{\n\t\tthis.refreshLabel(data);\n\t\tthis.data = data;\n\t\tthis.handleSettingsData(this.data);\n\t\tthis.setSelectedValues(this.getSelectedValues());\n\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tthis.dropdownSelect.setSettings({\n\t\t\t\tvalues: this.resourceList,\n\t\t\t\tselected: this.selectedValues,\n\t\t\t\tmultiple: this.data.multiple === 'Y'\n\t\t\t});\n\t\t}\n\n\t\tif (this.setDataConfig())\n\t\t{\n\t\t\tif (this.isDisplayed())\n\t\t\t{\n\t\t\t\tthis.show({animation: true});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hide({animation: true});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSelectedValues()\n\t{\n\t\tlet selected = null;\n\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tselected = this.dropdownSelect.getSelectedValues();\n\t\t}\n\n\t\tif (!selected && this.autoSelectDefaultValue)\n\t\t{\n\t\t\tselected = [this.autoSelectDefaultValue];\n\t\t}\n\n\t\tif (!selected && this.data.defaultMode === 'auto')\n\t\t{\n\t\t\tif (this.resourceList && this.resourceList[0])\n\t\t\t{\n\t\t\t\tselected = [this.resourceList[0].id];\n\t\t\t}\n\t\t}\n\n\t\treturn selected;\n\t}\n\n\tsetSelectedValues(selectedValues)\n\t{\n\t\tthis.selectedValues = selectedValues;\n\t}\n\n\tsetSelectedResource(id)\n\t{\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tthis.dropdownSelect.setSelectedValues([id]);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.autoSelectDefaultValue = parseInt(id);\n\t\t\tthis.selectedValues = [id];\n\t\t}\n\t}\n}","import {Type, BookingUtil} from \"../resourcebooking\";\nimport {ViewControlAbstract} from \"../viewcontrolabstract\";\nimport {ViewDropDownSelect} from \"../viewdropdownselect\";\n\nexport class ServiceSelector extends ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.name = 'ServiceSelector';\n\t\tthis.data = params.data;\n\t\tthis.serviceList = [];\n\n\t\tthis.allServiceList = [];\n\t\tif (Type.isArray(params.serviceList))\n\t\t{\n\t\t\tparams.serviceList.forEach((service) => {\n\t\t\t\tif (Type.isString(name))\n\t\t\t\t{\n\t\t\t\t\tservice.name = service.name.trim();\n\t\t\t\t}\n\t\t\t\tthis.allServiceList.push(service);\n\t\t\t})\n\t\t}\n\t\tthis.values = [];\n\t\tthis.changeValueCallback = Type.isFunction(params.changeValueCallback) ? params.changeValueCallback : null;\n\t\tif (params.selectedValue)\n\t\t{\n\t\t\tthis.setSelectedService(params.selectedValue);\n\t\t}\n\t\tthis.handleSettingsData(this.data);\n\t}\n\n\tdisplayControl()\n\t{\n\t\tthis.dropdownSelect = new ViewDropDownSelect({\n\t\t\twrap: this.DOM.controlWrap,\n\t\t\tvalues: this.serviceList,\n\t\t\tselected: this.getSelectedService(),\n\t\t\thandleChangesCallback: function (selectedValues)\n\t\t\t{\n\t\t\t\tif (selectedValues && selectedValues[0])\n\t\t\t\t{\n\t\t\t\t\tthis.setSelectedService(selectedValues[0]);\n\t\t\t\t\tif (this.changeValueCallback)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.changeValueCallback();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}.bind(this)\n\t\t});\n\t\tthis.dropdownSelect.build();\n\t}\n\n\trefresh(data)\n\t{\n\t\tthis.refreshLabel(data);\n\t\tthis.data = data;\n\n\t\tthis.handleSettingsData(this.data);\n\n\t\tif (this.dropdownSelect)\n\t\t{\n\t\t\tthis.dropdownSelect.setSettings({\n\t\t\t\tvalues: this.serviceList,\n\t\t\t\tselected: this.getSelectedService()\n\t\t\t});\n\t\t}\n\n\t\tif (this.setDataConfig())\n\t\t{\n\t\t\tif (this.isDisplayed())\n\t\t\t{\n\t\t\t\tthis.show({animation: true});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hide({animation: true});\n\t\t\t}\n\t\t}\n\t}\n\n\thandleSettingsData()\n\t{\n\t\tthis.serviceIndex = {};\n\t\tif (Type.isArray(this.allServiceList))\n\t\t{\n\t\t\tthis.allServiceList.forEach(function(service)\n\t\t\t{\n\t\t\t\tif (Type.isPlainObject(service)\n\t\t\t\t\t&& Type.isString(service.name)\n\t\t\t\t\t&& service.name.trim() !== '')\n\t\t\t\t{\n\t\t\t\t\tthis.serviceIndex[this.prepareServiceId(service.name)] = service;\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\n\t\tthis.serviceList = [];\n\t\tif (this.data.value)\n\t\t{\n\t\t\tlet dataValueRaw = Type.isArray(this.data.value) ? this.data.value : this.data.value.split('|');\n\t\t\tdataValueRaw.forEach(function(id)\n\t\t\t{\n\t\t\t\tlet service = this.serviceIndex[this.prepareServiceId(id)];\n\t\t\t\tif (Type.isPlainObject(service)\n\t\t\t\t\t&& Type.isString(service.name)\n\t\t\t\t\t&& service.name.trim() !== '')\n\t\t\t\t{\n\t\t\t\t\tthis.serviceList.push({\n\t\t\t\t\t\tid: this.prepareServiceId(service.name),\n\t\t\t\t\t\ttitle: service.name + ' - ' + BookingUtil.getDurationLabel(service.duration)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\t}\n\n\tsetSelectedService(serviceName)\n\t{\n\t\tthis.selectedService = serviceName;\n\t}\n\n\tgetSelectedService(getMeta)\n\t{\n\t\treturn getMeta !== true ? (this.selectedService || null) : (this.serviceIndex[this.prepareServiceId(this.selectedService)] || null);\n\t}\n\n\tprepareServiceId(str)\n\t{\n\t\treturn BookingUtil.translit(str);\n\t}\n}\n","import {Type, Dom, BookingUtil, SelectInput} from \"../resourcebooking\";\nimport {ViewControlAbstract} from \"../viewcontrolabstract\";\n\nexport class DurationSelector extends ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.name = 'DurationSelector';\n\t\tthis.data = params.data;\n\t\tthis.durationList = BookingUtil.getDurationList(params.fullDay);\n\t\tthis.changeValueCallback = params.changeValueCallback;\n\t\tthis.defaultValue = params.defaultValue || this.data.defaultValue;\n\t\tthis.handleSettingsData(params.data);\n\t}\n\n\thandleSettingsData()\n\t{\n\t\tthis.durationItems = [];\n\t\tif (Type.isArray(this.durationList))\n\t\t{\n\t\t\tthis.durationList.forEach(function(item)\n\t\t\t{\n\t\t\t\tthis.durationItems.push({\n\t\t\t\t\tid: item.value,\n\t\t\t\t\ttitle: item.label\n\t\t\t\t});\n\t\t\t}, this);\n\t\t}\n\t}\n\n\tdisplayControl()\n\t{\n\t\tthis.DOM.durationInput = this.DOM.controlWrap.appendChild(Dom.create('INPUT', {\n\t\t\tattrs: {\n\t\t\t\tvalue: this.data.defaultValue || null,\n\t\t\t\ttype: 'text'\n\t\t\t},\n\t\t\tprops: {className: 'calendar-resbook-webform-block-input calendar-resbook-webform-block-input-dropdown'}\n\t\t}));\n\n\t\tthis.durationControl = new SelectInput({\n\t\t\tinput: this.DOM.durationInput,\n\t\t\tvalues: this.durationList,\n\t\t\tvalue: this.data.defaultValue || null,\n\t\t\teditable: this.data.manualInput === 'Y',\n\t\t\tdefaultValue: this.defaultValue,\n\t\t\tsetFirstIfNotFound: true,\n\t\t\tonChangeCallback: this.changeValueCallback\n\t\t});\n\t}\n\n\trefresh(data)\n\t{\n\t\tthis.refreshLabel(data);\n\t\tthis.data = data;\n\t\tthis.handleSettingsData(this.data);\n\n\t\tif (this.setDataConfig())\n\t\t{\n\t\t\tif (this.isDisplayed())\n\t\t\t{\n\t\t\t\tthis.show({animation: true});\n\t\t\t\tif (this.durationControl)\n\t\t\t\t{\n\t\t\t\t\tthis.durationControl.setValue(this.data.defaultValue || null);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.hide({animation: true});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSelectedValue()\n\t{\n\t\tlet duration = null;\n\t\tif (this.durationControl)\n\t\t{\n\t\t\tduration = BookingUtil.parseDuration(this.durationControl.getValue());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tduration = parseInt(this.defaultValue);\n\t\t}\n\t\treturn duration;\n\t}\n}","import {Type, Loc, Dom, Event, Tag, Browser, BookingUtil} from \"../resourcebooking\";\nimport {ViewControlAbstract} from \"../viewcontrolabstract\";\n\nexport class DateSelector extends ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.DOM = {\n\t\t\touterWrap: params.outerWrap,\n\t\t\twrap: null\n\t\t};\n\t\tthis.data = params.data || {};\n\t\tthis.changeValueCallback = params.changeValueCallback;\n\t\tthis.requestDataCallback = params.requestDataCallback;\n\t\tthis.previewMode = params.previewMode === undefined;\n\t\tthis.allowOverbooking = params.allowOverbooking;\n\t\tthis.setDataConfig();\n\t\tthis.displayed = true;\n\t}\n\n\tdisplay(params)\n\t{\n\t\tparams = params || {};\n\t\tthis.setDateIndex(params.availableDateIndex);\n\t\tthis.setCurrentDate(params.selectedValue);\n\n\t\tthis.DOM.wrap = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block\"></div>`);\n\n\t\tthis.DOM.innerWrap = this.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-inner\"></div>`);\n\t\tif (this.data.label)\n\t\t{\n\t\t\tthis.DOM.labelWrap = this.DOM.innerWrap.appendChild(Dom.create(\"div\", {props : { className : 'calendar-resbook-webform-block-title'}, text: this.data.label + '*'}));\n\t\t}\n\t\tthis.displayControl();\n\t\tthis.shown = true;\n\t}\n\n\trefresh(data, params)\n\t{\n\t\tparams = params || {};\n\t\tthis.setDateIndex(params.availableDateIndex);\n\t\tthis.setCurrentDate(params.selectedValue);\n\n\t\tthis.data = data;\n\t\tDom.adjust(this.DOM.labelWrap, {text: this.data.label + '*'});\n\n\t\tif (this.setDataConfig())\n\t\t{\n\t\t\tDom.remove(this.DOM.controlWrap);\n\t\t\tthis.displayControl();\n\t\t}\n\n\t\tif (this.style === 'line')\n\t\t{\n\t\t\tthis.lineDateControl.refreshDateAvailability();\n\t\t}\n\t}\n\n\tsetDataConfig()\n\t{\n\t\tlet\n\t\t\tstyle = this.data.style === 'line' ? 'line' : 'popup', // line|popup\n\t\t\tstart = this.data.start === 'today' ? 'today' : 'free',\n\t\t\tconfigWasChanged = this.style !== style || this.start !== start;\n\n\t\tthis.style = style;\n\t\tthis.start = start;\n\n\t\treturn configWasChanged;\n\t}\n\n\thide()\n\t{\n\t\tDom.remove(this.DOM.innerWrap);\n\t\tthis.DOM.innerWrap = null;\n\t}\n\n\tdisplayControl()\n\t{\n\t\tthis.DOM.controlWrap = this.DOM.innerWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-date\"></div>`);\n\n\t\tif (this.style === 'popup')\n\t\t{\n\t\t\tthis.DOM.controlWrap.className = 'calendar-resbook-webform-block-calendar';\n\t\t\tthis.popupSateControl = new PopupDateSelector(\n\t\t\t\t{\n\t\t\t\t\twrap: this.DOM.controlWrap,\n\t\t\t\t\tisDateAvailable: this.isDateAvailable.bind(this),\n\t\t\t\t\tonChange: function(value)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.onChange(value);\n\t\t\t\t\t}.bind(this)\n\t\t\t\t});\n\t\t\tthis.popupSateControl.build();\n\t\t\tthis.popupSateControl.setValue(this.getValue());\n\t\t}\n\t\telse if (this.style === 'line')\n\t\t{\n\t\t\tthis.DOM.controlWrap.className = 'calendar-resbook-webform-block-date';\n\t\t\tthis.lineDateControl = new LineDateSelector(\n\t\t\t\t{\n\t\t\t\t\twrap: this.DOM.controlWrap,\n\t\t\t\t\tisDateAvailable: this.isDateAvailable.bind(this),\n\t\t\t\t\tonChange: this.onChange.bind(this)\n\t\t\t\t}\n\t\t\t);\n\t\t\tthis.lineDateControl.build();\n\t\t\tthis.lineDateControl.setValue(this.getValue());\n\t\t}\n\t}\n\n\tsetCurrentDate(date)\n\t{\n\t\tif (Type.isDate(date))\n\t\t{\n\t\t\tthis.currentDate = date;\n\t\t}\n\t}\n\n\tsetDateIndex(availableDateIndex)\n\t{\n\t\tif (Type.isPlainObject(availableDateIndex))\n\t\t{\n\t\t\tthis.availableDateIndex = availableDateIndex;\n\t\t}\n\t}\n\n\tisDateLoaded(date)\n\t{\n\t\tif (Type.isDate(date) && !this.isItPastDate(date) && this.availableDateIndex)\n\t\t{\n\t\t\tif (this.availableDateIndex[BookingUtil.formatDate(null, date)] !== undefined)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (Type.isFunction(this.requestDataCallback))\n\t\t\t{\n\t\t\t\tthis.requestDataCallback({date: date});\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tisDateAvailable(date)\n\t{\n\t\tif (this.previewMode || this.allowOverbooking)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (Type.isDate(date) && !this.isItPastDate(date) && this.availableDateIndex)\n\t\t{\n\t\t\tlet dateKey = BookingUtil.formatDate(null, date);\n\t\t\tif (this.availableDateIndex[dateKey] === undefined)\n\t\t\t{\n\t\t\t\tif (Type.isFunction(this.requestDataCallback))\n\t\t\t\t{\n\t\t\t\t\tthis.requestDataCallback({date: date});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn this.availableDateIndex[dateKey];\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tisItPastDate(date)\n\t{\n\t\tif (Type.isDate(date))\n\t\t{\n\t\t\tlet\n\t\t\t\tnowDate = new Date(),\n\t\t\t\tcheckDate = new Date(date.getTime());\n\n\t\t\tnowDate.setHours(0, 0, 0, 0);\n\t\t\tcheckDate.setHours(0, 0, 0, 0);\n\n\t\t\treturn checkDate.getTime() < nowDate.getTime();\n\t\t}\n\t\treturn false;\n\t}\n\n\trefreshCurrentValue()\n\t{\n\t\tthis.onChange(this.getDisplayedValue());\n\t}\n\n\tgetDisplayedValue()\n\t{\n\t\treturn this.style === 'popup' ? this.popupSateControl.getValue() : this.lineDateControl.getValue();;\n\t}\n\n\tonChange(date)\n\t{\n\t\tif (Type.isFunction(this.changeValueCallback))\n\t\t{\n\t\t\tlet realDate = date;\n\t\t\tif (!Type.isDate(realDate))\n\t\t\t{\n\t\t\t\trealDate = this.getDisplayedValue();\n\t\t\t}\n\t\t\tthis.setCurrentDate(date);\n\t\t\tthis.changeValueCallback(date, realDate, this.isDateAvailable(realDate));\n\t\t}\n\t}\n\n\tgetValue()\n\t{\n\t\tif (!this.currentDate)\n\t\t{\n\t\t\tthis.currentDate = new Date();\n\t\t}\n\t\treturn this.currentDate;\n\t}\n}\n\n\nclass PopupDateSelector\n{\n\tstatic externalDatePickerIsEnabled = null;\n\n\tconstructor(params)\n\t{\n\t\tthis.DOM = {\n\t\t\touterWrap: params.wrap,\n\t\t\twrap: null\n\t\t};\n\t\tthis.value = null;\n\t\tthis.datePicker = null;\n\t\tthis.isDateAvailable = Type.isFunction(params.isDateAvailable) ? params.isDateAvailable : function(){return true};\n\t\tthis.onChange = Type.isFunction(params.onChange) ? params.onChange : function(){};\n\t}\n\n\tbuild()\n\t{\n\t\tthis.DOM.wrap = this.DOM.outerWrap.appendChild(Dom.create(\"div\", {\n\t\t\tprops : { className : 'calendar-resbook-webform-block-strip'},\n\t\t\tevents: {click: this.handleClick.bind(this)}\n\t\t}));\n\n\t\tthis.DOM.valueInput = this.DOM.wrap.appendChild(Tag.render`<input type=\"hidden\" \nvalue=\"\"/>`);\n\n\t\tthis.DOM.previousArrow = this.DOM.wrap.appendChild(Tag.render`<span class=\"calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-prev\" data-bx-resbook-date-meta=\"previous\"/>`);\n\n\t\tthis.DOM.stateWrap = this.DOM.wrap.appendChild(Tag.render`<span class=\"calendar-resbook-webform-block-strip-text\" data-bx-resbook-date-meta=\"calendar\"/>`);\n\n\t\tthis.DOM.stateWrapDate = this.DOM.stateWrap.appendChild(Tag.render`<span class=\"calendar-resbook-webform-block-strip-date\"/>`);\n\t\tthis.DOM.stateWrapDay = this.DOM.stateWrap.appendChild(Tag.render`<span class=\"calendar-resbook-webform-block-strip-day\"/>`);\n\n\t\tthis.DOM.nextArrow = this.DOM.wrap.appendChild(Tag.render`<span class=\"calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-next\" data-bx-resbook-date-meta=\"next\"/>`);\n\t}\n\n\tgetValue()\n\t{\n\t\treturn this.value;\n\t}\n\n\tsetValue(dateValue)\n\t{\n\t\tthis.value = dateValue;\n\t\tDom.adjust(this.DOM.stateWrapDate, {text: BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_DATE_LINE'), dateValue)});\n\t\tDom.adjust(this.DOM.stateWrapDay, {text: BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_DAY_LINE'), dateValue)});\n\n\t\tif (!this.isDateAvailable(dateValue) || !Type.isDate(dateValue))\n\t\t{\n\t\t\tthis.onChange(false);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.onChange(this.value);\n\t\t}\n\t}\n\n\thandleClick(e)\n\t{\n\t\tlet\n\t\t\tdateValue,\n\t\t\ttarget = e.target || e.srcElement;\n\n\t\tif (target.hasAttribute('data-bx-resbook-date-meta') ||\n\t\t\t(target = target.closest('[data-bx-resbook-date-meta]')))\n\t\t{\n\t\t\tlet dateMeta = target.getAttribute('data-bx-resbook-date-meta');\n\t\t\tif (dateMeta === 'previous')\n\t\t\t{\n\t\t\t\tdateValue = this.getValue();\n\t\t\t\tdateValue.setDate(dateValue.getDate() - 1);\n\t\t\t\tthis.setValue(dateValue);\n\t\t\t}\n\t\t\telse if (dateMeta === 'next')\n\t\t\t{\n\t\t\t\tdateValue = this.getValue();\n\t\t\t\tdateValue.setDate(dateValue.getDate() + 1);\n\t\t\t\tthis.setValue(dateValue);\n\t\t\t}\n\t\t\telse if (dateMeta === 'calendar')\n\t\t\t{\n\t\t\t\tthis.openCalendarPopup();\n\t\t\t}\n\t\t}\n\t}\n\n\topenCalendarPopup()\n\t{\n\t\tthis.DOM.valueInput.value = BookingUtil.formatDate(null, this.getValue().getTime() / 1000);\n\n\t\tif (PopupDateSelector.isExternalDatePickerEnabled())\n\t\t{\n\t\t\tthis.openExternalDatePicker();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.openBxCalendar();\n\t\t}\n\t}\n\n\topenBxCalendar()\n\t{\n\t\tBX.calendar({node: this.DOM.stateWrap, field: this.DOM.valueInput, bTime: false});\n\t\tif (BX.calendar.get().popup)\n\t\t{\n\t\t\tBookingUtil.unbindCustomEvent(BX.calendar.get().popup, 'onPopupClose', this.handleCalendarClose.bind(this));\n\t\t\tBookingUtil.bindCustomEvent(BX.calendar.get().popup, 'onPopupClose', this.handleCalendarClose.bind(this));\n\t\t}\n\t}\n\n\thandleCalendarClose()\n\t{\n\t\tthis.setValue(BookingUtil.parseDate(this.DOM.valueInput.value));\n\t}\n\n\tstatic isExternalDatePickerEnabled()\n\t{\n\t\tif (Type.isNull(PopupDateSelector.externalDatePickerIsEnabled))\n\t\t{\n\t\t\tPopupDateSelector.externalDatePickerIsEnabled = !!(window.BX && BX.UI && BX.UI.Vue && BX.UI.Vue.Components && BX.UI.Vue.Components.DatePick);\n\t\t}\n\n\t\treturn PopupDateSelector.externalDatePickerIsEnabled;\n\t}\n\n\topenExternalDatePicker()\n\t{\n\t\tif (Type.isNull(this.datePicker))\n\t\t{\n\t\t\tthis.datePicker = new BX.UI.Vue.Components.DatePick(\n\t\t\t\t{\n\t\t\t\t\tnode: this.DOM.stateWrap,\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tchange: function(value){\n\t\t\t\t\t\t\tthis.DOM.valueInput.value = value;\n\t\t\t\t\t\t\tthis.handleCalendarClose();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthis.datePicker.value = this.DOM.valueInput.value;\n\t\tthis.datePicker.toggle();\n\t}\n}\n\n\n\nclass LineDateSelector\n{\n\tconstructor(params)\n\t{\n\t\tparams = params || {};\n\t\tthis.DOM = {\n\t\t\touterWrap: params.wrap,\n\t\t\twrap: null\n\t\t};\n\t\tthis.value = null;\n\t\tthis.isDateAvailable = Type.isFunction(params.isDateAvailable) ? params.isDateAvailable : function(){return true};\n\t\tthis.onChange = Type.isFunction(params.onChange) ? params.onChange : function(){};\n\t\tthis.DAYS_DISPLAY_SIZE = 30;\n\t\tthis.DOM.dayNodes = {};\n\t\tthis.dayNodeIndex = {};\n\t}\n\n\tbuild()\n\t{\n\t\tthis.DOM.monthTitle = this.DOM.outerWrap.appendChild(Dom.create(\"span\", {\n\t\t\tprops : { className : 'calendar-resbook-webform-block-date-month'}\n\t\t}));\n\n\t\tthis.DOM.wrap = this.DOM.outerWrap.appendChild(Dom.create(\"div\", {\n\t\t\tprops : { className : 'calendar-resbook-webform-block-date-range'},\n\t\t\tevents: {click: this.handleClick.bind(this)}\n\t\t}));\n\n\t\tthis.DOM.controlStaticWrap = this.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-date-range-static-wrap\" \n></div>`);\n\t\tthis.DOM.controlInnerWrap = this.DOM.controlStaticWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-date-range-inner-wrap\" \n></div>`);\n\t\tthis.DOM.valueInput = this.DOM.wrap.appendChild(Tag.render`<input type=\"hidden\" \nvalue=\"\"/>`);\n\n\t\tthis.fillDays();\n\t\tthis.initCustomScroll();\n\t}\n\n\tfillDays()\n\t{\n\t\tlet\n\t\t\ti,\n\t\t\tstartDate = this.getStartLoadDate(),\n\t\t\tdate = new Date(startDate.getTime());\n\n\t\tfor (i = 0; i < this.DAYS_DISPLAY_SIZE; i++)\n\t\t{\n\t\t\tthis.addDateSlot(date);\n\t\t\tdate.setDate(date.getDate() + 1);\n\t\t}\n\n\t\tthis.innerWidth = parseInt(this.DOM.controlInnerWrap.offsetWidth);\n\t}\n\n\taddDateSlot(date)\n\t{\n\t\tlet dateCode = BookingUtil.formatDate('Y-m-d', date.getTime() / 1000);\n\t\tthis.dayNodeIndex[dateCode] = new Date(date.getTime());\n\t\tthis.DOM.dayNodes[dateCode] = this.DOM.controlInnerWrap.appendChild(Dom.create(\"div\", {\n\t\t\tattrs : {\n\t\t\t\tclassName : 'calendar-resbook-webform-block-date-item' + (this.isDateAvailable(date) ? '' : ' calendar-resbook-webform-block-date-item-off'),\n\t\t\t\t'data-bx-resbook-date-meta' : dateCode\n\t\t\t},\n\t\t\thtml: '<div class=\"calendar-resbook-webform-block-date-item-inner\">' +\n\t\t\t\t'<span class=\"calendar-resbook-webform-block-date-number\">' +\n\t\t\t\tBookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_DATE'), date) +\n\t\t\t\t'</span>' +\n\t\t\t\t'<span class=\"calendar-resbook-webform-block-date-day\">' +\n\t\t\t\tBookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_DAY_OF_THE_WEEK'), date) +\n\t\t\t\t'</span>' +\n\t\t\t\t'</div>'\n\t\t}));\n\t}\n\n\trefreshDateAvailability()\n\t{\n\t\tfor (let dateCode in this.DOM.dayNodes)\n\t\t{\n\t\t\tif (this.DOM.dayNodes.hasOwnProperty(dateCode))\n\t\t\t{\n\t\t\t\tif (this.isDateAvailable(this.dayNodeIndex[dateCode]))\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(this.DOM.dayNodes[dateCode], 'calendar-resbook-webform-block-date-item-off');\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(this.DOM.dayNodes[dateCode], 'calendar-resbook-webform-block-date-item-off');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\thandleClick(e)\n\t{\n\t\tlet\n\t\t\tdateValue,\n\t\t\ttarget = e.target || e.srcElement;\n\n\t\tif (target.hasAttribute('data-bx-resbook-date-meta') ||\n\t\t\t(target = target.closest('[data-bx-resbook-date-meta]')))\n\t\t{\n\t\t\tlet dateMeta = target.getAttribute('data-bx-resbook-date-meta');\n\t\t\tif (dateMeta && (dateValue = BookingUtil.parseDate(dateMeta, false, 'YYYY-MM-DD')))\n\t\t\t{\n\t\t\t\tthis.setValue(dateValue);\n\t\t\t}\n\t\t}\n\t}\n\n\tsetValue(dateValue)\n\t{\n\t\tif (Type.isDate(dateValue))\n\t\t{\n\t\t\tthis.value = dateValue;\n\t\t\tlet dayNode = this.getDayNode(dateValue);\n\t\t\tif (dayNode)\n\t\t\t{\n\t\t\t\tthis.setSelected(dayNode);\n\t\t\t}\n\t\t\tthis.onChange(this.value);\n\t\t}\n\t}\n\n\tgetValue()\n\t{\n\t\treturn this.value;\n\t}\n\n\tgetDayNode(dateValue)\n\t{\n\t\tlet dateCode = BookingUtil.formatDate('Y-m-d', dateValue.getTime() / 1000);\n\t\tif (this.DOM.dayNodes[dateCode])\n\t\t{\n\t\t\treturn this.DOM.dayNodes[dateCode];\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.fillDays(dateValue);\n\t\t\tif (this.DOM.dayNodes[dateCode])\n\t\t\t{\n\t\t\t\treturn this.DOM.dayNodes[dateCode];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tsetSelected(dayNode)\n\t{\n\t\tif (this.currentSelected)\n\t\t{\n\t\t\tDom.removeClass(this.currentSelected, 'calendar-resbook-webform-block-date-item-select');\n\t\t}\n\t\tthis.currentSelected = dayNode;\n\t\tDom.addClass(dayNode, 'calendar-resbook-webform-block-date-item-select');\n\t}\n\n\tgetStartLoadDate()\n\t{\n\t\tif (!this.startLoadDate)\n\t\t{\n\t\t\tthis.startLoadDate = new Date();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.startLoadDate.setDate(this.startLoadDate.getDate() + this.DAYS_DISPLAY_SIZE);\n\t\t}\n\t\treturn this.startLoadDate;\n\t}\n\n\tinitCustomScroll()\n\t{\n\t\tlet arrowWrap = this.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-arrow-container\" \n></div>`);\n\n\t\tthis.DOM.leftArrow = arrowWrap.appendChild(Dom.create(\"span\",\n\t\t\t{\n\t\t\t\tprops : {className : 'calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-prev'},\n\t\t\t\tevents: {click: this.handlePreletrowClick.bind(this)}\n\t\t\t}));\n\t\tthis.DOM.rightArrow = arrowWrap.appendChild(Dom.create(\"span\",\n\t\t\t{\n\t\t\t\tprops : { className : 'calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-next'},\n\t\t\t\tevents: {click: this.handleNextArrowClick.bind(this)}\n\t\t\t}));\n\n\t\tthis.outerWidth = parseInt(this.DOM.controlStaticWrap.offsetWidth);\n\t\tthis.innerWidth = parseInt(this.DOM.controlInnerWrap.offsetWidth);\n\n\t\tif ('onwheel' in document)\n\t\t{\n\t\t\tEvent.bind(this.DOM.controlStaticWrap, \"wheel\", this.mousewheelScrollHandler.bind(this));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tEvent.bind(this.DOM.controlStaticWrap, \"mousewheel\", this.mousewheelScrollHandler.bind(this));\n\t\t}\n\n\t\tthis.checkScrollPosition();\n\t}\n\n\thandleNextArrowClick()\n\t{\n\t\tthis.DOM.controlStaticWrap.scrollLeft = this.DOM.controlStaticWrap.scrollLeft + 100;\n\t\tthis.checkScrollPosition();\n\t}\n\n\thandlePreletrowClick()\n\t{\n\t\tthis.DOM.controlStaticWrap.scrollLeft = Math.max(this.DOM.controlStaticWrap.scrollLeft - 100, 0);\n\t\tthis.checkScrollPosition();\n\t}\n\n\tmousewheelScrollHandler(e)\n\t{\n\t\te = e || window.event;\n\t\tlet delta = e.deltaY || e.detail || e.wheelDelta;\n\t\tif (Math.abs(delta) > 0)\n\t\t{\n\t\t\tif (!Browser.isMac())\n\t\t\t{\n\t\t\t\tdelta = delta * 3;\n\t\t\t}\n\t\t\tthis.DOM.controlStaticWrap.scrollLeft = Math.max(this.DOM.controlStaticWrap.scrollLeft + delta, 0);\n\t\t\tthis.checkScrollPosition();\n\n\t\t\tif(e.stopPropagation)\n\t\t\t{\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tcheckScrollPosition()\n\t{\n\t\tif (this.outerWidth <= this.innerWidth)\n\t\t{\n\t\t\tthis.DOM.leftArrow.style.display = this.DOM.controlStaticWrap.scrollLeft === 0 ? 'none' : '';\n\t\t\t//this.DOM.rightArrow.style.display = (this.innerWidth - this.outerWidth - 4 <= this.DOM.controlStaticWrap.scrollLeft) ? 'none' : '';\n\t\t\tif (this.innerWidth - this.outerWidth - 4 <= this.DOM.controlStaticWrap.scrollLeft)\n\t\t\t{\n\t\t\t\tthis.fillDays();\n\t\t\t}\n\t\t}\n\n\t\tthis.updateMonthTitle();\n\t}\n\n\tupdateMonthTitle()\n\t{\n\t\tif (!this.dayNodeOuterWidth)\n\t\t{\n\t\t\tthis.dayNodeOuterWidth = this.DOM.controlInnerWrap.childNodes[1].offsetLeft - this.DOM.controlInnerWrap.childNodes[0].offsetLeft;\n\t\t\tif (!this.dayNodeOuterWidth)\n\t\t\t{\n\t\t\t\treturn setTimeout(this.updateMonthTitle.bind(this), 100);\n\t\t\t}\n\t\t}\n\n\t\tlet\n\t\t\tmonthFrom, monthTo, dateMeta, dateValue,\n\t\t\tfirstDayNodeIndex = Math.floor(this.DOM.controlStaticWrap.scrollLeft / this.dayNodeOuterWidth),\n\t\t\tlastDayNodeIndex = Math.floor((this.DOM.controlStaticWrap.scrollLeft + this.outerWidth) / this.dayNodeOuterWidth);\n\n\t\tif (this.DOM.controlInnerWrap.childNodes[firstDayNodeIndex])\n\t\t{\n\t\t\tdateMeta = this.DOM.controlInnerWrap.childNodes[firstDayNodeIndex].getAttribute('data-bx-resbook-date-meta');\n\t\t\tif (dateMeta && (dateValue = BookingUtil.parseDate(dateMeta, false, 'YYYY-MM-DD')))\n\t\t\t{\n\t\t\t\tmonthFrom = monthTo = BookingUtil.formatDate('f', dateValue);\n\t\t\t}\n\t\t}\n\n\t\tif (this.DOM.controlInnerWrap.childNodes[lastDayNodeIndex])\n\t\t{\n\t\t\tdateMeta = this.DOM.controlInnerWrap.childNodes[lastDayNodeIndex].getAttribute('data-bx-resbook-date-meta');\n\t\t\tif (dateMeta && (dateValue = BookingUtil.parseDate(dateMeta, false, 'YYYY-MM-DD')))\n\t\t\t{\n\t\t\t\tmonthTo = BookingUtil.formatDate('f', dateValue);\n\t\t\t}\n\t\t}\n\n\t\tif (monthFrom && monthTo)\n\t\t{\n\t\t\tDom.adjust(this.DOM.monthTitle, {text: monthTo === monthFrom ? monthFrom : monthFrom + ' - ' + monthTo});\n\t\t}\n\t}\n}","import {Type, Loc, Dom, Event, Tag, Browser, BookingUtil, MenuManager} from \"../resourcebooking\";\nimport {ViewControlAbstract} from \"../viewcontrolabstract\";\n\nexport class TimeSelector extends ViewControlAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.DOM = {\n\t\t\touterWrap: params.outerWrap,\n\t\t\twrap: null\n\t\t};\n\n\t\tthis.data = params.data || {};\n\t\tthis.setDataConfig();\n\n\t\tthis.timeFrom = this.data.timeFrom || params.timeFrom || 7;\n\t\tif (params.timeFrom !== undefined)\n\t\t{\n\t\t\tthis.timeFrom = params.timeFrom;\n\t\t}\n\t\tthis.timeTo = this.data.timeTo || 20;\n\t\tif (params.timeTo !== undefined)\n\t\t{\n\t\t\tthis.timeTo = params.timeTo;\n\t\t}\n\t\tthis.SLOTS_ROW_AMOUNT = 6;\n\t\tthis.id = 'time-selector-' + Math.round(Math.random() * 1000);\n\t\tthis.popupSelectId = this.id + '-select-popup';\n\n\t\tthis.previewMode = params.previewMode === undefined;\n\t\tthis.changeValueCallback = params.changeValueCallback;\n\t\tthis.timezone = params.timezone;\n\t\tthis.timezoneOffset = params.timezoneOffset;\n\t\tthis.timezoneOffsetLabel = params.timezoneOffsetLabel;\n\t\tthis.timeMidday = 12;\n\t\tthis.timeEvening = 17;\n\t\tthis.displayed = true;\n\t}\n\n\tsetDataConfig()\n\t{\n\t\tlet\n\t\t\tstyle = this.data.style === 'select' ? 'select' : 'slots', // select|slots\n\t\t\tshowOnlyFree = this.data.showOnlyFree !== 'N',\n\t\t\tshowFinishTime = this.data.showFinishTime === 'Y',\n\t\t\tscale = parseInt(this.data.scale || 30),\n\t\t\tconfigWasChanged = this.style !== style || this.showOnlyFree !== showOnlyFree || this.showFinishTime !== showFinishTime || this.scale !== scale;\n\n\t\tthis.style = style;\n\t\tthis.showOnlyFree = showOnlyFree;\n\t\tthis.showFinishTime = showFinishTime;\n\t\tthis.scale = scale;\n\n\t\treturn configWasChanged;\n\t}\n\n\tdisplay()\n\t{\n\t\tthis.DOM.wrap = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block\"></div>`);\n\t\tthis.DOM.innerWrap = this.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-inner\"></div>`);\n\t\tif (this.data.label)\n\t\t{\n\t\t\tthis.DOM.labelWrap = this.DOM.innerWrap.appendChild(Dom.create(\"div\", {\n\t\t\t\tprops: {className: 'calendar-resbook-webform-block-title'},\n\t\t\t\ttext: this.data.label + '*'\n\t\t\t}));\n\n\t\t\tif (this.timezone)\n\t\t\t{\n\t\t\t\tthis.DOM.timezoneLabelWrap = this.DOM.labelWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-title-timezone\"></div>`);\n\t\t\t\tDom.adjust(this.DOM.timezoneLabelWrap, {html: Loc.getMessage('USER_TYPE_RESOURCE_TIMEZONE').replace('#TIMEZONE#', this.timezone + ' ' + this.timezoneOffsetLabel)});\n\t\t\t}\n\t\t}\n\n\t\tthis.displayControl();\n\t\tthis.setValue(this.getValue());\n\t\tthis.shown = true;\n\t}\n\n\trefresh(data, params)\n\t{\n\t\tparams = params || {};\n\t\tthis.setSlotIndex(params.slotIndex);\n\t\tthis.currentDate = params.currentDate || new Date();\n\t\tthis.data = data;\n\n\t\tif (!this.isShown())\n\t\t{\n\t\t\tthis.setDataConfig();\n\t\t\tthis.display();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.DOM.labelWrap && this.data.label)\n\t\t\t{\n\t\t\t\tDom.adjust(this.DOM.labelWrap, {text: this.data.label + '*'});\n\t\t\t}\n\n\t\t\tif (this.timezone)\n\t\t\t{\n\t\t\t\tif (!this.DOM.timezoneLabelWrap\n\t\t\t\t\t|| !this.DOM.labelWrap.contains(this.DOM.timezoneLabelWrap))\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.timezoneLabelWrap = this.DOM.labelWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-title-timezone\"></div>`);\n\n\t\t\t\t}\n\t\t\t\tDom.adjust(this.DOM.timezoneLabelWrap, {html: Loc.getMessage('USER_TYPE_RESOURCE_TIMEZONE').replace('#TIMEZONE#', this.timezone + ' ' + this.timezoneOffsetLabel)});\n\t\t\t}\n\n\t\t\tif (this.setDataConfig() || params.slotIndex || params.selectedValue)\n\t\t\t{\n\t\t\t\tDom.remove(this.DOM.controlWrap);\n\t\t\t\tthis.displayControl();\n\t\t\t}\n\t\t}\n\n\t\tthis.setCurrentValue(params.selectedValue || this.getValue());\n\t}\n\n\tsetSlotIndex(slotIndex)\n\t{\n\t\tif (Type.isPlainObject(slotIndex))\n\t\t{\n\t\t\tthis.availableSlotIndex = slotIndex;\n\t\t}\n\t}\n\n\tsetCurrentValue(timeValue)\n\t{\n\t\tif (timeValue && (this.previewMode || this.availableSlotIndex[timeValue]))\n\t\t{\n\t\t\tthis.setValue(timeValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setValue(null);\n\t\t}\n\t}\n\n\tshowEmptyWarning()\n\t{\n\t\tif (this.DOM.labelWrap)\n\t\t{\n\t\t\tthis.DOM.labelWrap.style.display = 'none';\n\t\t}\n\n\t\tif (!this.DOM.warningWrap)\n\t\t{\n\t\t\tthis.DOM.warningTextNode = Tag.render`<span class=\"calendar-resbook-webform-block-notice-date\"/>`;\n\n\t\t\tthis.DOM.warningWrap = this.DOM.innerWrap.appendChild(Dom.create(\"div\", {\n\t\t\t\tprops: {className: 'calendar-resbook-webform-block-notice'},\n\t\t\t\tchildren: [\n\t\t\t\t\tTag.render`<span class=\"calendar-resbook-webform-block-notice-icon\"/>`,\n\t\t\t\t\tthis.DOM.warningTextNode,\n\t\t\t\t\tDom.create(\"span\", {\n\t\t\t\t\t\tprops: {className: 'calendar-resbook-webform-block-notice-detail'},\n\t\t\t\t\t\ttext: Loc.getMessage('WEBF_RES_BOOKING_BUSY_DAY_WARNING')\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t}));\n\t\t}\n\n\t\tif (this.DOM.warningWrap)\n\t\t{\n\t\t\tDom.adjust(this.DOM.warningTextNode, {text: BookingUtil.formatDate(Loc.getMessage('WEBF_RES_BUSY_DAY_DATE_FORMAT'), this.currentDate)});\n\t\t\tthis.DOM.warningWrap.style.display = '';\n\n\t\t\tthis.noSlotsAvailable = true;\n\t\t}\n\t}\n\n\thideEmptyWarning()\n\t{\n\t\tthis.noSlotsAvailable = false;\n\t\tif (this.DOM.labelWrap)\n\t\t{\n\t\t\tthis.DOM.labelWrap.style.display = '';\n\t\t}\n\t\tif (this.DOM.warningWrap)\n\t\t{\n\t\t\tthis.DOM.warningWrap.style.display = 'none';\n\t\t}\n\t}\n\n\tdisplayControl()\n\t{\n\t\tlet slotsInfo = this.getSlotsInfo();\n\t\tthis.slots = slotsInfo.slots;\n\n\t\tif (!slotsInfo.freeSlotsCount)\n\t\t{\n\t\t\tthis.showEmptyWarning();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.hideEmptyWarning();\n\t\t\tif (this.style === 'select')\n\t\t\t{\n\t\t\t\tthis.createSelectControl();\n\t\t\t}\n\t\t\telse if (this.style === 'slots')\n\t\t\t{\n\t\t\t\tthis.createSlotsControl();\n\t\t\t}\n\t\t}\n\t}\n\n\thide()\n\t{\n\t\tif (this.DOM.innerWrap)\n\t\t{\n\t\t\tthis.DOM.innerWrap.style.display = 'none';\n\t\t}\n\t}\n\n\tshow()\n\t{\n\t\tif (this.DOM.innerWrap)\n\t\t{\n\t\t\tthis.DOM.innerWrap.style.display = '';\n\t\t}\n\t}\n\n\tcreateSlotsControl()\n\t{\n\t\tif (this.DOM.controlWrap)\n\t\t{\n\t\t\tDom.remove(this.DOM.controlWrap);\n\t\t}\n\n\t\tthis.DOM.controlWrap = this.DOM.innerWrap.appendChild(\n\t\t\tDom.create(\"div\", {\n\t\t\t\tprops: {className: 'calendar-resbook-webform-block-time'},\n\t\t\t\tevents: {click: this.handleClick.bind(this)}\n\t\t\t}));\n\n\t\tif (!this.showFinishTime && !BookingUtil.isAmPmMode())\n\t\t{\n\t\t\tDom.addClass(this.DOM.controlWrap, 'calendar-resbook-webform-block-time-sm');\n\t\t}\n\t\telse if (!this.showFinishTime && BookingUtil.isAmPmMode())\n\t\t{\n\t\t\tDom.addClass(this.DOM.controlWrap, 'calendar-resbook-webform-block-time-md');\n\t\t}\n\t\telse if (BookingUtil.isAmPmMode())\n\t\t{\n\t\t\tDom.addClass(this.DOM.controlWrap, 'calendar-resbook-webform-block-time-lg');\n\t\t}\n\n\t\tthis.DOM.controlStaticWrap = this.DOM.controlWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-time-static-wrap\"></div>`);\n\t\tthis.DOM.controlInnerWrap = this.DOM.controlStaticWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-time-inner-wrap\"></div>`);\n\n\t\tlet\n\t\t\titemsInColumn,\n\t\t\tmaxColumnNumber = 3,\n\t\t\tparts = {},\n\t\t\titemNumber = 0,\n\t\t\tinnerWrap;\n\n\t\t// FilterSlots\n\t\tthis.slots.forEach(function(slot)\n\t\t{\n\t\t\tif (!parts[slot.partOfTheDay])\n\t\t\t{\n\t\t\t\tparts[slot.partOfTheDay] = {\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tparts[slot.partOfTheDay].items.push(slot);\n\t\t});\n\n\t\tthis.slots.forEach(function(slot)\n\t\t{\n\t\t\tif (!parts[slot.partOfTheDay].wrap)\n\t\t\t{\n\t\t\t\titemNumber = 0;\n\t\t\t\titemsInColumn = 6;\n\t\t\t\tparts[slot.partOfTheDay].wrap = Dom.create(\"div\", {\n\t\t\t\t\tprops: {className: 'calendar-resbook-webform-block-col'},\n\t\t\t\t\thtml: '<span class=\"calendar-resbook-webform-block-col-title\">'\n\t\t\t\t\t\t+ Loc.getMessage('WEBF_RES_PART_OF_THE_DAY_' + slot.partOfTheDay.toUpperCase())\n\t\t\t\t\t\t+ '</span>'\n\t\t\t\t});\n\n\t\t\t\tparts[slot.partOfTheDay].itemsWrap = parts[slot.partOfTheDay].wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-col-list\"></div>`);\n\n\t\t\t\tif (parts[slot.partOfTheDay].items.length > maxColumnNumber * itemsInColumn)\n\t\t\t\t{\n\t\t\t\t\titemsInColumn = Math.ceil(parts[slot.partOfTheDay].items.length / maxColumnNumber);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (itemNumber % itemsInColumn === 0)\n\t\t\t{\n\t\t\t\tinnerWrap = parts[slot.partOfTheDay].itemsWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-col-list-inner\"></div>`);\n\t\t\t}\n\n\t\t\tif (innerWrap && (!slot.booked || !this.showOnlyFree))\n\t\t\t{\n\t\t\t\tinnerWrap.appendChild(Dom.create(\"div\", {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\t'data-bx-resbook-time-meta': 'slot' + (slot.booked ? '-off' : ''),\n\t\t\t\t\t\t'data-bx-resbook-slot': slot.time.toString(),\n\t\t\t\t\t\tclassName: 'calendar-resbook-webform-block-col-item'\n\t\t\t\t\t\t\t+ (slot.selected ? ' calendar-resbook-webform-block-col-item-select' : '')\n\t\t\t\t\t\t\t+ (slot.booked ? ' calendar-resbook-webform-block-col-item-off' : '')\n\t\t\t\t\t},\n\t\t\t\t\thtml: '<div class=\"calendar-resbook-webform-block-col-item-inner\">' + '<span class=\"calendar-resbook-webform-block-col-time\">' + slot.fromTime + '</span>' + (this.showFinishTime ? '- <span class=\"calendar-resbook-webform-block-col-time calendar-resbook-webform-block-col-time-end\">' + slot.toTime + '</span>' : ''\n\t\t\t\t\t) + '</div>'\n\t\t\t\t}));\n\t\t\t\titemNumber++;\n\t\t\t}\n\n\t\t\tparts[slot.partOfTheDay].itemsAmount = itemNumber;\n\t\t}, this);\n\n\t\tlet k;\n\t\tfor (k in parts)\n\t\t{\n\t\t\tif (parts.hasOwnProperty(k) && parts[k].itemsAmount > 0)\n\t\t\t{\n\t\t\t\tthis.DOM.controlInnerWrap.appendChild(parts[k].wrap);\n\t\t\t}\n\t\t}\n\n\t\tthis.initCustomScrollForSlots();\n\t}\n\n\tcreateSelectControl()\n\t{\n\t\tif (this.DOM.controlWrap)\n\t\t{\n\t\t\tDom.remove(this.DOM.controlWrap);\n\t\t}\n\n\t\tthis.DOM.controlWrap = this.DOM.innerWrap.appendChild(Dom.create(\"div\", {\n\t\t\tprops: {className: 'calendar-resbook-webform-block-field'},\n\t\t\tevents: {click: this.handleClick.bind(this)}\n\t\t}));\n\n\t\tthis.DOM.timeSelectWrap = this.DOM.controlWrap.appendChild(Dom.create(\"div\", {\n\t\t\tprops: {className: 'calendar-resbook-webform-block-strip'}\n\t\t}));\n\t\tthis.DOM.valueInput = this.DOM.timeSelectWrap.appendChild(Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: 'hidden',\n\t\t\t\tvalue: ''\n\t\t\t}\n\t\t}));\n\n\t\tthis.DOM.previousArrow = this.DOM.timeSelectWrap.appendChild(Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-prev',\n\t\t\t\t'data-bx-resbook-time-meta': 'previous'\n\t\t\t}\n\t\t}));\n\n\t\tthis.DOM.stateWrap = this.DOM.timeSelectWrap.appendChild(Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'calendar-resbook-webform-block-strip-text',\n\t\t\t\t'data-bx-resbook-time-meta': 'select'\n\t\t\t}\n\t\t}));\n\t\tthis.DOM.stateWrap = this.DOM.stateWrap.appendChild(Dom.create(\"span\", {props: {className: 'calendar-resbook-webform-block-strip-date'}}));\n\n\t\tthis.DOM.nextArrow = this.DOM.timeSelectWrap.appendChild(Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'calendar-resbook-webform-block-strip-arrow calendar-resbook-webform-block-strip-arrow-next',\n\t\t\t\t'data-bx-resbook-time-meta': 'next'\n\t\t\t}\n\t\t}));\n\n\t\tthis.setValue(this.getValue());\n\t}\n\n\tsetValue(value)\n\t{\n\t\tlet slot = this.getSlotByTime(value);\n\t\tif (slot)\n\t\t{\n\t\t\tif (this.style === 'select' && Type.isDomNode(this.DOM.stateWrap))\n\t\t\t{\n\t\t\t\tDom.adjust(this.DOM.stateWrap, {text: this.getTimeTextBySlot(slot)});\n\t\t\t}\n\t\t\telse if (this.style === 'slots')\n\t\t\t{\n\t\t\t\tthis.setSelected(this.getSlotNode(slot.time));\n\t\t\t}\n\t\t\tthis.value = slot.time;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.value = null;\n\t\t}\n\n\t\tif (!this.previewMode && Type.isFunction(this.changeValueCallback))\n\t\t{\n\t\t\tthis.changeValueCallback(this.value);\n\t\t}\n\t}\n\n\tgetValue()\n\t{\n\t\tif (!this.value && (this.previewMode || this.style === 'select'))\n\t\t{\n\t\t\tthis.value = this.slots[0].time;\n\t\t}\n\t\treturn this.value;\n\t}\n\n\thasAvailableSlots()\n\t{\n\t\treturn !this.noSlotsAvailable;\n\t}\n\n\tgetTimeTextBySlot(slot)\n\t{\n\t\treturn slot.fromTime + (this.showFinishTime ? ' - ' + slot.toTime : '');\n\t}\n\n\tgetSlotByTime(time)\n\t{\n\t\treturn Type.isArray(this.slots) ? this.slots.find(function(slot){return parseInt(slot.time) === parseInt(time);}) : null;\n\t}\n\n\thandleClick(e)\n\t{\n\t\tlet target = e.target || e.srcElement;\n\t\tif (target.hasAttribute('data-bx-resbook-time-meta') ||\n\t\t\t(target = target.closest('[data-bx-resbook-time-meta]')))\n\t\t{\n\t\t\tlet meta = target.getAttribute('data-bx-resbook-time-meta');\n\t\t\tif (this.style === 'select')\n\t\t\t{\n\t\t\t\tif (meta === 'previous')\n\t\t\t\t{\n\t\t\t\t\tthis.setValue(this.getValue() - this.scale);\n\t\t\t\t}\n\t\t\t\telse if (meta === 'next')\n\t\t\t\t{\n\t\t\t\t\tthis.setValue(this.getValue() + this.scale);\n\t\t\t\t}\n\t\t\t\telse if (meta === 'select')\n\t\t\t\t{\n\t\t\t\t\tthis.openSelectPopup();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (meta === 'slot')\n\t\t\t{\n\t\t\t\tthis.setValue(parseInt(target.getAttribute('data-bx-resbook-slot')));\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSlotsInfo()\n\t{\n\t\tlet\n\t\t\tslots = [], slot,\n\t\t\tfreeSlotsCount = 0,\n\t\t\tfinishTime, hourFrom, minFrom,\n\t\t\thourTo, minTo,\n\t\t\tpart = 'morning',\n\t\t\tnum = 0,\n\t\t\ttime = this.timeFrom * 60;\n\n\t\twhile (time < this.timeTo * 60)\n\t\t{\n\t\t\tif (time >= this.timeEvening * 60)\n\t\t\t{\n\t\t\t\tpart = 'evening';\n\t\t\t}\n\t\t\telse if (time >= this.timeMidday * 60)\n\t\t\t{\n\t\t\t\tpart = 'afternoon';\n\t\t\t}\n\n\t\t\thourFrom = Math.floor(time / 60);\n\t\t\tminFrom = (time) - hourFrom * 60;\n\t\t\tfinishTime = time + this.scale;\n\t\t\thourTo = Math.floor(finishTime / 60);\n\t\t\tminTo = (finishTime) - hourTo * 60;\n\n\t\t\tslot = {\n\t\t\t\ttime: time,\n\t\t\t\tfromTime: BookingUtil.formatTime(hourFrom, minFrom),\n\t\t\t\ttoTime: BookingUtil.formatTime(hourTo, minTo),\n\t\t\t\tpartOfTheDay: part\n\t\t\t};\n\n\t\t\tif (this.previewMode)\n\t\t\t{\n\t\t\t\tif (!num)\n\t\t\t\t{\n\t\t\t\t\tslot.selected = true;\n\t\t\t\t}\n\t\t\t\telse if (Math.round(Math.random() * 10) <= 3)\n\t\t\t\t{\n\t\t\t\t\tslot.booked = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if(this.availableSlotIndex)\n\t\t\t{\n\t\t\t\tslot.booked = !this.availableSlotIndex[time];\n\t\t\t}\n\n\t\t\tif (!slot.booked)\n\t\t\t{\n\t\t\t\tfreeSlotsCount++;\n\t\t\t}\n\n\t\t\tslots.push(slot);\n\t\t\ttime += this.scale;\n\t\t\tnum++;\n\t\t}\n\n\t\treturn {\n\t\t\tslots: slots,\n\t\t\tfreeSlotsCount: freeSlotsCount\n\t\t};\n\t}\n\n\tinitCustomScrollForSlots()\n\t{\n\t\tlet arrowWrap = this.DOM.controlWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-arrow-container\" />`);\n\n\t\t\tthis.DOM.leftArrow = arrowWrap.appendChild(Dom.create(\"span\",\n\t\t\t{\n\t\t\t\tprops : {className : 'calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-prev'},\n\t\t\t\tevents: {click: this.handlePreletrowClick.bind(this)}\n\t\t\t}));\n\t\tthis.DOM.rightArrow = arrowWrap.appendChild(Dom.create(\"span\",\n\t\t\t{\n\t\t\t\tprops : { className : 'calendar-resbook-webform-block-arrow calendar-resbook-webform-block-arrow-next'},\n\t\t\t\tevents: {click: this.handleNextArrowClick.bind(this)}\n\t\t\t}));\n\n\t\tthis.outerWidth = parseInt(this.DOM.controlStaticWrap.offsetWidth);\n\t\tthis.innerWidth = parseInt(this.DOM.controlInnerWrap.offsetWidth);\n\n\t\tif ('onwheel' in document)\n\t\t\tEvent.bind(this.DOM.controlStaticWrap, \"wheel\", this.mousewheelScrollHandler.bind(this));\n\t\telse\n\t\t\tEvent.bind(this.DOM.controlStaticWrap, \"mousewheel\", this.mousewheelScrollHandler.bind(this));\n\n\t\tthis.checkSlotsScroll();\n\t}\n\n\thandleNextArrowClick()\n\t{\n\t\tthis.DOM.controlStaticWrap.scrollLeft = this.DOM.controlStaticWrap.scrollLeft + 100;\n\t\tthis.checkSlotsScroll();\n\t}\n\n\thandlePreletrowClick()\n\t{\n\t\tthis.DOM.controlStaticWrap.scrollLeft = Math.max(this.DOM.controlStaticWrap.scrollLeft - 100, 0);\n\t\tthis.checkSlotsScroll();\n\t}\n\n\tmousewheelScrollHandler(e)\n\t{\n\t\te = e || window.event;\n\t\tlet delta = e.deltaY || e.detail || e.wheelDelta;\n\t\tif (Math.abs(delta) > 0)\n\t\t{\n\t\t\tif (!Browser.isMac())\n\t\t\t{\n\t\t\t\tdelta = delta * 5;\n\t\t\t}\n\t\t\tthis.DOM.controlStaticWrap.scrollLeft = Math.max(this.DOM.controlStaticWrap.scrollLeft + delta, 0);\n\t\t\tthis.checkSlotsScroll();\n\t\t\tif(e.stopPropagation)\n\t\t\t{\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tcheckSlotsScroll()\n\t{\n\t\tif (this.outerWidth <= this.innerWidth)\n\t\t{\n\t\t\tthis.DOM.leftArrow.style.display = this.DOM.controlStaticWrap.scrollLeft ? '' : 'none';\n\t\t\tif (this.innerWidth - this.outerWidth - 4 <= this.DOM.controlStaticWrap.scrollLeft)\n\t\t\t{\n\t\t\t\tthis.DOM.rightArrow.style.display = 'none';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.DOM.rightArrow.style.display = '';\n\t\t\t}\n\t\t}\n\t}\n\n\topenSelectPopup()\n\t{\n\t\tif (this.isSelectPopupShown())\n\t\t{\n\t\t\treturn this.closeSelectPopup();\n\t\t}\n\n\t\tthis.popup = MenuManager.create(\n\t\t\tthis.popupSelectId,\n\t\t\tthis.DOM.stateWrap,\n\t\t\tthis.getTimeSelectItems(),\n\t\t\t{\n\t\t\t\tclassName: \"calendar-resbook-time-select-popup\"\t,\n\t\t\t\tangle: true,\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : true,\n\t\t\t\toffsetTop: 5,\n\t\t\t\toffsetLeft: 10,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.popup.show(true);\n\t}\n\n\tcloseSelectPopup()\n\t{\n\t\tif (this.isSelectPopupShown())\n\t\t{\n\t\t\tthis.popup.close();\n\t\t\tEvent.unbind(document, 'click', this.handleClick.bind(this));\n\t\t}\n\t}\n\n\tisSelectPopupShown()\n\t{\n\t\treturn this.popup && this.popup.popupWindow &&\n\t\t\tthis.popup.popupWindow.isShown && this.popup.popupWindow.isShown();\n\t}\n\n\tgetTimeSelectItems()\n\t{\n\t\tlet menuItems = [];\n\t\tthis.slots.forEach(function(slot)\n\t\t{\n\t\t\tif (this.showOnlyFree && slot.booked)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet className = 'menu-popup-no-icon';\n\t\t\tif (slot.booked)\n\t\t\t{\n\t\t\t\tclassName += ' menu-item-booked';\n\t\t\t}\n\t\t\tif (slot.selected)\n\t\t\t{\n\t\t\t\tclassName += ' menu-item-selected';\n\t\t\t}\n\n\t\t\tmenuItems.push(\n\t\t\t\t{\n\t\t\t\t\tclassName: className,\n\t\t\t\t\ttext: this.getTimeTextBySlot(slot),\n\t\t\t\t\tdataset: {\n\t\t\t\t\t\tvalue: slot.time,\n\t\t\t\t\t\tbooked: !!slot.booked\n\t\t\t\t\t},\n\t\t\t\t\tonclick: this.menuItemClick.bind(this)\n\t\t\t\t}\n\t\t\t);\n\t\t}, this);\n\t\treturn menuItems;\n\t}\n\n\tmenuItemClick(e, menuItem)\n\t{\n\t\tif (menuItem && menuItem.dataset && menuItem.dataset.value)\n\t\t{\n\t\t\tif (!menuItem.dataset.booked)\n\t\t\t{\n\t\t\t\tthis.setValue(menuItem.dataset.value);\n\t\t\t}\n\t\t}\n\t\tthis.closeSelectPopup();\n\t}\n\n\tgetSlotNode(time)\n\t{\n\t\tlet i, slotNodes = this.DOM.controlInnerWrap.querySelectorAll('.calendar-resbook-webform-block-col-item');\n\t\tfor (i = 0; i < slotNodes.length; i++)\n\t\t{\n\t\t\tif (parseInt(slotNodes[i].getAttribute('data-bx-resbook-slot')) === parseInt(time))\n\t\t\t{\n\t\t\t\treturn slotNodes[i];\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tsetSelected(slotNode)\n\t{\n\t\tif (Type.isDomNode(slotNode))\n\t\t{\n\t\t\tif (this.currentSelected)\n\t\t\t{\n\t\t\t\tDom.removeClass(this.currentSelected, 'calendar-resbook-webform-block-col-item-select');\n\t\t\t}\n\t\t\tthis.currentSelected = slotNode;\n\t\t\tDom.addClass(slotNode, 'calendar-resbook-webform-block-col-item-select');\n\t\t}\n\t}\n}\n\n","import {Loc, Dom, Tag, BookingUtil} from \"../resourcebooking\";\n\nexport class StatusInformer\n{\n\tconstructor(params)\n\t{\n\t\tthis.DOM = {\n\t\t\touterWrap: params.outerWrap\n\t\t};\n\t\tthis.timezone = params.timezone;\n\t\tthis.timezoneOffsetLabel = params.timezoneOffsetLabel;\n\t\tthis.shown = false;\n\t\tthis.built = false;\n\t}\n\n\tisShown()\n\t{\n\t\treturn this.shown;\n\t}\n\n\tbuild()\n\t{\n\t\tthis.DOM.wrap = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-result\" style=\"display: none\" \n></div>`);\n\t\tthis.DOM.innerWrap = this.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-result-inner\"></div>`);\n\t\tthis.DOM.labelWrap = this.DOM.innerWrap.appendChild(Dom.create(\"span\", {props : { className : 'calendar-resbook-webform-block-result-text'}, text: Loc.getMessage('WEBF_RES_BOOKING_STATUS_LABEL')}));\n\t\tthis.DOM.statusWrap = this.DOM.innerWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-block-result-value\"></div>`);\n\t\tthis.DOM.statusTimezone = this.DOM.innerWrap.appendChild(Dom.create(\"span\", {props: {className: 'calendar-resbook-webform-block-result-timezone'}, text: this.timezoneOffsetLabel || '', style: {display: 'none'}}));\n\t\tthis.built = true;\n\t}\n\n\trefresh(params)\n\t{\n\t\tif (!this.built)\n\t\t{\n\t\t\tthis.build();\n\t\t}\n\n\t\tif (!this.isShown())\n\t\t{\n\t\t\tthis.show();\n\t\t}\n\n\t\tif (params.dateFrom)\n\t\t{\n\t\t\tthis.DOM.labelWrap.style.display = '';\n\t\t\tDom.removeClass(this.DOM.wrap, 'calendar-resbook-webform-block-result-error');\n\t\t\tif (this.timezone)\n\t\t\t{\n\t\t\t\tthis.DOM.statusTimezone.style.display = '';\n\t\t\t}\n\t\t\tDom.adjust(this.DOM.statusWrap, {text: this.getStatusText(params)});\n\t\t}\n\t\telse if (!params.dateFrom && params.fullDay)\n\t\t{\n\t\t\tthis.DOM.labelWrap.style.display = 'none';\n\t\t\tthis.DOM.statusTimezone.style.display = 'none';\n\t\t\tDom.addClass(this.DOM.wrap, 'calendar-resbook-webform-block-result-error');\n\t\t\tDom.adjust(this.DOM.statusWrap, {text: Loc.getMessage('WEBF_RES_BOOKING_STATUS_DATE_IS_NOT_AVAILABLE')});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.labelWrap.style.display = 'none';\n\t\t\tthis.DOM.statusTimezone.style.display = 'none';\n\t\t\tDom.removeClass(this.DOM.wrap, 'calendar-resbook-webform-block-result-error');\n\t\t\tDom.adjust(this.DOM.statusWrap, {text: Loc.getMessage('WEBF_RES_BOOKING_STATUS_NO_TIME_SELECTED')});\n\t\t}\n\t}\n\n\tgetStatusText(params)\n\t{\n\t\tlet\n\t\t\tdateFrom = params.dateFrom,\n\t\t\tdateTo = new Date(dateFrom.getTime() + params.duration * 60 * 1000 + (params.fullDay ? -1 : 0)),\n\t\t\ttext = '';\n\n\t\tif (params.fullDay)\n\t\t{\n\t\t\tif (BookingUtil.formatDate('Y-m-d', dateFrom.getTime() / 1000) === BookingUtil.formatDate('Y-m-d', dateTo.getTime() / 1000))\n\t\t\t{\n\t\t\t\ttext = BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_STATUS'), dateFrom);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttext = Loc.getMessage('WEBF_RES_DATE_FORMAT_FROM_TO')\n\t\t\t\t\t.replace('#DATE_FROM#', BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_STATUS_SHORT'), dateFrom))\n\t\t\t\t\t.replace('#DATE_TO#', BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_STATUS_SHORT'), dateTo));\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (BookingUtil.formatDate('Y-m-d', dateFrom.getTime() / 1000) === BookingUtil.formatDate('Y-m-d', dateTo.getTime() / 1000))\n\t\t\t{\n\t\t\t\ttext = BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_STATUS'), dateFrom)\n\t\t\t\t\t+ ' '\n\t\t\t\t\t+ Loc.getMessage('WEBF_RES_TIME_FORMAT_FROM_TO')\n\t\t\t\t\t\t.replace('#TIME_FROM#', BookingUtil.formatTime(dateFrom.getHours(), dateFrom.getMinutes()))\n\t\t\t\t\t\t.replace('#TIME_TO#', BookingUtil.formatTime(dateTo.getHours(), dateTo.getMinutes()));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttext = Loc.getMessage('WEBF_RES_DATE_FORMAT_FROM_TO')\n\t\t\t\t\t.replace('#DATE_FROM#', BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_STATUS_SHORT'), dateFrom) + ' '+ BookingUtil.formatTime(dateFrom.getHours(), dateFrom.getMinutes()))\n\t\t\t\t\t.replace('#DATE_TO#', BookingUtil.formatDate(Loc.getMessage('WEBF_RES_DATE_FORMAT_STATUS_SHORT'), dateTo) + ' '+ BookingUtil.formatTime(dateTo.getHours(), dateTo.getMinutes()));\n\t\t\t}\n\t\t}\n\n\t\treturn text;\n\t}\n\n\thide()\n\t{\n\t\tif (this.built && this.shown)\n\t\t{\n\t\t\tthis.DOM.wrap.style.display = 'none';\n\t\t\tthis.shown = false;\n\t\t}\n\t}\n\n\tshow()\n\t{\n\t\tif (this.built && !this.shown)\n\t\t{\n\t\t\tthis.DOM.wrap.style.display = '';\n\t\t\tthis.shown = true;\n\t\t}\n\t}\n\n\tsetError(message)\n\t{\n\t\tif (this.DOM.labelWrap)\n\t\t{\n\t\t\tthis.DOM.labelWrap.style.display = 'none';\n\t\t}\n\t\tDom.addClass(this.DOM.wrap, 'calendar-resbook-webform-block-result-error');\n\t\tDom.adjust(this.DOM.statusWrap, {text: message});\n\t}\n\n\tisErrorSet()\n\t{\n\t\treturn this.shown && Dom.hasClass(this.DOM.wrap, 'calendar-resbook-webform-block-result-error');\n\t}\n}","import {Type, Loc, Dom, Tag, Text, BookingUtil} from \"./resourcebooking\";\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {UserSelector} from \"./controls/userselector\";\nimport {ResourceSelector} from \"./controls/resourceselector\";\nimport {ServiceSelector} from \"./controls/serviceselector\";\nimport {DurationSelector} from \"./controls/durationselector\";\nimport {DateSelector} from \"./controls/dateselector\";\nimport {TimeSelector} from \"./controls/timeselector\";\nimport {StatusInformer} from \"./controls/statusinformer\";\n\nexport class LiveFieldController extends EventEmitter\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.setEventNamespace('BX.Calendar.LiveFieldController');\n\t\tthis.params = params;\n\t\tthis.actionAgent = params.actionAgent || BX.ajax.runAction;\n\t\tthis.timeFrom = params.timeFrom || 7;\n\t\tthis.timeTo = params.timeTo || 20;\n\t\tthis.inputName = params.field.name + '[]';\n\t\tthis.DATE_FORMAT = BookingUtil.getDateFormat();\n\t\tthis.DATETIME_FORMAT = BookingUtil.getDateTimeFormat();\n\t\tthis.userIndex = null;\n\t\tthis.timezoneOffset = null;\n\t\tthis.timezoneOffsetLabel = null;\n\t\tthis.userFieldParams = null;\n\t\tthis.loadedDates = [];\n\n\t\tthis.externalSiteContext = Type.isFunction(params.actionAgent);\n\n\t\tthis.accessibility = {\n\t\t\tuser : {},\n\t\t\tresource: {}\n\t\t};\n\t\tthis.busySlotMatrix = {\n\t\t\tuser : {},\n\t\t\tresource: {}\n\t\t};\n\n\t\tthis.DOM = {\n\t\t\twrap: this.params.wrap,\n\t\t\tvalueInputs: []\n\t\t};\n\t}\n\n\tinit()\n\t{\n\t\tconst settingsData = this.getSettingsData();\n\t\tif (!settingsData.users || !settingsData.resources)\n\t\t{\n\t\t\tthrow new Error('Can\\'t init resourcebooking field, because \\'settings_data\\' parameter is not provided or has incorrect structure');\n\t\t\treturn;\n\t\t}\n\t\tthis.scale = parseInt(settingsData.time && settingsData.time.scale ? settingsData.time.scale : 60, 10);\n\n\t\tthis.DOM.outerWrap = this.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-wrapper\"></div>`);\n\n\t\tthis.showMainLoader();\n\t\tthis.requireFormData().then(()=>{\n\t\t\tthis.hideMainLoader();\n\t\t\tthis.buildFormControls();\n\t\t\tthis.onChangeValues();\n\t\t});\n\t}\n\n\tcheck()\n\t{\n\t\tlet result = true;\n\n\t\tif (this.usersDisplayed() && !this.getSelectedUser())\n\t\t{\n\t\t\tthis.userControl.showWarning();\n\t\t\tresult = false;\n\t\t}\n\n\t\tif (result && this.resourcesDisplayed() && !this.getSelectedResources())\n\t\t{\n\t\t\tthis.resourceControl.showWarning();\n\t\t\tresult = false;\n\t\t}\n\n\t\tif (result && !this.getCurrentDuration())\n\t\t{\n\t\t\tif (this.durationControl)\n\t\t\t{\n\t\t\t\tthis.durationControl.showWarning();\n\t\t\t}\n\t\t\telse if (this.serviceControl)\n\t\t\t{\n\t\t\t\tthis.serviceControl.showWarning();\n\t\t\t}\n\t\t\tresult = false;\n\t\t}\n\n\t\tif (result\n\t\t\t&& (\n\t\t\t\t!this.dateControl.getValue()\n\t\t\t\t|| this.statusControl.isErrorSet()\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\tthis.dateControl.showWarning();\n\t\t\tresult = false;\n\t\t}\n\n\t\tif (result && this.timeSelectorDisplayed() && !this.timeControl.getValue())\n\t\t{\n\t\t\tthis.timeControl.showWarning();\n\t\t\tresult = false;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tbuildFormControls()\n\t{\n\t\tthis.DOM.innerWrap = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-resbook-webform-inner\"></div>`);\n\t\tthis.DOM.inputsWrap = this.DOM.innerWrap.appendChild(Tag.render`<div></div>`);\n\n\t\tif (!this.getFieldParams())\n\t\t{\n\t\t\tthis.statusControl = new StatusInformer({\n\t\t\t\touterWrap: this.DOM.innerWrap\n\t\t\t});\n\t\t\tthis.statusControl.refresh({});\n\t\t\tthis.statusControl.setError('[UF_NOT_FOUND] ' + Loc.getMessage('WEBF_RES_BOOKING_UF_WARNING'));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.externalSiteContext && BX.ZIndexManager)\n\t\t\t{\n\t\t\t\tconst stack = BX.ZIndexManager.getOrAddStack(document.body);\n\t\t\t\tstack.baseIndex = 100000;\n\t\t\t\tstack.sort();\n\t\t\t}\n\n\t\t\tthis.preparaAutoSelectValues();\n\t\t\tthis.displayUsersControl();\n\t\t\tthis.displayResourcesControl();\n\t\t\tthis.displayServicesControl();\n\t\t\tthis.displayDurationControl();\n\t\t\tthis.displayDateTimeControl();\n\n\t\t\tif (this.selectedUserId || this.selectedResourceId)\n\t\t\t{\n\t\t\t\tthis.refreshControlsState();\n\t\t\t}\n\t\t}\n\t}\n\n\trefreshControlsState()\n\t{\n\t\tif (this.selectorCanBeShown('resources')\n\t\t\t&& this.resourceControl\n\t\t\t&& !this.resourceControl.isShown())\n\t\t{\n\t\t\tthis.resourceControl.display();\n\t\t}\n\n\t\t// Show services\n\t\tif (this.selectorCanBeShown('services')\n\t\t\t&& this.serviceControl\n\t\t\t&& !this.serviceControl.isShown())\n\t\t{\n\t\t\tthis.serviceControl.display();\n\t\t}\n\n\t\t// Show duration\n\t\tif (this.selectorCanBeShown('duration')\n\t\t\t&& this.durationControl\n\t\t\t&& !this.durationControl.isShown())\n\t\t{\n\t\t\tthis.durationControl.display();\n\t\t}\n\n\t\tlet settingsData = this.getSettingsData();\n\t\t// Show date & time control\n\t\tif (this.selectorCanBeShown('date') && this.dateControl)\n\t\t{\n\t\t\tif (this.dateControl.isShown())\n\t\t\t{\n\t\t\t\tthis.dateControl.refresh(\n\t\t\t\t\tsettingsData.date,\n\t\t\t\t\t{\n\t\t\t\t\t\tavailableDateIndex: this.getAvailableDateIndex({\n\t\t\t\t\t\t\tresources: this.getSelectedResources(),\n\t\t\t\t\t\t\tuser: this.getSelectedUser(),\n\t\t\t\t\t\t\tduration: this.getCurrentDuration()\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif (this.timeControl)\n\t\t\t\t{\n\t\t\t\t\tthis.timeControl.refresh(\n\t\t\t\t\t\tsettingsData.time,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tslotIndex: this.getSlotIndex({date: this.dateControl.getValue()}),\n\t\t\t\t\t\t\tcurrentDate: this.dateControl.getValue()\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet startValue;\n\t\t\t\tif (settingsData.date.start === 'free')\n\t\t\t\t{\n\t\t\t\t\tstartValue = this.getFreeDate({\n\t\t\t\t\t\tresources: this.getSelectedResources(),\n\t\t\t\t\t\tuser: this.getSelectedUser(),\n\t\t\t\t\t\tduration: this.getCurrentDuration()\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstartValue = new Date();\n\t\t\t\t}\n\n\t\t\t\tthis.dateControl.display({\n\t\t\t\t\tselectedValue: startValue,\n\t\t\t\t\tavailableDateIndex: this.getAvailableDateIndex({\n\t\t\t\t\t\tresources: this.getSelectedResources(),\n\t\t\t\t\t\tuser: this.getSelectedUser(),\n\t\t\t\t\t\tduration: this.getCurrentDuration()\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.updateStatusControl();\n\t\tthis.onChangeValues();\n\t\tBookingUtil.fireCustomEvent(window, 'crmWebFormFireResize');\n\t}\n\n\tonChangeValues()\n\t{\n\t\tlet\n\t\t\tallValuesValue = [],\n\t\t\tdateFromValue = '',\n\t\t\tdateFrom = this.getCurrentDate(),\n\t\t\tduration = this.getCurrentDuration() * 60,// Duration in minutes\n\t\t\tserviceName = this.getCurrentServiceName(),\n\t\t\tentries = [];\n\n\t\t// Clear inputs\n\t\tDom.clean(this.DOM.inputsWrap);\n\n\t\tthis.DOM.valueInputs = [];\n\n\t\tif (Type.isDate(dateFrom) && !this.statusControl.isErrorSet())\n\t\t{\n\t\t\tlet resources = this.getSelectedResources();\n\t\t\tif (Type.isArray(resources))\n\t\t\t{\n\t\t\t\tresources.forEach(function(resourceId)\n\t\t\t\t{\n\t\t\t\t\tentries = entries.concat({type: 'resource', id: resourceId});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet selectedUser = this.getSelectedUser();\n\t\t\tif (selectedUser)\n\t\t\t{\n\t\t\t\tentries = entries.concat({type: 'user', id: selectedUser});\n\t\t\t}\n\n\t\t\tdateFromValue = BookingUtil.formatDate(this.DATETIME_FORMAT, dateFrom.getTime() / 1000);\n\n\t\t\tentries.forEach(function(entry)\n\t\t\t{\n\t\t\t\tlet value = entry.type + '|' + entry.id + '|' + dateFromValue + '|' + duration + '|' + serviceName;\n\t\t\t\tallValuesValue.push(value);\n\n\t\t\t\tthis.DOM.valueInputs.push(this.DOM.inputsWrap.appendChild(\n\t\t\t\t\tTag.render`\n\t\t\t\t\t<input \n\t\t\t\t\t\tname=\"${Text.encode(this.inputName)}\"\n\t\t\t\t\t\tvalue=\"${Text.encode(value)}\" \n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t>\n\t\t\t\t\t`\n\t\t\t\t));\n\t\t\t}, this);\n\t\t}\n\n\t\tif (!entries.length)\n\t\t{\n\t\t\tallValuesValue.push('empty');\n\t\t\tthis.DOM.valueInputs.push(this.DOM.inputsWrap.appendChild(\n\t\t\t\tTag.render`\n\t\t\t\t\t<input \n\t\t\t\t\t\tname=\"${Text.encode(this.inputName)}\"\n\t\t\t\t\t\tvalue=\"empty\" \n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t>\n\t\t\t\t\t`\n\t\t\t));\n\t\t}\n\n\t\tthis.emit('change', allValuesValue);\n\t}\n\n\tshowMainLoader()\n\t{\n\t\tif (this.DOM.wrap)\n\t\t{\n\t\t\tthis.hideMainLoader();\n\t\t\tlet loaderWrap = Tag.render`<div class=\"calendar-resbook-webform-wrapper-loader-wrap\"></div>`;\n\t\t\tloaderWrap.appendChild(BookingUtil.getLoader(160));\n\t\t\tthis.DOM.mainLoader = this.DOM.outerWrap.appendChild(loaderWrap);\n\t\t}\n\t}\n\n\thideMainLoader()\n\t{\n\t\tDom.remove(this.DOM.mainLoader);\n\t}\n\n\tshowStatusLoader()\n\t{\n\t\tthis.showMainLoader();\n\t}\n\n\thideStatusLoader()\n\t{\n\t\tthis.hideMainLoader();\n\t}\n\n\trequestAccessibilityData(params)\n\t{\n\t\tif (!this.requestedFormData)\n\t\t{\n\t\t\tthis.showStatusLoader();\n\n\t\t\tthis.requestedFormData = true;\n\t\t\tlet formDataParams = {\n\t\t\t\tfrom: params.date\n\t\t\t};\n\n\t\t\tthis.requireFormData(formDataParams).then(() => {\n\t\t\t\tthis.hideStatusLoader();\n\t\t\t\tthis.refreshControlsState();\n\t\t\t\tthis.dateControl.refreshCurrentValue();\n\t\t\t\tthis.onChangeValues();\n\t\t\t\tthis.requestedFormData = false;\n\t\t\t});\n\t\t}\n\t}\n\n\trequireFormData(params)\n\t{\n\t\tparams = Type.isPlainObject(params) ? params : {};\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet\n\t\t\t\tdata = {\n\t\t\t\t\tsettingsData: this.getSettingsData() || null\n\t\t\t\t};\n\n\t\t\tif (!this.userFieldParams)\n\t\t\t{\n\t\t\t\tdata.fieldName = this.params.field.entity_field_name;\n\t\t\t}\n\n\t\t\tlet\n\t\t\t\tdateFrom = Type.isDate(params.from) ? params.from : new Date(),\n\t\t\t\tdateTo;\n\n\t\t\tif (Type.isDate(params.to))\n\t\t\t{\n\t\t\t\tdateTo = params.to;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdateTo = new Date(dateFrom.getTime());\n\t\t\t\tdateTo.setDate(dateFrom.getDate() + 60);\n\t\t\t}\n\n\t\t\tdata.from = BookingUtil.formatDate(this.DATE_FORMAT, dateFrom);\n\t\t\tdata.to = BookingUtil.formatDate(this.DATE_FORMAT, dateTo);\n\n\t\t\tthis.setLoadedDataLimits(dateFrom, dateTo);\n\n\t\t\tthis.actionAgent('calendar.api.resourcebookingajax.getfillformdata', {\n\t\t\t\tdata: data\n\t\t\t}).then((response) => {\n\t\t\t\t\tif (!Type.isPlainObject(response) || !response.data)\n\t\t\t\t\t{\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Type.isNumber(response.data.timezoneOffset))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.timezoneOffset = response.data.timezoneOffset;\n\t\t\t\t\t\t\tthis.timezoneOffsetLabel = response.data.timezoneOffsetLabel;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.workTimeStart !== undefined && response.data.workTimeEnd !== undefined)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.timeFrom = parseInt(response.data.workTimeStart);\n\t\t\t\t\t\t\tthis.timeTo = parseInt(response.data.workTimeEnd);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.fieldSettings)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.userFieldParams = response.data.fieldSettings;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (response.data.userIndex)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.userIndex = response.data.userIndex;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.handleAccessibilityData(response.data.usersAccessibility, 'user');\n\t\t\t\t\t\tthis.handleAccessibilityData(response.data.resourcesAccessibility, 'resource');\n\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t(response) => {\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t});\n\t}\n\n\tsetLoadedDataLimits(from, to)\n\t{\n\t\tthis.loadedDataFrom = Type.isDate(from) ? from : BookingUtil.parseDate(from);\n\t\tthis.loadedDataTo = Type.isDate(to) ? to : BookingUtil.parseDate(to);\n\n\t\tthis.loadedDates = this.loadedDates || [];\n\t\tthis.loadedDatesIndex = this.loadedDatesIndex || {};\n\n\t\tlet\n\t\t\tdateKey,\n\t\t\tdate = new Date(this.loadedDataFrom.getTime());\n\n\t\twhile (true)\n\t\t{\n\t\t\tdateKey = BookingUtil.formatDate(this.DATE_FORMAT, date);\n\t\t\tthis.loadedDatesIndex[dateKey] = this.loadedDates.length;\n\t\t\tthis.loadedDates.push({\n\t\t\t\tkey: BookingUtil.formatDate(this.DATE_FORMAT, date),\n\t\t\t\tslots: {},\n\t\t\t\tslotsCount: {}\n\t\t\t});\n\t\t\tdate.setDate(date.getDate() + 1);\n\n\t\t\tif (date.getTime() > this.loadedDataTo.getTime())\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tfillDataIndex(date, time, entityType, entityId)\n\t{\n\t\tlet dateIndex = this.loadedDatesIndex[date];\n\t\tif (this.loadedDates[dateIndex])\n\t\t{\n\t\t\tif (!this.loadedDates[dateIndex].slots[time])\n\t\t\t{\n\t\t\t\tthis.loadedDates[dateIndex].slots[time] = {};\n\t\t\t}\n\t\t\tif (this.loadedDates[dateIndex].slotsCount[entityType + entityId] === undefined)\n\t\t\t{\n\t\t\t\tthis.loadedDates[dateIndex].slotsCount[entityType + entityId] = 0;\n\t\t\t}\n\t\t\tthis.loadedDates[dateIndex].slots[time][entityType + entityId] = true;\n\t\t\tthis.loadedDates[dateIndex].slotsCount[entityType + entityId]++;\n\t\t}\n\t}\n\n\thandleAccessibilityData(data, entityType)\n\t{\n\t\tif (Type.isPlainObject(data) && (entityType === 'user' || entityType === 'resource'))\n\t\t{\n\t\t\t// For each entry which has accessibility entries\n\t\t\tfor (let entityId in data)\n\t\t\t{\n\t\t\t\tif (data.hasOwnProperty(entityId))\n\t\t\t\t{\n\t\t\t\t\tdata[entityId].forEach(function(entry)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!entry.from)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tentry.from = BookingUtil.parseDate(entry.dateFrom);\n\t\t\t\t\t\t\tif (entry.from)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tentry.from.setSeconds(0,0);\n\t\t\t\t\t\t\t\tentry.fromTimestamp = entry.from.getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!entry.to)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tentry.to = BookingUtil.parseDate(entry.dateTo);\n\t\t\t\t\t\t\tif (entry.to)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (entry.fullDay)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentry.to.setHours(23, 59, 0, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentry.to.setSeconds(0, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tentry.toTimestamp = entry.to.getTime();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (entry.from && entry.to)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.fillBusySlotMatrix(entry, entityType, entityId);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.accessibility[entityType] = BookingUtil.mergeEx(this.accessibility[entityType], data);\n\t\t}\n\t}\n\n\tfillBusySlotMatrix(entry, entityType, entityId)\n\t{\n\t\tif (!this.busySlotMatrix[entityType][entityId])\n\t\t{\n\t\t\tthis.busySlotMatrix[entityType][entityId] = {};\n\t\t}\n\n\t\tlet\n\t\t\tfromDate = new Date(entry.from.getTime()),\n\t\t\tdateKey = BookingUtil.formatDate(this.DATE_FORMAT, fromDate),\n\t\t\tdateToKey = BookingUtil.formatDate(this.DATE_FORMAT, entry.to),\n\t\t\ttimeValueFrom = fromDate.getHours() * 60 + fromDate.getMinutes(),\n\t\t\tduration = Math.round((entry.toTimestamp - entry.fromTimestamp) / 60000), // in minutes\n\t\t\ttimeValueTo = timeValueFrom + duration,\n\t\t\tslots = this.getTimeSlots(),\n\t\t\tcount = 0,\n\t\t\ti;\n\n\t\tif (duration > 0)\n\t\t{\n\t\t\twhile (true)\n\t\t\t{\n\t\t\t\tif (!this.busySlotMatrix[entityType][entityId][dateKey])\n\t\t\t\t{\n\t\t\t\t\tthis.busySlotMatrix[entityType][entityId][dateKey] = {};\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < slots.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (timeValueFrom < (slots[i].time + this.scale) && timeValueTo > slots[i].time)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.busySlotMatrix[entityType][entityId][dateKey][slots[i].time] = true;\n\t\t\t\t\t\tthis.fillDataIndex(dateKey, slots[i].time, entityType, entityId);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (dateKey === dateToKey)\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfromDate.setDate(fromDate.getDate() + 1);\n\t\t\t\t\tdateKey = BookingUtil.formatDate(this.DATE_FORMAT, fromDate);\n\t\t\t\t\ttimeValueFrom = 0;\n\t\t\t\t\tif (dateKey === dateToKey)\n\t\t\t\t\t{\n\t\t\t\t\t\ttimeValueTo = entry.to.getHours() * 60 + entry.to.getMinutes();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\ttimeValueTo = 1440; // end of the day - 24 hours\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcount++;\n\t\t\t\tif (count > 10000) // emergency exit\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetCaption()\n\t{\n\t\treturn this.params.field.caption;\n\t}\n\n\tgetSettingsData()\n\t{\n\t\treturn this.params.field.settings_data || {};\n\t}\n\n\tgetUserIndex()\n\t{\n\t\treturn this.userIndex;\n\t}\n\n\tgetFieldParams()\n\t{\n\t\treturn this.userFieldParams;\n\t}\n\n\tgetSettings()\n\t{\n\t\treturn {\n\t\t\tcaption: this.getCaption(),\n\t\t\tdata: this.getSettingsData()\n\t\t};\n\t}\n\n\tisUserSelectorInAutoMode()\n\t{\n\t\treturn this.usersDisplayed() && this.getSettingsData().users.show === \"N\";\n\t}\n\n\tisResourceSelectorInAutoMode()\n\t{\n\t\treturn this.resourcesDisplayed() && this.getSettingsData().resources.show === \"N\";\n\t}\n\n\tautoAdjustUserSelector()\n\t{\n\t\tlet\n\t\t\tcurrentDate = this.dateControl.getValue(),\n\t\t\ttimeValue = this.timeControl.getValue();\n\n\t\tif (Type.isDate(currentDate) && timeValue)\n\t\t{\n\t\t\tlet i, loadedDate = this.loadedDates[this.loadedDatesIndex[BookingUtil.formatDate(this.DATE_FORMAT, currentDate)]];\n\t\t\tif (loadedDate.slots[timeValue])\n\t\t\t{\n\t\t\t\tfor (i = 0; i < this.userControl.values.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (!loadedDate.slots[timeValue]['user' + this.userControl.values[i]])\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.userControl.setSelectedUser(this.userControl.values[i]);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tautoAdjustResourceSelector()\n\t{\n\t\tlet\n\t\t\tcurrentDate = this.dateControl.getValue(),\n\t\t\ttimeValue = this.timeControl.getValue();\n\n\t\tif (Type.isDate(currentDate) && timeValue)\n\t\t{\n\t\t\tlet\n\t\t\t\ti, id,\n\t\t\t\tloadedDate = this.loadedDates[this.loadedDatesIndex[BookingUtil.formatDate(this.DATE_FORMAT, currentDate)]];\n\n\t\t\tif (loadedDate.slots[timeValue])\n\t\t\t{\n\t\t\t\tfor (i = 0; i < this.resourceControl.resourceList.length; i++)\n\t\t\t\t{\n\t\t\t\t\tid = parseInt(this.resourceControl.resourceList[i].id);\n\t\t\t\t\tif (!loadedDate.slots[timeValue]['resource' + id])\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.resourceControl.setSelectedResource(id);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpreparaAutoSelectValues ()\n\t{\n\t\tlet\n\t\t\tsettingsData = this.getSettingsData(),\n\t\t\tautoSelectUser = this.usersDisplayed() && (settingsData.users.defaultMode === 'auto' || settingsData.users.show === \"N\"),\n\t\t\tautoSelectResource = this.resourcesDisplayed() && (settingsData.resources.defaultMode === 'auto' || settingsData.resources.show === \"N\"),\n\t\t\tautoSelectDate = settingsData.date.start === 'free',\n\t\t\tmaxStepsAuto = 60,\n\t\t\tdate, i;\n\n\t\tthis.selectedUserId = false;\n\t\tthis.selectedResourceId = false;\n\n\t\tdate = new Date();\n\t\t// Walk through each date searching for free space\n\t\tfor (i = 0; i <= maxStepsAuto; i++)\n\t\t{\n\t\t\tthis.getFreeEntitiesForDate(date, {\n\t\t\t\tautoSelectUser: autoSelectUser,\n\t\t\t\tautoSelectResource: autoSelectResource,\n\t\t\t\tslotsAmount: this.getDefaultDurationSlotsAmount()\n\t\t\t});\n\n\t\t\tif ((this.selectedUserId || !autoSelectUser)\n\t\t\t\t&&\n\t\t\t\t(this.selectedResourceId || !autoSelectResource))\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!autoSelectDate)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdate.setDate(date.getDate() + 1);\n\t\t}\n\t}\n\n\tgetFreeEntitiesForDate(date, params)\n\t{\n\t\tlet\n\t\t\tsettingsData = this.getSettingsData(),\n\t\t\tslotsAmount = params.slotsAmount || 1,\n\t\t\ti, userList, resList;\n\n\t\tif (params.autoSelectUser)\n\t\t{\n\t\t\tuserList = this.getUsersValue();\n\t\t\tfor (i = 0; i < userList.length; i++)\n\t\t\t{\n\t\t\t\tif (this.checkSlotsForDate(date, slotsAmount, {\n\t\t\t\t\tuser: parseInt(userList[i])\n\t\t\t\t}))\n\t\t\t\t{\n\t\t\t\t\tthis.selectedUserId = parseInt(userList[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (params.autoSelectResource)\n\t\t{\n\t\t\tresList = this.getResourceValue();\n\t\t\tfor (i = 0; i < resList.length; i++)\n\t\t\t{\n\t\t\t\tif (this.checkSlotsForDate(date, slotsAmount, {\n\t\t\t\t\tresources: [parseInt(resList[i])],\n\t\t\t\t\tuser: this.selectedUserId || null\n\t\t\t\t}))\n\t\t\t\t{\n\t\t\t\t\tthis.selectedResourceId = parseInt(resList[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdisplayUsersControl()\n\t{\n\t\tif (this.usersDisplayed())\n\t\t{\n\t\t\tthis.userControl = new UserSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: this.getSettingsData().users,\n\t\t\t\tuserIndex: this.getUserIndex(),\n\t\t\t\tpreviewMode: false,\n\t\t\t\tautoSelectDefaultValue: this.selectedUserId,\n\t\t\t\tchangeValueCallback: function(userId)\n\t\t\t\t{\n\t\t\t\t\tthis.emit('BX.Calendar.Resourcebooking.LiveFieldController:userChanged', new BaseEvent({data: {userId: userId}}));\n\t\t\t\t\tthis.refreshControlsState();\n\t\t\t\t}.bind(this)\n\t\t\t});\n\t\t\tthis.userControl.display();\n\t\t}\n\t}\n\n\tdisplayResourcesControl()\n\t{\n\t\tlet\n\t\t\tvalueIndex = {},\n\t\t\tdataValue = [],\n\t\t\tfieldParams = this.getFieldParams(),\n\t\t\tsettingsData = this.getSettingsData();\n\n\t\tif (this.resourcesDisplayed())\n\t\t{\n\t\t\tthis.getResourceValue().forEach(function(id)\n\t\t\t{\n\t\t\t\tid = parseInt(id);\n\t\t\t\tif (id > 0)\n\t\t\t\t{\n\t\t\t\t\tvalueIndex[id] = true;\n\t\t\t\t\tdataValue.push(id);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlet resourceList = [];\n\t\t\tfieldParams.SELECTED_RESOURCES.forEach(function(res)\n\t\t\t{\n\t\t\t\tres.id = parseInt(res.id);\n\t\t\t\tif (valueIndex[res.id])\n\t\t\t\t{\n\t\t\t\t\tresourceList.push(res);\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tthis.resourceControl = new ResourceSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: {\n\t\t\t\t\tshow: settingsData.resources.show,\n\t\t\t\t\tdefaultMode: settingsData.resources.defaultMode,\n\t\t\t\t\tlabel: settingsData.resources.label,\n\t\t\t\t\tmultiple: settingsData.resources.multiple,\n\t\t\t\t\tvalue: settingsData.resources.value\n\t\t\t\t},\n\t\t\t\tresourceList: resourceList,\n\t\t\t\tautoSelectDefaultValue: this.selectedResourceId,\n\t\t\t\tchangeValueCallback: function()\n\t\t\t\t{\n\t\t\t\t\tthis.emit('BX.Calendar.Resourcebooking.LiveFieldController:resourceChanged');\n\t\t\t\t\tthis.refreshControlsState();\n\t\t\t\t}.bind(this)\n\t\t\t});\n\n\t\t\tif (this.selectorCanBeShown('resources'))\n\t\t\t{\n\t\t\t\tthis.resourceControl.display();\n\t\t\t}\n\t\t}\n\t}\n\n\tdisplayServicesControl()\n\t{\n\t\tlet\n\t\t\tfieldParams = this.getFieldParams(),\n\t\t\tsettingsData = this.getSettingsData();\n\n\t\tif (fieldParams.USE_SERVICES === 'Y' && settingsData.services.value)\n\t\t{\n\t\t\tlet dataValueRaw = this.getServicesValue();\n\n\t\t\tthis.serviceControl = new ServiceSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: settingsData.services,\n\t\t\t\tserviceList: fieldParams.SERVICE_LIST,\n\t\t\t\tselectedValue: dataValueRaw.length > 0 ? dataValueRaw[0] : null,\n\t\t\t\tchangeValueCallback: function()\n\t\t\t\t{\n\t\t\t\t\tthis.emit('BX.Calendar.Resourcebooking.LiveFieldController:serviceChanged');\n\t\t\t\t\tthis.refreshControlsState();\n\t\t\t\t}.bind(this)\n\t\t\t});\n\n\t\t\tif (this.selectorCanBeShown('services'))\n\t\t\t{\n\t\t\t\tthis.serviceControl.display();\n\t\t\t}\n\t\t}\n\t}\n\n\tdisplayDurationControl()\n\t{\n\t\tlet\n\t\t\tfieldParams = this.getFieldParams(),\n\t\t\tsettingsData = this.getSettingsData();\n\n\t\tif (!this.serviceControl)\n\t\t{\n\t\t\tthis.durationControl = new DurationSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: settingsData.duration,\n\t\t\t\tfullDay: fieldParams.FULL_DAY === 'Y',\n\t\t\t\tchangeValueCallback: function()\n\t\t\t\t{\n\t\t\t\t\tthis.emit('BX.Calendar.Resourcebooking.LiveFieldController:durationChanged');\n\t\t\t\t\tthis.refreshControlsState();\n\t\t\t\t}.bind(this)\n\t\t\t});\n\n\t\t\tif (this.selectorCanBeShown('duration'))\n\t\t\t{\n\t\t\t\tthis.durationControl.display();\n\t\t\t}\n\t\t}\n\t}\n\n\tdisplayDateTimeControl()\n\t{\n\t\tlet\n\t\t\ttimezone = false,\n\t\t\tstartValue = null,\n\t\t\tsettingsData = this.getSettingsData(),\n\t\t\tfieldParams = this.getFieldParams();\n\n\t\tthis.dateControl = new DateSelector({\n\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\tdata: settingsData.date,\n\t\t\tpreviewMode: false,\n\t\t\tallowOverbooking: fieldParams.ALLOW_OVERBOOKING === \"Y\",\n\t\t\tchangeValueCallback: this.handleDateChanging.bind(this),\n\t\t\trequestDataCallback: this.requestAccessibilityData.bind(this)\n\t\t});\n\n\t\tif (this.timeSelectorDisplayed())\n\t\t{\n\t\t\tif (fieldParams.USE_USER_TIMEZONE === 'N')\n\t\t\t{\n\t\t\t\tlet userTimezoneOffset = -(new Date).getTimezoneOffset()*60;\n\t\t\t\tif (userTimezoneOffset !== this.timezoneOffset)\n\t\t\t\t{\n\t\t\t\t\ttimezone = fieldParams.TIMEZONE;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.timeControl = new TimeSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: settingsData.time,\n\t\t\t\tpreviewMode: false,\n\t\t\t\tchangeValueCallback: this.handleSelectedDateTimeChanging.bind(this),\n\t\t\t\ttimeFrom: this.timeFrom,\n\t\t\t\ttimeTo: this.timeTo,\n\t\t\t\ttimezone: timezone,\n\t\t\t\ttimezoneOffset: this.timezoneOffset,\n\t\t\t\ttimezoneOffsetLabel: this.timezoneOffsetLabel\n\t\t\t});\n\t\t}\n\n\t\tthis.statusControl = new StatusInformer({\n\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\ttimezone: timezone,\n\t\t\ttimezoneOffsetLabel: this.timezoneOffsetLabel\n\t\t});\n\n\t\tif (this.selectorCanBeShown('date'))\n\t\t{\n\t\t\tthis.statusControl.show();\n\t\t\tif (settingsData.date.start === 'free')\n\t\t\t{\n\t\t\t\tstartValue = this.getFreeDate({\n\t\t\t\t\tresources: this.getSelectedResources(),\n\t\t\t\t\tuser: this.getSelectedUser(),\n\t\t\t\t\tduration: this.getCurrentDuration()\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.dateControl.display({\n\t\t\t\tselectedValue: startValue\n\t\t\t});\n\n\t\t\tif (this.timeControl && !this.timeControl.isShown())\n\t\t\t{\n\t\t\t\tthis.timeControl.display();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.statusControl.hide();\n\t\t}\n\t}\n\n\thandleDateChanging(date, realDate)\n\t{\n\t\tthis.emit('BX.Calendar.Resourcebooking.LiveFieldController:dateChanged');\n\n\t\tif (this.timeSelectorDisplayed())\n\t\t{\n\t\t\tif (realDate)\n\t\t\t{\n\t\t\t\tthis.timeControl.show();\n\t\t\t\tlet\n\t\t\t\t\ttimeValueFrom,\n\t\t\t\t\tcurrentDate = this.getCurrentDate();\n\n\t\t\t\tif (currentDate)\n\t\t\t\t{\n\t\t\t\t\ttimeValueFrom = currentDate.getHours() * 60 + currentDate.getMinutes();\n\t\t\t\t}\n\n\t\t\t\tthis.timeControl.refresh(\n\t\t\t\t\tthis.getSettingsData().time,\n\t\t\t\t\t{\n\t\t\t\t\t\tslotIndex: this.getSlotIndex({date: realDate}),\n\t\t\t\t\t\tcurrentDate: realDate,\n\t\t\t\t\t\tselectedValue: timeValueFrom\n\t\t\t\t\t});\n\n\t\t\t\t// this.timeControl.refresh(\n\t\t\t\t// \tthis.getSettingsData().time,\n\t\t\t\t// \t{\n\t\t\t\t// \t\tslotIndex: this.getAvailableSlotIndex({\n\t\t\t\t// \t\t\tdate: realDate,\n\t\t\t\t// \t\t\tresources: this.getSelectedResources(),\n\t\t\t\t// \t\t\tuser: this.getSelectedUser(),\n\t\t\t\t// \t\t\tduration: this.getCurrentDuration()\n\t\t\t\t// \t\t}),\n\t\t\t\t// \t\tcurrentDate: realDate,\n\t\t\t\t// \t\tselectedValue: timeValueFrom\n\t\t\t\t// \t});\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.handleSelectedDateTimeChanging(null, true);\n\t\t}\n\t\tthis.onChangeValues();\n\t}\n\n\thandleSelectedDateTimeChanging(value, useTimeout)\n\t{\n\t\tif (useTimeout !== false)\n\t\t{\n\t\t\tif (this.updateTimeStatusTimeout)\n\t\t\t{\n\t\t\t\tthis.updateTimeStatusTimeout = clearTimeout(this.updateTimeStatusTimeout);\n\t\t\t}\n\t\t\tthis.updateTimeStatusTimeout = setTimeout(function(){\n\t\t\t\tthis.handleSelectedDateTimeChanging(value, false);\n\t\t\t}.bind(this), 100);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.isUserSelectorInAutoMode())\n\t\t\t{\n\t\t\t\tthis.autoAdjustUserSelector();\n\t\t\t}\n\t\t\tif (this.isResourceSelectorInAutoMode())\n\t\t\t{\n\t\t\t\tthis.autoAdjustResourceSelector();\n\t\t\t}\n\n\t\t\tthis.updateStatusControl();\n\t\t\tBookingUtil.fireCustomEvent(window, 'crmWebFormFireResize');\n\t\t}\n\t\tthis.onChangeValues();\n\t}\n\n\tupdateStatusControl()\n\t{\n\t\tif (this.statusControl && this.selectorCanBeShown('date'))\n\t\t{\n\t\t\tlet currentDate = this.getCurrentDate();\n\t\t\tif (this.dateControl.isItPastDate(currentDate))\n\t\t\t{\n\t\t\t\tthis.statusControl.setError(Loc.getMessage('WEBF_RES_BOOKING_PAST_DATE_WARNING'));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (this.timeSelectorDisplayed())\n\t\t\t\t{\n\t\t\t\t\tif (this.timeControl.hasAvailableSlots())\n\t\t\t\t\t{\n\t\t\t\t\t\tlet timeValue = this.timeControl.getValue();\n\t\t\t\t\t\tthis.statusControl.refresh({\n\t\t\t\t\t\t\tdateFrom: timeValue ? currentDate : null,\n\t\t\t\t\t\t\tduration: timeValue ? this.getCurrentDuration() : null,\n\t\t\t\t\t\t\tfullDay: false\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.statusControl.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.statusControl.refresh({\n\t\t\t\t\t\tdateFrom: this.dateControl.isDateAvailable(currentDate) ? currentDate : null,\n\t\t\t\t\t\tduration: this.getCurrentDuration(),\n\t\t\t\t\t\tfullDay: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetFreeDate(params)\n\t{\n\t\tlet\n\t\t\tslotsAmount = Math.ceil(params.duration / this.scale),\n\t\t\tfreeDate = null,\n\t\t\tdate = this.loadedDataFrom;\n\n\t\t// Walk through each date searching for free space\n\t\twhile (true)\n\t\t{\n\t\t\tif (this.checkSlotsForDate(date, slotsAmount, {\n\t\t\t\tresources: params.resources,\n\t\t\t\tuser: params.user\n\t\t\t}))\n\t\t\t{\n\t\t\t\tfreeDate = date;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdate.setDate(date.getDate() + 1);\n\t\t\tif (date.getTime() >= this.loadedDataTo.getTime())\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn freeDate;\n\t}\n\n\tgetAvailableDateIndex(params)\n\t{\n\t\tlet\n\t\t\tuserIsFree, resourcesAreFree,\n\t\t\tdateIndex = {};\n\n\t\tif (this.timeSelectorDisplayed())\n\t\t{\n\t\t\tlet slotsAmount = Math.ceil(params.duration / this.scale);\n\n\t\t\tthis.loadedDates.forEach(function(date)\n\t\t\t{\n\t\t\t\tdateIndex[date.key] = this.checkSlotsForDate(date.key, slotsAmount, {\n\t\t\t\t\tresources: params.resources,\n\t\t\t\t\tuser: params.user\n\t\t\t\t});\n\t\t\t}, this);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlet\n\t\t\t\ti, daysGap, date, j,\n\t\t\t\tuserKey = params.user ? 'user' + params.user : null,\n\t\t\t\tdaysAmount = Math.ceil(params.duration / 1440);\n\n\t\t\tdaysGap = 1;\n\t\t\tfor (i = this.loadedDates.length; i--; i >= 0)\n\t\t\t{\n\t\t\t\tuserIsFree = true;\n\t\t\t\tresourcesAreFree = true;\n\t\t\t\tdate = this.loadedDates[i];\n\n\t\t\t\tif (userKey)\n\t\t\t\t{\n\t\t\t\t\t// All day is free for user\n\t\t\t\t\tuserIsFree = !date.slotsCount[userKey];\n\t\t\t\t}\n\n\t\t\t\tif (userIsFree && params.resources && params.resources.length > 0)\n\t\t\t\t{\n\t\t\t\t\tfor (j = 0; j < params.resources.length; j++)\n\t\t\t\t\t{\n\t\t\t\t\t\tresourcesAreFree = resourcesAreFree && !date.slotsCount['resource' + params.resources[j]];\n\t\t\t\t\t\tif (!resourcesAreFree)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (userIsFree && resourcesAreFree)\n\t\t\t\t{\n\t\t\t\t\tdaysGap++;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tdaysGap = 0;\n\t\t\t\t}\n\n\t\t\t\tdateIndex[date.key] = userIsFree && resourcesAreFree && daysAmount <= daysGap;\n\t\t\t}\n\t\t}\n\n\t\treturn dateIndex;\n\t}\n\n\tgetSlotIndex(params)\n\t{\n\t\tif (params.date)\n\t\t{\n\t\t\tparams.date = this.dateControl.getValue();\n\t\t}\n\n\t\tlet slotIndex = {};\n\t\tif (Type.isDate(params.date))\n\t\t{\n\t\t\tif (this.getFieldParams().ALLOW_OVERBOOKING !== \"Y\"\n\t\t\t\t&& (this.isUserSelectorInAutoMode() || this.isResourceSelectorInAutoMode()))\n\t\t\t{\n\t\t\t\tconst fieldParams = this.getFieldParams();\n\t\t\t\tlet\n\t\t\t\t\tfreeSlot,\n\t\t\t\t\ti, j, time,\n\t\t\t\t\tslotGap = 1,\n\t\t\t\t\ttodayNowTime = 0,\n\t\t\t\t\ttimeSlots = this.getTimeSlots(),\n\t\t\t\t\tdateKey = BookingUtil.formatDate(this.DATE_FORMAT, params.date),\n\t\t\t\t\tloadedDate = this.loadedDates[this.loadedDatesIndex[dateKey]],\n\t\t\t\t\tslotsAmount = Math.ceil(this.getCurrentDuration() / this.scale);\n\n\t\t\t\tif (this.checkIsTodayDate(dateKey))\n\t\t\t\t{\n\t\t\t\t\tconst today = new Date();\n\t\t\t\t\tconst deltaOffset = fieldParams.USE_USER_TIMEZONE === 'N'\n\t\t\t\t\t\t? today.getTimezoneOffset() * 60 + this.timezoneOffset:\n\t\t\t\t\t\t0;\n\t\t\t\t\ttodayNowTime = today.getHours() * 60 + today.getMinutes() + (deltaOffset / 60);\n\t\t\t\t}\n\n\t\t\t\t// Prefill slotIndex\n\t\t\t\ttimeSlots.forEach(function(slot){slotIndex[slot.time] = true;}, this);\n\n\t\t\t\tif (this.isUserSelectorInAutoMode())\n\t\t\t\t{\n\t\t\t\t\tconst userList = this.getUsersValue();\n\n\t\t\t\t\tfor (i = timeSlots.length; i--; i >= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\ttime = timeSlots[i].time;\n\t\t\t\t\t\tfreeSlot = false;\n\n\t\t\t\t\t\tif (todayNowTime && time < todayNowTime)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tslotIndex[time] = false;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j = 0; j < userList.length; j++)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (!loadedDate.slots[time]\n\t\t\t\t\t\t\t\t|| !loadedDate.slots[time]['user' + userList[j]])\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfreeSlot = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tslotIndex[time] = slotIndex[time] && freeSlot && slotsAmount <= slotGap;\n\t\t\t\t\t\tslotGap = freeSlot ? slotGap + 1 : 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.isResourceSelectorInAutoMode())\n\t\t\t\t{\n\t\t\t\t\tconst resList = this.getResourceValue();\n\t\t\t\t\tfor (i = timeSlots.length; i--; i >= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\ttime = timeSlots[i].time;\n\t\t\t\t\t\tfreeSlot = false;\n\n\t\t\t\t\t\tif (todayNowTime && time < todayNowTime)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tslotIndex[time] = false;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (j = 0; j < resList.length; j++)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (!loadedDate.slots[time]\n\t\t\t\t\t\t\t\t|| !loadedDate.slots[time]['resource' + resList[j]])\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfreeSlot = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tslotIndex[time] = slotIndex[time] && freeSlot && slotsAmount <= slotGap;\n\t\t\t\t\t\tslotGap = freeSlot ? slotGap + 1 : 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tslotIndex = this.getAvailableSlotIndex({\n\t\t\t\t\tdate: params.date || this.dateControl.getValue(),\n\t\t\t\t\tresources: this.getSelectedResources(),\n\t\t\t\t\tuser: this.getSelectedUser(),\n\t\t\t\t\tduration: this.getCurrentDuration()\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn slotIndex;\n\t}\n\n\tgetAvailableSlotIndex(params)\n\t{\n\t\tlet todayNowTime = 0;\n\t\tconst fieldParams = this.getFieldParams();\n\t\tlet\n\t\t\tdateKey, loadedDate, i, j, time,\n\t\t\tslotGap,\n\t\t\tuserKey = params.user ? 'user' + params.user : null,\n\t\t\tslotsAmount = Math.ceil(params.duration / this.scale),\n\t\t\tuserIsFree, resourcesAreFree,\n\t\t\ttimeSlots = this.getTimeSlots(),\n\t\t\tallowOverbooking = fieldParams.ALLOW_OVERBOOKING === \"Y\",\n\t\t\tslotIndex = {};\n\n\t\t// Prefill slotIndex\n\t\ttimeSlots.forEach(function(slot){slotIndex[slot.time] = true;}, this);\n\n\t\tif (Type.isDate(params.date))\n\t\t{\n\t\t\tdateKey = BookingUtil.formatDate(this.DATE_FORMAT, params.date);\n\t\t\tloadedDate = this.loadedDates[this.loadedDatesIndex[dateKey]];\n\t\t\tslotGap = 1;\n\n\t\t\tif (this.checkIsTodayDate(dateKey))\n\t\t\t{\n\t\t\t\tconst today = new Date();\n\t\t\t\tconst deltaOffset = fieldParams.USE_USER_TIMEZONE === 'N'\n\t\t\t\t\t? today.getTimezoneOffset() * 60 + this.timezoneOffset:\n\t\t\t\t\t0;\n\t\t\t\ttodayNowTime = today.getHours() * 60 + today.getMinutes() + (deltaOffset / 60);\n\t\t\t}\n\n\t\t\tfor (i = timeSlots.length; i--; i >= 0)\n\t\t\t{\n\t\t\t\ttime = timeSlots[i].time;\n\t\t\t\tif (todayNowTime && time < todayNowTime)\n\t\t\t\t{\n\t\t\t\t\tslotIndex[time] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (allowOverbooking)\n\t\t\t\t{\n\t\t\t\t\tslotIndex[time] = slotsAmount <= slotGap;\n\t\t\t\t\tslotGap++;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tuserIsFree = true;\n\t\t\t\t\tresourcesAreFree = true;\n\n\t\t\t\t\tif (userKey)\n\t\t\t\t\t{\n\t\t\t\t\t\t// Time is free for user\n\t\t\t\t\t\tuserIsFree = !loadedDate.slots[time] || !loadedDate.slots[time][userKey];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (params.resources && params.resources.length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tfor (j = 0; j < params.resources.length; j++)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresourcesAreFree = resourcesAreFree && (!loadedDate.slots[time] || !loadedDate.slots[time]['resource' + params.resources[j]]);\n\n\t\t\t\t\t\t\tif (!resourcesAreFree)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tslotIndex[time] = userIsFree && resourcesAreFree && slotsAmount <= slotGap;\n\n\t\t\t\t\tif (userIsFree && resourcesAreFree)\n\t\t\t\t\t{\n\t\t\t\t\t\tslotGap++;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tslotGap = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn slotIndex;\n\t}\n\n\tcheckSlotsForDate(date, slotsAmount, params)\n\t{\n\t\tlet\n\t\t\tuserIsFree = true,\n\t\t\tresourcesAreFree = true,\n\t\t\tdateKey = Type.isDate(date) ? BookingUtil.formatDate(this.DATE_FORMAT, date) : date;\n\n\t\tparams = params || {};\n\t\tif (this.usersDisplayed() && params.user)\n\t\t{\n\t\t\tif (this.busySlotMatrix.user[params.user]\n\t\t\t\t&& !this.entityHasSlotsForDate({\n\t\t\t\t\tentityType: 'user',\n\t\t\t\t\tentityId: params.user,\n\t\t\t\t\tdateKey: dateKey,\n\t\t\t\t\tslotsAmount: slotsAmount\n\t\t\t\t})\n\t\t\t)\n\t\t\t{\n\t\t\t\tuserIsFree = false;\n\t\t\t}\n\t\t}\n\n\t\tif (this.resourcesDisplayed() && userIsFree\n\t\t\t&& Type.isArray(params.resources) && params.resources.length > 0)\n\t\t{\n\t\t\tparams.resources.forEach(function(resourceId)\n\t\t\t{\n\t\t\t\tif (resourcesAreFree\n\t\t\t\t\t&& this.busySlotMatrix.resource[resourceId]\n\t\t\t\t\t&& !this.entityHasSlotsForDate({\n\t\t\t\t\t\tentityType: 'resource',\n\t\t\t\t\t\tentityId: resourceId,\n\t\t\t\t\t\tdateKey: dateKey,\n\t\t\t\t\t\tslotsAmount: slotsAmount\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tresourcesAreFree = false;\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\n\t\treturn userIsFree && resourcesAreFree;\n\t}\n\n\tentityHasSlotsForDate(params)\n\t{\n\t\tlet\n\t\t\tbusySlotList,\n\t\t\tslots, i,\n\t\t\tfreeSlotCount = 0,\n\t\t\thasFreeSlots = false;\n\n\t\tif (this.busySlotMatrix[params.entityType][params.entityId] &&\n\t\t\tthis.busySlotMatrix[params.entityType][params.entityId][params.dateKey])\n\t\t{\n\t\t\tbusySlotList = this.busySlotMatrix[params.entityType][params.entityId][params.dateKey];\n\t\t\tslots = this.getTimeSlots();\n\t\t\tfor (i = 0; i < slots.length; i++)\n\t\t\t{\n\t\t\t\tif (!busySlotList[slots[i].time])\n\t\t\t\t{\n\t\t\t\t\tfreeSlotCount++;\n\t\t\t\t\tif (freeSlotCount >= params.slotsAmount)\n\t\t\t\t\t{\n\t\t\t\t\t\thasFreeSlots = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfreeSlotCount = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\thasFreeSlots = true;\n\t\t}\n\n\t\treturn hasFreeSlots;\n\t}\n\n\tgetSelectedResources()\n\t{\n\t\tlet result = null;\n\t\tif (this.resourceControl)\n\t\t{\n\t\t\tresult = this.resourceControl.getSelectedValues();\n\t\t\tif (Type.isArray(result) && !result.length)\n\t\t\t{\n\t\t\t\tresult = null;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\n\tgetSelectedUser()\n\t{\n\t\tlet result = null;\n\t\tif (this.userControl)\n\t\t{\n\t\t\tresult = this.userControl.getSelectedUser();\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetCurrentDuration()\n\t{\n\t\tlet result = null;\n\t\tif (this.durationControl)\n\t\t{\n\t\t\tresult = this.durationControl.getSelectedValue();\n\t\t}\n\t\telse if (this.serviceControl)\n\t\t{\n\t\t\tlet service = this.serviceControl.getSelectedService(true);\n\t\t\tif (service && service.duration)\n\t\t\t{\n\t\t\t\tresult = parseInt(service.duration);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetDefaultDurationSlotsAmount()\n\t{\n\t\tlet\n\t\t\tsettingsData = this.getSettingsData(),\n\t\t\tfieldParams = this.getFieldParams(),\n\t\t\tduration, i, slotsAmount;\n\n\t\tif (fieldParams.USE_SERVICES === 'Y' && settingsData.services.value)\n\t\t{\n\t\t\tconst services = this.getServicesValue();\n\t\t\tif (Type.isArray(fieldParams.SERVICE_LIST) && services.length > 0)\n\t\t\t{\n\t\t\t\tfor (i = 0; i < fieldParams.SERVICE_LIST.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (BookingUtil.translit(fieldParams.SERVICE_LIST[i].name) === services[0])\n\t\t\t\t\t{\n\t\t\t\t\t\tduration = parseInt(fieldParams.SERVICE_LIST[i].duration);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tduration = parseInt(settingsData.duration.defaultValue);\n\t\t}\n\n\t\tslotsAmount = Math.ceil(duration / this.scale);\n\t\treturn slotsAmount;\n\t}\n\n\tgetCurrentServiceName()\n\t{\n\t\tlet result = '';\n\t\tif (this.serviceControl)\n\t\t{\n\t\t\tlet service = this.serviceControl.getSelectedService(true);\n\t\t\tif (service && service.name)\n\t\t\t{\n\t\t\t\tresult = service.name;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tgetCurrentDate()\n\t{\n\t\tlet result = null;\n\t\tif (this.dateControl && this.dateControl.isShown())\n\t\t{\n\t\t\tresult = this.dateControl.getValue();\n\t\t\tif (this.timeSelectorDisplayed())\n\t\t\t{\n\t\t\t\tlet\n\t\t\t\t\thour, min,\n\t\t\t\t\ttimeValue = this.timeControl.getValue();\n\n\t\t\t\tif (timeValue)\n\t\t\t\t{\n\t\t\t\t\thour = Math.floor(timeValue / 60);\n\t\t\t\t\tmin = timeValue - hour * 60;\n\t\t\t\t\tresult.setHours(hour, min, 0, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.setHours(0, 0, 0, 0);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tgetTimeSlots()\n\t{\n\t\tif (!this.slots)\n\t\t{\n\t\t\tthis.slots = [];\n\t\t\tlet slot;\n\t\t\tlet finishTime, hourFrom, hourTo;\n\t\t\tlet minTo, minFrom;\n\t\t\tlet num = 0;\n\t\t\tlet time = this.timeFrom * 60;\n\n\t\t\twhile (time < this.timeTo * 60)\n\t\t\t{\n\t\t\t\thourFrom = Math.floor(time / 60);\n\t\t\t\tminFrom = (time) - hourFrom * 60;\n\t\t\t\tfinishTime = time + this.scale;\n\t\t\t\thourTo = Math.floor(finishTime / 60);\n\t\t\t\tminTo = (finishTime) - hourTo * 60;\n\n\t\t\t\tslot = {\n\t\t\t\t\ttime: time\n\t\t\t\t};\n\n\t\t\t\tthis.slots.push(slot);\n\t\t\t\ttime += this.scale;\n\t\t\t\tnum++;\n\t\t\t}\n\t\t}\n\t\treturn this.slots;\n\t}\n\n\tusersDisplayed()\n\t{\n\t\tif (this.useUsers === undefined)\n\t\t{\n\t\t\tthis.useUsers = this.getFieldParams()['USE_USERS'] === 'Y';\n\t\t}\n\t\treturn this.useUsers;\n\t}\n\n\tresourcesDisplayed()\n\t{\n\t\tif (this.useResources === undefined)\n\t\t{\n\t\t\tlet fieldParams = this.getFieldParams();\n\t\t\tthis.useResources = !!(fieldParams.USE_RESOURCES === 'Y'\n\t\t\t\t&& fieldParams.SELECTED_RESOURCES);\n\t\t}\n\t\treturn this.useResources;\n\t}\n\n\ttimeSelectorDisplayed()\n\t{\n\t\tif (this.useTime === undefined)\n\t\t{\n\t\t\tthis.useTime = this.getFieldParams().FULL_DAY !== 'Y';\n\t\t}\n\t\treturn this.useTime;\n\t}\n\n\tselectorCanBeShown(type)\n\t{\n\t\tlet result = false;\n\t\tif (type === 'resources')\n\t\t{\n\t\t\tif (this.resourcesDisplayed() && !this.usersDisplayed())\n\t\t\t{\n\t\t\t\tresult = true;\n\t\t\t}\n\t\t\telse if (this.usersDisplayed())\n\t\t\t{\n\t\t\t\tresult = this.getSelectedUser();\n\t\t\t}\n\t\t}\n\t\telse if (type === 'date' || type === 'services' || type === 'duration')\n\t\t{\n\t\t\tif (this.usersDisplayed() && this.resourcesDisplayed())\n\t\t\t{\n\t\t\t\tresult = this.getSelectedUser() && this.getSelectedResources();\n\t\t\t}\n\t\t\telse if (this.usersDisplayed())\n\t\t\t{\n\t\t\t\tresult = this.getSelectedUser();\n\t\t\t}\n\t\t\telse if (this.resourcesDisplayed())\n\t\t\t{\n\t\t\t\tresult = this.getSelectedResources();\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tcheckIsTodayDate(dateKey)\n\t{\n\t\tif (!this.todayDateKey)\n\t\t{\n\t\t\tlet today = new Date();\n\t\t\tthis.todayDateKey = BookingUtil.formatDate(this.DATE_FORMAT, today);\n\t\t}\n\t\treturn this.todayDateKey === dateKey;\n\t}\n\n\tgetResourceValue()\n\t{\n\t\tconst settingsData = this.getSettingsData();\n\t\tlet value = [];\n\t\tif (Type.isArray(settingsData.resources.value))\n\t\t{\n\t\t\tvalue = settingsData.resources.value;\n\t\t}\n\t\telse if (Type.isString(settingsData.resources.value))\n\t\t{\n\t\t\tvalue = settingsData.resources.value.split('|');\n\t\t}\n\t\treturn value;\n\t}\n\n\tgetUsersValue()\n\t{\n\t\tconst settingsData = this.getSettingsData();\n\t\tlet value = [];\n\t\tif (Type.isArray(settingsData.users.value))\n\t\t{\n\t\t\tvalue = settingsData.users.value;\n\t\t}\n\t\telse if (Type.isString(settingsData.users.value))\n\t\t{\n\t\t\tvalue = settingsData.users.value.split('|');\n\t\t}\n\t\treturn value;\n\t}\n\n\tgetServicesValue()\n\t{\n\t\tconst settingsData = this.getSettingsData();\n\t\tlet value = [];\n\t\tif (Type.isArray(settingsData.services.value))\n\t\t{\n\t\t\tvalue = settingsData.services.value;\n\t\t}\n\t\telse if (Type.isString(settingsData.services.value))\n\t\t{\n\t\t\tvalue = settingsData.services.value.split('|');\n\t\t}\n\t\treturn value;\n\t}\n}","import {Loc} from \"./resourcebooking\";\n\nexport class Translit\n{\n\tstatic replacementCharTable = null;\n\n\tstatic run (str)\n\t{\n\t\tlet\n\t\t\treplaceChar = '_',\n\t\t\tregexpEnChars = /[A-Z0-9]/i,\n\t\t\tregexpSpace = /\\s/,\n\t\t\tmaxLength = 100,\n\t\t\tlen = str.length,\n\t\t\tresult = '',\n\t\t\tlastNewChar = '',\n\t\t\ti;\n\n\t\tfor (i = 0; i < len; i++)\n\t\t{\n\t\t\tlet\n\t\t\t\tnewChar,\n\t\t\t\tchr = str.charAt(i);\n\n\t\t\tif (regexpEnChars.test(chr))\n\t\t\t{\n\t\t\t\tnewChar = chr;\n\t\t\t}\n\t\t\telse if (regexpSpace.test(chr))\n\t\t\t{\n\t\t\t\tif (i > 0 && lastNewChar !== replaceChar)\n\t\t\t\t{\n\t\t\t\t\tnewChar = replaceChar;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tnewChar = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tnewChar = Translit.getChar(chr);\n\n\t\t\t\tif (newChar === null)\n\t\t\t\t{\n\t\t\t\t\tif (i > 0 && i !== len - 1 && lastNewChar !== replaceChar)\n\t\t\t\t\t{\n\t\t\t\t\t\tnewChar = replaceChar;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tnewChar = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (null != newChar && newChar.length > 0)\n\t\t\t{\n\t\t\t\tnewChar = newChar.toLowerCase();\n\t\t\t\tresult += newChar;\n\t\t\t\tlastNewChar = newChar;\n\t\t\t}\n\n\t\t\tif (result.length >= maxLength)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic generateReplacementCharTable()\n\t{\n\t\tlet\n\t\t\tseparator = ',',\n\t\t\tcharTableFrom = (Loc.getMessage('TRANSLIT_FROM') || '').split(separator),\n\t\t\tcharTableTo = (Loc.getMessage('TRANSLIT_TO') || '').split(separator),\n\t\t\ti, len;\n\n\t\tTranslit.replacementCharTable = [];\n\t\tfor (i = 0, len = charTableFrom.length; i < len; i++)\n\t\t{\n\t\t\tTranslit.replacementCharTable[i] = [charTableFrom[i], charTableTo[i]];\n\t\t}\n\t}\n\n\tstatic getChar(chr)\n\t{\n\t\tif (Translit.replacementCharTable === null)\n\t\t{\n\t\t\tTranslit.generateReplacementCharTable();\n\t\t}\n\n\t\tfor (let i = 0, len = Translit.replacementCharTable.length; i < len; i++)\n\t\t{\n\t\t\tif (chr === Translit.replacementCharTable[i][0])\n\t\t\t{\n\t\t\t\treturn Translit.replacementCharTable[i][1];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}","import {Type, Loc, Tag, Runtime, CoreDate} from \"./resourcebooking\";\nimport {Translit} from \"./translit\";\n\nexport class BookingUtil {\n\tstatic simpleTimeList = null;\n\tstatic DAY_LENGTH = 86400000;\n\tstatic TIME_FORMAT = null;\n\tstatic TIME_FORMAT_SHORT = null;\n\tstatic DATE_FORMAT = null;\n\tstatic DATETIME_FORMAT = null;\n\n\tstatic getDateFormat()\n\t{\n\t\tif (Type.isNull(BookingUtil.DATE_FORMAT))\n\t\t{\n\t\t\tBookingUtil.DATE_FORMAT = CoreDate.convertBitrixFormat(Loc.getMessage(\"FORMAT_DATE\"));\n\t\t}\n\t\treturn BookingUtil.DATE_FORMAT;\n\t}\n\n\tstatic getDateTimeFormat()\n\t{\n\t\tif (Type.isNull(BookingUtil.DATETIME_FORMAT))\n\t\t{\n\t\t\tBookingUtil.DATETIME_FORMAT = CoreDate.convertBitrixFormat(Loc.getMessage(\"FORMAT_DATETIME\"));\n\t\t}\n\t\treturn BookingUtil.DATETIME_FORMAT;\n\t}\n\n\tstatic getTimeFormat()\n\t{\n\t\tif (Type.isNull(BookingUtil.TIME_FORMAT))\n\t\t{\n\t\t\tlet DATETIME_FORMAT = BookingUtil.getDateTimeFormat();\n\t\t\tlet DATE_FORMAT = BookingUtil.getDateFormat();\n\n\t\t\tif ((DATETIME_FORMAT.substr(0, DATE_FORMAT.length) === DATE_FORMAT))\n\t\t\t{\n\t\t\t\tBookingUtil.TIME_FORMAT = DATETIME_FORMAT.substr(DATE_FORMAT.length).trim();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBookingUtil.TIME_FORMAT = CoreDate.convertBitrixFormat(CoreDate.isAmPmMode() ? 'H:MI:SS T' : 'HH:MI:SS');\n\t\t\t}\n\n\t\t\tBookingUtil.TIME_FORMAT_SHORT = BookingUtil.TIME_FORMAT.replace(':s', '');\n\t\t}\n\n\t\treturn BookingUtil.TIME_FORMAT;\n\t}\n\n\tstatic getTimeFormatShort()\n\t{\n\t\tif (Type.isNull(BookingUtil.TIME_FORMAT_SHORT))\n\t\t{\n\t\t\tBookingUtil.TIME_FORMAT_SHORT = BookingUtil.getTimeFormat().replace(':s', '');\n\t\t}\n\t\treturn BookingUtil.TIME_FORMAT_SHORT;\n\t}\n\n\tstatic formatDate(format, timestamp, now, utc)\n\t{\n\t\tif (format === null)\n\t\t{\n\t\t\tformat = BookingUtil.getDateFormat();\n\t\t}\n\n\t\tif (Type.isDate(timestamp))\n\t\t{\n\t\t\ttimestamp = timestamp.getTime() / 1000;\n\t\t}\n\n\t\treturn CoreDate.format(format, timestamp, now, utc);\n\t}\n\n\tstatic parseDate(str, bUTC, formatDate, formatDatetime)\n\t{\n\t\treturn CoreDate.parse(str, bUTC, formatDate, formatDatetime);\n\t}\n\n\tstatic formatTime(h, m)\n\t{\n\t\tlet d = new Date();\n\t\td.setHours(h, m, 0);\n\t\treturn CoreDate.format(BookingUtil.getTimeFormatShort(), d.getTime() / 1000);\n\t};\n\n\tstatic translit(str)\n\t{\n\t\treturn Type.isString(str) ? Translit.run(str).replace(/[^a-z0-9_]/ig, \"_\") : str;\n\t}\n\n\tstatic getLoader(size, className)\n\t{\n\t\treturn Tag.render`\n\t\t<div class=\"${className || 'calendar-loader'}\">\n\t\t\t<svg class=\"calendar-loader-circular\"\n\t\t\t\tstyle=\"width:${parseInt(size)}px; height:${parseInt(size)}px;\"\n\t\t\t\tviewBox=\"25 25 50 50\">\n\t\t\t\t\t<circle class=\"calendar-loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-miterlimit=\"10\"/>\n\t\t\t\t\t<circle class=\"calendar-loader-inner-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-miterlimit=\"10\"/>\n\t\t\t</svg>\n\t\t</div>\n`;\n\t};\n\n\tstatic fireCustomEvent(eventObject, eventName, eventParams, secureParams)\n\t{\n\t\tif (window.BX && Type.isFunction(BX.onCustomEvent))\n\t\t{\n\t\t\treturn BX.onCustomEvent(eventObject, eventName, eventParams, secureParams);\n\t\t}\n\t}\n\n\tstatic bindCustomEvent(eventObject, eventName, eventHandler)\n\t{\n\t\tif (window.BX && Type.isFunction(BX.addCustomEvent))\n\t\t{\n\t\t\treturn BX.addCustomEvent(eventObject, eventName, eventHandler);\n\t\t}\n\t}\n\n\tstatic unbindCustomEvent(eventObject, eventName, eventHandler)\n\t{\n\t\tif (window.BX && Type.isFunction(BX.removeCustomEvent))\n\t\t{\n\t\t\treturn BX.removeCustomEvent(eventObject, eventName, eventHandler);\n\t\t}\n\t}\n\n\tstatic isAmPmMode()\n\t{\n\t\treturn CoreDate.isAmPmMode();\n\t}\n\n\tstatic mergeEx()\n\t{\n\t\tlet arg = Array.prototype.slice.call(arguments);\n\t\tif(arg.length < 2)\n\t\t{\n\t\t\treturn {};\n\t\t}\n\n\t\tlet result = arg.shift();\n\t\tfor (let i = 0; i < arg.length; i++)\n\t\t{\n\t\t\tfor (let k in arg[i])\n\t\t\t{\n\t\t\t\tif (typeof arg[i] === \"undefined\" || arg[i] == null || !arg[i].hasOwnProperty(k))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (Type.isPlainObject(arg[i][k]) && Type.isPlainObject(result[k]))\n\t\t\t\t{\n\t\t\t\t\tBookingUtil.mergeEx(result[k], arg[i][k]);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult[k] = Type.isPlainObject(arg[i][k]) ? Runtime.clone(arg[i][k]) : arg[i][k];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tstatic getDurationList(fullDay)\n\t{\n\t\tlet\n\t\t\tvalues = [5, 10, 15, 20, 25, 30, 40, 45, 50, 60, 90,\n\t\t\t\t120, 180, 240, 300, 360,\n\t\t\t\t1440, 1440 * 2, 1440 * 3, 1440 * 4, 1440 * 5, 1440 * 6, 1440 * 7, 1440 * 10],\n\t\t\tval, i, res = [];\n\n\t\tfor (i = 0; i < values.length; i++)\n\t\t{\n\t\t\tval = values[i];\n\t\t\tif (fullDay && val % 1440 !== 0)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tres.push({\n\t\t\t\tvalue: val,\n\t\t\t\tlabel: BookingUtil.getDurationLabel(val)\n\t\t\t});\n\t\t}\n\t\treturn res;\n\t}\n\n\tstatic getDurationLabel(val)\n\t{\n\t\tlet label;\n\t\tif (val % 1440 === 0) // Days\n\t\t{\n\t\t\tlabel = Loc.getMessage('USER_TYPE_DURATION_X_DAY').replace('#NUM#', val / 1440);\n\t\t}\n\t\telse if (val % 60 === 0 && val !== 60) // Hours\n\t\t{\n\t\t\tlabel = Loc.getMessage('USER_TYPE_DURATION_X_HOUR').replace('#NUM#', val / 60);\n\t\t}\n\t\t// Minutes\n\t\telse\n\t\t{\n\t\t\tlabel = Loc.getMessage('USER_TYPE_DURATION_X_MIN').replace('#NUM#', val);\n\t\t}\n\t\treturn label\n\t}\n\n\tstatic parseDuration(value)\n\t{\n\t\tlet\n\t\t\tstringValue = value,\n\t\t\tnumValue = parseInt(value),\n\t\t\tparsed = false,\n\t\t\tdayRegexp = new RegExp('(\\\\d)\\\\s*(' + Loc.getMessage('USER_TYPE_DURATION_REGEXP_DAY') + ').*', 'ig'),\n\t\t\thourRegexp = new RegExp('(\\\\d)\\\\s*(' + Loc.getMessage('USER_TYPE_DURATION_REGEXP_HOUR') + ').*', 'ig');\n\n\t\tvalue = value.replace(dayRegexp, function(str, num){parsed = true;return num;});\n\t\t// It's days\n\t\tif (parsed)\n\t\t{\n\t\t\tvalue = numValue * 1440;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tvalue = stringValue.replace(hourRegexp, function(str, num){parsed = true;return num;});\n\t\t\t// It's hours\n\t\t\tif (parsed)\n\t\t\t{\n\t\t\t\tvalue = numValue * 60;\n\t\t\t}\n\t\t\telse // Minutes\n\t\t\t{\n\t\t\t\tvalue = numValue;\n\t\t\t}\n\t\t}\n\n\t\treturn parseInt(value) || 0;\n\t}\n\n\tstatic getSimpleTimeList()\n\t{\n\t\tif (Type.isNull(BookingUtil.simpleTimeList))\n\t\t{\n\t\t\tlet i, res = [];\n\t\t\tfor (i = 0; i < 24; i++)\n\t\t\t{\n\t\t\t\tres.push({value: i * 60, label: this.formatTime(i, 0)});\n\t\t\t\tres.push({value: i * 60 + 30, label: this.formatTime(i, 30)});\n\t\t\t}\n\t\t\tBookingUtil.simpleTimeList = res;\n\t\t}\n\t\treturn BookingUtil.simpleTimeList;\n\t}\n\n\tstatic adaptTimeValue(timeValue)\n\t{\n\t\ttimeValue = parseInt(timeValue.h * 60) + parseInt(timeValue.m);\n\t\tlet\n\t\t\ttimeList = BookingUtil.getSimpleTimeList(),\n\t\t\tdiff = 24 * 60,\n\t\t\tind = false,\n\t\t\ti;\n\n\t\tfor (i = 0; i < timeList.length; i++)\n\t\t{\n\t\t\tif (Math.abs(timeList[i].value - timeValue) < diff)\n\t\t\t{\n\t\t\t\tdiff = Math.abs(timeList[i].value - timeValue);\n\t\t\t\tind = i;\n\t\t\t\tif (diff <= 15)\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn timeList[ind || 0];\n\t}\n\n\tstatic getDayLength()\n\t{\n\t\treturn BookingUtil.DAY_LENGTH;\n\t}\n\n\tstatic showLimitationPopup()\n\t{\n\t\tif (top.BX.getClass(\"BX.UI.InfoHelper\"))\n\t\t{\n\t\t\ttop.BX.UI.InfoHelper.show('limit_crm_booking');\n\t\t}\n\t};\n}","import {Type, Loc, Dom, Event} from \"./resourcebooking\";\nimport {UserSelector} from \"./controls/userselector\";\nimport {ResourceSelector} from \"./controls/resourceselector\";\nimport {ServiceSelector} from \"./controls/serviceselector\";\nimport {DurationSelector} from \"./controls/durationselector\";\nimport {DateSelector} from \"./controls/dateselector\";\nimport {TimeSelector} from \"./controls/timeselector\";\n\nexport class FieldViewControllerAbstract extends Event.EventEmitter\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t\tthis.settings = params.settings || {};\n\t\tthis.showTitle = params.displayTitle !== false;\n\t\tthis.title = params.title || '';\n\t\tthis.DOM = {\n\t\t\twrap: params.wrap // outer wrap of the form\n\t\t};\n\t}\n\n\tbuild()\n\t{\n\t\tthis.controls = {};\n\t\t// inner wrap\n\t\tthis.DOM.outerWrap = this.DOM.wrap.appendChild(Dom.create(\"div\", {props : { className : 'calendar-resbook-webform-wrapper calendar-resbook-webform-wrapper-form'}}));\n\t\tthis.DOM.innerWrap = this.DOM.outerWrap.appendChild(Dom.create(\"div\", {props : { className : 'calendar-resbook-webform-inner'}}));\n\n\t\tif (this.settings.userfieldSettings.useUsers || this.settings.userfieldSettings.useResources)\n\t\t{\n\t\t\tthis.displayTitle();\n\t\t\tthis.displayUsersControl();\n\t\t\tthis.displayResourcesControl();\n\t\t\tthis.displayServicesControl();\n\t\t\tthis.displayDurationControl();\n\t\t\tthis.displayDateControl();\n\t\t\tthis.displayTimeControl();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.displayWarning(Loc.getMessage('WEBF_RES_BOOKING_WARNING'));\n\t\t}\n\t}\n\n\tdestroy()\n\t{\n\t\tDom.remove(this.DOM.outerWrap);\n\t}\n\n\tdisplayTitle()\n\t{\n\t\tif (this.showTitle)\n\t\t{\n\t\t\tthis.DOM.titleWrap = this.DOM.innerWrap\n\t\t\t\t.appendChild(Dom.create(\"div\", {props:{className:'calendar-resbook-webform-title'}}))\n\t\t\t\t.appendChild(Dom.create(\"div\", {props:{className:'calendar-resbook-webform-title-text'}}));\n\t\t\tthis.updateTitle(this.title);\n\t\t}\n\t}\n\n\tupdateTitle(title)\n\t{\n\t\tif (this.showTitle)\n\t\t{\n\t\t\tthis.title = title;\n\t\t\tDom.adjust(this.DOM.titleWrap, {text: this.title});\n\t\t}\n\t}\n\n\tdisplayWarning(message)\n\t{\n\t\tthis.DOM.warningWrap = this.DOM.innerWrap\n\t\t\t.appendChild(Dom.create(\"div\", {\n\t\t\t\tprops:{className:'ui-alert ui-alert-warning ui-alert-text-center ui-alert-icon-warning'},\n\t\t\t\tstyle: {marginBottom: 0},\n\t\t\t\thtml: '<span class=\"ui-alert-message\">' + message + '</span>'\n\t\t\t}));\n\t}\n\n\tdisplayUsersControl()\n\t{\n\t\tif (this.settings.userfieldSettings.useUsers)\n\t\t{\n\t\t\tif (this.settings.data.users.value === null\n\t\t\t\t&& Type.isArray(this.settings.userfieldSettings.users))\n\t\t\t{\n\t\t\t\tthis.settings.data.users.value = this.settings.userfieldSettings.users;\n\t\t\t}\n\n\t\t\tthis.controls.users = new UserSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: this.settings.data.users,\n\t\t\t\tuserIndex: this.settings.userfieldSettings.userIndex\n\t\t\t});\n\t\t\tthis.controls.users.display();\n\t\t}\n\t}\n\n\tdisplayResourcesControl()\n\t{\n\t\tif (this.settings.userfieldSettings.useResources)\n\t\t{\n\t\t\tif (this.settings.data.resources.value === null\n\t\t\t\t&& Type.isArray(this.settings.userfieldSettings.resources))\n\t\t\t{\n\t\t\t\tthis.settings.data.resources.value = [];\n\t\t\t\tthis.settings.userfieldSettings.resources.forEach(function(res)\n\t\t\t\t{\n\t\t\t\t\tthis.settings.data.resources.value.push(parseInt(res.id));\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tthis.controls.resources = new ResourceSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: this.settings.data.resources,\n\t\t\t\tresourceList: this.settings.userfieldSettings.resources\n\t\t\t});\n\t\t\tthis.controls.resources.display();\n\t\t}\n\t}\n\n\tdisplayServicesControl()\n\t{\n\t\tif (this.settings.userfieldSettings.useServices)\n\t\t{\n\t\t\tif (this.settings.data.services.value === null\n\t\t\t\t&& Type.isArray(this.settings.userfieldSettings.services))\n\t\t\t{\n\t\t\t\tthis.settings.data.services.value = [];\n\t\t\t\tthis.settings.userfieldSettings.services.forEach(function(serv)\n\t\t\t\t{\n\t\t\t\t\tthis.settings.data.services.value.push(serv.name);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tthis.controls.services = new ServiceSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: this.settings.data.services,\n\t\t\t\tserviceList: this.settings.userfieldSettings.services\n\t\t\t});\n\t\t\tthis.controls.services.display();\n\t\t}\n\t}\n\n\tdisplayDurationControl()\n\t{\n\t\tif (!this.settings.userfieldSettings.useServices)\n\t\t{\n\t\t\tthis.controls.duration = new DurationSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: this.settings.data.duration,\n\t\t\t\tfullDay: this.settings.userfieldSettings.fullDay\n\t\t\t});\n\t\t\tthis.controls.duration.display();\n\t\t}\n\t}\n\n\tdisplayDateControl()\n\t{\n\t\tthis.controls.date = new DateSelector({\n\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\tdata: this.settings.data.date\n\t\t});\n\t\tthis.controls.date.display();\n\t}\n\n\tdisplayTimeControl()\n\t{\n\t\tif (!this.settings.userfieldSettings.fullDay)\n\t\t{\n\t\t\tthis.controls.time = new TimeSelector({\n\t\t\t\touterWrap: this.DOM.innerWrap,\n\t\t\t\tdata: this.settings.data.time\n\t\t\t});\n\t\t\tthis.controls.time.display();\n\t\t}\n\t}\n\n\trefreshLayout(settingsData)\n\t{\n\t\tfor (let k in this.controls)\n\t\t{\n\t\t\tif (this.controls.hasOwnProperty(k) && Type.isFunction(this.controls[k].refresh))\n\t\t\t{\n\t\t\t\tthis.controls[k].refresh(settingsData[k] || this.settings.data[k]);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetInnerWrap()\n\t{\n\t\treturn this.DOM.innerWrap;\n\t}\n\n\tgetOuterWrap()\n\t{\n\t\treturn this.DOM.outerWrap;\n\t}\n}\n\n\n\n\n\n\n","import {FieldViewControllerAbstract} from \"./fieldviewcontrollerabstract\";\nexport class FieldViewControllerEdit extends FieldViewControllerAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t}\n}","import {FieldViewControllerAbstract} from \"./fieldviewcontrollerabstract\";\nexport class FieldViewControllerPreview extends FieldViewControllerAbstract\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\t}\n\n\tbuild()\n\t{\n\t\tsuper.build();\n\t\tthis.DOM.outerWrap.className = 'calendar-resbook-webform-wrapper calendar-resbook-webform-wrapper-preview calendar-resbook-webform-wrapper-dark';\n\t}\n}","import {Type, Dom, Event, BookingUtil, MenuManager} from \"../resourcebooking\";\n\nexport class SelectInput extends Event.EventEmitter\n{\n\tconstructor(params)\n\t{\n\t\tsuper(params);\n\n\t\tthis.id = params.id || 'bx-select-input-' + Math.round(Math.random() * 1000000);\n\n\t\tif (Type.isFunction(params.getValues))\n\t\t{\n\t\t\tthis.getValues = params.getValues;\n\t\t\tthis.values = this.getValues();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.values = params.values || false;\n\t\t}\n\n\t\tthis.input = params.input;\n\t\tthis.defaultValue = params.defaultValue || '';\n\t\tthis.openTitle = params.openTitle || '';\n\t\tthis.className = params.className || '';\n\t\tthis.currentValue = params.value;\n\t\tthis.currentValueIndex = params.valueIndex;\n\t\tthis.onChangeCallback = Type.isFunction(params.onChangeCallback) ? params.onChangeCallback : null;\n\t\tthis.onAfterMenuOpen = params.onAfterMenuOpen || null;\n\t\tthis.zIndex = params.zIndex || 1200;\n\t\tthis.disabled = params.disabled;\n\t\tthis.editable = params.editable !== false;\n\t\tthis.setFirstIfNotFound = !!params.setFirstIfNotFound;\n\n\t\tif (this.onChangeCallback)\n\t\t{\n\t\t\tEvent.bind(this.input, 'change', this.onChangeCallback);\n\t\t\tEvent.bind(this.input, 'keyup', this.onChangeCallback);\n\t\t}\n\n\t\tthis.curInd = false;\n\n\t\tif (Type.isArray(this.values))\n\t\t{\n\t\t\tEvent.bind(this.input, 'click', this.onClick.bind(this));\n\n\t\t\tif (this.editable)\n\t\t\t{\n\t\t\t\tEvent.bind(this.input, 'focus', this.onFocus.bind(this));\n\t\t\t\tEvent.bind(this.input, 'blur', this.onBlur.bind(this));\n\t\t\t\tEvent.bind(this.input, 'keyup', this.onKeyup.bind(this));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tEvent.bind(this.input, 'focus', function(){this.input.blur();}.bind(this));\n\t\t\t}\n\n\t\t\tif (this.currentValueIndex === undefined && this.currentValue !== undefined)\n\t\t\t{\n\t\t\t\tthis.currentValueIndex = -1;\n\t\t\t\tfor (let i = 0; i < this.values.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (parseInt(this.values[i].value) === parseInt(this.currentValue))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.currentValueIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.currentValueIndex === -1)\n\t\t\t\t{\n\t\t\t\t\tthis.currentValueIndex = this.setFirstIfNotFound ? 0 : undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.currentValueIndex !== undefined && this.values[this.currentValueIndex])\n\t\t{\n\t\t\tthis.input.value = this.values[this.currentValueIndex].label;\n\t\t}\n\t}\n\n\tshowPopup()\n\t{\n\t\tif (this.getValues)\n\t\t{\n\t\t\tthis.values = this.getValues();\n\t\t}\n\n\t\tif (this.shown || this.disabled || !this.values.length)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet\n\t\t\tind = 0,\n\t\t\tj = 0,\n\t\t\tmenuItems = [],\n\t\t\ti,\n\t\t\t_this = this;\n\n\t\tfor (i = 0; i < this.values.length; i++)\n\t\t{\n\t\t\tif (this.values[i].delimiter)\n\t\t\t{\n\t\t\t\tmenuItems.push(this.values[i]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif ((this.currentValue && this.values[i] && this.values[i].value === this.currentValue.value)\n\t\t\t\t\t|| this.input.value === this.values[i].label)\n\t\t\t\t{\n\t\t\t\t\tind = j;\n\t\t\t\t}\n\n\t\t\t\tmenuItems.push({\n\t\t\t\t\tid: this.values[i].value + '_' + i,\n\t\t\t\t\ttext: this.values[i].label,\n\t\t\t\t\tonclick: this.values[i].callback || (function (value, label)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn function ()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_this.input.value = label;\n\t\t\t\t\t\t\t_this.popupMenu.close();\n\t\t\t\t\t\t\t_this.onChange(value, label);\n\t\t\t\t\t\t}\n\t\t\t\t\t})(this.values[i].value, this.values[i].labelRaw || this.values[i].label)\n\t\t\t\t});\n\t\t\t\tj++;\n\t\t\t}\n\t\t}\n\n\t\tthis.popupMenu = MenuManager.create(\n\t\t\tthis.id,\n\t\t\tthis.input,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : true,\n\t\t\t\tzIndex: this.zIndex,\n\t\t\t\toffsetTop: 0,\n\t\t\t\toffsetLeft: 0,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\t\tthis.popupMenu.popupWindow.setWidth(this.input.offsetWidth - 2);\n\n\t\tlet menuContainer = this.popupMenu.layout.menuContainer;\n\t\tDom.addClass(this.popupMenu.layout.menuContainer, 'calendar-resourcebook-select-popup');\n\t\tthis.popupMenu.show();\n\n\t\tlet menuItem = this.popupMenu.menuItems[ind];\n\t\tif (menuItem && menuItem.layout)\n\t\t{\n\t\t\tmenuContainer.scrollTop = menuItem.layout.item.offsetTop - 2;\n\t\t}\n\n\t\tBookingUtil.bindCustomEvent(this.popupMenu.popupWindow, 'onPopupClose', function(){this.shown = false;}.bind(this));\n\n\t\tthis.input.select();\n\n\t\tif (Type.isFunction(this.onAfterMenuOpen))\n\t\t{\n\t\t\tthis.onAfterMenuOpen(ind, this.popupMenu);\n\t\t}\n\n\t\tthis.shown = true;\n\t}\n\n\tclosePopup()\n\t{\n\t\tMenuManager.destroy(this.id);\n\t\tthis.shown = false;\n\t}\n\n\tonFocus()\n\t{\n\t\tsetTimeout(function(){\n\t\t\tif (!this.shown)\n\t\t\t{\n\t\t\t\tthis.showPopup();\n\t\t\t}\n\t\t}.bind(this), 200);\n\t}\n\n\tonClick()\n\t{\n\t\tif (this.shown)\n\t\t{\n\t\t\tthis.closePopup();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.showPopup();\n\t\t}\n\t}\n\n\tonBlur()\n\t{\n\t\tsetTimeout(this.closePopup.bind(this), 200);\n\t}\n\n\tonKeyup()\n\t{\n\t\tsetTimeout(this.closePopup.bind(this), 50);\n\t}\n\n\tonChange(value)\n\t{\n\t\tlet val = this.input.value;\n\t\tthis.emit('BX.Calendar.Resourcebooking.SelectInput:changed', new Event.BaseEvent({data: {selectinput: this, value: val, realValue: value}}));\n\t\tif (this.onChangeCallback)\n\t\t{\n\t\t\tthis.onChangeCallback({value: val, realValue: value});\n\t\t}\n\t}\n\n\tdestroy()\n\t{\n\t\tif (this.onChangeCallback)\n\t\t{\n\t\t\tEvent.unbind(this.input, 'change', this.onChangeCallback);\n\t\t\tEvent.unbind(this.input, 'keyup', this.onChangeCallback);\n\t\t}\n\n\t\tEvent.unbind(this.input, 'click', this.onClick.bind(this));\n\t\tEvent.unbind(this.input, 'focus', this.onFocus.bind(this));\n\t\tEvent.unbind(this.input, 'blur', this.onBlur.bind(this));\n\t\tEvent.unbind(this.input, 'keyup', this.onKeyup.bind(this));\n\n\t\tif (this.popupMenu)\n\t\t{\n\t\t\tthis.popupMenu.close();\n\t\t}\n\n\t\tMenuManager.destroy(this.id);\n\t\tthis.shown = false;\n\t}\n\n\tsetValue(value)\n\t{\n\t\tthis.input.value = value;\n\t\tif (Type.isArray(this.values))\n\t\t{\n\t\t\tlet currentValueIndex = -1;\n\t\t\tfor (let i = 0; i < this.values.length; i++)\n\t\t\t{\n\t\t\t\tif (this.values[i].value === value)\n\t\t\t\t{\n\t\t\t\t\tcurrentValueIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (currentValueIndex !== -1)\n\t\t\t{\n\t\t\t\tthis.input.value = this.values[currentValueIndex].label;\n\t\t\t\tthis.currentValueIndex = currentValueIndex;\n\t\t\t}\n\t\t}\n\t}\n\n\tgetValue()\n\t{\n\t\treturn this.input.value;\n\t}\n}","// @flow\n'use strict';\nimport { Type, Loc, Dom, Event, Tag, Browser, Text, Runtime } from 'main.core';\nimport {LiveFieldController} from './livefieldcontroller.js';\nimport {BookingUtil} from \"./bookingutil\";\nimport {FieldViewControllerEdit} from \"./fieldviewcontrolleredit\";\nimport {FieldViewControllerPreview} from \"./fieldviewcontrollerpreview\";\nimport {SelectInput} from \"./controls/selectinput\";\nimport \"main.date\";\nimport './css/resourcebooking.css';\nimport {PopupManager, MenuManager} from 'main.popup';\n\nimport {BaseEvent, EventEmitter } from 'main.core.events';\nlet CoreDate = window.BX && BX.Main && BX.Main.Date ? BX.Main.Date : null;\nexport {CoreDate};\nexport {Type, Loc, Dom, Event, Tag, Browser, Text, Runtime, PopupManager, MenuManager};\nexport {BaseEvent, EventEmitter};\nexport {BookingUtil, FieldViewControllerEdit, FieldViewControllerPreview, SelectInput};\n\nexport class Resourcebooking\n{\n\tstatic getLiveField(params)\n\t{\n\t\tif (!params.wrap || !Type.isDomNode(params.wrap))\n\t\t{\n\t\t\tthrow new Error('The argument \"params.wrap\" must be a DOM node');\n\t\t}\n\t\tif (Type.isNull(CoreDate))\n\t\t{\n\t\t\tthrow new Error('The error occured during Date extention loading');\n\t\t}\n\n\t\tlet liveFieldController = new LiveFieldController(params);\n\t\tliveFieldController.init();\n\t\treturn liveFieldController;\n\t}\n\n\tstatic getPreviewField(params)\n\t{\n\t}\n}\n"],"names":["ViewControlAbstract","params","TypeError","name","classNames","wrap","wrapClassName","innerWrap","title","field","DOM","outerWrap","dataWrap","labelWrap","data","shown","show","appendChild","Dom","create","props","className","Tag","render","isDisplayed","animation","refreshLabel","setDataConfig","hide","label","adjust","text","controlWrap","displayControl","remove","errorMessage","addClass","displayErrorText","Loc","getMessage","removeClass","errorTextWrap","ViewDropDownSelect","id","Math","round","random","maxHeight","selectAllMessage","setSettings","select","attrs","events","click","openPopup","bind","setSelectedValues","selected","handleChangesCallback","Type","isFunction","values","isArray","multiple","isPopupShown","closePopup","menuItems","forEach","item","includes","parseInt","push","Text","encode","onclick","menuItemClick","length","selectAllItemClick","popup","MenuManager","closeByEsc","autoHide","offsetTop","offsetLeft","cacheable","popupContainer","popupWindow","style","width","offsetWidth","menuItem","checked","selectAllChecked","find","value","itemId","layout","innerHTML","Event","unbind","document","handleClick","setTimeout","close","isShown","e","selectAllcheckbox","target","srcElement","foundValue","checkbox","querySelector","hasClass","selectItem","deselectItem","handleControlChanges","index","indexOf","slice","concat","i","checkboxes","querySelectorAll","contains","textValues","selectedValues","join","getSelectedValues","UserSelector","userList","userIndex","defaultMode","previewMode","undefined","autoSelectDefaultValue","changeValueCallback","handleSettingsData","selectedValue","getSelectedUser","dropdownSelect","handleChanges","build","isPlainObject","hasOwnProperty","dataValue","dataValueRaw","split","displayName","userId","ResourceSelector","allResourceList","resourceList","ServiceSelector","serviceList","allServiceList","service","isString","trim","setSelectedService","getSelectedService","serviceIndex","prepareServiceId","BookingUtil","getDurationLabel","duration","serviceName","selectedService","getMeta","str","translit","DurationSelector","durationList","getDurationList","fullDay","defaultValue","durationItems","durationInput","type","durationControl","SelectInput","input","editable","manualInput","setFirstIfNotFound","onChangeCallback","setValue","parseDuration","getValue","DateSelector","requestDataCallback","allowOverbooking","displayed","setDateIndex","availableDateIndex","setCurrentDate","lineDateControl","refreshDateAvailability","start","configWasChanged","popupSateControl","PopupDateSelector","isDateAvailable","onChange","LineDateSelector","date","isDate","currentDate","isItPastDate","formatDate","dateKey","nowDate","Date","checkDate","getTime","setHours","getDisplayedValue","realDate","datePicker","valueInput","previousArrow","stateWrap","stateWrapDate","stateWrapDay","nextArrow","dateValue","hasAttribute","closest","dateMeta","getAttribute","setDate","getDate","openCalendarPopup","isExternalDatePickerEnabled","openExternalDatePicker","openBxCalendar","BX","calendar","node","bTime","get","unbindCustomEvent","handleCalendarClose","bindCustomEvent","parseDate","isNull","UI","Vue","Components","DatePick","hasTime","change","toggle","externalDatePickerIsEnabled","window","DAYS_DISPLAY_SIZE","dayNodes","dayNodeIndex","monthTitle","controlStaticWrap","controlInnerWrap","fillDays","initCustomScroll","startDate","getStartLoadDate","addDateSlot","innerWidth","dateCode","html","dayNode","getDayNode","setSelected","currentSelected","startLoadDate","arrowWrap","leftArrow","handlePreletrowClick","rightArrow","handleNextArrowClick","outerWidth","mousewheelScrollHandler","checkScrollPosition","scrollLeft","max","event","delta","deltaY","detail","wheelDelta","abs","Browser","isMac","stopPropagation","preventDefault","display","updateMonthTitle","dayNodeOuterWidth","childNodes","monthFrom","monthTo","firstDayNodeIndex","floor","lastDayNodeIndex","TimeSelector","timeFrom","timeTo","SLOTS_ROW_AMOUNT","popupSelectId","timezone","timezoneOffset","timezoneOffsetLabel","timeMidday","timeEvening","showOnlyFree","showFinishTime","scale","timezoneLabelWrap","replace","setSlotIndex","slotIndex","setCurrentValue","availableSlotIndex","timeValue","warningWrap","warningTextNode","children","noSlotsAvailable","slotsInfo","getSlotsInfo","slots","freeSlotsCount","showEmptyWarning","hideEmptyWarning","createSelectControl","createSlotsControl","isAmPmMode","itemsInColumn","maxColumnNumber","parts","itemNumber","slot","partOfTheDay","items","toUpperCase","itemsWrap","ceil","booked","time","toString","fromTime","toTime","itemsAmount","k","initCustomScrollForSlots","timeSelectWrap","getSlotByTime","isDomNode","getTimeTextBySlot","getSlotNode","meta","openSelectPopup","finishTime","hourFrom","minFrom","hourTo","minTo","part","num","formatTime","checkSlotsScroll","isSelectPopupShown","closeSelectPopup","getTimeSelectItems","angle","dataset","slotNodes","slotNode","StatusInformer","built","statusWrap","statusTimezone","dateFrom","getStatusText","dateTo","getHours","getMinutes","message","LiveFieldController","setEventNamespace","actionAgent","ajax","runAction","inputName","DATE_FORMAT","getDateFormat","DATETIME_FORMAT","getDateTimeFormat","userFieldParams","loadedDates","externalSiteContext","accessibility","user","resource","busySlotMatrix","valueInputs","settingsData","getSettingsData","users","resources","Error","showMainLoader","requireFormData","then","hideMainLoader","buildFormControls","onChangeValues","result","usersDisplayed","userControl","showWarning","resourcesDisplayed","getSelectedResources","resourceControl","getCurrentDuration","serviceControl","dateControl","statusControl","isErrorSet","timeSelectorDisplayed","timeControl","inputsWrap","getFieldParams","refresh","setError","ZIndexManager","stack","getOrAddStack","body","baseIndex","sort","preparaAutoSelectValues","displayUsersControl","displayResourcesControl","displayServicesControl","displayDurationControl","displayDateTimeControl","selectedUserId","selectedResourceId","refreshControlsState","selectorCanBeShown","getAvailableDateIndex","getSlotIndex","startValue","getFreeDate","updateStatusControl","fireCustomEvent","allValuesValue","dateFromValue","getCurrentDate","getCurrentServiceName","entries","clean","resourceId","selectedUser","entry","emit","loaderWrap","getLoader","mainLoader","requestedFormData","showStatusLoader","formDataParams","from","hideStatusLoader","refreshCurrentValue","Promise","resolve","reject","fieldName","entity_field_name","to","setLoadedDataLimits","response","isNumber","workTimeStart","workTimeEnd","fieldSettings","handleAccessibilityData","usersAccessibility","resourcesAccessibility","loadedDataFrom","loadedDataTo","loadedDatesIndex","key","slotsCount","entityType","entityId","dateIndex","setSeconds","fromTimestamp","toTimestamp","fillBusySlotMatrix","mergeEx","fromDate","dateToKey","timeValueFrom","timeValueTo","getTimeSlots","count","fillDataIndex","caption","settings_data","getCaption","loadedDate","setSelectedUser","setSelectedResource","autoSelectUser","autoSelectResource","autoSelectDate","maxStepsAuto","getFreeEntitiesForDate","slotsAmount","getDefaultDurationSlotsAmount","resList","getUsersValue","checkSlotsForDate","getResourceValue","getUserIndex","BaseEvent","valueIndex","fieldParams","SELECTED_RESOURCES","res","USE_SERVICES","services","getServicesValue","SERVICE_LIST","FULL_DAY","ALLOW_OVERBOOKING","handleDateChanging","requestAccessibilityData","USE_USER_TIMEZONE","userTimezoneOffset","getTimezoneOffset","TIMEZONE","handleSelectedDateTimeChanging","useTimeout","updateTimeStatusTimeout","clearTimeout","isUserSelectorInAutoMode","autoAdjustUserSelector","isResourceSelectorInAutoMode","autoAdjustResourceSelector","hasAvailableSlots","freeDate","userIsFree","resourcesAreFree","daysGap","j","userKey","daysAmount","freeSlot","slotGap","todayNowTime","timeSlots","checkIsTodayDate","today","deltaOffset","getAvailableSlotIndex","entityHasSlotsForDate","busySlotList","freeSlotCount","hasFreeSlots","getSelectedValue","hour","min","useUsers","useResources","USE_RESOURCES","useTime","todayDateKey","EventEmitter","Translit","replaceChar","regexpEnChars","regexpSpace","maxLength","len","lastNewChar","newChar","chr","charAt","test","getChar","toLowerCase","separator","charTableFrom","charTableTo","replacementCharTable","generateReplacementCharTable","CoreDate","convertBitrixFormat","TIME_FORMAT","substr","TIME_FORMAT_SHORT","getTimeFormat","format","timestamp","now","utc","bUTC","formatDatetime","parse","h","m","d","getTimeFormatShort","run","size","eventObject","eventName","eventParams","secureParams","onCustomEvent","eventHandler","addCustomEvent","removeCustomEvent","arg","Array","prototype","call","arguments","shift","Runtime","clone","val","stringValue","numValue","parsed","dayRegexp","RegExp","hourRegexp","simpleTimeList","timeList","getSimpleTimeList","diff","ind","DAY_LENGTH","top","getClass","InfoHelper","FieldViewControllerAbstract","settings","showTitle","displayTitle","controls","userfieldSettings","displayDateControl","displayTimeControl","displayWarning","titleWrap","updateTitle","marginBottom","useServices","serv","FieldViewControllerEdit","FieldViewControllerPreview","getValues","openTitle","currentValue","currentValueIndex","onAfterMenuOpen","zIndex","disabled","curInd","onClick","onFocus","onBlur","onKeyup","blur","_this","delimiter","callback","popupMenu","labelRaw","setWidth","menuContainer","scrollTop","destroy","showPopup","selectinput","realValue","Main","Resourcebooking","liveFieldController","init"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.27 |
proxy
|
phpinfo
|
Settings