File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/calendar/install/js/calendar/controls/dist/controls.bundle.js.map
Back
{"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"],"sourcesContent":["import {Util} from 'calendar.util';\nimport {Type, Loc} from 'main.core';\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 BX.Calendar.Controls.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});\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',\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'\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';\n\t\t\t\t\tmenuItem.text = item.label;\n\t\t\t\t\tmenuItem.items = [{id: 'tmp', text: 'tmp'}];\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$/.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$/.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\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} 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';\n\nexport class Location\n{\n\tstatic locationList = [];\n\tstatic meetingRoomList = [];\n\tstatic currentRoomCapacity = 0;\n\tstatic accessibility = [];\n\tstatic DAY_LENGTH = 86400000;\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() * 1000000);\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.disabled = !params.richLocationEnabled;\n\t\tthis.value = {type: '', text: '', value: ''};\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), 70);\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</div>`);\n\n\t\t\tthis.DOM.inputWrap.style.display = 'none';\n\n\t\t\tEvent.bind(\n\t\t\t\tthis.DOM.inlineEditLinkWrap, 'click', () => {\n\t\t\t\t\tthis.displayInlineEditControls();\n\t\t\t\t\tthis.selectContol.showPopup();\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthis.DOM.inputWrapInner = this.DOM.inputWrap.appendChild(Tag.render`\n\t\t\t\t<div class=\"calendar-event-location-input-wrap-inner\">\n\t\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\t,\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\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\ttop.BX.UI.InfoHelper.show('limit_office_calendar_location');\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\t\t\treturn;\n\t\t}\n\t\tthis.prohibitClick();\n\n\t\tlet\n\t\t\tmenuItemList = [],\n\t\t\tselectedIndex = false,\n\t\t\tmeetingRooms = Location.getMeetingRoomList(),\n\t\t\tlocationList = 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 = parseInt(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 (this.value.type === 'mr'\n\t\t\t\t\t&& parseInt(this.value.value) === room.ID)\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\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});\n\n\t\t\tif (this.value.type === 'calendar'\n\t\t\t\t&& parseInt(this.value.value) === parseInt(room.id))\n\t\t\t{\n\t\t\t\tselectedIndex = menuItemList.length - 1;\n\t\t\t}\n\t\t};\n//TODO think about delimiter draw\n\t\tif (Type.isObject(this.categoriesWithRooms))\n\t\t{\n\t\t\tif (this.categoriesWithRooms.categories.length || this.categoriesWithRooms.default.length)\n\t\t\t{\n\t\t\t\tthis.categoriesWithRooms.categories.forEach((category) => {\n\t\t\t\t\tif(category.rooms.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuItemList.push({text: category.name, delimiter: true});\n\t\t\t\t\t\tcategory.rooms.forEach((room) => pushRoomToItemList(room), this);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (this.categoriesWithRooms.default.length)\n\t\t\t\t{\n\t\t\t\t\tmenuItemList.push({\n\t\t\t\t\t\ttext:\"\\0\",\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), this);\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{\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\t}\n\t\t}\n\n\t\tif (this.selectContol)\n\t\t{\n\t\t\tthis.selectContol.destroy();\n\t\t}\n\n\t\tlet disabledControl = this.disabled;\n\t\tif (!menuItemList.length)\n\t\t{\n\t\t\tdisabledControl = true;\n\t\t}\n\n\t\tthis.processValue();\n\n\t\tthis.selectContol = new BX.Calendar.Controls.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\tEventEmitter.emit('Calendar.LocationControl.onValueChange');\n\t\t\t\tlet i, value = this.DOM.input.value;\n\t\t\t\tthis.value = {text: value};\n\t\t\t\tfor (i = 0; i < menuItemList.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (menuItemList[i].labelRaw === value)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.value.type = menuItemList[i].type;\n\t\t\t\t\t\tthis.value.value = menuItemList[i].value;\n\t\t\t\t\t\tLocation.setCurrentCapacity(menuItemList[i].capacity)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\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\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\t\t\t\tthis.allowClick();\n\t\t\t}\n\t\t});\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 || '';\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\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.setCategoryManager();\n\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\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\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\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\t\treturn Loc.getMessage('EC_LOCATION_CAPACITY_' + suffix, {'#NUM#': capacity})\n\t}\n\n\tcheckLocationAccessibility(params)\n\t{\n\t\tthis.getLocationAccessibility(params.from, params.to)\n\t\t.then(()=> {\n\t\t\tlet eventTsFrom;\n\t\t\tlet eventTsTo;\n\t\t\tlet fromTs = params.from.getTime();\n\t\t\tlet toTs = params.to.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\tlet 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 (Type.isUndefined(Location.accessibility[date][roomId]))\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) === parseInt(params.currentEventId))\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\teventTsFrom = Util.parseDate(event.DATE_FROM).getTime();\n\t\t\t\t\t\teventTsTo = Util.parseDate(event.DATE_TO).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\teventTsFrom -= event['~USER_OFFSET_FROM'] * 1000;\n\t\t\t\t\t\t\teventTsTo -= event['~USER_OFFSET_TO'] * 1000;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\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\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.setValuesDebounce();\n\t\t});\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 (let 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\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 (let 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\telse\n\t\t\t{\n\t\t\t\tresolve(Location.accessibility, this.datesRange);\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic handlePull(params)\n\t{\n\t\tif (!params.fields.DATE_FROM || !params.fields.DATE_TO)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet dateFrom = Util.parseDate(params.fields.DATE_FROM);\n\t\tlet dateTo = Util.parseDate(params.fields.DATE_TO);\n\t\tlet datesRange = Location.getDatesRange(dateFrom, dateTo);\n\n\t\tfor (let 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\t}\n\n\tloadRoomSlider()\n\t{\n\t\tthis.setRoomsManager();\n\t\tthis.setCategoryManager();\n\t}\n\n\topenRoomsSlider()\n\t{\n\t\tthis.getRoomsInterface()\n\t\t\t.then(function(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}.bind(this));\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\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\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\tlet 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\tlet\n\t\t\tres = {\n\t\t\t\ttype : false,\n\t\t\t\tvalue : false,\n\t\t\t\tstr : str\n\t\t\t};\n\n\t\tif (str.substr(0, 5) === 'ECMR_')\n\t\t{\n\t\t\tres.type = 'mr';\n\t\t\tlet 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.substr(0, 9) === 'calendar_')\n\t\t{\n\t\t\tres.type = 'calendar';\n\t\t\tlet 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\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\tlet\n\t\t\tvalue = Type.isPlainObject(location) ? location : Location.parseStringValue(location),\n\t\t\ti, str = 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\t\t\tif (a.NAME.toLowerCase() < b.NAME.toLowerCase())\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\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\tconst activeRoomId = this.activeRooms[0];\n\t\t\t\tfor (const locationListElement of locationList)\n\t\t\t\t{\n\t\t\t\t\tif (parseInt(locationListElement.ID) === activeRoomId)\n\t\t\t\t\t{\n\t\t\t\t\t\tLocation.setCurrentCapacity(parseInt(locationListElement.CAPACITY));\n\t\t\t\t\t\treturn 'calendar_' + activeRoomId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tLocation.setCurrentCapacity(parseInt(locationList[0].CAPACITY));\n\t\t\t\treturn 'calendar_' + locationList[0].ID;\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\t{\n\t\t\t\t\t\tif (bx.Calendar.Rooms.RoomsInterface)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresolve(bx.Calendar.Rooms.RoomsInterface);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Extension ' + extensionName + ' not found');\n\t\t\t\t\t\t\tresolve(bx.Calendar.Rooms.RoomsInterface);\n\t\t\t\t\t\t}\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\t{\n\t\t\t\t\t\tif (bx.Calendar.RoomsManager)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresolve(bx.Calendar.RoomsManager);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Extension ' + extensionName + ' not found');\n\t\t\t\t\t\t\tresolve(bx.Calendar.RoomsManager);\n\t\t\t\t\t\t}\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((response) => {\n\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\t{\n\t\t\t\t\t\tif (bx.Calendar.CategoryManager)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresolve(bx.Calendar.CategoryManager);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Extension ' + extensionName + ' not found');\n\t\t\t\t\t\t\tresolve(bx.Calendar.CategoryManager);\n\t\t\t\t\t\t}\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((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.categoryManagerFromDB)\n\t\t{\n\t\t\tthis.getCategoryManager()\n\t\t\t\t.then(\n\t\t\t\t\tthis.getCategoryManagerData()\n\t\t\t\t);\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\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\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\tlet fromDate = new Date(from);\n\t\tlet toDate = new Date(to);\n\t\tlet startDate = fromDate.setHours(0, 0, 0, 0);\n\t\tlet finishDate = toDate.setHours(0, 0, 0, 0);\n\t\tlet 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}","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\t{\n\t\t\t\t\t\tcolor: this.defaultColors[i],\n\t\t\t\t\t\tnode: this.DOM.wrap.appendChild(Dom.create('LI',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tprops: { className: 'calendar-field-colorpicker-color-item' },\n\t\t\t\t\t\t\t\tattrs: { 'data-bx-calendar-color': this.defaultColors[i] },\n\t\t\t\t\t\t\t\tstyle: { backgroundColor: this.defaultColors[i] },\n\t\t\t\t\t\t\t\thtml: '<span class=\"calendar-field-colorpicker-color\"></span>'\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.DOM.customColorNode = this.DOM.wrap.appendChild(Dom.create('LI',\n\t\t\t\t{\n\t\t\t\t\tprops: { className: 'calendar-field-colorpicker-color-item' },\n\t\t\t\t\tstyle:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\twidth: 0\n\t\t\t\t\t\t},\n\t\t\t\t\thtml: '<span class=\"calendar-field-colorpicker-color\"></span>'\n\t\t\t\t}\n\t\t\t));\n\n\t\t\tthis.DOM.customColorLink = this.DOM.wrap.appendChild(Dom.create('LI', {\n\t\t\t\tprops: { className: 'calendar-field-colorpicker-color-item-more' },\n\t\t\t\thtml: '<span class=\"calendar-field-colorpicker-color-item-more-link\">' + Loc.getMessage('EC_COLOR') + '</span>',\n\t\t\t\tevents: {\n\t\t\t\t\tclick: () => {\n\t\t\t\t\t\tif (!this.colorPickerPopup)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.colorPickerPopup = new BX.ColorPicker({\n\t\t\t\t\t\t\t\tbindElement: this.DOM.customColorLink,\n\t\t\t\t\t\t\t\tonColorSelected: this.setValue.bind(this),\n\t\t\t\t\t\t\t\tpopupOptions: { zIndex: this.zIndex }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.colorPickerPopup.open();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\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\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\tBX.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\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\tBX.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\tBX.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.clean(this.DOM.wrap);\n\t\t\tthis.DOM.wrap.className = 'calendar-field-select-icon';\n\t\t\tthis.DOM.wrap.style.backgroundColor = this.activeColor;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//Dom.removeClass(this.DOM.wrap, 'calendar-colorpicker-readonly');\n\t\t}\n\t}\n}","import {Type, Dom, Event, Tag, Text, Loc} from \"main.core\";\nimport \"ui.icons.b24\";\nimport {MenuManager, MenuItem} from \"main.popup\";\n\nexport class SectionSelector\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\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\n\t\t{\n\t\t\tthis.DOM.select = this.DOM.outerWrap.appendChild(Dom.create('DIV', {\n\t\t\t\tprops: {className: 'calendar-field calendar-field-select' + (this.mode === 'compact' ? ' calendar-field-tiny' : '')}\n\t\t\t}));\n\n\t\t\tthis.DOM.innerValue = this.DOM.select.appendChild(Dom.create('DIV', {\n\t\t\t\tprops: {className: 'calendar-field-select-icon'},\n\t\t\t\tstyle: {backgroundColor : this.getCurrentColor()}\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(Dom.create('SPAN', {text: this.getCurrentTitle()}));\n\t\t\t}\n\t\t}\n\t}\n\n\tinitEventHandlers()\n\t{\n\t\tEvent.bind(this.DOM.select, 'click', BX.delegate(this.openPopup, 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}, this);\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\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});\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\treturn false;\n\t\t\t\t\tsectionIdList.push(id);\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\ttext: sectionGroup.title,\n\t\t\t\t\t\tdelimiter: true\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\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: offsetLeft,\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\tBX.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.openPopupCallback))\n\t\t\t{\n\t\t\t\tthis.closePopupCallback();\n\t\t\t}\n\t\t\tBX.removeClass(this.DOM.select, 'active');\n\t\t\tBX.PopupMenu.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\tsection = this.sectionList.find((section) => {\n\t\t\t\treturn parseInt(section.id) === parseInt(this.getCurrentSection().id);\n\t\t\t});\n\t\t}\n\n\t\tif (section && section.type)\n\t\t{\n\t\t\tconst imageSrc = SectionSelector.getSectionImage(section);\n\t\t\tlet imageNode;\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)}\">`;\n\t\t\t}\n\t\t\telse if(section.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(section.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\tlet _this = this;\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: (function (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\t_this.DOM.innerValue.style.backgroundColor = section.color || sectionItem.COLOR;\n\t\t\t\t\t}\n\n\t\t\t\t\t_this.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\t_this.selectCallback(section);\n\t\t\t\t\t}\n\t\t\t\t\t_this.sectionMenu.close();\n\t\t\t\t\t_this.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)\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 { DateTimeControl } from \"calendar.controls\";\n\nexport class RepeatSelector\n{\n\tconstructor(params)\n\t{\n\t\tlet formElements = params.rruleType.form.elements;\n\n\t\tthis.getDate = params.getDate;\n\t\tthis.previousDate = null;\n\t\tthis.DOM = {\n\t\t\tformElements: formElements,\n\t\t\twrap: params.wrap,\n\t\t\trruleType: params.rruleType,\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\n\t\tthis.create();\n\t}\n\n\tcreate()\n\t{\n\t\tBX.bind(this.DOM.rruleType, 'change', () => {\n\t\t\tthis.changeType(this.DOM.rruleType.value);\n\t\t});\n\n\t\tBX.bind(this.DOM.until, 'click', (e) => {\n\t\t\tDateTimeControl.showInputCalendar(e);\n\t\t\tthis.DOM.rruleEndsOn.until.checked = true;\n\t\t});\n\n\t\tBX.bind(this.DOM.count, 'click', () => {\n\t\t\tthis.DOM.rruleEndsOn.count.checked = true;\n\t\t});\n\t}\n\n\tchangeType(type)\n\t{\n\t\tthis.DOM.rruleType.value = type ? type.toUpperCase() : 'NONE';\n\t\tlet rruleType = this.DOM.rruleType.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\t\t\t\t\n\t\t\t\tthis.previousDay = day;\n\t\t\t}\n\t\t}\n\t}\n\n\tsetValue(rrule = {})\n\t{\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.value.toLowerCase();\n\t}\n}","import { Loc } from 'main.core';\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\t\tthis.onChangeCallback = params.onChangeCallback || null;\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.bindEventHandlers();\n\t}\n\n\tbindEventHandlers()\n\t{\n\t\tif (this.onChangeCallback)\n\t\t{\n\t\t\tBX.bind(this.input, 'change', this.onChangeCallback);\n\t\t\t// BX.bind(this.input, 'keyup', this.onChangeCallback);\n\t\t}\n\n\t\tif (this.values)\n\t\t{\n\t\t\tBX.bind(this.input, 'click', BX.proxy(this.onClick, this));\n\t\t\tBX.bind(this.input, 'focus', BX.proxy(this.onFocus, this));\n\t\t\tBX.bind(this.input, 'blur', BX.proxy(this.onBlur, this));\n\t\t\tBX.bind(this.input, 'keyup', BX.proxy(this.onKeyup, this));\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\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\treturn;\n\n\t\tlet\n\t\t\tind = 0,\n\t\t\tj = 0,\n\t\t\tmenuItems = [],\n\t\t\ti, _this = this;\n\n\t\tfor (i = 0; i < this.values.length; i++)\n\t\t{\n\t\t\tif (this.values[i].delimiter)\n\t\t\t{\n\t\t\t\tmenuItems.push(this.values[i]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (this.currentValue && this.values[i]\n\t\t\t\t\t&& i > 0\n\t\t\t\t\t&& this.currentValue.value >= this.values[i-1].value\n\t\t\t\t\t&& this.currentValue.value <= this.values[i].value)\n\t\t\t\t{\n\t\t\t\t\tind = j;\n\t\t\t\t}\n\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\t htmlTemp = `\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\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\",\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 || (function (value, label)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn function () {\n\t\t\t\t\t\t\t\t_this.input.value = label;\n\t\t\t\t\t\t\t\t_this.popupMenu.close();\n\t\t\t\t\t\t\t\t_this.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\" + (this.values[i].selected ? ' calendar-menu-popup-time-selected' : ''),\n\t\t\t\t\t\tonclick: this.values[i].callback || (function (value, label)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn function ()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t_this.input.value = label;\n\t\t\t\t\t\t\t\t_this.popupMenu.close();\n\t\t\t\t\t\t\t\t_this.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\tj++;\n\t\t\t}\n\t\t}\n\n\t\tthis.popupMenu = BX.PopupMenu.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}\n\t\t);\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.layout.menuContainer;\n\t\tBX.addClass(this.popupMenu.layout.menuContainer, 'calendar-select-popup');\n\t\tthis.popupMenu.show();\n\n\t\tlet menuItem = this.popupMenu.menuItems[ind];\n\n\t\tif (menuItem && menuItem.layout)\n\t\t{\n\t\t\tmenuContainer.scrollTop = menuItem.layout.item.offsetTop - menuItem.layout.item.offsetHeight - 36 * 3;\n\t\t}\n\n\t\tlet popupMenuItems = this.popupMenu.menuItems;\n\n\t\tfor (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\n\t\tBX.addCustomEvent(this.popupMenu.popupWindow, 'onPopupClose', function()\n\t\t{\n\t\t\tBX.PopupMenu.destroy(this.id);\n\t\t\tthis.shown = false;\n\t\t\tthis.popupMenu = null;\n\t\t}.bind(this));\n\n\t\tthis.input.select();\n\n\t\tthis.shown = true;\n\t}\n\n\tclosePopup()\n\t{\n\t\tBX.PopupMenu.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\tonBlur()\n\t{\n\t\tsetTimeout(BX.delegate(this.closePopup, this), 200);\n\t}\n\n\tonKeyup()\n\t{\n\t\tsetTimeout(BX.delegate(this.closePopup, this), 50);\n\t}\n\n\tonChange(value)\n\t{\n\t\tvar inputValue = this.input.value;\n\t\tBX.onCustomEvent(this, 'onSelectInputChanged', [this, inputValue]);\n\t\tif (BX.type.isFunction(this.onChangeCallback))\n\t\t{\n\t\t\tthis.onChangeCallback({value: inputValue, dataValue: value});\n\t\t}\n\t}\n\n\tdestroy()\n\t{\n\t\tif (this.onChangeCallback)\n\t\t{\n\t\t\tBX.unbind(this.input, 'change', this.onChangeCallback);\n\t\t\tBX.unbind(this.input, 'keyup', this.onChangeCallback);\n\t\t}\n\n\t\tBX.unbind(this.input, 'click', BX.proxy(this.onClick, this));\n\t\tBX.unbind(this.input, 'focus', BX.proxy(this.onFocus, this));\n\t\tBX.unbind(this.input, 'blur', BX.proxy(this.onBlur, this));\n\t\tBX.unbind(this.input, 'keyup', BX.proxy(this.onKeyup, this));\n\n\t\tif (this.popupMenu)\n\t\t{\n\t\t\tthis.popupMenu.close();\n\t\t}\n\t\tBX.PopupMenu.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: true,\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}","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\n\n\n","import {Type, Dom, Event, Tag, Loc} from 'main.core';\n//import {ViewSelector} from './viewselector';\nimport {EventEmitter} from 'main.core.events';\n\nexport class LineViewSelector 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.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.viewsMap = new WeakMap();\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\tthis.DOM.wrap = Tag.render`<div class=\"calendar-view-switcher-list\"></div>`;\n\n\t\tthis.views.forEach((view) =>\n\t\t{\n\t\t\tif (view.type === 'base')\n\t\t\t{\n\t\t\t\tthis.viewsMap.set(view, {\n\t\t\t\t\twrap: this.DOM.wrap.appendChild(Tag.render`<span \n\t\t\t\t\t\tclass=\"calendar-view-switcher-list-item\"\n\t\t\t\t\t\tonclick=\"${()=>{\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}}\"\n\t\t\t\t\t>${view.text}</span>`)\n\t\t\t\t});\n\t\t\t}\n\t\t});\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\tlet viewData = this.viewsMap.get(this.currentValue);\n\t\t\tlet currentActiveWrap = this.DOM.wrap.querySelector('.calendar-view-switcher-list-item-active');\n\t\t\tif (Type.isDomNode(currentActiveWrap))\n\t\t\t{\n\t\t\t\tDom.removeClass(currentActiveWrap, 'calendar-view-switcher-list-item-active');\n\t\t\t}\n\n\t\t\tif (Type.isDomNode(viewData.wrap))\n\t\t\t{\n\t\t\t\tDom.addClass(viewData.wrap, 'calendar-view-switcher-list-item-active');\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(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\t// if (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\t//this.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((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\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\t// showPopup()\n\t// {\n\t// \tthis.closePopup();\n\t//\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\t//\n\t// \tthis.menuPopup.show();\n\t// }\n\t//\n\t// closePopup()\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\t// }\n}\n\n\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 {Dom, Loc} from 'main.core';\nimport { EntryManager } from 'calendar.entry';\nimport { EventEmitter, BaseEvent} from 'main.core.events';\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\tlet content = Dom.create('DIV');\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: true,\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: Loc.getMessage('EC_DECLINE_REC_EVENT'),\n\t\t\tcloseIcon: { right : \"12px\", top : \"10px\"},\n\t\t\tclassName: 'bxc-popup-window',\n\t\t\tbuttons: [\n\t\t\t\tnew BX.PopupWindowButtonLink({\n\t\t\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\t\t\tclassName: \"popup-window-button-link-cancel\",\n\t\t\t\t\tevents: {click : this.close.bind(this)}\n\t\t\t\t})\n\t\t\t],\n\t\t\tcontent: content,\n\t\t\tcacheable: false\n\t\t});\n\n\t\tcontent.appendChild(new BX.PopupWindowButton({\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}).buttonNode);\n\n\t\tcontent.appendChild(new BX.PopupWindowButton({\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}).buttonNode);\n\n\t\tcontent.appendChild(new BX.PopupWindowButton(\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('EC_DECLINE_ALL'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick : () => {\n\t\t\t\t\t\tthis.onDeclineHandler();\n\t\t\t\t\t\tthis.emit('onDecline', new BaseEvent({data: {recursionMode: 'all'}}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).buttonNode);\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\tonDeclineHandler()\n\t{\n\t\tthis.close();\n\t\tconst compactForm = EntryManager.getCompactViewForm();\n\t\tif (compactForm\n\t\t\t&& compactForm.isShown())\n\t\t{\n\t\t\tcompactForm.close();\n\t\t}\n\t}\n}","import {Dom, Loc} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\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()\n\t{\n\t\tlet content = Dom.create('DIV');\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: true,\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: Loc.getMessage('EC_EDIT_REC_EVENT'),\n\t\t\tcloseIcon: { right : \"12px\", top : \"10px\"},\n\t\t\tclassName: 'bxc-popup-window',\n\t\t\tbuttons: [\n\t\t\t\tnew BX.PopupWindowButtonLink({\n\t\t\t\t\ttext: Loc.getMessage('EC_SEC_SLIDER_CANCEL'),\n\t\t\t\t\tclassName: \"popup-window-button-link-cancel\",\n\t\t\t\t\tevents: {click : this.close.bind(this)}\n\t\t\t\t})\n\t\t\t],\n\t\t\tcontent: content,\n\t\t\tevents: {},\n\t\t\tcacheable: false\n\t\t});\n\n\t\tcontent.appendChild(new BX.PopupWindowButton({\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}).buttonNode);\n\n\t\tcontent.appendChild(new BX.PopupWindowButton({\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.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}).buttonNode);\n\n\t\tcontent.appendChild(new BX.PopupWindowButton(\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('EC_REC_EV_ALL'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick : ()=>{\n\t\t\t\t\t\tthis.emit('onEdit', new BaseEvent({data: {recursionMode: 'all'}}));\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).buttonNode);\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}","'use strict';\nimport {PopupDialog} from './popupdialog';\n\nexport class ConfirmDeleteDialog extends PopupDialog\n{\n\tconstructor(params = {})\n\t{\n\t\tsuper(params);\n\t\tthis.title = BX.message('EC_DEL_REC_EVENT');\n\t\tthis.entry = params.entry;\n\t}\n\n\tgetContent()\n\t{\n\t\tthis.DOM.content = BX.create('DIV');\n\n\t\tthis.DOM.content.appendChild(new BX.PopupWindowButton({\n\t\t\ttext: BX.message('EC_REC_EV_ONLY_THIS_EVENT'),\n\t\t\tevents: {\n\t\t\t\tclick : function() {\n\t\t\t\t\tthis.entry.deleteThis();\n\t\t\t\t\tthis.close();\n\t\t\t\t}.bind(this)\n\t\t\t}\n\t\t}).buttonNode);\n\n\t\tthis.DOM.content.appendChild(new BX.PopupWindowButton({\n\t\t\ttext: BX.message('EC_REC_EV_NEXT'),\n\t\t\tevents: {\n\t\t\t\tclick : function() {\n\t\t\t\t\tthis.entry.deleteNext();\n\t\t\t\t\tthis.close();\n\t\t\t\t}.bind(this)\n\t\t\t}\n\t\t}).buttonNode);\n\n\t\tthis.DOM.content.appendChild(new BX.PopupWindowButton(\n\t\t\t{\n\t\t\t\ttext: BX.message('EC_REC_EV_ALL'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick : function() {\n\t\t\t\t\t\tthis.entry.deleteAll();\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t}.bind(this)\n\t\t\t\t}\n\t\t\t}).buttonNode);\n\n\t\treturn this.DOM.content;\n\t}\n\n\tgetButtons()\n\t{\n\t\treturn [\n\t\t\tnew BX.PopupWindowButtonLink({\n\t\t\t\ttext: BX.message('EC_SEC_SLIDER_CANCEL'),\n\t\t\t\tclassName: \"popup-window-button-link-cancel\",\n\t\t\t\tevents: {click : this.close.bind(this)}\n\t\t\t})\n\t\t];\n\t}\n}","\"use strict\";\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';\n\nexport class DateTimeControl extends EventEmitter\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 = !!options.inlineEditMode;\n\t\tthis.currentInlineEditMode = options.currentInlineEditMode || 'view';\n\n\t\tthis.UID = uid || 'date-time-' + Math.round(Math.random() * 100000);\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\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\tlet 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.value = value.timezoneFrom;\n\t\t\t}\n\t\t\tif(value.timezoneTo !== undefined && Type.isDomNode(this.DOM.toTz))\n\t\t\t{\n\t\t\t\tthis.DOM.toTz.value = value.timezoneTo;\n\t\t\t}\n\n\t\t\tif (value.timezoneName !== undefined\n\t\t\t\t&& (value.timezoneName !== value.timezoneFrom\n\t\t\t\t\t|| value.timezoneName !== value.timezoneTo))\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}\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}\n\n\tgetFrom()\n\t{\n\t\treturn this.getDateWithTime(this.DOM.fromDate.value, this.fromMinutes);\n\t}\n\n\tgetTo()\n\t{\n\t\treturn this.getDateWithTime(this.DOM.toDate.value, this.toMinutes);\n\t}\n\n\tgetDateWithTime(date, minutes)\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\t\treturn new Date(parsedDate.getTime() + minutes * 60 * 1000);\n\t}\n\n\tgetValue()\n\t{\n\t\tlet 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 ? this.DOM.fromTz.value : (this.value.timezoneFrom || this.value.timezoneName || null),\n\t\t\ttimezoneTo: this.DOM.toTz ? this.DOM.toTz.value : (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\tlet\n\t\t\t\t\tfromTime = Util.parseTime(value.fromTime),\n\t\t\t\t\ttoTime = 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', DateTimeControl.showInputCalendar);\n\t\tEvent.bind(this.DOM.fromDate, 'change', this.handleDateFromChange.bind(this));\n\t\tEvent.bind(this.DOM.toDate, 'click', DateTimeControl.showInputCalendar);\n\t\tEvent.bind(this.DOM.toDate, 'change', this.handleDateToChange.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.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\t//this.calendar.util.setUserOption('timezoneName', this.DOM.defTimezone.value);\n\t\t\t\tif (this.bindFromToDefaultTimezones)\n\t\t\t\t{\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\tEvent.bind(this.DOM.fromTz, 'change', function()\n\t\t\t{\n\t\t\t\tif (this.bindTimezones)\n\t\t\t\t{\n\t\t\t\t\tthis.DOM.toTz.value = this.DOM.fromTz.value;\n\t\t\t\t}\n\t\t\t\tthis.bindFromToDefaultTimezones = false;\n\t\t\t}.bind(this));\n\n\t\t\tEvent.bind(this.DOM.toTz, 'change', function()\n\t\t\t{\n\t\t\t\tthis.bindTimezones = false;\n\t\t\t\tthis.bindFromToDefaultTimezones = false;\n\t\t\t}.bind(this));\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.value === this.DOM.toTz.value\n\t\t\t\t&& this.DOM.fromTz.value === this.DOM.defTimezone.value;\n\t\t}\n\t}\n\n\tstatic showInputCalendar(e)\n\t{\n\t\tlet target = e.target || e.srcElement;\n\t\tif (Type.isDomNode(target) && target.nodeName.toLowerCase() === 'input')\n\t\t{\n\t\t\tconst calendarControl = BX.calendar.get();\n\t\t\tif (calendarControl.popup)\n\t\t\t{\n\t\t\t\t// Workaround hack for BX.calendar - it works as singleton and we trying to reinit it\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\t\t\tcalendarControl.Show({node: target.parentNode, field: target, bTime: false});\n\t\t\tBX.onCustomEvent(window, 'onCalendarControlChildPopupShown');\n\n\t\t\tconst calendarPopup = calendarControl.popup;\n\t\t\tif (calendarPopup)\n\t\t\t{\n\t\t\t\tBX.removeCustomEvent(calendarPopup, 'onPopupClose', DateTimeControl.inputCalendarClosePopupHandler);\n\t\t\t\tBX.addCustomEvent(calendarPopup, 'onPopupClose', DateTimeControl.inputCalendarClosePopupHandler);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic inputCalendarClosePopupHandler()\n\t{\n\t\tBX.onCustomEvent(window, 'onCalendarControlChildPopupClosed');\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\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\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\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}\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.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 = this.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 = this.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\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 (8 <= hour && 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\t\t\tif (amPmSymbol === 'a')\n\t\t\t{\n\t\t\t\ttime += ' am';\n\t\t\t}\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 = `${hours}`;\n\t\t\tif (value.length - time.length === 1 || value.indexOf(':') !== -1)\n\t\t\t{\n\t\t\t\ttime += ':';\n\t\t\t}\n\t\t}\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 = this.beautifyTime(time) + ' am';\n\t\t\t}\n\t\t\tif (amPmSymbol === 'p')\n\t\t\t{\n\t\t\t\ttime = this.beautifyTime(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\tlet time = this.clearTimeString(value, key);\n\t\tlet hours, minutes;\n\t\tif (time.indexOf(':') !== -1)\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));\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\t\t\tif (digits.length === 1)\n\t\t\t{\n\t\t\t\thours = `${digits[0]}`;\n\t\t\t}\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) > this.getMaxHours())\n\t\t\t\t{\n\t\t\t\t\thours = `${digits[0]}`;\n\t\t\t\t\tminutes = `${digits[1]}`;\n\t\t\t\t}\n\t\t\t}\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 = `${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 = `${digits[2]}`;\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\tif (parseInt(`${digits[0]}${digits[1]}`) < 24)\n\t\t\t\t\t{\n\t\t\t\t\t\thours = `${digits[0]}${digits[1]}`;\n\t\t\t\t\t\tminutes = `${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]}`;\n\t\t\t\t\t\tminutes = `${digits[1]}${digits[2]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\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\t\tif (minutes)\n\t\t{\n\t\t\tminutes = this.formatMinutes(minutes);\n\t\t}\n\t\treturn { hours, minutes };\n\t}\n\n\tclearTimeString(str, key)\n\t{\n\t\tlet validatedTime = str.replace(/[ap]/g, '').replace(/\\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.substr(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\tif (hours.length === 1 && minutes.length === 3 && !isNaN(parseInt(key)) && this.areTimeDigitsCorrect(`${hours}${minutes}`))\n\t\t\t{\n\t\t\t\treturn `${hours}${minutes}`;\n\t\t\t}\n\t\t\treturn `${hours}:${minutes}`;\n\t\t}\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\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) > this.getMaxHours() / 10)\n\t\t{\n\t\t\treturn `0${firstDigit}`;\n\t\t}\n\t\tif (parseInt(str) <= this.getMaxHours())\n\t\t{\n\t\t\treturn `${firstDigit}${str[1] ?? ''}`;\n\t\t}\n\t\treturn `${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\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.indexOf(':') === -1)\n\t\t{\n\t\t\ttime += ':00';\n\t\t}\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\tlet 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\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 !!this.DOM.fullDay.checked;\n\t}\n\n\tgetMinutesFromFormattedTime(time)\n\t{\n\t\tconst parsedTime = Util.parseTime(time);\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}","import {Dom, Loc} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\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\tlet i, userNames = [];\n\t\tfor (i = 0; i < params.users.length; i++)\n\t\t{\n\t\t\tuserNames.push(params.users[i].DISPLAY_NAME);\n\t\t}\n\t\tuserNames = userNames.join(', ');\n\n\t\tlet content = BX.create('DIV', {\n\t\t\tprops: {className: 'calendar-busy-users-content-wrap'},\n\t\t\thtml: '<div class=\"calendar-busy-users-content\">'\n\t\t\t\t+ BX.util.htmlspecialchars(this.plural ?\n\t\t\t\t\tLoc.getMessage('EC_BUSY_USERS_PLURAL').replace('#USER_LIST#', userNames)\n\t\t\t\t\t:\n\t\t\t\t\tLoc.getMessage('EC_BUSY_USERS_SINGLE').replace('#USER_NAME#', params.users[0].DISPLAY_NAME))\n\t\t\t\t+ '</div>'\n\t\t});\n\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: true,\n\t\t\tbindOnResize: false,\n\t\t\ttitleBar: Loc.getMessage('EC_BUSY_USERS_TITLE'),\n\t\t\tcloseIcon: { right : \"12px\", top : \"10px\"},\n\t\t\tclassName: 'bxc-popup-window',\n\t\t\t// buttons: [\n\t\t\t// \tnew BX.PopupWindowButtonLink({\n\t\t\t// \t\ttext: Loc.getMessage('EC_BUSY_USERS_CLOSE'),\n\t\t\t// \t\tclassName: \"popup-window-button-link-cancel\",\n\t\t\t// \t\tevents: {click : () => {\n\t\t\t// \t\t\t// if (this.calendar.editSlider)\n\t\t\t// \t\t\t// \tthis.calendar.editSlider.close();\n\t\t\t//\n\t\t\t// \t\t\tthis.close();\n\t\t\t// \t\t}\n\t\t\t// \t\t}\n\t\t\t// \t})\n\t\t\t// ],\n\t\t\tcontent: content,\n\t\t\tevents: {}\n\t\t});\n\n\t\tcontent.appendChild(new BX.PopupWindowButton({\n\t\t\ttext: Loc.getMessage('EC_BUSY_USERS_BACK2EDIT'),\n\t\t\tevents: {click : () => {this.close();}}\n\t\t}).buttonNode);\n\n\t\tcontent.appendChild(new BX.PopupWindowButton({\n\t\t\ttext: this.plural ? Loc.getMessage('EC_BUSY_USERS_EXCLUDE_PLURAL') : Loc.getMessage('EC_BUSY_USERS_EXCLUDE_SINGLE'),\n\t\t\tevents: {click : () => {\n\t\t\t\tthis.emit('onSaveWithout');\n\t\t\t\tthis.close();\n\t\t\t}}\n\t\t}).buttonNode);\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}","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 { ControlButton } from 'intranet.control-button';\nimport {AttendeesList} from \"calendar.controls\";\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\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\t\tthis.dayOfWeekMonthFormat = params.dayOfWeekMonthFormat;\n\n\t\tthis.plannerFeatureEnabled = !!params.plannerFeatureEnabled;\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\tEvent.bind(this.DOM.changeLink, 'click', () => {\n\t\t\t\tif (!this.userSelectorDialog)\n\t\t\t\t{\n\t\t\t\t\tthis.userSelectorDialog = new EntitySelectorDialog({\n\t\t\t\t\t\ttargetNode: this.DOM.changeLink,\n\t\t\t\t\t\tcontext: 'CALENDAR',\n\t\t\t\t\t\tpreselectedItems: this.attendeesPreselectedItems,\n\t\t\t\t\t\tenableSearch: true,\n\t\t\t\t\t\tzIndex: this.zIndex + 10,\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t'Item:onSelect': this.handleUserSelectorChanges.bind(this),\n\t\t\t\t\t\t\t'Item:onDeselect': this.handleUserSelectorChanges.bind(this),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tentities: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'user',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tinviteGuestLink: true,\n\t\t\t\t\t\t\t\t\temailUsers: 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\t{\n\t\t\t\t\t\t\t\tid: 'project'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'department',\n\t\t\t\t\t\t\t\toptions: {selectMode: 'usersAndDepartments'}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'meta-user',\n\t\t\t\t\t\t\t\toptions: { 'all-users': true }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\tsearchTabOptions: {\n\t\t\t\t\t\t\tstubOptions: {\n\t\t\t\t\t\t\t\ttitle: Loc.getMessage('EC_USER_DIALOG_404_TITLE'),\n\t\t\t\t\t\t\t\tsubtitle: Loc.getMessage('EC_USER_DIALOG_404_SUBTITLE'),\n\t\t\t\t\t\t\t\ticon: '/bitrix/images/calendar/search-email.svg',\n\t\t\t\t\t\t\t\ticonOpacity: 100,\n\t\t\t\t\t\t\t\tarrow: true,\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\tthis.userSelectorDialog.show();\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\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\tdayOfWeekMonthFormat: this.dayOfWeekMonthFormat\n\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\tsetValue({attendeesEntityList, attendees, location, notify, hideGuests, viewMode, entry})\n\t{\n\t\tthis.attendeesEntityList = Type.isArray(attendeesEntityList) ? attendeesEntityList : [];\n\t\tthis.attendeesPreselectedItems = this.attendeesEntityList.map((item) => {return [item.entityId, item.id]});\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&& this.entry.data['EVENT_TYPE'] === '#shared#'\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\tthis.intranetControllButton = new ControlButton({\n\t\t\t\tcontainer: this.DOM.videocallWrap,\n\t\t\t\tentityType: 'calendar_event',\n\t\t\t\tentityId: this.entry.parentId,\n\t\t\t\tmainItem: 'chat',\n\t\t\t\tentityData: {\n\t\t\t\t\tdateFrom: Util.formatDate(this.entry.from),\n\t\t\t\t\tparentId: this.entry.parentId\n\t\t\t\t},\n\t\t\t\tanalyticsLabel: {\n\t\t\t\t\tformType: 'compact'\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// For testing purposes\n\t\t\tif (Type.isElementNode(this.intranetControllButton.button))\n\t\t\t{\n\t\t\t\tthis.intranetControllButton.button.setAttribute('data-role', 'videocallButton');\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\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})\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\tif (entry.type === 'user' && !this.prevUserList.includes(parseInt(entry.id)))\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\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\tif (entry.type === 'user' && !this.prevUserList.includes(parseInt(entry.id)))\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\tentryLocation: this.entry.data.LOCATION || '',\n\t\t\t\townerId: this.ownerId,\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}\n\t\t});\n\t}\n\n\tsetDateTime(dateTime, updatePlaner = false)\n\t{\n\t\tthis.dateTime = dateTime;\n\t\tthis.planner.currentFromDate = dateTime.from;\n\t\tthis.planner.currentToDate = dateTime.to;\n\t\tif (this.planner && updatePlaner)\n\t\t{\n\t\t\tthis.planner.updateSelector(dateTime.from, dateTime.to, dateTime.fullDay);\n\t\t}\n\t\telse if (this.planner)\n\t\t{\n\t\t\tlet fromHours = parseInt(dateTime.from.getHours()) + Math.floor(dateTime.from.getMinutes() / 60);\n\t\t\tlet toHours = parseInt(dateTime.to.getHours()) + Math.floor(dateTime.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(dateTime.from, dateTime.to, dateTime.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.attendeeList.accepted.length\n\t\t\t+ this.attendeeList.requested.length;\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\tif (userLength > 1)\n\t\t{\n\t\t\tthis.DOM.attendeesLabel.innerHTML = Text.encode(Loc.getMessage('EC_ATTENDEES_LABEL_NUM')).replace('#COUNT#', `<span>(</span>${this.attendeeList.accepted.length}<span>)</span>`);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.DOM.attendeesLabel.innerHTML = Text.encode(Loc.getMessage('EC_ATTENDEES_LABEL_ONE'));\n\t\t}\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\tstatic getUserAvatarNode(user)\n\t{\n\t\tlet\n\t\t\timageNode,\n\t\t\timg = user.AVATAR || user.SMALL_AVATAR;\n\t\tif (!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\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<img\n\t\t\t\ttitle=\"${Text.encode(user.DISPLAY_NAME)}\"\n\t\t\t\tclass=\"calendar-member\"\n\t\t\t\tid=\"simple_popup_${parseInt(user.ID)}\"\n\t\t\t\tsrc=\"${encodeURI(img)}\"\n\t\t\t>`;\n\t\t}\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 !!attendees.find((item) => {return item.EMAIL_USER;})\n\t\t\t|| !!this.getEntityList().find((item) => {return item.entityType === 'email';});\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) => {\n\t\t\t\treturn !userIdList.includes(userId);\n\t\t\t});\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}).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));\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}","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: true,\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}","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: true,\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}","'use strict';\nimport {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 EmailLimitationDialog extends EventEmitter\n{\n\tZ_INDEX = 3200;\n\tEXPAND_LICENSE_URL = '/settings/license_all.php';\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\tconst eventsAmount = Util.getEventWithEmailGuestAmount();\n\t\tconst limit = Util.isEventWithEmailGuestAllowed();\n\t\tif (eventsAmount === 4)\n\t\t{\n\t\t\tthis.text = Loc.getMessage('EC_EMAIL_LIMIT_5');\n\t\t}\n\t\telse if(eventsAmount === 8)\n\t\t{\n\t\t\tthis.text = Loc.getMessage('EC_EMAIL_LIMIT_9');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.text = Loc.getMessage('EC_EMAIL_LIMIT_DENY');\n\t\t}\n\t\tthis.subText = Loc.getMessage('EC_EMAIL_LIMIT_SUBTEXT');\n\n\t\tthis.DOM.content = Tag.render`<div>\n\t\t\t<div class=\"calendar-email-limit-text\">${this.text}</div>\n\t\t\t<div class=\"calendar-email-limit-subtext\">${this.subText}</div>\n\t\t</div>`;\n\n\t\tthis.dialog = this.getDialogPopup();\n\n\t\tthis.dialog.subscribe('onClose', ()=>{\n\t\t\tthis.emit('onClose');\n\t\t});\n\n\t\t// this.DOM.processButton = this.dialog.buttons[0].button;\n\t\t//\n\t\t// this.DOM.select = this.DOM.content.querySelector('select.calendar-field-select');\n\t\t// Dom.addClass(this.DOM.select, BX.UI.Button.State.CLOCKING);\n\t\t// this.DOM.select.disabled = true;\n\t\t//\n\t\t// this.emailSelectorControl = new EmailSelectorControl({\n\t\t// \tselectNode: this.DOM.select,\n\t\t// \tallowAddNewEmail: true\n\t\t// });\n\t\t// Event.bind(this.DOM.select, 'change', this.handleSelectChanges.bind(this));\n\t\t// this.emailSelectorControl.subscribe('onSetValue', this.handleSelectChanges.bind(this));\n\t\t//\n\t\t// this.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\t\t//\n\t\t// this.DOM.helpLinlk = this.DOM.content.querySelector('.calendar-confirm-email-help-link');\n\t\t// Event.bind(this.DOM.helpLinlk, 'click', this.openHelpSlider.bind(this));\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: true,\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{\n\t\t\t\t\t\t\twindow.open(this.EXPAND_LICENSE_URL, '_blank');\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: Util.isEventWithEmailGuestAllowed() ? Loc.getMessage('EC_SEC_SLIDER_CLOSE') : Loc.getMessage('EC_EMAIL_LIMIT_SAVE_WITHOUT'),\n\t\t\t\t\tclassName: `ui-btn ui-btn-link`,\n\t\t\t\t\tevents: {click: this.close.bind(this)}\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}","import {Loc, Type} 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{\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\ticon.appendChild(UserPlannerSelector.getUserAvatarNode(item.dataset.user))\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() * 100000),\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) =>\n\t\t{\n\t\t\tlet 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{\n\t\t\t\t\tuser.toString = () =>\n\t\t\t\t\t{\n\t\t\t\t\t\treturn user.ID\n\t\t\t\t\t};\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: user},\n\t\t\t\t\t\t\tclassName: 'calendar-add-popup-user-menu-item',\n\t\t\t\t\t\t\tonclick: () =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tBX.SidePanel.Instance.open(\n\t\t\t\t\t\t\t\t\tuser.URL,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tloader: \"intranet:profile\",\n\t\t\t\t\t\t\t\t\t\tcacheable: false,\n\t\t\t\t\t\t\t\t\t\tallowChangeHistory: false,\n\t\t\t\t\t\t\t\t\t\tcontentClassName: \"bitrix24-profile-slider-content\",\n\t\t\t\t\t\t\t\t\t\twidth: 1100\n\t\t\t\t\t\t\t\t\t}\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) => {return ['H', 'Y'].includes(user.STATUS);}),\n\t\t\trequested : attendees.filter((user) => {return user.STATUS === 'Q' || user.STATUS === ''}),\n\t\t\tdeclined : attendees.filter((user) => {return user.STATUS === 'N'}),\n\t\t};\n\t}\n}"],"names":["TimeSelector","constructor","params","Z_INDEX","valueList","DOM","wrap","input","hour","push","value","label","Util","formatTime","onChangeCallback","Type","isFunction","selectContol","BX","Calendar","Controls","SelectInput","zIndex","values","data","getInputValue","dataValue","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","Dom","addClass","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","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","parentNode","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","removeClass","wasChangedByUser","tempValue","dividers","messageCodes","result","toString","ceil","remindValue","Location","datesRange","wrapNode","roomsManager","locationAccess","disabled","richLocationEnabled","inlineEditModeEnabled","meetingRooms","iblockMeetingRoomList","setMeetingRoomList","setLocationList","locationList","default","setDefaultRoom","processValue","setCategoryManager","setValuesDebounced","debounce","setValues","inputWrap","alertIconLocation","inlineEditLinkWrap","inlineEditLink","displayInlineEditControls","inputWrapInner","attrs","name","inputName","placeholder","autocomplete","paddingRight","minWidth","maxWidth","lockIcon","top","UI","InfoHelper","append","addLocationRemoveButton","categoryManagerFromDB","prohibitClick","menuItemList","selectedIndex","getMeetingRoomList","getLocationList","roomList","createRoomList","categoriesWithRooms","getCategoriesWithRooms","room","ID","NAME","labelRaw","capacity","delimiter","pushRoomToItemList","location_id","LOCATION_ID","color","reserved","labelCapacity","getCapacityMessage","isObject","categories","category","rooms","loadRoomSlider","callback","openRoomsSlider","disabledControl","valueIndex","setCurrentCapacity","removeLocationRemoveButton","allowClick","str","getTextLocation","locationListElement","room_id","CAPACITY","setValuesDebounce","contains","removeLocationButton","removeChild","addCapacityAlert","initHintNode","after","removeCapacityAlert","suffix","checkLocationAccessibility","getLocationAccessibility","then","eventTsFrom","eventTsTo","fromTs","toTs","fullDay","DAY_LENGTH","index","roomId","isUndefined","accessibility","PARENT_ID","currentEventId","DATE_FROM","DATE_TO","DT_SKIP_TIME","Promise","resolve","getDatesRange","isCheckedAccessibility","ajax","runAction","response","errors","handlePull","fields","dateFrom","dateTo","setRoomsManager","getRoomsInterface","RoomsInterface","roomsInterface","calendarContext","readonly","roomsManagerFromDB","categoryManager","isConfigureList","getTextValue","res","mrevid","room_event_id","getValue","debounced","parseStringValue","textLocation","Text","encode","isString","substr","split","isNaN","mrid","location","sortLocationList","sort","a","b","toLowerCase","meetingRoomList","setLocationAccessibility","currentRoomCapacity","getCurrentCapacity","RoomsManager","isEmpty","activeRooms","getRoomsInfo","active","activeRoomId","bx","getBX","extensionName","Runtime","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","slice","getMonth","getFullYear","startDate","setHours","finishDate","UserSelector","destinationInputName","itemsSelected","convertAttendeesCodes","socnetDestinationWrap","SocNetLogDestination","openDialog","socnetDestinationItems","targ","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","getAttendeesCodesList","hasOwnProperty","ColorSelector","LINE_MODE","SELECTOR_MODE","VIEW_MODE","defaultColors","getDefaultColorList","colors","backgroundColor","customColorNode","width","customColorLink","colorPickerPopup","ColorPicker","onColorSelected","popupOptions","open","handleColorClick","colorIcon","openPopup","findTargetNode","activeColor","activeColorNode","isShown","icon","element","left","SectionSelector","sectionList","sectionGroupList","openPopupCallback","closePopupCallback","getCurrentSection","defaultCalendarType","defaultOwnerId","outerWrap","initEventHandlers","selectImageWrap","selectInnerText","getCurrentTitle","innerValue","getCurrentColor","delegate","sectionMenu","sectionIdList","getSectionList","sectionGroup","filteredList","belongsToView","filter","section","getSectionType","getSectionOwner","MenuItem","title","overflow","maxHeight","setWidth","offsetWidth","overflowX","addCustomEvent","PopupMenu","PERM","edit","canDo","updateSectionImageNode","imageSrc","getSectionImage","imageNode","encodeURI","getPopup","sectionItem","htmlspecialchars","COLOR","updateValue","CAL_TYPE","IMAGE","OWNER_ID","adjust","RepeatSelector","formElements","rruleType","form","previousDate","interval","rruleEndsOn","never","until","changeType","DateTimeControl","showInputCalendar","checked","toUpperCase","day","getWeekDayByInd","getDay","previousDay","rrule","FREQ","INTERVAL","COUNT","BYDAY","getType","defaultValue","openTitle","curInd","proxy","onClick","onFocus","onBlur","onKeyup","currentValue","currentValueIndex","shown","ind","htmlTemp","popupMenu","onChange","browser","IsFirefox","setMinWidth","setMaxWidth","menuContainer","offsetHeight","popupMenuItems","closePopup","inputValue","PopupDialog","dialog","PopupWindow","overlay","opacity","draggable","bindOnResize","titleBar","getTitle","closeIcon","right","buttons","getButtons","content","getContent","ViewSelector","views","created","currentViewMode","popupId","currentView","selectorText","selectorTextInner","viewModeTextInner","getOuterWrap","view","getMenuItems","hotkey","menuPopup","LineViewSelector","viewsMap","WeakMap","viewData","currentActiveWrap","AddButton","addEntryHandler","addEntry","addTaskHandler","addTask","addButtonExtra","setAttribute","getWrap","addBtnMenu","MeetingStatusControl","Error","status","currentStatus","updateStatus","acceptBtn","Button","accept","renderTo","declineBtn","decline","getContainer","setStatus","emitEvent","ConfirmStatusDialog","PopupWindowButtonLink","PopupWindowButton","onDeclineHandler","recursionMode","buttonNode","compactForm","EntryManager","getCompactViewForm","ConfirmEditDialog","ConfirmDeleteDialog","entry","deleteThis","deleteNext","deleteAll","uid","options","showTimezone","DATE_INPUT_WIDTH","TIME_INPUT_WIDTH","inlineEditMode","currentInlineEditMode","UID","outerContent","leftInnerWrap","fromDateText","fromTimeText","betweenSpacer","rightInnerWrap","toTimeText","toDateText","fromTimeControl","handleTimeFromChange","toTimeControl","handleTimeToChange","fullDayWrap","formatDate","updateTimePeriod","timezoneFrom","timezoneName","timezoneTo","fromTz","toTz","switchTimezone","handleFullDayChange","getFrom","getTo","updateToTimeDurationHints","getDateWithTime","parsedDate","handleDateFromChange","handleDateToChange","handleTimeInput","handleValueChange","changeInlineEditMode","defTimezone","bindFromToDefaultTimezones","tzButton","bindTimezones","nodeName","removeCustomEvent","difference","abs","yearDuration","duration","getMinutesFromFormattedTime","handleTimeChange","isIncorrectTimeValue","newFromDate","timeValue","isAmPmMode","timeSelector","getMaskedTime","beautifyTime","amPmSymbol","match","pop","getMinutesAndHours","hours","inputType","key","backspace","indexOf","clearTimeString","digits","splice","d","getMaxHours","formatHours","formatMinutes","validatedTime","firstColonIndex","replaceAll","areTimeDigitsCorrect","hh","mm","firstDigit","getFullDayValue","dateTimeWrap","parsedTime","isBoolean","tzCont","setInlineEditMode","BusyUsersDialog","plural","userNames","DISPLAY_NAME","join","UserPlannerSelector","readOnlyMode","meetingNotifyValue","userSelectorDialog","attendeesEntityList","prevUserList","loadedAccessibilityData","REFRESH_PLANNER_DELAY","selectorId","informWrap","informWrapText","moreLink","changeLink","attendeesLabel","attendeesList","userSelectorWrap","plannerOuterWrap","videocallWrap","hideGuestsWrap","hideGuestsIcon","refreshPlannerStateDebounce","refreshPlannerState","dayOfWeekMonthFormat","plannerFeatureEnabled","isReadOnly","EntitySelectorDialog","targetNode","context","preselectedItems","attendeesPreselectedItems","enableSearch","handleUserSelectorChanges","entities","inviteGuestLink","emailUsers","selectMode","searchTabOptions","stubOptions","subtitle","iconOpacity","arrow","showMoreAttendeesPopup","planner","Planner","PLANNER_WIDTH","showEntryName","locked","setInformValue","handleExpandPlannerTimeline","setHideGuestsValue","hideGuests","attendees","notify","entityId","entryId","setEntityList","setLocationValue","displayAttendees","dateTime","getDateTime","updateSelector","getCurrentStatus","conferenceButton","handleVideoconferenceButtonClick","Intranet","ControlButton","intranetControllButton","container","entityType","parentId","mainItem","entityData","analyticsLabel","formType","button","showPlanner","getSelectedItems","getEntityList","selectorEntityList","getUserSelector","SelectorManager","instances","isPlannerDisplayed","showLoader","checkBusyTime","entityList","updateScaleLimitsFromEntry","runPlannerDataRequest","timezone","getLocationValue","entries","preparedData","preparedDataAccessibility","currentFromDate","currentToDate","checkTimePeriod","update","hideLoader","prepareAttendeesForDisplay","AVATAR","avatar","EMAIL_USER","emailUser","SHARING_USER","sharingUser","STATUS","URL","url","loadPlannerData","entryLocation","LOCATION","scaleDateFrom","scaleDateTo","entrieIds","setDateTime","updatePlaner","fromHours","toHours","shownScaleTimeFrom","shownScaleTimeTo","attendeeList","AttendeesList","sortAttendees","usersCount","accepted","requested","userLength","MAX_USER_COUNT_DISPLAY","getUserAvatarNode","hide","hasExternalEmailUsers","showHideGuestsOption","hideHideGuestsOption","user","img","SMALL_AVATAR","defaultAvatarClass","DISABLED_CLASS","getInformValue","hideGuestsText","calendarEventsAccessibility","prepareAccessibilityItem","clearAccessibilityData","userIdList","getData","reload","focusSelector","getConferenceChatId","eventId","BXIM","chatId","openMessenger","alert","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","DISABLED","userSettings","getUserSettings","sendFromEmail","emailSelectorControl","setUserSettings","userOptions","save","processButton","CLOCKING","handleSelectChanges","helpLinlk","openHelpSlider","Helper","EmailLimitationDialog","EXPAND_LICENSE_URL","eventsAmount","getEventWithEmailGuestAmount","limit","isEventWithEmailGuestAllowed","subText","getDialogPopup","setAttendeesList","addAvatarToMenuItems","group","groupUsers","SidePanel","Instance","loader","allowChangeHistory","contentClassName","declined"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings