File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/modules/calendar/install/js/calendar/sharing/public/dist/public.bundle.js.map
Back
{"version":3,"file":"public.bundle.js","sources":["../src/components/calendar/dateselector.js","../src/components/calendar/eventslotitem.js","../src/components/timer.js","../src/components/calendar/eventslotlist.js","../src/components/header.js","../src/components/event/startinfo.js","../src/components/headertitle.js","../src/components/loader.js","../src/components/event/addform.js","../src/components/event/viewform.js","../src/components/welcomepage.js","../src/components/application.js","../src/public.js"],"sourcesContent":["import '../../css/sharing.css';\nimport { Dom } from 'main.core';\nimport { DateTimeFormat } from \"main.date\";\nimport { Util } from 'calendar.util';\n\nexport const DateSelector = {\n\tprops: {\n\t\towner: Object,\n\t\tcalendarSettings: Object,\n\t\tuserAccessibility: Object,\n\t\ttimezoneList: Object,\n\t},\n\tname: 'DateSelector',\n\tdata()\n\t{\n\t\treturn {\n\t\t\taccessibility: this.userAccessibility,\n\t\t\teventDurability: 3600000,\n\t\t\tstepSize: 3600000,\n\t\t\tnowTime: new Date(),\n\t\t\ttimezoneOffsetUtc: new Date().getTimezoneOffset(),\n\t\t\tcurrentTimezoneOffsetUtc: new Date().getTimezoneOffset(),\n\t\t\tselectedTimezoneId: Intl.DateTimeFormat().resolvedOptions().timeZone,\n\t\t\tcurrentMonthIndex: 0,\n\t\t\tcurrentDayNumber: 1,\n\t\t\tisMobileBrowser: false,\n\t\t\tdisplayedMonth: [0],\n\t\t\tisMonthAnimating: false,\n\t\t\tisSlotListAnimating: false,\n\t\t\tmonths: [],\n\t\t\tmonthsSlots: [],\n\t\t\tmonthsSlotsMap: {},\n\t\t\tloc: {\n\t\t\t\tweekdays: Util.getWeekdaysLoc(),\n\t\t\t},\n\n\t\t\tconfig: {\n\t\t\t\tweekHolidays: [6, 0],\n\t\t\t\tweekStart: 1,\n\t\t\t},\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tthis.setConfig(this.calendarSettings);\n\t\tthis.isMobileBrowser = Util.isMobileBrowser();\n\t\tsetInterval(this.incrementTime, 15000);\n\n\t\tconst slots = this.calculateDateTimeSlots(this.nowTime.getFullYear(), this.nowTime.getMonth());\n\t\tthis.monthsSlots.push(slots);\n\t\tconst slotsMap = this.getDateTimeSlotsMap(slots);\n\t\tconst arrayKey = (this.nowTime.getMonth() + 1) + '.' + this.nowTime.getFullYear();\n\t\tthis.monthsSlotsMap[arrayKey] = slotsMap;\n\n\t\tconst month = this.createMonth(this.nowTime.getFullYear(), this.nowTime.getMonth());\n\t\tthis.months.push(month);\n\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:onEventAdd', async () => {\n\t\t\tawait this.updateEventSlotsList();\n\t\t\tthis.openEventSlotList(this.getDayByNumber(this.currentDayNumber));\n\t\t});\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:onShowCalendar', () => {\n\t\t\tthis.setPageVisualSettings();\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.resizeSelect();\n\t\t\t}, 100);\n\t\t})\n\t\tthis.setPageVisualSettings();\n\t},\n\tmounted()\n\t{\n\t\tthis.resizeSelect();\n\t\tthis.selectFirstAvailableDay();\n\t\tthis.setMonthHeight();\n\n\t\tthis.DOM = {\n\t\t\tmonthsContainer: document.querySelector('.calendar-sharing__months-container'),\n\t\t};\n\t},\n\tupdated()\n\t{\n\t\tif (this.displayedMonth.length === 1)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.displayedMonth[0] === -1)\n\t\t{\n\t\t\tthis.DOM.monthsContainer.scrollLeft = this.DOM.monthsContainer.scrollWidth - this.DOM.monthsContainer.offsetWidth;\n\t\t\tthis.animateToPreviousMonth();\n\t\t}\n\t\tif (this.displayedMonth[1] === 1)\n\t\t{\n\t\t\tthis.animateToNextMonth();\n\t\t}\n\t},\n\tmethods: {\n\t\tresizeSelect()\n\t\t{\n\t\t\tconst resizingSelectContainer = document.querySelector(\".calendar-sharing__event-slot-timezone_select_box\");\n\t\t\tconst resizingSelect = document.querySelector(\".calendar-sharing__event-slot-timezone_select\");\n\t\t\tconst helperElement = document.querySelector(\".calendar-sharing__event-slot-timezone_select_helper-element\");\n\t\t\tconst helperOption = helperElement.querySelector(\"option\");\n\t\t\tconst selectOption = document.querySelector(\".calendar-sharing__event-slot-timezone_select option:checked\");\n\n\t\t\tif (resizingSelect)\n\t\t\t{\n\t\t\t\tif (selectOption !== null)\n\t\t\t\t{\n\t\t\t\t\thelperOption.innerHTML = selectOption.innerText;\n\t\t\t\t\tlet defaultWidth = helperElement.offsetWidth;\n\t\t\t\t\tresizingSelectContainer.style.setProperty(\"--dynamic-size\", `${defaultWidth}px`);\n\t\t\t\t}\n\n\t\t\t\tresizingSelect.addEventListener('change', initResize);\n\t\t\t}\n\n\t\t\tfunction initResize(event) {\n\t\t\t\thelperOption.innerHTML = event.target.querySelector(\"option:checked\").innerText;\n\t\t\t\tresize(helperElement.offsetWidth);\n\t\t\t}\n\n\t\t\tfunction resize(width) {\n\t\t\t\tresizingSelectContainer.style.setProperty(\"--dynamic-size\", `${width}px`);\n\t\t\t}\n\n\t\t\tthis.setMonthHeight();\n\t\t},\n\t\tsetConfig(params)\n\t\t{\n\t\t\tif (params.weekHolidays)\n\t\t\t{\n\t\t\t\tthis.config.weekHolidays = params.weekHolidays.map(weekDay => Util.getIndByWeekDay(weekDay));\n\t\t\t}\n\t\t\tif (params.yearHolidays)\n\t\t\t{\n\t\t\t\tthis.config.yearHolidays = params.yearHolidays;\n\t\t\t}\n\t\t\tif (params.weekStart)\n\t\t\t{\n\t\t\t\tthis.config.weekStart = Util.getIndByWeekDay(params.weekStart);\n\t\t\t\tthis.loc.weekdays.push(...this.loc.weekdays.splice(0, this.config.weekStart));\n\t\t\t}\n\n\t\t\tconst hourOffset = Util.getTimeZoneOffset(this.selectedTimezoneId) / 60;\n\t\t\tif (params.workTimeStart)\n\t\t\t{\n\t\t\t\tconst workTimeStart = parseFloat(params.workTimeStart) - hourOffset;\n\t\t\t\tthis.config.workTimeStartHours = workTimeStart - workTimeStart % 1;\n\t\t\t\tthis.config.workTimeStartMinutes = (workTimeStart % 1) * 60;\n\t\t\t}\n\t\t\tif (params.workTimeEnd)\n\t\t\t{\n\t\t\t\tconst workTimeEnd = parseFloat(params.workTimeEnd) - hourOffset;\n\t\t\t\tthis.config.workTimeEndHours = workTimeEnd - workTimeEnd % 1;\n\t\t\t\tthis.config.workTimeEndMinutes = (workTimeEnd % 1) * 60;\n\t\t\t}\n\t\t},\n\t\tgetTimezonePrefix(timezoneOffset)\n\t\t{\n\t\t\tconst offset = timezoneOffset * 1000 - this.timezoneOffsetUtc * (-60000);\n\t\t\tconst date = new Date(this.nowTime.getTime() + offset);\n\n\t\t\treturn DateTimeFormat.format(Util.getTimeFormatShort(), date.getTime() / 1000);\n\t\t},\n\t\tincrementTime()\n\t\t{\n\t\t\tthis.nowTime = new Date();\n\t\t},\n\t\tonTimezoneSelect()\n\t\t{\n\t\t\tconst selectedTimezone = this.timezoneList[this.selectedTimezoneId];\n\t\t\tthis.currentTimezoneOffsetUtc = - (selectedTimezone.offset / 60);\n\n\t\t\tthis.reCreateMonth();\n\n\t\t\tif (this.currentDayNumber)\n\t\t\t{\n\t\t\t\tconst day = this.getDayByNumber(this.currentDayNumber);\n\t\t\t\tthis.openEventSlotList(day);\n\t\t\t}\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onTimezoneChange', { selectedTimezone });\n\t\t},\n\t\tasync updateEventSlotsList()\n\t\t{\n\t\t\tconst month = this.months[this.currentMonthIndex];\n\t\t\tconst currentYear = month.year;\n\t\t\tconst currentMonth = month.month + 1;\n\t\t\tconst arrayKey = currentMonth + '.' + currentYear;\n\n\t\t\tthis.accessibility[arrayKey] = await this.loadMonthAccessibility(currentYear, currentMonth);\n\n\t\t\tthis.monthsSlots[this.currentMonthIndex] = this.calculateDateTimeSlots(currentYear, currentMonth - 1);\n\n\t\t\tthis.reCreateMonth();\n\t\t},\n\t\tgetDayByNumber(number)\n\t\t{\n\t\t\tconst currentMonth = this.months[this.currentMonthIndex];\n\t\t\tconst visibleDays = currentMonth.days.flat().filter(d => d.day > 0);\n\t\t\treturn visibleDays[number - 1];\n\t\t},\n\t\tcreateMonth(year, month)\n\t\t{\n\t\t\treturn {\n\t\t\t\tyear: year,\n\t\t\t\tmonth: month,\n\t\t\t\tcurrentTimezoneOffset: this.currentTimezoneOffsetUtc,\n\t\t\t\tname: this.getMonthName(month),\n\t\t\t\tdays: this.getMonthDays(year, month),\n\t\t\t};\n\t\t},\n\t\treCreateMonth()\n\t\t{\n\t\t\tconst year = this.months[this.currentMonthIndex].year;\n\t\t\tconst month = this.months[this.currentMonthIndex].month;\n\n\t\t\tconst monthSlots = this.monthsSlots[this.currentMonthIndex];\n\t\t\tconst arrayKey = (month + 1) + '.' + year;\n\t\t\tthis.monthsSlotsMap[arrayKey] = this.getDateTimeSlotsMap(monthSlots);\n\n\t\t\tthis.months[this.currentMonthIndex] = this.createMonth(year, month);\n\t\t},\n\t\tgetFirstMonthDay(year, month)\n\t\t{\n\t\t\tconst firstDayIndex = new Date(year, month, 1).getDay();\n\n\t\t\treturn firstDayIndex === 0 ? 7 : firstDayIndex;\n\t\t},\n\t\tgetMonthName(month)\n\t\t{\n\t\t\tconst date = new Date();\n\t\t\tconst currentMonthDate = new Date(date.getFullYear(), month, 1);\n\n\t\t\treturn DateTimeFormat.format('f', currentMonthDate.getTime() / 1000);\n\t\t},\n\t\tgetMonthDays(year, month)\n\t\t{\n\t\t\tconst days = [];\n\t\t\tconst daysCount = new Date(year, month + 1, 0).getDate();\n\t\t\tconst firstDayIndex = this.getFirstMonthDay(year, month);\n\t\t\tconst accessibilityArrayKey = (month + 1) + '.' + year;\n\n\t\t\tfor (let w = 1; w <= 6; w++)\n\t\t\t{\n\t\t\t\tconst weekDays = [];\n\t\t\t\tfor (let d = 1; d <= 7; d++)\n\t\t\t\t{\n\t\t\t\t\tconst dayIndex = d + this.config.weekStart + (w - 1) * 7 - firstDayIndex;\n\n\t\t\t\t\tif (dayIndex <= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tweekDays.push({\n\t\t\t\t\t\t\tday: -1,\n\t\t\t\t\t\t\tunavailable: false,\n\t\t\t\t\t\t\tweekend: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if (dayIndex > daysCount)\n\t\t\t\t\t{\n\t\t\t\t\t\tweekDays.push({\n\t\t\t\t\t\t\tday: 0,\n\t\t\t\t\t\t\tunavailable: false,\n\t\t\t\t\t\t\tweekend: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tconst newDay = new Date(year, month, dayIndex);\n\t\t\t\t\t\tconst slots = this.monthsSlotsMap[accessibilityArrayKey][newDay.getDate()] ?? [];\n\t\t\t\t\t\tconst unavailable = newDay < this.nowTime && newDay.getDate() < this.nowTime.getDate();\n\t\t\t\t\t\tconst isWeekend = this.isHoliday(newDay);\n\t\t\t\t\t\tconst hasFreeWindows = slots.filter(a => a.available).length > 0;\n\n\t\t\t\t\t\tweekDays.push({\n\t\t\t\t\t\t\tslots: slots,\n\t\t\t\t\t\t\tday: dayIndex,\n\t\t\t\t\t\t\tunavailable: unavailable,\n\t\t\t\t\t\t\tisWeekend: isWeekend,\n\t\t\t\t\t\t\thasFreeWindows: hasFreeWindows,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (w === 1 && weekDays[6].day === -1)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdays.push(weekDays);\n\t\t\t}\n\n\t\t\treturn days;\n\t\t},\n\t\tisHoliday(day): boolean\n\t\t{\n\t\t\tconst dayMonthKey = day.getDate() + '.' + ('0' + (day.getMonth() + 1)).slice(-2);\n\n\t\t\treturn (this.config.weekHolidays.includes(day.getDay()) || this.config.yearHolidays[dayMonthKey] !== undefined);\n\t\t},\n\t\tasync createNextMonth()\n\t\t{\n\t\t\tconst currentMonth = this.months[this.currentMonthIndex];\n\t\t\tconst currentYear = currentMonth.year;\n\t\t\tconst currentMonthIndex = currentMonth.month;\n\n\t\t\tconst nextMonthIndex = (currentMonthIndex + 1) % 12;\n\t\t\tconst nextYear = currentYear + Math.floor((currentMonthIndex + 1) / 12);\n\t\t\tconst nextMonth = nextMonthIndex + 1;\n\n\t\t\tconst arrayKey = nextMonth + '.' + nextYear;\n\n\t\t\tthis.accessibility[arrayKey] = await this.loadMonthAccessibility(nextYear, nextMonth);\n\n\t\t\tconst slots = this.calculateDateTimeSlots(nextYear, nextMonthIndex);\n\t\t\tthis.monthsSlots.push(slots);\n\n\t\t\tthis.monthsSlotsMap[arrayKey] = this.getDateTimeSlotsMap(slots);\n\n\t\t\tconst month = this.createMonth(nextYear, nextMonthIndex);\n\t\t\tthis.months.push(month);\n\t\t},\n\t\tasync loadMonthAccessibility(year, month)\n\t\t{\n\t\t\tconst firstMonthDay = new Date(year, month - 1, 1);\n\t\t\tconst lastMonthDay = new Date(year, month, 0, 23, 59);\n\n\t\t\tconst response = await BX.ajax.runAction('calendar.api.sharingajax.getUserAccessibility', {\n\t\t\t\tdata: {\n\t\t\t\t\tuserId: this.owner.id,\n\t\t\t\t\ttimestampFrom: firstMonthDay.getTime(),\n\t\t\t\t\ttimestampTo: lastMonthDay.getTime(),\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn response.data;\n\t\t},\n\t\tasync handleNextMonthArrowClick()\n\t\t{\n\t\t\tif (this.isMonthAnimating)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isMonthAnimating = true;\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onBeforeOpenSlotList');\n\n\t\t\tif (this.currentMonthIndex === this.months.length - 1)\n\t\t\t{\n\t\t\t\tawait this.createNextMonth();\n\t\t\t}\n\n\t\t\tthis.startNextMonthAnimation();\n\t\t},\n\t\thandlePreviousMonthArrowClick()\n\t\t{\n\t\t\tif (this.isMonthAnimating || this.currentMonthIndex === 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isMonthAnimating = true;\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onBeforeOpenSlotList');\n\n\t\t\tthis.startPreviousMonthAnimation();\n\t\t},\n\t\tstartNextMonthAnimation()\n\t\t{\n\t\t\tthis.displayedMonth = [0, 1];\n\t\t},\n\t\tstartPreviousMonthAnimation()\n\t\t{\n\t\t\tthis.displayedMonth = [-1, 0];\n\t\t},\n\t\tanimateToNextMonth()\n\t\t{\n\t\t\tthis.animateMonthSwitch('next');\n\t\t},\n\t\tanimateToPreviousMonth()\n\t\t{\n\t\t\tthis.animateMonthSwitch('previous');\n\t\t},\n\t\tanimateMonthSwitch(direction)\n\t\t{\n\t\t\tlet currentMonthElement, scrollTo, heightTo;\n\n\t\t\tif (direction === 'next')\n\t\t\t{\n\t\t\t\tcurrentMonthElement = this.DOM.monthsContainer.children[0];\n\t\t\t\tconst nextMonthElement = this.DOM.monthsContainer.children[1];\n\n\t\t\t\tscrollTo = this.DOM.monthsContainer.scrollWidth - this.DOM.monthsContainer.offsetWidth;\n\t\t\t\theightTo = this.getMonthHeight(nextMonthElement, this.currentMonthIndex + 1);\n\t\t\t}\n\n\t\t\tif (direction === 'previous')\n\t\t\t{\n\t\t\t\tconst previousMonthElement = this.DOM.monthsContainer.children[0];\n\t\t\t\tcurrentMonthElement = this.DOM.monthsContainer.children[1];\n\n\t\t\t\tscrollTo = 0;\n\t\t\t\theightTo = this.getMonthHeight(previousMonthElement, this.currentMonthIndex - 1);\n\t\t\t}\n\n\t\t\tnew BX.easing({\n\t\t\t\tduration: 300,\n\t\t\t\tstart: {\n\t\t\t\t\tscrollLeft: this.DOM.monthsContainer.scrollLeft,\n\t\t\t\t\theight: this.getMonthHeight(currentMonthElement, this.currentMonthIndex),\n\t\t\t\t},\n\t\t\t\tfinish: {\n\t\t\t\t\tscrollLeft: scrollTo,\n\t\t\t\t\theight: heightTo,\n\t\t\t\t},\n\t\t\t\ttransition: BX.easing.makeEaseOut(BX.easing.transitions.quad),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tthis.DOM.monthsContainer.scrollLeft = state.scrollLeft;\n\t\t\t\t\tthis.DOM.monthsContainer.style.height = state.height + 'px';\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tif (direction === 'next' && this.currentMonthIndex < this.months.length - 1)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.currentMonthIndex++;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (direction === 'previous' && this.currentMonthIndex > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.currentMonthIndex--;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.months[this.currentMonthIndex].currentTimezoneOffset !== this.currentTimezoneOffsetUtc)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.reCreateMonth();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.selectMonthDay();\n\n\t\t\t\t\tthis.isMonthAnimating = false;\n\t\t\t\t\tthis.displayedMonth = [0];\n\t\t\t\t}\n\t\t\t}).animate();\n\t\t},\n\t\topenEventSlotList(day)\n\t\t{\n\t\t\tthis.currentDayNumber = day.day;\n\t\t\tconst result = {\n\t\t\t\tslots: day.slots,\n\t\t\t\tday: day.day,\n\t\t\t\tmonth: this.months[this.currentMonthIndex].month,\n\t\t\t\tyear: this.months[this.currentMonthIndex].year,\n\t\t\t}\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:doOpenEventSlotList', result);\n\t\t},\n\t\tcalculateDateTimeSlots(year, month)\n\t\t{\n\t\t\tconst result = [];\n\t\t\tconst daysCount = new Date(year, month + 1, 0).getDate();\n\t\t\tconst accessibilityArrayKey = (month + 1) + '.' + year;\n\t\t\tconst nowTimestamp = this.nowTime.getTime();\n\t\t\tconst browserSelectedTimezoneOffset = (Util.getTimeZoneOffset(this.selectedTimezoneId) - this.nowTime.getTimezoneOffset()) * 60000;\n\t\t\tconst offset = this.getDateInSelectedTimezoneFromTimestampUTC(nowTimestamp) - nowTimestamp;\n\n\t\t\tfor (let dayIndex = 1; dayIndex <= daysCount; dayIndex++)\n\t\t\t{\n\t\t\t\tconst currentDate = new Date(year, month, dayIndex);\n\n\t\t\t\tconst from = new Date(year, month, dayIndex, this.config.workTimeStartHours, this.config.workTimeStartMinutes);\n\t\t\t\tconst to = new Date(year, month, dayIndex, this.config.workTimeEndHours, this.config.workTimeEndMinutes);\n\n\t\t\t\tconst dayAccessibility = this.accessibility[accessibilityArrayKey].filter((event) => {\n\t\t\t\t\treturn this.doIntervalsIntersect(\n\t\t\t\t\t\tparseInt(event.timestampFromUTC) * 1000,\n\t\t\t\t\t\tparseInt(event.timestampToUTC) * 1000,\n\t\t\t\t\t\tfrom.getTime(),\n\t\t\t\t\t\tto.getTime(),\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\twhile (from.getTime() < to.getTime())\n\t\t\t\t{\n\t\t\t\t\tconst slotStart = from.getTime();\n\t\t\t\t\tconst slotEnd = slotStart + this.eventDurability;\n\n\t\t\t\t\tif (slotEnd > to.getTime())\n\t\t\t\t\t{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst slotAccessibility = dayAccessibility.filter((acc) => {\n\t\t\t\t\t\treturn this.doIntervalsIntersect(\n\t\t\t\t\t\t\tparseInt(acc.timestampFromUTC) * 1000,\n\t\t\t\t\t\t\tparseInt(acc.timestampToUTC) * 1000,\n\t\t\t\t\t\t\tslotStart,\n\t\t\t\t\t\t\tslotEnd,\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\n\t\t\t\t\tconst available = slotAccessibility.length === 0 && !this.isHoliday(currentDate) && slotStart > nowTimestamp;\n\t\t\t\t\tconst timeFrom = new Date(slotStart + browserSelectedTimezoneOffset + offset);\n\t\t\t\t\tconst timeTo = new Date(timeFrom.getTime() + (slotEnd - slotStart));\n\t\t\t\t\tresult.push({ timeFrom, timeTo, available });\n\n\t\t\t\t\tfrom.setTime(from.getTime() + this.stepSize);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t\tdoIntervalsIntersect(from1, to1, from2, to2)\n\t\t{\n\t\t\tconst startsInside = from2 <= from1 && from1 < to2;\n\t\t\tconst endsInside = from2 < to1 && to1 <= to2;\n\t\t\tconst startsBeforeEndsAfter = from1 <= from2 && to1 >= to2;\n\t\t\treturn startsInside || endsInside || startsBeforeEndsAfter;\n\t\t},\n\t\tgetDateInSelectedTimezoneFromTimestampUTC(timestamp)\n\t\t{\n\t\t\tconst selectedTimezone = this.selectedTimezoneId;\n\t\t\treturn Util.getTimezoneDateFromTimestampUTC(timestamp, selectedTimezone);\n\t\t},\n\t\tgetDateTimeSlotsMap(slotList)\n\t\t{\n\t\t\tlet result = [];\n\t\t\tslotList.forEach((slot) => {\n\t\t\t\tconst timezoneOffset = (this.currentTimezoneOffsetUtc - this.timezoneOffsetUtc) * (-60) * 1000;\n\t\t\t\tconst currentSlot = {\n\t\t\t\t\ttimeFrom: new Date(slot.timeFrom.getTime() + timezoneOffset),\n\t\t\t\t\ttimeTo: new Date(slot.timeTo.getTime() + timezoneOffset),\n\t\t\t\t\tavailable: slot.available,\n\t\t\t\t};\n\t\t\t\tlet dateIndex = currentSlot.timeFrom.getDate();\n\n\t\t\t\tif (result[dateIndex] === undefined)\n\t\t\t\t{\n\t\t\t\t\tresult[dateIndex] = [];\n\t\t\t\t}\n\n\n\t\t\t\tif (slot.timeFrom.getMonth() === currentSlot.timeFrom.getMonth())\n\t\t\t\t{\n\t\t\t\t\tresult[dateIndex].push(currentSlot);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\t\tselectMonthDay()\n\t\t{\n\t\t\tconst currentMonthDays = this.months[this.currentMonthIndex].days.flat().filter(day => day.day > 0);\n\t\t\tlet dayToSelect = currentMonthDays.find(day => day.day === this.currentDayNumber);\n\t\t\tif (dayToSelect === undefined)\n\t\t\t{\n\t\t\t\tdayToSelect = currentMonthDays[currentMonthDays.length - 1];\n\t\t\t}\n\t\t\tthis.currentDayNumber = dayToSelect.day;\n\n\t\t\tthis.openEventSlotList(dayToSelect);\n\t\t},\n\t\tselectFirstAvailableDay()\n\t\t{\n\t\t\tlet visibleDays = this.months[this.currentMonthIndex].days.flat();\n\t\t\tif (this.currentMonthIndex === 0)\n\t\t\t{\n\t\t\t\tconst todayDay = new Date().getDate();\n\t\t\t\tvisibleDays = visibleDays.filter(day => day.day >= todayDay).slice(0,14);\n\t\t\t}\n\t\t\tlet availableDay = visibleDays.find(day => day.hasFreeWindows);\n\t\t\tif (availableDay === undefined)\n\t\t\t{\n\t\t\t\tavailableDay = visibleDays[0];\n\t\t\t}\n\n\t\t\tthis.openEventSlotList(availableDay);\n\t\t},\n\t\tsetMonthHeight()\n\t\t{\n\t\t\tconst currentMonth = document.querySelector('.calendar-sharing__month');\n\t\t\tcurrentMonth.style.height = this.getMonthHeight(currentMonth, this.currentMonthIndex) + 'px';\n\t\t},\n\t\tgetMonthHeight(monthElement, monthIndex): number\n\t\t{\n\t\t\tconst weekRows = monthElement.querySelector('.calendar-sharing__days-container').children;\n\t\t\tconst weekHeight = weekRows[0].offsetHeight;\n\n\t\t\tif (this.months[monthIndex].days.flat()[35].day === 0)\n\t\t\t{\n\t\t\t\treturn weekHeight * 6;\n\t\t\t}\n\n\t\t\treturn weekHeight * 7;\n\t\t},\n\t\tsetPageVisualSettings()\n\t\t{\n\t\t\tconst htmlNode = document.querySelector('html');\n\t\t\tconst bodyNode = document.querySelector('body');\n\n\t\t\tif (!Dom.hasClass(bodyNode, 'calendar-sharing--public-body'))\n\t\t\t{\n\t\t\t\tDom.addClass(bodyNode, 'calendar-sharing--public-body');\n\t\t\t}\n\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing--public-html'))\n\t\t\t{\n\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing--public-html');\n\t\t\t}\n\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing--slots'))\n\t\t\t{\n\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing--slots');\n\t\t\t}\n\t\t\tif (Dom.hasClass(htmlNode, 'calendar-sharing--bg-green'))\n\t\t\t{\n\t\t\t\tDom.removeClass(htmlNode, 'calendar-sharing--bg-green');\n\t\t\t}\n\t\t\tif (Dom.hasClass(htmlNode, 'calendar-sharing--bg-red'))\n\t\t\t{\n\t\t\t\tDom.removeClass(htmlNode, 'calendar-sharing--bg-red');\n\t\t\t}\n\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing--bg-gray') && this.isMobileBrowser)\n\t\t\t{\n\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing--bg-gray');\n\t\t\t}\n\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing--bg-blue') && !this.isMobileBrowser)\n\t\t\t{\n\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing--bg-blue');\n\t\t\t}\n\t\t\tif (Dom.hasClass(htmlNode, 'calendar-sharing-html-body-center'))\n\t\t\t{\n\t\t\t\tDom.removeClass(htmlNode, 'calendar-sharing-html-body-center');\n\t\t\t}\n\t\t\tif (Dom.hasClass(bodyNode, 'calendar-sharing-html-body-center'))\n\t\t\t{\n\t\t\t\tDom.removeClass(bodyNode, 'calendar-sharing-html-body-center');\n\t\t\t}\n\n\t\t\tif (Util.isMobileBrowser())\n\t\t\t{\n\t\t\t\tif (!Dom.hasClass(bodyNode, 'calendar-sharing--public-body-mobile'))\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(bodyNode, 'calendar-sharing--public-body-mobile');\n\t\t\t\t}\n\t\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing--public-html-mobile'))\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing--public-html-mobile');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"calendar-sharing-main__container\">\n\t\t\t<div class=\"calendar-sharing_title\">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_TITLE') }}\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing-month__container\">\n\t\t\t\t<div class=\"calendar-sharing_month-title\">\n\t\t\t\t\t<div class=\"calendar-sharing_mount-name\">{{ months[currentMonthIndex].name }}, {{ months[currentMonthIndex].year }}</div>\n\t\t\t\t\t<div class=\"calendar-sharing_month_btn-box\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"calendar-sharing_previous-month-arrow\"\n\t\t\t\t\t\t\t:class=\"{'--unavailable': !currentMonthIndex}\"\n\t\t\t\t\t\t\t@click=\"handlePreviousMonthArrowClick\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"calendar-sharing_next-month-arrow\"\n\t\t\t\t\t\t\t@click=\"handleNextMonthArrowClick\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing__months-container\">\n\t\t\t\t<div class=\"calendar-sharing__month\" v-for=\"i in displayedMonth\">\n\t\t\t\t\t<div class=\"calendar-sharing__weekdays-container\">\n\t\t\t\t\t\t<div class=\"calendar-sharing_weekday\" v-for=\"weekday in loc.weekdays\">{{ weekday }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"calendar-sharing__days-container\">\n\t\t\t\t\t\t<div class=\"calendar-sharing_week-line\" v-for=\"w in months[currentMonthIndex + i].days\">\n\t\t\t\t\t\t\t<div class=\"calendar-sharing__day-container\" v-for=\"d in w\">\n\t\t\t\t\t\t\t\t<div class=\"calendar-sharing_day --first-week\" v-if=\"d.day === -1\"></div>\n\t\t\t\t\t\t\t\t<div class=\"calendar-sharing_day --empty\" v-else-if=\"d.day === 0\"></div>\n\t\t\t\t\t\t\t\t<div class=\"calendar-sharing_day --unavailable\" v-else-if=\"d.unavailable\">{{ d.day }}</div>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclass=\"calendar-sharing_day\"\n\t\t\t\t\t\t\t\t\t:class=\"\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'--weekend': d.isWeekend,\n\t\t\t\t\t\t\t\t\t'--enable-booking': d.hasFreeWindows,\n\t\t\t\t\t\t\t\t\t'--active': d.day === currentDayNumber,\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t@click=\"openEventSlotList(d)\"\n\t\t\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{ d.day }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"calendar-sharing-main__bottom-container\">\n\t\t\t<div class=\"calendar-sharing__event-slot-timezone\">\n\t\t\t\t<div class=\"calendar-sharing__event-slot-timezone_name\">{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_TIMEZONE') }}:</div>\n\t\t\t\t<div class=\"calendar-sharing__event-slot-timezone_select_box\">\n\t\t\t\t\t<select class=\"calendar-sharing__event-slot-timezone_select\"\n\t\t\t\t\t\t\tv-model=\"selectedTimezoneId\"\n\t\t\t\t\t\t\t@change=\"onTimezoneSelect\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<option v-for=\"timezone in timezoneList\" :value=\"timezone.timezone_id\">\n\t\t\t\t\t\t\t{{ this.getTimezonePrefix(timezone.offset) }} - {{ timezone.timezone_id }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t\t<select class=\"calendar-sharing__event-slot-timezone_select_helper-element\" aria-hidden=\"true\">\n\t\t\t\t\t\t<option value=\"value\" selected>value</option>\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n","import { Util } from 'calendar.util';\n\nexport const EventSlotItem = {\n\tprops: ['item', 'key'],\n\tdata()\n\t{\n\t\treturn {\n\n\t\t};\n\t},\n\tcomputed: {\n\t\ttimeInput()\n\t\t{\n\t\t\treturn Util.formatTimeInterval(this.item.timeFrom, this.item.timeTo);\n\t\t},\n\t},\n\tmethods: {\n\t\thandleSetEventButtonClick()\n\t\t{\n\t\t\tthis.$emit('handleSetEventButtonClick', {\n\t\t\t\ttimeFrom: this.item.timeFrom,\n\t\t\t\ttimeTo: this.item.timeTo,\n\t\t\t});\n\t\t},\n\t},\n\ttemplate:`\n\t\t<div class=\"calendar-sharing-event-slot-item\" :class=\"{'calendar-sharing-event-slot-item-hidden': !item.available}\">\n\t\t\t<div class=\"calendar-sharing-event-slot-item-time\">\n\t\t\t\t{{ timeInput }}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\tclass=\"ui-btn ui-btn-success ui-btn-xs ui-btn-round\"\n\t\t\t\t@click=\"handleSetEventButtonClick\"\n\t\t\t>\n\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_CREATE_MEETING') }}\n\t\t\t</button>\n\t\t</div>\n\t`\n};\n","export const Timer = {\n\ttemplate: `\n\t\t<div class=\"calendar-sharing__timer_box\">\n\t\t\t<div class=\"calendar-sharing__time_count-box\">\n\t\t\t\t<div class=\"calendar-sharing__time_count-item\">18</div>\n\t\t\t\t<div class=\"calendar-sharing__time_count-item\">19</div>\n\t\t\t\t<div class=\"calendar-sharing__time_count-item\">20</div>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing__timer_title\">{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_TIMER_TITLE') }}</div>\n\t\t\t<div class=\"calendar-sharing__timer_desc\">{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_TIMER_DESC') }}</div>\n\t\t</div>\n\t`,\n};\n","import '../../css/sharing.css'\nimport { EventSlotItem } from './eventslotitem';\nimport { Timer } from '../timer';\n\nexport const EventSlotList = {\n\tname: 'EventSlotList',\n\tprops: {\n\t\ttimezoneList: Object,\n\t},\n\tcomponents: {\n\t\tEventSlotItem,\n\t\tTimer,\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\titemList: [],\n\t\t\tisItemSelected: false,\n\t\t\tselectedTimezone: null,\n\t\t\tnowTime: new Date(),\n\t\t\tcurrentTimezoneName: Intl.DateTimeFormat().resolvedOptions().timeZone,\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tthis.selectCurrentTimezone();\n\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:onTimezoneChange', (event) => {\n\t\t\tthis.updateTimezoneParams(event);\n\t\t});\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:doOpenEventSlotList', (event) => {\n\t\t\tthis.openEventSlotList(event);\n\t\t});\n\t},\n\tmounted()\n\t{\n\t\tthis.DOM = {\n\t\t\tslotContainer: document.querySelector('.calendar-sharing-event-slot-container'),\n\t\t};\n\t},\n\tmethods: {\n\t\tselectCurrentTimezone()\n\t\t{\n\t\t\tfor (let [key, timezone] of Object.entries(this.timezoneList))\n\t\t\t{\n\t\t\t\tif (key === this.currentTimezoneName)\n\t\t\t\t{\n\t\t\t\t\tthis.selectedTimezone = timezone;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\topenEventSlotList(event)\n\t\t{\n\t\t\tconst data = event.getData();\n\t\t\tthis.itemList = data.slots;\n\t\t\tthis.isItemSelected = true;\n\t\t},\n\t\tupdateTimezoneParams(event)\n\t\t{\n\t\t\tthis.selectedTimezone = event.data.selectedTimezone;\n\t\t},\n\t\thandleSetEventButtonClick(event)\n\t\t{\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onOpenEventAddForm');\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:changeEventData', {\n\t\t\t\ttimeFrom: event.timeFrom,\n\t\t\t\ttimeTo: event.timeTo,\n\t\t\t\ttimezone: this.selectedTimezone,\n\t\t\t});\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:changeApplicationType', {type: 'addForm'});\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"calendar-sharing-event-slot-container\" v-show=\"isItemSelected\">\n\t\t\t<EventSlotItem\n\t\t\t\tv-for=\"(item, index) in itemList\"\n\t\t\t\t:key=\"index\"\n\t\t\t\t:item=\"item\"\n\t\t\t\t:index=\"index + 1\"\n\t\t\t\t@handleSetEventButtonClick=\"handleSetEventButtonClick\"\n\t\t\t/>\n\t\t\t<div class=\"calendar-sharing-event-slot-empty\" :class=\"{'calendar-sharing-event-slot-item-hidden': itemList.filter(a => a.available).length}\">\n\t\t\t\t<Timer/>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n","\n\nexport const Header = {\n\ttemplate: `\n\t\t<div class=\"calendar-sharing_header\">\n\t\t\t<slot/>\n\t\t</div>\n\t`,\n};\n","import { Loc } from 'main.core';\nimport { DateTimeFormat } from \"main.date\";\nimport { Util } from 'calendar.util';\n\nexport const StartInfo = {\n\tprops: {\n\t\tevent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshowClockIcon: Boolean,\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tloc: {\n\t\t\t\ttoday: Loc.getMessage('CALENDAR_SHARING_TODAY'),\n\t\t\t\ttomorrow: Loc.getMessage('CALENDAR_SHARING_TOMORROW'),\n\t\t\t},\n\t\t};\n\t},\n\tmethods: {\n\t\tgetEventWeekDayShort()\n\t\t{\n\t\t\treturn DateTimeFormat.format('D', this.event.timeFrom.getTime() / 1000).toLowerCase();\n\t\t},\n\t\tgetEventMonthDay()\n\t\t{\n\t\t\treturn this.event.timeFrom.getDate();\n\t\t},\n\t\tgetEventDate()\n\t\t{\n\t\t\tlet dayPhrase = '';\n\t\t\tconst dateFormat = Util.getDayMonthFormat();\n\t\t\tconst today = new Date();\n\t\t\tconst eventDay = new Date(\n\t\t\t\tthis.event.timeFrom.getFullYear(),\n\t\t\t\tthis.event.timeFrom.getMonth(),\n\t\t\t\tthis.event.timeFrom.getDate()\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\ttoday.getTime() > eventDay.getTime()\n\t\t\t\t&& today.getTime() < eventDay.getTime() + 86000000\n\t\t\t)\n\t\t\t{\n\t\t\t\tdayPhrase = this.loc.today;\n\t\t\t}\n\t\t\telse if (\n\t\t\t\ttoday.getTime() < eventDay.getTime()\n\t\t\t\t&& today.getTime() > eventDay.getTime() - 86000000\n\t\t\t)\n\t\t\t{\n\t\t\t\tdayPhrase = this.loc.tomorrow;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdayPhrase = DateTimeFormat.format('l', this.event.timeFrom.getTime() / 1000).toLowerCase();\n\t\t\t}\n\n\t\t\treturn DateTimeFormat.format(dateFormat, this.event.timeFrom.getTime() / 1000)\n\t\t\t\t+ ', '\n\t\t\t\t+ dayPhrase\n\t\t\t;\n\t\t},\n\t\tgetEventTime()\n\t\t{\n\t\t\treturn Util.formatTimeInterval(this.event.timeFrom, this.event.timeTo);\n\t\t},\n\t\tgetEventTimezone()\n\t\t{\n\t\t\treturn Util.getFormattedTimezone(this.event.timezone.timezone_id);\n\t\t},\n\t\tgetEventName()\n\t\t{\n\t\t\treturn BX.util.htmlspecialchars(this.event.name);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"calendar-sharing-event-start__info_container\" \n\t\t\t:class=\"{'calendar-sharing--bg-gray': !this.event.name}\"\n\t\t>\n\t\t\t<div class=\"calendar-sharing-event-start__info-icon\" :class=\"{'--xl': this.event.name}\">\n\t\t\t\t<div class=\"calendar-sharing-event-start__info-icon_status\" v-if=\"showClockIcon\"></div>\n\t\t\t\t<div class=\"calendar-sharing-event-start__info-icon_day\" :class=\"{'--xl': this.event.name}\">\n\t\t\t\t\t{{ getEventWeekDayShort() }}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sharing-event-start__info-icon_date\" :class=\"{'--xl': this.event.name}\">\n\t\t\t\t\t{{ getEventMonthDay() }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing-event-start__info_datetime\">\n\t\t\t\t<div class=\"calendar-sharing-event-start__event-name\" v-if=\"this.event.name\">\n\t\t\t\t\t{{ getEventName() }}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sharing-event-start__info_date\">\n\t\t\t\t\t{{ getEventDate() }}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sharing-event-start__info_time_box\">\n\t\t\t\t\t<div class=\"calendar-sharing-event-start__info_time\">\n\t\t\t\t\t\t{{ getEventTime() }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sharing-event-start__info_timezone\">\n\t\t\t\t\t{{ getEventTimezone() }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n}\n","export const HeaderTitle = {\n\tprops: {\n\t\thasBackButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tbackButtonCallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"calendar-sharing-header-title_container\" :class=\"{'--center': !hasBackButton}\">\n\t\t\t<div class=\"calendar-sharing-header-title_icon\"></div>\n\t\t\t<div\n\t\t\t\tv-show=\"hasBackButton\"\n\t\t\t\t@click=\"backButtonCallback\"\n\t\t\t\tclass=\"calendar-sharing-header-title_back-button\"\n\t\t\t>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing-header-title_text\">{{text}}</div>\n\t\t</div>\n\t`,\n};\n","export const SharingLoader = {\n\ttemplate: `\n\t\t<div class=\"calendar-sharing__loader_box\">\n\t\t\t<svg class=\"calendar-sharing_circular\" viewBox=\"25 25 50 50\">\n\t\t\t\t<circle class=\"calendar-sharing_path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-miterlimit=\"10\"/>\n\t\t\t</svg>\n\t\t</div>\n\t`,\n};\n","import { Util } from 'calendar.util';\nimport { DateTimeFormat } from \"main.date\";\nimport { Loc } from 'main.core';\nimport { Header } from \"../header\";\nimport { StartInfo } from \"./startinfo\";\nimport { HeaderTitle } from \"../headertitle\";\nimport { SharingLoader } from '../loader';\n\nexport const AddForm = {\n\tcomponents: {\n\t\tHeader,\n\t\tHeaderTitle,\n\t\tStartInfo,\n\t\tSharingLoader,\n\t},\n\tname: 'EventAddForm',\n\tprops: {\n\t\tevent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\towner: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tphoneFeatureEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tsharingUser: Object,\n\t\tlastEventName: String,\n\t\tuserLinkHash: String,\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\teventName: this.lastEventName,\n\t\t\tauthorName: this.sharingUser.userName,\n\t\t\tcontactData: this.sharingUser.personalMailbox || this.sharingUser.personalPhone,\n\t\t\tisEmptyContactName: false,\n\t\t\tcontactDataError: false,\n\t\t\tisEmptyContactData: false,\n\t\t\tsaveButton: {\n\t\t\t\ttext: Loc.getMessage('CALENDAR_SHARING_SEND_REQUEST'),\n\t\t\t\tdisabled: false,\n\t\t\t},\n\t\t\tvalidated: true,\n\t\t\tloadingProcess: false,\n\t\t};\n\t},\n\tmounted()\n\t{\n\t\tthis.DOM = {\n\t\t\tinputContact: document.getElementById('calendar-sharing-event-add-form_input-contact'),\n\t\t\tcalendarContainer: document.querySelector('.calendar-sharing__calendar'),\n\t\t\taddFormElement: document.querySelector('.calendar-sharing__add-form').firstElementChild,\n\t\t};\n\t},\n\tupdated()\n\t{\n\t\tif (this.DOM.addFormElement.offsetHeight > 0)\n\t\t{\n\t\t\tthis.DOM.calendarContainer.style.height = this.DOM.addFormElement.offsetHeight + 'px';\n\t\t}\n\t},\n\tmethods: {\n\t\tasync handleSaveEventButton()\n\t\t{\n\t\t\tthis.fillEventNameIfEmpty();\n\n\t\t\tthis.clearContactDataError();\n\t\t\tthis.clearContactNameError();\n\n\t\t\tif (!this.validateData())\n\t\t\t{\n\t\t\t\tthis.validated = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.validated = true;\n\t\t\tthis.disableSaveButton();\n\t\t\tthis.loadingProcess = true;\n\t\t\tconst isSuccessful = await this.saveEvent();\n\t\t\tthis.enableSaveButton();\n\t\t\tthis.loadingProcess = false;\n\n\t\t\tif (!isSuccessful && !this.validated)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onEventAdd');\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:setEventViewError', { viewFormError: !isSuccessful });\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:updateAddFormDefaultParams', {\n\t\t\t\tuserName: this.authorName,\n\t\t\t\tcontactData: this.contactData,\n\t\t\t\teventName: this.eventName,\n\t\t\t});\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:changeApplicationType', { type: 'viewForm' });\n\t\t},\n\t\tclearContactNameError()\n\t\t{\n\t\t\tthis.isEmptyContactName = false;\n\t\t},\n\t\tclearContactDataError()\n\t\t{\n\t\t\tthis.contactDataError = false;\n\t\t\tthis.isEmptyContactData = false;\n\t\t},\n\t\tvalidateData(): boolean\n\t\t{\n\t\t\tif (this.authorName.length === 0)\n\t\t\t{\n\t\t\t\tthis.isEmptyContactName = true;\n\t\t\t}\n\t\t\tif (this.contactData.length === 0)\n\t\t\t{\n\t\t\t\tthis.isEmptyContactData = true;\n\t\t\t}\n\t\t\tif (!this.isEmptyContactData)\n\t\t\t{\n\t\t\t\tthis.contactDataError = !this.validatePhone() && !this.validateEmail();\n\t\t\t}\n\n\t\t\treturn !this.isEmptyContactName && !this.isEmptyContactData && !this.contactDataError;\n\t\t},\n\t\tasync saveEvent(): boolean\n\t\t{\n\t\t\tlet response = null;\n\t\t\tthis.loadingProcess = true;\n\t\t\ttry\n\t\t\t{\n\t\t\t\tresponse = await BX.ajax.runAction('calendar.api.sharingajax.saveEvent', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\townerCreated: this.sharingUser.ownerCreated,\n\t\t\t\t\t\townerId: this.owner.id,\n\t\t\t\t\t\teventName: this.eventName,\n\t\t\t\t\t\tuserName: this.authorName,\n\t\t\t\t\t\tuserContact: this.contactData,\n\t\t\t\t\t\tdateFrom: this.parseDate(this.event.timeFrom),\n\t\t\t\t\t\tdateTo: this.parseDate(this.event.timeTo),\n\t\t\t\t\t\ttimezone: this.event.timezone.timezone_id,\n\t\t\t\t\t\tuserLinkHash: this.userLinkHash,\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\tresponse = e;\n\t\t\t}\n\n\t\t\tif (response.errors.length === 0)\n\t\t\t{\n\t\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onSetEventData', {\n\t\t\t\t\teventId: response.data.eventId,\n\t\t\t\t\teventLinkId: response.data.eventLinkId,\n\t\t\t\t\teventLinkHash: response.data.eventLinkHash,\n\t\t\t\t\teventLinkShortUrl: response.data.eventLinkShortUrl,\n\t\t\t\t\teventName: response.data.eventName,\n\t\t\t\t});\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onSetEventData', {\n\t\t\t\t\teventName: this.eventName,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (response.data.contactDataError === true)\n\t\t\t{\n\t\t\t\tthis.contactDataError = true;\n\t\t\t\tthis.validated = false;\n\t\t\t}\n\n\t\t\tif (response.data.isEmptyContactName === true)\n\t\t\t{\n\t\t\t\tthis.isEmptyContactName = true;\n\t\t\t\tthis.validated = false;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tdisableSaveButton()\n\t\t{\n\t\t\tthis.saveButton.text = this.$Bitrix.Loc.getMessage('CALENDAR_SHARING_SEND_REQUEST_PROCESSING');\n\t\t\tthis.saveButton.disabled = true;\n\t\t},\n\t\tenableSaveButton()\n\t\t{\n\t\t\tthis.saveButton.text = this.$Bitrix.Loc.getMessage('CALENDAR_SHARING_SEND_REQUEST');\n\t\t\tthis.saveButton.disabled = false;\n\t\t},\n\t\tparseDate(date): string\n\t\t{\n\t\t\tconst dateInFormat = DateTimeFormat.format(Util.getDateFormat(), date.getTime() / 1000);\n\t\t\tconst timeInFormat = DateTimeFormat.format(Util.getTimeFormat(), date.getTime() / 1000);\n\t\t\treturn dateInFormat + ' ' + timeInFormat;\n\t\t},\n\t\treturnToDateSelector()\n\t\t{\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:changeApplicationType', {type: 'calendar'});\n\t\t},\n\t\tfillEventNameIfEmpty(): boolean\n\t\t{\n\t\t\tif (this.eventName.length === 0)\n\t\t\t{\n\t\t\t\tthis.eventName = Loc.getMessage('CALENDAR_SHARING_NEW_EVENT');\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tvalidatePhone(): boolean\n\t\t{\n\t\t\tlet isValidated = false\n\t\t\tif (this.phoneFeatureEnabled)\n\t\t\t{\n\t\t\t\tconst phone = this.contactData.replace(/[()\\s\\-]+/g, '');\n\t\t\t\tconst match = phone.match(/(^\\+?\\d{4,25}$)/i);\n\t\t\t\tisValidated = match?.[0] === phone;\n\t\t\t}\n\n\t\t\treturn isValidated;\n\t\t},\n\t\tvalidateEmail(): boolean\n\t\t{\n\t\t\tconst match = this.contactData.match(/(^[^@]+@.+$)/i);\n\t\t\treturn match?.[0] === this.contactData;\n\t\t},\n\t\tgetContactDataPlaceholder(): string\n\t\t{\n\t\t\tlet messageCode = 'CALENDAR_SHARING_AUTHOR_CONTACT_DATA_PLACEHOLDER_PHONE_FEATURE_DISABLED'\n\t\t\tif (this.phoneFeatureEnabled)\n\t\t\t{\n\t\t\t\tmessageCode = 'CALENDAR_SHARING_AUTHOR_CONTACT_DATA_PLACEHOLDER_PHONE_FEATURE_ENABLED';\n\t\t\t}\n\n\t\t\treturn this.$Bitrix.Loc.getMessage(messageCode);\n\t\t},\n\t\tonPhoneInput()\n\t\t{\n\t\t\tthis.clearContactDataError();\n\t\t\tif (!this.isPhoneTypeInput())\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst textBeforeCursor = this.getTextBeforeCursor(this.DOM.inputContact);\n\n\t\t\tthis.contactData = this.formatPhone(this.contactData);\n\t\t\tthis.DOM.inputContact.value = this.contactData;\n\n\t\t\tthis.setCursorToFormattedPosition(this.DOM.inputContact, textBeforeCursor);\n\t\t},\n\t\tgetTextBeforeCursor(input)\n\t\t{\n\t\t\tconst selectionStart = input.selectionStart;\n\t\t\treturn input.value.slice(0, selectionStart);\n\t\t},\n\t\tsetCursorToFormattedPosition(input, textBeforeCursor)\n\t\t{\n\t\t\tconst firstPart = this.getTextEscapedForRegex(textBeforeCursor.slice(0, -1));\n\t\t\tconst lastCharacter = this.getTextEscapedForRegex(textBeforeCursor.slice(-1));\n\t\t\tconst match = input.value.match(`${firstPart}.*?${lastCharacter}`)[0];\n\t\t\tconst formattedPosition = input.value.indexOf(match) + match.length;\n\t\t\tinput.setSelectionRange(formattedPosition, formattedPosition);\n\t\t},\n\t\tgetTextEscapedForRegex(text)\n\t\t{\n\t\t\treturn text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t},\n\t\tonPhoneInputKeyDown(e)\n\t\t{\n\t\t\tif (!this.isPhoneTypeInput())\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.isDigit(e.key) && !this.isControlKey(e.key) && !Util.isAnyModifierKeyPressed(e))\n\t\t\t{\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t},\n\t\tisPhoneTypeInput()\n\t\t{\n\t\t\treturn this.contactData.slice(0, 1) === '+';\n\t\t},\n\t\tisDigit(key): boolean\n\t\t{\n\t\t\treturn /^\\d+$/.test(key);\n\t\t},\n\t\tisControlKey(key): boolean\n\t\t{\n\t\t\treturn ['Esc', 'Delete', 'Backspace', 'Tab'].indexOf(key) >= 0 || key.includes('Arrow');\n\t\t},\n\t\tformatPhone(value): string\n\t\t{\n\t\t\tvalue ??= '';\n\n\t\t\tlet hasPlus = value.indexOf('+') === 0;\n\t\t\tvalue = value.replace(/\\D/g, '');\n\n\t\t\tif (!this.phoneDb)\n\t\t\t{\n\t\t\t\tthis.phoneDb = \"247,ac,___-____|376,ad,___-___-___|971,ae,___-_-___-____|93,af,__-__-___-____|1268,ag,_ (___) ___-____|1264,ai,_ (___) ___-____|355,al,___ (___) ___-___|374,am,___-__-___-___|599,bq,___-___-____|244,ao,___ (___) ___-___|6721,aq,___-___-___|54,ar,__ (___) ___-____|1684,as,_ (___) ___-____|43,at,__ (___) ___-____|61,au,__-_-____-____|297,aw,___-___-____|994,az,___ (__) ___-__-__|387,ba,___-__-____|1246,bb,_ (___) ___-____|880,bd,___-__-___-___|32,be,__ (___) ___-___|226,bf,___-__-__-____|359,bg,___ (___) ___-___|973,bh,___-____-____|257,bi,___-__-__-____|229,bj,___-__-__-____|1441,bm,_ (___) ___-____|673,bn,___-___-____|591,bo,___-_-___-____|55,br,__-(__)-____-____|1242,bs,_ (___) ___-____|975,bt,___-_-___-___|267,bw,___-__-___-___|375,by,___ (__) ___-__-__|501,bz,___-___-____|243,cd,___ (___) ___-___|236,cf,___-__-__-____|242,cg,___-__-___-____|41,ch,__-__-___-____|225,ci,___-__-___-___|682,ck,___-__-___|56,cl,__-_-____-____|237,cm,___-____-____|86,cn,__ (___) ____-___|57,co,__ (___) ___-____|506,cr,___-____-____|53,cu,__-_-___-____|238,cv,___ (___) __-__|357,cy,___-__-___-___|420,cz,___ (___) ___-___|49,de,__-___-___|253,dj,___-__-__-__-__|45,dk,__-__-__-__-__|1767,dm,_ (___) ___-____|1809,do,_ (___) ___-____|,do,_ (___) ___-____|213,dz,___-__-___-____|593,ec,___-_-___-____|372,ee,___-___-____|20,eg,__ (___) ___-____|291,er,___-_-___-___|34,es,__ (___) ___-___|251,et,___-__-___-____|358,fi,___ (___) ___-__-__|679,fj,___-__-_____|500,fk,___-_____|691,fm,___-___-____|298,fo,___-___-___|262,fr,___-_____-____|33,fr,__ (___) ___-___|508,fr,___-__-____|590,fr,___ (___) ___-___|241,ga,___-_-__-__-__|1473,gd,_ (___) ___-____|995,ge,___ (___) ___-___|594,gf,___-_____-____|233,gh,___ (___) ___-___|350,gi,___-___-_____|299,gl,___-__-__-__|220,gm,___ (___) __-__|224,gn,___-__-___-___|240,gq,___-__-___-____|30,gr,__ (___) ___-____|502,gt,___-_-___-____|1671,gu,_ (___) ___-____|245,gw,___-_-______|592,gy,___-___-____|852,hk,___-____-____|504,hn,___-____-____|385,hr,___-__-___-___|509,ht,___-__-__-____|36,hu,__ (___) ___-___|62,id,__-__-___-__|353,ie,___ (___) ___-___|972,il,___-_-___-____|91,in,__ (____) ___-___|246,io,___-___-____|964,iq,___ (___) ___-____|98,ir,__ (___) ___-____|354,is,___-___-____|39,it,__ (___) ____-___|1876,jm,_ (___) ___-____|962,jo,___-_-____-____|81,jp,__ (___) ___-___|254,ke,___-___-______|996,kg,___ (___) ___-___|855,kh,___ (__) ___-___|686,ki,___-__-___|269,km,___-__-_____|1869,kn,_ (___) ___-____|850,kp,___-___-___|82,kr,__-__-___-____|965,kw,___-____-____|1345,ky,_ (___) ___-____|77,kz,_ (___) ___-__-__|856,la,___-__-___-___|961,lb,___-_-___-___|1758,lc,_ (___) ___-____|423,li,___ (___) ___-____|94,lk,__-__-___-____|231,lr,___-__-___-___|266,ls,___-_-___-____|370,lt,___ (___) __-___|352,lu,___ (___) ___-___|371,lv,___-__-___-___|218,ly,___-__-___-___|212,ma,___-__-____-___|377,mc,___-__-___-___|373,md,___-____-____|382,me,___-__-___-___|261,mg,___-__-__-_____|692,mh,___-___-____|389,mk,___-__-___-___|223,ml,___-__-__-____|95,mm,__-___-___|976,mn,___-__-__-____|853,mo,___-____-____|1670,mp,_ (___) ___-____|596,mq,___ (___) __-__-__|222,mr,___ (__) __-____|1664,ms,_ (___) ___-____|356,mt,___-____-____|230,mu,___-___-____|960,mv,___-___-____|265,mw,___-_-____-____|52,mx,__-__-__-____|60,my,__-_-___-___|258,mz,___-__-___-___|264,na,___-__-___-____|687,nc,___-__-____|227,ne,___-__-__-____|6723,nf,___-___-___|234,ng,___-__-___-__|505,ni,___-____-____|31,nl,__-__-___-____|47,no,__ (___) __-___|977,np,___-__-___-___|674,nr,___-___-____|683,nu,___-____|64,nz,__-__-___-___|968,om,___-__-___-___|507,pa,___-___-____|51,pe,__ (___) ___-___|689,pf,___-__-__-__|675,pg,___ (___) __-___|63,ph,__ (___) ___-____|92,pk,__ (___) ___-____|48,pl,__ (___) ___-___|970,ps,___-__-___-____|351,pt,___-__-___-____|680,pw,___-___-____|595,py,___ (___) ___-___|974,qa,___-____-____|40,ro,__-__-___-____|381,rs,___-__-___-____|7,ru,_ (___) ___-__-__|250,rw,___ (___) ___-___|966,sa,___-_-___-____|677,sb,___-_____|248,sc,___-_-___-___|249,sd,___-__-___-____|46,se,__-__-___-____|65,sg,__-____-____|386,si,___-__-___-___|421,sk,___ (___) ___-___|232,sl,___-__-______|378,sm,___-____-______|221,sn,___-__-___-____|252,so,___-_-___-___|597,sr,___-___-___|211,ss,___-__-___-____|239,st,___-__-_____|503,sv,___-__-__-____|1721,sx,_ (___) ___-____|963,sy,___-__-____-___|268,sz,___ (__) __-____|1649,tc,_ (___) ___-____|235,td,___-__-__-__-__|228,tg,___-__-___-___|66,th,__-__-___-___|992,tj,___-__-___-____|690,tk,___-____|670,tl,___-___-____|993,tm,___-_-___-____|216,tn,___-__-___-___|676,to,___-_____|90,tr,__ (___) ___-____|1868,tt,_ (___) ___-____|688,tv,___-_____|886,tw,___-____-____|255,tz,___-__-___-____|380,ua,___ (__) ___-__-__|256,ug,___ (___) ___-___|44,gb,__-__-____-____|598,uy,___-_-___-__-__|998,uz,___-__-___-____|396698,va,__-_-___-_____|1784,vc,_ (___) ___-____|58,ve,__ (___) ___-____|1284,vg,_ (___) ___-____|1340,vi,_ (___) ___-____|84,vn,__-__-____-___|678,vu,___-_____|681,wf,___-__-____|685,ws,___-__-____|967,ye,___-_-___-___|27,za,__-__-___-____|260,zm,___ (__) ___-____|263,zw,___-_-______|1,us,_ (___) ___-____|\"\n\t\t\t\t\t.split('|')\n\t\t\t\t\t.map(item => {\n\t\t\t\t\t\titem = item.split(',');\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcode: item[0],\n\t\t\t\t\t\t\tid: item[1],\n\t\t\t\t\t\t\tmask: item[2],\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (value.length > 0)\n\t\t\t{\n\t\t\t\tlet mask = this.findMask(value);\n\t\t\t\tmask += ((mask.indexOf('-') >= 0 ? '-' : ' ') + '__').repeat(10);\n\t\t\t\tfor (let i = 0; i < value.length; i++)\n\t\t\t\t{\n\t\t\t\t\tmask = mask.replace('_', value.slice(i, i + 1));\n\t\t\t\t}\n\t\t\t\tvalue = mask.replace(/\\D+$/,'').replace(/_/g, '0');\n\t\t\t}\n\n\t\t\tif (hasPlus || value.length > 0)\n\t\t\t{\n\t\t\t\tvalue = '+' + value;\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tfindMask(value)\n\t\t{\n\t\t\tlet r = this.phoneDb.filter(item => {\n\t\t\t\treturn value.indexOf(item.code) === 0;\n\t\t\t}).sort((a, b) => {\n\t\t\t\treturn b.code.length - a.code.length;\n\t\t\t})[0];\n\t\t\treturn r ? r.mask : '_ ___ __ __ __';\n\t\t}\n\t},\n\ttemplate: `\n\t\t<Header>\n\t\t\t<template v-slot>\n\t\t\t\t<HeaderTitle\n\t\t\t\t\t:has-back-button=\"true\"\n\t\t\t\t\t:back-button-callback=\"returnToDateSelector\"\n\t\t\t\t\t:text=\"$Bitrix.Loc.getMessage('CALENDAR_SHARING_ADD_FORM_HEADER_TITLE')\"\n\t\t\t\t/>\n\t\t\t\t<StartInfo\n\t\t\t\t\t:show-clock-icon=\"false\"\n\t\t\t\t\t:event=\"this.event\"\n\t\t\t\t/>\n\t\t\t</template>\n\t\t</Header>\n\t\t<div class=\"calendar-sharing-event-add-form\">\n\t\t\t<div class=\"calendar-sharing-event-add-form_content\">\n\t\t\t\t<div class=\"calendar-sharing-event-add-form_input_box\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"calendar-sharing-event-add-form_input\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t:placeholder=\"$Bitrix.Loc.getMessage('CALENDAR_SHARING_EVENT_NAME_PLACEHOLDER')\"\n\t\t\t\t\t\tv-model=\"eventName\"\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sharing-event-add-form_input_box\" :class=\"{\n\t\t\t\t\t'--error': isEmptyContactName\n\t\t\t\t}\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"calendar-sharing-event-add-form_input\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t:placeholder=\"$Bitrix.Loc.getMessage('CALENDAR_SHARING_AUTHOR_NAME_PLACEHOLDER')\"\n\t\t\t\t\t\tv-model=\"authorName\"\n\t\t\t\t\t\t@input=\"clearContactNameError\"\n\t\t\t\t\t\t@focus=\"clearContactNameError\"\n\t\t\t\t\t>\n\t\t\t\t\t<span class=\"calendar-sharing-event-add-form_input_note\" v-if=\"isEmptyContactName\">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_REQUIRED_FIELD') }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sharing-event-add-form_input_box\" :class=\"{\n\t\t\t\t\t'--error': contactDataError || isEmptyContactData\n\t\t\t\t}\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"calendar-sharing-event-add-form_input-contact\"\n\t\t\t\t\t\tclass=\"calendar-sharing-event-add-form_input\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t:placeholder=\"getContactDataPlaceholder()\"\n\t\t\t\t\t\tv-model=\"contactData\"\n\t\t\t\t\t\t@focus=\"clearContactDataError\"\n\t\t\t\t\t\t@keydown=\"onPhoneInputKeyDown\"\n\t\t\t\t\t\t@input=\"onPhoneInput\"\n\t\t\t\t\t>\n\t\t\t\t\t<span class=\"calendar-sharing-event-add-form_input_note\" v-if=\"contactDataError\">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_ERROR_FIELD') }}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"calendar-sharing-event-add-form_input_note\" v-if=\"isEmptyContactData\">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_REQUIRED_FIELD') }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing-event-add-form_buttons\">\n\t\t\t\t<button\n\t\t\t\t\tclass=\"ui-btn ui-btn-success ui-btn-round\"\n\t\t\t\t\t@click=\"handleSaveEventButton\"\n\t\t\t\t\t:disabled=\"saveButton.disabled\"\n\t\t\t\t>\n\t\t\t\t\t{{ saveButton.text }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<SharingLoader v-if=\"loadingProcess\"/>\n\t\t</div>\n\t`\n};\n","import {Header} from \"../header\";\nimport {StartInfo} from \"./startinfo\";\nimport {HeaderTitle} from \"../headertitle\";\nimport { Util } from 'calendar.util';\nimport { Dom, Tag, Event, Loc } from 'main.core';\n\nexport const ViewForm = {\n\tcomponents: {\n\t\tHeader,\n\t\tHeaderTitle,\n\t\tStartInfo,\n\t},\n\tname: 'ViewForm',\n\tprops: {\n\t\tevent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\towner: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tviewFormError: Boolean,\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tbackButton: null,\n\t\t\ticsFileSrc: null,\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tconst htmlNode = document.querySelector('html');\n\t\tconst bodyNode = document.querySelector('body');\n\n\t\tthis.backButton = Tag.render`<div class=\"calendar-sharing-view-form__back-button\">\n\t\t\t<div class=\"calendar-sharing_previous-month-arrow\"></div>\n\t\t\t<div class=\"calendar-sharing-view-form__text\">${Loc.getMessage('CALENDAR_SHARING_BACK')}</div>\n\t\t</div>`;\n\n\t\tEvent.bind(this.backButton, 'click', this.returnToDateSelector.bind(this));\n\n\t\tDom.append(this.backButton, bodyNode);\n\n\t\tif (Dom.hasClass(htmlNode, 'calendar-sharing--bg-gray'))\n\t\t{\n\t\t\tDom.removeClass(htmlNode, 'calendar-sharing--bg-gray');\n\t\t}\n\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing-html-body-center'))\n\t\t{\n\t\t\tDom.addClass(htmlNode, 'calendar-sharing-html-body-center');\n\t\t}\n\t\tif (!Dom.hasClass(bodyNode, 'calendar-sharing-html-body-center'))\n\t\t{\n\t\t\tDom.addClass(bodyNode, 'calendar-sharing-html-body-center');\n\t\t}\n\n\t\tif (this.viewFormError)\n\t\t{\n\t\t\tDom.addClass(htmlNode, 'calendar-sharing--bg-red');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(htmlNode, 'calendar-sharing--bg-green');\n\t\t}\n\t},\n\tmethods: {\n\t\tasync downloadIcsFile()\n\t\t{\n\t\t\tif (!this.icsFile)\n\t\t\t{\n\t\t\t\tconst response = await BX.ajax.runAction('calendar.api.sharingajax.getIcsFileContent', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\teventLinkHash: this.event.linkHash,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tthis.icsFile = response.data;\n\t\t\t}\n\n\t\t\tUtil.downloadIcsFile(this.icsFile, 'event');\n\t\t},\n\t\treturnToDateSelector()\n\t\t{\n\t\t\tif (this.backButton)\n\t\t\t{\n\t\t\t\tDom.remove(this.backButton);\n\t\t\t}\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:changeApplicationType', {type: 'calendar'});\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div \n\t\t\tclass=\"calendar-sharing-main__container calendar-sharing--subtract\"\n\t\t\t:class=\"{\n\t\t\t\t'calendar-sharing--success': !viewFormError,\n\t\t\t\t'calendar-sharing--error': viewFormError\n\t\t\t}\"\n\t\t>\n\t\t\t<Header>\n\t\t\t\t<template v-slot>\n\t\t\t\t\t<HeaderTitle\n\t\t\t\t\t\t:has-back-button=\"false\"\n\t\t\t\t\t\t:back-button-callback=\"returnToDateSelector\"\n\t\t\t\t\t\t:text=\"$Bitrix.Loc.getMessage('CALENDAR_SHARING_VIEW_FORM_HEADER_TITLE_ERROR')\"\n\t\t\t\t\t\tv-if=\"viewFormError\"\n\t\t\t\t\t/>\n\t\t\t\t\t<HeaderTitle\n\t\t\t\t\t\t:has-back-button=\"false\"\n\t\t\t\t\t\t:back-button-callback=\"returnToDateSelector\"\n\t\t\t\t\t\t:text=\"$Bitrix.Loc.getMessage('CALENDAR_SHARING_VIEW_FORM_HEADER_TITLE')\"\n\t\t\t\t\t\tv-else\n\t\t\t\t\t/>\n\t\t\t\t\t<StartInfo\n\t\t\t\t\t\t:event=\"this.event\"\n\t\t\t\t\t\t:show-clock-icon=\"!viewFormError\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div class=\"calendar-sharing-view-form__owner_container\">\n\t\t\t\t\t\t<div class=\"calendar-sharing-view-form__owner_icon_container ui-icon ui-icon-common-user\">\n\t\t\t\t\t\t\t<img class=\"calendar-sharing-view-form__owner_icon\" :src=\"owner.photo\" alt=\"\" v-if=\"owner.photo\">\n\t\t\t\t\t\t\t<i class=\"calendar-sharing-view-form__owner_icon\" v-else></i>\n\t\t\t\t\t\t\t<div class=\"calendar-sharing-view-form__owner_icon_status\" v-if=\"!viewFormError\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div class=\"calendar-sharing-view-form__owner_name\">\n\t\t\t\t\t\t\t\t{{ owner.name }} {{ owner.lastName }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"calendar-sharing-view-form__owner_status\" v-if=\"viewFormError\">\n\t\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_EVENT_CREATE_ERROR') }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"calendar-sharing-view-form__owner_status\" v-else>\n\t\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_EVENT_CREATE_SUCCESS') }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</Header>\n\t\t\t<div class=\"calendar-sharing-event-add-form\">\n\t\t\t\t<div class=\"calendar-sharing-event-add-form_buttons\">\n\t\t\t\t\t<button class=\"ui-btn ui-btn-success ui-btn-round\" @click=\"returnToDateSelector\" v-if=\"viewFormError\">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_RETURN_TO_CALENDAR') }}\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"ui-btn ui-btn-success ui-btn-round\" @click=\"downloadIcsFile\" v-else>\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_DOWNLOAD_ICS') }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`\n};","import {Dom} from 'main.core';\nimport { DateSelector } from './calendar/dateselector';\n\nexport const WelcomePage = {\n\tprops: {\n\t\towner: Object,\n\t},\n\tmounted()\n\t{\n\t\tthis.setPageVisualSettings();\n\t},\n\tmethods: {\n\t\tasync closeWelcomePage()\n\t\t{\n\t\t\t// await BX.ajax.runAction('calendar.api.sharingajax.saveFirstEntry');\n\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:changeApplicationType', {type: 'calendar'});\n\t\t},\n\t\tsetPageVisualSettings()\n\t\t{\n\t\t\tconst htmlNode = document.querySelector('html');\n\t\t\tconst bodyNode = document.querySelector('body');\n\n\t\t\tif (Dom.hasClass(htmlNode, 'calendar-sharing--bg-gray'))\n\t\t\t{\n\t\t\t\tDom.removeClass(htmlNode, 'calendar-sharing--bg-gray')\n\t\t\t}\n\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing--bg-blue'))\n\t\t\t{\n\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing--bg-blue')\n\t\t\t}\n\t\t\tif (!Dom.hasClass(htmlNode, 'calendar-sharing-html-body-center'))\n\t\t\t{\n\t\t\t\tDom.addClass(htmlNode, 'calendar-sharing-html-body-center');\n\t\t\t}\n\t\t\tif (!Dom.hasClass(bodyNode, 'calendar-sharing-html-body-center'))\n\t\t\t{\n\t\t\t\tDom.addClass(bodyNode, 'calendar-sharing-html-body-center');\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"calendar-sharing-welcome-page__container calendar-sharing--subtract\">\n\t\t\t<div class=\"calendar-sharing-welcome-page__photo ui-icon ui-icon-common-user\">\n\t\t\t\t<img class=\"calendar-sharing-welcome-page__photo_item\" :src=\"owner.photo\" alt=\"\" v-if=\"owner.photo\">\n\t\t\t\t<i class=\"calendar-sharing-welcome-page__photo_item\" v-else></i>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing-welcome-page_title\">\n\t\t\t\t{{ owner.name }} {{ owner.lastName }}\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing-welcome-page_subtitle\">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_WELCOME_PAGE_TEXT') }}\n\t\t\t</div>\n\t\t\t<button class=\"ui-btn ui-btn-success ui-btn-round\" @click=\"closeWelcomePage\">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('CALENDAR_SHARING_WELCOME_PAGE_NEXT') }}\n\t\t\t</button>\n\t\t</div>\n\t`\n};\n","import { DateSelector } from './calendar/dateselector';\nimport { EventSlotList } from './calendar/eventslotlist';\nimport { AddForm } from './event/addform';\nimport { ViewForm } from \"./event/viewform\";\nimport { WelcomePage } from './welcomepage';\nimport { Confetti } from 'ui.confetti';\n\nexport const Application = {\n\tprops: {\n\t\tlink: Object,\n\t\towner: Object,\n\t\tsharingUser: Object,\n\t\tcalendarSettings: Object,\n\t\tuserAccessibility: Object,\n\t\ttimezoneList: Object,\n\t\twelcomePageVisited: String,\n\t},\n\tcomponents: {\n\t\tDateSelector,\n\t\tEventSlotList,\n\t\tAddForm,\n\t\tViewForm,\n\t\tWelcomePage,\n\t},\n\tname: 'Application',\n\tdata()\n\t{\n\t\treturn {\n\t\t\ttype: '',\n\t\t\tlastEventName: '',\n\t\t\tviewFormError: false,\n\t\t\teventData: {\n\t\t\t\ttimeFrom: new Date(),\n\t\t\t\ttimeTo: new Date(),\n\t\t\t\ttimezone: this.timezoneList[Intl.DateTimeFormat().resolvedOptions().timeZone],\n\t\t\t},\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tthis.type = this.welcomePageVisited ? 'calendar' : 'welcomePage';\n\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:changeApplicationType', (event) => {\n\t\t\tthis.changeApplicationTypeHandler(event);\n\t\t});\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:changeEventData', (event) => {\n\t\t\tthis.changeEventDataHandler(event);\n\t\t});\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:onSetEventData', (event) => {\n\t\t\tthis.onSetEventDataHandler(event)\n\t\t});\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:setEventViewError', (event) => {\n\t\t\tthis.viewFormError = event.data.viewFormError;\n\t\t});\n\t\tthis.$Bitrix.eventEmitter.subscribe('calendar:sharing:updateAddFormDefaultParams', (event) => {\n\t\t\tthis.updateAddFormDefaultParams(event);\n\t\t});\n\t},\n\tmounted()\n\t{\n\t\tthis.DOM = {\n\t\t\twelcomePage: document.querySelector('.calendar-sharing-welcome-page'),\n\t\t\tcalendarContainer: document.querySelector('.calendar-sharing__calendar'),\n\t\t\tdateSelectorContainer: document.querySelector('.calendar-sharing__date-selector'),\n\t\t\taddFormElement: document.querySelector('.calendar-sharing__add-form').firstElementChild,\n\t\t};\n\t},\n\tmethods: {\n\t\tchangeApplicationTypeHandler(event)\n\t\t{\n\t\t\tconst currentType = this.type;\n\t\t\tconst newType = event.data.type;\n\n\t\t\tif (currentType === 'welcomePage' && newType === 'calendar')\n\t\t\t{\n\t\t\t\tthis.transitFromWelcomePageToCalendar();\n\t\t\t}\n\n\t\t\tif (currentType === 'calendar' && newType === 'addForm')\n\t\t\t{\n\t\t\t\tthis.transitFromCalendarToAddForm();\n\t\t\t}\n\n\t\t\tif (currentType === 'addForm' && newType === 'calendar')\n\t\t\t{\n\t\t\t\tthis.transitFromAddFormToCalendar();\n\t\t\t}\n\n\t\t\tif (currentType === 'addForm' && newType === 'viewForm')\n\t\t\t{\n\t\t\t\tthis.transitFromAddFormToViewForm();\n\t\t\t}\n\n\t\t\tif (currentType === 'viewForm' && newType === 'calendar')\n\t\t\t{\n\t\t\t\tthis.transitFromViewFormToCalendar();\n\t\t\t}\n\n\t\t\tthis.type = newType;\n\t\t},\n\t\tchangeEventDataHandler(event)\n\t\t{\n\t\t\tthis.eventData = event.data;\n\t\t},\n\t\tonSetEventDataHandler(event)\n\t\t{\n\t\t\tif (event.data.eventId)\n\t\t\t{\n\t\t\t\tthis.eventData.id = event.data.eventId;\n\t\t\t}\n\t\t\tif (event.data.eventName)\n\t\t\t{\n\t\t\t\tthis.eventData.name = event.data.eventName;\n\t\t\t}\n\t\t\tif (event.data.eventLinkId)\n\t\t\t{\n\t\t\t\tthis.eventData.linkId = event.data.eventLinkId;\n\t\t\t}\n\t\t\tif (event.data.eventLinkHash)\n\t\t\t{\n\t\t\t\tthis.eventData.linkHash = event.data.eventLinkHash;\n\t\t\t}\n\t\t\tif (event.data.eventLinkShortUrl)\n\t\t\t{\n\t\t\t\tthis.eventData.eventLinkShortUrl = event.data.eventLinkShortUrl;\n\t\t\t}\n\t\t},\n\t\tupdateAddFormDefaultParams(event)\n\t\t{\n\t\t\tthis.sharingUser.userName = event.data.userName;\n\t\t\tthis.sharingUser.personalMailbox = event.data.contactData;\n\n\t\t\tif (this.viewFormError)\n\t\t\t{\n\t\t\t\tthis.lastEventName = event.data.eventName;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.lastEventName = '';\n\t\t\t}\n\t\t},\n\t\ttransitFromWelcomePageToCalendar()\n\t\t{\n\t\t\tthis.DOM.calendarContainer.style.transform = 'scale(1.5)';\n\t\t\tthis.DOM.calendarContainer.style.filter = 'blur(1px)';\n\t\t\tthis.DOM.calendarContainer.style.opacity = 0;\n\t\t\tthis.DOM.calendarContainer.style.transition = '300ms all ease';\n\n\t\t\tthis.DOM.welcomePage.style.transition = '300ms all ease';\n\t\t\tthis.DOM.welcomePage.style.transform = 'scale(1.5)';\n\t\t\tthis.DOM.welcomePage.style.filter = 'blur(1px)';\n\t\t\tthis.DOM.welcomePage.style.opacity = 0;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.DOM.welcomePage.remove();\n\t\t\t\tthis.DOM.calendarContainer.style.display = '';\n\t\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onShowCalendar');\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.DOM.calendarContainer.style.transform = '';\n\t\t\t\t\tthis.DOM.calendarContainer.style.filter = '';\n\t\t\t\t\tthis.DOM.calendarContainer.style.opacity = '';\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.DOM.calendarContainer.style.transition = '';\n\t\t\t\t\t}, 300);\n\t\t\t\t}, 100);\n\t\t\t}, 300);\n\t\t},\n\t\ttransitFromCalendarToAddForm()\n\t\t{\n\t\t\tthis.DOM.calendarContainer.style.height = this.DOM.dateSelectorContainer.offsetHeight + 'px';\n\t\t\tnew BX.easing({\n\t\t\t\tduration: 150,\n\t\t\t\tstart: {\n\t\t\t\t\tscrollLeft: this.DOM.calendarContainer.scrollLeft,\n\t\t\t\t\theight: this.DOM.dateSelectorContainer.offsetHeight,\n\t\t\t\t},\n\t\t\t\tfinish: {\n\t\t\t\t\tscrollLeft: this.DOM.calendarContainer.scrollWidth - this.DOM.calendarContainer.offsetWidth,\n\t\t\t\t\theight: this.DOM.addFormElement.offsetHeight,\n\t\t\t\t},\n\t\t\t\ttransition: BX.easing.makeEaseOut(BX.easing.transitions.quad),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tthis.DOM.calendarContainer.scrollLeft = state.scrollLeft;\n\t\t\t\t\tthis.DOM.calendarContainer.style.height = state.height + 'px';\n\t\t\t\t},\n\t\t\t\tcomplete: () => {}\n\t\t\t}).animate();\n\t\t},\n\t\ttransitFromAddFormToCalendar()\n\t\t{\n\t\t\tthis.DOM.calendarContainer.style.height = this.DOM.addFormElement.offsetHeight + 'px';\n\t\t\tnew BX.easing({\n\t\t\t\tduration: 150,\n\t\t\t\tstart: {\n\t\t\t\t\tscrollLeft: this.DOM.calendarContainer.scrollLeft,\n\t\t\t\t\theight: this.DOM.addFormElement.offsetHeight,\n\t\t\t\t},\n\t\t\t\tfinish: {\n\t\t\t\t\tscrollLeft: 0,\n\t\t\t\t\theight: this.DOM.dateSelectorContainer.offsetHeight,\n\t\t\t\t},\n\t\t\t\ttransition: BX.easing.makeEaseOut(BX.easing.transitions.quad),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tthis.DOM.calendarContainer.scrollLeft = state.scrollLeft;\n\t\t\t\t\tthis.DOM.calendarContainer.style.height = state.height + 'px';\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.DOM.calendarContainer.style.height = '';\n\t\t\t\t}\n\t\t\t}).animate();\n\t\t},\n\t\ttransitFromAddFormToViewForm()\n\t\t{\n\t\t\tthis.DOM.calendarContainer.scrollLeft = 0;\n\t\t\tthis.DOM.calendarContainer.style.height = '';\n\t\t\tthis.DOM.calendarContainer.style.display = 'none';\n\n\t\t\tif (!this.viewFormError)\n\t\t\t{\n\t\t\t\tConfetti.fire({\n\t\t\t\t\tparticleCount: 240,\n\t\t\t\t\tspread: 70,\n\t\t\t\t\torigin: { y: 0.3, x: 0.5 },\n\t\t\t\t\tzIndex: 2,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\ttransitFromViewFormToCalendar()\n\t\t{\n\t\t\tthis.DOM.calendarContainer.style.display = '';\n\t\t\tthis.eventData.name = false;\n\t\t\tthis.$Bitrix.eventEmitter.emit('calendar:sharing:onShowCalendar');\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"calendar-sharing-welcome-page\">\n\t\t\t<WelcomePage\n\t\t\t\t:owner=\"owner\"\n\t\t\t/>\n\t\t</div>\n\t\t<div class=\"calendar-sharing__calendar\" style=\"display: none;\">\n\t\t\t<div class=\"calendar-sharing__date-selector calendar-sharing--bg-gray\">\n\t\t\t\t<DateSelector\n\t\t\t\t\t:userAccessibility=\"userAccessibility\"\n\t\t\t\t\t:calendarSettings=\"calendarSettings\"\n\t\t\t\t\t:timezoneList=\"timezoneList\"\n\t\t\t\t\t:owner=\"owner\"\n\t\t\t\t/>\n\t\t\t\t<EventSlotList\n\t\t\t\t\t:timezoneList=\"timezoneList\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"calendar-sharing__add-form\">\n\t\t\t\t<div class=\"calendar-sharing-main__container calendar-sharing__form_box\">\n\t\t\t\t\t<AddForm\n\t\t\t\t\t\t:owner=\"owner\"\n\t\t\t\t\t\t:sharingUser=\"sharingUser\"\n\t\t\t\t\t\t:event=\"eventData\"\n\t\t\t\t\t\t:last-event-name=\"lastEventName\"\n\t\t\t\t\t\t:phone-feature-enabled=\"calendarSettings.phoneFeatureEnabled\"\n\t\t\t\t\t\t:userLinkHash=\"link.hash\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"type === 'viewForm'\">\n\t\t\t<ViewForm\n\t\t\t\t:owner=\"owner\"\n\t\t\t\t:event=\"eventData\"\n\t\t\t\t:view-form-error=\"viewFormError\"\n\t\t\t/>\n\t\t\t<div \n\t\t\t\tclass=\"calendar-sharing-event-created-info\" v-if=\"!viewFormError\"\n\t\t\t\tv-html=\"$Bitrix.Loc.getMessage('CALENDAR_SHARING_EVENT_CREATED_INFO').replace('#EVENT_LINK#', eventData.eventLinkShortUrl)\"\n\t\t\t>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n","import { BitrixVue } from 'ui.vue3';\nimport { Application } from './components/application';\n\nexport class Public\n{\n\tconstructor(options = {})\n\t{\n\t\tthis.owner = options.owner;\n\t\tthis.sharingUser = options.sharingUser;\n\t\tthis.link = options.link;\n\t\tthis.calendarSettings = options.calendarSettings;\n\t\tthis.userAccessibility = options.userAccessibility;\n\t\tthis.timezoneList = options.timezoneList;\n\t\tthis.welcomePageVisited = options.welcomePageVisited;\n\t\tthis.rootNode = BX('calendar-sharing-main');\n\n\t\tthis.buildViews();\n\t}\n\n\tbuildViews()\n\t{\n\t\tthis.application = BitrixVue.createApp(Application, {\n\t\t\tlink: this.link,\n\t\t\towner: this.owner,\n\t\t\tsharingUser: this.sharingUser,\n\t\t\tcalendarSettings: this.calendarSettings,\n\t\t\tuserAccessibility: this.userAccessibility,\n\t\t\ttimezoneList: this.timezoneList,\n\t\t\twelcomePageVisited: this.welcomePageVisited,\n\t\t}).mount(this.rootNode);\n\t}\n}"],"names":["DateSelector","props","owner","Object","calendarSettings","userAccessibility","timezoneList","name","data","accessibility","eventDurability","stepSize","nowTime","Date","timezoneOffsetUtc","getTimezoneOffset","currentTimezoneOffsetUtc","selectedTimezoneId","Intl","DateTimeFormat","resolvedOptions","timeZone","currentMonthIndex","currentDayNumber","isMobileBrowser","displayedMonth","isMonthAnimating","isSlotListAnimating","months","monthsSlots","monthsSlotsMap","loc","weekdays","Util","getWeekdaysLoc","config","weekHolidays","weekStart","created","setConfig","setInterval","incrementTime","slots","calculateDateTimeSlots","getFullYear","getMonth","push","slotsMap","getDateTimeSlotsMap","arrayKey","month","createMonth","$Bitrix","eventEmitter","subscribe","updateEventSlotsList","openEventSlotList","getDayByNumber","setPageVisualSettings","setTimeout","resizeSelect","mounted","selectFirstAvailableDay","setMonthHeight","DOM","monthsContainer","document","querySelector","updated","length","scrollLeft","scrollWidth","offsetWidth","animateToPreviousMonth","animateToNextMonth","methods","resizingSelectContainer","resizingSelect","helperElement","helperOption","selectOption","innerHTML","innerText","defaultWidth","style","setProperty","addEventListener","initResize","event","target","resize","width","params","map","weekDay","getIndByWeekDay","yearHolidays","splice","hourOffset","getTimeZoneOffset","workTimeStart","parseFloat","workTimeStartHours","workTimeStartMinutes","workTimeEnd","workTimeEndHours","workTimeEndMinutes","getTimezonePrefix","timezoneOffset","offset","date","getTime","format","getTimeFormatShort","onTimezoneSelect","selectedTimezone","reCreateMonth","day","emit","currentYear","year","currentMonth","loadMonthAccessibility","number","visibleDays","days","flat","filter","d","currentTimezoneOffset","getMonthName","getMonthDays","monthSlots","getFirstMonthDay","firstDayIndex","getDay","currentMonthDate","daysCount","getDate","accessibilityArrayKey","w","weekDays","dayIndex","unavailable","weekend","newDay","isWeekend","isHoliday","hasFreeWindows","a","available","dayMonthKey","slice","includes","undefined","createNextMonth","nextMonthIndex","nextYear","Math","floor","nextMonth","firstMonthDay","lastMonthDay","response","BX","ajax","runAction","userId","id","timestampFrom","timestampTo","handleNextMonthArrowClick","startNextMonthAnimation","handlePreviousMonthArrowClick","startPreviousMonthAnimation","animateMonthSwitch","direction","currentMonthElement","scrollTo","heightTo","children","nextMonthElement","getMonthHeight","previousMonthElement","easing","duration","start","height","finish","transition","makeEaseOut","transitions","quad","step","state","complete","selectMonthDay","animate","result","nowTimestamp","browserSelectedTimezoneOffset","getDateInSelectedTimezoneFromTimestampUTC","currentDate","from","to","dayAccessibility","doIntervalsIntersect","parseInt","timestampFromUTC","timestampToUTC","slotStart","slotEnd","slotAccessibility","acc","timeFrom","timeTo","setTime","from1","to1","from2","to2","startsInside","endsInside","startsBeforeEndsAfter","timestamp","getTimezoneDateFromTimestampUTC","slotList","forEach","slot","currentSlot","dateIndex","currentMonthDays","dayToSelect","find","todayDay","availableDay","monthElement","monthIndex","weekRows","weekHeight","offsetHeight","htmlNode","bodyNode","Dom","hasClass","addClass","removeClass","template","EventSlotItem","computed","timeInput","formatTimeInterval","item","handleSetEventButtonClick","$emit","Timer","EventSlotList","components","itemList","isItemSelected","currentTimezoneName","selectCurrentTimezone","updateTimezoneParams","slotContainer","key","timezone","entries","getData","type","Header","StartInfo","required","showClockIcon","Boolean","today","Loc","getMessage","tomorrow","getEventWeekDayShort","toLowerCase","getEventMonthDay","getEventDate","dayPhrase","dateFormat","getDayMonthFormat","eventDay","getEventTime","getEventTimezone","getFormattedTimezone","timezone_id","getEventName","util","htmlspecialchars","HeaderTitle","hasBackButton","default","backButtonCallback","Function","text","String","SharingLoader","AddForm","phoneFeatureEnabled","sharingUser","lastEventName","userLinkHash","eventName","authorName","userName","contactData","personalMailbox","personalPhone","isEmptyContactName","contactDataError","isEmptyContactData","saveButton","disabled","validated","loadingProcess","inputContact","getElementById","calendarContainer","addFormElement","firstElementChild","handleSaveEventButton","fillEventNameIfEmpty","clearContactDataError","clearContactNameError","validateData","disableSaveButton","isSuccessful","saveEvent","enableSaveButton","viewFormError","validatePhone","validateEmail","ownerCreated","ownerId","userContact","dateFrom","parseDate","dateTo","e","errors","eventId","eventLinkId","eventLinkHash","eventLinkShortUrl","dateInFormat","getDateFormat","timeInFormat","getTimeFormat","returnToDateSelector","isValidated","phone","replace","match","getContactDataPlaceholder","messageCode","onPhoneInput","isPhoneTypeInput","textBeforeCursor","getTextBeforeCursor","formatPhone","value","setCursorToFormattedPosition","input","selectionStart","firstPart","getTextEscapedForRegex","lastCharacter","formattedPosition","indexOf","setSelectionRange","onPhoneInputKeyDown","isDigit","isControlKey","isAnyModifierKeyPressed","preventDefault","test","hasPlus","phoneDb","split","code","mask","findMask","repeat","i","r","sort","b","ViewForm","backButton","icsFileSrc","Tag","render","Event","bind","append","downloadIcsFile","icsFile","linkHash","remove","WelcomePage","closeWelcomePage","Application","link","welcomePageVisited","eventData","changeApplicationTypeHandler","changeEventDataHandler","onSetEventDataHandler","updateAddFormDefaultParams","welcomePage","dateSelectorContainer","currentType","newType","transitFromWelcomePageToCalendar","transitFromCalendarToAddForm","transitFromAddFormToCalendar","transitFromAddFormToViewForm","transitFromViewFormToCalendar","linkId","transform","opacity","display","Confetti","fire","particleCount","spread","origin","y","x","zIndex","Public","constructor","options","rootNode","buildViews","application","BitrixVue","createApp","mount"],"mappings":";;;;;CAKO,MAAMA,YAAY,GAAG;GAC3BC,KAAK,EAAE;KACNC,KAAK,EAAEC,MADD;KAENC,gBAAgB,EAAED,MAFZ;KAGNE,iBAAiB,EAAEF,MAHb;KAING,YAAY,EAAEH;IALY;GAO3BI,IAAI,EAAE,cAPqB;;GAQ3BC,IAAI,GACJ;KACC,OAAO;OACNC,aAAa,EAAE,KAAKJ,iBADd;OAENK,eAAe,EAAE,OAFX;OAGNC,QAAQ,EAAE,OAHJ;OAINC,OAAO,EAAE,IAAIC,IAAJ,EAJH;OAKNC,iBAAiB,EAAE,IAAID,IAAJ,GAAWE,iBAAX,EALb;OAMNC,wBAAwB,EAAE,IAAIH,IAAJ,GAAWE,iBAAX,EANpB;OAONE,kBAAkB,EAAEC,IAAI,CAACC,cAAL,GAAsBC,eAAtB,GAAwCC,QAPtD;OAQNC,iBAAiB,EAAE,CARb;OASNC,gBAAgB,EAAE,CATZ;OAUNC,eAAe,EAAE,KAVX;OAWNC,cAAc,EAAE,CAAC,CAAD,CAXV;OAYNC,gBAAgB,EAAE,KAZZ;OAaNC,mBAAmB,EAAE,KAbf;OAcNC,MAAM,EAAE,EAdF;OAeNC,WAAW,EAAE,EAfP;OAgBNC,cAAc,EAAE,EAhBV;OAiBNC,GAAG,EAAE;SACJC,QAAQ,EAAEC,kBAAI,CAACC,cAAL;QAlBL;OAqBNC,MAAM,EAAE;SACPC,YAAY,EAAE,CAAC,CAAD,EAAI,CAAJ,CADP;SAEPC,SAAS,EAAE;;MAvBb;IAV0B;;GAqC3BC,OAAO,GACP;KACC,KAAKC,SAAL,CAAe,KAAKnC,gBAApB;KACA,KAAKoB,eAAL,GAAuBS,kBAAI,CAACT,eAAL,EAAvB;KACAgB,WAAW,CAAC,KAAKC,aAAN,EAAqB,KAArB,CAAX;KAEA,MAAMC,KAAK,GAAG,KAAKC,sBAAL,CAA4B,KAAK/B,OAAL,CAAagC,WAAb,EAA5B,EAAwD,KAAKhC,OAAL,CAAaiC,QAAb,EAAxD,CAAd;KACA,KAAKhB,WAAL,CAAiBiB,IAAjB,CAAsBJ,KAAtB;KACA,MAAMK,QAAQ,GAAG,KAAKC,mBAAL,CAAyBN,KAAzB,CAAjB;KACA,MAAMO,QAAQ,GAAI,KAAKrC,OAAL,CAAaiC,QAAb,KAA0B,CAA3B,GAAgC,GAAhC,GAAsC,KAAKjC,OAAL,CAAagC,WAAb,EAAvD;KACA,KAAKd,cAAL,CAAoBmB,QAApB,IAAgCF,QAAhC;KAEA,MAAMG,KAAK,GAAG,KAAKC,WAAL,CAAiB,KAAKvC,OAAL,CAAagC,WAAb,EAAjB,EAA6C,KAAKhC,OAAL,CAAaiC,QAAb,EAA7C,CAAd;KACA,KAAKjB,MAAL,CAAYkB,IAAZ,CAAiBI,KAAjB;KAEA,KAAKE,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,6BAApC,EAAmE,YAAY;OAC9E,MAAM,KAAKC,oBAAL,EAAN;OACA,KAAKC,iBAAL,CAAuB,KAAKC,cAAL,CAAoB,KAAKlC,gBAAzB,CAAvB;MAFD;KAIA,KAAK6B,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,iCAApC,EAAuE,MAAM;OAC5E,KAAKI,qBAAL;OACAC,UAAU,CAAC,MAAM;SAChB,KAAKC,YAAL;QADS,EAEP,GAFO,CAAV;MAFD;KAMA,KAAKF,qBAAL;IA9D0B;;GAgE3BG,OAAO,GACP;KACC,KAAKD,YAAL;KACA,KAAKE,uBAAL;KACA,KAAKC,cAAL;KAEA,KAAKC,GAAL,GAAW;OACVC,eAAe,EAAEC,QAAQ,CAACC,aAAT,CAAuB,qCAAvB;MADlB;IAtE0B;;GA0E3BC,OAAO,GACP;KACC,IAAI,KAAK3C,cAAL,CAAoB4C,MAApB,KAA+B,CAAnC,EACA;OACC;;;KAGD,IAAI,KAAK5C,cAAL,CAAoB,CAApB,MAA2B,CAAC,CAAhC,EACA;OACC,KAAKuC,GAAL,CAASC,eAAT,CAAyBK,UAAzB,GAAsC,KAAKN,GAAL,CAASC,eAAT,CAAyBM,WAAzB,GAAuC,KAAKP,GAAL,CAASC,eAAT,CAAyBO,WAAtG;OACA,KAAKC,sBAAL;;;KAED,IAAI,KAAKhD,cAAL,CAAoB,CAApB,MAA2B,CAA/B,EACA;OACC,KAAKiD,kBAAL;;IAxFyB;;GA2F3BC,OAAO,EAAE;KACRf,YAAY,GACZ;OACC,MAAMgB,uBAAuB,GAAGV,QAAQ,CAACC,aAAT,CAAuB,mDAAvB,CAAhC;OACA,MAAMU,cAAc,GAAGX,QAAQ,CAACC,aAAT,CAAuB,+CAAvB,CAAvB;OACA,MAAMW,aAAa,GAAGZ,QAAQ,CAACC,aAAT,CAAuB,8DAAvB,CAAtB;OACA,MAAMY,YAAY,GAAGD,aAAa,CAACX,aAAd,CAA4B,QAA5B,CAArB;OACA,MAAMa,YAAY,GAAGd,QAAQ,CAACC,aAAT,CAAuB,8DAAvB,CAArB;;OAEA,IAAIU,cAAJ,EACA;SACC,IAAIG,YAAY,KAAK,IAArB,EACA;WACCD,YAAY,CAACE,SAAb,GAAyBD,YAAY,CAACE,SAAtC;WACA,IAAIC,YAAY,GAAGL,aAAa,CAACN,WAAjC;WACAI,uBAAuB,CAACQ,KAAxB,CAA8BC,WAA9B,CAA0C,gBAA1C,EAA6D,GAAEF,YAAa,IAA5E;;;SAGDN,cAAc,CAACS,gBAAf,CAAgC,QAAhC,EAA0CC,UAA1C;;;OAGD,SAASA,UAAT,CAAoBC,KAApB,EAA2B;SAC1BT,YAAY,CAACE,SAAb,GAAyBO,KAAK,CAACC,MAAN,CAAatB,aAAb,CAA2B,gBAA3B,EAA6Ce,SAAtE;SACAQ,MAAM,CAACZ,aAAa,CAACN,WAAf,CAAN;;;OAGD,SAASkB,MAAT,CAAgBC,KAAhB,EAAuB;SACtBf,uBAAuB,CAACQ,KAAxB,CAA8BC,WAA9B,CAA0C,gBAA1C,EAA6D,GAAEM,KAAM,IAArE;;;OAGD,KAAK5B,cAAL;MA9BO;;KAgCRxB,SAAS,CAACqD,MAAD,EACT;OACC,IAAIA,MAAM,CAACxD,YAAX,EACA;SACC,KAAKD,MAAL,CAAYC,YAAZ,GAA2BwD,MAAM,CAACxD,YAAP,CAAoByD,GAApB,CAAwBC,OAAO,IAAI7D,kBAAI,CAAC8D,eAAL,CAAqBD,OAArB,CAAnC,CAA3B;;;OAED,IAAIF,MAAM,CAACI,YAAX,EACA;SACC,KAAK7D,MAAL,CAAY6D,YAAZ,GAA2BJ,MAAM,CAACI,YAAlC;;;OAED,IAAIJ,MAAM,CAACvD,SAAX,EACA;SACC,KAAKF,MAAL,CAAYE,SAAZ,GAAwBJ,kBAAI,CAAC8D,eAAL,CAAqBH,MAAM,CAACvD,SAA5B,CAAxB;SACA,KAAKN,GAAL,CAASC,QAAT,CAAkBc,IAAlB,CAAuB,GAAG,KAAKf,GAAL,CAASC,QAAT,CAAkBiE,MAAlB,CAAyB,CAAzB,EAA4B,KAAK9D,MAAL,CAAYE,SAAxC,CAA1B;;;OAGD,MAAM6D,UAAU,GAAGjE,kBAAI,CAACkE,iBAAL,CAAuB,KAAKlF,kBAA5B,IAAkD,EAArE;;OACA,IAAI2E,MAAM,CAACQ,aAAX,EACA;SACC,MAAMA,aAAa,GAAGC,UAAU,CAACT,MAAM,CAACQ,aAAR,CAAV,GAAmCF,UAAzD;SACA,KAAK/D,MAAL,CAAYmE,kBAAZ,GAAiCF,aAAa,GAAGA,aAAa,GAAG,CAAjE;SACA,KAAKjE,MAAL,CAAYoE,oBAAZ,GAAoCH,aAAa,GAAG,CAAjB,GAAsB,EAAzD;;;OAED,IAAIR,MAAM,CAACY,WAAX,EACA;SACC,MAAMA,WAAW,GAAGH,UAAU,CAACT,MAAM,CAACY,WAAR,CAAV,GAAiCN,UAArD;SACA,KAAK/D,MAAL,CAAYsE,gBAAZ,GAA+BD,WAAW,GAAGA,WAAW,GAAG,CAA3D;SACA,KAAKrE,MAAL,CAAYuE,kBAAZ,GAAkCF,WAAW,GAAG,CAAf,GAAoB,EAArD;;MA3DM;;KA8DRG,iBAAiB,CAACC,cAAD,EACjB;OACC,MAAMC,MAAM,GAAGD,cAAc,GAAG,IAAjB,GAAwB,KAAK9F,iBAAL,GAA0B,CAAC,KAAlE;OACA,MAAMgG,IAAI,GAAG,IAAIjG,IAAJ,CAAS,KAAKD,OAAL,CAAamG,OAAb,KAAyBF,MAAlC,CAAb;OAEA,OAAO1F,wBAAc,CAAC6F,MAAf,CAAsB/E,kBAAI,CAACgF,kBAAL,EAAtB,EAAiDH,IAAI,CAACC,OAAL,KAAiB,IAAlE,CAAP;MAnEO;;KAqERtE,aAAa,GACb;OACC,KAAK7B,OAAL,GAAe,IAAIC,IAAJ,EAAf;MAvEO;;KAyERqG,gBAAgB,GAChB;OACC,MAAMC,gBAAgB,GAAG,KAAK7G,YAAL,CAAkB,KAAKW,kBAAvB,CAAzB;OACA,KAAKD,wBAAL,GAAgC,EAAGmG,gBAAgB,CAACN,MAAjB,GAA0B,EAA7B,CAAhC;OAEA,KAAKO,aAAL;;OAEA,IAAI,KAAK7F,gBAAT,EACA;SACC,MAAM8F,GAAG,GAAG,KAAK5D,cAAL,CAAoB,KAAKlC,gBAAzB,CAAZ;SACA,KAAKiC,iBAAL,CAAuB6D,GAAvB;;;OAGD,KAAKjE,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,mCAA/B,EAAoE;SAAEH;QAAtE;MAtFO;;KAwFR,MAAM5D,oBAAN,GACA;OACC,MAAML,KAAK,GAAG,KAAKtB,MAAL,CAAY,KAAKN,iBAAjB,CAAd;OACA,MAAMiG,WAAW,GAAGrE,KAAK,CAACsE,IAA1B;OACA,MAAMC,YAAY,GAAGvE,KAAK,CAACA,KAAN,GAAc,CAAnC;OACA,MAAMD,QAAQ,GAAGwE,YAAY,GAAG,GAAf,GAAqBF,WAAtC;OAEA,KAAK9G,aAAL,CAAmBwC,QAAnB,IAA+B,MAAM,KAAKyE,sBAAL,CAA4BH,WAA5B,EAAyCE,YAAzC,CAArC;OAEA,KAAK5F,WAAL,CAAiB,KAAKP,iBAAtB,IAA2C,KAAKqB,sBAAL,CAA4B4E,WAA5B,EAAyCE,YAAY,GAAG,CAAxD,CAA3C;OAEA,KAAKL,aAAL;MAnGO;;KAqGR3D,cAAc,CAACkE,MAAD,EACd;OACC,MAAMF,YAAY,GAAG,KAAK7F,MAAL,CAAY,KAAKN,iBAAjB,CAArB;OACA,MAAMsG,WAAW,GAAGH,YAAY,CAACI,IAAb,CAAkBC,IAAlB,GAAyBC,MAAzB,CAAgCC,CAAC,IAAIA,CAAC,CAACX,GAAF,GAAQ,CAA7C,CAApB;OACA,OAAOO,WAAW,CAACD,MAAM,GAAG,CAAV,CAAlB;MAzGO;;KA2GRxE,WAAW,CAACqE,IAAD,EAAOtE,KAAP,EACX;OACC,OAAO;SACNsE,IAAI,EAAEA,IADA;SAENtE,KAAK,EAAEA,KAFD;SAGN+E,qBAAqB,EAAE,KAAKjH,wBAHtB;SAINT,IAAI,EAAE,KAAK2H,YAAL,CAAkBhF,KAAlB,CAJA;SAKN2E,IAAI,EAAE,KAAKM,YAAL,CAAkBX,IAAlB,EAAwBtE,KAAxB;QALP;MA7GO;;KAqHRkE,aAAa,GACb;OACC,MAAMI,IAAI,GAAG,KAAK5F,MAAL,CAAY,KAAKN,iBAAjB,EAAoCkG,IAAjD;OACA,MAAMtE,KAAK,GAAG,KAAKtB,MAAL,CAAY,KAAKN,iBAAjB,EAAoC4B,KAAlD;OAEA,MAAMkF,UAAU,GAAG,KAAKvG,WAAL,CAAiB,KAAKP,iBAAtB,CAAnB;OACA,MAAM2B,QAAQ,GAAIC,KAAK,GAAG,CAAT,GAAc,GAAd,GAAoBsE,IAArC;OACA,KAAK1F,cAAL,CAAoBmB,QAApB,IAAgC,KAAKD,mBAAL,CAAyBoF,UAAzB,CAAhC;OAEA,KAAKxG,MAAL,CAAY,KAAKN,iBAAjB,IAAsC,KAAK6B,WAAL,CAAiBqE,IAAjB,EAAuBtE,KAAvB,CAAtC;MA9HO;;KAgIRmF,gBAAgB,CAACb,IAAD,EAAOtE,KAAP,EAChB;OACC,MAAMoF,aAAa,GAAG,IAAIzH,IAAJ,CAAS2G,IAAT,EAAetE,KAAf,EAAsB,CAAtB,EAAyBqF,MAAzB,EAAtB;OAEA,OAAOD,aAAa,KAAK,CAAlB,GAAsB,CAAtB,GAA0BA,aAAjC;MApIO;;KAsIRJ,YAAY,CAAChF,KAAD,EACZ;OACC,MAAM4D,IAAI,GAAG,IAAIjG,IAAJ,EAAb;OACA,MAAM2H,gBAAgB,GAAG,IAAI3H,IAAJ,CAASiG,IAAI,CAAClE,WAAL,EAAT,EAA6BM,KAA7B,EAAoC,CAApC,CAAzB;OAEA,OAAO/B,wBAAc,CAAC6F,MAAf,CAAsB,GAAtB,EAA2BwB,gBAAgB,CAACzB,OAAjB,KAA6B,IAAxD,CAAP;MA3IO;;KA6IRoB,YAAY,CAACX,IAAD,EAAOtE,KAAP,EACZ;OACC,MAAM2E,IAAI,GAAG,EAAb;OACA,MAAMY,SAAS,GAAG,IAAI5H,IAAJ,CAAS2G,IAAT,EAAetE,KAAK,GAAG,CAAvB,EAA0B,CAA1B,EAA6BwF,OAA7B,EAAlB;OACA,MAAMJ,aAAa,GAAG,KAAKD,gBAAL,CAAsBb,IAAtB,EAA4BtE,KAA5B,CAAtB;OACA,MAAMyF,qBAAqB,GAAIzF,KAAK,GAAG,CAAT,GAAc,GAAd,GAAoBsE,IAAlD;;OAEA,KAAK,IAAIoB,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EACA;SACC,MAAMC,QAAQ,GAAG,EAAjB;;SACA,KAAK,IAAIb,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EACA;WACC,MAAMc,QAAQ,GAAGd,CAAC,GAAG,KAAK7F,MAAL,CAAYE,SAAhB,GAA4B,CAACuG,CAAC,GAAG,CAAL,IAAU,CAAtC,GAA0CN,aAA3D;;WAEA,IAAIQ,QAAQ,IAAI,CAAhB,EACA;aACCD,QAAQ,CAAC/F,IAAT,CAAc;eACbuE,GAAG,EAAE,CAAC,CADO;eAEb0B,WAAW,EAAE,KAFA;eAGbC,OAAO,EAAE;cAHV;YAFD,MAQK,IAAIF,QAAQ,GAAGL,SAAf,EACL;aACCI,QAAQ,CAAC/F,IAAT,CAAc;eACbuE,GAAG,EAAE,CADQ;eAEb0B,WAAW,EAAE,KAFA;eAGbC,OAAO,EAAE;cAHV;YAFI,MASL;aAAA;;aACC,MAAMC,MAAM,GAAG,IAAIpI,IAAJ,CAAS2G,IAAT,EAAetE,KAAf,EAAsB4F,QAAtB,CAAf;aACA,MAAMpG,KAAK,4BAAG,KAAKZ,cAAL,CAAoB6G,qBAApB,EAA2CM,MAAM,CAACP,OAAP,EAA3C,CAAH,oCAAmE,EAA9E;aACA,MAAMK,WAAW,GAAGE,MAAM,GAAG,KAAKrI,OAAd,IAAyBqI,MAAM,CAACP,OAAP,KAAmB,KAAK9H,OAAL,CAAa8H,OAAb,EAAhE;aACA,MAAMQ,SAAS,GAAG,KAAKC,SAAL,CAAeF,MAAf,CAAlB;aACA,MAAMG,cAAc,GAAG1G,KAAK,CAACqF,MAAN,CAAasB,CAAC,IAAIA,CAAC,CAACC,SAApB,EAA+BjF,MAA/B,GAAwC,CAA/D;aAEAwE,QAAQ,CAAC/F,IAAT,CAAc;eACbJ,KAAK,EAAEA,KADM;eAEb2E,GAAG,EAAEyB,QAFQ;eAGbC,WAAW,EAAEA,WAHA;eAIbG,SAAS,EAAEA,SAJE;eAKbE,cAAc,EAAEA;cALjB;;;;SAUF,IAAIR,CAAC,KAAK,CAAN,IAAWC,QAAQ,CAAC,CAAD,CAAR,CAAYxB,GAAZ,KAAoB,CAAC,CAApC,EACA;WACC;;;SAGDQ,IAAI,CAAC/E,IAAL,CAAU+F,QAAV;;;OAGD,OAAOhB,IAAP;MArMO;;KAuMRsB,SAAS,CAAC9B,GAAD,EACT;OACC,MAAMkC,WAAW,GAAGlC,GAAG,CAACqB,OAAJ,KAAgB,GAAhB,GAAsB,CAAC,OAAOrB,GAAG,CAACxE,QAAJ,KAAiB,CAAxB,CAAD,EAA6B2G,KAA7B,CAAmC,CAAC,CAApC,CAA1C;OAEA,OAAQ,KAAKrH,MAAL,CAAYC,YAAZ,CAAyBqH,QAAzB,CAAkCpC,GAAG,CAACkB,MAAJ,EAAlC,KAAmD,KAAKpG,MAAL,CAAY6D,YAAZ,CAAyBuD,WAAzB,MAA0CG,SAArG;MA3MO;;KA6MR,MAAMC,eAAN,GACA;OACC,MAAMlC,YAAY,GAAG,KAAK7F,MAAL,CAAY,KAAKN,iBAAjB,CAArB;OACA,MAAMiG,WAAW,GAAGE,YAAY,CAACD,IAAjC;OACA,MAAMlG,iBAAiB,GAAGmG,YAAY,CAACvE,KAAvC;OAEA,MAAM0G,cAAc,GAAG,CAACtI,iBAAiB,GAAG,CAArB,IAA0B,EAAjD;OACA,MAAMuI,QAAQ,GAAGtC,WAAW,GAAGuC,IAAI,CAACC,KAAL,CAAW,CAACzI,iBAAiB,GAAG,CAArB,IAA0B,EAArC,CAA/B;OACA,MAAM0I,SAAS,GAAGJ,cAAc,GAAG,CAAnC;OAEA,MAAM3G,QAAQ,GAAG+G,SAAS,GAAG,GAAZ,GAAkBH,QAAnC;OAEA,KAAKpJ,aAAL,CAAmBwC,QAAnB,IAA+B,MAAM,KAAKyE,sBAAL,CAA4BmC,QAA5B,EAAsCG,SAAtC,CAArC;OAEA,MAAMtH,KAAK,GAAG,KAAKC,sBAAL,CAA4BkH,QAA5B,EAAsCD,cAAtC,CAAd;OACA,KAAK/H,WAAL,CAAiBiB,IAAjB,CAAsBJ,KAAtB;OAEA,KAAKZ,cAAL,CAAoBmB,QAApB,IAAgC,KAAKD,mBAAL,CAAyBN,KAAzB,CAAhC;OAEA,MAAMQ,KAAK,GAAG,KAAKC,WAAL,CAAiB0G,QAAjB,EAA2BD,cAA3B,CAAd;OACA,KAAKhI,MAAL,CAAYkB,IAAZ,CAAiBI,KAAjB;MAjOO;;KAmOR,MAAMwE,sBAAN,CAA6BF,IAA7B,EAAmCtE,KAAnC,EACA;OACC,MAAM+G,aAAa,GAAG,IAAIpJ,IAAJ,CAAS2G,IAAT,EAAetE,KAAK,GAAG,CAAvB,EAA0B,CAA1B,CAAtB;OACA,MAAMgH,YAAY,GAAG,IAAIrJ,IAAJ,CAAS2G,IAAT,EAAetE,KAAf,EAAsB,CAAtB,EAAyB,EAAzB,EAA6B,EAA7B,CAArB;OAEA,MAAMiH,QAAQ,GAAG,MAAMC,EAAE,CAACC,IAAH,CAAQC,SAAR,CAAkB,+CAAlB,EAAmE;SACzF9J,IAAI,EAAE;WACL+J,MAAM,EAAE,KAAKrK,KAAL,CAAWsK,EADd;WAELC,aAAa,EAAER,aAAa,CAAClD,OAAd,EAFV;WAGL2D,WAAW,EAAER,YAAY,CAACnD,OAAb;;QAJQ,CAAvB;OAQA,OAAOoD,QAAQ,CAAC3J,IAAhB;MAhPO;;KAkPR,MAAMmK,yBAAN,GACA;OACC,IAAI,KAAKjJ,gBAAT,EACA;SACC;;;OAGD,KAAKA,gBAAL,GAAwB,IAAxB;OACA,KAAK0B,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,uCAA/B;;OAEA,IAAI,KAAKhG,iBAAL,KAA2B,KAAKM,MAAL,CAAYyC,MAAZ,GAAqB,CAApD,EACA;SACC,MAAM,KAAKsF,eAAL,EAAN;;;OAGD,KAAKiB,uBAAL;MAjQO;;KAmQRC,6BAA6B,GAC7B;OACC,IAAI,KAAKnJ,gBAAL,IAAyB,KAAKJ,iBAAL,KAA2B,CAAxD,EACA;SACC;;;OAGD,KAAKI,gBAAL,GAAwB,IAAxB;OACA,KAAK0B,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,uCAA/B;OAEA,KAAKwD,2BAAL;MA7QO;;KA+QRF,uBAAuB,GACvB;OACC,KAAKnJ,cAAL,GAAsB,CAAC,CAAD,EAAI,CAAJ,CAAtB;MAjRO;;KAmRRqJ,2BAA2B,GAC3B;OACC,KAAKrJ,cAAL,GAAsB,CAAC,CAAC,CAAF,EAAK,CAAL,CAAtB;MArRO;;KAuRRiD,kBAAkB,GAClB;OACC,KAAKqG,kBAAL,CAAwB,MAAxB;MAzRO;;KA2RRtG,sBAAsB,GACtB;OACC,KAAKsG,kBAAL,CAAwB,UAAxB;MA7RO;;KA+RRA,kBAAkB,CAACC,SAAD,EAClB;OACC,IAAIC,mBAAJ,EAAyBC,QAAzB,EAAmCC,QAAnC;;OAEA,IAAIH,SAAS,KAAK,MAAlB,EACA;SACCC,mBAAmB,GAAG,KAAKjH,GAAL,CAASC,eAAT,CAAyBmH,QAAzB,CAAkC,CAAlC,CAAtB;SACA,MAAMC,gBAAgB,GAAG,KAAKrH,GAAL,CAASC,eAAT,CAAyBmH,QAAzB,CAAkC,CAAlC,CAAzB;SAEAF,QAAQ,GAAG,KAAKlH,GAAL,CAASC,eAAT,CAAyBM,WAAzB,GAAuC,KAAKP,GAAL,CAASC,eAAT,CAAyBO,WAA3E;SACA2G,QAAQ,GAAG,KAAKG,cAAL,CAAoBD,gBAApB,EAAsC,KAAK/J,iBAAL,GAAyB,CAA/D,CAAX;;;OAGD,IAAI0J,SAAS,KAAK,UAAlB,EACA;SACC,MAAMO,oBAAoB,GAAG,KAAKvH,GAAL,CAASC,eAAT,CAAyBmH,QAAzB,CAAkC,CAAlC,CAA7B;SACAH,mBAAmB,GAAG,KAAKjH,GAAL,CAASC,eAAT,CAAyBmH,QAAzB,CAAkC,CAAlC,CAAtB;SAEAF,QAAQ,GAAG,CAAX;SACAC,QAAQ,GAAG,KAAKG,cAAL,CAAoBC,oBAApB,EAA0C,KAAKjK,iBAAL,GAAyB,CAAnE,CAAX;;;OAGD,IAAI8I,EAAE,CAACoB,MAAP,CAAc;SACbC,QAAQ,EAAE,GADG;SAEbC,KAAK,EAAE;WACNpH,UAAU,EAAE,KAAKN,GAAL,CAASC,eAAT,CAAyBK,UAD/B;WAENqH,MAAM,EAAE,KAAKL,cAAL,CAAoBL,mBAApB,EAAyC,KAAK3J,iBAA9C;UAJI;SAMbsK,MAAM,EAAE;WACPtH,UAAU,EAAE4G,QADL;WAEPS,MAAM,EAAER;UARI;SAUbU,UAAU,EAAEzB,EAAE,CAACoB,MAAH,CAAUM,WAAV,CAAsB1B,EAAE,CAACoB,MAAH,CAAUO,WAAV,CAAsBC,IAA5C,CAVC;SAWbC,IAAI,EAAGC,KAAD,IAAW;WAChB,KAAKlI,GAAL,CAASC,eAAT,CAAyBK,UAAzB,GAAsC4H,KAAK,CAAC5H,UAA5C;WACA,KAAKN,GAAL,CAASC,eAAT,CAAyBmB,KAAzB,CAA+BuG,MAA/B,GAAwCO,KAAK,CAACP,MAAN,GAAe,IAAvD;UAbY;SAebQ,QAAQ,EAAE,MAAM;WACf,IAAInB,SAAS,KAAK,MAAd,IAAwB,KAAK1J,iBAAL,GAAyB,KAAKM,MAAL,CAAYyC,MAAZ,GAAqB,CAA1E,EACA;aACC,KAAK/C,iBAAL;;;WAGD,IAAI0J,SAAS,KAAK,UAAd,IAA4B,KAAK1J,iBAAL,GAAyB,CAAzD,EACA;aACC,KAAKA,iBAAL;;;WAGD,IAAI,KAAKM,MAAL,CAAY,KAAKN,iBAAjB,EAAoC2G,qBAApC,KAA8D,KAAKjH,wBAAvE,EACA;aACC,KAAKoG,aAAL;;;WAGD,KAAKgF,cAAL;WAEA,KAAK1K,gBAAL,GAAwB,KAAxB;WACA,KAAKD,cAAL,GAAsB,CAAC,CAAD,CAAtB;;QAlCF,EAoCG4K,OApCH;MArTO;;KA2VR7I,iBAAiB,CAAC6D,GAAD,EACjB;OACC,KAAK9F,gBAAL,GAAwB8F,GAAG,CAACA,GAA5B;OACA,MAAMiF,MAAM,GAAG;SACd5J,KAAK,EAAE2E,GAAG,CAAC3E,KADG;SAEd2E,GAAG,EAAEA,GAAG,CAACA,GAFK;SAGdnE,KAAK,EAAE,KAAKtB,MAAL,CAAY,KAAKN,iBAAjB,EAAoC4B,KAH7B;SAIdsE,IAAI,EAAE,KAAK5F,MAAL,CAAY,KAAKN,iBAAjB,EAAoCkG;QAJ3C;OAOA,KAAKpE,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,sCAA/B,EAAuEgF,MAAvE;MArWO;;KAuWR3J,sBAAsB,CAAC6E,IAAD,EAAOtE,KAAP,EACtB;OACC,MAAMoJ,MAAM,GAAG,EAAf;OACA,MAAM7D,SAAS,GAAG,IAAI5H,IAAJ,CAAS2G,IAAT,EAAetE,KAAK,GAAG,CAAvB,EAA0B,CAA1B,EAA6BwF,OAA7B,EAAlB;OACA,MAAMC,qBAAqB,GAAIzF,KAAK,GAAG,CAAT,GAAc,GAAd,GAAoBsE,IAAlD;OACA,MAAM+E,YAAY,GAAG,KAAK3L,OAAL,CAAamG,OAAb,EAArB;OACA,MAAMyF,6BAA6B,GAAG,CAACvK,kBAAI,CAACkE,iBAAL,CAAuB,KAAKlF,kBAA5B,IAAkD,KAAKL,OAAL,CAAaG,iBAAb,EAAnD,IAAuF,KAA7H;OACA,MAAM8F,MAAM,GAAG,KAAK4F,yCAAL,CAA+CF,YAA/C,IAA+DA,YAA9E;;OAEA,KAAK,IAAIzD,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,IAAIL,SAAnC,EAA8CK,QAAQ,EAAtD,EACA;SACC,MAAM4D,WAAW,GAAG,IAAI7L,IAAJ,CAAS2G,IAAT,EAAetE,KAAf,EAAsB4F,QAAtB,CAApB;SAEA,MAAM6D,IAAI,GAAG,IAAI9L,IAAJ,CAAS2G,IAAT,EAAetE,KAAf,EAAsB4F,QAAtB,EAAgC,KAAK3G,MAAL,CAAYmE,kBAA5C,EAAgE,KAAKnE,MAAL,CAAYoE,oBAA5E,CAAb;SACA,MAAMqG,EAAE,GAAG,IAAI/L,IAAJ,CAAS2G,IAAT,EAAetE,KAAf,EAAsB4F,QAAtB,EAAgC,KAAK3G,MAAL,CAAYsE,gBAA5C,EAA8D,KAAKtE,MAAL,CAAYuE,kBAA1E,CAAX;SAEA,MAAMmG,gBAAgB,GAAG,KAAKpM,aAAL,CAAmBkI,qBAAnB,EAA0CZ,MAA1C,CAAkDvC,KAAD,IAAW;WACpF,OAAO,KAAKsH,oBAAL,CACNC,QAAQ,CAACvH,KAAK,CAACwH,gBAAP,CAAR,GAAmC,IAD7B,EAEND,QAAQ,CAACvH,KAAK,CAACyH,cAAP,CAAR,GAAiC,IAF3B,EAGNN,IAAI,CAAC5F,OAAL,EAHM,EAIN6F,EAAE,CAAC7F,OAAH,EAJM,CAAP;UADwB,CAAzB;;SASA,OAAO4F,IAAI,CAAC5F,OAAL,KAAiB6F,EAAE,CAAC7F,OAAH,EAAxB,EACA;WACC,MAAMmG,SAAS,GAAGP,IAAI,CAAC5F,OAAL,EAAlB;WACA,MAAMoG,OAAO,GAAGD,SAAS,GAAG,KAAKxM,eAAjC;;WAEA,IAAIyM,OAAO,GAAGP,EAAE,CAAC7F,OAAH,EAAd,EACA;aACC;;;WAGD,MAAMqG,iBAAiB,GAAGP,gBAAgB,CAAC9E,MAAjB,CAAyBsF,GAAD,IAAS;aAC1D,OAAO,KAAKP,oBAAL,CACNC,QAAQ,CAACM,GAAG,CAACL,gBAAL,CAAR,GAAiC,IAD3B,EAEND,QAAQ,CAACM,GAAG,CAACJ,cAAL,CAAR,GAA+B,IAFzB,EAGNC,SAHM,EAINC,OAJM,CAAP;YADyB,CAA1B;WASA,MAAM7D,SAAS,GAAG8D,iBAAiB,CAAC/I,MAAlB,KAA6B,CAA7B,IAAkC,CAAC,KAAK8E,SAAL,CAAeuD,WAAf,CAAnC,IAAkEQ,SAAS,GAAGX,YAAhG;WACA,MAAMe,QAAQ,GAAG,IAAIzM,IAAJ,CAASqM,SAAS,GAAGV,6BAAZ,GAA4C3F,MAArD,CAAjB;WACA,MAAM0G,MAAM,GAAG,IAAI1M,IAAJ,CAASyM,QAAQ,CAACvG,OAAT,MAAsBoG,OAAO,GAAGD,SAAhC,CAAT,CAAf;WACAZ,MAAM,CAACxJ,IAAP,CAAY;aAAEwK,QAAF;aAAYC,MAAZ;aAAoBjE;YAAhC;WAEAqD,IAAI,CAACa,OAAL,CAAab,IAAI,CAAC5F,OAAL,KAAiB,KAAKpG,QAAnC;;;;OAIF,OAAO2L,MAAP;MA5ZO;;KA8ZRQ,oBAAoB,CAACW,KAAD,EAAQC,GAAR,EAAaC,KAAb,EAAoBC,GAApB,EACpB;OACC,MAAMC,YAAY,GAAGF,KAAK,IAAIF,KAAT,IAAkBA,KAAK,GAAGG,GAA/C;OACA,MAAME,UAAU,GAAGH,KAAK,GAAGD,GAAR,IAAeA,GAAG,IAAIE,GAAzC;OACA,MAAMG,qBAAqB,GAAGN,KAAK,IAAIE,KAAT,IAAkBD,GAAG,IAAIE,GAAvD;OACA,OAAOC,YAAY,IAAIC,UAAhB,IAA8BC,qBAArC;MAnaO;;KAqaRtB,yCAAyC,CAACuB,SAAD,EACzC;OACC,MAAM7G,gBAAgB,GAAG,KAAKlG,kBAA9B;OACA,OAAOgB,kBAAI,CAACgM,+BAAL,CAAqCD,SAArC,EAAgD7G,gBAAhD,CAAP;MAxaO;;KA0aRnE,mBAAmB,CAACkL,QAAD,EACnB;OACC,IAAI5B,MAAM,GAAG,EAAb;OACA4B,QAAQ,CAACC,OAAT,CAAkBC,IAAD,IAAU;SAC1B,MAAMxH,cAAc,GAAG,CAAC,KAAK5F,wBAAL,GAAgC,KAAKF,iBAAtC,IAA4D,CAAC,EAA7D,GAAmE,IAA1F;SACA,MAAMuN,WAAW,GAAG;WACnBf,QAAQ,EAAE,IAAIzM,IAAJ,CAASuN,IAAI,CAACd,QAAL,CAAcvG,OAAd,KAA0BH,cAAnC,CADS;WAEnB2G,MAAM,EAAE,IAAI1M,IAAJ,CAASuN,IAAI,CAACb,MAAL,CAAYxG,OAAZ,KAAwBH,cAAjC,CAFW;WAGnB0C,SAAS,EAAE8E,IAAI,CAAC9E;UAHjB;SAKA,IAAIgF,SAAS,GAAGD,WAAW,CAACf,QAAZ,CAAqB5E,OAArB,EAAhB;;SAEA,IAAI4D,MAAM,CAACgC,SAAD,CAAN,KAAsB5E,SAA1B,EACA;WACC4C,MAAM,CAACgC,SAAD,CAAN,GAAoB,EAApB;;;SAID,IAAIF,IAAI,CAACd,QAAL,CAAczK,QAAd,OAA6BwL,WAAW,CAACf,QAAZ,CAAqBzK,QAArB,EAAjC,EACA;WACCyJ,MAAM,CAACgC,SAAD,CAAN,CAAkBxL,IAAlB,CAAuBuL,WAAvB;;QAjBF;OAqBA,OAAO/B,MAAP;MAlcO;;KAocRF,cAAc,GACd;OACC,MAAMmC,gBAAgB,GAAG,KAAK3M,MAAL,CAAY,KAAKN,iBAAjB,EAAoCuG,IAApC,CAAyCC,IAAzC,GAAgDC,MAAhD,CAAuDV,GAAG,IAAIA,GAAG,CAACA,GAAJ,GAAU,CAAxE,CAAzB;OACA,IAAImH,WAAW,GAAGD,gBAAgB,CAACE,IAAjB,CAAsBpH,GAAG,IAAIA,GAAG,CAACA,GAAJ,KAAY,KAAK9F,gBAA9C,CAAlB;;OACA,IAAIiN,WAAW,KAAK9E,SAApB,EACA;SACC8E,WAAW,GAAGD,gBAAgB,CAACA,gBAAgB,CAAClK,MAAjB,GAA0B,CAA3B,CAA9B;;;OAED,KAAK9C,gBAAL,GAAwBiN,WAAW,CAACnH,GAApC;OAEA,KAAK7D,iBAAL,CAAuBgL,WAAvB;MA9cO;;KAgdR1K,uBAAuB,GACvB;OACC,IAAI8D,WAAW,GAAG,KAAKhG,MAAL,CAAY,KAAKN,iBAAjB,EAAoCuG,IAApC,CAAyCC,IAAzC,EAAlB;;OACA,IAAI,KAAKxG,iBAAL,KAA2B,CAA/B,EACA;SACC,MAAMoN,QAAQ,GAAG,IAAI7N,IAAJ,GAAW6H,OAAX,EAAjB;SACAd,WAAW,GAAGA,WAAW,CAACG,MAAZ,CAAmBV,GAAG,IAAIA,GAAG,CAACA,GAAJ,IAAWqH,QAArC,EAA+ClF,KAA/C,CAAqD,CAArD,EAAuD,EAAvD,CAAd;;;OAED,IAAImF,YAAY,GAAG/G,WAAW,CAAC6G,IAAZ,CAAiBpH,GAAG,IAAIA,GAAG,CAAC+B,cAA5B,CAAnB;;OACA,IAAIuF,YAAY,KAAKjF,SAArB,EACA;SACCiF,YAAY,GAAG/G,WAAW,CAAC,CAAD,CAA1B;;;OAGD,KAAKpE,iBAAL,CAAuBmL,YAAvB;MA9dO;;KAgeR5K,cAAc,GACd;OACC,MAAM0D,YAAY,GAAGvD,QAAQ,CAACC,aAAT,CAAuB,0BAAvB,CAArB;OACAsD,YAAY,CAACrC,KAAb,CAAmBuG,MAAnB,GAA4B,KAAKL,cAAL,CAAoB7D,YAApB,EAAkC,KAAKnG,iBAAvC,IAA4D,IAAxF;MAneO;;KAqeRgK,cAAc,CAACsD,YAAD,EAAeC,UAAf,EACd;OACC,MAAMC,QAAQ,GAAGF,YAAY,CAACzK,aAAb,CAA2B,mCAA3B,EAAgEiH,QAAjF;OACA,MAAM2D,UAAU,GAAGD,QAAQ,CAAC,CAAD,CAAR,CAAYE,YAA/B;;OAEA,IAAI,KAAKpN,MAAL,CAAYiN,UAAZ,EAAwBhH,IAAxB,CAA6BC,IAA7B,GAAoC,EAApC,EAAwCT,GAAxC,KAAgD,CAApD,EACA;SACC,OAAO0H,UAAU,GAAG,CAApB;;;OAGD,OAAOA,UAAU,GAAG,CAApB;MA/eO;;KAifRrL,qBAAqB,GACrB;OACC,MAAMuL,QAAQ,GAAG/K,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;OACA,MAAM+K,QAAQ,GAAGhL,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;;OAEA,IAAI,CAACgL,aAAG,CAACC,QAAJ,CAAaF,QAAb,EAAuB,+BAAvB,CAAL,EACA;SACCC,aAAG,CAACE,QAAJ,CAAaH,QAAb,EAAuB,+BAAvB;;;OAED,IAAI,CAACC,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,+BAAvB,CAAL,EACA;SACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,+BAAvB;;;OAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,yBAAvB,CAAL,EACA;SACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,yBAAvB;;;OAED,IAAIE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,4BAAvB,CAAJ,EACA;SACCE,aAAG,CAACG,WAAJ,CAAgBL,QAAhB,EAA0B,4BAA1B;;;OAED,IAAIE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,0BAAvB,CAAJ,EACA;SACCE,aAAG,CAACG,WAAJ,CAAgBL,QAAhB,EAA0B,0BAA1B;;;OAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,2BAAvB,CAAD,IAAwD,KAAKzN,eAAjE,EACA;SACC2N,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,2BAAvB;;;OAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,2BAAvB,CAAD,IAAwD,CAAC,KAAKzN,eAAlE,EACA;SACC2N,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,2BAAvB;;;OAED,IAAIE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,mCAAvB,CAAJ,EACA;SACCE,aAAG,CAACG,WAAJ,CAAgBL,QAAhB,EAA0B,mCAA1B;;;OAED,IAAIE,aAAG,CAACC,QAAJ,CAAaF,QAAb,EAAuB,mCAAvB,CAAJ,EACA;SACCC,aAAG,CAACG,WAAJ,CAAgBJ,QAAhB,EAA0B,mCAA1B;;;OAGD,IAAIjN,kBAAI,CAACT,eAAL,EAAJ,EACA;SACC,IAAI,CAAC2N,aAAG,CAACC,QAAJ,CAAaF,QAAb,EAAuB,sCAAvB,CAAL,EACA;WACCC,aAAG,CAACE,QAAJ,CAAaH,QAAb,EAAuB,sCAAvB;;;SAED,IAAI,CAACC,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,sCAAvB,CAAL,EACA;WACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,sCAAvB;;;;;IA9nBuB;GAmoB3BM,QAAQ,EAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAnoBgB,CAArB;;CCHA,MAAMC,aAAa,GAAG;GAC5BvP,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CADqB;;GAE5BO,IAAI,GACJ;KACC,OAAO,EAAP;IAJ2B;;GAQ5BiP,QAAQ,EAAE;KACTC,SAAS,GACT;OACC,OAAOzN,kBAAI,CAAC0N,kBAAL,CAAwB,KAAKC,IAAL,CAAUtC,QAAlC,EAA4C,KAAKsC,IAAL,CAAUrC,MAAtD,CAAP;;;IAX0B;GAc5B5I,OAAO,EAAE;KACRkL,yBAAyB,GACzB;OACC,KAAKC,KAAL,CAAW,2BAAX,EAAwC;SACvCxC,QAAQ,EAAE,KAAKsC,IAAL,CAAUtC,QADmB;SAEvCC,MAAM,EAAE,KAAKqC,IAAL,CAAUrC;QAFnB;;;IAjB0B;GAuB5BgC,QAAQ,EAAE;;;;;;;;;;;;;CAvBkB,CAAtB;;CCFA,MAAMQ,KAAK,GAAG;GACpBR,QAAQ,EAAG;;;;;;;;;;;CADS,CAAd;;CCIA,MAAMS,aAAa,GAAG;GAC5BzP,IAAI,EAAE,eADsB;GAE5BN,KAAK,EAAE;KACNK,YAAY,EAAEH;IAHa;GAK5B8P,UAAU,EAAE;KACXT,aADW;KAEXO;IAP2B;;GAS5BvP,IAAI,GACJ;KACC,OAAO;OACN0P,QAAQ,EAAE,EADJ;OAENC,cAAc,EAAE,KAFV;OAGNhJ,gBAAgB,EAAE,IAHZ;OAINvG,OAAO,EAAE,IAAIC,IAAJ,EAJH;OAKNuP,mBAAmB,EAAElP,IAAI,CAACC,cAAL,GAAsBC,eAAtB,GAAwCC;MAL9D;IAX2B;;GAmB5BiB,OAAO,GACP;KACC,KAAK+N,qBAAL;KAEA,KAAKjN,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,mCAApC,EAA0EkC,KAAD,IAAW;OACnF,KAAK8K,oBAAL,CAA0B9K,KAA1B;MADD;KAGA,KAAKpC,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,sCAApC,EAA6EkC,KAAD,IAAW;OACtF,KAAKhC,iBAAL,CAAuBgC,KAAvB;MADD;IA1B2B;;GA8B5B3B,OAAO,GACP;KACC,KAAKG,GAAL,GAAW;OACVuM,aAAa,EAAErM,QAAQ,CAACC,aAAT,CAAuB,wCAAvB;MADhB;IAhC2B;;GAoC5BQ,OAAO,EAAE;KACR0L,qBAAqB,GACrB;OACC,KAAK,IAAI,CAACG,GAAD,EAAMC,QAAN,CAAT,IAA4BtQ,MAAM,CAACuQ,OAAP,CAAe,KAAKpQ,YAApB,CAA5B,EACA;SACC,IAAIkQ,GAAG,KAAK,KAAKJ,mBAAjB,EACA;WACC,KAAKjJ,gBAAL,GAAwBsJ,QAAxB;WACA;;;MARK;;KAYRjN,iBAAiB,CAACgC,KAAD,EACjB;OACC,MAAMhF,IAAI,GAAGgF,KAAK,CAACmL,OAAN,EAAb;OACA,KAAKT,QAAL,GAAgB1P,IAAI,CAACkC,KAArB;OACA,KAAKyN,cAAL,GAAsB,IAAtB;MAhBO;;KAkBRG,oBAAoB,CAAC9K,KAAD,EACpB;OACC,KAAK2B,gBAAL,GAAwB3B,KAAK,CAAChF,IAAN,CAAW2G,gBAAnC;MApBO;;KAsBR0I,yBAAyB,CAACrK,KAAD,EACzB;OACC,KAAKpC,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,qCAA/B;OAEA,KAAKlE,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,kCAA/B,EAAmE;SAClEgG,QAAQ,EAAE9H,KAAK,CAAC8H,QADkD;SAElEC,MAAM,EAAE/H,KAAK,CAAC+H,MAFoD;SAGlEkD,QAAQ,EAAE,KAAKtJ;QAHhB;OAMA,KAAK/D,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,wCAA/B,EAAyE;SAACsJ,IAAI,EAAE;QAAhF;;;IApE0B;GAuE5BrB,QAAQ,EAAG;;;;;;;;;;;;;;CAvEiB,CAAtB;;CCFA,MAAMsB,MAAM,GAAG;GACrBtB,QAAQ,EAAG;;;;;CADU,CAAf;;CCEA,MAAMuB,SAAS,GAAG;GACxB7Q,KAAK,EAAE;KACNuF,KAAK,EAAE;OACNoL,IAAI,EAAEzQ,MADA;OAEN4Q,QAAQ,EAAE;MAHL;KAKNC,aAAa,EAAEC;IANQ;;GAQxBzQ,IAAI,GACJ;KACC,OAAO;OACNuB,GAAG,EAAE;SACJmP,KAAK,EAAEC,aAAG,CAACC,UAAJ,CAAe,wBAAf,CADH;SAEJC,QAAQ,EAAEF,aAAG,CAACC,UAAJ,CAAe,2BAAf;;MAHZ;IAVuB;;GAiBxBzM,OAAO,EAAE;KACR2M,oBAAoB,GACpB;OACC,OAAOnQ,wBAAc,CAAC6F,MAAf,CAAsB,GAAtB,EAA2B,KAAKxB,KAAL,CAAW8H,QAAX,CAAoBvG,OAApB,KAAgC,IAA3D,EAAiEwK,WAAjE,EAAP;MAHO;;KAKRC,gBAAgB,GAChB;OACC,OAAO,KAAKhM,KAAL,CAAW8H,QAAX,CAAoB5E,OAApB,EAAP;MAPO;;KASR+I,YAAY,GACZ;OACC,IAAIC,SAAS,GAAG,EAAhB;OACA,MAAMC,UAAU,GAAG1P,kBAAI,CAAC2P,iBAAL,EAAnB;OACA,MAAMV,KAAK,GAAG,IAAIrQ,IAAJ,EAAd;OACA,MAAMgR,QAAQ,GAAG,IAAIhR,IAAJ,CAChB,KAAK2E,KAAL,CAAW8H,QAAX,CAAoB1K,WAApB,EADgB,EAEhB,KAAK4C,KAAL,CAAW8H,QAAX,CAAoBzK,QAApB,EAFgB,EAGhB,KAAK2C,KAAL,CAAW8H,QAAX,CAAoB5E,OAApB,EAHgB,CAAjB;;OAMA,IACCwI,KAAK,CAACnK,OAAN,KAAkB8K,QAAQ,CAAC9K,OAAT,EAAlB,IACGmK,KAAK,CAACnK,OAAN,KAAkB8K,QAAQ,CAAC9K,OAAT,KAAqB,QAF3C,EAIA;SACC2K,SAAS,GAAG,KAAK3P,GAAL,CAASmP,KAArB;QALD,MAOK,IACJA,KAAK,CAACnK,OAAN,KAAkB8K,QAAQ,CAAC9K,OAAT,EAAlB,IACGmK,KAAK,CAACnK,OAAN,KAAkB8K,QAAQ,CAAC9K,OAAT,KAAqB,QAFtC,EAIL;SACC2K,SAAS,GAAG,KAAK3P,GAAL,CAASsP,QAArB;QALI,MAQL;SACCK,SAAS,GAAGvQ,wBAAc,CAAC6F,MAAf,CAAsB,GAAtB,EAA2B,KAAKxB,KAAL,CAAW8H,QAAX,CAAoBvG,OAApB,KAAgC,IAA3D,EAAiEwK,WAAjE,EAAZ;;;OAGD,OAAOpQ,wBAAc,CAAC6F,MAAf,CAAsB2K,UAAtB,EAAkC,KAAKnM,KAAL,CAAW8H,QAAX,CAAoBvG,OAApB,KAAgC,IAAlE,IACJ,IADI,GAEJ2K,SAFH;MAvCO;;KA4CRI,YAAY,GACZ;OACC,OAAO7P,kBAAI,CAAC0N,kBAAL,CAAwB,KAAKnK,KAAL,CAAW8H,QAAnC,EAA6C,KAAK9H,KAAL,CAAW+H,MAAxD,CAAP;MA9CO;;KAgDRwE,gBAAgB,GAChB;OACC,OAAO9P,kBAAI,CAAC+P,oBAAL,CAA0B,KAAKxM,KAAL,CAAWiL,QAAX,CAAoBwB,WAA9C,CAAP;MAlDO;;KAoDRC,YAAY,GACZ;OACC,OAAO9H,EAAE,CAAC+H,IAAH,CAAQC,gBAAR,CAAyB,KAAK5M,KAAL,CAAWjF,IAApC,CAAP;;;IAvEsB;GA0ExBgP,QAAQ,EAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA1Ea,CAAlB;;CCJA,MAAM8C,WAAW,GAAG;GAC1BpS,KAAK,EAAE;KACNqS,aAAa,EAAE;OACd1B,IAAI,EAAEK,OADQ;OAEdsB,OAAO,EAAE;MAHJ;KAKNC,kBAAkB,EAAE;OACnB5B,IAAI,EAAE6B,QADa;OAEnBF,OAAO,EAAE,MAAM;MAPV;KASNG,IAAI,EAAE;OACL9B,IAAI,EAAE+B,MADD;OAEL5B,QAAQ,EAAE;;IAZc;GAe1BxB,QAAQ,EAAG;;;;;;;;;;;;CAfe,CAApB;;CCAA,MAAMqD,aAAa,GAAG;GAC5BrD,QAAQ,EAAG;;;;;;;CADiB,CAAtB;;CCQA,MAAMsD,OAAO,GAAG;GACtB5C,UAAU,EAAE;KACXY,MADW;KAEXwB,WAFW;KAGXvB,SAHW;KAIX8B;IALqB;GAOtBrS,IAAI,EAAE,cAPgB;GAQtBN,KAAK,EAAE;KACNuF,KAAK,EAAE;OACNoL,IAAI,EAAEzQ,MADA;OAEN4Q,QAAQ,EAAE;MAHL;KAKN7Q,KAAK,EAAE;OACN0Q,IAAI,EAAEzQ,MADA;OAEN4Q,QAAQ,EAAE;MAPL;KASN+B,mBAAmB,EAAE;OACpBlC,IAAI,EAAEK,OADc;OAEpBF,QAAQ,EAAE;MAXL;KAaNgC,WAAW,EAAE5S,MAbP;KAcN6S,aAAa,EAAEL,MAdT;KAeNM,YAAY,EAAEN;IAvBO;;GAyBtBnS,IAAI,GACJ;KACC,OAAO;OACN0S,SAAS,EAAE,KAAKF,aADV;OAENG,UAAU,EAAE,KAAKJ,WAAL,CAAiBK,QAFvB;OAGNC,WAAW,EAAE,KAAKN,WAAL,CAAiBO,eAAjB,IAAoC,KAAKP,WAAL,CAAiBQ,aAH5D;OAINC,kBAAkB,EAAE,KAJd;OAKNC,gBAAgB,EAAE,KALZ;OAMNC,kBAAkB,EAAE,KANd;OAONC,UAAU,EAAE;SACXjB,IAAI,EAAEvB,aAAG,CAACC,UAAJ,CAAe,+BAAf,CADK;SAEXwC,QAAQ,EAAE;QATL;OAWNC,SAAS,EAAE,IAXL;OAYNC,cAAc,EAAE;MAZjB;IA3BqB;;GA0CtBjQ,OAAO,GACP;KACC,KAAKG,GAAL,GAAW;OACV+P,YAAY,EAAE7P,QAAQ,CAAC8P,cAAT,CAAwB,+CAAxB,CADJ;OAEVC,iBAAiB,EAAE/P,QAAQ,CAACC,aAAT,CAAuB,6BAAvB,CAFT;OAGV+P,cAAc,EAAEhQ,QAAQ,CAACC,aAAT,CAAuB,6BAAvB,EAAsDgQ;MAHvE;IA5CqB;;GAkDtB/P,OAAO,GACP;KACC,IAAI,KAAKJ,GAAL,CAASkQ,cAAT,CAAwBlF,YAAxB,GAAuC,CAA3C,EACA;OACC,KAAKhL,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0C,KAAK3H,GAAL,CAASkQ,cAAT,CAAwBlF,YAAxB,GAAuC,IAAjF;;IAtDoB;;GAyDtBrK,OAAO,EAAE;KACR,MAAMyP,qBAAN,GACA;OACC,KAAKC,oBAAL;OAEA,KAAKC,qBAAL;OACA,KAAKC,qBAAL;;OAEA,IAAI,CAAC,KAAKC,YAAL,EAAL,EACA;SACC,KAAKX,SAAL,GAAiB,KAAjB;SACA;;;OAGD,KAAKA,SAAL,GAAiB,IAAjB;OACA,KAAKY,iBAAL;OACA,KAAKX,cAAL,GAAsB,IAAtB;OACA,MAAMY,YAAY,GAAG,MAAM,KAAKC,SAAL,EAA3B;OACA,KAAKC,gBAAL;OACA,KAAKd,cAAL,GAAsB,KAAtB;;OAEA,IAAI,CAACY,YAAD,IAAiB,CAAC,KAAKb,SAA3B,EACA;SACC;;;OAGD,KAAKzQ,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,6BAA/B;OAEA,KAAKlE,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,oCAA/B,EAAqE;SAAEuN,aAAa,EAAE,CAACH;QAAvF;OAEA,KAAKtR,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,6CAA/B,EAA8E;SAC7E8L,QAAQ,EAAE,KAAKD,UAD8D;SAE7EE,WAAW,EAAE,KAAKA,WAF2D;SAG7EH,SAAS,EAAE,KAAKA;QAHjB;OAMA,KAAK9P,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,wCAA/B,EAAyE;SAAEsJ,IAAI,EAAE;QAAjF;MApCO;;KAsCR2D,qBAAqB,GACrB;OACC,KAAKf,kBAAL,GAA0B,KAA1B;MAxCO;;KA0CRc,qBAAqB,GACrB;OACC,KAAKb,gBAAL,GAAwB,KAAxB;OACA,KAAKC,kBAAL,GAA0B,KAA1B;MA7CO;;KA+CRc,YAAY,GACZ;OACC,IAAI,KAAKrB,UAAL,CAAgB9O,MAAhB,KAA2B,CAA/B,EACA;SACC,KAAKmP,kBAAL,GAA0B,IAA1B;;;OAED,IAAI,KAAKH,WAAL,CAAiBhP,MAAjB,KAA4B,CAAhC,EACA;SACC,KAAKqP,kBAAL,GAA0B,IAA1B;;;OAED,IAAI,CAAC,KAAKA,kBAAV,EACA;SACC,KAAKD,gBAAL,GAAwB,CAAC,KAAKqB,aAAL,EAAD,IAAyB,CAAC,KAAKC,aAAL,EAAlD;;;OAGD,OAAO,CAAC,KAAKvB,kBAAN,IAA4B,CAAC,KAAKE,kBAAlC,IAAwD,CAAC,KAAKD,gBAArE;MA9DO;;KAgER,MAAMkB,SAAN,GACA;OACC,IAAIxK,QAAQ,GAAG,IAAf;OACA,KAAK2J,cAAL,GAAsB,IAAtB;;OACA,IACA;SACC3J,QAAQ,GAAG,MAAMC,EAAE,CAACC,IAAH,CAAQC,SAAR,CAAkB,oCAAlB,EAAwD;WACxE9J,IAAI,EAAE;aACLwU,YAAY,EAAE,KAAKjC,WAAL,CAAiBiC,YAD1B;aAELC,OAAO,EAAE,KAAK/U,KAAL,CAAWsK,EAFf;aAGL0I,SAAS,EAAE,KAAKA,SAHX;aAILE,QAAQ,EAAE,KAAKD,UAJV;aAKL+B,WAAW,EAAE,KAAK7B,WALb;aAML8B,QAAQ,EAAE,KAAKC,SAAL,CAAe,KAAK5P,KAAL,CAAW8H,QAA1B,CANL;aAOL+H,MAAM,EAAE,KAAKD,SAAL,CAAe,KAAK5P,KAAL,CAAW+H,MAA1B,CAPH;aAQLkD,QAAQ,EAAE,KAAKjL,KAAL,CAAWiL,QAAX,CAAoBwB,WARzB;aASLgB,YAAY,EAAE,KAAKA;;UAVJ,CAAjB;QAFD,CAgBA,OAAOqC,CAAP,EACA;SACCnL,QAAQ,GAAGmL,CAAX;;;OAGD,IAAInL,QAAQ,CAACoL,MAAT,CAAgBlR,MAAhB,KAA2B,CAA/B,EACA;SACC,KAAKjB,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,iCAA/B,EAAkE;WACjEkO,OAAO,EAAErL,QAAQ,CAAC3J,IAAT,CAAcgV,OAD0C;WAEjEC,WAAW,EAAEtL,QAAQ,CAAC3J,IAAT,CAAciV,WAFsC;WAGjEC,aAAa,EAAEvL,QAAQ,CAAC3J,IAAT,CAAckV,aAHoC;WAIjEC,iBAAiB,EAAExL,QAAQ,CAAC3J,IAAT,CAAcmV,iBAJgC;WAKjEzC,SAAS,EAAE/I,QAAQ,CAAC3J,IAAT,CAAc0S;UAL1B;SAQA,OAAO,IAAP;QAVD,MAaA;SACC,KAAK9P,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,iCAA/B,EAAkE;WACjE4L,SAAS,EAAE,KAAKA;UADjB;;;OAKD,IAAI/I,QAAQ,CAAC3J,IAAT,CAAciT,gBAAd,KAAmC,IAAvC,EACA;SACC,KAAKA,gBAAL,GAAwB,IAAxB;SACA,KAAKI,SAAL,GAAiB,KAAjB;;;OAGD,IAAI1J,QAAQ,CAAC3J,IAAT,CAAcgT,kBAAd,KAAqC,IAAzC,EACA;SACC,KAAKA,kBAAL,GAA0B,IAA1B;SACA,KAAKK,SAAL,GAAiB,KAAjB;;;OAGD,OAAO,KAAP;MAxHO;;KA0HRY,iBAAiB,GACjB;OACC,KAAKd,UAAL,CAAgBjB,IAAhB,GAAuB,KAAKtP,OAAL,CAAa+N,GAAb,CAAiBC,UAAjB,CAA4B,0CAA5B,CAAvB;OACA,KAAKuC,UAAL,CAAgBC,QAAhB,GAA2B,IAA3B;MA7HO;;KA+HRgB,gBAAgB,GAChB;OACC,KAAKjB,UAAL,CAAgBjB,IAAhB,GAAuB,KAAKtP,OAAL,CAAa+N,GAAb,CAAiBC,UAAjB,CAA4B,+BAA5B,CAAvB;OACA,KAAKuC,UAAL,CAAgBC,QAAhB,GAA2B,KAA3B;MAlIO;;KAoIRwB,SAAS,CAACtO,IAAD,EACT;OACC,MAAM8O,YAAY,GAAGzU,wBAAc,CAAC6F,MAAf,CAAsB/E,kBAAI,CAAC4T,aAAL,EAAtB,EAA4C/O,IAAI,CAACC,OAAL,KAAiB,IAA7D,CAArB;OACA,MAAM+O,YAAY,GAAG3U,wBAAc,CAAC6F,MAAf,CAAsB/E,kBAAI,CAAC8T,aAAL,EAAtB,EAA4CjP,IAAI,CAACC,OAAL,KAAiB,IAA7D,CAArB;OACA,OAAO6O,YAAY,GAAG,GAAf,GAAqBE,YAA5B;MAxIO;;KA0IRE,oBAAoB,GACpB;OACC,KAAK5S,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,wCAA/B,EAAyE;SAACsJ,IAAI,EAAE;QAAhF;MA5IO;;KA8IRyD,oBAAoB,GACpB;OACC,IAAI,KAAKnB,SAAL,CAAe7O,MAAf,KAA0B,CAA9B,EACA;SACC,KAAK6O,SAAL,GAAiB/B,aAAG,CAACC,UAAJ,CAAe,4BAAf,CAAjB;;;OAGD,OAAO,IAAP;MArJO;;KAuJR0D,aAAa,GACb;OACC,IAAImB,WAAW,GAAG,KAAlB;;OACA,IAAI,KAAKnD,mBAAT,EACA;SACC,MAAMoD,KAAK,GAAG,KAAK7C,WAAL,CAAiB8C,OAAjB,CAAyB,YAAzB,EAAuC,EAAvC,CAAd;SACA,MAAMC,KAAK,GAAGF,KAAK,CAACE,KAAN,CAAY,kBAAZ,CAAd;SACAH,WAAW,GAAG,CAAAG,KAAK,QAAL,YAAAA,KAAK,CAAG,CAAH,CAAL,MAAeF,KAA7B;;;OAGD,OAAOD,WAAP;MAjKO;;KAmKRlB,aAAa,GACb;OACC,MAAMqB,KAAK,GAAG,KAAK/C,WAAL,CAAiB+C,KAAjB,CAAuB,eAAvB,CAAd;OACA,OAAO,CAAAA,KAAK,QAAL,YAAAA,KAAK,CAAG,CAAH,CAAL,MAAe,KAAK/C,WAA3B;MAtKO;;KAwKRgD,yBAAyB,GACzB;OACC,IAAIC,WAAW,GAAG,yEAAlB;;OACA,IAAI,KAAKxD,mBAAT,EACA;SACCwD,WAAW,GAAG,wEAAd;;;OAGD,OAAO,KAAKlT,OAAL,CAAa+N,GAAb,CAAiBC,UAAjB,CAA4BkF,WAA5B,CAAP;MAhLO;;KAkLRC,YAAY,GACZ;OACC,KAAKjC,qBAAL;;OACA,IAAI,CAAC,KAAKkC,gBAAL,EAAL,EACA;SACC;;;OAGD,MAAMC,gBAAgB,GAAG,KAAKC,mBAAL,CAAyB,KAAK1S,GAAL,CAAS+P,YAAlC,CAAzB;OAEA,KAAKV,WAAL,GAAmB,KAAKsD,WAAL,CAAiB,KAAKtD,WAAtB,CAAnB;OACA,KAAKrP,GAAL,CAAS+P,YAAT,CAAsB6C,KAAtB,GAA8B,KAAKvD,WAAnC;OAEA,KAAKwD,4BAAL,CAAkC,KAAK7S,GAAL,CAAS+P,YAA3C,EAAyD0C,gBAAzD;MA/LO;;KAiMRC,mBAAmB,CAACI,KAAD,EACnB;OACC,MAAMC,cAAc,GAAGD,KAAK,CAACC,cAA7B;OACA,OAAOD,KAAK,CAACF,KAAN,CAAYpN,KAAZ,CAAkB,CAAlB,EAAqBuN,cAArB,CAAP;MApMO;;KAsMRF,4BAA4B,CAACC,KAAD,EAAQL,gBAAR,EAC5B;OACC,MAAMO,SAAS,GAAG,KAAKC,sBAAL,CAA4BR,gBAAgB,CAACjN,KAAjB,CAAuB,CAAvB,EAA0B,CAAC,CAA3B,CAA5B,CAAlB;OACA,MAAM0N,aAAa,GAAG,KAAKD,sBAAL,CAA4BR,gBAAgB,CAACjN,KAAjB,CAAuB,CAAC,CAAxB,CAA5B,CAAtB;OACA,MAAM4M,KAAK,GAAGU,KAAK,CAACF,KAAN,CAAYR,KAAZ,CAAmB,GAAEY,SAAU,MAAKE,aAAc,EAAlD,EAAqD,CAArD,CAAd;OACA,MAAMC,iBAAiB,GAAGL,KAAK,CAACF,KAAN,CAAYQ,OAAZ,CAAoBhB,KAApB,IAA6BA,KAAK,CAAC/R,MAA7D;OACAyS,KAAK,CAACO,iBAAN,CAAwBF,iBAAxB,EAA2CA,iBAA3C;MA5MO;;KA8MRF,sBAAsB,CAACvE,IAAD,EACtB;OACC,OAAOA,IAAI,CAACyD,OAAL,CAAa,qBAAb,EAAoC,MAApC,CAAP;MAhNO;;KAkNRmB,mBAAmB,CAAChC,CAAD,EACnB;OACC,IAAI,CAAC,KAAKkB,gBAAL,EAAL,EACA;SACC;;;OAGD,IAAI,CAAC,KAAKe,OAAL,CAAajC,CAAC,CAAC9E,GAAf,CAAD,IAAwB,CAAC,KAAKgH,YAAL,CAAkBlC,CAAC,CAAC9E,GAApB,CAAzB,IAAqD,CAACvO,kBAAI,CAACwV,uBAAL,CAA6BnC,CAA7B,CAA1D,EACA;SACCA,CAAC,CAACoC,cAAF;;MA3NM;;KA8NRlB,gBAAgB,GAChB;OACC,OAAO,KAAKnD,WAAL,CAAiB7J,KAAjB,CAAuB,CAAvB,EAA0B,CAA1B,MAAiC,GAAxC;MAhOO;;KAkOR+N,OAAO,CAAC/G,GAAD,EACP;OACC,OAAO,QAAQmH,IAAR,CAAanH,GAAb,CAAP;MApOO;;KAsORgH,YAAY,CAAChH,GAAD,EACZ;OACC,OAAO,CAAC,KAAD,EAAQ,QAAR,EAAkB,WAAlB,EAA+B,KAA/B,EAAsC4G,OAAtC,CAA8C5G,GAA9C,KAAsD,CAAtD,IAA2DA,GAAG,CAAC/G,QAAJ,CAAa,OAAb,CAAlE;MAxOO;;KA0ORkN,WAAW,CAACC,KAAD,EACX;OAAA;;OACC,UAAAA,KAAK,SAAL,YAAAA,KAAK,GAAK,EAAV;OAEA,IAAIgB,OAAO,GAAGhB,KAAK,CAACQ,OAAN,CAAc,GAAd,MAAuB,CAArC;OACAR,KAAK,GAAGA,KAAK,CAACT,OAAN,CAAc,KAAd,EAAqB,EAArB,CAAR;;OAEA,IAAI,CAAC,KAAK0B,OAAV,EACA;SACC,KAAKA,OAAL,GAAe,q+JACbC,KADa,CACP,GADO,EAEbjS,GAFa,CAET+J,IAAI,IAAI;WACZA,IAAI,GAAGA,IAAI,CAACkI,KAAL,CAAW,GAAX,CAAP;WACA,OAAO;aACNC,IAAI,EAAEnI,IAAI,CAAC,CAAD,CADJ;aAENpF,EAAE,EAAEoF,IAAI,CAAC,CAAD,CAFF;aAGNoI,IAAI,EAAEpI,IAAI,CAAC,CAAD;YAHX;UAJa,CAAf;;;OAYD,IAAIgH,KAAK,CAACvS,MAAN,GAAe,CAAnB,EACA;SACC,IAAI2T,IAAI,GAAG,KAAKC,QAAL,CAAcrB,KAAd,CAAX;SACAoB,IAAI,IAAI,CAAC,CAACA,IAAI,CAACZ,OAAL,CAAa,GAAb,KAAqB,CAArB,GAAyB,GAAzB,GAA+B,GAAhC,IAAuC,IAAxC,EAA8Cc,MAA9C,CAAqD,EAArD,CAAR;;SACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvB,KAAK,CAACvS,MAA1B,EAAkC8T,CAAC,EAAnC,EACA;WACCH,IAAI,GAAGA,IAAI,CAAC7B,OAAL,CAAa,GAAb,EAAkBS,KAAK,CAACpN,KAAN,CAAY2O,CAAZ,EAAeA,CAAC,GAAG,CAAnB,CAAlB,CAAP;;;SAEDvB,KAAK,GAAGoB,IAAI,CAAC7B,OAAL,CAAa,MAAb,EAAoB,EAApB,EAAwBA,OAAxB,CAAgC,IAAhC,EAAsC,GAAtC,CAAR;;;OAGD,IAAIyB,OAAO,IAAIhB,KAAK,CAACvS,MAAN,GAAe,CAA9B,EACA;SACCuS,KAAK,GAAG,MAAMA,KAAd;;;OAGD,OAAOA,KAAP;MA/QO;;KAiRRqB,QAAQ,CAACrB,KAAD,EACR;OACC,IAAIwB,CAAC,GAAG,KAAKP,OAAL,CAAa9P,MAAb,CAAoB6H,IAAI,IAAI;SACnC,OAAOgH,KAAK,CAACQ,OAAN,CAAcxH,IAAI,CAACmI,IAAnB,MAA6B,CAApC;QADO,EAELM,IAFK,CAEA,CAAChP,CAAD,EAAIiP,CAAJ,KAAU;SACjB,OAAOA,CAAC,CAACP,IAAF,CAAO1T,MAAP,GAAgBgF,CAAC,CAAC0O,IAAF,CAAO1T,MAA9B;QAHO,EAIL,CAJK,CAAR;OAKA,OAAO+T,CAAC,GAAGA,CAAC,CAACJ,IAAL,GAAY,gBAApB;;;IAjVoB;GAoVtBzI,QAAQ,EAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CApVW,CAAhB;;;;CCFA,MAAMgJ,QAAQ,GAAG;GACvBtI,UAAU,EAAE;KACXY,MADW;KAEXwB,WAFW;KAGXvB;IAJsB;GAMvBvQ,IAAI,EAAE,UANiB;GAOvBN,KAAK,EAAE;KACNuF,KAAK,EAAE;OACNoL,IAAI,EAAEzQ,MADA;OAEN4Q,QAAQ,EAAE;MAHL;KAKN7Q,KAAK,EAAE;OACN0Q,IAAI,EAAEzQ,MADA;OAEN4Q,QAAQ,EAAE;MAPL;KASN8D,aAAa,EAAE5D;IAhBO;;GAkBvBzQ,IAAI,GACJ;KACC,OAAO;OACNgY,UAAU,EAAE,IADN;OAENC,UAAU,EAAE;MAFb;IApBsB;;GAyBvBnW,OAAO,GACP;KACC,MAAM2M,QAAQ,GAAG/K,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;KACA,MAAM+K,QAAQ,GAAGhL,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;KAEA,KAAKqU,UAAL,GAAkBE,aAAG,CAACC,MAAtB,cAA6B;;mDAA7B,CAEyF;SAFzF,GAEiDxH,aAAG,CAACC,UAAJ,CAAe,uBAAf,CAFjD;KAKAwH,eAAK,CAACC,IAAN,CAAW,KAAKL,UAAhB,EAA4B,OAA5B,EAAqC,KAAKxC,oBAAL,CAA0B6C,IAA1B,CAA+B,IAA/B,CAArC;KAEA1J,aAAG,CAAC2J,MAAJ,CAAW,KAAKN,UAAhB,EAA4BtJ,QAA5B;;KAEA,IAAIC,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,2BAAvB,CAAJ,EACA;OACCE,aAAG,CAACG,WAAJ,CAAgBL,QAAhB,EAA0B,2BAA1B;;;KAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,mCAAvB,CAAL,EACA;OACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,mCAAvB;;;KAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaF,QAAb,EAAuB,mCAAvB,CAAL,EACA;OACCC,aAAG,CAACE,QAAJ,CAAaH,QAAb,EAAuB,mCAAvB;;;KAGD,IAAI,KAAK2F,aAAT,EACA;OACC1F,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,0BAAvB;MAFD,MAKA;OACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,4BAAvB;;IA1DqB;;GA6DvBtK,OAAO,EAAE;KACR,MAAMoU,eAAN,GACA;OACC,IAAI,CAAC,KAAKC,OAAV,EACA;SACC,MAAM7O,QAAQ,GAAG,MAAMC,EAAE,CAACC,IAAH,CAAQC,SAAR,CAAkB,4CAAlB,EAAgE;WACtF9J,IAAI,EAAE;aACLkV,aAAa,EAAE,KAAKlQ,KAAL,CAAWyT;;UAFL,CAAvB;SAKA,KAAKD,OAAL,GAAe7O,QAAQ,CAAC3J,IAAxB;;;OAGDyB,kBAAI,CAAC8W,eAAL,CAAqB,KAAKC,OAA1B,EAAmC,OAAnC;MAbO;;KAeRhD,oBAAoB,GACpB;OACC,IAAI,KAAKwC,UAAT,EACA;SACCrJ,aAAG,CAAC+J,MAAJ,CAAW,KAAKV,UAAhB;;;OAGD,KAAKpV,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,wCAA/B,EAAyE;SAACsJ,IAAI,EAAE;QAAhF;;;IAnFqB;GAsFvBrB,QAAQ,EAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAtFY,CAAjB;;CCHA,MAAM4J,WAAW,GAAG;GAC1BlZ,KAAK,EAAE;KACNC,KAAK,EAAEC;IAFkB;;GAI1B0D,OAAO,GACP;KACC,KAAKH,qBAAL;IANyB;;GAQ1BiB,OAAO,EAAE;KACR,MAAMyU,gBAAN,GACA;;OAGC,KAAKhW,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,wCAA/B,EAAyE;SAACsJ,IAAI,EAAE;QAAhF;MALO;;KAORlN,qBAAqB,GACrB;OACC,MAAMuL,QAAQ,GAAG/K,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;OACA,MAAM+K,QAAQ,GAAGhL,QAAQ,CAACC,aAAT,CAAuB,MAAvB,CAAjB;;OAEA,IAAIgL,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,2BAAvB,CAAJ,EACA;SACCE,aAAG,CAACG,WAAJ,CAAgBL,QAAhB,EAA0B,2BAA1B;;;OAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,2BAAvB,CAAL,EACA;SACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,2BAAvB;;;OAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaH,QAAb,EAAuB,mCAAvB,CAAL,EACA;SACCE,aAAG,CAACE,QAAJ,CAAaJ,QAAb,EAAuB,mCAAvB;;;OAED,IAAI,CAACE,aAAG,CAACC,QAAJ,CAAaF,QAAb,EAAuB,mCAAvB,CAAL,EACA;SACCC,aAAG,CAACE,QAAJ,CAAaH,QAAb,EAAuB,mCAAvB;;;;IAlCuB;GAsC1BK,QAAQ,EAAG;;;;;;;;;;;;;;;;;CAtCe,CAApB;;CCIA,MAAM8J,WAAW,GAAG;GAC1BpZ,KAAK,EAAE;KACNqZ,IAAI,EAAEnZ,MADA;KAEND,KAAK,EAAEC,MAFD;KAGN4S,WAAW,EAAE5S,MAHP;KAINC,gBAAgB,EAAED,MAJZ;KAKNE,iBAAiB,EAAEF,MALb;KAMNG,YAAY,EAAEH,MANR;KAONoZ,kBAAkB,EAAE5G;IARK;GAU1B1C,UAAU,EAAE;KACXjQ,YADW;KAEXgQ,aAFW;KAGX6C,OAHW;KAIX0F,QAJW;KAKXY;IAfyB;GAiB1B5Y,IAAI,EAAE,aAjBoB;;GAkB1BC,IAAI,GACJ;KACC,OAAO;OACNoQ,IAAI,EAAE,EADA;OAENoC,aAAa,EAAE,EAFT;OAGN6B,aAAa,EAAE,KAHT;OAIN2E,SAAS,EAAE;SACVlM,QAAQ,EAAE,IAAIzM,IAAJ,EADA;SAEV0M,MAAM,EAAE,IAAI1M,IAAJ,EAFE;SAGV4P,QAAQ,EAAE,KAAKnQ,YAAL,CAAkBY,IAAI,CAACC,cAAL,GAAsBC,eAAtB,GAAwCC,QAA1D;;MAPZ;IApByB;;GA+B1BiB,OAAO,GACP;KACC,KAAKsO,IAAL,GAAY,KAAK2I,kBAAL,GAA0B,UAA1B,GAAuC,aAAnD;KAEA,KAAKnW,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,wCAApC,EAA+EkC,KAAD,IAAW;OACxF,KAAKiU,4BAAL,CAAkCjU,KAAlC;MADD;KAGA,KAAKpC,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,kCAApC,EAAyEkC,KAAD,IAAW;OAClF,KAAKkU,sBAAL,CAA4BlU,KAA5B;MADD;KAGA,KAAKpC,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,iCAApC,EAAwEkC,KAAD,IAAW;OACjF,KAAKmU,qBAAL,CAA2BnU,KAA3B;MADD;KAGA,KAAKpC,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,oCAApC,EAA2EkC,KAAD,IAAW;OACpF,KAAKqP,aAAL,GAAqBrP,KAAK,CAAChF,IAAN,CAAWqU,aAAhC;MADD;KAGA,KAAKzR,OAAL,CAAaC,YAAb,CAA0BC,SAA1B,CAAoC,6CAApC,EAAoFkC,KAAD,IAAW;OAC7F,KAAKoU,0BAAL,CAAgCpU,KAAhC;MADD;IA/CyB;;GAmD1B3B,OAAO,GACP;KACC,KAAKG,GAAL,GAAW;OACV6V,WAAW,EAAE3V,QAAQ,CAACC,aAAT,CAAuB,gCAAvB,CADH;OAEV8P,iBAAiB,EAAE/P,QAAQ,CAACC,aAAT,CAAuB,6BAAvB,CAFT;OAGV2V,qBAAqB,EAAE5V,QAAQ,CAACC,aAAT,CAAuB,kCAAvB,CAHb;OAIV+P,cAAc,EAAEhQ,QAAQ,CAACC,aAAT,CAAuB,6BAAvB,EAAsDgQ;MAJvE;IArDyB;;GA4D1BxP,OAAO,EAAE;KACR8U,4BAA4B,CAACjU,KAAD,EAC5B;OACC,MAAMuU,WAAW,GAAG,KAAKnJ,IAAzB;OACA,MAAMoJ,OAAO,GAAGxU,KAAK,CAAChF,IAAN,CAAWoQ,IAA3B;;OAEA,IAAImJ,WAAW,KAAK,aAAhB,IAAiCC,OAAO,KAAK,UAAjD,EACA;SACC,KAAKC,gCAAL;;;OAGD,IAAIF,WAAW,KAAK,UAAhB,IAA8BC,OAAO,KAAK,SAA9C,EACA;SACC,KAAKE,4BAAL;;;OAGD,IAAIH,WAAW,KAAK,SAAhB,IAA6BC,OAAO,KAAK,UAA7C,EACA;SACC,KAAKG,4BAAL;;;OAGD,IAAIJ,WAAW,KAAK,SAAhB,IAA6BC,OAAO,KAAK,UAA7C,EACA;SACC,KAAKI,4BAAL;;;OAGD,IAAIL,WAAW,KAAK,UAAhB,IAA8BC,OAAO,KAAK,UAA9C,EACA;SACC,KAAKK,6BAAL;;;OAGD,KAAKzJ,IAAL,GAAYoJ,OAAZ;MA/BO;;KAiCRN,sBAAsB,CAAClU,KAAD,EACtB;OACC,KAAKgU,SAAL,GAAiBhU,KAAK,CAAChF,IAAvB;MAnCO;;KAqCRmZ,qBAAqB,CAACnU,KAAD,EACrB;OACC,IAAIA,KAAK,CAAChF,IAAN,CAAWgV,OAAf,EACA;SACC,KAAKgE,SAAL,CAAehP,EAAf,GAAoBhF,KAAK,CAAChF,IAAN,CAAWgV,OAA/B;;;OAED,IAAIhQ,KAAK,CAAChF,IAAN,CAAW0S,SAAf,EACA;SACC,KAAKsG,SAAL,CAAejZ,IAAf,GAAsBiF,KAAK,CAAChF,IAAN,CAAW0S,SAAjC;;;OAED,IAAI1N,KAAK,CAAChF,IAAN,CAAWiV,WAAf,EACA;SACC,KAAK+D,SAAL,CAAec,MAAf,GAAwB9U,KAAK,CAAChF,IAAN,CAAWiV,WAAnC;;;OAED,IAAIjQ,KAAK,CAAChF,IAAN,CAAWkV,aAAf,EACA;SACC,KAAK8D,SAAL,CAAeP,QAAf,GAA0BzT,KAAK,CAAChF,IAAN,CAAWkV,aAArC;;;OAED,IAAIlQ,KAAK,CAAChF,IAAN,CAAWmV,iBAAf,EACA;SACC,KAAK6D,SAAL,CAAe7D,iBAAf,GAAmCnQ,KAAK,CAAChF,IAAN,CAAWmV,iBAA9C;;MAzDM;;KA4DRiE,0BAA0B,CAACpU,KAAD,EAC1B;OACC,KAAKuN,WAAL,CAAiBK,QAAjB,GAA4B5N,KAAK,CAAChF,IAAN,CAAW4S,QAAvC;OACA,KAAKL,WAAL,CAAiBO,eAAjB,GAAmC9N,KAAK,CAAChF,IAAN,CAAW6S,WAA9C;;OAEA,IAAI,KAAKwB,aAAT,EACA;SACC,KAAK7B,aAAL,GAAqBxN,KAAK,CAAChF,IAAN,CAAW0S,SAAhC;QAFD,MAKA;SACC,KAAKF,aAAL,GAAqB,EAArB;;MAvEM;;KA0ERiH,gCAAgC,GAChC;OACC,KAAKjW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCmV,SAAjC,GAA6C,YAA7C;OACA,KAAKvW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiC2C,MAAjC,GAA0C,WAA1C;OACA,KAAK/D,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCoV,OAAjC,GAA2C,CAA3C;OACA,KAAKxW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCyG,UAAjC,GAA8C,gBAA9C;OAEA,KAAK7H,GAAL,CAAS6V,WAAT,CAAqBzU,KAArB,CAA2ByG,UAA3B,GAAwC,gBAAxC;OACA,KAAK7H,GAAL,CAAS6V,WAAT,CAAqBzU,KAArB,CAA2BmV,SAA3B,GAAuC,YAAvC;OACA,KAAKvW,GAAL,CAAS6V,WAAT,CAAqBzU,KAArB,CAA2B2C,MAA3B,GAAoC,WAApC;OACA,KAAK/D,GAAL,CAAS6V,WAAT,CAAqBzU,KAArB,CAA2BoV,OAA3B,GAAqC,CAArC;OAEA7W,UAAU,CAAC,MAAM;SAChB,KAAKK,GAAL,CAAS6V,WAAT,CAAqBX,MAArB;SACA,KAAKlV,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCqV,OAAjC,GAA2C,EAA3C;SACA,KAAKrX,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,iCAA/B;SAEA3D,UAAU,CAAC,MAAM;WAChB,KAAKK,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCmV,SAAjC,GAA6C,EAA7C;WACA,KAAKvW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiC2C,MAAjC,GAA0C,EAA1C;WACA,KAAK/D,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCoV,OAAjC,GAA2C,EAA3C;WAEA7W,UAAU,CAAC,MAAM;aAChB,KAAKK,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCyG,UAAjC,GAA8C,EAA9C;YADS,EAEP,GAFO,CAAV;UALS,EAQP,GARO,CAAV;QALS,EAcP,GAdO,CAAV;MAtFO;;KAsGRqO,4BAA4B,GAC5B;OACC,KAAKlW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0C,KAAK3H,GAAL,CAAS8V,qBAAT,CAA+B9K,YAA/B,GAA8C,IAAxF;OACA,IAAI5E,EAAE,CAACoB,MAAP,CAAc;SACbC,QAAQ,EAAE,GADG;SAEbC,KAAK,EAAE;WACNpH,UAAU,EAAE,KAAKN,GAAL,CAASiQ,iBAAT,CAA2B3P,UADjC;WAENqH,MAAM,EAAE,KAAK3H,GAAL,CAAS8V,qBAAT,CAA+B9K;UAJ3B;SAMbpD,MAAM,EAAE;WACPtH,UAAU,EAAE,KAAKN,GAAL,CAASiQ,iBAAT,CAA2B1P,WAA3B,GAAyC,KAAKP,GAAL,CAASiQ,iBAAT,CAA2BzP,WADzE;WAEPmH,MAAM,EAAE,KAAK3H,GAAL,CAASkQ,cAAT,CAAwBlF;UARpB;SAUbnD,UAAU,EAAEzB,EAAE,CAACoB,MAAH,CAAUM,WAAV,CAAsB1B,EAAE,CAACoB,MAAH,CAAUO,WAAV,CAAsBC,IAA5C,CAVC;SAWbC,IAAI,EAAGC,KAAD,IAAW;WAChB,KAAKlI,GAAL,CAASiQ,iBAAT,CAA2B3P,UAA3B,GAAwC4H,KAAK,CAAC5H,UAA9C;WACA,KAAKN,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0CO,KAAK,CAACP,MAAN,GAAe,IAAzD;UAbY;SAebQ,QAAQ,EAAE,MAAM;QAfjB,EAgBGE,OAhBH;MAzGO;;KA2HR8N,4BAA4B,GAC5B;OACC,KAAKnW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0C,KAAK3H,GAAL,CAASkQ,cAAT,CAAwBlF,YAAxB,GAAuC,IAAjF;OACA,IAAI5E,EAAE,CAACoB,MAAP,CAAc;SACbC,QAAQ,EAAE,GADG;SAEbC,KAAK,EAAE;WACNpH,UAAU,EAAE,KAAKN,GAAL,CAASiQ,iBAAT,CAA2B3P,UADjC;WAENqH,MAAM,EAAE,KAAK3H,GAAL,CAASkQ,cAAT,CAAwBlF;UAJpB;SAMbpD,MAAM,EAAE;WACPtH,UAAU,EAAE,CADL;WAEPqH,MAAM,EAAE,KAAK3H,GAAL,CAAS8V,qBAAT,CAA+B9K;UAR3B;SAUbnD,UAAU,EAAEzB,EAAE,CAACoB,MAAH,CAAUM,WAAV,CAAsB1B,EAAE,CAACoB,MAAH,CAAUO,WAAV,CAAsBC,IAA5C,CAVC;SAWbC,IAAI,EAAGC,KAAD,IAAW;WAChB,KAAKlI,GAAL,CAASiQ,iBAAT,CAA2B3P,UAA3B,GAAwC4H,KAAK,CAAC5H,UAA9C;WACA,KAAKN,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0CO,KAAK,CAACP,MAAN,GAAe,IAAzD;UAbY;SAebQ,QAAQ,EAAE,MAAM;WACf,KAAKnI,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0C,EAA1C;;QAhBF,EAkBGU,OAlBH;MA9HO;;KAkJR+N,4BAA4B,GAC5B;OACC,KAAKpW,GAAL,CAASiQ,iBAAT,CAA2B3P,UAA3B,GAAwC,CAAxC;OACA,KAAKN,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCuG,MAAjC,GAA0C,EAA1C;OACA,KAAK3H,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCqV,OAAjC,GAA2C,MAA3C;;OAEA,IAAI,CAAC,KAAK5F,aAAV,EACA;SACC6F,oBAAQ,CAACC,IAAT,CAAc;WACbC,aAAa,EAAE,GADF;WAEbC,MAAM,EAAE,EAFK;WAGbC,MAAM,EAAE;aAAEC,CAAC,EAAE,GAAL;aAAUC,CAAC,EAAE;YAHR;WAIbC,MAAM,EAAE;UAJT;;MA1JM;;KAkKRZ,6BAA6B,GAC7B;OACC,KAAKrW,GAAL,CAASiQ,iBAAT,CAA2B7O,KAA3B,CAAiCqV,OAAjC,GAA2C,EAA3C;OACA,KAAKjB,SAAL,CAAejZ,IAAf,GAAsB,KAAtB;OACA,KAAK6C,OAAL,CAAaC,YAAb,CAA0BiE,IAA1B,CAA+B,iCAA/B;;;IAlOwB;GAqO1BiI,QAAQ,EAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CArOe,CAApB;;CCJA,MAAM2L,MAAN,CACP;GACCC,WAAW,CAACC,OAAO,GAAG,EAAX,EACX;KACC,KAAKlb,KAAL,GAAakb,OAAO,CAAClb,KAArB;KACA,KAAK6S,WAAL,GAAmBqI,OAAO,CAACrI,WAA3B;KACA,KAAKuG,IAAL,GAAY8B,OAAO,CAAC9B,IAApB;KACA,KAAKlZ,gBAAL,GAAwBgb,OAAO,CAAChb,gBAAhC;KACA,KAAKC,iBAAL,GAAyB+a,OAAO,CAAC/a,iBAAjC;KACA,KAAKC,YAAL,GAAoB8a,OAAO,CAAC9a,YAA5B;KACA,KAAKiZ,kBAAL,GAA0B6B,OAAO,CAAC7B,kBAAlC;KACA,KAAK8B,QAAL,GAAgBjR,EAAE,CAAC,uBAAD,CAAlB;KAEA,KAAKkR,UAAL;;;GAGDA,UAAU,GACV;KACC,KAAKC,WAAL,GAAmBC,iBAAS,CAACC,SAAV,CAAoBpC,WAApB,EAAiC;OACnDC,IAAI,EAAE,KAAKA,IADwC;OAEnDpZ,KAAK,EAAE,KAAKA,KAFuC;OAGnD6S,WAAW,EAAE,KAAKA,WAHiC;OAInD3S,gBAAgB,EAAE,KAAKA,gBAJ4B;OAKnDC,iBAAiB,EAAE,KAAKA,iBAL2B;OAMnDC,YAAY,EAAE,KAAKA,YANgC;OAOnDiZ,kBAAkB,EAAE,KAAKA;MAPP,EAQhBmC,KARgB,CAQV,KAAKL,QARK,CAAnB;;;CAjBF;;;;;;;;"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings