403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/calendar/controls/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/calendar/controls/dist/controls.bundle.js.map
{"version":3,"file":"controls.bundle.js","sources":["../src/timeselector.js","../src/reminder.js","../src/location.js","../src/userselector.js","../src/colorselector.js","../src/sectionselector.js","../src/repeatselector.js","../src/selectinput.js","../src/popupdialog.js","../src/viewselector.js","../src/lineviewselector.js","../src/addbutton.js","../src/meetingstatuscontrol.js","../src/confirmstatusdialog.js","../src/confirmeditdialog.js","../src/confirmdeletedialog.js","../src/datetimecontrol.js","../src/busyusersdialog.js","../src/userplannerselector.js","../src/reinviteuserdialog.js","../src/emailselectorcontrol.js","../src/confirmedemaildialog.js","../src/emaillimitationdialog.js","../src/attendeeslist.js","../src/intranetbutton.js","../src/accessibilityselector.js"],"sourcesContent":["import {Util} from 'calendar.util';\nimport {Type, Loc, Dom} from 'main.core';\nimport { SelectInput } from 'calendar.controls';\n\nexport class TimeSelector {\n\tZ_INDEX = 4000;\n\tvalueList = [];\n\n\tconstructor(params)\n\t{\n\t\tthis.DOM = {\n\t\t\twrap: params.wrap,\n\t\t\tinput: params.input\n\t\t};\n\n\t\tfor (let hour = 0; hour < 24; hour++)\n\t\t{\n\t\t\tthis.valueList.push({value: hour * 60, label: Util.formatTime(hour, 0)});\n\t\t\tthis.valueList.push({value: hour * 60 + 30, label: Util.formatTime(hour, 30)});\n\t\t}\n\n\t\tthis.onChangeCallback = Type.isFunction(params.onChangeCallback) ? params.onChangeCallback : null;\n\t\tthis.selectContol = new SelectInput({\n\t\t\tinput: this.DOM.input,\n\t\t\tzIndex: this.Z_INDEX,\n\t\t\tvalues: this.valueList,\n\t\t\tonChangeCallback: (data) => {\n\t\t\t\tif (this.onChangeCallback)\n\t\t\t\t{\n\t\t\t\t\tthis.onChangeCallback(this.selectContol.getInputValue(), data.dataValue);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonPopupShowCallback: () => Dom.addClass(this.DOM.input.parentNode, 'active'),\n\t\t\tonPopupCloseCallback: () => Dom.removeClass(this.DOM.input.parentNode, 'active'),\n\t\t});\n\t}\n\n\thighlightValue(date)\n\t{\n\t\tthis.valueList.forEach(el => el.selected = false); // unselect previous time\n\n\t\tconst minutes = date.getHours() * 60 + date.getMinutes();\n\t\tthis.selectContol.setValue({value: minutes}); // this is needed for correct scroll\n\n\t\tlet selectedValue = this.valueList.find(el => el.value === minutes);\n\t\tif (!selectedValue)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tselectedValue.selected = true;\n\t\tthis.selectContol.setValueList(this.valueList);\n\t}\n\n\tupdateDurationHints(fromTime, toTime, fromDate, toDate)\n\t{\n\t\tconst parsedFromTime = Util.parseTime(fromTime);\n\t\tconst parsedToTime = Util.parseTime(toTime);\n\t\tconst parsedFromDate = Util.parseDate(fromDate);\n\t\tconst parsedToDate = Util.parseDate(toDate);\n\n\t\tconst fromMinutes = parsedFromTime.h * 60 + parsedFromTime.m;\n\t\tconst toMinutes = parsedToTime.h * 60 + parsedToTime.m;\n\t\tconst isSameDate = fromDate === toDate;\n\t\tconst iterateFrom = isSameDate ? this.approximate(fromMinutes + 15, 15) : 0;\n\t\tconst firstHour = this.approximate(fromMinutes + 60 + 15/2, 30);\n\n\t\tthis.valueList = [];\n\n\t\tif (fromDate === toDate)\n\t\t{\n\t\t\tthis.valueList.push(this.getValueElement(fromMinutes, fromMinutes, toMinutes, parsedFromDate, parsedToDate));\n\t\t}\n\n\t\tfor (let minute = iterateFrom; minute <= 24 * 60; minute += (isSameDate && minute < firstHour ? 15 : 30))\n\t\t{\n\t\t\tthis.valueList.push(this.getValueElement(fromMinutes, minute, toMinutes, parsedFromDate, parsedToDate));\n\t\t}\n\n\t\tthis.selectContol.setValueList(this.valueList);\n\t}\n\n\tgetValueElement(fromMinute, currentMinute, toMinute, fromDate, toDate)\n\t{\n\t\tconst hour = Math.floor(currentMinute / 60);\n\t\tconst min = currentMinute % 60;\n\t\tconst time = Util.formatTime(hour, min);\n\t\tconst durationHint = this.getStyledDurationHint(fromMinute, currentMinute, fromDate, toDate);\n\t\tconst selected = currentMinute === toMinute;\n\t\treturn {value: currentMinute, label: time, hint: durationHint, selected};\n\t}\n\n\tgetStyledDurationHint(fromMinute, currentMinute, fromDate, toDate)\n\t{\n\t\tconst durationHint = this.getDurationHint(fromMinute, currentMinute, fromDate, toDate);\n\t\tif (durationHint !== '')\n\t\t{\n\t\t\treturn`<div class=\"menu-popup-item-hint\">${durationHint}</div>`;\n\t\t}\n\t\treturn '';\n\t}\n\n\tgetDurationHint(fromMinutes, toMinutes, fromDate, toDate)\n\t{\n\t\tconst from = new Date(fromDate.getTime() + fromMinutes * 60 * 1000);\n\t\tconst to = new Date(toDate.getTime() + toMinutes * 60 * 1000);\n\n\t\tconst diff = to.getTime() - from.getTime();\n\t\tconst diffDays = this.approximateFloor(diff / (1000 * 60 * 60 * 24), 1);\n\t\tconst diffHours = this.approximate(diff / (1000 * 60 * 60), 0.5);\n\t\tconst diffMinutes = this.approximate(diff / (1000 * 60), 1);\n\t\tconst diffMinutesApproximation = this.approximate(diffMinutes, 15);\n\n\t\tif (diffDays >= 1)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tif (diffMinutes >= 60)\n\t\t{\n\t\t\tconst approximationMark = diffMinutes !== diffMinutesApproximation ? '~' : '';\n\t\t\treturn `${approximationMark}${this.formatDecimal(diffHours)} ${Loc.getMessage('EC_HOUR_SHORT')}`;\n\t\t}\n\n\t\treturn `${this.formatDecimal(diffMinutes)} ${Loc.getMessage('EC_MINUTE_SHORT')}`;\n\t}\n\n\tformatDecimal(decimal)\n\t{\n\t\treturn `${decimal}`.replace('.', ',');\n\t}\n\n\tapproximateFloor(value, accuracy) {\n\t\treturn Math.floor(value / accuracy) * accuracy;\n\t}\n\n\tapproximate(value, accuracy) {\n\t\treturn Math.round(value / accuracy) * accuracy;\n\t}\n\n}","import {Loc, Type, Dom, Tag, Event} from \"main.core\";\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {MenuManager, Popup} from 'main.popup';\nimport {Util} from 'calendar.util';\n\nexport class Reminder extends EventEmitter\n{\n\tstatic timeValueList = null;\n\tdefaultReminderTime = 540; // 9.00\n\tfullDayMode = false;\n\textendedMode = true;\n\tselectedValues = [];\n\tcontrolList = {};\n\tviewMode = false;\n\tDOM = {};\n\tchangedByUser = false;\n\n\tconstructor(params)\n\t{\n\t\tsuper();\n\n\t\tthis.setEventNamespace('BX.Calendar.Controls.Reminder');\n\t\tthis.values = this.getValues();\n\n\t\tthis.id = params.id || 'reminder-' + Math.round(Math.random() * 1000000);\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.rawValuesMap = new Map();\n\n\t\tthis.viewMode = params.viewMode === true;\n\t\tthis.changeCallack = params.changeCallack;\n\t\tthis.showPopupCallBack = params.showPopupCallBack;\n\t\tthis.hidePopupCallBack = params.hidePopupCallBack;\n\n\t\tthis.create(params);\n\t\tthis.setValue(params.selectedValues || []);\n\t\tthis.bindEventHandlers();\n\t}\n\n\tcreate(params)\n\t{\n\t\tif (Type.isElementNode(params.wrap))\n\t\t{\n\t\t\tthis.DOM.wrap = params.wrap;\n\t\t}\n\n\t\tif (!Type.isElementNode(this.DOM.wrap))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tDom.addClass(this.DOM.wrap, 'calendar-notification-values');\n\n\t\tif (!this.viewMode)\n\t\t{\n\t\t\tthis.DOM.addButton = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t<span class=\"calendar-notification-add-btn-wrap\">\n\t\t\t\t\t<span class=\"calendar-notification-text\">${Loc.getMessage('EC_REMIND1_ADD')}</span>\n\t\t\t\t\t<span class=\"calendar-notification-btn-container calendar-notification-btn-add\">\n\t\t\t\t\t\t<span class=\"calendar-notification-icon\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</span>`);\n\t\t}\n\t}\n\n\tbindEventHandlers()\n\t{\n\t\tif (Type.isDomNode(this.DOM.addButton))\n\t\t{\n\t\t\tEvent.bind(this.DOM.addButton, 'click', this.showPopup.bind(this));\n\t\t}\n\n\t\tif (Type.isDomNode(this.DOM.wrap))\n\t\t{\n\t\t\tEvent.bind(this.DOM.wrap, 'click', this.handleClick.bind(this));\n\t\t}\n\t}\n\n\tgetValues()\n\t{\n\t\tlet values = [];\n\n\t\tif (!this.fullDayMode)\n\t\t{\n\t\t\tvalues = values.concat([\n\t\t\t\t{value: 0, label: Loc.getMessage(\"EC_REMIND1_0\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_0\")},\n\t\t\t\t{value: 5, label: Loc.getMessage(\"EC_REMIND1_5\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_5\")},\n\t\t\t\t{value: 10, label: Loc.getMessage(\"EC_REMIND1_10\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_10\")},\n\t\t\t\t{value: 15, label: Loc.getMessage(\"EC_REMIND1_15\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_15\")},\n\t\t\t\t{value: 20, label: Loc.getMessage(\"EC_REMIND1_20\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_20\")},\n\t\t\t\t{value: 30, label: Loc.getMessage(\"EC_REMIND1_30\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_30\")},\n\t\t\t\t{value: 60, label: Loc.getMessage(\"EC_REMIND1_60\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_60\")},\n\t\t\t\t{value: 120, label: Loc.getMessage(\"EC_REMIND1_120\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_120\")}\n\t\t\t\t//{value: 1440, label: Loc.getMessage(\"EC_REMIND1_1440\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_1440\")},\n\t\t\t\t//{value: 2880, label: Loc.getMessage(\"EC_REMIND1_2880\"), shortLabel: Loc.getMessage(\"EC_REMIND1_SHORT_2880\")}\n\t\t\t]);\n\t\t}\n\n\t\tif (this.extendedMode)\n\t\t{\n\t\t\tvalues = values.concat([\n\t\t\t\t{\n\t\t\t\t\tid: 'time-menu-day-0',\n\t\t\t\t\tlabel: Loc.getMessage(\"EC_REMIND1_DAY_0\"),\n\t\t\t\t\tdataset: {\n\t\t\t\t\t\tmode: 'time-menu',\n\t\t\t\t\t\tdaysBefore: 0,\n\t\t\t\t\t\ttime: this.defaultReminderTime\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'time-menu-day-1',\n\t\t\t\t\tlabel: Loc.getMessage(\"EC_REMIND1_DAY_1\"),\n\t\t\t\t\tdataset: {\n\t\t\t\t\t\tmode: 'time-menu',\n\t\t\t\t\t\tdaysBefore: 1,\n\t\t\t\t\t\ttime: this.defaultReminderTime\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'time-menu-day-2',\n\t\t\t\t\tlabel: Loc.getMessage(\"EC_REMIND1_DAY_2\"),\n\t\t\t\t\tdataset: {\n\t\t\t\t\t\tmode: 'time-menu',\n\t\t\t\t\t\tdaysBefore: 2,\n\t\t\t\t\t\ttime: this.defaultReminderTime\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'custom-reminder',\n\t\t\t\t\tlabel: Loc.getMessage(\"EC_REMIND1_CUSTOM\"),\n\t\t\t\t\tdataset: {\n\t\t\t\t\t\tmode: 'custom'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]);\n\t\t}\n\n\t\treturn values;\n\t}\n\n\tsetValue(reminderList, emitChanges = true, changedByUser = true)\n\t{\n\t\tthis.selectedValues.forEach((value) => {\n\t\t\tthis.removeValue(value, emitChanges);\n\t\t});\n\n\t\tif (Type.isArray(reminderList))\n\t\t{\n\t\t\treminderList.forEach((value) => {this.addValue(value, emitChanges, changedByUser)}, this);\n\t\t}\n\t}\n\n\tgetSelectedValues()\n\t{\n\t\treturn this.selectedValues;\n\t}\n\n\tgetSelectedRawValues()\n\t{\n\t\tlet selectedRawValues = [];\n\t\tthis.selectedValues.forEach((value) => {\n\n\t\t\tselectedRawValues.push(this.rawValuesMap.get(value) || value);\n\t\t});\n\t\treturn selectedRawValues;\n\t}\n\n\tsetFullDayMode(fullDayMode)\n\t{\n\t\tif (fullDayMode !== this.fullDayMode)\n\t\t{\n\t\t\tthis.fullDayMode = fullDayMode;\n\t\t\tthis.values = this.getValues();\n\t\t}\n\t}\n\n\tshowPopup(params = {})\n\t{\n\t\tconst _this = this;\n\t\tconst menuItems = [];\n\n\t\tthis.values.forEach((item) => {\n\t\t\tif (item.mode === 'time-menu'\n\t\t\t\t|| item.mode === 'custom-reminder'\n\t\t\t\t|| !BX.util.in_array(item.value, this.selectedValues))\n\t\t\t{\n\t\t\t\tlet menuItem = {};\n\n\t\t\t\tif (item.dataset && item.dataset.mode === 'time-menu')\n\t\t\t\t{\n\t\t\t\t\tmenuItem.id = item.id;\n\t\t\t\t\tlet defaultReminderTime = Util.getTimeByInt(this.defaultReminderTime);\n\n\t\t\t\t\tmenuItem.text = item.label.replace('#TIME#', Util.formatTime(defaultReminderTime.hour, defaultReminderTime.min));\n\n\t\t\t\t\tmenuItem.dataset = BX.util.objectMerge({\n\t\t\t\t\t\ttype: 'submenu-list',\n\t\t\t\t\t\tvalue: this.defaultReminderTime\n\t\t\t\t\t}, item.dataset);\n\n\t\t\t\t\tmenuItem.items = this.getSubmenuTimeValues(menuItem, item.label, params);\n\n\t\t\t\t\tmenuItem.onclick = (function ()\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.addValue({\n\t\t\t\t\t\t\t\tbefore: item.dataset.daysBefore,\n\t\t\t\t\t\t\t\ttime: item.dataset.time\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tBX.defer(function(){_this.reminderMenu.close();}, _this)();\n\t\t\t\t\t\t\tif (Type.isFunction(params.addValueCallback))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tparams.addValueCallback();\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}\n\t\t\t\telse if (item.dataset && item.dataset.mode === 'custom')\n\t\t\t\t{\n\t\t\t\t\tmenuItem.id = 'custom-reminder';\n\t\t\t\t\tmenuItem.text = item.label;\n\t\t\t\t\tmenuItem.items = [{ id: 'tmp', text: '' }];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tmenuItem.text = item.label;\n\t\t\t\t\tmenuItem.onclick = (function (value, mode)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\t_this.addValue(value);\n\t\t\t\t\t\t\t_this.reminderMenu.close();\n\t\t\t\t\t\t\tif (Type.isFunction(params.addValueCallback))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tparams.addValueCallback();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})(item.value, item.mode);\n\t\t\t\t}\n\n\t\t\t\tmenuItems.push(menuItem);\n\t\t\t}\n\t\t}, this);\n\n\t\tthis.reminderMenu = MenuManager.create(\n\t\t\tthis.id,\n\t\t\tparams.bindTarget || this.DOM.addButton,\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: 9,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tlet adjustSubmenuPopup = this.adjustSubmenuPopup.bind(this);\n\t\tlet closeSubmenuPopup = this.closeSubmenuPopup.bind(this);\n\t\tEventEmitter.subscribe('BX.Main.Popup:onShow', adjustSubmenuPopup);\n\t\tEventEmitter.subscribe('BX.Main.Popup:onClose', closeSubmenuPopup);\n\n\t\tthis.reminderMenu.popupWindow.subscribe('onClose', () => {\n\t\t\tEventEmitter.unsubscribe('BX.Main.Popup:onShow', adjustSubmenuPopup);\n\t\t\tEventEmitter.unsubscribe('BX.Main.Popup:onClose', closeSubmenuPopup);\n\t\t});\n\t\tthis.reminderMenu.show();\n\t}\n\n\tgetSubmenuTimeValues(parentItem, parentItemMessage, params)\n\t{\n\t\tlet menuItems = [];\n\t\tReminder.getTimeValueList(60).forEach(function(menuItem)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\tid: 'time-' + menuItem.value,\n\t\t\t\tdataset: {\n\t\t\t\t\tvalue: menuItem.value,\n\t\t\t\t\tdaysBefore: parentItem.dataset.daysBefore\n\t\t\t\t},\n\t\t\t\ttext: menuItem.label,\n\t\t\t\tonclick: function(e, item)\n\t\t\t\t{\n\t\t\t\t\tlet time = Util.getTimeByInt(item.dataset.value);\n\t\t\t\t\tlet parentMenuItem = this.reminderMenu.getMenuItem(parentItem.id);\n\t\t\t\t\tif (parentMenuItem)\n\t\t\t\t\t{\n\t\t\t\t\t\tparentMenuItem.setText(parentItemMessage.replace('#TIME#', Util.formatTime(time.hour, time.min)));\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.addValue({\n\t\t\t\t\t\ttime: item.dataset.value,\n\t\t\t\t\t\tbefore: item.dataset.daysBefore\n\t\t\t\t\t});\n\n\t\t\t\t\tBX.defer(function(){this.reminderMenu.close();}, this)();\n\t\t\t\t\tif (Type.isFunction(params.addValueCallback))\n\t\t\t\t\t{\n\t\t\t\t\t\tparams.addValueCallback();\n\t\t\t\t\t}\n\n\t\t\t\t}.bind(this)\n\t\t\t});\n\t\t}, this);\n\t\treturn menuItems;\n\t}\n\n\taddValue(value, emitChanges = true, changedByUser = true)\n\t{\n\t\tlet item;\n\t\tconst formattedValue = Reminder.formatValue(value);\n\n\t\tif (Type.isPlainObject(value) && value.count)\n\t\t{\n\t\t\tvalue = parseInt(formattedValue);\n\t\t}\n\n\t\tif (Type.isPlainObject(value) && !this.selectedValues.includes(formattedValue))\n\t\t{\n\t\t\tif (Type.isInteger(parseInt(value.before)) && Type.isInteger(parseInt(value.time)))\n\t\t\t{\n\t\t\t\titem = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t\t<span class=\"calendar-reminder-item\">\n\t\t\t\t\t\t<span class=\"calendar-reminder-item-title\">\n\t\t\t\t\t\t\t${Reminder.getReminderLabel(value)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</span>`);\n\n\t\t\t\tif (!this.viewMode)\n\t\t\t\t{\n\t\t\t\t\titem.appendChild(Tag.render`<span class=\"calendar-reminder-clear-icon\" data-bxc-value=\"${formattedValue}\"/>`);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (value.type === 'date' && Type.isDate(value.value))\n\t\t\t{\n\t\t\t\titem = this.DOM.wrap.appendChild(Tag.render`<span class=\"calendar-reminder-item\">\n\t\t\t\t\t<span class=\"calendar-reminder-item-title\">\n\t\t\t\t\t\t${Util.formatDateUsable(value.value) + ' ' + Util.formatTime(value.value)}\n\t\t\t\t\t</span>\n\t\t\t\t</span>`);\n\n\t\t\t\tif (!this.viewMode)\n\t\t\t\t{\n\t\t\t\t\titem.appendChild(Tag.render`<span class=\"calendar-reminder-clear-icon\" data-bxc-value=\"${formattedValue}\"/>`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.selectedValues.push(formattedValue);\n\t\t\tthis.controlList[formattedValue] = item;\n\t\t\tthis.rawValuesMap.set(formattedValue, value);\n\t\t}\n\t\telse if (parseInt(value) >= 0 && !this.selectedValues.includes(formattedValue))\n\t\t{\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 === parseInt(value))\n\t\t\t\t{\n\t\t\t\t\titem = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t\t<span class=\"calendar-reminder-item\">\n\t\t\t\t\t\t<span class=\"calendar-reminder-item-title\">\n\t\t\t\t\t\t\t${this.values[i].shortLabel || this.values[i].label}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</span>`);\n\n\t\t\t\t\tif (!this.viewMode)\n\t\t\t\t\t{\n\t\t\t\t\t\titem.appendChild(Tag.render`<span class=\"calendar-reminder-clear-icon\" data-bxc-value=\"${formattedValue}\"/>`);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.selectedValues.push(formattedValue);\n\t\t\t\t\tthis.controlList[formattedValue] = item;\n\t\t\t\t\tthis.rawValuesMap.set(formattedValue, value);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (item === undefined)\n\t\t\t{\n\t\t\t\titem = this.DOM.wrap.appendChild(Dom.create('SPAN', {\n\t\t\t\t\tprops: {className: 'calendar-reminder-item'},\n\t\t\t\t\ttext: Reminder.getText(value)\n\t\t\t\t}));\n\n\t\t\t\tif (!this.viewMode)\n\t\t\t\t{\n\t\t\t\t\titem.appendChild(Dom.create('SPAN', {\n\t\t\t\t\t\tprops: {className: 'calendar-reminder-clear-icon'},\n\t\t\t\t\t\tevents: {click: function(){this.removeValue(value);}.bind(this)}\n\t\t\t\t\t}));\n\t\t\t\t}\n\n\t\t\t\tthis.selectedValues.push(value);\n\t\t\t\tthis.controlList[value] = item;\n\t\t\t\tthis.rawValuesMap.set(value, value);\n\t\t\t}\n\t\t}\n\n\t\tif (this.changeCallack)\n\t\t{\n\t\t\tthis.changeCallack(this.selectedValues);\n\t\t}\n\n\t\tif (emitChanges)\n\t\t{\n\t\t\tthis.emit('onChange', new BaseEvent({data: {values: this.selectedValues}}));\n\t\t}\n\t\tthis.changedByUser = emitChanges && changedByUser;\n\n\t\tif (Type.isElementNode(this.DOM.addButton))\n\t\t{\n\t\t\tthis.DOM.wrap.appendChild(this.DOM.addButton);\n\t\t}\n\t}\n\n\tremoveValue(value, emitChanges = true)\n\t{\n\t\tif (this.controlList[value] && Type.isDomNode(this.controlList[value]))\n\t\t{\n\t\t\tDom.remove(this.controlList[value]);\n\t\t}\n\t\tthis.selectedValues = BX.util.deleteFromArray(this.selectedValues, BX.util.array_search(value, this.selectedValues));\n\n\t\tif (this.changeCallack)\n\t\t{\n\t\t\tthis.changeCallack(this.selectedValues);\n\t\t}\n\n\t\tif (emitChanges)\n\t\t{\n\t\t\tthis.emit('onChange', new BaseEvent({data: {values: this.selectedValues}}));\n\t\t\tthis.changedByUser = true;\n\t\t}\n\t}\n\n\tstatic getTimeValueList(mode = 30)\n\t{\n\t\tif (!Reminder.timeValueList)\n\t\t{\n\t\t\tReminder.timeValueList = [];\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < 24; i++)\n\t\t\t{\n\t\t\t\tReminder.timeValueList.push({value: i * 60, label: Util.formatTime(i, 0)});\n\t\t\t\tif (mode <= 30)\n\t\t\t\t{\n\t\t\t\t\tReminder.timeValueList.push({value: i * 60 + 30, label: Util.formatTime(i, 30)});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Reminder.timeValueList;\n\t}\n\n\thandleClick(e)\n\t{\n\t\tlet target = e.target || e.srcElement;\n\t\tlet remValue = target.getAttribute('data-bxc-value');\n\n\t\tif (!Type.isNull(remValue) && this.selectedValues.includes(remValue))\n\t\t{\n\t\t\tthis.removeValue(remValue);\n\t\t}\n\n\t\tif (Dom.hasClass(target, 'calendar-reminder-item-title'))\n\t\t{\n\t\t\tthis.showPopup({\n\n\t\t\t\tbindTarget: target,\n\t\t\t\taddValueCallback: ()=>{\n\t\t\t\t\tconst removeIcon = target.parentNode.querySelector('.calendar-reminder-clear-icon');\n\t\t\t\t\tif (Type.isElementNode(removeIcon)\n\t\t\t\t\t\t&& !Type.isNull(removeIcon.getAttribute('data-bxc-value')))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.removeValue(removeIcon.getAttribute('data-bxc-value'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic inputCalendarClosePopupHandler(e)\n\t{\n\t\tBX.onCustomEvent(window, 'onCalendarControlChildPopupClosed');\n\t}\n\n\tstatic getReminderLabel(value)\n\t{\n\t\tlet label = '';\n\t\tvalue.before = parseInt(value.before);\n\t\tvalue.time = parseInt(value.time);\n\t\tif (Type.isInteger(value.before) && Type.isInteger(value.time) && [0, 1, 2].includes(value.before))\n\t\t{\n\t\t\tlet time = Util.getTimeByInt(value.time);\n\n\t\t\tlabel = Loc.getMessage('EC_REMIND1_DAY_' + value.before + '_SHORT').replace('#TIME#', Util.formatTime(time.hour, time.min))\n\t\t}\n\t\treturn label;\n\t}\n\n\t// Used to scroll into view and highlight default item in time menu\n\tadjustSubmenuPopup(event)\n\t{\n\t\tif (event instanceof BaseEvent)\n\t\t{\n\t\t\tlet submenuPopup = event.getTarget();\n\n\t\t\tif (submenuPopup instanceof Popup)\n\t\t\t{\n\t\t\t\tif (/^menu-popup-popup-submenu-time-menu-day-\\d$/.test(submenuPopup.getId()))\n\t\t\t\t{\n\t\t\t\t\tthis.adjustTimeSubmenuPopup(submenuPopup);\n\t\t\t\t}\n\t\t\t\telse if (/^menu-popup-popup-submenu-custom-reminder$/.test(submenuPopup.getId()))\n\t\t\t\t{\n\t\t\t\t\tthis.adjustCalendarSubmenuPopup(submenuPopup);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcloseSubmenuPopup(event)\n\t{\n\t\tif (event instanceof BaseEvent)\n\t\t{\n\t\t\tlet submenuPopup = event.getTarget();\n\n\t\t\tif (submenuPopup instanceof Popup)\n\t\t\t{\n\t\t\t\tif (/^menu-popup-popup-submenu-time-menu-day-\\d$/.test(submenuPopup.getId()))\n\t\t\t\t{\n\t\t\t\t}\n\t\t\t\telse if (/^menu-popup-popup-submenu-custom-reminder$/.test(submenuPopup.getId()))\n\t\t\t\t{\n\t\t\t\t\tlet layout = submenuPopup.bindElement;\n\t\t\t\t\tlet textNode = layout.querySelector('.menu-popup-item-text');\n\n\t\t\t\t\tif (Type.isDomNode(textNode))\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.clean(textNode);\n\t\t\t\t\t\ttextNode.innerHTML = Loc.getMessage(\"EC_REMIND1_CUSTOM\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tadjustTimeSubmenuPopup(popup)\n\t{\n\t\tlet selectedMenuItem = popup.getContentContainer().querySelector('span[data-value=\"' + this.defaultReminderTime + '\"]');\n\t\tif (Type.isDomNode(selectedMenuItem))\n\t\t{\n\t\t\tsetTimeout(()=>{\n\t\t\t\tpopup.getContentContainer().scrollTop = parseInt(selectedMenuItem.offsetTop) - 10;\n\t\t\t\tDom.addClass(selectedMenuItem, 'menu-popup-item-open');\n\t\t\t}, 50);\n\t\t}\n\t}\n\n\tadjustCalendarSubmenuPopup(popup)\n\t{\n\t\tlet layout = popup.bindElement;\n\n\t\tlet textNode = layout.querySelector('.menu-popup-item-text');\n\t\tif (Type.isDomNode(textNode))\n\t\t{\n\t\t\tDom.clean(textNode);\n\t\t\tconst input = textNode.appendChild(Tag.render`<input id=\"inp-${Math.round(Math.random() * 100000)}\" type=\"text\" class=\"calendar-field calendar-field-datetime\" value=\"\" autocomplete=\"off\" placeholder=\"${Loc.getMessage('EC_REMIND1_CUSTOM_PLACEHOLDER')}\"/>`);\n\t\t\tconst calendarControl = BX.calendar.get();\n\n\t\t\t// Hacks for BX.calendar - it works as singleton and has troubles with using inside menupopups\n\t\t\t// We trying to reinitialize it everytime\n\t\t\tif (calendarControl.popup)\n\t\t\t{\n\t\t\t\tcalendarControl.popup.destroy();\n\t\t\t\tcalendarControl.popup = null;\n\t\t\t\tcalendarControl._current_layer = null;\n\t\t\t\tcalendarControl._layers = {};\n\t\t\t}\n\t\t\tif (calendarControl.popup_month)\n\t\t\t{\n\t\t\t\tcalendarControl.popup_month.destroy();\n\t\t\t\tcalendarControl.popup_month = null;\n\t\t\t}\n\t\t\tif (calendarControl.popup_year)\n\t\t\t{\n\t\t\t\tcalendarControl.popup_year.destroy();\n\t\t\t\tcalendarControl.popup_year = null;\n\t\t\t}\n\n\t\t\tcalendarControl.Show({\n\t\t\t\tnode: input,\n\t\t\t\tvalue: Util.formatDateTime(Util.getUsableDateTime(new Date())),\n\t\t\t\tfield: input,\n\t\t\t\tbTime: true,\n\t\t\t\tbHideTime: false,\n\t\t\t});\n\n\t\t\tlet calendarPopup = calendarControl.popup;\n\t\t\tcalendarPopup.cacheable = false;\n\t\t\tif (calendarPopup && calendarPopup.popupContainer)\n\t\t\t{\n\t\t\t\tlet calendarWrap = calendarPopup.popupContainer.querySelector('.bx-calendar');\n\t\t\t\tif (Type.isDomNode(calendarWrap))\n\t\t\t\t{\n\t\t\t\t\tpopup.contentContainer.appendChild(calendarWrap);\n\t\t\t\t}\n\t\t\t\tcalendarPopup.close();\n\t\t\t\tMenuManager.destroy(calendarPopup.uniquePopupId);\n\t\t\t}\n\n\t\t\tEvent.bind(input, 'change', () => {\n\t\t\t\tlet\n\t\t\t\t\tvalue = input.value,\n\t\t\t\t\tdateValue = Util.parseDate(value);\n\n\t\t\t\tif (Type.isDate(dateValue))\n\t\t\t\t{\n\t\t\t\t\tthis.addValue({type: 'date', value: dateValue});\n\t\t\t\t\tthis.reminderMenu.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tsetViewMode(viewMode)\n\t{\n\t\tthis.viewMode = viewMode;\n\n\t\tif (this.viewMode)\n\t\t{\n\t\t\tDom.addClass(this.DOM.wrap, 'calendar-reminder-readonly');\n\t\t\tif (Type.isElementNode(this.DOM.addButton))\n\t\t\t{\n\t\t\t\tthis.DOM.addButton.style.display = 'none';\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.DOM.wrap, 'calendar-reminder-readonly');\n\t\t}\n\t}\n\n\twasChangedByUser()\n\t{\n\t\treturn this.changedByUser;\n\t}\n\n\tstatic getText(value)\n\t{\n\t\tlet\n\t\t\ttempValue = value,\n\t\t\tdividers = [60, 24], //list of time dividers\n\t\t\tmessageCodes = ['EC_REMIND1_MIN_COUNT', 'EC_REMIND1_HOUR_COUNT', 'EC_REMIND1_DAY_COUNT'],\n\t\t\tresult = '';\n\n\t\tfor (let i = 0; i < messageCodes.length; i++)\n\t\t{\n\t\t\tif (tempValue < dividers[i] || i === dividers.length)\n\t\t\t{\n\t\t\t\tresult = Loc.getMessage(messageCodes[i]).toString();\n\t\t\t\tresult = result.replace('\\#COUNT\\#', tempValue.toString());\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttempValue = Math.ceil(tempValue / dividers[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic formatValue(remindValue)\n\t{\n\t\tif (Type.isPlainObject(remindValue)\n\t\t\t&& Type.isInteger(parseInt(remindValue.before))\n\t\t\t&& Type.isInteger(parseInt(remindValue.time)))\n\t\t{\n\t\t\treturn 'daybefore|' + remindValue.before + '|' + remindValue.time;\n\t\t}\n\t\telse if (Type.isPlainObject(remindValue) && Type.isDate(remindValue.value))\n\t\t{\n\t\t\treturn 'date|' + Util.formatDateTime(remindValue.value);\n\t\t}\n\t\telse if (Type.isPlainObject(remindValue) && remindValue.type)\n\t\t{\n\t\t\tif (remindValue.type === 'min')\n\t\t\t{\n\t\t\t\treturn remindValue.count.toString();\n\t\t\t}\n\t\t\tif (remindValue.type === 'hour')\n\t\t\t{\n\t\t\t\treturn (parseInt(remindValue.count) * 60).toString();\n\t\t\t}\n\t\t\tif (remindValue.type === 'day')\n\t\t\t{\n\t\t\t\treturn (parseInt(remindValue.count) * 60 * 24).toString();\n\t\t\t}\n\t\t}\n\n\t\treturn remindValue.toString();\n\t}\n}\n","import { Tag, Type, Loc, Dom, Event, Text, Runtime } from 'main.core';\nimport { RoomsManager, RoomsSection } from 'calendar.roomsmanager';\nimport { CategoryManager } from 'calendar.categorymanager';\nimport { EventEmitter } from 'main.core.events';\nimport { Util } from 'calendar.util';\nimport { SelectInput } from 'calendar.controls';\nimport { FeaturePromotersRegistry } from 'ui.info-helper';\n\nexport class Location\n{\n\tstatic locationList = [];\n\tstatic meetingRoomList = [];\n\tstatic currentRoomCapacity = 0;\n\tstatic accessibility = [];\n\tstatic DAY_LENGTH = 86_400_000;\n\tstatic instances = [];\n\tdatesRange = [];\n\tviewMode = false;\n\n\tconstructor(params)\n\t{\n\t\tthis.params = params;\n\t\tthis.id = params.id || `location-${Math.round(Math.random() * 1_000_000)}`;\n\t\tthis.zIndex = params.zIndex || 3100;\n\n\t\tthis.DOM = {\n\t\t\twrapNode: params.wrap,\n\t\t};\n\t\tthis.roomsManager = params.roomsManager || null;\n\t\tthis.locationAccess = params.locationAccess || false;\n\t\tthis.readOnly = params.readOnly || false;\n\t\tthis.disabled = !params.richLocationEnabled;\n\t\tthis.hideLocationLock = params.hideLocationLock;\n\t\tthis.value = { type: '', text: '', value: '' };\n\t\tthis.isLoading = false;\n\t\tthis.inlineEditModeEnabled = params.inlineEditModeEnabled;\n\t\tthis.meetingRooms = params.iblockMeetingRoomList || [];\n\t\tLocation.setMeetingRoomList(params.iblockMeetingRoomList);\n\t\tLocation.setLocationList(params.locationList);\n\t\tif (!this.disabled)\n\t\t{\n\t\t\tthis.default = this.setDefaultRoom(params.locationList) || '';\n\t\t}\n\t\tthis.create();\n\t\tthis.setViewMode(params.viewMode === true);\n\t\tthis.processValue();\n\t\tthis.setCategoryManager();\n\t\tthis.setValuesDebounced = BX.debounce(this.setValues.bind(this), 100);\n\t\tthis.updateAccessibilityDebounce = Runtime.debounce(this.updateAccessibility.bind(this), 100);\n\t\tLocation.instances.push(this);\n\t}\n\n\tcreate()\n\t{\n\t\tthis.DOM.wrapNode.style.display = 'flex';\n\t\tthis.DOM.inputWrap = this.DOM.wrapNode.appendChild(Tag.render`\n\t\t\t<div class=\"calendar-field-block\"></div>\n\t\t`);\n\n\t\tthis.DOM.alertIconLocation = Tag.render`\n\t\t\t<div class=\"ui-alert-icon-danger calendar-location-alert-icon\" data-hint-no-icon=\"Y\" data-hint=\"${Loc.getMessage('EC_LOCATION_OVERFLOW')}\">\n\t\t\t<i></i>\n\t\t\t</div>\n\t\t`;\n\t\tif (this.inlineEditModeEnabled)\n\t\t{\n\t\t\tthis.DOM.inlineEditLinkWrap = this.DOM.wrapNode.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-field-place-link calendar-location-readonly\">${this.DOM.inlineEditLink = Tag.render`\n\t\t\t\t\t<span class=\"calendar-text-link\">${Loc.getMessage('EC_REMIND1_ADD')}</span>\n\t\t\t\t`}\n\t\t\t\t</div>\n\t\t\t`);\n\n\t\t\tthis.DOM.inputWrap.style.display = 'none';\n\n\t\t\tEvent.bind(this.DOM.inlineEditLinkWrap, 'click', () => {\n\t\t\t\tthis.displayInlineEditControls();\n\t\t\t\tthis.selectContol.showPopup();\n\t\t\t});\n\t\t}\n\n\t\tthis.DOM.inputWrapInner = this.DOM.inputWrap.appendChild(Tag.render`\n\t\t\t<div class=\"calendar-event-location-input-wrap-inner\">\n\t\t\t</div>\n\t\t`);\n\n\t\tthis.DOM.input = this.DOM.inputWrapInner.appendChild(Dom.create('INPUT', {\n\t\t\tattrs: {\n\t\t\t\tname: this.params.inputName || '',\n\t\t\t\tplaceholder: this.disabled\n\t\t\t\t\t? Loc.getMessage('EC_LOCATION_PLACEHOLDER_LOCKED')\n\t\t\t\t\t: Loc.getMessage('EC_LOCATION_PLACEHOLDER'),\n\t\t\t\ttype: 'text',\n\t\t\t\tautocomplete: this.disabled ? 'on' : 'off',\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tclassName: 'calendar-field calendar-field-select',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tpaddingRight: `${25}px`,\n\t\t\t\tminWidth: `${300}px`,\n\t\t\t\tmaxWidth: `${300}px`,\n\t\t\t},\n\t\t}));\n\n\t\tif (!this.disabled)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.hideLocationLock)\n\t\t{\n\t\t\tDom.addClass(this.DOM.wrapNode, 'hidden-locked');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.DOM.wrapNode, 'locked');\n\n\t\t\tthis.DOM.lockIcon = Tag.render`\n\t\t\t\t<div class=\"calendar-lock-icon\"></div>\n\t\t\t`;\n\t\t\tEvent.bind(this.DOM.lockIcon, 'click', () => {\n\t\t\t\tFeaturePromotersRegistry.getPromoter({ featureId: 'calendar_location' }).show();\n\t\t\t});\n\n\t\t\tDom.append(this.DOM.lockIcon, this.DOM.inputWrapInner);\n\t\t}\n\t}\n\n\tsetValues()\n\t{\n\t\tthis.addLocationRemoveButton();\n\n\t\tif (!this.categoryManagerFromDB)\n\t\t{\n\t\t\tthis.setValuesDebounced();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.prohibitClick();\n\n\t\tconst menuItemList = [];\n\t\tlet selectedIndex = false;\n\t\tconst meetingRooms = Location.getMeetingRoomList();\n\t\tconst locationList = Location.getLocationList();\n\n\t\tconst roomList = this.createRoomList(locationList);\n\n\t\tthis.categoriesWithRooms = this?.categoryManagerFromDB?.getCategoriesWithRooms(roomList);\n\n\t\tif (Type.isArray(meetingRooms))\n\t\t{\n\t\t\tmeetingRooms.forEach(function(room)\n\t\t\t{\n\t\t\t\troom.ID = Number(room.ID);\n\t\t\t\tmenuItemList.push({\n\t\t\t\t\tID: room.ID,\n\t\t\t\t\tlabel: room.NAME,\n\t\t\t\t\tlabelRaw: room.NAME,\n\t\t\t\t\tvalue: room.ID,\n\t\t\t\t\tcapacity: 0,\n\t\t\t\t\ttype: 'mr',\n\t\t\t\t});\n\n\t\t\t\tif (\n\t\t\t\t\tthis.value.type === 'mr'\n\t\t\t\t\t&& Number(this.value.value) === room.ID\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tselectedIndex = menuItemList.length - 1;\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tif (menuItemList.length > 0)\n\t\t\t{\n\t\t\t\tmenuItemList.push({ delimiter: true });\n\t\t\t}\n\t\t}\n\n\t\tconst pushRoomToItemList = (room) => {\n\t\t\troom.id = parseInt(room.id);\n\t\t\troom.location_id = parseInt(room.location_id);\n\t\t\tconst isSelected = parseInt(this.value.value) === parseInt(room.id);\n\t\t\tmenuItemList.push({\n\t\t\t\tID: room.id,\n\t\t\t\tLOCATION_ID: room.location_id,\n\t\t\t\tlabel: room.name,\n\t\t\t\tcapacity: parseInt(room.capacity) || 0,\n\t\t\t\tcolor: room.color,\n\t\t\t\treserved: room.reserved || false,\n\t\t\t\tlabelRaw: room.name,\n\t\t\t\tlabelCapacity: this.getCapacityMessage(room.capacity),\n\t\t\t\tvalue: room.id,\n\t\t\t\ttype: 'calendar',\n\t\t\t\tselected: isSelected,\n\t\t\t});\n\n\t\t\tif (this.value.type === 'calendar' && isSelected)\n\t\t\t{\n\t\t\t\tselectedIndex = menuItemList.length - 1;\n\t\t\t}\n\t\t};\n\n\t\tif (Type.isObject(this.categoriesWithRooms))\n\t\t{\n\t\t\tif (this.categoriesWithRooms.categories.length > 0 || this.categoriesWithRooms.default.length > 0)\n\t\t\t{\n\t\t\t\tthis.categoriesWithRooms.categories.forEach((category) => {\n\t\t\t\t\tif (category.rooms.length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuItemList.push({\n\t\t\t\t\t\t\ttext: category.name,\n\t\t\t\t\t\t\tdelimiter: true,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tcategory.rooms.forEach((room) => pushRoomToItemList(room));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (this.categoriesWithRooms.default.length > 0)\n\t\t\t\t{\n\t\t\t\t\tmenuItemList.push({\n\t\t\t\t\t\tclassName: 'calendar-popup-window-delimiter-default-category',\n\t\t\t\t\t\tdelimiter: true,\n\t\t\t\t\t});\n\t\t\t\t\tthis.categoriesWithRooms.default.forEach((room) => pushRoomToItemList(room));\n\t\t\t\t}\n\n\t\t\t\tif (this.locationAccess)\n\t\t\t\t{\n\t\t\t\t\tthis.loadRoomSlider();\n\t\t\t\t\tmenuItemList.push({ delimiter: true });\n\t\t\t\t\tmenuItemList.push({\n\t\t\t\t\t\tlabel: Loc.getMessage('EC_LOCATION_MEETING_ROOM_SET'),\n\t\t\t\t\t\tcallback: this.openRoomsSlider.bind(this),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t\tif (this.locationAccess)\n\t\t\t\t{\n\t\t\t\t\tthis.loadRoomSlider();\n\t\t\t\t\tmenuItemList.push({\n\t\t\t\t\t\tlabel: Loc.getMessage('EC_ADD_LOCATION'),\n\t\t\t\t\t\tcallback: this.openRoomsSlider.bind(this),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t}\n\n\t\tlet disabledControl = this.disabled;\n\t\tif (menuItemList.length === 0)\n\t\t{\n\t\t\tdisabledControl = true;\n\t\t}\n\n\t\tthis.processValue();\n\n\t\tthis.menuItemList = menuItemList;\n\t\tconst selectControlCreated = this.selectContol;\n\t\tthis.selectContol ??= new SelectInput({\n\t\t\tinput: this.DOM.input,\n\t\t\tvalues: menuItemList,\n\t\t\tvalueIndex: selectedIndex,\n\t\t\tzIndex: this.zIndex,\n\t\t\tdisabled: disabledControl,\n\t\t\tminWidth: 300,\n\t\t\tonChangeCallback: () => {\n\t\t\t\t// eslint-disable-next-line no-shadow\n\t\t\t\tconst menuItemList = this.menuItemList;\n\n\t\t\t\tEventEmitter.emit('Calendar.LocationControl.onValueChange');\n\t\t\t\tconst value = this.DOM.input.value;\n\t\t\t\tthis.value = { text: value };\n\t\t\t\tfor (const element of menuItemList)\n\t\t\t\t{\n\t\t\t\t\tif (element.labelRaw === value)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.value.type = element.type;\n\t\t\t\t\t\tthis.value.value = element.value;\n\t\t\t\t\t\tLocation.setCurrentCapacity(element.capacity);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (Type.isFunction(this.params.onChangeCallback))\n\t\t\t\t{\n\t\t\t\t\tthis.params.onChangeCallback();\n\t\t\t\t}\n\n\t\t\t\tif (this.value.text === '')\n\t\t\t\t{\n\t\t\t\t\tthis.removeLocationRemoveButton();\n\t\t\t\t}\n\t\t\t\tthis.addLocationRemoveButton();\n\n\t\t\t\tmenuItemList.forEach((location) => {\n\t\t\t\t\tlocation.selected = (location.value === this.value.value);\n\t\t\t\t});\n\t\t\t\tthis.selectContol.setValueList(menuItemList);\n\n\t\t\t\tthis.allowClick();\n\t\t\t},\n\t\t\tonPopupShowCallback: () => {\n\t\t\t\tif (this.getShouldCheckLocationAccessibility())\n\t\t\t\t{\n\t\t\t\t\tthis.checkLocationAccessibility(this.accessibilityParams);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\tthis.selectContol.setValueList(menuItemList);\n\t\tthis.selectContol.setValue({\n\t\t\tvalueIndex: selectedIndex,\n\t\t});\n\t\tthis.selectContol.setDisabled(disabledControl);\n\n\t\tif (!selectControlCreated)\n\t\t{\n\t\t\tthis.setLoading(this.isLoading);\n\t\t}\n\n\t\tthis.allowClick();\n\t}\n\n\tprocessValue()\n\t{\n\t\tif (this.value)\n\t\t{\n\t\t\tthis.DOM.input.value = this.value.str || this.value.text || '';\n\t\t\tif (\n\t\t\t\tthis.value.type\n\t\t\t\t&& (\n\t\t\t\t\tthis.value.str === this.getTextLocation(this.value)\n\t\t\t\t\t|| this.getTextLocation(this.value) === Loc.getMessage('EC_LOCATION_EMPTY')\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.DOM.input.value = '';\n\t\t\t\tthis.value = '';\n\t\t\t}\n\n\t\t\tfor (const locationListElement of Location.locationList)\n\t\t\t{\n\t\t\t\tif (parseInt(locationListElement.ID) === this.value.room_id)\n\t\t\t\t{\n\t\t\t\t\tLocation.setCurrentCapacity(parseInt(locationListElement.CAPACITY));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsetValuesDebounce()\n\t{\n\t\tthis.setValuesDebounced();\n\t}\n\n\tremoveValue()\n\t{\n\t\tthis.setValue(false, false);\n\t\tthis.selectContol.onChangeCallback();\n\t\tthis.removeLocationRemoveButton();\n\t}\n\n\tremoveLocationRemoveButton()\n\t{\n\t\tif (this.DOM.inputWrap.contains(this.DOM.removeLocationButton))\n\t\t{\n\t\t\tthis.DOM.inputWrap.removeChild(this.DOM.removeLocationButton);\n\t\t}\n\t\telse if (this.DOM.wrapNode.contains(this.DOM.removeLocationButton))\n\t\t{\n\t\t\tthis.DOM.wrapNode.removeChild(this.DOM.removeLocationButton);\n\t\t}\n\n\t\tthis.DOM.removeLocationButton = null;\n\t\tif (Type.isDomNode(this.DOM.inlineEditLink))\n\t\t{\n\t\t\tthis.displayInlineEditControls();\n\t\t}\n\t}\n\n\taddLocationRemoveButton()\n\t{\n\t\tlet wrap = this.DOM.inputWrap;\n\t\tif (this.DOM?.inlineEditLinkWrap?.style.display === '')\n\t\t{\n\t\t\twrap = this.DOM.wrapNode;\n\t\t}\n\n\t\tif (\n\t\t\t(this.value.value || this.value.str || this.value.text)\n\t\t\t&& !this.viewMode\n\t\t\t&& !this.DOM.removeLocationButton\n\t\t\t&& this.value.text !== ''\n\t\t)\n\t\t{\n\t\t\tthis.DOM.removeLocationButton = wrap.appendChild(Tag.render`\n\t\t\t\t<span class=\"calendar-location-clear-btn-wrap calendar-location-readonly\">\n\t\t\t\t\t<span class=\"calendar-location-clear-btn-text\">${Loc.getMessage('EC_LOCATION_CLEAR_INPUT')}</span>\n\t\t\t\t</span>\n\t\t\t`);\n\t\t\tEvent.bind(this.DOM.removeLocationButton, 'click', this.removeValue.bind(this));\n\t\t}\n\t}\n\n\tisShown()\n\t{\n\t\treturn this.selectContol?.shown ?? false;\n\t}\n\n\tsetViewMode(viewMode)\n\t{\n\t\tthis.viewMode = viewMode;\n\t\tif (this.viewMode)\n\t\t{\n\t\t\tDom.addClass(this.DOM.wrapNode, 'calendar-location-readonly');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.DOM.wrapNode, 'calendar-location-readonly');\n\t\t}\n\t}\n\n\taddCapacityAlert()\n\t{\n\t\tif (!Dom.hasClass(this.DOM.input, 'calendar-field-location-select-border'))\n\t\t{\n\t\t\tDom.addClass(this.DOM.input, 'calendar-field-location-select-border');\n\t\t}\n\n\t\tif (Type.isDomNode(this.DOM.alertIconLocation))\n\t\t{\n\t\t\tUtil.initHintNode(this.DOM.alertIconLocation);\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tthis.DOM.inputWrapInner.after(this.DOM.alertIconLocation);\n\t\t}, 200);\n\t}\n\n\tremoveCapacityAlert()\n\t{\n\t\tif (Dom.hasClass(this.DOM.input, 'calendar-field-location-select-border'))\n\t\t{\n\t\t\tDom.removeClass(this.DOM.input, 'calendar-field-location-select-border');\n\t\t}\n\n\t\tif (this.DOM.alertIconLocation.parentNode === this.DOM.inputWrap)\n\t\t{\n\t\t\tDom.remove(this.DOM.alertIconLocation);\n\t\t}\n\t}\n\n\tgetCapacityMessage(capacity)\n\t{\n\t\tlet suffix;\n\t\tif (\n\t\t\t(capacity % 100 > 10)\n\t\t\t&& (capacity % 100 < 20)\n\t\t)\n\t\t{\n\t\t\tsuffix = 5;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsuffix = capacity % 10;\n\t\t}\n\n\t\treturn Loc.getMessage(`EC_LOCATION_CAPACITY_${suffix}`, { '#NUM#': capacity });\n\t}\n\n\tgetShouldCheckLocationAccessibility(): boolean\n\t{\n\t\treturn this.shouldCheckLocationAccessibility;\n\t}\n\n\tsetShouldCheckLocationAccessibility(shouldCheck: boolean): void\n\t{\n\t\tthis.shouldCheckLocationAccessibility = shouldCheck;\n\t}\n\n\tcheckLocationAccessibility(params)\n\t{\n\t\tthis.accessibilityParams = params;\n\t\tthis.setLoading(true);\n\t\tthis.updateAccessibilityDebounce();\n\t}\n\n\tupdateAccessibility()\n\t{\n\t\tif (this.readOnly)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst params = this.accessibilityParams;\n\t\tthis.getLocationAccessibility(params.from, params.to).then(() => {\n\t\t\tconst timezone = (params.timezone && params.timezone !== '')\n\t\t\t\t? params.timezone\n\t\t\t\t: Util.getUserSettings().timezoneName\n\t\t\t;\n\t\t\tconst timezoneOffset = Util.getTimeZoneOffset(timezone) * 60 * 1000;\n\t\t\tconst fromTs = new Date(params.from.getTime() + timezoneOffset).getTime();\n\t\t\tlet toTs = new Date(params.to.getTime() + timezoneOffset).getTime();\n\t\t\tif (params.fullDay)\n\t\t\t{\n\t\t\t\ttoTs += Location.DAY_LENGTH;\n\t\t\t}\n\n\t\t\tfor (const index in Location.locationList)\n\t\t\t{\n\t\t\t\tLocation.locationList[index].reserved = false;\n\t\t\t\tconst roomId = Location.locationList[index].ID;\n\t\t\t\tfor (const date of this.datesRange)\n\t\t\t\t{\n\t\t\t\t\tif (\n\t\t\t\t\t\tType.isUndefined(Location.accessibility[date])\n\t\t\t\t\t\t|| !Type.isArrayFilled(Location.accessibility[date][roomId])\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (const event of Location.accessibility[date][roomId])\n\t\t\t\t\t{\n\t\t\t\t\t\tif (parseInt(event.PARENT_ID, 10) === parseInt(params.currentEventId, 10))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet eventTimezoneOffset = 0;\n\t\t\t\t\t\tif (event.DT_SKIP_TIME === 'N')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\teventTimezoneOffset = Util.getTimeZoneOffset(event.TZ_FROM) * 60 * 1000;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst eventTsFrom = new Date(Util.parseDate(event.DATE_FROM).getTime() + eventTimezoneOffset).getTime();\n\t\t\t\t\t\tlet eventTsTo = new Date(Util.parseDate(event.DATE_TO).getTime() + eventTimezoneOffset).getTime();\n\t\t\t\t\t\tif (event.DT_SKIP_TIME === 'Y')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\teventTsTo += Location.DAY_LENGTH;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (eventTsFrom < toTs && eventTsTo > fromTs)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation.locationList[index].reserved = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Location.locationList[index].reserved)\n\t\t\t\t\t{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.setValues();\n\t\t\tthis.setLoading(false);\n\t\t});\n\t}\n\n\tsetLoading(isLoading)\n\t{\n\t\tthis.isLoading = isLoading;\n\t\tthis.selectContol?.setLoading(isLoading);\n\t}\n\n\tgetLocationAccessibility(from, to)\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.datesRange = Location.getDatesRange(from, to);\n\t\t\tlet isCheckedAccessibility = true;\n\n\t\t\tfor (const date of this.datesRange)\n\t\t\t{\n\t\t\t\tif (Type.isUndefined(Location.accessibility[date]))\n\t\t\t\t{\n\t\t\t\t\tisCheckedAccessibility = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isCheckedAccessibility)\n\t\t\t{\n\t\t\t\tresolve(Location.accessibility, this.datesRange);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tBX.ajax.runAction('calendar.api.locationajax.getLocationAccessibility', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdatesRange: this.datesRange,\n\t\t\t\t\t\tlocationList: Location.locationList,\n\t\t\t\t\t},\n\t\t\t\t}).then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tfor (const date of this.datesRange)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLocation.accessibility[date] = response.data[date];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(Location.accessibility, this.datesRange);\n\t\t\t\t\t},\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tresolve(response.errors);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic handlePull(params)\n\t{\n\t\tconst entry = params.fields;\n\t\tif (!entry.DATE_FROM || !entry.DATE_TO)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst dateFrom = Util.parseDate(entry.DATE_FROM);\n\t\tconst dateTo = Util.parseDate(entry.DATE_TO);\n\t\tconst datesRange = Location.getDatesRange(dateFrom, dateTo);\n\n\t\tconst excludedDates = entry.EXDATE?.split(';');\n\t\tif (Type.isArrayFilled(excludedDates))\n\t\t{\n\t\t\tdatesRange.push(excludedDates.pop());\n\t\t}\n\n\t\tfor (const date of datesRange)\n\t\t{\n\t\t\tif (Location.accessibility[date])\n\t\t\t{\n\t\t\t\tdelete Location.accessibility[date];\n\t\t\t}\n\t\t}\n\n\t\tLocation.instances.forEach((instance) => {\n\t\t\tif (instance.isShown())\n\t\t\t{\n\t\t\t\tinstance.checkLocationAccessibility(instance.accessibilityParams);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tinstance.setShouldCheckLocationAccessibility(true);\n\t\t\t}\n\t\t});\n\t}\n\n\tloadRoomSlider()\n\t{\n\t\tthis.setRoomsManager();\n\t}\n\n\topenRoomsSlider()\n\t{\n\t\tthis.getRoomsInterface()\n\t\t\t.then((RoomsInterface) => {\n\t\t\t\tif (!this.roomsInterface)\n\t\t\t\t{\n\t\t\t\t\tthis.roomsInterface = new RoomsInterface(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcalendarContext: null,\n\t\t\t\t\t\t\treadonly: false,\n\t\t\t\t\t\t\troomsManager: this.roomsManagerFromDB,\n\t\t\t\t\t\t\tcategoryManager: this.categoryManagerFromDB,\n\t\t\t\t\t\t\tisConfigureList: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthis.roomsInterface.show();\n\t\t\t});\n\t}\n\n\tgetTextValue(value)\n\t{\n\t\tif (!value)\n\t\t{\n\t\t\tvalue = this.value;\n\t\t}\n\n\t\tlet res = value.str || value.text || '';\n\t\tif (value && value.type === 'mr')\n\t\t{\n\t\t\tres = `ECMR_${value.value}${value.mrevid ? `_${value.mrevid}` : ''}`;\n\t\t}\n\t\telse if (value && value.type === 'calendar')\n\t\t{\n\t\t\tres = `calendar_${value.value}${value.room_event_id ? `_${value.room_event_id}` : ''}`;\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tgetValue()\n\t{\n\t\treturn this.value;\n\t}\n\n\tsetValue(value, debounced = true)\n\t{\n\t\tif (Type.isPlainObject(value))\n\t\t{\n\t\t\tthis.value.text = value.text || '';\n\t\t\tthis.value.type = value.type || '';\n\t\t\tthis.value.value = value.value || '';\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.value = Location.parseStringValue(value);\n\t\t}\n\n\t\tif (debounced)\n\t\t{\n\t\t\tthis.setValuesDebounce();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setValues();\n\t\t}\n\n\t\tif (this.inlineEditModeEnabled)\n\t\t{\n\t\t\tconst textLocation = this.getTextLocation(this.value);\n\t\t\tthis.DOM.inlineEditLink.innerHTML = Text.encode(textLocation || Loc.getMessage('EC_REMIND1_ADD'));\n\t\t\tif (textLocation)\n\t\t\t{\n\t\t\t\tthis.addLocationRemoveButton();\n\t\t\t}\n\t\t}\n\t}\n\n\t// parseLocation\n\tstatic parseStringValue(str)\n\t{\n\t\tif (!Type.isString(str))\n\t\t{\n\t\t\tstr = '';\n\t\t}\n\n\t\tconst\n\t\t\tres = {\n\t\t\t\ttype: false,\n\t\t\t\tvalue: false,\n\t\t\t\tstr,\n\t\t\t};\n\n\t\tif (str.slice(0, 5) === 'ECMR_')\n\t\t{\n\t\t\tres.type = 'mr';\n\t\t\tconst value = str.split('_');\n\t\t\tif (value.length >= 2)\n\t\t\t{\n\t\t\t\tif (!isNaN(parseInt(value[1])) && parseInt(value[1]) > 0)\n\t\t\t\t{\n\t\t\t\t\tres.value = res.mrid = parseInt(value[1]);\n\t\t\t\t}\n\n\t\t\t\tif (!isNaN(parseInt(value[2])) && parseInt(value[2]) > 0)\n\t\t\t\t{\n\t\t\t\t\tres.mrevid = parseInt(value[2]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (str.slice(0, 9) === 'calendar_')\n\t\t{\n\t\t\tres.type = 'calendar';\n\t\t\tconst value = str.split('_');\n\t\t\tif (value.length >= 2)\n\t\t\t{\n\t\t\t\tif (!isNaN(parseInt(value[1])) && parseInt(value[1]) > 0)\n\t\t\t\t{\n\t\t\t\t\tres.value = res.room_id = parseInt(value[1]);\n\t\t\t\t}\n\n\t\t\t\tif (!isNaN(parseInt(value[2])) && parseInt(value[2]) > 0)\n\t\t\t\t{\n\t\t\t\t\tres.room_event_id = parseInt(value[2]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tgetTextLocation(location)\n\t{\n\t\tconst\n\t\t\tvalue = Type.isPlainObject(location) ? location : Location.parseStringValue(location);\n\t\tlet i; let\n\t\t\tstr = value.str;\n\n\t\tif (Type.isArray(this.meetingRooms) && value.type === 'mr')\n\t\t{\n\t\t\tstr = Loc.getMessage('EC_LOCATION_EMPTY');\n\t\t\tfor (i = 0; i < this.meetingRooms.length; i++)\n\t\t\t{\n\t\t\t\tif (parseInt(value.value) === parseInt(this.meetingRooms[i].ID))\n\t\t\t\t{\n\t\t\t\t\tstr = this.meetingRooms[i].NAME;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isArray(Location.locationList) && value.type === 'calendar')\n\t\t{\n\t\t\tstr = Loc.getMessage('EC_LOCATION_EMPTY');\n\t\t\tfor (i = 0; i < Location.locationList.length; i++)\n\t\t\t{\n\t\t\t\tif (parseInt(value.value) === parseInt(Location.locationList[i].ID))\n\t\t\t\t{\n\t\t\t\t\tstr = Location.locationList[i].NAME;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn str;\n\t}\n\n\tstatic setLocationList(locationList)\n\t{\n\t\tif (Type.isArray(locationList))\n\t\t{\n\t\t\tLocation.locationList = locationList;\n\t\t\tthis.sortLocationList();\n\t\t}\n\t}\n\n\tstatic sortLocationList()\n\t{\n\t\tLocation.locationList.sort((a, b) => {\n\t\t\tif (a.NAME.toLowerCase() > b.NAME.toLowerCase())\n\t\t\t{\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (a.NAME.toLowerCase() < b.NAME.toLowerCase())\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\t}\n\n\tstatic getLocationList()\n\t{\n\t\treturn Location.locationList;\n\t}\n\n\tstatic setMeetingRoomList(meetingRoomList)\n\t{\n\t\tif (Type.isArray(meetingRoomList))\n\t\t{\n\t\t\tLocation.meetingRoomList = meetingRoomList;\n\t\t}\n\t}\n\n\tstatic getMeetingRoomList()\n\t{\n\t\treturn Location.meetingRoomList;\n\t}\n\n\tstatic setLocationAccessibility(accessibility)\n\t{\n\t\tLocation.accessibility = accessibility;\n\t}\n\n\tstatic getLocationAccessibility()\n\t{\n\t\treturn Location.accessibility;\n\t}\n\n\tstatic setCurrentCapacity(capacity)\n\t{\n\t\tLocation.currentRoomCapacity = capacity;\n\t}\n\n\tstatic getCurrentCapacity()\n\t{\n\t\treturn Location.currentRoomCapacity || 0;\n\t}\n\n\tdisplayInlineEditControls()\n\t{\n\t\tthis.DOM.inlineEditLinkWrap.style.display = 'none';\n\t\tthis.DOM.inputWrap.style.display = '';\n\t\tthis.addLocationRemoveButton();\n\t}\n\n\tsetDefaultRoom(locationList)\n\t{\n\t\tif (this.roomsManager && !RoomsManager.isEmpty(locationList))\n\t\t{\n\t\t\tthis.activeRooms = this.roomsManager.getRoomsInfo().active;\n\t\t\tif (RoomsManager.isEmpty(this.activeRooms))\n\t\t\t{\n\t\t\t\tLocation.setCurrentCapacity(parseInt(locationList[0].CAPACITY));\n\n\t\t\t\treturn `calendar_${locationList[0].ID}`;\n\t\t\t}\n\n\t\t\tconst activeRoomId = this.activeRooms[0];\n\t\t\tfor (const locationListElement of locationList)\n\t\t\t{\n\t\t\t\tif (parseInt(locationListElement.ID) === activeRoomId)\n\t\t\t\t{\n\t\t\t\t\tLocation.setCurrentCapacity(parseInt(locationListElement.CAPACITY));\n\n\t\t\t\t\treturn `calendar_${activeRoomId}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn '';\n\t\t}\n\t}\n\n\tgetRoomsInterface()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tconst bx = BX.Calendar.Util.getBX();\n\t\t\tconst extensionName = 'calendar.rooms';\n\t\t\tbx.Runtime.loadExtension(extensionName)\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (bx.Calendar.Rooms.RoomsInterface)\n\t\t\t\t\t{\n\t\t\t\t\t\tresolve(bx.Calendar.Rooms.RoomsInterface);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(`Extension ${extensionName} not found`);\n\t\t\t\t\t\tresolve(bx.Calendar.Rooms.RoomsInterface);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tgetRoomsManager()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tconst bx = BX.Calendar.Util.getBX();\n\t\t\tconst extensionName = 'calendar.roomsmanager';\n\t\t\tbx.Runtime.loadExtension(extensionName)\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (bx.Calendar.RoomsManager)\n\t\t\t\t\t{\n\t\t\t\t\t\tresolve(bx.Calendar.RoomsManager);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(`Extension ${extensionName} not found`);\n\t\t\t\t\t\tresolve(bx.Calendar.RoomsManager);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tgetRoomsManagerData()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.locationajax.getRoomsManagerData')\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tthis.roomsManagerFromDB = new RoomsManager(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsections: response.data.sections,\n\t\t\t\t\t\t\t\trooms: response.data.rooms,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlocationAccess: response.data.config.locationAccess,\n\t\t\t\t\t\t\t\thiddenSections: response.data.config.hiddenSections,\n\t\t\t\t\t\t\t\ttype: response.data.config.type,\n\t\t\t\t\t\t\t\townerId: response.data.config.ownerId,\n\t\t\t\t\t\t\t\tuserId: response.data.config.userId,\n\t\t\t\t\t\t\t\tnew_section_access: response.data.config.defaultSectionAccess,\n\t\t\t\t\t\t\t\tsectionAccessTasks: response.data.config.sectionAccessTasks,\n\t\t\t\t\t\t\t\tshowTasks: response.data.config.showTasks,\n\t\t\t\t\t\t\t\tlocationContext: this, // for updating list of locations in event creation menu\n\t\t\t\t\t\t\t\taccessNames: response.data.config.accessNames,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t// Failure\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tconsole.error('Extension not found');\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t});\n\t}\n\n\tcreateRoomList(locationList)\n\t{\n\t\treturn locationList.map((location) => {\n\t\t\treturn new RoomsSection(location);\n\t\t});\n\t}\n\n\tsetRoomsManager()\n\t{\n\t\tif (!this.roomsManagerFromDB)\n\t\t{\n\t\t\tthis.getRoomsManager()\n\t\t\t\t.then(\n\t\t\t\t\tthis.getRoomsManagerData(),\n\t\t\t\t);\n\t\t}\n\t}\n\n\tgetCategoryManager()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tconst bx = BX.Calendar.Util.getBX();\n\t\t\tconst extensionName = 'calendar.categorymanager';\n\t\t\tbx.Runtime.loadExtension(extensionName)\n\t\t\t\t.then(() => {\n\t\t\t\t\tif (bx.Calendar.CategoryManager)\n\t\t\t\t\t{\n\t\t\t\t\t\tresolve(bx.Calendar.CategoryManager);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(`Extension ${extensionName} not found`);\n\t\t\t\t\t\tresolve(bx.Calendar.CategoryManager);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t});\n\t}\n\n\tgetCategoryManagerData()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.locationajax.getCategoryManagerData')\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tthis.categoryManagerFromDB = new CategoryManager(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcategories: response.data.categories,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tperm: response.data.permissions,\n\t\t\t\t\t\t\t\tlocationContext: this, // for updating list of locations in event creation menu\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t// Failure\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tconsole.error('Extension not found');\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t});\n\t}\n\n\tsetCategoryManager()\n\t{\n\t\tif (this.readOnly)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.categoryManagerFromDB)\n\t\t{\n\t\t\tthis.getCategoryManager().then(this.getCategoryManagerData());\n\t\t}\n\t}\n\n\tprohibitClick()\n\t{\n\t\tif (\n\t\t\tthis.DOM.inlineEditLinkWrap\n\t\t\t&& !Dom.hasClass(this.DOM.inlineEditLinkWrap, 'calendar-location-readonly')\n\t\t)\n\t\t{\n\t\t\tDom.addClass(this.DOM.inlineEditLinkWrap, 'calendar-location-readonly');\n\t\t}\n\n\t\tif (\n\t\t\tthis.DOM.removeLocationButton\n\t\t\t&& !Dom.hasClass(this.DOM.removeLocationButton, 'calendar-location-readonly')\n\t\t)\n\t\t{\n\t\t\tDom.addClass(this.DOM.removeLocationButton, 'calendar-location-readonly');\n\t\t}\n\t}\n\n\tallowClick()\n\t{\n\t\tif (\n\t\t\tthis.DOM.inlineEditLinkWrap\n\t\t\t&& Dom.hasClass(this.DOM.inlineEditLinkWrap, 'calendar-location-readonly')\n\t\t)\n\t\t{\n\t\t\tDom.removeClass(this.DOM.inlineEditLinkWrap, 'calendar-location-readonly');\n\t\t}\n\n\t\tif (\n\t\t\tthis.DOM.removeLocationButton\n\t\t\t&& Dom.hasClass(this.DOM.removeLocationButton, 'calendar-location-readonly')\n\t\t)\n\t\t{\n\t\t\tDom.removeClass(this.DOM.removeLocationButton, 'calendar-location-readonly');\n\t\t}\n\t}\n\n\tstatic getDateInFormat(date)\n\t{\n\t\treturn `${(`0${date.getDate()}`).slice(-2)}.${\n\t\t\t (`0${date.getMonth() + 1}`).slice(-2)}.${\n\t\t\t date.getFullYear()}`;\n\t}\n\n\tstatic getDatesRange(from, to)\n\t{\n\t\tconst fromDate = new Date(from.getTime() - Util.getDayLength());\n\t\tconst toDate = new Date(to.getTime() + Util.getDayLength());\n\t\tlet startDate = fromDate.setHours(0, 0, 0, 0);\n\t\tconst finishDate = toDate.setHours(0, 0, 0, 0);\n\t\tconst result = [];\n\t\twhile (startDate <= finishDate)\n\t\t{\n\t\t\tresult.push(Location.getDateInFormat(new Date(startDate)));\n\t\t\tstartDate += Location.DAY_LENGTH;\n\t\t}\n\n\t\treturn result;\n\t}\n}\n","import {Type, Dom} from 'main.core';\nimport {Util} from 'calendar.util';\n\nexport class UserSelector\n{\n\tconstructor(params = {})\n\t{\n\t\tthis.params = params;\n\t\tthis.id = params.id || 'user_selector_' + Math.round(Math.random() * 1000000);\n\t\tthis.zIndex = params.zIndex || 3100;\n\n\t\tthis.DOM = {\n\t\t\twrapNode: params.wrapNode\n\t\t};\n\t\tthis.destinationInputName = params.inputName || 'EVENT_DESTINATION';\n\n\t\tif (Type.isArray(this.params.itemsSelected) && this.params.itemsSelected.length)\n\t\t{\n\t\t\tthis.params.itemsSelected = this.convertAttendeesCodes(this.params.itemsSelected);\n\t\t}\n\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tlet id = this.id;\n\t\tthis.DOM.socnetDestinationWrap = this.DOM.wrapNode.appendChild(Dom.create('DIV', {\n\t\t\tprops: {className: 'event-grid-dest-wrap'},\n\t\t\tevents: {\n\t\t\t\tclick : (e) => {\n\t\t\t\t\tBX.SocNetLogDestination.openDialog(id);\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\tthis.socnetDestinationItems = this.DOM.socnetDestinationWrap.appendChild(Dom.create('SPAN', {\n\t\t\tprops: {className: ''},\n\t\t\tevents: {\n\t\t\t\tclick : function(e)\n\t\t\t\t{\n\t\t\t\t\tvar targ = e.target || e.srcElement;\n\t\t\t\t\tif (targ.className === 'feed-event-del-but') // Delete button\n\t\t\t\t\t{\n\t\t\t\t\t\ttop.BX.SocNetLogDestination.deleteItem(targ.getAttribute('data-item-id'), targ.getAttribute('data-item-type'), id);\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tmouseover: function(e)\n\t\t\t\t{\n\t\t\t\t\tvar targ = e.target || e.srcElement;\n\t\t\t\t\tif (targ.className === 'feed-event-del-but') // Delete button\n\t\t\t\t\t\tBX.addClass(targ.parentNode, 'event-grid-dest-hover');\n\t\t\t\t},\n\t\t\t\tmouseout: function(e)\n\t\t\t\t{\n\t\t\t\t\tvar targ = e.target || e.srcElement;\n\t\t\t\t\tif (targ.className === 'feed-event-del-but') // Delete button\n\t\t\t\t\t\tBX.removeClass(targ.parentNode, 'event-grid-dest-hover');\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\tthis.socnetDestinationInputWrap = this.DOM.socnetDestinationWrap.appendChild(Dom.create('SPAN', {props: {className: 'feed-add-destination-input-box'}}));\n\t\tthis.socnetDestinationInput = this.socnetDestinationInputWrap.appendChild(\n\t\t\tDom.create('INPUT', {\n\t\t\t\tprops: {id: id + '-inp', className: 'feed-add-destination-inp'},\n\t\t\t\tattrs: {value: '', type: 'text'},\n\t\t\t\tevents: {\n\t\t\t\t\tkeydown : function(e){\n\t\t\t\t\t\treturn top.BX.SocNetLogDestination.searchBeforeHandler(e, {\n\t\t\t\t\t\t\tformName: id,\n\t\t\t\t\t\t\tinputId: id + '-inp'\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tkeyup : function(e){\n\t\t\t\t\t\treturn top.BX.SocNetLogDestination.searchHandler(e, {\n\t\t\t\t\t\t\tformName: id,\n\t\t\t\t\t\t\tinputId: id + '-inp',\n\t\t\t\t\t\t\tlinkId: 'event-grid-dest-add-link',\n\t\t\t\t\t\t\tsendAjax: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t\tthis.socnetDestinationLink = this.DOM.socnetDestinationWrap.appendChild(Dom.create('SPAN', {\n\t\t\thtml: this.params.addLinkMessage || BX.message('EC_DESTINATION_ADD_USERS'),\n\t\t\tprops: {id: id + '-link', className: 'feed-add-destination-link'},\n\t\t\tevents: {\n\t\t\t\tkeydown : function(e){\n\t\t\t\t\treturn top.BX.SocNetLogDestination.searchBeforeHandler(e, {\n\t\t\t\t\t\tformName: id,\n\t\t\t\t\t\tinputId: id + '-inp'\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tkeyup : function(e){\n\t\t\t\t\treturn top.BX.SocNetLogDestination.searchHandler(e, {\n\t\t\t\t\t\tformName: id,\n\t\t\t\t\t\tinputId: id + '-inp',\n\t\t\t\t\t\tlinkId: 'event-grid-dest-add-link',\n\t\t\t\t\t\tsendAjax: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\t// if (this.params.itemsSelected && !this.checkItemsSelected(\n\t\t// \tthis.params.items,\n\t\t// \tthis.params.itemsLast,\n\t\t// \tthis.params.itemsSelected,\n\t\t// \tBX.proxy(this.init, this)\n\t\t// ))\n\t\t// {\n\t\t// \treturn;\n\t\t// }\n\n\t\tthis.init();\n\t}\n\n\tinit()\n\t{\n\t\tif (!this.socnetDestinationInput || !this.DOM.socnetDestinationWrap || !this.params.items)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif(this.params.selectGroups === false)\n\t\t{\n\t\t\tthis.params.items.groups = {};\n\t\t\tthis.params.items.department = {};\n\t\t\tthis.params.items.sonetgroups = {};\n\t\t}\n\n\t\tif(this.params.selectUsers === false)\n\t\t{\n\t\t\tthis.params.items.users = {};\n\t\t\tthis.params.items.groups = {};\n\t\t\tthis.params.items.department = {};\n\t\t}\n\n\t\tBX.SocNetLogDestination.init({\n\t\t\tname : this.id,\n\t\t\tsearchInput : this.socnetDestinationInput,\n\t\t\textranetUser :  false,\n\t\t\tuserSearchArea: 'I',\n\t\t\tbindMainPopup : {\n\t\t\t\tnode : this.DOM.socnetDestinationWrap,\n\t\t\t\toffsetTop : '5px',\n\t\t\t\toffsetLeft: '15px'\n\t\t\t},\n\t\t\tbindSearchPopup : {\n\t\t\t\tnode : this.DOM.socnetDestinationWrap,\n\t\t\t\toffsetTop : '5px',\n\t\t\t\toffsetLeft: '15px'\n\t\t\t},\n\t\t\tcallback : {\n\t\t\t\tselect : this.selectCallback.bind(this),\n\t\t\t\tunSelect : this.unSelectCallback.bind(this),\n\t\t\t\topenDialog : this.openDialogCallback.bind(this),\n\t\t\t\tcloseDialog : this.closeDialogCallback.bind(this),\n\t\t\t\topenSearch : this.openDialogCallback.bind(this),\n\t\t\t\tcloseSearch : ()=>{this.closeDialogCallback(true);}\n\t\t\t},\n\t\t\titems : this.params.items,\n\t\t\titemsLast : this.params.itemsLast,\n\t\t\titemsSelected : this.params.itemsSelected,\n\t\t\tdepartmentSelectDisable: this.params.selectGroups === false\n\t\t});\n\t}\n\n\tcloseAll()\n\t{\n\t\tif (top.BX.SocNetLogDestination.isOpenDialog())\n\t\t{\n\t\t\ttop.BX.SocNetLogDestination.closeDialog();\n\t\t}\n\t\ttop.BX.SocNetLogDestination.closeSearch();\n\t}\n\n\tselectCallback(item, type)\n\t{\n\t\tvar\n\t\t\ttype1 = type,\n\t\t\tprefix = 'S';\n\n\t\tif (type === 'sonetgroups')\n\t\t{\n\t\t\tprefix = 'SG';\n\t\t}\n\t\telse if (type === 'groups')\n\t\t{\n\t\t\tprefix = 'UA';\n\t\t\ttype1 = 'all-users';\n\t\t}\n\t\telse if (type === 'users')\n\t\t{\n\t\t\tprefix = 'U';\n\t\t}\n\t\telse if (type === 'department')\n\t\t{\n\t\t\tprefix = 'DR';\n\t\t}\n\n\t\tthis.socnetDestinationItems.appendChild(\n\t\t\tDom.create(\"span\", { attrs : {'data-id' : item.id }, props : {className : \"event-grid-dest event-grid-dest-\" + type1 }, children: [\n\t\t\t\t\tDom.create(\"input\", { attrs : {type : 'hidden', name : this.destinationInputName + '[' + prefix + '][]', value : item.id }}),\n\t\t\t\t\tDom.create(\"span\", { props : {className : \"event-grid-dest-text\" }, html : item.name}),\n\t\t\t\t\tDom.create(\"span\", { props : {className : \"feed-event-del-but\"}, attrs: {'data-item-id': item.id, 'data-item-type': type}})\n\t\t\t\t]})\n\t\t);\n\n\t\tBX.onCustomEvent('OnDestinationAddNewItem', [item]);\n\t\tthis.socnetDestinationInput.value = '';\n\t\tthis.socnetDestinationLink.innerHTML = this.params.addLinkMessage || (top.BX.SocNetLogDestination.getSelectedCount(this.id) > 0 ? BX.message('EC_DESTINATION_ADD_MORE') : BX.message('EC_DESTINATION_ADD_USERS'));\n\t}\n\n\tunSelectCallback(item, type, search)\n\t{\n\t\tvar elements = BX.findChildren(this.socnetDestinationItems, {attribute: {'data-id': item.id}}, true);\n\t\tif (elements != null)\n\t\t{\n\t\t\tfor (var j = 0; j < elements.length; j++)\n\t\t\t{\n\t\t\t\tBX.remove(elements[j]);\n\t\t\t}\n\t\t}\n\n\t\tBX.onCustomEvent('OnDestinationUnselect');\n\t\tthis.socnetDestinationInput.value = '';\n\t\tthis.socnetDestinationLink.innerHTML = this.params.addLinkMessage || (top.BX.SocNetLogDestination.getSelectedCount(this.id) > 0 ? BX.message('EC_DESTINATION_ADD_MORE') : BX.message('EC_DESTINATION_ADD_USERS'));\n\t}\n\n\topenDialogCallback()\n\t{\n\t\tBX.style(this.socnetDestinationInputWrap, 'display', 'inline-block');\n\t\tBX.style(this.socnetDestinationLink, 'display', 'none');\n\t\tBX.focus(this.socnetDestinationInput);\n\t}\n\n\tcloseDialogCallback(cleanInputValue)\n\t{\n\t\tif (!top.BX.SocNetLogDestination.isOpenSearch() && this.socnetDestinationInput.value.length <= 0)\n\t\t{\n\t\t\tBX.style(this.socnetDestinationInputWrap, 'display', 'none');\n\t\t\tBX.style(this.socnetDestinationLink, 'display', 'inline-block');\n\t\t\tif (cleanInputValue === true)\n\t\t\t\tthis.socnetDestinationInput.value = '';\n\n\t\t\t// Disable backspace\n\t\t\tif (top.BX.SocNetLogDestination.backspaceDisable || top.BX.SocNetLogDestination.backspaceDisable != null)\n\t\t\t\tBX.unbind(window, 'keydown', top.BX.SocNetLogDestination.backspaceDisable);\n\n\t\t\tBX.bind(window, 'keydown', top.BX.SocNetLogDestination.backspaceDisable = function(e)\n\t\t\t{\n\t\t\t\tif (e.keyCode === 8)\n\t\t\t\t{\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsetTimeout(function()\n\t\t\t{\n\t\t\t\tBX.unbind(window, 'keydown', top.BX.SocNetLogDestination.backspaceDisable);\n\t\t\t\ttop.BX.SocNetLogDestination.backspaceDisable = null;\n\t\t\t}, 5000);\n\t\t}\n\t}\n\n\tgetCodes()\n\t{\n\t\tvar\n\t\t\tinputsList = this.socnetDestinationItems.getElementsByTagName('INPUT'),\n\t\t\tcodes = [], i;\n\n\t\tfor (i = 0; i < inputsList.length; i++)\n\t\t{\n\t\t\tcodes.push(inputsList[i].value);\n\t\t}\n\t\treturn codes;\n\t}\n\n\tgetAttendeesCodes()\n\t{\n\t\tvar\n\t\t\tinputsList = this.socnetDestinationItems.getElementsByTagName('INPUT'),\n\t\t\tvalues = [],\n\t\t\ti, code;\n\n\t\tfor (i = 0; i < inputsList.length; i++)\n\t\t{\n\t\t\tvalues.push(inputsList[i].value);\n\t\t}\n\n\t\treturn this.convertAttendeesCodes(values);\n\t}\n\n\tconvertAttendeesCodes(values)\n\t{\n\t\tlet attendeesCodes = {};\n\t\tif (Type.isArray(values))\n\t\t{\n\t\t\tvalues.forEach(function(code)\n\t\t\t{\n\t\t\t\tif (code.substr(0, 2) === 'DR')\n\t\t\t\t{\n\t\t\t\t\tattendeesCodes[code] = \"department\";\n\t\t\t\t}\n\t\t\t\telse if (code.substr(0, 2) === 'UA')\n\t\t\t\t{\n\t\t\t\t\tattendeesCodes[code] = \"groups\";\n\t\t\t\t}\n\t\t\t\telse if (code.substr(0, 2) === 'SG')\n\t\t\t\t{\n\t\t\t\t\tattendeesCodes[code] = \"sonetgroups\";\n\t\t\t\t}\n\t\t\t\telse if (code.substr(0, 1) === 'U')\n\t\t\t\t{\n\t\t\t\t\tattendeesCodes[code] = \"users\";\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn attendeesCodes;\n\t}\n\n\tgetAttendeesCodesList(codes)\n\t{\n\t\tlet result = [];\n\t\tif (!codes)\n\t\t\tcodes = this.getAttendeesCodes();\n\t\tfor (let i in codes)\n\t\t{\n\t\t\tif (codes.hasOwnProperty(i))\n\t\t\t{\n\t\t\t\tresult.push(i);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tsetValue(value)\n\t{\n\t\tif (this.socnetDestinationItems)\n\t\t{\n\t\t\tDom.clean(this.socnetDestinationItems);\n\t\t}\n\n\t\tif (Type.isArray(value))\n\t\t{\n\t\t\tthis.params.itemsSelected = this.convertAttendeesCodes(value);\n\t\t}\n\t\tthis.init();\n\t}\n}","import { Tag, Loc, Dom, Event, Type } from 'main.core';\nimport { Util } from 'calendar.util';\nimport { MenuManager } from 'main.popup';\nimport { EventEmitter, BaseEvent } from 'main.core.events';\n\nexport class ColorSelector extends EventEmitter\n{\n\tLINE_MODE = 'line';\n\tSELECTOR_MODE = 'selector';\n\tVIEW_MODE = 'view';\n\n\tconstructor(params)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ColorSelector');\n\t\tthis.id = params.id || 'color-select-' + Math.round(Math.random() * 1000000);\n\t\tthis.defaultColors = Util.getDefaultColorList();\n\t\tthis.colors = [];\n\t\tthis.zIndex = 3100;\n\t\tthis.mode = params.mode || this.LINE_MODE;\n\n\t\tthis.DOM = {\n\t\t\twrap: params.wrap\n\t\t};\n\t\tthis.create();\n\n\t\tthis.setViewMode(params.viewMode || false);\n\t}\n\n\tcreate()\n\t{\n\t\tif (this.mode === this.LINE_MODE)\n\t\t{\n\t\t\tfor (let i = 0; i < this.defaultColors.length; i++)\n\t\t\t{\n\t\t\t\tthis.colors.push({\n\t\t\t\t\tcolor: this.defaultColors[i],\n\t\t\t\t\tnode: this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t\t\t<li class=\"calendar-field-colorpicker-color-item\" data-bx-calendar-color=\"${this.defaultColors[i]}\" style=\"background-color: ${this.defaultColors[i]}\">\n\t\t\t\t\t\t\t<span class=\"calendar-field-colorpicker-color\"></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t`),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.DOM.customColorNode = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t<li class=\"calendar-field-colorpicker-color-item\" style=\"background-color: transparent; width: 0\">\n\t\t\t\t\t<span class=\"calendar-field-colorpicker-color\"></span>\n\t\t\t\t</li>`\n\t\t\t);\n\n\t\t\tthis.DOM.customColorLink = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t<li class=\"calendar-field-colorpicker-color-item-more\">\n\t\t\t\t\t<span class=\"calendar-field-colorpicker-color-item-more-link\">${Loc.getMessage('EC_COLOR')}</span>\n\t\t\t\t</li>\n\t\t\t`);\n\n\t\t\tEvent.bind(this.DOM.customColorLink, 'click', () => {\n\t\t\t\tif (!this.colorPickerPopup)\n\t\t\t\t{\n\t\t\t\t\tthis.colorPickerPopup = new BX.ColorPicker({\n\t\t\t\t\t\tbindElement: this.DOM.customColorLink,\n\t\t\t\t\t\tonColorSelected: this.setValue.bind(this),\n\t\t\t\t\t\tpopupOptions: { zIndex: this.zIndex }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.colorPickerPopup.open();\n\t\t\t});\n\n\t\t\tEvent.bind(this.DOM.wrap, 'click', this.handleColorClick.bind(this));\n\t\t}\n\t\telse if (this.mode === this.SELECTOR_MODE)\n\t\t{\n\t\t\tthis.DOM.colorIcon = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t<div style=\"background-color: #000;\" class=\"calendar-field-select-icon\"></div>\n\t\t\t`);\n\n\t\t\tEvent.bind(this.DOM.wrap, 'click', this.openPopup.bind(this));\n\t\t}\n\t\telse if (this.mode === this.VIEW_MODE)\n\t\t{\n\t\t\tthis.DOM.colorIcon = this.DOM.wrap.appendChild(Tag.render`\n\t\t\t\t<div style=\"background-color: #000;\" class=\"calendar-field-select-icon\"></div>\n\t\t\t`);\n\t\t}\n\t}\n\n\thandleColorClick(e)\n\t{\n\t\tif (this.viewMode)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet target = Util.findTargetNode(e.target || e.srcElement, this.DOM.wrap);\n\n\t\tif (target && target.getAttribute)\n\t\t{\n\t\t\tlet value = target.getAttribute('data-bx-calendar-color');\n\t\t\tif (value !== null)\n\t\t\t{\n\t\t\t\tthis.setValue(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tsetValue(color, emitChanges = true)\n\t{\n\t\tif (this.viewMode)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.activeColor = color;\n\n\t\tif (this.mode === this.LINE_MODE)\n\t\t{\n\t\t\tif (this.DOM.activeColorNode)\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.activeColorNode, 'active');\n\t\t\t}\n\n\t\t\tif (!BX.util.in_array(this.activeColor, this.defaultColors) && this.activeColor)\n\t\t\t{\n\t\t\t\tDom.attr(this.DOM.customColorNode, 'data-bx-calendar-color', this.activeColor);\n\t\t\t\tthis.DOM.customColorNode.style.backgroundColor = this.activeColor;\n\t\t\t\tthis.DOM.customColorNode.style.width = '';\n\n\t\t\t\tthis.DOM.activeColorNode = this.DOM.customColorNode;\n\t\t\t\tDom.addClass(this.DOM.activeColorNode, 'active');\n\t\t\t}\n\n\t\t\tlet i;\n\t\t\tfor (i = 0; i < this.colors.length; i++)\n\t\t\t{\n\t\t\t\tif (this.colors[i].color === this.activeColor)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.activeColorNode = this.colors[i].node;\n\t\t\t\t\tDom.addClass(this.DOM.activeColorNode, 'active');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (this.mode === this.SELECTOR_MODE || this.mode === this.VIEW_MODE)\n\t\t{\n\t\t\tif (this.DOM.colorIcon)\n\t\t\t{\n\t\t\t\tthis.DOM.colorIcon.style.backgroundColor = this.activeColor;\n\t\t\t}\n\t\t\tif (this.viewMode)\n\t\t\t{\n\t\t\t\tthis.DOM.wrap.style.backgroundColor = this.activeColor;\n\t\t\t}\n\t\t}\n\n\t\tif (emitChanges)\n\t\t{\n\t\t\tthis.emit('onChange', new BaseEvent({ data: { value: this.activeColor } }));\n\t\t}\n\t}\n\n\tgetValue()\n\t{\n\t\treturn this.activeColor;\n\t}\n\n\topenPopup()\n\t{\n\t\tif (this.viewMode)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.popup && this.popup.popupWindow && this.popup.popupWindow.isShown())\n\t\t{\n\t\t\treturn this.popup.close();\n\t\t}\n\n\t\tlet\n\t\t\ti, menuItems = [], icon;\n\n\t\tthis.defaultColors.forEach((color) => {\n\t\t\tmenuItems.push({\n\t\t\t\t\ttext: color,\n\t\t\t\t\tcolor: color,\n\t\t\t\t\tclassName: 'calendar-add-popup-color-menu-item',\n\t\t\t\t\tonclick: ((color) => {\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\tthis.setValue(color);\n\t\t\t\t\t\t\tthis.popup.close();\n\t\t\t\t\t\t};\n\t\t\t\t\t})(color)\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\n\t\tthis.popup = MenuManager.create(\n\t\t\tthis.id,\n\t\t\tthis.DOM.colorIcon,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tclassName: 'calendar-color-popup-wrap',\n\t\t\t\twidth: 162,\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: 52,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.popup.show();\n\n\t\t// Paint round icons for section menu\n\t\tfor (i = 0; i < this.popup.menuItems.length; i++)\n\t\t{\n\t\t\tif (this.popup.menuItems[i].layout.item)\n\t\t\t{\n\t\t\t\ticon = this.popup.menuItems[i].layout.item.querySelector('.menu-popup-item-icon');\n\t\t\t\tif (Type.isDomNode(icon))\n\t\t\t\t{\n\t\t\t\t\ticon.style.backgroundColor = this.popup.menuItems[i].color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.popup.popupWindow.angle.element.style.left = '6px';\n\t}\n\n\tsetViewMode(viewMode)\n\t{\n\t\tthis.viewMode = viewMode;\n\t\tif (this.viewMode)\n\t\t{\n\t\t\tDom.addClass(this.DOM.wrap, 'calendar-colorpicker-readonly');\n\t\t\tEvent.unbind(this.DOM.wrap, 'click', this.openPopup.bind(this));\n\t\t}\n\t}\n}","import { Dom, Event, Loc, Tag, Text, Type } from 'main.core';\nimport 'ui.icons.b24';\nimport { MenuItem, MenuManager } from 'main.popup';\n\nexport class SectionSelector\n{\n\tstatic getModes(): string[]\n\t{\n\t\treturn [\n\t\t\t'textselect',\n\t\t\t'location',\n\t\t\t'inline',\n\t\t\t'compact',\n\t\t\t'full',\n\t\t];\n\t}\n\n\tconstructor(params)\n\t{\n\t\tthis.id = params.id || 'section-select-' + Math.round(Math.random() * 1000000);\n\t\tthis.sectionList = params.sectionList;\n\t\tthis.sectionGroupList = params.sectionGroupList;\n\t\tthis.selectCallback = params.selectCallback;\n\t\tthis.openPopupCallback = params.openPopupCallback;\n\t\tthis.closePopupCallback = params.closePopupCallback;\n\t\tthis.getCurrentSection = params.getCurrentSection;\n\n\t\tthis.defaultCalendarType = params.defaultCalendarType;\n\t\tthis.defaultOwnerId = parseInt(params.defaultOwnerId) || 0;\n\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.mode = params.mode; // full|compact|textselect|inline\n\t\tthis.DOM = {\n\t\t\touterWrap: params.outerWrap,\n\t\t};\n\n\t\tthis.create();\n\t\tthis.initEventHandlers();\n\t}\n\n\tcreate()\n\t{\n\t\tif (this.mode === 'textselect')\n\t\t{\n\t\t\tthis.DOM.select = this.DOM.outerWrap;\n\t\t\tthis.DOM.selectImageWrap = this.DOM.select.appendChild(Tag.render`<span class=\"calendar-field-choice-calendar-img\"></span>`);\n\n\t\t\tthis.DOM.selectInnerText = this.DOM.select.appendChild(Tag.render`<span class=\"calendar-field-choice-calendar-name\">${Text.encode(Loc.getMessage('EC_CALENDAR_SECTION_TITLE') + ' ' + this.getCurrentTitle())}</span>`);\n\t\t}\n\t\telse if(this.mode === 'location')\n\t\t{\n\t\t\tthis.DOM.select = this.DOM.outerWrap;\n\t\t\tthis.DOM.selectImageWrap = this.DOM.select.appendChild(Tag.render`<span class=\"calendar-field-choice-calendar-img\"></span>`);\n\n\t\t\tthis.DOM.selectInnerText = this.DOM.select.appendChild(Tag.render`<span class=\"calendar-field-choice-calendar-name calendar-field-choice-calendar-name-location\">${Text.encode(Loc.getMessage('EC_CALENDAR_LOCATION_TITLE') + ' ' + this.getCurrentTitle())}</span>`);\n\t\t}\n\t\telse if (this.mode === 'inline')\n\t\t{\n\t\t\tthis.DOM.select = this.DOM.outerWrap;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.select = this.DOM.outerWrap.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-field calendar-field-select\"></div>\n\t\t\t`);\n\n\t\t\tthis.DOM.innerValue = this.DOM.select.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-field-select-icon\" style=\"background-color: ${this.getCurrentColor()}\"></div>\n\t\t\t`);\n\n\t\t\tif (this.mode === 'full')\n\t\t\t{\n\t\t\t\tthis.DOM.selectInnerText = this.DOM.select.appendChild(Tag.render`<span>${Text.encode(this.getCurrentTitle())}</span>`);\n\t\t\t}\n\t\t}\n\t}\n\n\tinitEventHandlers()\n\t{\n\t\tEvent.bind(this.DOM.select, 'click', this.openPopup.bind(this));\n\t}\n\n\topenPopup()\n\t{\n\t\tif (this.viewMode)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.sectionMenu && this.sectionMenu.popupWindow && this.sectionMenu.popupWindow.isShown())\n\t\t{\n\t\t\treturn this.sectionMenu.close();\n\t\t}\n\n\t\tconst menuItems = [];\n\t\tconst sectionIdList = [];\n\t\tconst sectionList = this.getSectionList();\n\t\tlet i;\n\n\t\tif (Type.isArray(this.sectionGroupList))\n\t\t{\n\t\t\tthis.sectionGroupList.forEach((sectionGroup) => {\n\t\t\t\tlet filteredList;\n\t\t\t\tif (sectionGroup.belongsToView)\n\t\t\t\t{\n\t\t\t\t\tfilteredList = sectionList.filter((section) => {\n\t\t\t\t\t\treturn SectionSelector.getSectionType(section) === this.defaultCalendarType\n\t\t\t\t\t\t\t&& SectionSelector.getSectionOwner(section) === this.defaultOwnerId;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if (sectionGroup.type === 'user' || sectionGroup.type === 'location')\n\t\t\t\t{\n\t\t\t\t\tfilteredList = sectionList.filter((section) => {\n\t\t\t\t\t\treturn SectionSelector.getSectionType(section) === 'user'\n\t\t\t\t\t\t\t&& SectionSelector.getSectionOwner(section) === sectionGroup.ownerId;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if (sectionGroup.type === 'company')\n\t\t\t\t{\n\t\t\t\t\tfilteredList = sectionList.filter((section) => {\n\t\t\t\t\t\treturn SectionSelector.getSectionType(section) === 'company_calendar'\n\t\t\t\t\t\t\t|| SectionSelector.getSectionType(section) === 'calendar_company'\n\t\t\t\t\t\t\t|| SectionSelector.getSectionType(section) === sectionGroup.type;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if (sectionGroup.type === 'collab')\n\t\t\t\t{\n\t\t\t\t\tfilteredList = sectionList.filter((section) => {\n\t\t\t\t\t\treturn Type.isFunction(section.isCollab) && section.isCollab() || section['IS_COLLAB'];\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\tfilteredList = sectionList.filter((section) => {\n\t\t\t\t\t\treturn SectionSelector.getSectionType(section) === sectionGroup.type\n\t\t\t\t\t\t\t&& !(Type.isFunction(section.isCollab) && section.isCollab() || section['IS_COLLAB'])\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfilteredList = filteredList.filter((section) => {\n\t\t\t\t\tconst id = parseInt(section.id || section.ID);\n\t\t\t\t\tif (sectionIdList.includes(id))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tsectionIdList.push(id);\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\n\t\t\t\tif (filteredList.length > 0)\n\t\t\t\t{\n\t\t\t\t\tmenuItems.push(\n\t\t\t\t\t\tnew MenuItem({\n\t\t\t\t\t\t\ttext: sectionGroup.title,\n\t\t\t\t\t\t\tdelimiter: true,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\n\t\t\t\t\tfor (let i = 0; i < filteredList.length; i++)\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuItems.push(this.getMenuItem(filteredList[i]));\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\tfor (i = 0; i < sectionList.length; i++)\n\t\t\t{\n\t\t\t\tmenuItems.push(this.getMenuItem(sectionList[i]));\n\t\t\t}\n\t\t}\n\n\t\tlet offsetLeft = 0;\n\t\tif (this.mode === 'compact')\n\t\t{\n\t\t\toffsetLeft = 40;\n\t\t}\n\t\telse if (this.mode === 'textselect' || this.mode === 'location')\n\t\t{\n\t\t\toffsetLeft = 0;\n\t\t}\n\n\t\tthis.sectionMenu = 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\toffsetLeft,\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\tangle: this.mode === 'compact',\n\t\t\t},\n\t\t);\n\n\t\tthis.sectionMenu.popupWindow.contentContainer.style.overflow = \"auto\";\n\t\tthis.sectionMenu.popupWindow.contentContainer.style.maxHeight = \"400px\";\n\n\t\tif (this.mode === 'full')\n\t\t{\n\t\t\tthis.sectionMenu.popupWindow.setWidth(this.DOM.select.offsetWidth - 2);\n\t\t\tthis.sectionMenu.popupWindow.contentContainer.style.overflowX = \"hidden\";\n\t\t}\n\n\t\tthis.sectionMenu.show();\n\n\t\t// Paint round icons for section menu\n\t\tfor (i = 0; i < this.sectionMenu.menuItems.length; i++)\n\t\t{\n\t\t\tif (this.sectionMenu.menuItems[i].layout.item)\n\t\t\t{\n\t\t\t\tlet icon = this.sectionMenu.menuItems[i].layout.item.querySelector('.menu-popup-item-icon');\n\t\t\t\tif (icon)\n\t\t\t\t{\n\t\t\t\t\ticon.style.backgroundColor = this.sectionMenu.menuItems[i].color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tDom.addClass(this.DOM.select, 'active');\n\n\t\tif (Type.isFunction(this.openPopupCallback))\n\t\t{\n\t\t\tthis.openPopupCallback(this);\n\t\t}\n\n\t\tBX.addCustomEvent(this.sectionMenu.popupWindow, 'onPopupClose', BX.delegate(function()\n\t\t{\n\t\t\tif (Type.isFunction(this.closePopupCallback))\n\t\t\t{\n\t\t\t\tthis.closePopupCallback();\n\t\t\t}\n\t\t\tDom.removeClass(this.DOM.select, 'active');\n\t\t\tMenuManager.destroy(this.id);\n\t\t\tthis.sectionMenu = null;\n\t\t}, this));\n\t}\n\n\tgetCurrentColor()\n\t{\n\t\treturn (this.getCurrentSection() || {}).color || false;\n\t}\n\n\tgetCurrentTitle()\n\t{\n\t\treturn (this.getCurrentSection() || {}).name || '';\n\t}\n\n\tgetSectionList()\n\t{\n\t\treturn this.sectionList.filter((section) => {\n\t\t\treturn (section.PERM && section.PERM.edit) || (Type.isFunction(section.canDo) && section.canDo('edit'));\n\t\t});\n\t}\n\n\tupdateSectionImageNode(section)\n\t{\n\t\tif (!Type.isElementNode(this.DOM.selectImageWrap))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (section === undefined)\n\t\t{\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tsection = this.sectionList.find((it) => {\n\t\t\t\treturn parseInt(it.id, 10) === parseInt(this.getCurrentSection().id, 10);\n\t\t\t});\n\t\t}\n\n\t\tlet imageNode;\n\t\tif (section?.type || this.defaultCalendarType)\n\t\t{\n\t\t\tconst type = section?.type || this.defaultCalendarType;\n\t\t\tconst imageSrc = section ? SectionSelector.getSectionImage(section) : null;\n\t\t\tif (imageSrc)\n\t\t\t{\n\t\t\t\timageNode = Tag.render`<img class=\"calendar-field-choice-calendar-img-value\" src=\"${encodeURI(imageSrc)}\" alt=\"\">`;\n\t\t\t}\n\t\t\telse if (type === 'group')\n\t\t\t{\n\t\t\t\timageNode = Tag.render`<div class=\"ui-icon ui-icon-common-user-group\"><i></i></div>`;\n\t\t\t}\n\t\t\telse if (type === 'user')\n\t\t\t{\n\t\t\t\timageNode = Tag.render`<div class=\"ui-icon ui-icon-common-user\"><i></i></div>`;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\timageNode = Tag.render`<div class=\"ui-icon ui-icon-common-bitrix24\"><i></i></div>`;\n\t\t\t}\n\n\t\t\tDom.clean(this.DOM.selectImageWrap);\n\t\t\tthis.DOM.selectImageWrap.appendChild(imageNode);\n\t\t}\n\t}\n\n\tgetPopup()\n\t{\n\t\treturn this.sectionMenu;\n\t}\n\n\tgetMenuItem(sectionItem)\n\t{\n\t\treturn {\n\t\t\thtml: BX.util.htmlspecialchars(sectionItem.name || sectionItem.NAME),\n\t\t\tcolor: sectionItem.color || sectionItem.COLOR,\n\t\t\tclassName: 'calendar-add-popup-section-menu-item' + (this.mode === 'full' ? ' section-menu-item-full' : ''),\n\t\t\tonclick: ((section) =>\n\t\t\t{\n\t\t\t\treturn () => {\n\t\t\t\t\tif (Type.isDomNode(this.DOM.innerValue))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.DOM.innerValue.style.backgroundColor = section.color || sectionItem.COLOR;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.updateSectionImageNode(section);\n\t\t\t\t\tif (Type.isFunction(this.selectCallback))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!section.color && sectionItem.COLOR)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsection.color = sectionItem.COLOR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!section.id && sectionItem.ID)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsection.id = sectionItem.ID;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.selectCallback(section);\n\t\t\t\t\t}\n\t\t\t\t\tthis.sectionMenu.close();\n\t\t\t\t\tthis.updateValue();\n\t\t\t\t}\n\t\t\t})(sectionItem)\n\t\t}\n\t}\n\n\tstatic getSectionType(section)\n\t{\n\t\treturn section.type || section.CAL_TYPE;\n\t}\n\n\tstatic getSectionImage(section = {})\n\t{\n\t\treturn section.data ? section.data.IMAGE : (section.IMAGE || '');\n\t}\n\n\tstatic getSectionOwner(section)\n\t{\n\t\treturn parseInt(section.OWNER_ID || section.data.OWNER_ID, 10);\n\t}\n\n\tupdateValue()\n\t{\n\t\tif (Type.isDomNode(this.DOM.innerValue))\n\t\t{\n\t\t\tthis.DOM.innerValue.style.backgroundColor = this.getCurrentColor();\n\t\t}\n\n\t\tif (this.mode === 'full')\n\t\t{\n\t\t\tthis.DOM.select.appendChild(Dom.adjust(this.DOM.selectInnerText, {\n\t\t\t\ttext: this.getCurrentTitle(),\n\t\t\t\tprops: {\n\t\t\t\t\ttitle: this.getCurrentTitle(),\n\t\t\t\t},\n\t\t\t}));\n\t\t}\n\t\telse if (this.mode === 'textselect')\n\t\t{\n\t\t\tthis.updateSectionImageNode();\n\t\t\tthis.DOM.select.appendChild(Dom.adjust(this.DOM.selectInnerText, {\n\t\t\t\tprops: {\n\t\t\t\t\ttitle: Loc.getMessage('EC_CALENDAR_SECTION_TITLE') + ' ' + this.getCurrentTitle()\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('EC_CALENDAR_SECTION_TITLE') + ' ' + this.getCurrentTitle(),\n\t\t\t}));\n\t\t}\n\t\telse if (this.mode === 'location')\n\t\t{\n\t\t\tthis.updateSectionImageNode();\n\t\t\tthis.DOM.select.appendChild(Dom.adjust(this.DOM.selectInnerText, {\n\t\t\t\tprops: {\n\t\t\t\t\ttitle: Loc.getMessage('EC_CALENDAR_LOCATION_TITLE') + ' ' + this.getCurrentTitle()\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('EC_CALENDAR_LOCATION_TITLE') + ' ' + this.getCurrentTitle(),\n\t\t\t}));\n\t\t}\n\t}\n\n\tsetViewMode(viewMode)\n\t{\n\t\tthis.viewMode = viewMode;\n\t\tif (this.viewMode)\n\t\t{\n\t\t\tDom.addClass(this.DOM.outerWrap, 'calendar-section-selector-readonly');\n\t\t\tif (this.DOM.outerWrap !== this.DOM.select)\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.select, 'calendar-field-select');\n\t\t\t\tDom.addClass(this.DOM.select, 'calendar-section-selector-readonly');\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-section-selector-readonly');\n\t\t}\n\t}\n}\n","import { Util } from 'calendar.util';\nimport { Type, Dom, Event, Loc } from 'main.core';\nimport { DatePicker } from 'ui.date-picker';\nimport { Menu, MenuItem } from 'main.popup';\n\nexport class RepeatSelector\n{\n\t#untilPicker: DatePicker;\n\t#rruleTypeMenu: Menu;\n\t#rruleCountMenu: Menu;\n\n\tconstructor(params)\n\t{\n\t\tlet formElements = params.rruleType.form.elements;\n\n\t\tthis.uid = params.uid;\n\t\tthis.getDate = params.getDate;\n\t\tthis.DOM = {\n\t\t\tformElements,\n\t\t\twrap: params.wrap,\n\t\t\trruleType: params.rruleType,\n\t\t\trruleCount: params.rruleCount,\n\t\t\tinterval: formElements['EVENT_RRULE[INTERVAL]'],\n\t\t\trruleEndsOn: {\n\t\t\t\tnever: formElements['rrule_endson'][0],\n\t\t\t\tcount: formElements['rrule_endson'][1],\n\t\t\t\tuntil: formElements['rrule_endson'][2],\n\t\t\t},\n\t\t\tcount: formElements['EVENT_RRULE[COUNT]'],\n\t\t\tuntil: formElements['EVENT_RRULE[UNTIL]'],\n\t\t};\n\t\tthis.viewMode = false;\n\n\t\tthis.create();\n\t\tthis.initDatePicker();\n\t}\n\n\tcreate()\n\t{\n\t\tEvent.bind(this.DOM.rruleType, 'click', this.#showRruleTypeMenu);\n\n\t\tEvent.bind(this.DOM.rruleCount, 'click', this.#showRruleCountMenu);\n\n\t\tEvent.bind(this.DOM.until, 'click', () => {\n\t\t\tthis.showUntilPicker();\n\t\t\tthis.DOM.rruleEndsOn.until.checked = true;\n\t\t});\n\n\t\tEvent.bind(this.DOM.count, 'click', () => {\n\t\t\tthis.DOM.rruleEndsOn.count.checked = true;\n\t\t});\n\t}\n\n\tinitDatePicker()\n\t{\n\t\tthis.#untilPicker ??= new DatePicker({\n\t\t\ttargetNode: this.DOM.until,\n\t\t\tevents: {\n\t\t\t\tonSelect: this.#onUntilSelected,\n\t\t\t},\n\t\t});\n\t}\n\n\t#onUntilSelected = (event) => {\n\t\tconst { date } = event.getData();\n\t\tthis.DOM.until.value = Util.formatDate(date.getTime());\n\t};\n\n\tshowUntilPicker()\n\t{\n\t\tthis.#untilPicker.show();\n\t}\n\n\t#showRruleTypeMenu = () => {\n\t\tthis.#rruleTypeMenu ??= new Menu({\n\t\t\tid: `${this.uid}-calendar-rrule-type-menu`,\n\t\t\tbindElement: this.DOM.rruleType,\n\t\t\tcloseByEsc: true,\n\t\t\titems: this.#getRruleTypeMenuItems(),\n\t\t});\n\n\t\tthis.#rruleTypeMenu.show();\n\t};\n\n\t#getRruleTypeMenuItems(): Array\n\t{\n\t\tconst result = [];\n\n\t\tconst items = {\n\t\t\tNONE: Loc.getMessage('EC_CONTROL_REPEAT_NONE'),\n\t\t\tDAILY: Loc.getMessage('EC_CONTROL_REPEAT_DAILY'),\n\t\t\tWEEKLY: Loc.getMessage('EC_CONTROL_REPEAT_WEEKLY'),\n\t\t\tMONTHLY: Loc.getMessage('EC_CONTROL_REPEAT_MONTHLY'),\n\t\t\tYEARLY: Loc.getMessage('EC_CONTROL_REPEAT_YEARLY'),\n\t\t};\n\n\t\tObject.entries(items).forEach(([key, value]) => {\n\t\t\tresult.push(new MenuItem({\n\t\t\t\ttext: value,\n\t\t\t\tonclick: () => this.#selectRruleType(key, value),\n\t\t\t}));\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t#selectRruleType = (key, value) => {\n\t\tthis.#rruleTypeMenu.close();\n\t\tthis.DOM.rruleType.value = value;\n\t\tthis.DOM.rruleType.dataset.value = key;\n\t\tthis.changeType(key);\n\t};\n\n\t#showRruleCountMenu = () => {\n\t\tthis.#rruleCountMenu ??= new Menu({\n\t\t\tid: `${this.uid}-calendar-rrule-count-menu`,\n\t\t\tbindElement: this.DOM.rruleCount,\n\t\t\tcloseByEsc: true,\n\t\t\titems: this.#getRruleCountMenuItems(),\n\t\t\tmaxHeight: 300,\n\t\t});\n\n\t\tthis.#rruleCountMenu.show();\n\t};\n\n\t#getRruleCountMenuItems(): Array\n\t{\n\t\tconst result = [];\n\n\t\tfor (let i = 1; i <= 36; i++)\n\t\t{\n\t\t\tresult.push(new MenuItem({\n\t\t\t\ttext: String(i),\n\t\t\t\tonclick: () => this.#selectRruleCount(i),\n\t\t\t}));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t#selectRruleCount = (item) => {\n\t\tthis.#rruleCountMenu.close();\n\t\tthis.DOM.rruleCount.value = item;\n\t};\n\n\tchangeType(type)\n\t{\n\t\tthis.DOM.rruleType.dataset.value = type ? type.toUpperCase() : 'NONE';\n\t\tthis.DOM.rruleType.value = this.getTypeName();\n\t\tlet rruleType = this.DOM.rruleType.dataset.value.toLowerCase();\n\t\tthis.DOM.wrap.className = 'calendar-rrule-type-' + rruleType;\n\n\t\tif (rruleType === 'weekly' && BX.type.isFunction(this.getDate))\n\t\t{\n\t\t\tlet fromDate = this.getDate();\n\t\t\tif (BX.type.isDate(fromDate))\n\t\t\t{\n\t\t\t\tlet day = Util.getWeekDayByInd(fromDate.getDay());\n\t\t\t\tthis.DOM.formElements['EVENT_RRULE[BYDAY][]'].forEach(function(input)\n\t\t\t\t{\n\t\t\t\t\tif (input.checked && this.previousDay === input.value && this.previousDay !== day)\n\t\t\t\t\t{\n\t\t\t\t\t\tinput.checked = false;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tinput.checked = input.checked || input.value === day;\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\tthis.previousDay = day;\n\t\t\t}\n\t\t}\n\t}\n\n\tsetValue(rrule = {})\n\t{\n\t\tif (Type.isNil(rrule))\n\t\t{\n\t\t\trrule = {};\n\t\t}\n\n\t\tthis.changeType(rrule.FREQ);\n\t\tthis.DOM.interval.value = rrule.INTERVAL || 1;\n\t\tif (rrule.COUNT)\n\t\t{\n\t\t\tthis.DOM.rruleEndsOn.count.checked = 'checked';\n\t\t\tthis.DOM.count.value = rrule.COUNT;\n\t\t}\n\t\telse if(rrule['~UNTIL'])\n\t\t{\n\t\t\tthis.DOM.rruleEndsOn.until.checked = 'checked';\n\t\t\tthis.DOM.until.value = rrule['~UNTIL'];\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.rruleEndsOn.never.checked = 'checked';\n\t\t}\n\n\t\tif (BX.type.isPlainObject(rrule.BYDAY))\n\t\t{\n\t\t\tthis.DOM.formElements['EVENT_RRULE[BYDAY][]'].forEach(function(input)\n\t\t\t{\n\t\t\t\tinput.checked = rrule.BYDAY.hasOwnProperty(input.value);\n\t\t\t}, this);\n\t\t}\n\t}\n\n\tgetType()\n\t{\n\t\treturn this.DOM.rruleType.dataset.value.toLowerCase();\n\t}\n\n\tgetTypeName(): string\n\t{\n\t\tswitch (this.DOM.rruleType.dataset.value)\n\t\t{\n\t\t\tcase 'NONE': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_REPEAT_NONE');\n\t\t\t}\n\n\t\t\tcase 'DAILY': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_REPEAT_DAILY');\n\t\t\t}\n\n\t\t\tcase 'WEEKLY': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_REPEAT_WEEKLY');\n\t\t\t}\n\n\t\t\tcase 'MONTHLY': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_REPEAT_MONTHLY');\n\t\t\t}\n\n\t\t\tcase 'YEARLY': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_REPEAT_YEARLY');\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\t}\n\n\tsetViewMode(description: string)\n\t{\n\t\tif (!Type.isStringFilled(description))\n\t\t{\n\t\t\tdescription = this.DOM.rruleType.value;\n\t\t}\n\n\t\tDom.clean(this.DOM.wrap);\n\t\tthis.DOM.wrap.innerText = description.toLowerCase();\n\t\tDom.addClass(this.DOM.wrap, 'calendar-field calendar-repeat-selector-readonly');\n\t}\n}\n","import { Dom, Loc, Event, Tag, Type } from 'main.core';\nimport { Loader } from 'main.loader';\nimport { MenuManager } from 'main.popup';\n\nexport class SelectInput\n{\n\tconstructor(params)\n\t{\n\t\tthis.id = params.id || 'bx-select-input-' + Math.round(Math.random() * 1000000);\n\t\tthis.values = params.values || false;\n\t\tthis.input = params.input;\n\n\t\tthis.defaultValue = params.defaultValue || '';\n\t\tthis.openTitle = params.openTitle || '';\n\t\tthis.className = params.className || '';\n\n\n\t\tthis.onChangeCallback = Type.isFunction(params.onChangeCallback) ? params.onChangeCallback : () => {};\n\t\tthis.onPopupShowCallback = Type.isFunction(params.onPopupShowCallback) ? params.onPopupShowCallback : () => {};\n\t\tthis.onPopupCloseCallback = Type.isFunction(params.onPopupCloseCallback) ? params.onPopupCloseCallback : () => {};\n\t\tthis.zIndex = params.zIndex || 1200;\n\t\tthis.disabled = params.disabled;\n\n\t\tthis.setValue({\n\t\t\tvalue: params.value,\n\t\t\tvalueIndex: params.valueIndex\n\t\t});\n\n\t\tthis.curInd = false;\n\n\t\tthis.eventHandlers = {\n\t\t\tclick: this.onClick.bind(this),\n\t\t\tfocus: this.onFocus.bind(this),\n\t\t\tkeydown: this.onKeydown.bind(this),\n\t\t\tchange: this.onChangeCallback,\n\t\t};\n\t\tthis.bindEventHandlers(this.eventHandlers);\n\t}\n\n\tbindEventHandlers(eventHandlers)\n\t{\n\t\tfor (const [eventName, handler] of Object.entries(eventHandlers))\n\t\t{\n\t\t\tEvent.bind(this.input, eventName, handler);\n\t\t}\n\t}\n\n\tunbindEventHandlers(eventHandlers)\n\t{\n\t\tfor (const [eventName, handler] of Object.entries(eventHandlers))\n\t\t{\n\t\t\tEvent.unbind(this.input, eventName, handler);\n\t\t}\n\t}\n\n\tsetValue(params)\n\t{\n\t\tthis.currentValue = {value: params.value};\n\t\tthis.currentValueIndex = params.valueIndex;\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\tsetValueList(valueList)\n\t{\n\t\tthis.values = valueList;\n\n\t\tif (!this.popupMenu)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst menuItemsLength = this.popupMenu.getMenuItems().length;\n\t\tfor (let i = 0; i < menuItemsLength; i++)\n\t\t{\n\t\t\tconst popupMenuItem = this.popupMenu.getMenuItems()[0];\n\t\t\tthis.popupMenu.removeMenuItem(popupMenuItem.getId(), {\n\t\t\t\tdestroyEmptyPopup: false,\n\t\t\t});\n\t\t}\n\t\tfor (const menuItem of this.getMenuItems())\n\t\t{\n\t\t\tthis.popupMenu.addMenuItem(menuItem);\n\t\t}\n\t\tthis.updateIconColors();\n\t}\n\n\tsetDisabled(disabled: boolean): void\n\t{\n\t\tthis.disabled = disabled;\n\n\t\tif (disabled)\n\t\t{\n\t\t\tthis.closePopup();\n\t\t}\n\t}\n\n\tgetInputValue()\n\t{\n\t\treturn this.input.value;\n\t}\n\n\tshowPopup()\n\t{\n\t\tif (this.shown || this.disabled)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst menuItems = this.getMenuItems();\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: -1,\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupShow: this.onPopupShowCallback,\n\t\t\t\t\tonPopupClose: this.onPopupCloseCallback,\n\t\t\t\t\tonPopupDestroy: this.onPopupCloseCallback,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\tthis.updateLoader();\n\n\t\tif (!BX.browser.IsFirefox())\n\t\t{\n\t\t\tthis.popupMenu.popupWindow.setMinWidth(this.input.offsetWidth + 2);\n\t\t}\n\n\t\tthis.popupMenu.popupWindow.setMaxWidth(300);\n\n\t\tlet menuContainer = this.popupMenu.getPopupWindow().getContentContainer();\n\t\tDom.addClass(this.popupMenu.layout.menuContainer, 'calendar-select-popup');\n\t\tthis.popupMenu.show();\n\n\t\tconst currentItem = this.getCurrentItem();\n\t\tif (currentItem?.layout)\n\t\t{\n\t\t\tmenuContainer.scrollTop = currentItem.layout.item.offsetTop - currentItem.layout.item.offsetHeight - 36 * 3;\n\t\t}\n\n\t\tthis.updateIconColors();\n\n\t\tBX.addCustomEvent(this.popupMenu.popupWindow, 'onPopupClose', () => {\n\t\t\tMenuManager.destroy(this.id);\n\t\t\tthis.shown = false;\n\t\t\tthis.popupMenu = null;\n\t\t});\n\n\t\tthis.input.select();\n\n\t\tthis.shown = true;\n\t}\n\n\tgetMenuItems()\n\t{\n\t\tconst menuItems = [];\n\n\t\tfor (let 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\tlet htmlTemp;\n\t\t\t\tif (this.values[i].reserved)\n\t\t\t\t{\n\t\t\t\t\thtmlTemp = `\n\t\t\t\t\t\t<span class=\"calendar-menu-item-title-with-status\">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.values[i].label)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span class=\"calendar-menu-item-status --red\">\n\t\t\t\t\t\t\t${Loc.getMessage('EC_LOCATION_RESERVED')}\n\t\t\t\t\t\t</span>`\n\t\t\t\t}\n\t\t\t\telse if (this.values[i].capacity)\n\t\t\t\t{\n\t\t\t\t\thtmlTemp = `\n\t\t\t\t\t\t<span class=\"calendar-menu-item-title-with-status\">\n\t\t\t\t\t    \t${BX.util.htmlspecialchars(this.values[i].label)}\n\t\t\t\t     \t</span>\n\t\t\t\t     \t<span class=\"calendar-menu-item-capacity\">\n\t\t\t\t\t    \t${BX.util.htmlspecialchars(this.values[i].labelCapacity)}\n\t\t\t\t    \t</span>`\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\thtmlTemp = `\n\t\t\t\t\t\t<span class=\"calendar-menu-item-title\">\n\t\t\t\t\t\t\t${BX.util.htmlspecialchars(this.values[i].label)}\n\t\t\t\t\t\t</span>`\n\t\t\t\t}\n\n\t\t\t\tconst classSelected = this.values[i].selected ? 'calendar-menu-popup-time-selected' : '';\n\t\t\t\tif (this.values[i].color)\n\t\t\t\t{\n\t\t\t\t\tmenuItems.push({\n\t\t\t\t\t\tid: this.values[i].value,\n\t\t\t\t\t\ttitle: this.values[i].label,\n\t\t\t\t\t\tclassName: \"menu-popup-display-flex calendar-location-popup-menu-item \" + classSelected,\n\t\t\t\t\t\thtml: htmlTemp,\n\t\t\t\t\t\tcolor: this.values[i].color,\n\t\t\t\t\t\tonclick: this.values[i].callback || ((value, label) => {\n\t\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\t\tthis.input.value = label;\n\t\t\t\t\t\t\t\tthis.popupMenu.close();\n\t\t\t\t\t\t\t\tthis.onChange();\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})(this.values[i].value, this.values[i].labelRaw || this.values[i].label)\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\tconst hint = this.values[i].hint ? ' ' + this.values[i].hint :  '';\n\t\t\t\t\tmenuItems.push({\n\t\t\t\t\t\tid: this.values[i].value,\n\t\t\t\t\t\thtml: this.values[i].label + hint,\n\t\t\t\t\t\ttitle: this.values[i].label,\n\t\t\t\t\t\tclassName: \"menu-popup-no-icon \" + classSelected,\n\t\t\t\t\t\tonclick: this.values[i].callback || ((value, label) => {\n\t\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\t\tthis.input.value = label;\n\t\t\t\t\t\t\t\tthis.popupMenu.close();\n\t\t\t\t\t\t\t\tthis.onChange(value);\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})(this.values[i].value, this.values[i].labelRaw || this.values[i].label)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn menuItems;\n\t}\n\n\tupdateIconColors()\n\t{\n\t\tlet popupMenuItems = this.popupMenu.menuItems;\n\t\tfor (let i = 0; i < popupMenuItems.length; i++)\n\t\t{\n\t\t\tif (popupMenuItems[i].layout.item)\n\t\t\t{\n\t\t\t\tlet icon = popupMenuItems[i].layout.item.querySelector('.menu-popup-item-icon');\n\t\t\t\tif (icon)\n\t\t\t\t{\n\t\t\t\t\ticon.style.backgroundColor = popupMenuItems[i].color;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetCurrentItem()\n\t{\n\t\treturn this.popupMenu.menuItems[this.getCurrentIndex()];\n\t}\n\n\tgetCurrentIndex()\n\t{\n\t\tfor (let i = 0; i < this.values.length; i++)\n\t\t{\n\t\t\tif (this.values[i].selected)\n\t\t\t{\n\t\t\t\treturn i;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.currentValue\n\t\t\t\t&& this.values[i]\n\t\t\t\t&& i > 0\n\t\t\t\t&& this.currentValue.value >= this.values[i - 1].value\n\t\t\t\t&& this.currentValue.value <= this.values[i].value\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\tclosePopup()\n\t{\n\t\tMenuManager.destroy(this.id);\n\t\tthis.popupMenu = null;\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\tonKeydown()\n\t{\n\t\tsetTimeout(BX.delegate(this.closePopup, this), 50);\n\t}\n\n\tonChange(value)\n\t{\n\t\tconst inputValue = this.input.value;\n\t\tBX.onCustomEvent(this, 'onSelectInputChanged', [this, inputValue]);\n\t\tthis.onChangeCallback({value: inputValue, dataValue: value});\n\t}\n\n\tsetLoading(isLoading: boolean): void\n\t{\n\t\tthis.isLoading = isLoading;\n\t\tthis.updateLoader();\n\t}\n\n\tupdateLoader(): void\n\t{\n\t\tif (!this.popupMenu)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isLoading)\n\t\t{\n\t\t\tthis.popupMenu.getPopupWindow().getPopupContainer().append(this.#renderLoader());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.loaderContainer?.remove();\n\t\t}\n\t}\n\n\t#renderLoader(): HTMLElement\n\t{\n\t\tif (this.loaderContainer)\n\t\t{\n\t\t\treturn this.loaderContainer;\n\t\t}\n\n\t\tthis.loaderContainer = Tag.render`<div style=\"position: absolute; inset: 0;\"></div>`;\n\n\t\tvoid new Loader().show(this.loaderContainer);\n\n\t\treturn this.loaderContainer;\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.unbindEventHandlers(this.eventHandlers);\n\n\t\tif (this.popupMenu)\n\t\t{\n\t\t\tthis.popupMenu.close();\n\t\t}\n\t\tMenuManager.destroy(this.id);\n\t\tthis.popupMenu = null;\n\t\tthis.shown = false;\n\t}\n}\n\n\n\n","export class PopupDialog {\n\tconstructor(params = {})\n\t{\n\t\tthis.id = params.id || 'popup-dialog-' + Math.random();\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.DOM = {};\n\t\tthis.title = '';\n\t}\n\n\tcreate()\n\t{\n\t\tthis.dialog = new BX.PopupWindow(this.id, null, {\n\t\t\toverlay: {opacity: 10},\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc : true,\n\t\t\tzIndex: this.zIndex,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: this.getTitle(),\n\t\t\tcloseIcon: { right : \"12px\", top : \"10px\"},\n\t\t\tclassName: 'bxc-popup-window',\n\t\t\tbuttons: this.getButtons(),\n\t\t\tcontent: this.getContent(),\n\t\t\tevents: {}\n\t\t});\n\t}\n\n\tgetTitle()\n\t{\n\t\treturn this.title;\n\t}\n\n\tgetContent()\n\t{\n\t\tthis.DOM.content = BX.create('DIV');\n\t\treturn this.DOM.content;\n\t}\n\n\tgetButtons()\n\t{\n\t\tthis.buttons = [];\n\t\treturn this.buttons;\n\t}\n\n\tshow(params)\n\t{\n\t\tif (!this.dialog)\n\t\t{\n\t\t\tthis.create();\n\t\t}\n\t\tthis.dialog.show();\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n}\n","import {Type, Dom, Event, Tag, Loc} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {MenuManager} from 'main.popup';\n\nexport class ViewSelector extends EventEmitter\n{\n\tviews = [];\n\tcreated = false;\n\tcurrentValue = null;\n\tcurrentViewMode = null;\n\tDOM = {};\n\n\tconstructor(params = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ViewSelector');\n\n\t\tif (Type.isArray(params.views))\n\t\t{\n\t\t\tthis.views = params.views;\n\t\t}\n\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.popupId = params.id || 'view-selector-' + Math.round(Math.random() * 10000);\n\t\tthis.create();\n\n\t\tif (params.currentView)\n\t\t{\n\t\t\tthis.setValue(params.currentView);\n\t\t}\n\n\t\tif (params.currentViewMode)\n\t\t{\n\t\t\tthis.setViewMode(params.currentViewMode);\n\t\t}\n\t}\n\n\tcreate()\n\t{\n\t\tthis.DOM.wrap = Tag.render`<div class=\"calendar-view-switcher-selector\"></div>`;\n\t\tthis.DOM.selectorText = Tag.render`<div class=\"calendar-view-switcher-text\"></div>`;\n\t\tthis.DOM.selectorTextInner = this.DOM.selectorText.appendChild(Tag.render`<div class=\"calendar-view-switcher-text-inner\"></div>`);\n\t\tthis.DOM.wrap.appendChild(this.DOM.selectorText);\n\t\tthis.DOM.wrap.appendChild(Tag.render`<div class=\"calendar-view-switcher-dropdown\"></div>`);\n\t\tEvent.bind(this.DOM.wrap, 'click', this.showPopup.bind(this));\n\t\tthis.DOM.viewModeTextInner = this.DOM.selectorText.appendChild(Tag.render`<div class=\"calendar-view-switcher-text-mode-inner\" style=\"display: none;\"></div>`);\n\n\t\tthis.created = true;\n\t}\n\n\tgetOuterWrap()\n\t{\n\t\tif (!this.created)\n\t\t{\n\t\t\tthis.create();\n\t\t}\n\n\t\treturn this.DOM.wrap;\n\t}\n\n\tsetValue(value)\n\t{\n\t\tthis.currentValue = this.views.find(function(view)\n\t\t{\n\t\t\treturn value.name === view.name;\n\t\t}, this);\n\n\t\tif (this.currentValue)\n\t\t{\n\t\t\tDom.adjust(this.DOM.selectorTextInner, {text: this.currentValue.text});\n\t\t}\n\t}\n\n\tsetViewMode(value)\n\t{\n\t\tif (value)\n\t\t{\n\t\t\tthis.currentViewMode = this.views.find(function(view)\n\t\t\t{\n\t\t\t\treturn value === view.name && view.type === 'additional';\n\t\t\t}, this);\n\n\t\t\tif (this.currentViewMode)\n\t\t\t{\n\t\t\t\tDom.adjust(this.DOM.viewModeTextInner, {text: '(' + this.currentViewMode.text + ')'});\n\t\t\t}\n\t\t\tthis.DOM.viewModeTextInner.style.display = this.currentViewMode ? '' : 'block';\n\t\t}\n\t}\n\n\tgetMenuItems()\n\t{\n\t\tlet menuItems = [];\n\t\tthis.views.forEach(function(view)\n\t\t{\n\t\t\tif (view.type === 'base')\n\t\t\t{\n\t\t\t\tmenuItems.push({\n\t\t\t\t\thtml: '<span>' + view.text + '</span>' + (view.hotkey ? '<span class=\"calendar-item-hotkey\">' + view.hotkey + '</span>' : ''),\n\t\t\t\t\t//text: view.text,\n\t\t\t\t\tclassName: this.currentValue.name === view.name ? 'menu-popup-item-accept' : ' ',\n\t\t\t\t\tonclick: function(){\n\t\t\t\t\t\tthis.emit('onChange', {\n\t\t\t\t\t\t\tname: view.name,\n\t\t\t\t\t\t\ttype: view.type,\n\t\t\t\t\t\t\tdataset: view.dataset\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.menuPopup.close();\n\t\t\t\t\t}.bind(this)\n\t\t\t\t});\n\t\t\t}\n\t\t}, this);\n\n\t\tif (menuItems.length < this.views.length)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\thtml: '<span>' + Loc.getMessage('EC_VIEW_MODE_SHOW_BY') + '</span>',\n\t\t\t\tclassName: 'main-buttons-submenu-separator main-buttons-submenu-item main-buttons-hidden-label'\n\t\t\t});\n\n\t\t\tthis.views.forEach(function(view)\n\t\t\t{\n\t\t\t\tif (view.type === 'additional')\n\t\t\t\t{\n\t\t\t\t\tmenuItems.push({\n\t\t\t\t\t\ttext: view.text,\n\t\t\t\t\t\tclassName: this.currentViewMode.name === view.name ? 'menu-popup-item-accept' : ' ',\n\t\t\t\t\t\tonclick: function(){\n\t\t\t\t\t\t\tthis.emit('onChange', {\n\t\t\t\t\t\t\t\tname: view.name,\n\t\t\t\t\t\t\t\ttype: view.type,\n\t\t\t\t\t\t\t\tdataset: view.dataset\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.menuPopup.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\n\t\treturn menuItems;\n\t}\n\n\tshowPopup()\n\t{\n\t\tif (this.menuPopup && this.menuPopup.popupWindow && this.menuPopup.popupWindow.isShown())\n\t\t{\n\t\t\treturn this.menuPopup.close();\n\t\t}\n\n\t\tthis.menuPopup = MenuManager.create(\n\t\t\tthis.popupId,\n\t\t\tthis.DOM.selectorText,\n\t\t\tthis.getMenuItems(),\n\t\t\t{\n\t\t\t\tclassName: \"calendar-view-switcher-popup\",\n\t\t\t\tcloseByEsc : true,\n\t\t\t\tautoHide : true,\n\t\t\t\tzIndex: this.zIndex,\n\t\t\t\toffsetTop: -3,\n\t\t\t\toffsetLeft: this.DOM.selectorText.offsetWidth - 6,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false\n\t\t\t}\n\t\t);\n\n\t\tthis.menuPopup.show();\n\t}\n\n\tclosePopup()\n\t{\n\t\tif (this.menuPopup && this.menuPopup.popupWindow && this.menuPopup.popupWindow.isShown())\n\t\t{\n\t\t\tthis.menuPopup.close();\n\t\t}\n\t}\n\n\tshow()\n\t{\n\t\tthis.DOM.wrap.style.display = '';\n\t}\n\n\thide()\n\t{\n\t\tthis.DOM.wrap.style.display = 'none';\n\t}\n}\n\n\n\n","import { Type, Loc } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { NavigationPanel } from 'ui.navigationpanel';\n\nexport class LineViewSelector extends EventEmitter\n{\n\tviews = [];\n\tcreated = false;\n\tcurrentValue = null;\n\tcurrentViewMode = null;\n\tDOM = {};\n\ttarget: ?HTMLElement = null;\n\tnavigationPanel: ?NavigationPanel = null;\n\n\tconstructor(params = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.LineViewSelector');\n\n\t\tif (Type.isArray(params.views))\n\t\t{\n\t\t\tthis.views = params.views;\n\t\t}\n\n\t\tthis.target = params.target;\n\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.popupId = params.id || `view-selector-${Math.round(Math.random() * 10000)}`;\n\t\tthis.create();\n\n\t\tif (params.currentView)\n\t\t{\n\t\t\tthis.setValue(params.currentView);\n\t\t}\n\t}\n\n\tcreate()\n\t{\n\t\tif (Type.isDomNode(this.target) && !this.navigationPanel)\n\t\t{\n\t\t\tconst items = [];\n\t\t\tthis.views.forEach((view) => {\n\t\t\t\tif (view.type === 'base')\n\t\t\t\t{\n\t\t\t\t\titems.push(this.getItem(view));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.navigationPanel = new NavigationPanel({\n\t\t\t\ttarget: this.target,\n\t\t\t\titems,\n\t\t\t});\n\n\t\t\tthis.navigationPanel.init();\n\t\t}\n\t}\n\n\tgetItem(view): Object\n\t{\n\t\tconst click = () => {\n\t\t\tthis.emit('onChange', {\n\t\t\t\tname: view.name,\n\t\t\t\ttype: view.type,\n\t\t\t\tdataset: view.dataset,\n\t\t\t});\n\t\t};\n\n\t\treturn {\n\t\t\tid: view.name,\n\t\t\ttitle: view.text,\n\t\t\tactive: false,\n\t\t\tevents: {\n\t\t\t\tclick,\n\t\t\t},\n\t\t};\n\t}\n\n\tsetValue(value)\n\t{\n\t\tthis.currentValue = this.views.find((view) => {\n\t\t\treturn value.name === view.name;\n\t\t});\n\n\t\tif (this.currentValue)\n\t\t{\n\t\t\tconst targetWrap = this.navigationPanel.getItemById(this.currentValue.name);\n\n\t\t\tif (targetWrap)\n\t\t\t{\n\t\t\t\ttargetWrap.activate();\n\t\t\t}\n\t\t}\n\t}\n\n\tsetViewMode(value)\n\t{\n\t\tif (value)\n\t\t{\n\t\t\tthis.currentViewMode = this.views.find((view) => {\n\t\t\t\treturn value === view.name && view.type === 'additional';\n\t\t\t});\n\t\t}\n\t}\n\n\tgetMenuItems()\n\t{\n\t\tconst menuItems = [];\n\t\tthis.views.forEach((view) => {\n\t\t\tif (view.type === 'base')\n\t\t\t{\n\t\t\t\tmenuItems.push({\n\t\t\t\t\thtml: `<span>${view.text}</span>${view.hotkey ? `<span class=\"calendar-item-hotkey\">${view.hotkey}</span>` : ''}`,\n\t\t\t\t\tclassName: this.currentValue.name === view.name ? 'menu-popup-item-accept' : ' ',\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.emit('onChange', {\n\t\t\t\t\t\t\tname: view.name,\n\t\t\t\t\t\t\ttype: view.type,\n\t\t\t\t\t\t\tdataset: view.dataset,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.menuPopup.close();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tif (menuItems.length < this.views.length)\n\t\t{\n\t\t\tmenuItems.push({\n\t\t\t\thtml: `<span>${Loc.getMessage('EC_VIEW_MODE_SHOW_BY')}</span>`,\n\t\t\t\tclassName: 'main-buttons-submenu-separator main-buttons-submenu-item main-buttons-hidden-label',\n\t\t\t});\n\n\t\t\tthis.views.forEach(function(view)\n\t\t\t{\n\t\t\t\tif (view.type === 'additional')\n\t\t\t\t{\n\t\t\t\t\tmenuItems.push({\n\t\t\t\t\t\ttext: view.text,\n\t\t\t\t\t\tclassName: this.currentViewMode.name === view.name ? 'menu-popup-item-accept' : ' ',\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.emit('onChange', {\n\t\t\t\t\t\t\t\tname: view.name,\n\t\t\t\t\t\t\t\ttype: view.type,\n\t\t\t\t\t\t\t\tdataset: view.dataset,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.menuPopup.close();\n\t\t\t\t\t\t}.bind(this),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, this);\n\t\t}\n\n\t\treturn menuItems;\n\t}\n}\n","import {Dom, Loc, Type} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\n\nexport class AddButton extends EventEmitter\n{\n\tshowTasks = false;\n\tDOM = {};\n\n\tconstructor(params = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.AddButton');\n\t\tthis.zIndex = params.zIndex || 3200;\n\t\tthis.popupId = params.id || 'add-button-' + Math.round(Math.random() * 10000);\n\t\tthis.showTasks = params.showTasks;\n\n\t\tthis.addEntryHandler = Type.isFunction(params.addEntry) ? params.addEntry : null;\n\t\tthis.addTaskHandler = Type.isFunction(params.addTask) ? params.addTask : null;\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tthis.menuItems = [\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('EC_EVENT_BUTTON'),\n\t\t\t\tonclick: this.addEntry.bind(this)\n\t\t\t}\n\t\t];\n\n\t\tif (this.addTaskHandler)\n\t\t{\n\t\t\tthis.menuItems.push({\n\t\t\t\ttext: Loc.getMessage('EC_TASK_BUTTON'),\n\t\t\t\tonclick: this.addTask.bind(this)\n\t\t\t});\n\t\t}\n\n\t\tif (this.menuItems.length > 1)\n\t\t{\n\t\t\tthis.DOM.wrap = Dom.create(\"span\", {\n\t\t\t\tprops: {className: \"ui-btn-split ui-btn-success\"},\n\t\t\t\tchildren: [\n\t\t\t\t\tDom.create(\"button\", {\n\t\t\t\t\t\tprops: {className: \"ui-btn-main\", type: \"button\"},\n\t\t\t\t\t\thtml: Loc.getMessage('EC_CREATE'),\n\t\t\t\t\t\tevents: {click: this.addEntry.bind(this)}\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t});\n\t\t\tthis.DOM.addButtonExtra = Dom.create(\"span\", {\n\t\t\t\tprops: {className: \"ui-btn-extra\"},\n\t\t\t\tevents: {click: this.showPopup.bind(this)}\n\t\t\t});\n\n\t\t\tthis.DOM.wrap.appendChild(this.DOM.addButtonExtra)\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.wrap = Dom.create(\"button\", {\n\t\t\t\tprops: {className: \"ui-btn ui-btn-success\", type: \"button\"},\n\t\t\t\thtml: Loc.getMessage('EC_CREATE'),\n\t\t\t\tevents: {click: this.addEntry.bind(this)}\n\t\t\t});\n\t\t}\n\t\tthis.DOM.wrap.setAttribute('data-role', 'addButton');\n\t}\n\n\tgetWrap()\n\t{\n\t\treturn this.DOM.wrap;\n\t}\n\n\tshowPopup()\n\t{\n\t\tif (this.menuPopup && this.menuPopup.popupWindow && this.menuPopup.popupWindow.isShown())\n\t\t{\n\t\t\treturn this.menuPopup.close();\n\t\t}\n\n\t\tthis.menuPopup = BX.PopupMenu.create(\n\t\t\tthis.popupId,\n\t\t\tthis.DOM.addButtonExtra,\n\t\t\tthis.menuItems,\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: 15,\n\t\t\t\tangle: true\n\t\t\t}\n\t\t);\n\n\t\tthis.menuPopup.show();\n\n\t\tBX.addCustomEvent(this.menuPopup.popupWindow, 'onPopupClose', function()\n\t\t{\n\t\t\tBX.PopupMenu.destroy(this.popupId);\n\t\t\tthis.menuPopup = null;\n\t\t\tthis.addBtnMenu = null;\n\t\t}.bind(this));\n\t}\n\n\taddEntry()\n\t{\n\t\tif (this.addEntryHandler)\n\t\t{\n\t\t\tthis.addEntryHandler();\n\t\t}\n\n\t\tif (this.menuPopup && this.menuPopup.popupWindow && this.menuPopup.popupWindow.isShown())\n\t\t{\n\t\t\tthis.menuPopup.close();\n\t\t}\n\t}\n\n\taddTask()\n\t{\n\t\tif (this.addTaskHandler)\n\t\t{\n\t\t\tthis.addTaskHandler();\n\t\t}\n\n\t\tif (this.menuPopup && this.menuPopup.popupWindow && this.menuPopup.popupWindow.isShown())\n\t\t{\n\t\t\tthis.menuPopup.close();\n\t\t}\n\t}\n}","import {Dom, Event, Loc, Type} from 'main.core';\nimport {Util} from 'calendar.util';\n\nexport class MeetingStatusControl extends Event.EventEmitter\n{\n\tshowTasks = false;\n\tDOM = {};\n\n\tconstructor(params = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.MeetingStatusControl');\n\t\tthis.BX = Util.getBX();\n\n\t\tif (params.wrap && Type.isDomNode(params.wrap))\n\t\t{\n\t\t\tthis.DOM.wrap = params.wrap;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"The argument \\\"params.wrap\\\" must be a DOM node.\");\n\t\t}\n\t\tthis.id = params.id || 'meeting-status-control-' + Math.round(Math.random() * 10000);\n\t\tthis.zIndex = 3100;\n\n\t\tthis.create();\n\n\t\tthis.status = params.currentStatus || null;\n\t\tif (this.status)\n\t\t{\n\t\t\tthis.updateStatus();\n\t\t}\n\t}\n\n\tcreate()\n\t{\n\t\tthis.acceptBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_VIEW_DESIDE_BUT_Y'),\n\t\t\tclassName: 'ui-btn ui-btn-primary',\n\t\t\tevents: {click: this.accept.bind(this)}\n\t\t});\n\t\tthis.acceptBtn.renderTo(this.DOM.wrap);\n\n\t\tthis.declineBtn = new BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_VIEW_DESIDE_BUT_N'),\n\t\t\tclassName: 'ui-btn ui-btn-light-border',\n\t\t\tevents: {click: this.decline.bind(this)}\n\t\t});\n\t\tthis.declineBtn.renderTo(this.DOM.wrap);\n\t}\n\n\tupdateStatus()\n\t{\n\t\tif (this.status === 'H')\n\t\t{\n\t\t\tthis.acceptBtn.getContainer().style.display = 'none';\n\t\t\tthis.declineBtn.getContainer().style.display = '';\n\t\t\tthis.declineBtn.setText(Loc.getMessage('EC_VIEW_DESIDE_BUT_OWNER_N'));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.status === 'Y')\n\t\t\t{\n\t\t\t\tthis.acceptBtn.getContainer().style.display = 'none';\n\t\t\t\tthis.declineBtn.getContainer().style.display = '';\n\t\t\t}\n\t\t\telse if (this.status === 'N')\n\t\t\t{\n\t\t\t\tthis.acceptBtn.getContainer().style.display = '';\n\t\t\t\tthis.declineBtn.getContainer().style.display = 'none';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.acceptBtn.getContainer().style.display = '';\n\t\t\t\tthis.declineBtn.getContainer().style.display = '';\n\t\t\t}\n\t\t}\n\t}\n\n\taccept()\n\t{\n\t\tthis.setStatus('Y');\n\t}\n\n\tdecline()\n\t{\n\t\tthis.setStatus('N');\n\t}\n\n\tsetStatus(value, emitEvent = true)\n\t{\n\t\tthis.status = value;\n\n\t\tif (this.menuPopup)\n\t\t{\n\t\t\tthis.menuPopup.close();\n\t\t}\n\n\t\tif (emitEvent)\n\t\t{\n\t\t\tthis.emit('onSetStatus', new Event.BaseEvent({data: {status: value}}));\n\t\t}\n\t}\n}","import {Loc, Tag} from 'main.core';\nimport { EntryManager } from 'calendar.entry';\nimport { EventEmitter, BaseEvent} from 'main.core.events';\nimport { Button, ButtonColor, ButtonSize } from \"ui.buttons\";\nimport { Popup } from 'main.popup';\n\n\nexport class ConfirmStatusDialog extends EventEmitter\n{\n\tDOM = {};\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ConfirmStatusDialog');\n\t\tthis.zIndex = 3200;\n\t\tthis.id = 'confirm-status-dialog-' + Math.round(Math.random() * 10000);\n\t}\n\n\tshow()\n\t{\n\t\tthis.dialog = new Popup({\n\t\t\tid: this.id,\n\t\t\ttitleBar: Loc.getMessage('EC_DECLINE_REC_EVENT'),\n\t\t\tcontent: this.getContent(),\n\t\t\tclassName: 'calendar__confirm-dialog',\n\t\t\tlightShadow: true,\n\t\t\tmaxWidth: 700,\n\t\t\tminHeight: 120,\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc: true,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tcloseIcon: true,\n\t\t\tanimation: 'fading-slide',\n\t\t\tcontentBackground: \"#fff\",\n\t\t\toverlay: { opacity: 15 },\n\t\t\tcacheable: false,\n\t\t});\n\n\t\tthis.dialog.show();\n\t}\n\n\tgetContent()\n\t{\n\t\tconst thisEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_DECLINE_ONLY_THIS'),\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tthis.onDeclineHandler();\n\t\t\t\t\tthis.emit('onDecline', new BaseEvent({data: {recursionMode: 'this'}}));\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst nextEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_DECLINE_NEXT'),\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tthis.onDeclineHandler();\n\t\t\t\t\tthis.emit('onDecline', new BaseEvent({data: {recursionMode: 'next'}}));\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst allEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_DECLINE_ALL'),\n\t\t\tevents: {\n\t\t\t\tclick : () => {\n\t\t\t\t\tthis.onDeclineHandler();\n\t\t\t\t\tthis.emit('onDecline', new BaseEvent({data: {recursionMode: 'all'}}));\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar__confirm-dialog-content\">\n\t\t\t\t${thisEventButton.render()}\n\t\t\t\t${nextEventButton.render()}\n\t\t\t\t${allEventButton.render()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n\n\tonDeclineHandler()\n\t{\n\t\tthis.close();\n\t\tconst compactForm = EntryManager.getCompactViewForm();\n\t\tif (\n\t\t\tcompactForm\n\t\t\t&& compactForm.isShown()\n\t\t)\n\t\t{\n\t\t\tcompactForm.close();\n\t\t}\n\t}\n}\n","import { Loc, Tag } from 'main.core';\nimport { EventEmitter, BaseEvent } from 'main.core.events';\nimport { Popup } from 'main.popup';\nimport { Button, ButtonSize, ButtonState, ButtonColor } from 'ui.buttons';\n\ntype Options = {\n\tcanEditOnlyThis: ?boolean,\n};\n\nexport class ConfirmEditDialog extends EventEmitter\n{\n\tDOM = {};\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ConfirmEditDialog');\n\t\tthis.zIndex = 3200;\n\t\tthis.id = 'confirm-edit-dialog-' + Math.round(Math.random() * 10000);\n\t}\n\n\tshow(options: Options)\n\t{\n\t\tthis.dialog = new Popup({\n\t\t\ttitleBar: Loc.getMessage('EC_EDIT_REC_EVENT'),\n\t\t\tcontent: this.getContent(options),\n\t\t\tclassName: 'calendar__confirm-dialog',\n\t\t\tlightShadow: true,\n\t\t\tmaxWidth: 700,\n\t\t\tminHeight: 120,\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc: true,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tcloseIcon: true,\n\t\t\tanimation: 'fading-slide',\n\t\t\tcontentBackground: \"#fff\",\n\t\t\toverlay: { opacity: 15 },\n\t\t\tcacheable: false,\n\t\t});\n\n\t\tthis.dialog.show();\n\t}\n\n\tgetContent(options: Options)\n\t{\n\t\tconst thisEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_REC_EV_ONLY_THIS_EVENT'),\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tthis.emit('onEdit', new BaseEvent({data: {recursionMode: 'this'}}));\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst notOnlyThisState = options.canEditOnlyThis ? ButtonState.DISABLED : null;\n\n\t\tconst nextEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_REC_EV_NEXT'),\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tif (options.canEditOnlyThis)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showCanEditOnlyThisPopup(\n\t\t\t\t\t\t\tnextEventButton.getContainer(),\n\t\t\t\t\t\t\tLoc.getMessage('EC_ONLY_AUTHOR_CAN_EDIT_NEXT'),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.emit('onEdit', new BaseEvent({data: {recursionMode: 'next'}}));\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t},\n\t\t\tstate: notOnlyThisState,\n\t\t});\n\n\t\tconst allEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_REC_EV_ALL'),\n\t\t\tevents: {\n\t\t\t\tclick : () => {\n\t\t\t\t\tif (options.canEditOnlyThis)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showCanEditOnlyThisPopup(\n\t\t\t\t\t\t\tallEventButton.getContainer(),\n\t\t\t\t\t\t\tLoc.getMessage('EC_ONLY_AUTHOR_CAN_EDIT_ALL'),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.emit('onEdit', new BaseEvent({data: {recursionMode: 'all'}}));\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t},\n\t\t\tstate: notOnlyThisState,\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar__confirm-dialog-content\">\n\t\t\t\t${thisEventButton.render()}\n\t\t\t\t${nextEventButton.render()}\n\t\t\t\t${allEventButton.render()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tshowCanEditOnlyThisPopup(bindElement, content)\n\t{\n\t\tclearTimeout(this.hideCanEditOnlyThisPopupTimeout);\n\n\t\tconst popup = new Popup({\n\t\t\tbindElement,\n\t\t\tcontent,\n\t\t\tdarkMode: true,\n\t\t\tbindOptions: { position: 'top' },\n\t\t\toffsetTop: -10,\n\t\t\tangle: true,\n\t\t\tautoHide: true,\n\t\t\tevents: {\n\t\t\t\tonShow: () => {\n\t\t\t\t\tconst angleLeft = Popup.getOption('angleMinBottom');\n\t\t\t\t\tconst popupWidth = popup.getPopupContainer().offsetWidth;\n\t\t\t\t\tconst elementWidth = popup.bindElement.offsetWidth;\n\n\t\t\t\t\tpopup.setOffset({ offsetLeft: elementWidth / 2 - popupWidth / 2 });\n\t\t\t\t\tpopup.adjustPosition();\n\n\t\t\t\t\tif (popup.angle)\n\t\t\t\t\t{\n\t\t\t\t\t\tpopup.setAngle({ offset: popupWidth / 2 + angleLeft });\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tpopup.show();\n\n\t\tthis.hideCanEditOnlyThisPopupTimeout = setTimeout(() => popup.close(), 2000);\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n}\n","'use strict';\nimport { Popup } from 'main.popup';\nimport { Button, ButtonColor, ButtonSize } from \"ui.buttons\";\nimport {Loc, Tag} from \"main.core\";\n\n\nexport class ConfirmDeleteDialog\n{\n\tconstructor(params = {})\n\t{\n\t\tthis.entry = params.entry;\n\t}\n\n\tshow()\n\t{\n\t\tthis.dialog = new Popup({\n\t\t\ttitleBar: Loc.getMessage('EC_DEL_REC_EVENT'),\n\t\t\tcontent: this.getContent(),\n\t\t\tclassName: 'calendar__confirm-dialog',\n\t\t\tlightShadow: true,\n\t\t\tmaxWidth: 700,\n\t\t\tminHeight: 120,\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc: true,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tcloseIcon: true,\n\t\t\tanimation: 'fading-slide',\n\t\t\tcontentBackground: \"#fff\",\n\t\t\toverlay: { opacity: 15 },\n\t\t\tcacheable: false,\n\t\t});\n\n\t\tthis.dialog.show();\n\t}\n\n\tgetContent()\n\t{\n\t\tconst thisEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_REC_EV_ONLY_THIS_EVENT'),\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tthis.entry.deleteThis();\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst nextEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_REC_EV_NEXT'),\n\t\t\tevents: {\n\t\t\t\tclick: () => {\n\t\t\t\t\tthis.entry.deleteNext();\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tconst allEventButton = new Button({\n\t\t\tsize: ButtonSize.MEDIUM,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\ttext: Loc.getMessage('EC_REC_EV_ALL'),\n\t\t\tevents: {\n\t\t\t\tclick : () => {\n\t\t\t\t\tthis.entry.deleteAll();\n\t\t\t\t\tthis.close();\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"calendar__confirm-dialog-content\">\n\t\t\t\t${thisEventButton.render()}\n\t\t\t\t${nextEventButton.render()}\n\t\t\t\t${allEventButton.render()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n}\n","'use strict';\n\nimport { Type, Event, Loc, Dom, Tag } from 'main.core';\nimport { Util } from 'calendar.util';\nimport { TimeSelector } from './timeselector';\nimport { EventEmitter, BaseEvent } from 'main.core.events';\nimport { DatePicker } from 'ui.date-picker';\nimport { Menu, MenuItem } from 'main.popup';\n\nexport class DateTimeControl extends EventEmitter\n{\n\t#dateFromPicker: DatePicker;\n\t#dateToPicker: DatePicker;\n\t#tzFromMenu: Menu;\n\t#tzToMenu: Menu;\n\n\tDATE_INPUT_WIDTH = 110;\n\tTIME_INPUT_WIDTH = 90;\n\tzIndex = 4200;\n\n\tfrom = null;\n\tto = null;\n\n\tconstructor(uid, options = { showTimezone: true })\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.DateTimeControl');\n\n\t\tthis.showTimezone = options.showTimezone;\n\t\tthis.inlineEditMode = Boolean(options.inlineEditMode);\n\t\tthis.currentInlineEditMode = options.currentInlineEditMode || 'view';\n\n\t\tthis.UID = uid || `date-time-${Math.round(Math.random() * 100_000)}`;\n\n\t\tthis.DOM = {\n\t\t\touterWrap: options.outerWrap || null,\n\t\t\touterContent: options.outerContent || null,\n\t\t};\n\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tif (Type.isDomNode(this.DOM.outerWrap))\n\t\t{\n\t\t\tif (this.inlineEditMode)\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.outerWrap, 'calendar-datetime-inline-mode-view');\n\t\t\t}\n\n\t\t\tthis.DOM.leftInnerWrap = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-field-block calendar-field-block-left\"></div>`);\n\n\t\t\tthis.DOM.fromDate = this.DOM.leftInnerWrap.appendChild(Tag.render`\n\t\t\t\t<input class=\"calendar-field calendar-field-datetime\" value=\"\" type=\"text\" autocomplete=\"off\" style=\"width: ${this.DATE_INPUT_WIDTH}px;\"/>\n\t\t\t`);\n\t\t\tif (this.inlineEditMode)\n\t\t\t{\n\t\t\t\tthis.DOM.fromDateText = this.DOM.leftInnerWrap.appendChild(Tag.render`<span class=\"calendar-field-value calendar-field-value-date\"></span>`);\n\t\t\t}\n\n\t\t\tthis.DOM.fromTime = this.DOM.leftInnerWrap.appendChild(Tag.render`\n\t\t\t\t<input class=\"calendar-field calendar-field-time\" value=\"\" type=\"text\" autocomplete=\"off\" style=\"width: ${this.TIME_INPUT_WIDTH}px; max-width: ${this.TIME_INPUT_WIDTH}px;\"/>\n\t\t\t`);\n\t\t\tif (this.inlineEditMode)\n\t\t\t{\n\t\t\t\tthis.DOM.fromTimeText = this.DOM.leftInnerWrap.appendChild(Tag.render`<span class=\"calendar-field-value calendar-field-value-time\"></span>`);\n\t\t\t}\n\n\t\t\tthis.DOM.betweenSpacer = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-field-block calendar-field-block-between\" />`);\n\n\t\t\tthis.DOM.rightInnerWrap = this.DOM.outerWrap.appendChild(Tag.render`<div class=\"calendar-field-block calendar-field-block-right\"></div>`);\n\n\t\t\tthis.DOM.toTime = this.DOM.rightInnerWrap.appendChild(Tag.render`\n\t\t\t\t<input class=\"calendar-field calendar-field-time\" value=\"\" type=\"text\" autocomplete=\"off\" style=\"width: ${this.TIME_INPUT_WIDTH}px; max-width: ${this.TIME_INPUT_WIDTH}px;\"/>\n\t\t\t`);\n\t\t\tif (this.inlineEditMode)\n\t\t\t{\n\t\t\t\tthis.DOM.toTimeText = this.DOM.rightInnerWrap.appendChild(Tag.render`<span class=\"calendar-field-value calendar-field-value-time\"></span>`);\n\t\t\t}\n\n\t\t\tthis.DOM.toDate = this.DOM.rightInnerWrap.appendChild(Tag.render`\n\t\t\t\t<input class=\"calendar-field calendar-field-datetime\" value=\"\" type=\"text\" autocomplete=\"off\" style=\"width: ${this.DATE_INPUT_WIDTH}px;\"/>\n\t\t\t`);\n\n\t\t\tif (this.inlineEditMode)\n\t\t\t{\n\t\t\t\tthis.DOM.toDateText = this.DOM.rightInnerWrap.appendChild(Tag.render`<span class=\"calendar-field-value calendar-field-value-date\"></span>`);\n\t\t\t}\n\n\t\t\tthis.fromTimeControl = new TimeSelector({\n\t\t\t\tinput: this.DOM.fromTime,\n\t\t\t\tonChangeCallback: this.handleTimeFromChange.bind(this),\n\t\t\t});\n\n\t\t\tthis.toTimeControl = new TimeSelector({\n\t\t\t\tinput: this.DOM.toTime,\n\t\t\t\tonChangeCallback: this.handleTimeToChange.bind(this),\n\t\t\t});\n\n\t\t\tconst fullDayWrap = this.DOM.outerWrap.appendChild(Tag.render`\n\t\t\t\t<span class=\"calendar-event-full-day\"></span>\n\t\t\t`);\n\t\t\tthis.DOM.fullDay = fullDayWrap.appendChild(Tag.render`\n\t\t\t\t<input value=\"Y\" type=\"checkbox\" id=\"{this.UID}\"/>\n\t\t\t`);\n\t\t\tfullDayWrap.appendChild(Tag.render`<label for=\"{this.UID}\">${Loc.getMessage('EC_ALL_DAY')}</label>`);\n\t\t}\n\n\t\t// this.DOM.defTimezoneWrap = BX(this.UID + '_timezone_default_wrap');\n\t\t// this.DOM.defTimezone = BX(this.UID + '_timezone_default');\n\n\t\tif (this.showTimezone)\n\t\t{\n\t\t\t// this.DOM.fromTz = BX(this.UID + '_timezone_from');\n\t\t\t// this.DOM.toTz = BX(this.UID + '_timezone_to');\n\t\t\t// this.DOM.tzButton = BX(this.UID + '_timezone_btn');\n\t\t\t// this.DOM.tzOuterCont = BX(this.UID + '_timezone_wrap');\n\t\t\t// this.DOM.tzCont = BX(this.UID + '_timezone_inner_wrap');\n\t\t\t// BX(this.UID + '_timezone_hint').title = BX.message('EC_EVENT_TZ_HINT');\n\t\t\t// BX(this.UID + '_timezone_default_hint').title = BX.message('EC_EVENT_TZ_DEF_HINT');\n\t\t}\n\n\t\tthis.bindEventHandlers();\n\t}\n\n\tsetValue(value = {})\n\t{\n\t\tthis.DOM.fromDate.value = Util.formatDate(value.from);\n\t\tthis.DOM.toDate.value = Util.formatDate(value.to);\n\n\t\tthis.DOM.fromTime.value = Util.formatTime(value.from);\n\t\tthis.DOM.toTime.value = Util.formatTime(value.to);\n\n\t\tconst parsedFromTime = Util.parseTime(this.DOM.fromTime.value);\n\t\tconst parsedToTime = Util.parseTime(this.DOM.toTime.value);\n\t\tthis.fromMinutes = parsedFromTime.h * 60 + parsedFromTime.m;\n\t\tthis.toMinutes = parsedToTime.h * 60 + parsedToTime.m;\n\n\t\tthis.updateTimePeriod();\n\n\t\tif (this.inlineEditMode)\n\t\t{\n\t\t\tthis.DOM.fromDateText.innerHTML = Util.formatDateUsable(value.from, true, true);\n\t\t\tthis.DOM.toDateText.innerHTML = Util.formatDateUsable(value.to, true, true);\n\n\t\t\t// Hide right part if it's the same date\n\t\t\tthis.DOM.toDateText.style.display = this.DOM.fromDate.value === this.DOM.toDate.value ? 'none' : '';\n\n\t\t\tif (value.fullDay)\n\t\t\t{\n\t\t\t\tif (this.DOM.fromDate.value === this.DOM.toDate.value)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.toTimeText.innerHTML = Loc.getMessage('EC_ALL_DAY');\n\t\t\t\t\tthis.DOM.toTimeText.style.display = '';\n\t\t\t\t\tthis.DOM.fromTimeText.style.display = 'none';\n\t\t\t\t\tthis.DOM.fromTimeText.innerHTML = '';\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.betweenSpacer.style.display = '';\n\t\t\t\t\tthis.DOM.fromTimeText.style.display = 'none';\n\t\t\t\t\tthis.DOM.toTimeText.style.display = 'none';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.DOM.fromTimeText.innerHTML = this.DOM.fromTime.value;\n\t\t\t\tthis.DOM.toTimeText.innerHTML = this.DOM.toTime.value;\n\t\t\t\tthis.DOM.betweenSpacer.style.display = '';\n\t\t\t\tthis.DOM.fromTimeText.style.display = '';\n\t\t\t\tthis.DOM.toTimeText.style.display = '';\n\t\t\t}\n\t\t}\n\n\t\tif (value.fullDay !== undefined)\n\t\t{\n\t\t\tthis.DOM.fullDay.checked = value.fullDay;\n\t\t}\n\n\t\tif (this.showTimezone)\n\t\t{\n\t\t\tvalue.timezoneFrom = value.timezoneFrom || value.timezoneName;\n\t\t\tvalue.timezoneTo = value.timezoneTo || value.timezoneName;\n\n\t\t\tif (value.timezoneFrom !== undefined && Type.isDomNode(this.DOM.fromTz))\n\t\t\t{\n\t\t\t\tthis.DOM.fromTz.dataset.value = value.timezoneFrom;\n\t\t\t\tthis.DOM.fromTz.value = this.getTimezoneNameWithShift(value.timezoneFrom);\n\t\t\t}\n\n\t\t\tif (value.timezoneTo !== undefined && Type.isDomNode(this.DOM.toTz))\n\t\t\t{\n\t\t\t\tthis.DOM.toTz.dataset.value = value.timezoneTo;\n\t\t\t\tthis.DOM.toTz.value = this.getTimezoneNameWithShift(value.timezoneTo);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tvalue.timezoneName !== undefined\n\t\t\t\t&& (\n\t\t\t\t\tvalue.timezoneName !== value.timezoneFrom\n\t\t\t\t\t|| value.timezoneName !== value.timezoneTo\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.switchTimezone(true);\n\t\t\t}\n\t\t}\n\t\tthis.value = value;\n\n\t\tthis.handleFullDayChange();\n\t\tthis.emit('onSetValue');\n\t}\n\n\tupdateTimePeriod()\n\t{\n\t\tthis.from = this.getFrom();\n\t\tthis.to = this.getTo();\n\t\tthis.fromTimeControl.highlightValue(this.from);\n\t\tthis.toTimeControl.highlightValue(this.to);\n\t\tthis.updateToTimeDurationHints();\n\t\tthis.initDatePicker();\n\t}\n\n\tinitDatePicker()\n\t{\n\t\tthis.#dateFromPicker ??= new DatePicker({\n\t\t\ttargetNode: this.DOM.fromDate,\n\t\t\tselectedDates: [this.from.getTime()],\n\t\t\tevents: {\n\t\t\t\tonSelect: this.#onDateFromSelected,\n\t\t\t},\n\t\t});\n\n\t\tthis.#dateToPicker ??= new DatePicker({\n\t\t\ttargetNode: this.DOM.toDate,\n\t\t\tselectedDates: [this.to.getTime()],\n\t\t\tevents: {\n\t\t\t\tonSelect: this.#onDateToSelected,\n\t\t\t},\n\t\t});\n\t}\n\n\tgetFrom(): ?Date\n\t{\n\t\treturn this.getDateWithTime(this.DOM.fromDate.value, this.fromMinutes);\n\t}\n\n\tgetTo(): ?Date\n\t{\n\t\treturn this.getDateWithTime(this.DOM.toDate.value, this.toMinutes);\n\t}\n\n\tgetDateWithTime(date, minutes): ?Date\n\t{\n\t\tconst parsedDate = Util.parseDate(date);\n\t\tif (!parsedDate)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new Date(parsedDate.getTime() + minutes * 60 * 1000);\n\t}\n\n\tgetValue()\n\t{\n\t\tconst value = {\n\t\t\tfullDay: this.DOM.fullDay.checked,\n\t\t\tfromDate: this.DOM.fromDate.value,\n\t\t\ttoDate: this.DOM.toDate.value,\n\t\t\tfromTime: this.DOM.fromTime.value,\n\t\t\ttoTime: this.DOM.toTime.value,\n\t\t\ttimezoneFrom: this.DOM.fromTz\n\t\t\t\t? this.DOM.fromTz.dataset.value\n\t\t\t\t: (this.value.timezoneFrom || this.value.timezoneName || null),\n\t\t\ttimezoneTo: this.DOM.toTz\n\t\t\t\t? this.DOM.toTz.dataset.value\n\t\t\t\t: (this.value.timezoneTo || this.value.timezoneName || null),\n\t\t};\n\n\t\tvalue.from = Util.parseDate(value.fromDate);\n\t\tif (Type.isDate(value.from))\n\t\t{\n\t\t\tvalue.to = Util.parseDate(value.toDate);\n\t\t\tif (!Type.isDate(value.to))\n\t\t\t{\n\t\t\t\tvalue.to = value.from;\n\t\t\t}\n\n\t\t\tif (value.fullDay)\n\t\t\t{\n\t\t\t\tvalue.from.setHours(0, 0, 0);\n\t\t\t\tvalue.to.setHours(0, 0, 0);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst fromTime = Util.parseTime(value.fromTime);\n\t\t\t\tconst toTime = Util.parseTime(value.toTime) || fromTime;\n\n\t\t\t\tif (fromTime && toTime)\n\t\t\t\t{\n\t\t\t\t\tvalue.from.setHours(fromTime.h, fromTime.m, 0);\n\t\t\t\t\tvalue.to.setHours(toTime.h, toTime.m, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tbindEventHandlers()\n\t{\n\t\tEvent.bind(this.DOM.fromDate, 'click', this.showDateFromInputCalendar.bind(this));\n\t\tEvent.bind(this.DOM.toDate, 'click', this.showDateToInputCalendar.bind(this));\n\n\t\tEvent.bind(this.DOM.fromTime, 'input', this.handleTimeInput.bind(this));\n\t\tEvent.bind(this.DOM.toTime, 'input', this.handleTimeInput.bind(this));\n\n\t\tEvent.bind(this.DOM.fromTz, 'click', this.showTzFromMenu.bind(this));\n\t\tEvent.bind(this.DOM.toTz, 'click', this.showTzToMenu.bind(this));\n\n\t\tEvent.bind(this.DOM.fullDay, 'click', () => {\n\t\t\tthis.handleFullDayChange();\n\t\t\tthis.handleValueChange();\n\t\t});\n\n\t\tif (this.inlineEditMode)\n\t\t{\n\t\t\tEvent.bind(this.DOM.outerWrap, 'click', this.changeInlineEditMode.bind(this));\n\t\t}\n\n\t\tif (Type.isDomNode(this.DOM.defTimezone))\n\t\t{\n\t\t\tEvent.bind(this.DOM.defTimezone, 'change', BX.delegate(function()\n\t\t\t{\n\t\t\t\tif (this.bindFromToDefaultTimezones)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.fromTz.dataset.value = this.DOM.toTz.dataset.value = this.DOM.defTimezone.value;\n\t\t\t\t\tthis.DOM.fromTz.value = this.DOM.toTz.value = this.DOM.defTimezone.value;\n\t\t\t\t}\n\t\t\t}, this));\n\t\t}\n\n\t\tif (this.showTimezone)\n\t\t{\n\t\t\tif (Type.isDomNode(this.DOM.tzButton))\n\t\t\t{\n\t\t\t\tEvent.bind(this.DOM.tzButton, 'click', this.switchTimezone.bind(this));\n\t\t\t}\n\n\t\t\tthis.bindTimezones = this.DOM.fromTz.value === this.DOM.toTz.value;\n\t\t\tthis.bindFromToDefaultTimezones = this.bindTimezones\n\t\t\t\t&& this.DOM.fromTz.dataset.value === this.DOM.toTz.dataset.value\n\t\t\t\t&& this.DOM.fromTz.dataset.value === this.DOM.defTimezone.value;\n\t\t}\n\t}\n\n\tshowDateFromInputCalendar(e)\n\t{\n\t\tconst target = e.target || e.srcElement;\n\t\tif (Type.isDomNode(target) && target.nodeName.toLowerCase() === 'input')\n\t\t{\n\t\t\tthis.#dateFromPicker.show();\n\t\t}\n\t}\n\n\tshowDateToInputCalendar(e)\n\t{\n\t\tconst target = e.target || e.srcElement;\n\t\tif (Type.isDomNode(target) && target.nodeName.toLowerCase() === 'input')\n\t\t{\n\t\t\tthis.#dateToPicker.show();\n\t\t}\n\t}\n\n\tshowTzFromMenu()\n\t{\n\t\tthis.#tzFromMenu ??= new Menu({\n\t\t\tid: `${this.UID}-calendar-tz-from-menu`,\n\t\t\tbindElement: this.DOM.fromTz,\n\t\t\tcloseByEsc: true,\n\t\t\titems: this.getMenuItems(this.#selectTimezoneFrom),\n\t\t\tmaxHeight: 300,\n\t\t});\n\n\t\tthis.#tzFromMenu.show();\n\t}\n\n\tshowTzToMenu()\n\t{\n\t\tthis.#tzToMenu ??= new Menu({\n\t\t\tid: `${this.UID}-calendar-tz-to-menu`,\n\t\t\tbindElement: this.DOM.toTz,\n\t\t\tcloseByEsc: true,\n\t\t\titems: this.getMenuItems(this.#selectTimezoneTo),\n\t\t\tmaxHeight: 300,\n\t\t});\n\n\t\tthis.#tzToMenu.show();\n\t}\n\n\tgetMenuItems(callback): Array\n\t{\n\t\tconst result = [];\n\t\tconst timezoneList = Object.values(Util.getTimezoneList());\n\n\t\tfor (const timezone of timezoneList)\n\t\t{\n\t\t\tresult.push(new MenuItem({\n\t\t\t\ttext: timezone.title,\n\t\t\t\tonclick: () => callback(timezone),\n\t\t\t}));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t#selectTimezoneFrom = (item) => {\n\t\tthis.DOM.fromTz.value = item.title;\n\t\tthis.DOM.fromTz.dataset.value = item.timezone_id;\n\t\tthis.#tzFromMenu.close();\n\n\t\tif (this.showTimezone)\n\t\t{\n\t\t\tif (this.bindTimezones)\n\t\t\t{\n\t\t\t\tthis.DOM.toTz.value = this.DOM.fromTz.value;\n\t\t\t\tthis.DOM.toTz.dataset.value = this.DOM.fromTz.dataset.value;\n\t\t\t}\n\t\t\tthis.bindFromToDefaultTimezones = false;\n\t\t}\n\n\t\tthis.handleValueChange();\n\t};\n\n\t#selectTimezoneTo = (item) => {\n\t\tthis.DOM.toTz.value = item.title;\n\t\tthis.DOM.toTz.dataset.value = item.timezone_id;\n\t\tthis.#tzToMenu.close();\n\n\t\tif (this.showTimezone)\n\t\t{\n\t\t\tthis.bindTimezones = false;\n\t\t\tthis.bindFromToDefaultTimezones = false;\n\t\t}\n\n\t\tthis.handleValueChange();\n\t};\n\n\t#onDateFromSelected = (event) => {\n\t\tconst { date } = event.getData();\n\t\tthis.DOM.fromDate.value = Util.formatDate(this.createDateFromUtc(date).getTime());\n\t\tthis.handleDateFromChange();\n\t};\n\n\t#onDateToSelected = (event) => {\n\t\tconst { date } = event.getData();\n\t\tthis.DOM.toDate.value = Util.formatDate(this.createDateFromUtc(date).getTime());\n\t\tthis.handleDateToChange();\n\t};\n\n\tcreateDateFromUtc(date: Date): Date\n\t{\n\t\treturn new Date(\n\t\t\tdate.getUTCFullYear(),\n\t\t\tdate.getUTCMonth(),\n\t\t\tdate.getUTCDate(),\n\t\t\tdate.getUTCHours(),\n\t\t\tdate.getUTCMinutes(),\n\t\t);\n\t}\n\n\thandleDateFromChange()\n\t{\n\t\tif (!this.getFrom())\n\t\t{\n\t\t\tthis.DOM.fromDate.value = Util.formatDate(this.from.getTime());\n\n\t\t\treturn;\n\t\t}\n\t\tthis.DOM.fromDate.value = Util.formatDate(this.getFrom());\n\n\t\tconst difference = this.getFrom().getTime() - this.from.getTime();\n\n\t\tthis.DOM.toDate.value = Util.formatDate(this.to.getTime() + difference);\n\t\tthis.#dateToPicker.selectDate(this.to.getTime() + difference);\n\n\t\tthis.handleValueChange();\n\t}\n\n\thandleDateToChange()\n\t{\n\t\tif (!this.getTo())\n\t\t{\n\t\t\tthis.DOM.toDate.value = Util.formatDate(this.to.getTime());\n\n\t\t\treturn;\n\t\t}\n\t\tthis.DOM.toDate.value = Util.formatDate(this.getTo());\n\n\t\tconst difference = Math.abs(this.to.getTime() - this.getTo().getTime());\n\t\tconst yearDuration = 1000 * 60 * 60 * 24 * 300;\n\t\tif (difference > yearDuration)\n\t\t{\n\t\t\tconst duration = this.to.getTime() - this.from.getTime();\n\t\t\tconst toDate = Util.parseDate(this.DOM.toDate.value);\n\t\t\ttoDate.setHours(this.to.getHours(), this.to.getMinutes(), 0, 0);\n\t\t\tconst fromDate = new Date(toDate.getTime() - duration);\n\t\t\tthis.DOM.fromDate.value = Util.formatDate(fromDate);\n\t\t\tthis.#dateFromPicker.selectDate(toDate.getTime() - duration);\n\t\t}\n\n\t\tif (this.getTo() < this.getFrom())\n\t\t{\n\t\t\tthis.DOM.toDate.value = this.DOM.fromDate.value;\n\t\t\tthis.DOM.toTime.value = this.DOM.fromTime.value;\n\t\t\tthis.#dateToPicker.selectDate(this.from.getTime());\n\t\t\tthis.toMinutes = this.getMinutesFromFormattedTime(this.DOM.toTime.value);\n\t\t}\n\t\tthis.handleValueChange();\n\t}\n\n\thandleTimeFromChange(inputValue, dataValue)\n\t{\n\t\tthis.handleTimeChange(this.DOM.fromTime);\n\n\t\tif (this.isIncorrectTimeValue(this.DOM.fromTime.value))\n\t\t{\n\t\t\tthis.DOM.fromTime.value = Util.formatTime(this.from);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.fromMinutes = dataValue ?? this.getMinutesFromFormattedTime(this.DOM.fromTime.value);\n\t\t\tthis.DOM.fromTime.value = Util.formatTime(this.getFrom());\n\t\t}\n\n\t\tif (this.getTo())\n\t\t{\n\t\t\tconst difference = this.getFrom().getTime() - this.from.getTime();\n\t\t\tthis.toMinutes += difference / (60 * 1000);\n\t\t}\n\n\t\tthis.handleValueChange();\n\t}\n\n\thandleTimeToChange(inputValue, dataValue)\n\t{\n\t\tthis.handleTimeChange(this.DOM.toTime);\n\n\t\tif (this.isIncorrectTimeValue(this.DOM.toTime.value))\n\t\t{\n\t\t\tthis.DOM.toTime.value = Util.formatTime(this.to);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.toMinutes = dataValue ?? this.getMinutesFromFormattedTime(this.DOM.toTime.value);\n\t\t\tthis.DOM.toTime.value = Util.formatTime(this.getTo());\n\t\t}\n\n\t\tif (this.getTo() < this.getFrom())\n\t\t{\n\t\t\tconst difference = this.getTo().getTime() - this.to.getTime();\n\t\t\tthis.fromMinutes += difference / (60 * 1000);\n\t\t\tconst newFromDate = new Date(this.from.getTime() + difference);\n\t\t\tthis.DOM.fromTime.value = Util.formatTime(newFromDate);\n\t\t\tthis.DOM.fromDate.value = Util.formatDate(newFromDate);\n\t\t}\n\n\t\tthis.handleValueChange();\n\t}\n\n\tisIncorrectTimeValue(timeValue)\n\t{\n\t\tif (BX.isAmPmMode())\n\t\t{\n\t\t\treturn timeValue === '';\n\t\t}\n\n\t\treturn timeValue === '' || (timeValue[0] !== '0' && Util.parseTime(timeValue).h === 0);\n\t}\n\n\thandleTimeChange(timeSelector)\n\t{\n\t\tif (timeSelector.value === '')\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet time = this.getMaskedTime(timeSelector.value);\n\t\ttime = this.beautifyTime(time);\n\t\tif (BX.isAmPmMode())\n\t\t{\n\t\t\tlet amPmSymbol = (timeSelector.value.toLowerCase().match(/[ap]/g) ?? []).pop();\n\t\t\tif (!amPmSymbol)\n\t\t\t{\n\t\t\t\tconst hour = parseInt(this.getMinutesAndHours(time).hours);\n\t\t\t\tif (hour >= 8 && hour <= 11)\n\t\t\t\t{\n\t\t\t\t\tamPmSymbol = 'a';\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tamPmSymbol = 'p';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (amPmSymbol === 'a')\n\t\t\t{\n\t\t\t\ttime += ' am';\n\t\t\t}\n\n\t\t\tif (amPmSymbol === 'p')\n\t\t\t{\n\t\t\t\ttime += ' pm';\n\t\t\t}\n\t\t}\n\t\ttimeSelector.value = time;\n\t}\n\n\thandleTimeInput(e)\n\t{\n\t\te.target.value = this.getMaskedTime(e.target.value, e.data, e.inputType === 'deleteContentBackward');\n\t}\n\n\tgetMaskedTime(value, key, backspace = false)\n\t{\n\t\tif (backspace)\n\t\t{\n\t\t\treturn value;\n\t\t}\n\n\t\tlet time = '';\n\t\tconst { hours, minutes } = this.getMinutesAndHours(value, key);\n\t\tif (hours && !minutes)\n\t\t{\n\t\t\ttime = String(hours);\n\t\t\tif (value.length - time.length === 1 || value.includes(':'))\n\t\t\t{\n\t\t\t\ttime += ':';\n\t\t\t}\n\t\t}\n\n\t\tif (hours && minutes)\n\t\t{\n\t\t\ttime = `${hours}:${minutes}`;\n\t\t}\n\n\t\tif (BX.isAmPmMode() && this.clearTimeString(time) !== '')\n\t\t{\n\t\t\tconst amPmSymbol = (value.toLowerCase().match(/[ap]/g) ?? []).pop();\n\t\t\tif (amPmSymbol === 'a')\n\t\t\t{\n\t\t\t\ttime = `${time} am`;\n\t\t\t}\n\n\t\t\tif (amPmSymbol === 'p')\n\t\t\t{\n\t\t\t\ttime = `${time} pm`;\n\t\t\t}\n\t\t}\n\n\t\treturn time;\n\t}\n\n\tgetMinutesAndHours(value, key)\n\t{\n\t\tconst time = this.clearTimeString(value, key);\n\t\t// eslint-disable-next-line init-declarations\n\t\tlet hours;\n\t\t// eslint-disable-next-line init-declarations\n\t\tlet minutes;\n\n\t\tif (time.includes(':'))\n\t\t{\n\t\t\thours = time.match(/\\d*:/g)[0].slice(0, -1);\n\t\t\tminutes = time.match(/:\\d*/g)[0].slice(1);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst digits = (time.match(/\\d/g) ?? []).splice(0, 4).map((d) => parseInt(d, 10));\n\t\t\tif (digits.length === 4 && digits[0] > this.getMaxHours() / 10)\n\t\t\t{\n\t\t\t\tdigits.pop();\n\t\t\t}\n\n\t\t\tif (digits.length === 1)\n\t\t\t{\n\t\t\t\thours = String(digits[0]);\n\t\t\t}\n\n\t\t\tif (digits.length === 2)\n\t\t\t{\n\t\t\t\thours = `${digits[0]}${digits[1]}`;\n\t\t\t\tif (parseInt(hours, 10) > this.getMaxHours())\n\t\t\t\t{\n\t\t\t\t\thours = String(digits[0]);\n\t\t\t\t\tminutes = String(digits[1]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (digits.length === 3)\n\t\t\t{\n\t\t\t\tif (BX.isAmPmMode())\n\t\t\t\t{\n\t\t\t\t\tif (digits[0] > 1)\n\t\t\t\t\t{\n\t\t\t\t\t\thours = String(digits[0]);\n\t\t\t\t\t\tminutes = `${digits[1]}${digits[2]}`;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\thours = `${digits[0]}${digits[1]}`;\n\t\t\t\t\t\tminutes = String(digits[2]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (parseInt(`${digits[0]}${digits[1]}`, 10) < 24)\n\t\t\t\t{\n\t\t\t\t\thours = `${digits[0]}${digits[1]}`;\n\t\t\t\t\tminutes = String(digits[2]);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\thours = String(digits[0]);\n\t\t\t\t\tminutes = `${digits[1]}${digits[2]}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (digits.length === 4)\n\t\t\t{\n\t\t\t\thours = `${digits[0]}${digits[1]}`;\n\t\t\t\tminutes = `${digits[2]}${digits[3]}`;\n\t\t\t}\n\t\t}\n\n\t\tif (hours)\n\t\t{\n\t\t\thours = this.formatHours(hours);\n\t\t}\n\n\t\tif (minutes)\n\t\t{\n\t\t\tminutes = this.formatMinutes(minutes);\n\t\t}\n\n\t\treturn { hours, minutes };\n\t}\n\n\tclearTimeString(str, key)\n\t{\n\t\tlet validatedTime = str.replaceAll(/[amp]/g, '').trim().replaceAll(/\\D/g, ':'); // remove a and p and replace not digits to :\n\t\tvalidatedTime = validatedTime.replace(/:*/, ''); // remove everything before first digit\n\n\t\t// leave only first :\n\t\tconst firstColonIndex = validatedTime.indexOf(':');\n\t\tvalidatedTime = validatedTime.slice(0, Math.max(0, firstColonIndex + 1)) + validatedTime.slice(firstColonIndex + 1).replaceAll(':', '');\n\n\t\t// leave not more than 2 hour digits and 2 minute digits\n\t\tif (firstColonIndex !== -1)\n\t\t{\n\t\t\tconst hours = this.formatHours(validatedTime.match(/\\d*:/g)[0].slice(0, -1));\n\t\t\tconst minutes = validatedTime.match(/:\\d*/g)[0].slice(1).slice(0, 3);\n\t\t\t// eslint-disable-next-line no-restricted-globals\n\t\t\tif (hours.length === 1 && minutes.length === 3 && !isNaN(parseInt(key, 10)) && this.areTimeDigitsCorrect(`${hours}${minutes}`))\n\t\t\t{\n\t\t\t\treturn `${hours}${minutes}`;\n\t\t\t}\n\n\t\t\treturn `${hours}:${minutes}`;\n\t\t}\n\n\t\treturn validatedTime.slice(0, 4);\n\t}\n\n\tareTimeDigitsCorrect(time)\n\t{\n\t\tconst hh = time.slice(0, 2);\n\t\tconst mm = time.slice(2);\n\n\t\treturn this.formatHours(hh) === hh && this.formatMinutes(mm) === mm;\n\t}\n\n\tformatHours(str)\n\t{\n\t\tconst firstDigit = str[0];\n\t\tif (parseInt(firstDigit, 10) > this.getMaxHours() / 10)\n\t\t{\n\t\t\treturn `0${firstDigit}`;\n\t\t}\n\n\t\tif (parseInt(str, 10) <= this.getMaxHours())\n\t\t{\n\t\t\treturn `${firstDigit}${str[1] ?? ''}`;\n\t\t}\n\n\t\treturn String(firstDigit);\n\t}\n\n\tformatMinutes(str)\n\t{\n\t\tconst firstDigit = str[0];\n\t\tif (firstDigit >= 6)\n\t\t{\n\t\t\treturn `0${firstDigit}`;\n\t\t}\n\n\t\treturn `${firstDigit}${str[1] ?? ''}`;\n\t}\n\n\tbeautifyTime(time)\n\t{\n\t\tif (this.clearTimeString(time) === '')\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!time.includes(':'))\n\t\t{\n\t\t\ttime += ':00';\n\t\t}\n\n\t\tif (time.indexOf(':') === time.length - 1)\n\t\t{\n\t\t\ttime += '00';\n\t\t}\n\n\t\tlet { hours, minutes } = this.getMinutesAndHours(time);\n\t\thours = `0${hours}`.slice(-2);\n\t\tminutes = `0${minutes}`.slice(-2);\n\n\t\treturn `${hours}:${minutes}`;\n\t}\n\n\tgetMaxHours()\n\t{\n\t\treturn BX.isAmPmMode() ? 12 : 24;\n\t}\n\n\thandleFullDayChange()\n\t{\n\t\tconst fullDay = this.getFullDayValue();\n\n\t\tif (fullDay)\n\t\t{\n\t\t\tif (Type.isDomNode(this.DOM.dateTimeWrap))\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.dateTimeWrap, 'calendar-options-item-datetime-hide-time');\n\t\t\t}\n\n\t\t\tif (Type.isDomNode(this.DOM.outerWrap))\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.outerWrap, 'calendar-options-item-datetime-hide-time');\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (Type.isDomNode(this.DOM.dateTimeWrap))\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.dateTimeWrap, 'calendar-options-item-datetime-hide-time');\n\t\t\t}\n\n\t\t\tif (Type.isDomNode(this.DOM.outerWrap))\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-options-item-datetime-hide-time');\n\t\t\t}\n\t\t}\n\t}\n\n\thandleValueChange()\n\t{\n\t\tthis.setValue({ from: this.getFrom(), to: this.getTo() });\n\t\tthis.emit('onChange', new BaseEvent({ data: { value: this.getValue() } }));\n\t}\n\n\tupdateToTimeDurationHints()\n\t{\n\t\tthis.toTimeControl.updateDurationHints(\n\t\t\tthis.DOM.fromTime.value,\n\t\t\tthis.DOM.toTime.value,\n\t\t\tthis.DOM.fromDate.value,\n\t\t\tthis.DOM.toDate.value,\n\t\t);\n\t}\n\n\tgetFullDayValue()\n\t{\n\t\treturn Boolean(this.DOM.fullDay.checked);\n\t}\n\n\tgetMinutesFromFormattedTime(time)\n\t{\n\t\tconst parsedTime = Util.parseTime(time);\n\n\t\treturn parsedTime.h * 60 + parsedTime.m;\n\t}\n\n\tswitchTimezone(showTimezone)\n\t{\n\t\tif (!Type.isBoolean(showTimezone))\n\t\t{\n\t\t\tshowTimezone = BX.hasClass(this.DOM.tzCont, 'calendar-options-timezone-collapse');\n\t\t}\n\n\t\tif (showTimezone)\n\t\t{\n\t\t\tDom.addClass(this.DOM.tzCont, 'calendar-options-timezone-expand');\n\t\t\tDom.removeClass(this.DOM.tzCont, 'calendar-options-timezone-collapse');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.DOM.tzCont, 'calendar-options-timezone-collapse');\n\t\t\tDom.removeClass(this.DOM.tzCont, 'calendar-options-timezone-expand');\n\t\t}\n\t}\n\n\tchangeInlineEditMode()\n\t{\n\t\tif (!this.viewMode)\n\t\t{\n\t\t\tthis.setInlineEditMode('edit');\n\t\t}\n\t}\n\n\tsetViewMode(viewMode)\n\t{\n\t\tthis.viewMode = viewMode;\n\t\tif (this.viewMode && this.currentInlineEditMode === 'edit')\n\t\t{\n\t\t\tthis.setInlineEditMode('view');\n\t\t}\n\t}\n\n\tsetInlineEditMode(currentInlineEditMode)\n\t{\n\t\tif (this.inlineEditMode)\n\t\t{\n\t\t\tthis.currentInlineEditMode = currentInlineEditMode;\n\t\t\tif (this.currentInlineEditMode === 'edit')\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.outerWrap, 'calendar-datetime-inline-mode-edit');\n\t\t\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-datetime-inline-mode-view');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-datetime-inline-mode-edit');\n\t\t\t\tDom.addClass(this.DOM.outerWrap, 'calendar-datetime-inline-mode-view');\n\t\t\t}\n\t\t}\n\t}\n\n\tgetTimezoneNameWithShift(timezoneValue): string\n\t{\n\t\tconst timezoneList = Util.getTimezoneList();\n\n\t\tif (Type.isObject(timezoneList))\n\t\t{\n\t\t\treturn timezoneList[timezoneValue]?.title || timezoneValue;\n\t\t}\n\n\t\treturn timezoneValue;\n\t}\n}\n","import { Loc, Text } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { MessageBox } from 'ui.dialogs.messagebox';\nimport { Button, ButtonSize, ButtonColor } from 'ui.buttons';\n\nexport class BusyUsersDialog extends EventEmitter\n{\n\tDOM = {};\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ConfirmStatusDialog');\n\t\tthis.zIndex = 3200;\n\t\tthis.id = 'busy-user-dialog-' + Math.round(Math.random() * 10000);\n\t}\n\n\tshow(params = {})\n\t{\n\t\tthis.plural = params.users.length > 1;\n\n\t\tconst userNames = [];\n\t\tparams.users.forEach((user) => {\n\t\t\tuserNames.push(user.DISPLAY_NAME);\n\t\t});\n\n\t\tconst userNamesPrepared = userNames.join(', ');\n\n\t\tconst message = this.plural\n\t\t\t? Loc.getMessage('EC_BUSY_USERS_PLURAL').replace('#USER_LIST#', userNamesPrepared)\n\t\t\t: Loc.getMessage('EC_BUSY_USERS_SINGLE').replace('#USER_NAME#', params.users[0].DISPLAY_NAME)\n\t\t;\n\n\t\tthis.dialog = new MessageBox({\n\t\t\ttitle: Loc.getMessage('EC_BUSY_USERS_TITLE'),\n\t\t\tmessage: Text.encode(message),\n\t\t\tbuttons: this.getButtons(),\n\t\t\tpopupOptions: {\n\t\t\t\tautoHide: true,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tdraggable: false,\n\t\t\t\tcloseIcon: true,\n\t\t\t\tmaxWidth: 700,\n\t\t\t\tminHeight: 150,\n\t\t\t\tanimation: 'fading-slide',\n\t\t\t},\n\t\t});\n\n\t\tthis.dialog.show();\n\t}\n\n\tgetButtons()\n\t{\n\t\treturn [\n\t\t\tnew Button({\n\t\t\t\tsize: ButtonSize.SMALL,\n\t\t\t\tcolor: ButtonColor.PRIMARY,\n\t\t\t\ttext: Loc.getMessage('EC_BUSY_USERS_BACK2EDIT'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: () => {\n\t\t\t\t\t\tthis.emit('onContinueEditing');\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew Button({\n\t\t\t\tsize: ButtonSize.SMALL,\n\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\ttext: this.plural\n\t\t\t\t\t? Loc.getMessage('EC_BUSY_USERS_EXCLUDE_PLURAL')\n\t\t\t\t\t: Loc.getMessage('EC_BUSY_USERS_EXCLUDE_SINGLE')\n\t\t\t\t,\n\t\t\t\tevents: {\n\t\t\t\t\tclick : () => {\n\t\t\t\t\t\tthis.emit('onSaveWithout');\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}),\n\t\t];\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n\n\tisShown()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\treturn this.dialog.getPopupWindow().isShown();\n\t\t}\n\n\t\treturn false;\n\t}\n}","import {Type, Dom, Event, Runtime, Tag, Loc, Text} from 'main.core';\nimport {Util} from 'calendar.util';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {Planner} from \"calendar.planner\";\nimport {Dialog as EntitySelectorDialog} from 'ui.entity-selector';\nimport { AttendeesList, IntranetButton } from 'calendar.controls';\nimport { AvatarRoundGuest } from 'ui.avatar';\n\nexport class UserPlannerSelector extends EventEmitter\n{\n\tstatic VIEW_MODE = 'view';\n\tstatic EDIT_MODE = 'edit';\n\tstatic MAX_USER_COUNT_DISPLAY = 8;\n\tstatic PLANNER_WIDTH = 550;\n\tstatic canEditAttendeesPopupShown = false;\n\tzIndex = 4200;\n\treadOnlyMode = true;\n\tmeetingNotifyValue = true;\n\tuserSelectorDialog = null;\n\tattendeesEntityList = [];\n\tinlineEditMode = UserPlannerSelector.VIEW_MODE;\n\tprevUserList = [];\n\tloadedAccessibilityData = {};\n\tREFRESH_PLANNER_DELAY = 500;\n\n\tconstructor(params = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.UserPlannerSelector');\n\t\tthis.selectorId = params.id || `user-selector-${Math.round(Math.random() * 10000)}`;\n\t\tthis.BX = Util.getBX();\n\t\tthis.DOM = {\n\t\t\touterWrap: params.outerWrap,\n\t\t\twrap: params.wrap,\n\t\t\tinformWrap: params.informWrap,\n\t\t\tinformWrapText: params.informWrap.querySelector('.calendar-field-container-inform-text'),\n\t\t\tmoreLink: params.outerWrap.querySelector('.calendar-members-more'),\n\t\t\tchangeLink: params.outerWrap.querySelector('.calendar-members-change-link'),\n\t\t\tattendeesLabel: params.outerWrap.querySelector('.calendar-attendees-label'),\n\t\t\tattendeesList: params.outerWrap.querySelector('.calendar-attendees-list'),\n\t\t\tuserSelectorWrap: params.outerWrap.querySelector('.calendar-user-selector-wrap'),\n\t\t\tplannerOuterWrap: params.plannerOuterWrap,\n\t\t\tvideocallWrap: params.outerWrap.querySelector('.calendar-videocall-wrap'),\n\t\t\thideGuestsWrap: params.hideGuestsWrap,\n\t\t\thideGuestsIcon: params.hideGuestsWrap.querySelector('.calendar-hide-members-icon-hidden')\n\t\t};\n\t\tthis.refreshPlannerStateDebounce = Runtime.debounce(this.refreshPlannerState, this.REFRESH_PLANNER_DELAY, this);\n\n\t\tif (Type.isBoolean(params.readOnlyMode))\n\t\t{\n\t\t\tthis.readOnlyMode = params.readOnlyMode;\n\t\t}\n\n\t\tthis.userId = params.userId;\n\t\tthis.type = params.type;\n\t\tthis.ownerId = params.ownerId;\n\t\tthis.zIndex = params.zIndex || this.zIndex;\n\n\t\tthis.plannerReadOnly = params.plannerReadOnly || false;\n\t\tthis.plannerFeatureEnabled = Boolean(params.plannerFeatureEnabled);\n\t\tthis.isEditableSharingEvent = Boolean(params.isEditableSharingEvent);\n\t\tthis.openEditFormCallback = params.openEditFormCallback;\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tif (this.DOM.changeLink && !this.isReadOnly())\n\t\t{\n\t\t\tlet clickAction;\n\t\t\tif (!this.isEditableSharingEvent)\n\t\t\t{\n\t\t\t\tclickAction = () => {\n\t\t\t\t\tif (!this.userSelectorDialog)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.userSelectorDialog = new EntitySelectorDialog({\n\t\t\t\t\t\t\ttargetNode: this.DOM.changeLink,\n\t\t\t\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\t\t\t\tpreselectedItems: this.attendeesPreselectedItems,\n\t\t\t\t\t\t\tundeselectedItems: this.attendeesUndeselectedItems,\n\t\t\t\t\t\t\tenableSearch: true,\n\t\t\t\t\t\t\tzIndex: this.zIndex + 10,\n\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t'Item:onSelect': this.handleUserSelectorChanges.bind(this),\n\t\t\t\t\t\t\t\t'Item:onDeselect': this.handleUserSelectorChanges.bind(this),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tentities: this.getSelectorEntities(),\n\t\t\t\t\t\t\tsearchTabOptions: {\n\t\t\t\t\t\t\t\tstubOptions: {\n\t\t\t\t\t\t\t\t\ttitle: Loc.getMessage('EC_USER_DIALOG_404_TITLE'),\n\t\t\t\t\t\t\t\t\tsubtitle: Loc.getMessage('EC_USER_DIALOG_404_SUBTITLE'),\n\t\t\t\t\t\t\t\t\ticon: '/bitrix/images/calendar/search-email.svg',\n\t\t\t\t\t\t\t\t\ticonOpacity: 100,\n\t\t\t\t\t\t\t\t\tarrow: true,\n\t\t\t\t\t\t\t\t},\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\tthis.userSelectorDialog.show();\n\t\t\t\t};\n\t\t\t\tEvent.bind(this.DOM.changeLink, 'click', clickAction);\n\t\t\t}\n\t\t}\n\n\t\tif (this.DOM.moreLink)\n\t\t{\n\t\t\tEvent.bind(this.DOM.moreLink, 'click', this.showMoreAttendeesPopup.bind(this));\n\t\t}\n\n\t\tthis.planner = new Planner({\n\t\t\treadonly: this.plannerReadOnly,\n\t\t\tsolidStatus: this.plannerReadOnly,\n\t\t\tshowWorkTimeNotice: true,\n\t\t\twrap: this.DOM.plannerOuterWrap,\n\t\t\tminWidth: UserPlannerSelector.PLANNER_WIDTH,\n\t\t\twidth: UserPlannerSelector.PLANNER_WIDTH,\n\t\t\tshowEntryName: false,\n\t\t\tlocked: !this.plannerFeatureEnabled,\n\t\t});\n\n\t\tEvent.bind(this.DOM.informWrap, 'click', () => {\n\t\t\tthis.setInformValue(!this.meetingNotifyValue);\n\t\t\tthis.emit('onNotifyChange');\n\t\t});\n\n\t\tthis.DOM.attendeesLabel.innerHTML = Text.encode(Loc.getMessage('EC_ATTENDEES_LABEL_ONE'));\n\n\t\tthis.planner.subscribe('onDateChange', (event) => {this.emit('onDateChange', event);});\n\t\tthis.planner.subscribe('onExpandTimeline', this.handleExpandPlannerTimeline.bind(this));\n\n\t\tif (this.DOM.hideGuestsWrap && !this.isReadOnly())\n\t\t{\n\t\t\tEvent.bind(this.DOM.hideGuestsWrap, 'click', ()=>{\n\t\t\t\tthis.setHideGuestsValue(!this.hideGuests);\n\t\t\t});\n\t\t}\n\t}\n\n\tgetSelectorEntities()\n\t{\n\t\tconst result = [\n\t\t\t{\n\t\t\t\tid: 'user',\n\t\t\t\toptions: {\n\t\t\t\t\tinviteGuestLink: true,\n\t\t\t\t\temailUsers: Util.isEventWithEmailGuestAllowed(),\n\t\t\t\t\tanalyticsSource: 'calendar',\n\t\t\t\t\tlockGuestLink: !Util.isEventWithEmailGuestAllowed(),\n\t\t\t\t\tlockGuestLinkFeatureId: 'calendar_events_with_email_guests',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'department',\n\t\t\t\toptions: { selectMode: 'usersAndDepartments' },\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'meta-user',\n\t\t\t\toptions: { 'all-users': true },\n\t\t\t},\n\t\t];\n\n\t\tif (Util.isProjectFeatureEnabled())\n\t\t{\n\t\t\tresult.push({\n\t\t\t\tid: 'project',\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tsetValue(params)\n\t{\n\t\tconst { attendeesEntityList, attendees, location, notify, hideGuests, viewMode, entry } = params;\n\t\tthis.attendeesEntityList = Type.isArray(attendeesEntityList) ? attendeesEntityList : [];\n\t\tthis.attendeesPreselectedItems = this.attendeesEntityList.map((item) => {return [item.entityId, item.id]});\n\t\tthis.attendeesUndeselectedItems = params.attendeesUndeselectedItems || [];\n\n\t\tthis.entry = entry;\n\t\tthis.entryId = this.entry.id;\n\n\t\tthis.setEntityList(this.attendeesEntityList);\n\t\tthis.setInformValue(notify);\n\t\tthis.setLocationValue(location);\n\n\t\tif (Type.isArray(attendees))\n\t\t{\n\t\t\tthis.displayAttendees(attendees);\n\t\t}\n\t\tthis.refreshPlannerStateDebounce();\n\n\t\tlet dateTime = this.getDateTime();\n\t\tif (dateTime)\n\t\t{\n\t\t\tthis.planner.updateSelector(dateTime.from, dateTime.to, dateTime.fullDay);\n\t\t}\n\n\t\tif (\n\t\t\tthis.entryId\n\t\t\t&& this.entry\n\t\t\t&& this.entry.data.PARENT_ID\n\t\t\t&& (\n\t\t\t\tthis.entry.data.EVENT_TYPE === '#shared#'\n\t\t\t\t|| this.entry.data.EVENT_TYPE === '#shared_crm#'\n\t\t\t)\n\t\t\t&& this.entry.getCurrentStatus() !== false\n\t\t)\n\t\t{\n\t\t\tDom.clean(this.DOM.videocallWrap);\n\t\t\tDom.removeClass(this.DOM.videocallWrap, 'calendar-videocall-hidden');\n\n\t\t\tthis.conferenceButton = Tag.render`\n\t\t\t\t<div class=\"calendar-text-link --gray\">${Loc.getMessage('EC_CONFERENCE_START')}</div>\n\t\t\t`;\n\t\t\tEvent.bind(this.conferenceButton, 'click', this.handleVideoconferenceButtonClick.bind(this));\n\n\t\t\tDom.append(this.conferenceButton, this.DOM.videocallWrap);\n\t\t}\n\t\telse if (\n\t\t\tBX?.Intranet?.ControlButton\n\t\t\t&& this.DOM.videocallWrap\n\t\t\t&& this.entryId\n\t\t\t&& this.entry.getCurrentStatus() !== false\n\t\t)\n\t\t{\n\t\t\tDom.clean(this.DOM.videocallWrap);\n\t\t\tDom.removeClass(this.DOM.videocallWrap, 'calendar-videocall-hidden');\n\n\t\t\tconst items = Util.getCalendarContext().isCollabUser\n\t\t\t\t? ['chat', 'videocall', 'task']\n\t\t\t\t: ['chat', 'videocall', 'blog_post', 'task']\n\t\t\t;\n\n\t\t\tthis.intranetControllButton = new IntranetButton({\n\t\t\t\tintranetControlButtonParams: {\n\t\t\t\t\titems,\n\t\t\t\t\tcontainer: this.DOM.videocallWrap,\n\t\t\t\t\tentityType: 'calendar_event',\n\t\t\t\t\tentityId: this.entry.parentId,\n\t\t\t\t\tmainItem: 'chat',\n\t\t\t\t\tentityData: {\n\t\t\t\t\t\tdateFrom: Util.formatDate(this.entry.from),\n\t\t\t\t\t\tparentId: this.entry.parentId,\n\t\t\t\t\t},\n\t\t\t\t\tanalytics: {\n\t\t\t\t\t\tstartVideoCall: {\n\t\t\t\t\t\t\ttool: 'im',\n\t\t\t\t\t\t\tcategory: 'events',\n\t\t\t\t\t\t\tevent: 'click_call',\n\t\t\t\t\t\t\ttype: 'group',\n\t\t\t\t\t\t\tc_section: 'card_compact',\n\t\t\t\t\t\t\tc_sub_section: 'context_menu',\n\t\t\t\t\t\t\tp5: `eventId_${this.entry.parentId}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\tgetUsersCount: () => this.getUsersCount(),\n\t\t\t\t\thasChat: () => this.entry.data?.MEETING?.CHAT_ID > 0,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\telse if (this.DOM.videocallWrap)\n\t\t{\n\t\t\tDom.addClass(this.DOM.videocallWrap, 'calendar-videocall-hidden');\n\t\t}\n\n\t\tthis.setHideGuestsValue(hideGuests);\n\t}\n\n\thandleUserSelectorChanges()\n\t{\n\t\tthis.showPlanner();\n\t\tconst dateTime = this.getDateTime();\n\t\tthis.planner.updateSelector(dateTime.from, dateTime.to, dateTime.fullDay);\n\n\t\tthis.setEntityList(this.userSelectorDialog.getSelectedItems().map((item) => {\n\t\t\treturn {\n\t\t\t\tentityId: item.entityId,\n\t\t\t\tid: item.id,\n\t\t\t\tentityType: item.entityType,\n\t\t\t}}));\n\n\t\tthis.refreshPlannerStateDebounce();\n\t\tthis.emit('onUserCodesChange');\n\t}\n\n\tgetEntityList()\n\t{\n\t\treturn this.selectorEntityList;\n\t}\n\n\tsetEntityList(selectorEntityList)\n\t{\n\t\tif (this.type === 'user' && this.userId !== this.ownerId)\n\t\t{\n\t\t\tselectorEntityList.push({entityId: 'user', id: this.ownerId});\n\t\t}\n\n\t\tthis.selectorEntityList = selectorEntityList;\n\t}\n\n\tisReadOnly()\n\t{\n\t\treturn this.readOnlyMode;\n\t}\n\n\tgetUserSelector()\n\t{\n\t\treturn BX.UI.SelectorManager.instances[this.selectorId];\n\t}\n\n\tshowPlanner()\n\t{\n\t\tif (!this.isPlannerDisplayed())\n\t\t{\n\t\t\tDom.addClass(this.DOM.outerWrap, 'user-selector-edit-mode');\n\t\t\tthis.planner.show();\n\t\t\tthis.planner.showLoader();\n\n\t\t\tif (this.entry.isFullDay())\n\t\t\t{\n\t\t\t\tthis.planner.updateSelector(this.planner.currentFromDate, this.planner.currentToDate, true);\n\t\t\t}\n\n\t\t\tthis.planner.setEntriesCount(this.getUsersCount());\n\t\t}\n\t}\n\n\tcheckBusyTime()\n\t{\n\t\tconst dateTime = this.getDateTime();\n\t\tconst entityList = this.getEntityList();\n\t\tthis.planner.updateScaleLimitsFromEntry(dateTime.from, dateTime.to);\n\n\t\tthis.runPlannerDataRequest({\n\t\t\tentityList: entityList,\n\t\t\ttimezone: dateTime.timezoneFrom,\n\t\t\tlocation: this.getLocationValue(),\n\t\t\tentryId: this.entryId,\n\t\t\tparentId: this.entry.parentId,\n\t\t})\n\t\t\t.then((response) =>\n\t\t\t{\n\t\t\t\tfor (let id in response.data.accessibility)\n\t\t\t\t{\n\t\t\t\t\tif (response.data.accessibility.hasOwnProperty(id))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.loadedAccessibilityData[id] = response.data.accessibility[id];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (Type.isArray(response.data.entries))\n\t\t\t\t{\n\t\t\t\t\tresponse.data.entries.forEach((entry) => {\n\t\t\t\t\t\tconst hasAccessibility = this.loadedAccessibilityData[entry.id];\n\t\t\t\t\t\tif (entry.type === 'user' && !this.prevUserList.includes(parseInt(entry.id)) && hasAccessibility)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.prevUserList.push(parseInt(entry.id));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (Type.isArray(response.data.accessibility[this.ownerId]))\n\t\t\t\t{\n\t\t\t\t\tconst from = this.getDateTime().from;\n\t\t\t\t\tconst to = this.getDateTime().to;\n\t\t\t\t\tconst preparedData = this.preparedDataAccessibility(response.data.accessibility[this.ownerId]);\n\n\t\t\t\t\tif (!this.planner.currentFromDate)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.planner.currentFromDate = from;\n\t\t\t\t\t}\n\t\t\t\t\tif (!this.planner.currentToDate)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.planner.currentToDate = to;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst item = this.planner.checkTimePeriod(from, to, preparedData);\n\t\t\t\t\tif (\n\t\t\t\t\t\tType.isObject(item)\n\t\t\t\t\t\t&& Type.isArray(response.data.entries)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showPlanner();\n\t\t\t\t\t\tthis.planner.update(response.data.entries, response.data.accessibility);\n\t\t\t\t\t\tthis.planner.updateSelector(dateTime.from, dateTime.to, dateTime.fullDay);\n\t\t\t\t\t\tthis.planner.hideLoader();\n\t\t\t\t\t\tthis.displayAttendees(this.prepareAttendeesForDisplay(response.data.entries));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tprepareAttendeesForDisplay(attendees)\n\t{\n\t\treturn (attendees)\n\t\t\t.filter((item) =>\n\t\t\t{\n\t\t\t\treturn item.type === 'user';\n\t\t\t})\n\t\t\t.map((item) =>\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tID: item.id,\n\t\t\t\t\tAVATAR: item.avatar,\n\t\t\t\t\tDISPLAY_NAME: item.name,\n\t\t\t\t\tEMAIL_USER: item.emailUser,\n\t\t\t\t\tSHARING_USER: item.sharingUser,\n\t\t\t\t\tSTATUS: (item.status || '').toUpperCase(),\n\t\t\t\t\tURL: item.url\n\t\t\t\t};\n\t\t\t});\n\t}\n\n\trefreshPlannerState()\n\t{\n\t\tif (this.planner && this.planner.isShown())\n\t\t{\n\t\t\tlet dateTime = this.getDateTime();\n\t\t\tthis.loadPlannerData({\n\t\t\t\tentityList: this.getEntityList(),\n\t\t\t\ttimezone: dateTime.timezoneFrom,\n\t\t\t\tlocation: this.getLocationValue(),\n\t\t\t\tentryId: this.entryId,\n\t\t\t\tparentId: this.entry.parentId,\n\t\t\t\tprevUserList: this.prevUserList,\n\t\t\t});\n\t\t}\n\t}\n\n\tloadPlannerData(params = {})\n\t{\n\t\tthis.planner.showLoader();\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.runPlannerDataRequest(params)\n\t\t\t\t.then((response) => {\n\t\t\t\t\tfor (let id in response.data.accessibility)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (response.data.accessibility.hasOwnProperty(id))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.loadedAccessibilityData[id] = response.data.accessibility[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Type.isArray(response.data.entries))\n\t\t\t\t\t{\n\t\t\t\t\t\tresponse.data.entries.forEach((entry) => {\n\t\t\t\t\t\t\tconst hasAccessibility = this.loadedAccessibilityData[entry.id];\n\t\t\t\t\t\t\tif (entry.type === 'user' && !this.prevUserList.includes(parseInt(entry.id)) && hasAccessibility)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.prevUserList.push(parseInt(entry.id));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.planner.hideLoader();\n\t\t\t\t\tthis.planner.update(\n\t\t\t\t\t\tresponse.data.entries,\n\t\t\t\t\t\tthis.loadedAccessibilityData\n\t\t\t\t\t);\n\n\t\t\t\t\tresolve(response);\n\t\t\t\t},\n\t\t\t\t(response) => {resolve(response);}\n\t\t\t);\n\t\t});\n\t}\n\n\trunPlannerDataRequest(params)\n\t{\n\t\treturn this.BX.ajax.runAction('calendar.api.calendarajax.updatePlanner', {\n\t\t\tdata: {\n\t\t\t\tentryId: params.entryId || 0,\n\t\t\t\tparentId: params.parentId || 0,\n\t\t\t\tentryLocation: this.entry.data.LOCATION || '',\n\t\t\t\townerId: this.ownerId,\n\t\t\t\thostId: this.entry.data.MEETING_HOST || null,\n\t\t\t\ttype: this.type,\n\t\t\t\tentityList: params.entityList || [],\n\t\t\t\tdateFrom: Util.formatDate(this.planner.scaleDateFrom),\n\t\t\t\tdateTo: Util.formatDate(this.planner.scaleDateTo),\n\t\t\t\ttimezone: params.timezone || '',\n\t\t\t\tlocation: params.location || '',\n\t\t\t\tentries: params.entrieIds || false,\n\t\t\t\tprevUserList: params.prevUserList || [],\n\t\t\t\tentry: this.entry,\n\t\t\t},\n\t\t});\n\t}\n\n\tsetDateTime(dateTime, updatePlaner = false)\n\t{\n\t\t// 0183864\n\t\tconst dateTimeCloned = { ...dateTime };\n\t\tif (dateTimeCloned.fullDay)\n\t\t{\n\t\t\tdateTimeCloned.from.setHours(0, 0, 0, 0);\n\t\t\tconst dayCount = Math.ceil((dateTimeCloned.to.getTime() - dateTimeCloned.from.getTime() + 1) / (1000 * 3600 * 24));\n\t\t\tdateTimeCloned.to = new Date(dateTimeCloned.from.getTime() + (dayCount - 1) * 24 * 3600 * 1000);\n\t\t\tdateTimeCloned.to.setHours(23, 55, 0, 0);\n\t\t}\n\n\t\tthis.dateTime = dateTimeCloned;\n\n\t\tthis.planner.currentFromDate = dateTimeCloned.from;\n\t\tthis.planner.currentToDate = dateTimeCloned.to;\n\t\tif (this.planner && updatePlaner)\n\t\t{\n\t\t\tthis.planner.updateSelector(dateTimeCloned.from, dateTimeCloned.to, dateTimeCloned.fullDay);\n\t\t}\n\t\telse if (this.planner)\n\t\t{\n\t\t\tconst fromHours = parseInt(dateTimeCloned.from.getHours(), 10) + Math.floor(dateTimeCloned.from.getMinutes() / 60);\n\t\t\tconst toHours = parseInt(dateTimeCloned.to.getHours(), 10) + Math.floor(dateTimeCloned.to.getMinutes() / 60);\n\t\t\tif (\n\t\t\t\t(fromHours !== 0 && fromHours <= this.planner.shownScaleTimeFrom)\n\t\t\t\t|| (toHours !== 0 && toHours !== 23 && toHours + 1 >= this.planner.shownScaleTimeTo)\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.planner.updateSelector(dateTimeCloned.from, dateTimeCloned.to, dateTimeCloned.fullDay);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetDateTime()\n\t{\n\t\treturn this.dateTime;\n\t}\n\n\tsetLocationValue(location)\n\t{\n\t\tthis.location = location;\n\t}\n\n\tgetLocationValue()\n\t{\n\t\treturn this.location;\n\t}\n\n\tdisplayAttendees(attendees = [])\n\t{\n\t\tDom.clean(this.DOM.attendeesList);\n\t\tthis.attendeeList = AttendeesList.sortAttendees(attendees);\n\t\tconst usersCount = this.getUsersCount();\n\t\tthis.emit('onDisplayAttendees', new BaseEvent({\n\t\t\tdata: {\n\t\t\t\tusersCount: usersCount\n\t\t\t}\n\t\t}));\n\n\t\tconst userLength = Math.min(this.attendeeList.accepted.length, UserPlannerSelector.MAX_USER_COUNT_DISPLAY);\n\t\tif (userLength > 0)\n\t\t{\n\t\t\tfor (let i = 0; i < userLength; i++)\n\t\t\t{\n\t\t\t\tthis.attendeeList.accepted[i].shown = true;\n\t\t\t\tthis.DOM.attendeesList.appendChild(UserPlannerSelector.getUserAvatarNode(this.attendeeList.accepted[i]));\n\t\t\t}\n\t\t}\n\n\t\tthis.DOM.attendeesLabel.innerHTML = Text.encode(Loc.getMessage('EC_ATTENDEES_LABEL_ONE'));\n\n\t\tif (attendees.length > 1)\n\t\t{\n\t\t\tthis.DOM.moreLink.innerHTML = Text.encode(Loc.getMessage('EC_ATTENDEES_ALL_COUNT').replace('#COUNT#', attendees.length));\n\t\t\tDom.show(this.DOM.moreLink);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.hide(this.DOM.moreLink);\n\t\t}\n\n\t\tif (\n\t\t\tthis.hasExternalEmailUsers(attendees)\n\t\t\t&& this.isPlannerDisplayed()\n\t\t\t&& !this.isReadOnly()\n\t\t)\n\t\t{\n\t\t\tthis.showHideGuestsOption();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.hideHideGuestsOption();\n\t\t}\n\t}\n\n\tgetUsersCount(): number\n\t{\n\t\treturn this.attendeeList.accepted.length + this.attendeeList.requested.length;\n\t}\n\n\tstatic getUserAvatarNode(user)\n\t{\n\t\tlet imageNode;\n\t\tlet img = user.AVATAR || user.SMALL_AVATAR;\n\n\t\tif (user.COLLAB_USER)\n\t\t{\n\t\t\timageNode = new AvatarRoundGuest(\n\t\t\t\t{\n\t\t\t\t\tsize: 22,\n\t\t\t\t\tuserName: user.DISPLAY_NAME,\n\t\t\t\t\tuserpicPath: user.AVATAR && user.AVATAR !== '/bitrix/images/1.gif'\n\t\t\t\t\t\t? user.AVATAR\n\t\t\t\t\t\t: null,\n\t\t\t\t\tbaseColor: '#19cc45',\n\t\t\t\t},\n\t\t\t).getContainer();\n\t\t}\n\t\telse if (!img || img === \"/bitrix/images/1.gif\")\n\t\t{\n\t\t\tlet defaultAvatarClass = 'ui-icon-common-user';\n\t\t\tif (user.EMAIL_USER)\n\t\t\t{\n\t\t\t\tdefaultAvatarClass = 'ui-icon-common-user-mail';\n\t\t\t}\n\n\t\t\tif (user.SHARING_USER)\n\t\t\t{\n\t\t\t\tdefaultAvatarClass += ' ui-icon-common-user-sharing';\n\t\t\t}\n\t\t\timageNode = Tag.render`<div title=\"${Text.encode(user.DISPLAY_NAME)}\" class=\"ui-icon ${defaultAvatarClass}\"><i></i></div>`;\n\t\t}\n\t\telse\n\t\t{\n\t\t\timageNode = Tag.render`\n\t\t\t\t<img\n\t\t\t\t\ttitle=\"${Text.encode(user.DISPLAY_NAME)}\"\n\t\t\t\t\tclass=\"calendar-member\"\n\t\t\t\t\tid=\"simple_popup_${parseInt(user.ID, 10)}\"\n\t\t\t\t\tsrc=\"${encodeURI(img)}\"\n\t\t\t\t>\n\t\t\t`;\n\t\t}\n\n\t\treturn imageNode;\n\t}\n\n\tshowMoreAttendeesPopup()\n\t{\n\t\t(new AttendeesList(this.DOM.moreLink, this.attendeeList)).showPopup();\n\t}\n\n\tsetInformValue(value)\n\t{\n\t\tif (Type.isBoolean(value))\n\t\t{\n\t\t\tconst DISABLED_CLASS = 'calendar-field-container-inform-off';\n\t\t\tthis.meetingNotifyValue = value;\n\t\t\tif (this.meetingNotifyValue)\n\t\t\t{\n\t\t\t\tDom.removeClass(this.DOM.informWrap, DISABLED_CLASS);\n\t\t\t\tthis.DOM.informWrap.title = Loc.getMessage('EC_NOTIFY_OPTION_ON_TITLE');\n\t\t\t\tthis.DOM.informWrapText.innerHTML = Loc.getMessage('EC_NOTIFY_OPTION');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.addClass(this.DOM.informWrap, DISABLED_CLASS);\n\t\t\t\tthis.DOM.informWrap.title = Loc.getMessage('EC_NOTIFY_OPTION_OFF_TITLE');\n\t\t\t\tthis.DOM.informWrapText.innerHTML = Loc.getMessage('EC_DONT_NOTIFY_OPTION');\n\t\t\t}\n\t\t}\n\t}\n\n\tgetInformValue(value)\n\t{\n\t\treturn this.meetingNotifyValue;\n\t}\n\n\tsetViewMode(readOnlyMode)\n\t{\n\t\tthis.readOnlyMode = readOnlyMode;\n\t\tif (this.readOnlyMode)\n\t\t{\n\t\t\tDom.addClass(this.DOM.outerWrap, 'calendar-userselector-readonly');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.DOM.outerWrap, 'calendar-userselector-readonly');\n\t\t}\n\t}\n\n\tisPlannerDisplayed()\n\t{\n\t\treturn this.planner.isShown();\n\t}\n\n\thasExternalEmailUsers(attendees = [])\n\t{\n\t\treturn Boolean(attendees.some((item) => item.EMAIL_USER))\n\t\t\t|| Boolean(this.getEntityList().some((item) => item.entityType === 'email'))\n\t\t;\n\t}\n\n\tdestroy()\n\t{\n\t\tif (this.userSelectorDialog && this.userSelectorDialog.destroy)\n\t\t{\n\t\t\tthis.userSelectorDialog.destroy();\n\t\t\tthis.userSelectorDialog = null;\n\t\t}\n\n\t\tif (this.intranetControllButton && this.intranetControllButton.destroy)\n\t\t{\n\t\t\tthis.intranetControllButton.destroy();\n\t\t\tthis.intranetControllButton = null;\n\t\t}\n\t}\n\n\tshowHideGuestsOption()\n\t{\n\t\tthis.DOM.hideGuestsWrap.style.display = '';\n\t\tUtil.initHintNode(this.DOM.hideGuestsWrap.querySelector('.calendar-hide-members-helper'));\n\t}\n\n\thideHideGuestsOption()\n\t{\n\t\tthis.DOM.hideGuestsWrap.style.display = 'none';\n\t}\n\n\tsetHideGuestsValue(hideGuests = true)\n\t{\n\t\tthis.hideGuests = hideGuests;\n\n\t\tif (Type.isElementNode(this.DOM.hideGuestsIcon))\n\t\t{\n\t\t\tthis.DOM.hideGuestsIcon.className = this.hideGuests ? 'calendar-hide-members-icon-hidden' : 'calendar-hide-members-icon-visible'\n\t\t}\n\n\t\tconst hideGuestsText = this.DOM.hideGuestsWrap.querySelector('.calendar-hide-members-text');\n\t\tif (Type.isElementNode(hideGuestsText))\n\t\t{\n\t\t\thideGuestsText.innerHTML = this.hideGuests\n\t\t\t\t? Loc.getMessage('EC_HIDE_GUEST_NAMES')\n\t\t\t\t: Loc.getMessage('EC_SHOW_GUEST_NAMES');\n\t\t}\n\t}\n\n\tpreparedDataAccessibility(calendarEventsAccessibility)\n\t{\n\t\treturn calendarEventsAccessibility.map((item) => {\n\t\t\treturn Planner.prepareAccessibilityItem(item);\n\t\t});\n\t}\n\n\tclearAccessibilityData(userIdList: Object): void\n\t{\n\t\tif (Type.isArray(userIdList) && userIdList.length && this.prevUserList.length)\n\t\t{\n\t\t\tthis.prevUserList = this.prevUserList.filter((userId) => !userIdList.includes(userId));\n\t\t}\n\t}\n\n\thandleExpandPlannerTimeline(event)\n\t{\n\t\tif (event && event.getData)\n\t\t{\n\t\t\tlet data = event.getData();\n\t\t\tif (data.reload)\n\t\t\t{\n\t\t\t\tconst dateTime = this.getDateTime();\n\t\t\t\tthis.loadPlannerData({\n\t\t\t\t\tentityList: this.getEntityList(),\n\t\t\t\t\ttimezone: dateTime.timezoneFrom,\n\t\t\t\t\tlocation: this.getLocationValue(),\n\t\t\t\t\tentryId: this.entryId,\n\t\t\t\t\tfocusSelector: false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\thandleVideoconferenceButtonClick()\n\t{\n\t\tthis.getConferenceChatId();\n\t}\n\n\tgetConferenceChatId()\n\t{\n\t\treturn this.BX.ajax.runAction('calendar.api.calendarajax.getConferenceChatId', {\n\t\t\tdata: {\n\t\t\t\teventId: this.entry.data.PARENT_ID,\n\t\t\t},\n\t\t\tanalytics: {\n\t\t\t\ttool: 'im',\n\t\t\t\tcategory: 'events',\n\t\t\t\tevent: 'click_call',\n\t\t\t\ttype: 'videoconf',\n\t\t\t\tc_section: 'card_compact',\n\t\t\t\tc_sub_section: 'card',\n\t\t\t\tp5: `eventId_${this.entry.data.PARENT_ID}`,\n\t\t\t},\n\t\t}).then(\n\t\t\t(response) => {\n\t\t\t\tif (top.window.BXIM && response.data && response.data.chatId)\n\t\t\t\t{\n\t\t\t\t\ttop.BXIM.openMessenger(`chat${parseInt(response.data.chatId, 10)}`);\n\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\talert(Loc.getMessage('EC_CONFERENCE_ERROR'));\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\t(response) => {\n\t\t\t\talert(Loc.getMessage('EC_CONFERENCE_ERROR'));\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t);\n\t}\n\n\tsetEditableSharingEventMode()\n\t{\n\t\tDom.style(this.DOM.changeLink, 'display', 'inline-block');\n\t\tconst clickAction = () => {\n\t\t\tif (Type.isFunction(this.openEditFormCallback()))\n\t\t\t{\n\t\t\t\tthis.openEditFormCallback();\n\t\t\t}\n\t\t};\n\t\tEvent.bind(this.DOM.changeLink, 'click', clickAction);\n\t\tif (this.attendeesPreselectedItems.length <= 2)\n\t\t{\n\t\t\tthis.showCanEditAttendeesPopup();\n\t\t}\n\t}\n\n\tsetCanEditAttendeesMode()\n\t{\n\t\tthis.showCanEditAttendeesPopup();\n\t}\n\n\tshowCanEditAttendeesPopup()\n\t{\n\t\tif (UserPlannerSelector.canEditAttendeesPopupShown)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tUserPlannerSelector.canEditAttendeesPopupShown = true;\n\t\tconst hintPopup = new BX.PopupWindow(`ui-hint-popup-${Date.now()}`, this.DOM.changeLink, {\n\t\t\tdarkMode: true,\n\t\t\tcontent: Loc.getMessage('EC_EDIT_SHARING_EVENTS_FEATURE_POPUP_CONTENT'),\n\t\t\tangle: { position: 'top', offset: 50 },\n\t\t\tautoHide: true,\n\t\t\tanimation: {\n\t\t\t\tshowClassName: 'calendar-edit-sharing-events-feature-popup-animation-open',\n\t\t\t\tcloseClassName: 'calendar-edit-sharing-events-feature-popup-animation-close',\n\t\t\t\tcloseAnimationType: 'animation'\n\t\t\t},\n\t\t});\n\t\tsetTimeout(() => hintPopup.show(), 500);\n\t\tsetTimeout(() => hintPopup.close(), 5000);\n\t\tconst hideEditSharingEventHintPopup = () => {\n\t\t\thintPopup.close();\n\t\t\tEventEmitter.unsubscribe('BX.Calendar.EntityRelation.onMouseEnter', hideEditSharingEventHintPopup.bind(this));\n\t\t};\n\n\t\tEventEmitter.subscribe('BX.Calendar.EntityRelation.onMouseEnter', hideEditSharingEventHintPopup.bind(this));\n\t}\n}\n","import {Dom, Loc} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {Popup} from 'main.popup';\n\nexport class ReinviteUserDialog extends EventEmitter\n{\n\tDOM = {};\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ReinviteUserDialog');\n\t\tthis.zIndex = 3200;\n\t\tthis.id = 'reinvite-dialog-' + Math.round(Math.random() * 10000);\n\t}\n\n\tshow()\n\t{\n\t\tconst content = Dom.create('DIV');\n\t\tthis.close();\n\t\tthis.dialog = new Popup(this.id, null, {\n\t\t\toverlay: {opacity: 10},\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc : true,\n\t\t\tzIndex: this.zIndex,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: Loc.getMessage('EC_REINVITE_TITLE'),\n\t\t\tcloseIcon: { right : \"12px\", top : \"10px\"},\n\t\t\tclassName: 'reinvite-popup-window',\n\t\t\tcontent: content,\n\t\t\tevents: {},\n\t\t\tcacheable: false\n\t\t});\n\n\t\tnew BX.UI.Button({\n\t\t\ttext : Loc.getMessage('EC_REINVITE_YES'),\n\t\t\tclassName: \"ui-btn ui-btn-primary\",\n\t\t\tevents : {click : () => {\n\t\t\t\t\tthis.emit('onSelect', new BaseEvent({data: {sendInvitesAgain: true}}));\n\t\t\t\t\tthis.close();\n\t\t\t\t}}\n\t\t}).renderTo(content);\n\n\t\tnew BX.UI.Button({\n\t\t\ttext: Loc.getMessage('EC_REINVITE_NO'),\n\t\t\tclassName: \"ui-btn ui-btn-light-border\",\n\t\t\tevents : {click : () => {\n\t\t\t\t\tthis.emit('onSelect', new BaseEvent({data: {sendInvitesAgain: false}}));\n\t\t\t\t\tthis.close();\n\t\t\t\t}}\n\t\t}).renderTo(content);\n\t\tthis.dialog.show();\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n}\n","import {Tag, Loc, Dom, Event, Type, Runtime} from 'main.core';\nimport {PopupManager} from 'main.popup';\nimport {EventEmitter} from 'main.core.events';\nexport class EmailSelectorControl extends EventEmitter\n{\n\tDOM = {};\n\tCONFIRM_POPUP_ID = 'add_from_email';\n\n\tconstructor(params)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.EmailSelectorControl');\n\t\tthis.DOM.select = params.selectNode;\n\t\tthis.mailboxList = Type.isArray(params.mailboxList) ? params.mailboxList : [];\n\t\tthis.DOM.componentWrap = this.DOM.select.parentNode.appendChild(Tag.render`<div style=\"display: none;\"></div>`);\n\t\tthis.allowAddNewEmail = params.allowAddNewEmail;\n\t\tthis.checkValueDebounce = Runtime.debounce(this.checkValue, 50, this);\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tthis.setSelectValues();\n\t\tEvent.bind(this.DOM.select, 'change', this.checkValueDebounce);\n\t\tEvent.bind(this.DOM.select, 'click', this.checkValueDebounce);\n\t}\n\n\tcheckValue()\n\t{\n\t\tif (this.DOM.select.value === 'add')\n\t\t{\n\t\t\tthis.showAdd();\n\t\t\tthis.setValue('');\n\t\t}\n\t}\n\n\tgetValue()\n\t{\n\t\treturn this.DOM.select.value;\n\t}\n\n\tsetValue(value)\n\t{\n\t\tif (this.mailboxList.length\n\t\t\t&& this.mailboxList.find((mailbox) => {return mailbox.email === value}))\n\t\t{\n\t\t\tthis.DOM.select.value = value;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.select.value = '';\n\t\t}\n\t\tthis.emit('onSetValue', {\n\t\t\tvalue: this.DOM.select.value\n\t\t});\n\t}\n\n\tsetSelectValues()\n\t{\n\t\tDom.clean(this.DOM.select);\n\t\tthis.DOM.select.options.add(new Option(Loc.getMessage('EC_NO_VALUE'), ''));\n\t\tif (this.mailboxList.length)\n\t\t{\n\t\t\tthis.mailboxList.forEach((value) => {\n\t\t\t\tthis.DOM.select.options.add(new Option(value.formatted, value.email));\n\t\t\t}, this);\n\t\t}\n\n\t\tif (this.allowAddNewEmail)\n\t\t{\n\t\t\tthis.DOM.select.options.add(new Option(Loc.getMessage('EC_ADD_NEW'), 'add'));\n\t\t}\n\t}\n\n\tonClick(item)\n\t{\n\t\tthis.input.value = item.sender;\n\t\tthis.mailbox.textContent = item.sender;\n\t}\n\n\tshowAdd()\n\t{\n\t\tif (window.BXMainMailConfirm)\n\t\t{\n\t\t\twindow.BXMainMailConfirm.showForm(this.onAdd.bind(this));\n\t\t}\n\t\tconst mainMailConfirmPopup = PopupManager.getPopupById(this.CONFIRM_POPUP_ID);\n\t\tif (mainMailConfirmPopup)\n\t\t{\n\t\t\tmainMailConfirmPopup.subscribe('onClose', ()=>{\n\t\t\t\tthis.reloadMailboxList();\n\t\t\t});\n\t\t}\n\t}\n\n\tonAdd(data)\n\t{\n\t\tthis.reloadMailboxList()\n\t\t\t.then(() => {\n\t\t\t\tsetTimeout(()=>{\n\t\t\t\t\tthis.setValue(data.email);\n\t\t\t\t},0);\n\t\t\t});\n\t}\n\n\tgetMenuItem(item)\n\t{\n\t\treturn {\n\t\t\t'id': item.id,\n\t\t\t'text': BX.util.htmlspecialchars(item.sender),\n\t\t\t'onclick': this.onClick.bind(this, item)\n\t\t};\n\t}\n\n\tloadMailboxData()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.calendarajax.getAllowedMailboxData')\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tBX.html(this.DOM.componentWrap, response.data.html);\n\t\t\t\t\t\tthis.mailboxList = response.data.additionalParams.mailboxList;\n\t\t\t\t\t\tthis.checkBXMainMailConfirmLoaded(resolve);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t});\n\t}\n\n\tcheckBXMainMailConfirmLoaded(resolve)\n\t{\n\t\tif (window.BXMainMailConfirm)\n\t\t{\n\t\t\tthis.setSelectValues();\n\t\t\tresolve();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsetTimeout(()=>{this.checkBXMainMailConfirmLoaded(resolve)}, 200);\n\t\t}\n\t}\n\n\treloadMailboxList()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.calendarajax.getAllowedMailboxList')\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tthis.mailboxList = response.data.mailboxList;\n\t\t\t\t\t\tthis.setSelectValues();\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t});\n\t}\n}","import {Tag, Dom, Loc, Event} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {Popup} from 'main.popup';\nimport {EmailSelectorControl} from 'calendar.controls';\nimport {Util} from 'calendar.util';\n\nexport class ConfirmedEmailDialog extends EventEmitter\n{\n\tZ_INDEX = 3200;\n\tSLIDER_Z_INDEX = 4400;\n\tWIDTH = 400;\n\n\tDOM = {};\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.ConfirmedEmailDialog');\n\t\tthis.id = 'confirm-email-dialog-' + Math.round(Math.random() * 10000);\n\t}\n\n\tshow()\n\t{\n\t\tthis.DOM.content = Tag.render`<div>\n\t\t\t<div class=\"calendar-confirm-email-text\">${Loc.getMessage('EC_CONFIRMED_EMAIL_TEXT_1')}</div>\n\t\t\t<div class=\"calendar-confirm-email-text\"><a class=\"calendar-confirm-email-help-link\" href=\"javascript:void(0);\">${Loc.getMessage('EC_CONFIRMED_EMAIL_HELP_LINK')}</a></div>\n\t\t\t<div class=\"calendar-field-block\">\n\t\t\t\t<select class=\"calendar-field calendar-field-select ui-btn ui-btn ui-btn-light-border ui-btn-clock\"></select>\n\t\t\t</div>\n\t\t</div>`;\n\n\t\tthis.dialog = new Popup(this.id, null, {\n\t\t\toverlay: {opacity: 10},\n\t\t\tautoHide: true,\n\t\t\twidth: this.WIDTH,\n\t\t\tcloseByEsc : true,\n\t\t\tzIndex: this.Z_INDEX,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: Loc.getMessage('EC_CONFIRMED_EMAIL_TITLE'),\n\t\t\tcloseIcon: { right : \"12px\", top : \"10px\"},\n\t\t\tclassName: 'confirmemail-popup-window',\n\t\t\tcontent: this.DOM.content,\n\t\t\tevents: {},\n\t\t\tcacheable: false,\n\t\t\tbuttons: [\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext : Loc.getMessage('EC_CONFIRMED_EMAIL_SEND'),\n\t\t\t\t\tclassName: `ui-btn ui-btn-primary ${BX.UI.Button.State.DISABLED}`,\n\t\t\t\t\tevents : {click : () => {\n\t\t\t\t\t\tif (this.DOM.select.value && this.DOM.select.value !== 'add')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst userSettings = Util.getUserSettings();\n\t\t\t\t\t\t\tuserSettings.sendFromEmail = this.emailSelectorControl.getValue();\n\t\t\t\t\t\t\tUtil.setUserSettings(userSettings);\n\t\t\t\t\t\t\tBX.userOptions.save('calendar', 'user_settings', 'sendFromEmail', userSettings.sendFromEmail);\n\t\t\t\t\t\t\tthis.emit('onSelect', new BaseEvent({data: {sendFromEmail: userSettings.sendFromEmail}}));\n\t\t\t\t\t\t\tthis.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t}),\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\t\t\tclassName: \"ui-btn ui-btn-light-border\",\n\t\t\t\t\tevents : {click : this.close.bind(this)}\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\n\t\tthis.DOM.processButton = this.dialog.buttons[0].button;\n\n\t\tthis.DOM.select = this.DOM.content.querySelector('select.calendar-field-select');\n\t\tDom.addClass(this.DOM.select, BX.UI.Button.State.CLOCKING);\n\t\tthis.DOM.select.disabled = true;\n\n\t\tthis.emailSelectorControl = new EmailSelectorControl({\n\t\t\tselectNode: this.DOM.select,\n\t\t\tallowAddNewEmail: true\n\t\t});\n\t\tEvent.bind(this.DOM.select, 'change', this.handleSelectChanges.bind(this));\n\t\tthis.emailSelectorControl.subscribe('onSetValue', this.handleSelectChanges.bind(this));\n\n\t\tthis.emailSelectorControl.loadMailboxData()\n\t\t\t.then(()=> {\n\t\t\t\tthis.emailSelectorControl.setValue(Util.getUserSettings().sendFromEmail);\n\t\t\t\tthis.DOM.select.disabled = false;\n\t\t\t\tthis.DOM.select.className = 'calendar-field calendar-field-select';\n\t\t\t});\n\n\t\tthis.DOM.helpLinlk = this.DOM.content.querySelector('.calendar-confirm-email-help-link');\n\t\tEvent.bind(this.DOM.helpLinlk, 'click', this.openHelpSlider.bind(this));\n\n\t\tthis.dialog.show();\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n\n\thandleSelectChanges()\n\t{\n\t\tif (this.DOM.select.value && this.DOM.select.value !== 'add')\n\t\t{\n\t\t\tDom.removeClass(this.DOM.processButton, BX.UI.Button.State.DISABLED);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.DOM.processButton, BX.UI.Button.State.DISABLED);\n\t\t}\n\t}\n\n\topenHelpSlider()\n\t{\n\t\tif(BX.Helper)\n\t\t{\n\t\t\tBX.Helper.show(\"redirect=detail&code=12070142\", {zIndex: this.SLIDER_Z_INDEX});\n\t\t}\n\t}\n}\n","'use strict';\n\nimport { Tag, Loc } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Popup } from 'main.popup';\nimport { FeaturePromotersRegistry } from 'ui.info-helper';\n\nexport class EmailLimitationDialog extends EventEmitter\n{\n\tZ_INDEX = 3200;\n\tWIDTH = 480;\n\n\tDOM = {};\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Controls.EmailLimitationDialog');\n\t\tthis.id = `email-limitation-dialog-${Math.round(Math.random() * 10000)}`;\n\t}\n\n\tshow()\n\t{\n\t\tthis.DOM.content = Tag.render`\n\t\t\t<div>\n\t\t\t\t<div class=\"calendar-email-limit-text\">${Loc.getMessage('EC_EMAIL_LIMIT_DENY')}</div>\n\t\t\t\t<div class=\"calendar-email-limit-subtext\">${Loc.getMessage('EC_EMAIL_LIMIT_SUBTEXT')}</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.dialog = this.getDialogPopup();\n\n\t\tthis.dialog.show();\n\t}\n\n\tgetDialogPopup()\n\t{\n\t\treturn new Popup(this.id, null, {\n\t\t\toverlay: { opacity: 10 },\n\t\t\tautoHide: true,\n\t\t\twidth: this.WIDTH,\n\t\t\tcloseByEsc: true,\n\t\t\tzIndex: this.Z_INDEX,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tdraggable: {\n\t\t\t\trestrict: true,\n\t\t\t},\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: Loc.getMessage('EC_EMAIL_LIMIT_TITLE'),\n\t\t\tcloseIcon: { right: '12px', top: '10px' },\n\t\t\tclassName: 'email-limit-popup',\n\t\t\tcontent: this.DOM.content,\n\t\t\tevents: {},\n\t\t\tcacheable: false,\n\t\t\tbuttons: [\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('EC_EMAIL_LIMIT_EXPAND_PLAN'),\n\t\t\t\t\tclassName: 'ui-btn ui-btn-primary ui-btn-icon-plan',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: () => {\n\t\t\t\t\t\t\tFeaturePromotersRegistry.getPromoter({ featureId: 'calendar_events_with_email_guests' }).show();\n\t\t\t\t\t\t\tthis.close();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tnew BX.UI.Button({\n\t\t\t\t\ttext: Loc.getMessage('EC_EMAIL_LIMIT_SAVE_WITHOUT'),\n\t\t\t\t\tclassName: 'ui-btn ui-btn-link',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: () => {\n\t\t\t\t\t\t\tthis.saveWithoutAttendees();\n\t\t\t\t\t\t\tthis.close();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\tclose()\n\t{\n\t\tif (this.dialog)\n\t\t{\n\t\t\tthis.dialog.close();\n\t\t}\n\t}\n\n\tsaveWithoutAttendees()\n\t{\n\t\tthis.emit('onSaveWithoutAttendees');\n\t}\n}\n","import { Loc, Type, Dom } from 'main.core';\nimport { MenuManager, MenuItem } from 'main.popup';\nimport { UserPlannerSelector } from 'calendar.controls';\n\nexport class AttendeesList\n{\n\tconstructor(node, attendeesList = {})\n\t{\n\t\tthis.attendeesList = attendeesList;\n\t\tthis.node = node;\n\t}\n\n\tsetAttendeesList(attendeesList)\n\t{\n\t\tthis.attendeesList = attendeesList;\n\n\t\treturn this;\n\t}\n\n\tshowPopup()\n\t{\n\t\tif (this.popup)\n\t\t{\n\t\t\tthis.popup.destroy();\n\t\t}\n\n\t\tconst menuItems = this.getMenuItems();\n\n\t\tthis.popup = this.getPopup(menuItems);\n\t\tthis.popup.show();\n\n\t\tthis.addAvatarToMenuItems();\n\t}\n\n\taddAvatarToMenuItems()\n\t{\n\t\tthis.popup.menuItems.forEach((item) => {\n\t\t\tconst icon = item.layout.item.querySelector('.menu-popup-item-icon');\n\t\t\tif (Type.isPlainObject(item.dataset))\n\t\t\t{\n\t\t\t\tDom.append(UserPlannerSelector.getUserAvatarNode(item.dataset.user), icon);\n\t\t\t}\n\t\t});\n\t}\n\n\tgetPopup(menuItems)\n\t{\n\t\treturn MenuManager.create(\n\t\t\t`compact-event-form-attendees${Math.round(Math.random() * 100_000)}`,\n\t\t\tthis.node,\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: 15,\n\t\t\t\tangle: true,\n\t\t\t\tcacheable: false,\n\t\t\t\tclassName: 'calendar-popup-user-menu',\n\t\t\t},\n\t\t);\n\t}\n\n\tgetMenuItems()\n\t{\n\t\tconst menuItems = [];\n\t\t[\n\t\t\t{\n\t\t\t\tcode: 'accepted', // Accepted\n\t\t\t\ttitle: Loc.getMessage('EC_ATTENDEES_Y_NUM'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'requested', // Still thinking about\n\t\t\t\ttitle: Loc.getMessage('EC_ATTENDEES_Q_NUM'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tcode: 'declined', // Declined\n\t\t\t\ttitle: Loc.getMessage('EC_ATTENDEES_N_NUM'),\n\t\t\t},\n\t\t].forEach((group: { code: string, title: string }) => {\n\t\t\tconst groupUsers = this.attendeesList[group.code];\n\t\t\tif (groupUsers.length > 0)\n\t\t\t{\n\t\t\t\tmenuItems.push(new MenuItem({\n\t\t\t\t\ttext: group.title.replace('#COUNT#', groupUsers.length),\n\t\t\t\t\tdelimiter: true,\n\t\t\t\t}));\n\n\t\t\t\tgroupUsers.forEach((user) => {\n\t\t\t\t\tuser.toString = () => user.ID;\n\n\t\t\t\t\tmenuItems.push(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: BX.util.htmlspecialchars(user.DISPLAY_NAME),\n\t\t\t\t\t\t\tdataset: { user },\n\t\t\t\t\t\t\tclassName: `calendar-add-popup-user-menu-item ${user.COLLAB_USER ? 'calendar-collab-user' : ''}`,\n\t\t\t\t\t\t\tonclick: () => BX.SidePanel.Instance.open(\n\t\t\t\t\t\t\t\tuser.URL,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tloader: 'intranet:profile',\n\t\t\t\t\t\t\t\t\tcacheable: false,\n\t\t\t\t\t\t\t\t\tallowChangeHistory: true,\n\t\t\t\t\t\t\t\t\tcontentClassName: 'bitrix24-profile-slider-content',\n\t\t\t\t\t\t\t\t\twidth: 1100,\n\t\t\t\t\t\t\t\t},\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});\n\t\t\t}\n\t\t});\n\n\t\treturn menuItems;\n\t}\n\n\tstatic sortAttendees(attendees)\n\t{\n\t\treturn {\n\t\t\taccepted: attendees.filter((user) => ['H', 'Y'].includes(user.STATUS)),\n\t\t\trequested: attendees.filter((user) => user.STATUS === 'Q' || user.STATUS === ''),\n\t\t\tdeclined: attendees.filter((user) => user.STATUS === 'N'),\n\t\t};\n\t}\n}\n","import { ControlButton } from 'intranet.control-button';\nimport { Event, Loc, Type } from 'main.core';\nimport { Util } from 'calendar.util';\n\nexport class IntranetButton\n{\n\tconstructor(params = {})\n\t{\n\t\tthis.intranetControllButton = new ControlButton(params.intranetControlButtonParams);\n\t\tthis.hasChat = params.callbacks.hasChat;\n\t\tthis.getUsersCount = params.callbacks.getUsersCount;\n\n\t\tif (Type.isElementNode(this.intranetControllButton.button))\n\t\t{\n\t\t\tthis.openChat = this.intranetControllButton.openChat.bind(this.intranetControllButton);\n\t\t\tthis.intranetControllButton.openChat = this.openChatWithConfirm.bind(this);\n\n\t\t\tthis.startVideoCall = this.intranetControllButton.startVideoCall.bind(this.intranetControllButton);\n\t\t\tthis.intranetControllButton.startVideoCall = this.startVideoCallWithConfirm.bind(this);\n\n\t\t\tconst chatButton = this.intranetControllButton.button.querySelector('button.ui-btn-main');\n\n\t\t\tif (params.intranetControlButtonParams.mainItem === 'chat')\n\t\t\t{\n\t\t\t\tthis.setClickListener(chatButton, this.openChatWithConfirm.bind(this));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.setClickListener(chatButton, this.startVideoCallFromButton.bind(this));\n\t\t\t}\n\n\t\t\t// For testing purposes\n\t\t\tthis.intranetControllButton.button.setAttribute('data-role', 'videocallButton');\n\t\t}\n\t}\n\n\topenChatWithConfirm()\n\t{\n\t\tif (this.shouldNotConfirmOpenChat())\n\t\t{\n\t\t\tthis.openChat();\n\n\t\t\treturn;\n\t\t}\n\n\t\tUtil.showConfirmPopup(this.openChat, Loc.getMessage('EC_CREATE_CHAT_CONFIRM_QUESTION'), {\n\t\t\tokCaption: Loc.getMessage('EC_CREATE_CHAT_OK'),\n\t\t\tminWidth: 350,\n\t\t\tmaxWidth: 350,\n\t\t});\n\t}\n\n\tstartVideoCallWithConfirm(videoCallContext = 'context_menu')\n\t{\n\t\tif (this.shouldNotConfirmOpenChat())\n\t\t{\n\t\t\tthis.startVideoCall(videoCallContext);\n\n\t\t\treturn;\n\t\t}\n\n\t\tUtil.showConfirmPopup(this.startVideoCall, Loc.getMessage('EC_START_VIDEOCONFERENCE_CONFIRM_QUESTION'), {\n\t\t\tokCaption: Loc.getMessage('EC_START_VIDEOCONFERENCE_OK'),\n\t\t\tminWidth: 350,\n\t\t\tmaxWidth: 350,\n\t\t});\n\t}\n\n\tstartVideoCallFromButton()\n\t{\n\t\tthis.startVideoCallWithConfirm('card');\n\t}\n\n\tshouldNotConfirmOpenChat()\n\t{\n\t\treturn this.hasChat() || this.getUsersCount() < 10;\n\t}\n\n\tsetClickListener(element, handler)\n\t{\n\t\tconst clonedNode = element.cloneNode(true);\n\t\tEvent.bind(clonedNode, 'click', handler);\n\t\telement.parentNode.replaceChild(clonedNode, element);\n\t}\n\n\tdestroy()\n\t{\n\t\tif (this.intranetControllButton && this.intranetControllButton.destroy)\n\t\t{\n\t\t\tthis.intranetControllButton.destroy();\n\t\t\tthis.intranetControllButton = null;\n\t\t}\n\t}\n}\n","import { Event, Loc } from 'main.core';\nimport { Util } from 'calendar.util';\nimport { Menu, MenuItem } from 'main.popup';\n\nexport class AccessibilitySelector\n{\n\t#accessibilityMenu: Menu;\n\n\tconstructor(params)\n\t{\n\t\tthis.uid = params.uid;\n\t\tthis.readonly = params.readonly;\n\t\tthis.input = params.input;\n\n\t\tif (!this.readonly)\n\t\t{\n\t\t\tEvent.bind(this.input, 'click', this.#showMenu);\n\t\t}\n\t}\n\n\t#showMenu = () => {\n\t\tthis.#accessibilityMenu ??= new Menu({\n\t\t\tid: `${this.uid}-calendar-accessibility-menu`,\n\t\t\tbindElement: this.input,\n\t\t\tcloseByEsc: true,\n\t\t\titems: this.#getMenuItems(),\n\t\t});\n\n\t\tthis.#accessibilityMenu.show();\n\t};\n\n\t#getMenuItems(): Array\n\t{\n\t\tconst result = [];\n\t\tconst items = ['busy', 'quest', 'free'];\n\n\t\tif (Util.getAbsenceAvailable())\n\t\t{\n\t\t\titems.push('absent');\n\t\t}\n\n\t\tfor (const item of items)\n\t\t{\n\t\t\tresult.push(new MenuItem({\n\t\t\t\ttext: this.getItemName(item),\n\t\t\t\tonclick: () => this.#selectItem(item),\n\t\t\t}));\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t#selectItem = (item) => {\n\t\tthis.#accessibilityMenu.close();\n\t\tthis.input.value = this.getItemName(item);\n\t\tthis.input.dataset.value = item;\n\t};\n\n\tgetItemName(value): string\n\t{\n\t\tswitch (value)\n\t\t{\n\t\t\tcase 'busy': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_ACC_B');\n\t\t\t}\n\n\t\t\tcase 'quest': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_ACC_Q');\n\t\t\t}\n\n\t\t\tcase 'free': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_ACC_F');\n\t\t\t}\n\n\t\t\tcase 'absent': {\n\t\t\t\treturn Loc.getMessage('EC_CONTROL_ACC_A');\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\t}\n\n\tsetValue(value)\n\t{\n\t\tthis.input.value = this.getItemName(value);\n\t\tthis.input.dataset.value = value;\n\t}\n}\n"],"names":["TimeSelector","constructor","params","Z_INDEX","valueList","DOM","wrap","input","hour","push","value","label","Util","formatTime","onChangeCallback","Type","isFunction","selectContol","SelectInput","zIndex","values","data","getInputValue","dataValue","onPopupShowCallback","Dom","addClass","parentNode","onPopupCloseCallback","removeClass","highlightValue","date","forEach","el","selected","minutes","getHours","getMinutes","setValue","selectedValue","find","setValueList","updateDurationHints","fromTime","toTime","fromDate","toDate","parsedFromTime","parseTime","parsedToTime","parsedFromDate","parseDate","parsedToDate","fromMinutes","h","m","toMinutes","isSameDate","iterateFrom","approximate","firstHour","getValueElement","minute","fromMinute","currentMinute","toMinute","Math","floor","min","time","durationHint","getStyledDurationHint","hint","getDurationHint","from","Date","getTime","to","diff","diffDays","approximateFloor","diffHours","diffMinutes","diffMinutesApproximation","approximationMark","formatDecimal","Loc","getMessage","decimal","replace","accuracy","round","Reminder","EventEmitter","defaultReminderTime","fullDayMode","extendedMode","selectedValues","controlList","viewMode","changedByUser","setEventNamespace","getValues","id","random","rawValuesMap","Map","changeCallack","showPopupCallBack","hidePopupCallBack","create","bindEventHandlers","isElementNode","addButton","appendChild","Tag","render","isDomNode","Event","bind","showPopup","handleClick","concat","shortLabel","dataset","mode","daysBefore","reminderList","emitChanges","removeValue","isArray","addValue","getSelectedValues","getSelectedRawValues","selectedRawValues","get","setFullDayMode","_this","menuItems","item","BX","util","in_array","menuItem","getTimeByInt","text","objectMerge","type","items","getSubmenuTimeValues","onclick","before","defer","reminderMenu","close","addValueCallback","MenuManager","bindTarget","closeByEsc","autoHide","offsetTop","offsetLeft","angle","cacheable","adjustSubmenuPopup","closeSubmenuPopup","subscribe","popupWindow","unsubscribe","show","parentItem","parentItemMessage","getTimeValueList","e","parentMenuItem","getMenuItem","setText","formattedValue","formatValue","isPlainObject","count","parseInt","includes","isInteger","getReminderLabel","isDate","formatDateUsable","set","i","length","undefined","props","className","getText","events","click","emit","BaseEvent","remove","deleteFromArray","array_search","timeValueList","target","srcElement","remValue","getAttribute","isNull","hasClass","removeIcon","querySelector","inputCalendarClosePopupHandler","onCustomEvent","window","event","submenuPopup","getTarget","Popup","test","getId","adjustTimeSubmenuPopup","adjustCalendarSubmenuPopup","layout","bindElement","textNode","clean","innerHTML","popup","selectedMenuItem","getContentContainer","setTimeout","scrollTop","calendarControl","calendar","destroy","_current_layer","_layers","popup_month","popup_year","Show","node","formatDateTime","getUsableDateTime","field","bTime","bHideTime","calendarPopup","popupContainer","calendarWrap","contentContainer","uniquePopupId","dateValue","setViewMode","style","display","wasChangedByUser","tempValue","dividers","messageCodes","result","toString","ceil","remindValue","Location","datesRange","wrapNode","roomsManager","locationAccess","readOnly","disabled","richLocationEnabled","hideLocationLock","isLoading","inlineEditModeEnabled","meetingRooms","iblockMeetingRoomList","setMeetingRoomList","setLocationList","locationList","default","setDefaultRoom","processValue","setCategoryManager","setValuesDebounced","debounce","setValues","updateAccessibilityDebounce","Runtime","updateAccessibility","instances","inputWrap","alertIconLocation","inlineEditLinkWrap","inlineEditLink","displayInlineEditControls","inputWrapInner","attrs","name","inputName","placeholder","autocomplete","paddingRight","minWidth","maxWidth","lockIcon","FeaturePromotersRegistry","getPromoter","featureId","append","addLocationRemoveButton","categoryManagerFromDB","prohibitClick","menuItemList","selectedIndex","getMeetingRoomList","getLocationList","roomList","createRoomList","categoriesWithRooms","getCategoriesWithRooms","room","ID","Number","NAME","labelRaw","capacity","delimiter","pushRoomToItemList","location_id","isSelected","LOCATION_ID","color","reserved","labelCapacity","getCapacityMessage","isObject","categories","category","rooms","loadRoomSlider","callback","openRoomsSlider","disabledControl","selectControlCreated","valueIndex","element","setCurrentCapacity","removeLocationRemoveButton","location","allowClick","getShouldCheckLocationAccessibility","checkLocationAccessibility","accessibilityParams","setDisabled","setLoading","str","getTextLocation","locationListElement","room_id","CAPACITY","setValuesDebounce","contains","removeLocationButton","removeChild","isShown","shown","addCapacityAlert","initHintNode","after","removeCapacityAlert","suffix","shouldCheckLocationAccessibility","setShouldCheckLocationAccessibility","shouldCheck","getLocationAccessibility","then","timezone","getUserSettings","timezoneName","timezoneOffset","getTimeZoneOffset","fromTs","toTs","fullDay","DAY_LENGTH","index","roomId","isUndefined","accessibility","isArrayFilled","PARENT_ID","currentEventId","eventTimezoneOffset","DT_SKIP_TIME","TZ_FROM","eventTsFrom","DATE_FROM","eventTsTo","DATE_TO","Promise","resolve","getDatesRange","isCheckedAccessibility","ajax","runAction","response","errors","handlePull","entry","fields","dateFrom","dateTo","excludedDates","EXDATE","split","pop","instance","setRoomsManager","getRoomsInterface","RoomsInterface","roomsInterface","calendarContext","readonly","roomsManagerFromDB","categoryManager","isConfigureList","getTextValue","res","mrevid","room_event_id","getValue","debounced","parseStringValue","textLocation","Text","encode","isString","slice","isNaN","mrid","sortLocationList","sort","a","b","toLowerCase","meetingRoomList","setLocationAccessibility","currentRoomCapacity","getCurrentCapacity","RoomsManager","isEmpty","activeRooms","getRoomsInfo","active","activeRoomId","bx","Calendar","getBX","extensionName","loadExtension","Rooms","console","error","getRoomsManager","getRoomsManagerData","sections","config","hiddenSections","ownerId","userId","new_section_access","defaultSectionAccess","sectionAccessTasks","showTasks","locationContext","accessNames","map","RoomsSection","getCategoryManager","CategoryManager","getCategoryManagerData","perm","permissions","getDateInFormat","getDate","getMonth","getFullYear","getDayLength","startDate","setHours","finishDate","UserSelector","destinationInputName","itemsSelected","convertAttendeesCodes","socnetDestinationWrap","SocNetLogDestination","openDialog","socnetDestinationItems","targ","top","deleteItem","preventDefault","stopPropagation","mouseover","mouseout","socnetDestinationInputWrap","socnetDestinationInput","keydown","searchBeforeHandler","formName","inputId","keyup","searchHandler","linkId","sendAjax","socnetDestinationLink","html","addLinkMessage","message","init","selectGroups","groups","department","sonetgroups","selectUsers","users","searchInput","extranetUser","userSearchArea","bindMainPopup","bindSearchPopup","select","selectCallback","unSelect","unSelectCallback","openDialogCallback","closeDialog","closeDialogCallback","openSearch","closeSearch","itemsLast","departmentSelectDisable","closeAll","isOpenDialog","type1","prefix","children","getSelectedCount","search","elements","findChildren","attribute","j","focus","cleanInputValue","isOpenSearch","backspaceDisable","unbind","keyCode","getCodes","inputsList","getElementsByTagName","codes","getAttendeesCodes","attendeesCodes","code","substr","getAttendeesCodesList","hasOwnProperty","ColorSelector","LINE_MODE","SELECTOR_MODE","VIEW_MODE","defaultColors","getDefaultColorList","colors","customColorNode","customColorLink","colorPickerPopup","ColorPicker","onColorSelected","popupOptions","open","handleColorClick","colorIcon","openPopup","findTargetNode","activeColor","activeColorNode","attr","backgroundColor","width","icon","left","SectionSelector","getModes","sectionList","sectionGroupList","openPopupCallback","closePopupCallback","getCurrentSection","defaultCalendarType","defaultOwnerId","outerWrap","initEventHandlers","selectImageWrap","selectInnerText","getCurrentTitle","innerValue","getCurrentColor","sectionMenu","sectionIdList","getSectionList","sectionGroup","filteredList","belongsToView","filter","section","getSectionType","getSectionOwner","isCollab","MenuItem","title","overflow","maxHeight","setWidth","offsetWidth","overflowX","addCustomEvent","delegate","PERM","edit","canDo","updateSectionImageNode","it","imageNode","imageSrc","getSectionImage","encodeURI","getPopup","sectionItem","htmlspecialchars","COLOR","updateValue","CAL_TYPE","IMAGE","OWNER_ID","adjust","RepeatSelector","getData","until","formatDate","Menu","uid","rruleType","key","changeType","rruleCount","formElements","form","interval","rruleEndsOn","never","initDatePicker","showUntilPicker","checked","DatePicker","targetNode","onSelect","toUpperCase","getTypeName","day","getWeekDayByInd","getDay","previousDay","rrule","isNil","FREQ","INTERVAL","COUNT","BYDAY","getType","description","isStringFilled","innerText","NONE","DAILY","WEEKLY","MONTHLY","YEARLY","Object","entries","String","defaultValue","openTitle","curInd","eventHandlers","onClick","onFocus","onKeydown","change","eventName","handler","unbindEventHandlers","currentValue","currentValueIndex","popupMenu","menuItemsLength","getMenuItems","popupMenuItem","removeMenuItem","destroyEmptyPopup","addMenuItem","updateIconColors","closePopup","onPopupShow","onPopupClose","onPopupDestroy","updateLoader","browser","IsFirefox","setMinWidth","setMaxWidth","menuContainer","getPopupWindow","currentItem","getCurrentItem","offsetHeight","htmlTemp","classSelected","onChange","popupMenuItems","getCurrentIndex","inputValue","getPopupContainer","loaderContainer","Loader","PopupDialog","dialog","PopupWindow","overlay","opacity","draggable","restrict","bindOnResize","titleBar","getTitle","closeIcon","right","buttons","getButtons","content","getContent","ViewSelector","views","created","currentViewMode","popupId","currentView","selectorText","selectorTextInner","viewModeTextInner","getOuterWrap","view","hotkey","menuPopup","hide","LineViewSelector","navigationPanel","getItem","NavigationPanel","targetWrap","getItemById","activate","AddButton","addEntryHandler","addEntry","addTaskHandler","addTask","addButtonExtra","setAttribute","getWrap","PopupMenu","addBtnMenu","MeetingStatusControl","Error","status","currentStatus","updateStatus","acceptBtn","UI","Button","accept","renderTo","declineBtn","decline","getContainer","setStatus","emitEvent","ConfirmStatusDialog","lightShadow","minHeight","animation","contentBackground","thisEventButton","size","ButtonSize","MEDIUM","ButtonColor","LIGHT_BORDER","onDeclineHandler","recursionMode","nextEventButton","allEventButton","compactForm","EntryManager","getCompactViewForm","ConfirmEditDialog","options","notOnlyThisState","canEditOnlyThis","ButtonState","DISABLED","showCanEditOnlyThisPopup","state","clearTimeout","hideCanEditOnlyThisPopupTimeout","darkMode","bindOptions","position","onShow","angleLeft","getOption","popupWidth","elementWidth","setOffset","adjustPosition","setAngle","offset","_t","ConfirmDeleteDialog","deleteThis","deleteNext","deleteAll","_t2","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t10","_t11","DateTimeControl","showTimezone","DATE_INPUT_WIDTH","TIME_INPUT_WIDTH","fromTz","timezone_id","bindTimezones","toTz","bindFromToDefaultTimezones","handleValueChange","createDateFromUtc","handleDateFromChange","handleDateToChange","inlineEditMode","Boolean","currentInlineEditMode","UID","outerContent","leftInnerWrap","fromDateText","fromTimeText","betweenSpacer","rightInnerWrap","toTimeText","toDateText","fromTimeControl","handleTimeFromChange","toTimeControl","handleTimeToChange","fullDayWrap","updateTimePeriod","timezoneFrom","timezoneTo","getTimezoneNameWithShift","switchTimezone","handleFullDayChange","getFrom","getTo","updateToTimeDurationHints","selectedDates","getDateWithTime","parsedDate","showDateFromInputCalendar","showDateToInputCalendar","handleTimeInput","showTzFromMenu","showTzToMenu","changeInlineEditMode","defTimezone","tzButton","nodeName","timezoneList","getTimezoneList","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","difference","selectDate","abs","yearDuration","duration","getMinutesFromFormattedTime","handleTimeChange","isIncorrectTimeValue","newFromDate","timeValue","isAmPmMode","timeSelector","getMaskedTime","beautifyTime","amPmSymbol","match","getMinutesAndHours","hours","inputType","backspace","clearTimeString","digits","splice","d","getMaxHours","formatHours","formatMinutes","validatedTime","replaceAll","trim","firstColonIndex","indexOf","max","areTimeDigitsCorrect","hh","mm","firstDigit","getFullDayValue","dateTimeWrap","parsedTime","isBoolean","tzCont","setInlineEditMode","timezoneValue","BusyUsersDialog","plural","userNames","user","DISPLAY_NAME","userNamesPrepared","join","MessageBox","SMALL","PRIMARY","UserPlannerSelector","readOnlyMode","meetingNotifyValue","userSelectorDialog","attendeesEntityList","prevUserList","loadedAccessibilityData","REFRESH_PLANNER_DELAY","selectorId","informWrap","informWrapText","moreLink","changeLink","attendeesLabel","attendeesList","userSelectorWrap","plannerOuterWrap","videocallWrap","hideGuestsWrap","hideGuestsIcon","refreshPlannerStateDebounce","refreshPlannerState","plannerReadOnly","plannerFeatureEnabled","isEditableSharingEvent","openEditFormCallback","isReadOnly","clickAction","EntitySelectorDialog","context","preselectedItems","attendeesPreselectedItems","undeselectedItems","attendeesUndeselectedItems","enableSearch","handleUserSelectorChanges","entities","getSelectorEntities","searchTabOptions","stubOptions","subtitle","iconOpacity","arrow","showMoreAttendeesPopup","planner","Planner","solidStatus","showWorkTimeNotice","PLANNER_WIDTH","showEntryName","locked","setInformValue","handleExpandPlannerTimeline","setHideGuestsValue","hideGuests","inviteGuestLink","emailUsers","isEventWithEmailGuestAllowed","analyticsSource","lockGuestLink","lockGuestLinkFeatureId","selectMode","isProjectFeatureEnabled","attendees","notify","entityId","entryId","setEntityList","setLocationValue","displayAttendees","dateTime","getDateTime","updateSelector","EVENT_TYPE","getCurrentStatus","conferenceButton","handleVideoconferenceButtonClick","Intranet","ControlButton","getCalendarContext","isCollabUser","intranetControllButton","IntranetButton","intranetControlButtonParams","container","entityType","parentId","mainItem","entityData","analytics","startVideoCall","tool","c_section","c_sub_section","p5","callbacks","getUsersCount","hasChat","MEETING","CHAT_ID","showPlanner","getSelectedItems","getEntityList","selectorEntityList","getUserSelector","SelectorManager","isPlannerDisplayed","showLoader","isFullDay","currentFromDate","currentToDate","setEntriesCount","checkBusyTime","entityList","updateScaleLimitsFromEntry","runPlannerDataRequest","getLocationValue","hasAccessibility","preparedData","preparedDataAccessibility","checkTimePeriod","update","hideLoader","prepareAttendeesForDisplay","AVATAR","avatar","EMAIL_USER","emailUser","SHARING_USER","sharingUser","STATUS","URL","url","loadPlannerData","entryLocation","LOCATION","hostId","MEETING_HOST","scaleDateFrom","scaleDateTo","entrieIds","setDateTime","updatePlaner","dateTimeCloned","dayCount","fromHours","toHours","shownScaleTimeFrom","shownScaleTimeTo","attendeeList","AttendeesList","sortAttendees","usersCount","userLength","accepted","MAX_USER_COUNT_DISPLAY","getUserAvatarNode","hasExternalEmailUsers","showHideGuestsOption","hideHideGuestsOption","requested","img","SMALL_AVATAR","COLLAB_USER","AvatarRoundGuest","userName","userpicPath","baseColor","defaultAvatarClass","DISABLED_CLASS","getInformValue","some","hideGuestsText","calendarEventsAccessibility","prepareAccessibilityItem","clearAccessibilityData","userIdList","reload","focusSelector","getConferenceChatId","eventId","BXIM","chatId","openMessenger","alert","setEditableSharingEventMode","showCanEditAttendeesPopup","setCanEditAttendeesMode","canEditAttendeesPopupShown","hintPopup","now","showClassName","closeClassName","closeAnimationType","hideEditSharingEventHintPopup","EDIT_MODE","ReinviteUserDialog","sendInvitesAgain","EmailSelectorControl","CONFIRM_POPUP_ID","selectNode","mailboxList","componentWrap","allowAddNewEmail","checkValueDebounce","checkValue","setSelectValues","showAdd","mailbox","email","add","Option","formatted","sender","textContent","BXMainMailConfirm","showForm","onAdd","mainMailConfirmPopup","PopupManager","getPopupById","reloadMailboxList","loadMailboxData","additionalParams","checkBXMainMailConfirmLoaded","ConfirmedEmailDialog","SLIDER_Z_INDEX","WIDTH","State","userSettings","sendFromEmail","emailSelectorControl","setUserSettings","userOptions","save","processButton","button","CLOCKING","handleSelectChanges","helpLinlk","openHelpSlider","Helper","EmailLimitationDialog","getDialogPopup","saveWithoutAttendees","setAttendeesList","addAvatarToMenuItems","group","groupUsers","SidePanel","Instance","loader","allowChangeHistory","contentClassName","declined","openChat","openChatWithConfirm","startVideoCallWithConfirm","chatButton","setClickListener","startVideoCallFromButton","shouldNotConfirmOpenChat","showConfirmPopup","okCaption","videoCallContext","clonedNode","cloneNode","replaceChild","AccessibilitySelector","getItemName","getAbsenceAvailable"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit