{"version":3,"sources":["webpack:///./src/views/Meetings/Calendar.vue","webpack:///./src/components/Calendar/MeetingsCalendar.vue","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/view-base.js","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/vertical-view.js","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/day.js","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/week.js","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/work-week.js","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/agenda-base.js","webpack:///./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/agenda.js","webpack:///./src/components/Calendar/AgendaEventTemplate.vue","webpack:///src/components/Calendar/AgendaEventTemplate.vue","webpack:///./src/components/Calendar/AgendaEventTemplate.vue?a823","webpack:///./src/components/Calendar/AgendaEventTemplate.vue?9b35","webpack:///src/components/Calendar/MeetingsCalendar.vue","webpack:///./src/components/Calendar/MeetingsCalendar.vue?9cfc","webpack:///./src/components/Calendar/MeetingsCalendar.vue?ac69","webpack:///src/views/Meetings/Calendar.vue","webpack:///./src/views/Meetings/Calendar.vue?a41d","webpack:///./src/views/Meetings/Calendar.vue?2f66"],"names":["render","_vm","this","_c","_self","key","redrawIndex","staticClass","searchText","attrs","items","fields","loading","on","clickedRow","scopedSlots","_u","fn","data","_v","_s","FormatDateTimeRelative","item","message","created_date","FormatDateTime","open_from_date","open_to_date","bytesToSize","size","directives","name","rawName","modifiers","$t","message_type","getLogo","has_attachment","_e","subject","message_uuid","external","participants","external_system_participant","loa_level","proxy","totalItems","limit","getSent","model","value","currentPage","callback","$$v","expression","currentView","listMeetingKey","clickedEvent","changedView","staticRenderFns","user","information","loaded","redrawKey","ref","heightPixels","firstDay","locale","onActionComplete","eventSettings","onCellClick","onCellDoubleClick","popupOpen","navigating","onEventClick","agendaEventTemplate","ViewBase","parent","previousNextAction","prototype","isTimelineView","indexOf","getContentRows","refreshHeader","refreshResourceHeader","element","querySelector","lastElementChild","firstElementChild","resTd","appendChild","resourceBase","createResourceColumn","notify","getDayName","date","getDayNames","getDay","getDate","globalize","formatDate","format","calendar","getCalendarMode","getTime","isAdaptive","activeViewOptions","timeFormat","skeleton","getTimeString","getTimelineDate","text","util","createEventTable","trCount","eventTable","className","getEventRows","eventContainer","eventRows","row","uiStateValues","isGroupAdaptive","renderedResources","setAttribute","parseInt","toString","groupIndex","push","collapseRows","wrap","group","resources","length","hideResourceRows","createTableLayout","clsName","table","tbody","setAriaAttributes","getLabelText","createColGroup","lastRow","colSpan","map","reduce","prev","next","colGroupEle","i","getScrollXIndent","content","offsetHeight","clientHeight","scrollTopPanel","target","getDatesHeaderElement","scrollLeft","scrollHeaderLabels","headerTable","colWidth","offsetWidth","querySelectorAll","applyLeft","headerCells","isRtl","currentCell","tdLeft","hiddenLeft","_i","headerCells_2","cell","getAttribute","Math","floor","children","style","classNames","classNames_1","slice","call","_a","headerCells_1","enableRtl","addAttributes","td","template","getHeaderBarHeight","headerBarHeight","headerModule","getHeaderElement","resHeader","renderPanel","type","setPanel","panel","getPanel","getDateSlots","renderDates","workDays","generateColumnLevels","getColumnLevels","colLevels","highlightCurrentTime","getStartDate","getEndDate","startDate","endDate","getStartHour","startHour","getStartEndTime","Date","getEndHour","endHour","isCurrentDate","setHours","currentTimezoneDate","isCurrentMonth","displayDate","numberOfWeeks","activeView","getCurrentTime","getFullYear","getMonth","isWorkDay","isWorkHour","setMilliseconds","getRenderDates","selectedDate","start","firstDayOfWeek","length_1","interval","showWeekend","length_2","dayCount","agendaDaysCount","previousNextIconHandler","getNextPreviousDate","daysCount","count","weekLength","view","viewStr","charAt","toLowerCase","substring","localeObj","getConstant","getDateRangeText","dateFormat","formatDateRange","formattedStr","longDateFormat","mode","trim","toLocaleLowerCase","substr","getMobileDateElement","innerHTML","setResourceHeaderContent","tdElement","tdData","resourceHeaderTemplate","resource","resourceData","scheduleId","id","viewName","resourceHeaderTemplateName","templateId","quickTemplate","getResourceHeaderTemplate","resourceText","sanitize","textField","renderResourceMobileLayout","lastResourceLevel","renderResourceHeader","renderResourceTree","addAutoHeightClass","rowAutoHeight","getColElements","setColWidth","colElements","contentBody","colWidth_1","getBoundingClientRect","width","resourceColumn","cssClass","headerCellElements","forEach","ele","headerCellColSpan","resetColWidth","colElements_1","col","getContentAreaElement","wireExpandCollapseIconEvents","resourceCollection","treeIcons","treeIcons_1","icon","clearEvents","add","onTreeIconClick","scrollToDate","scrollDate","scrollWrap","tdDate","dateElement","scrollWidth","clientWidth","getContentTable","offsetLeft","scrollTop","offsetTop","setPersistence","enablePersistence","contentWrap","retainScrollPosition","conWrap","getViewStartDate","getResourceRenderDates","getViewEndDate","getAdjustedDate","startTime","timeScale","enable","setDate","resetColLevels","expandedResources","renderedCount","virtualScrollModule","getRenderedCount","lastLevel","byDate","index","setRenderedDates","destroy","parentNode","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","create","_super","VerticalView","_this","viewClass","isInverseTableSelect","baseCssClass","appointment","getModuleName","addEventListener","scrollUiUpdate","renderEvents","removeEventListener","off","renderAppointments","onContentScroll","e","removeNewEventElement","scrollLeftPanel","top","left","quickPopup","quickPopupHide","onAdaptiveMove","action","preventDefault","onAdaptiveScroll","isDestroyed","leftPanel","getLeftPanelElement","args","dateHeader","timeCells","getScrollableElement","header","scrollerHeight","setContentHeight","scrollBarWidth","cssProperties","rtlBorder","rtlPadding","isDateHeaderScroll","enableAllDayScroll","classList","contains","border","padding","isPreventScrollUpdate","isInitial","scrollToWorkHour","leftPanelElement","height","workHours","highlight","firstWorkHourCell","scrollToHour","hour","headerElement","getTopFromDateTime","level","columnLevels","generateResourceLevels","hideNonWorkingDays","setProperties","setCalendarDate","updateDateRange","resourceLevel","resStartHour","startHourField","resEndHour","endHourField","dateSlots","workStartHour","workEndHour","end","dateCol","renderDates_1","isWorkHourRange","headerRows","option","currentDate","showTimeIndicator","currentDateIndex","getCurrentTimeIndicatorIndex","workCells","changeCurrentTimePosition","currentTimeIndicatorTimer","getSeconds","getMilliseconds","window","setTimeout","clearCurrentTimeIndicatorTimer","updateCurrentTimeIndicatorTimer","allowVirtualScrolling","_b","getIndexOfDate","resIndex","clearInterval","removeCurrentTimeIndicatorElements","setInterval","queryString","timeIndicator","timeIndicator_1","indicator","firstRow","rows","topInPx","rowIndex","cells","timeCellsWrap","timeTrs","isNaN","curTimeWrap","styles","currentDateIndex_1","day","currentTimeEle","diffInMinutes","getHours","getMinutes","getWorkCellHeight","slotCount","parseFloat","toFixed","getTdContent","cntEle","wrapper","templateName","dateHeaderTemplate","dateHeaderTemplateName","getDateHeaderTemplate","childNodes","majorSlotTemplate","getMajorSlotTemplate","minorSlotTemplate","getMinorSlotTemplate","cellTemplate","cellTemplateName","getCellTemplate","renderHeader","renderLayout","clsList","ignoreWhitespace","renderContent","tr","dateTd","renderDatesHeader","indentTd","renderLeftIndent","workTd","scrollContainer","renderTimeCells","renderContentArea","touchMoveEvent","levels","timesTd","renderVirtualTrack","nth","tbl","trEle","rowCount","ntr_1","cloneNode","data_1","showWeekNumber","weekNo","getWeekNumberContent","title","createTd","renderHeaderIndentTemplate","ntr","appointmentExpandCollapse","container","j","createAllDayRow","ntd","wireCellEvents","thead","eventBase","createEventWrapper","tdEle","isMinMaxDate","wireMouseEvents","elementType","trigger","workCellAction","cellMouseDown","cellClick","cellDblClick","handler","r","first","last","getTimeSlotRows","renderContentTable","tBody","renderContentTableHeader","createContentTd","getContentTdClass","cellDate","args_1","tooltipTemplate","getEndDateFromStartDate","msMajorInterval","msInterval","round","msStartHour","msEndHour","duration","abs","getTimezoneOffset","dt","timeOffset","majorTickDivider","middle","timeSlots","contentScrollableEle","remove","scheduleTouchModule","resetValues","Day","Week","WorkWeek","AgendaBase","createAgendaContentElement","listData","aTd","groupOrder","listElement","fieldMapping","eventFields","noEvents","createList","createElement","moduleName","listClass","itemClass","listElements","li","templateEle","appWrapper","Guid","getReadonlyAttribute","getAnnouncementString","applyResourceColor","eventTemplate","createAppointment","eventTemplateName","getAppointmentTemplate","recurrenceRule","iconClass","recurrenceID","cancel","eventArgs","renderTemplates","event","eventSubject","default","eventLocation","location","appSubjectWrap","appSubjectText","appLocation","strDate","endTime","isAllDay","allDayStr","timeStr","milliSeconds","eventString","displayStr","appDateTime","processAgendaEvents","events","eventsProcessed","events_1","event_1","spanned","splitEventByDay","concat","wireEventActions","eventElement","eventElement_1","wireAppointmentEvents","getEventDetails","dateHeaderElement","dateHeaderElement_1","agendaModule","dayNavigationClick","calculateResourceTableElement","noOfDays","agendaDate","agendaLastDate","days","resColl","resData","initialDate","lastLevelInfo","tempLastLevelInfo","tempIndex","eventObj","dateObj","firstDate","finalDate","agendaCollection","filterEvents","hideEmptyAgendaDays","res","resDataCollection","resDayCollection","undefined","rowSpan","eventData","tempObj","topResources","tempGroupedData","totalRowSpan","y","dataSource","x","z","u","idField","createResourceTableRow","totalCollection","renderEmptyContent","tContent","tempData","tContentCollection","parentCollection","w","rowSpanCollection","filter","createDateHeaderElement","insertBefore","dateTemplate","eTr","createTableRowElement","eTd","dTd","Agenda","agendaDates","virtualScrollTop","wireEvents","eventLoad","eventsData","generatedDates","eventCollection","processedData","filterEventsByResource","renderInitialContent","contentArea","refreshEvent","refreshDate","generateOccurrence","emptyTBody","lastDate","contentChild","emptyTBody_1","minDate","isObject","appointmentFiltering","updateHeaderText","updateHeaderItems","filterData","nTr","cTd","agendaScrolling","virtualScrolling","filterDate","scrollHeight","totalHeight","direction","topElement","getElementFromScrollerPosition","getDateFromElement","getPreviousNextDate","s","scrollToValue","selectedElements","getSelectedAppointments","focus","filterElement","liDetails","liCollection","a","showHeaderBar","getStartDateFromEndDate","dateStart","dateEnd","min","apply","max","maxDate","currentTarget","changeView","unWireEvents","onAgendaScrollUiUpdate","headerHeight","getEvents","changeDate","messageIcon","Location","Subject","StartTime","EndTime","methods","getFormattedTime","toISOString","computed","mounted","component","loadCldr","require","CustomAdaptor","ODataV4Adaptor","processResponse","original","arguments","arr","responseObject","Id","Description","description","IsReadonly","isReadonly","Recurrence","recurrence","RoomId","roomId","MessageUuid","messageUuid","props","provide","schedule","components","readOnly","localeText","AgendaEventTemplate","$emit","obj","init","teams","context","DataManager","url","hostname","adaptor","crossDomain","headers","$cookies","get","token","setCulture","L10n","load","pixels","innerHeight","SentRecipients","MeetingsCalendar","selectedIndex","state","options","class","thClass","label","sortable","changeList","console","log","UpdateItem","self","$http","post","functionbox_uuid","then","response","removed","splice","catch","watch","refresh"],"mappings":"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","file":"js/MeetingsSent~31ecd969.012ff7df.4.2.0.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{key:'sent_' + _vm.redrawIndex,staticClass:\"mt-2\"},[(_vm.searchText != '')?_c('div',[_c('b-table',{attrs:{\"small\":\"\",\"bordered\":\"\",\"items\":_vm.items,\"hover\":\"\",\"fields\":_vm.fields,\"busy\":_vm.loading},on:{\"row-clicked\":_vm.clickedRow},scopedSlots:_vm._u([{key:\"cell(message.created_date)\",fn:function(data){return [_vm._v(_vm._s(_vm.FormatDateTimeRelative(data.item.message.created_date)))]}},{key:\"cell(message.open_from_date)\",fn:function(data){return [_vm._v(_vm._s(_vm.FormatDateTime(data.item.message.open_from_date)))]}},{key:\"cell(message.open_to_date)\",fn:function(data){return [_vm._v(_vm._s(_vm.FormatDateTime(data.item.message.open_to_date)))]}},{key:\"cell(message.size)\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.bytesToSize(data.item.message.size))+\"\\n \")]}},{key:\"cell(message.message_type)\",fn:function(data){return [_c('b-img',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"height\":\"20\",\"width\":\"20\",\"title\":_vm.$t('MESSAGES.TYPE.' + data.item.message.message_type),\"alt\":_vm.$t('MESSAGES.TYPE.' + data.item.message.message_type),\"src\":_vm.getLogo(data.item.message.message_type)}})]}},{key:\"cell(message.has_attachment)\",fn:function(data){return [(data.item.message.has_attachment)?_c('span',[_c('i',{staticClass:\"fal fa-paperclip\"})]):_vm._e()]}},{key:\"cell(message.id)\",fn:function(data){return [(data.item.message.has_attachment)?_c('span',[_c('i',{staticClass:\"fal fa-paperclip\"})]):_vm._e(),_vm._v(\"\\n \"+_vm._s(data.item.message.subject)),_c('br'),_c('small',[_vm._v(_vm._s(_vm.FormatDateTimeRelative(data.item.message.created_date)))]),_c('br'),_c('SentRecipients',{attrs:{\"message_uuid\":data.item.message.message_uuid,\"external\":data.item.external,\"participants\":data.item.participants,\"external_system_participant\":data.item.external_system_participant}})]}},{key:\"cell(message.loa_level)\",fn:function(data){return [(data.item.message.loa_level != 1)?_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"fal fa-info-square\",attrs:{\"title\":_vm.$t('LOA.INFO.' + data.item.message.loa_level)}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"LOA.LEVEL.\" + data.item.message.loa_level))+\"\\n \")]}},{key:\"cell(message.custom_identifier)\",fn:function(data){return [_c('SentRecipients',{attrs:{\"message_uuid\":data.item.message_uuid,\"external\":data.item.external,\"participants\":data.item.participants,\"external_system_participant\":data.item.external_system_participant}})]}},{key:\"table-busy\",fn:function(){return [_c('div',{staticClass:\"text-center my-2\"},[_c('b-spinner',{staticClass:\"align-middle\"})],1)]},proxy:true}],null,false,3785123158)}),_c('b-pagination',{staticClass:\"mt-2\",attrs:{\"total-rows\":_vm.totalItems,\"per-page\":_vm.limit,\"pills\":\"\"},on:{\"input\":_vm.getSent},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1):_vm._e(),(_vm.searchText == '')?_c('MeetingsCalendar',{key:'MeetingsCalendar_' + _vm.redrawIndex,attrs:{\"currentView\":_vm.currentView,\"redrawView\":_vm.listMeetingKey},on:{\"clickedEvent\":_vm.clickedEvent,\"changedView\":_vm.changedView}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.user.information)?_c('section',[(_vm.loaded)?_c('ejs-schedule',{key:_vm.redrawKey,ref:\"ScheduleObj\",attrs:{\"readOnly\":\"true\",\"height\":_vm.heightPixels,\"firstDayOfWeek\":_vm.firstDay,\"locale\":_vm.user.information.locale,\"currentView\":_vm.currentView,\"actionComplete\":_vm.onActionComplete,\"showHeaderBar\":\"false\",\"allowInline\":\"false\",\"allowAdding\":\"false\",\"allowEditing\":\"false\",\"enableMaxHeight\":\"false\",\"allowMultiRowSelection\":\"false\",\"showQuickInfo\":\"false\",\"eventSettings\":_vm.eventSettings},on:{\"cellClick\":_vm.onCellClick,\"cellDoubleClick\":_vm.onCellDoubleClick,\"popupOpen\":_vm.popupOpen,\"navigating\":_vm.navigating,\"eventClick\":_vm.onEventClick}},[_c('e-views',[_c('e-view',{attrs:{\"option\":\"Day\",\"eventTemplate\":_vm.agendaEventTemplate}}),_c('e-view',{attrs:{\"option\":\"Week\",\"eventTemplate\":_vm.agendaEventTemplate}}),_c('e-view',{attrs:{\"option\":\"WorkWeek\",\"eventTemplate\":_vm.agendaEventTemplate}}),_c('e-view',{attrs:{\"option\":\"Agenda\",\"eventTemplate\":_vm.agendaEventTemplate}})],1)],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { createElement, append, prepend, isNullOrUndefined, getValue, getDefaultDateObject, cldrData, addClass, setStyleAttribute, formatUnit, EventHandler, remove } from '@syncfusion/ej2-base';\nimport * as cls from '../base/css-constant';\nimport * as event from '../base/constant';\nimport * as util from '../base/util';\n/**\n * view base\n */\nvar ViewBase = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function ViewBase(parent) {\n this.previousNextAction = 'next';\n this.parent = parent;\n }\n ViewBase.prototype.isTimelineView = function () {\n return this.parent.currentView.indexOf('Timeline') !== -1;\n };\n ViewBase.prototype.getContentRows = function () {\n return [];\n };\n ViewBase.prototype.refreshHeader = function () {\n // Method to refresh the date header\n };\n ViewBase.prototype.refreshResourceHeader = function () {\n remove(this.element.querySelector('tbody').lastElementChild.firstElementChild);\n var resTd = createElement('td');\n resTd.appendChild(this.parent.resourceBase.createResourceColumn());\n prepend([resTd], this.element.querySelector('tbody').lastElementChild);\n this.parent.notify(event.contentReady, {});\n };\n ViewBase.prototype.getDayName = function (date) {\n return this.parent.getDayNames('abbreviated')[date.getDay()];\n };\n ViewBase.prototype.getDate = function (date) {\n return this.parent.globalize.formatDate(date, { format: 'd', calendar: this.parent.getCalendarMode() });\n };\n ViewBase.prototype.getTime = function (date) {\n if (this.parent.isAdaptive) {\n if (this.parent.activeViewOptions.timeFormat === 'HH:mm' || this.parent.activeViewOptions.timeFormat === 'HH.mm') {\n return this.parent.globalize.formatDate(date, { format: 'H', calendar: this.parent.getCalendarMode() });\n }\n return this.parent.globalize.formatDate(date, { skeleton: 'h', calendar: this.parent.getCalendarMode() });\n }\n return this.parent.getTimeString(date);\n };\n ViewBase.prototype.getTimelineDate = function (date) {\n var text = this.parent.globalize.formatDate(date, { skeleton: 'MMMd', calendar: this.parent.getCalendarMode() }) + ', ' +\n this.parent.getDayNames('wide')[date.getDay()];\n return util.capitalizeFirstWord(text, 'multiple');\n };\n ViewBase.prototype.createEventTable = function (trCount) {\n var eventTable = createElement('div', { className: cls.EVENT_TABLE_CLASS });\n append(this.getEventRows(trCount), eventTable);\n return eventTable;\n };\n ViewBase.prototype.getEventRows = function (trCount) {\n var eventRows = [];\n var eventContainer;\n for (var row = 0; row < trCount; row++) {\n eventContainer = createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS });\n if (this.parent.resourceBase && !this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.renderedResources) {\n eventContainer.setAttribute('data-group-index', this.parent.resourceBase.renderedResources[parseInt(row.toString(), 10)].groupIndex.toString());\n }\n eventRows.push(eventContainer);\n }\n return eventRows;\n };\n ViewBase.prototype.collapseRows = function (wrap) {\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n this.parent.resourceBase.hideResourceRows(wrap.querySelector('tbody'));\n this.parent.resourceBase.hideResourceRows(wrap.querySelector('.' + cls.EVENT_TABLE_CLASS));\n }\n };\n ViewBase.prototype.createTableLayout = function (className) {\n var clsName = className || '';\n var table = createElement('table', { className: cls.SCHEDULE_TABLE_CLASS + ' ' + clsName });\n var tbody = createElement('tbody');\n table.appendChild(tbody);\n return table;\n };\n ViewBase.prototype.setAriaAttributes = function (table) {\n table.setAttribute('role', 'grid');\n table.setAttribute('aria-label', this.getLabelText(this.parent.currentView));\n };\n ViewBase.prototype.createColGroup = function (table, lastRow) {\n var length = lastRow.length;\n if (lastRow[0] && lastRow[0].colSpan) {\n length = lastRow.map(function (value) { return value.colSpan; }).reduce(function (prev, next) { return prev + next; });\n }\n var colGroupEle = createElement('colgroup');\n for (var i = 0; i < length; i++) {\n colGroupEle.appendChild(createElement('col'));\n }\n prepend([colGroupEle], table);\n };\n ViewBase.prototype.getScrollXIndent = function (content) {\n return content.offsetHeight - content.clientHeight > 0 ? util.getScrollBarWidth() : 0;\n };\n ViewBase.prototype.scrollTopPanel = function (target) {\n this.getDatesHeaderElement().firstElementChild.scrollLeft = target.scrollLeft;\n };\n ViewBase.prototype.scrollHeaderLabels = function (target) {\n var headerTable = this.element.querySelector('.e-date-header-wrap table');\n var colWidth = headerTable.offsetWidth / headerTable.querySelectorAll('colgroup col').length;\n var applyLeft = function (headerCells, isRtl) {\n var currentCell;\n var tdLeft = 0;\n var colSpan = 0;\n var hiddenLeft = isRtl ? -(target.scrollLeft) : target.scrollLeft;\n for (var _i = 0, headerCells_2 = headerCells; _i < headerCells_2.length; _i++) {\n var cell = headerCells_2[_i];\n colSpan += parseInt(cell.getAttribute('colSpan'), 10);\n if (colSpan > Math.floor(hiddenLeft / colWidth)) {\n currentCell = cell;\n break;\n }\n tdLeft += cell.offsetWidth;\n }\n if (!isNullOrUndefined(currentCell)) {\n currentCell.children[0].style[isRtl ? 'right' : 'left'] = (hiddenLeft - tdLeft) + 'px';\n }\n };\n var classNames = ['.e-header-year-cell', '.e-header-month-cell', '.e-header-week-cell', '.e-header-cells'];\n for (var _i = 0, classNames_1 = classNames; _i < classNames_1.length; _i++) {\n var className = classNames_1[_i];\n var headerCells = [].slice.call(this.element.querySelectorAll(className));\n if (headerCells.length > 0) {\n for (var _a = 0, headerCells_1 = headerCells; _a < headerCells_1.length; _a++) {\n var element = headerCells_1[_a];\n element.children[0].style[this.parent.enableRtl ? 'right' : 'left'] = '';\n }\n applyLeft(headerCells, this.parent.enableRtl);\n }\n }\n };\n ViewBase.prototype.addAttributes = function (td, element) {\n if (td.template) {\n append(td.template, element);\n }\n if (td.colSpan) {\n element.setAttribute('colspan', td.colSpan.toString());\n }\n if (td.className) {\n addClass([element], td.className);\n }\n };\n ViewBase.prototype.getHeaderBarHeight = function () {\n var headerBarHeight = 2;\n if (this.parent.headerModule) {\n headerBarHeight += util.getOuterHeight(this.parent.headerModule.getHeaderElement());\n }\n if (this.parent.uiStateValues.isGroupAdaptive) {\n var resHeader = this.parent.element.querySelector('.' + cls.RESOURCE_HEADER_TOOLBAR);\n if (resHeader) {\n headerBarHeight += resHeader.offsetHeight;\n }\n }\n return headerBarHeight;\n };\n ViewBase.prototype.renderPanel = function (type) {\n if (type === cls.PREVIOUS_PANEL_CLASS) {\n prepend([this.element], this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS));\n }\n else {\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.element);\n }\n };\n ViewBase.prototype.setPanel = function (panel) {\n this.element = panel;\n };\n ViewBase.prototype.getPanel = function () {\n return this.element;\n };\n ViewBase.prototype.getDatesHeaderElement = function () {\n return this.element.querySelector('.' + cls.DATE_HEADER_CONTAINER_CLASS);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ViewBase.prototype.getDateSlots = function (renderDates, workDays) {\n return []; // Here getDateSlots only need in vertical and month views\n };\n ViewBase.prototype.generateColumnLevels = function () {\n return []; // Here generateColumnLevels only need in vertical and month views\n };\n ViewBase.prototype.getColumnLevels = function () {\n return this.colLevels;\n };\n ViewBase.prototype.highlightCurrentTime = function () {\n // Here showTimeIndicator functionalities\n };\n ViewBase.prototype.getStartDate = function () {\n return this.renderDates[0];\n };\n ViewBase.prototype.getEndDate = function () {\n return this.renderDates[this.renderDates.length - 1];\n };\n ViewBase.prototype.startDate = function () {\n return this.renderDates[0];\n };\n ViewBase.prototype.endDate = function () {\n return util.addDays(this.renderDates[this.renderDates.length - 1], 1);\n };\n ViewBase.prototype.getStartHour = function () {\n var startHour = this.parent.getStartEndTime(this.parent.activeViewOptions.startHour);\n if (isNullOrUndefined(startHour)) {\n startHour = new Date(2000, 0, 0, 0);\n }\n return startHour;\n };\n ViewBase.prototype.getEndHour = function () {\n var endHour = this.parent.getStartEndTime(this.parent.activeViewOptions.endHour);\n if (isNullOrUndefined(endHour)) {\n endHour = new Date(2000, 0, 0, 0);\n }\n return endHour;\n };\n ViewBase.prototype.isCurrentDate = function (date) {\n return date.setHours(0, 0, 0, 0) === new Date(this.parent.currentTimezoneDate).setHours(0, 0, 0, 0);\n };\n ViewBase.prototype.isCurrentMonth = function (date) {\n if (this.parent.activeViewOptions.displayDate || this.parent.activeViewOptions.numberOfWeeks > 0) {\n return this.parent.activeView.getStartDate().getTime() <= this.parent.getCurrentTime().getTime() &&\n this.parent.activeView.getEndDate().getTime() >= this.parent.getCurrentTime().getTime();\n }\n return date.getFullYear() ===\n this.parent.getCurrentTime().getFullYear() && date.getMonth() === this.parent.getCurrentTime().getMonth();\n };\n ViewBase.prototype.isWorkDay = function (date, workDays) {\n if (workDays === void 0) { workDays = this.parent.activeViewOptions.workDays; }\n if (workDays.indexOf(date.getDay()) >= 0) {\n return true;\n }\n return false;\n };\n ViewBase.prototype.isWorkHour = function (date, startHour, endHour, workDays) {\n if (isNullOrUndefined(startHour) || isNullOrUndefined(endHour)) {\n return false;\n }\n startHour.setMilliseconds(0);\n endHour.setMilliseconds(0);\n return !(util.getDateInMs(date) < util.getDateInMs(startHour) || util.getDateInMs(date) >= util.getDateInMs(endHour) ||\n !this.isWorkDay(date, workDays));\n };\n ViewBase.prototype.getRenderDates = function (workDays) {\n var renderDates = [];\n // Due to same code for vertical and time line, week & work week views, if condition has used\n if (this.parent.currentView === 'Week' || this.parent.currentView === 'TimelineWeek') {\n var selectedDate = util.resetTime(this.parent.selectedDate);\n var start = util.getWeekFirstDate(selectedDate, this.parent.activeViewOptions.firstDayOfWeek);\n for (var i = 0, length_1 = util.WEEK_LENGTH * this.parent.activeViewOptions.interval; i < length_1; i++) {\n if (this.parent.activeViewOptions.showWeekend) {\n renderDates.push(start);\n }\n else {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n }\n start = util.addDays(start, 1);\n }\n }\n else if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {\n var start = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.activeViewOptions.firstDayOfWeek);\n for (var i = 0, length_2 = util.WEEK_LENGTH * this.parent.activeViewOptions.interval; i < length_2; i++) {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n start = util.addDays(start, 1);\n }\n }\n else {\n var dayCount = this.parent.currentView === 'Agenda' ? this.parent.agendaDaysCount :\n this.parent.activeViewOptions.interval;\n var start = util.resetTime(this.parent.selectedDate);\n do {\n if (this.parent.activeViewOptions.showWeekend) {\n renderDates.push(start);\n }\n else {\n if (this.isWorkDay(start, workDays)) {\n renderDates.push(start);\n }\n }\n start = util.addDays(start, 1);\n } while (dayCount !== renderDates.length);\n }\n if (!workDays) {\n this.renderDates = renderDates;\n }\n if (this.parent.headerModule) {\n this.parent.headerModule.previousNextIconHandler();\n }\n return renderDates;\n };\n ViewBase.prototype.getNextPreviousDate = function (type) {\n this.previousNextAction = type;\n if (this.parent.currentView === 'Day' || this.parent.currentView === 'TimelineDay') {\n if (this.parent.activeViewOptions.showWeekend) {\n var daysCount = this.parent.activeViewOptions.interval;\n return util.addDays(this.parent.selectedDate, type === 'next' ? daysCount : -daysCount);\n }\n else {\n var date = void 0;\n if (type === 'next') {\n date = util.addDays(this.renderDates.slice(-1)[0], 1);\n while (!this.isWorkDay(date)) {\n date = util.addDays(date, 1);\n }\n }\n else {\n date = util.addDays(this.renderDates[0], -1);\n var count = 0;\n do {\n if (this.isWorkDay(date)) {\n count += 1;\n }\n if (this.parent.activeViewOptions.interval !== count) {\n date = util.addDays(date, -1);\n }\n } while (this.parent.activeViewOptions.interval !== count);\n }\n return date;\n }\n }\n var weekLength = type === 'next' ? util.WEEK_LENGTH : -util.WEEK_LENGTH;\n return util.addDays(this.parent.selectedDate, weekLength * this.parent.activeViewOptions.interval);\n };\n ViewBase.prototype.getLabelText = function (view) {\n var viewStr = view.charAt(0).toLowerCase() + view.substring(1);\n return this.parent.localeObj.getConstant(viewStr) + ' of ' + util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { skeleton: 'long', calendar: this.parent.getCalendarMode() }), 'single');\n };\n ViewBase.prototype.getDateRangeText = function () {\n if (this.parent.isAdaptive) {\n var formatDate = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: formatDate, calendar: this.parent.getCalendarMode() }), 'single');\n }\n return this.formatDateRange(this.renderDates[0], this.renderDates[this.renderDates.length - 1]);\n };\n ViewBase.prototype.formatDateRange = function (startDate, endDate) {\n var globalize = this.parent.globalize;\n var mode = this.parent.getCalendarMode();\n if (startDate === endDate) {\n endDate = null;\n }\n if (!isNullOrUndefined(this.parent.activeViewOptions.dateFormat)) {\n var text = '';\n if (!endDate) {\n text = globalize.formatDate(startDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode });\n return util.capitalizeFirstWord(text, 'multiple');\n }\n text = (globalize.formatDate(startDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode }) +\n ' - ' + globalize.formatDate(endDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode }));\n return util.capitalizeFirstWord(text, 'multiple');\n }\n var formattedStr;\n var longDateFormat;\n if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {\n longDateFormat = getValue('dateFormats.long', getDefaultDateObject(mode));\n }\n else {\n longDateFormat = getValue('main.' + '' + this.parent.locale + '.dates.calendars.' + mode + '.dateFormats.long', cldrData);\n }\n if (!endDate) {\n return util.capitalizeFirstWord(globalize.formatDate(startDate, { format: longDateFormat, calendar: mode }), 'single');\n }\n var dateFormat = longDateFormat.trim().toLocaleLowerCase();\n if (dateFormat.substr(0, 1) === 'd') {\n if (startDate.getFullYear() === endDate.getFullYear()) {\n if (startDate.getMonth() === endDate.getMonth()) {\n formattedStr = globalize.formatDate(startDate, { format: 'dd', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd MMMM yyyy', calendar: mode });\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: 'dd MMM', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd MMM yyyy', calendar: mode });\n }\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: 'dd MMM yyyy', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd MMM yyyy', calendar: mode });\n }\n }\n else if (dateFormat.substr(0, 1) === 'm') {\n if (startDate.getFullYear() === endDate.getFullYear()) {\n if (startDate.getMonth() === endDate.getMonth()) {\n formattedStr = globalize.formatDate(startDate, { format: 'MMMM dd', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'dd, yyyy', calendar: mode });\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: 'MMM dd', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'MMM dd, yyyy', calendar: mode });\n }\n }\n else {\n formattedStr = globalize.\n formatDate(startDate, { format: 'MMM dd, yyyy', calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: 'MMM dd, yyyy', calendar: mode });\n }\n }\n else {\n formattedStr = globalize.formatDate(startDate, { format: longDateFormat, calendar: mode }) + ' - ' +\n globalize.formatDate(endDate, { format: longDateFormat, calendar: mode });\n }\n return util.capitalizeFirstWord(formattedStr, 'multiple');\n };\n ViewBase.prototype.getMobileDateElement = function (date, className) {\n var wrap = createElement('div', {\n className: className,\n innerHTML: '
' + this.parent.globalize.formatDate(date, { format: 'd', calendar: this.parent.getCalendarMode() }) + '
' + '
' +\n util.capitalizeFirstWord(this.parent.globalize.formatDate(date, { format: 'E', calendar: this.parent.getCalendarMode() }), 'single') + '
'\n });\n return wrap;\n };\n ViewBase.prototype.setResourceHeaderContent = function (tdElement, tdData, className) {\n if (className === void 0) { className = cls.TEXT_ELLIPSIS; }\n if (this.parent.activeViewOptions.resourceHeaderTemplate) {\n var data = { resource: tdData.resource, resourceData: tdData.resourceData };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.resourceHeaderTemplateName;\n var templateId = scheduleId + viewName + 'resourceHeaderTemplate';\n var quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false));\n append(quickTemplate, tdElement);\n }\n else {\n var resourceText = createElement('div', { className: className });\n this.parent.sanitize(tdData.resourceData[tdData.resource.textField], resourceText);\n tdElement.appendChild(resourceText);\n }\n };\n ViewBase.prototype.renderResourceMobileLayout = function () {\n if (this.parent.resourceBase.lastResourceLevel && this.parent.resourceBase.lastResourceLevel.length <= 0) {\n return;\n }\n this.parent.resourceBase.renderResourceHeader();\n this.parent.resourceBase.renderResourceTree();\n };\n ViewBase.prototype.addAutoHeightClass = function (element) {\n if (!this.parent.uiStateValues.isGroupAdaptive && this.parent.rowAutoHeight && this.isTimelineView()\n && this.parent.activeViewOptions.group.resources.length > 0) {\n addClass([element], cls.AUTO_HEIGHT);\n }\n };\n ViewBase.prototype.getColElements = function () {\n return [].slice.call(this.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' col, .' + cls.DATE_HEADER_WRAP_CLASS + ' col'));\n };\n ViewBase.prototype.setColWidth = function (content) {\n if (this.isTimelineView()) {\n var colElements = this.getColElements();\n var contentBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\n var colWidth_1 = (contentBody.getBoundingClientRect().width / (colElements.length / 2));\n if (content.offsetHeight !== content.clientHeight) {\n var resourceColumn = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\n if (!isNullOrUndefined(resourceColumn)) {\n setStyleAttribute(resourceColumn, { 'height': formatUnit(content.clientHeight) });\n }\n }\n var cssClass = \".\" + cls.HEADER_CELLS_CLASS + \",.\" + cls.TIME_SLOT_CLASS + \",.\" + cls.HEADER_WEEK_CELLS_CLASS + \",.\" + cls.HEADER_MONTH_CELLS_CLASS + \",.\" + cls.HEADER_YEAR_CELLS_CLASS;\n var headerCellElements = [].slice.call(this.element.querySelectorAll(cssClass));\n headerCellElements.forEach(function (ele) {\n var colSpan = isNullOrUndefined(ele.getAttribute('colspan')) ? '1' : ele.getAttribute('colspan');\n var headerCellColSpan = parseInt(colSpan, 10);\n setStyleAttribute(ele, { 'width': formatUnit(colWidth_1 * headerCellColSpan) });\n });\n }\n };\n ViewBase.prototype.resetColWidth = function () {\n var colElements = this.getColElements();\n for (var _i = 0, colElements_1 = colElements; _i < colElements_1.length; _i++) {\n var col = colElements_1[_i];\n col.style.width = '';\n }\n };\n ViewBase.prototype.getContentAreaElement = function () {\n return this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n };\n ViewBase.prototype.wireExpandCollapseIconEvents = function () {\n if (this.parent.resourceBase && this.parent.resourceBase.resourceCollection.length > 1) {\n var treeIcons = [].slice.call(this.element.querySelectorAll('.' + cls.RESOURCE_TREE_ICON_CLASS));\n for (var _i = 0, treeIcons_1 = treeIcons; _i < treeIcons_1.length; _i++) {\n var icon = treeIcons_1[_i];\n EventHandler.clearEvents(icon);\n EventHandler.add(icon, 'click', this.parent.resourceBase.onTreeIconClick, this.parent.resourceBase);\n }\n }\n };\n ViewBase.prototype.scrollToDate = function (scrollDate) {\n if (['Month', 'TimelineMonth'].indexOf(this.parent.currentView) === -1 || isNullOrUndefined(scrollDate)) {\n return;\n }\n var scrollWrap = this.getContentAreaElement();\n var tdDate = new Date(util.resetTime(new Date(+scrollDate)).getTime()).getTime();\n var dateElement = scrollWrap.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-date=\\\"\" + tdDate + \"\\\"]\");\n if (this.parent.currentView === 'Month' && dateElement) {\n if (scrollWrap.scrollWidth > scrollWrap.clientWidth) {\n if (!this.parent.enableRtl) {\n scrollWrap.scrollLeft = dateElement.offsetLeft;\n }\n else {\n scrollWrap.scrollLeft = -(this.parent.getContentTable().offsetWidth - dateElement.offsetLeft - dateElement.offsetWidth);\n }\n }\n scrollWrap.scrollTop = dateElement.offsetTop;\n }\n if (this.parent.currentView === 'TimelineMonth' && dateElement) {\n if (!this.parent.enableRtl) {\n scrollWrap.scrollLeft = dateElement.offsetLeft;\n }\n else {\n scrollWrap.scrollLeft = -(this.parent.getContentTable().offsetWidth - dateElement.offsetLeft - dateElement.offsetWidth);\n }\n }\n };\n ViewBase.prototype.setPersistence = function () {\n if (this.parent.enablePersistence) {\n var contentWrap = this.element.querySelector('.e-content-wrap');\n if (!isNullOrUndefined(contentWrap)) {\n this.parent.scrollLeft = contentWrap.scrollLeft;\n this.parent.scrollTop = contentWrap.scrollTop;\n }\n }\n };\n ViewBase.prototype.retainScrollPosition = function () {\n if (this.parent.enablePersistence) {\n var conWrap = this.parent.element.querySelector('.e-content-wrap');\n if (!isNullOrUndefined(conWrap) && !isNullOrUndefined(this.parent.scrollLeft) && !isNullOrUndefined(this.parent.scrollTop)) {\n conWrap.scrollTop = this.parent.scrollTop;\n conWrap.scrollLeft = this.parent.scrollLeft;\n }\n }\n };\n ViewBase.prototype.getViewStartDate = function () {\n var startDate = this.renderDates[0];\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {\n startDate = this.parent.resourceBase.getResourceRenderDates()[0];\n }\n return startDate;\n };\n ViewBase.prototype.getViewEndDate = function () {\n var endDate = util.addDays(this.renderDates[this.renderDates.length - 1], 1);\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {\n endDate = util.addDays(this.parent.resourceBase.getResourceRenderDates().slice(-1)[0], 1);\n }\n return endDate;\n };\n ViewBase.prototype.getAdjustedDate = function (startTime) {\n if (!this.parent.activeViewOptions.timeScale.enable || this.parent.currentView === 'Month' ||\n (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.group.resources.length === 0)) {\n return new Date(startTime.setHours(0, 0, 0, 0));\n }\n else if (this.parent.currentView === 'TimelineYear' && this.parent.activeViewOptions.group.resources.length > 0) {\n startTime.setHours(0, 0, 0, 0);\n return new Date(startTime.setDate(1));\n }\n return null;\n };\n ViewBase.prototype.resetColLevels = function () {\n this.parent.resourceBase.expandedResources = [];\n var renderedCount = this.parent.virtualScrollModule.getRenderedCount();\n var lastLevel = this.parent.activeViewOptions.group.byDate ? this.colLevels[0] :\n this.parent.resourceBase.renderedResources;\n var index = 0;\n for (var i = 0; i < lastLevel.length; i++) {\n if (index >= renderedCount) {\n break;\n }\n index += lastLevel[parseInt(i.toString(), 10)].colSpan;\n this.parent.resourceBase.expandedResources.push(lastLevel[parseInt(i.toString(), 10)]);\n }\n if (this.parent.activeViewOptions.group.byDate) {\n this.colLevels[0] = this.parent.resourceBase.expandedResources;\n this.parent.virtualScrollModule.setRenderedDates(this.parent.resourceBase.expandedResources);\n }\n else {\n this.colLevels[this.colLevels.length - 2] = this.parent.resourceBase.expandedResources;\n this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources;\n }\n if (this.parent.currentView !== 'Month') {\n this.colLevels[this.colLevels.length - 1] = this.colLevels[this.colLevels.length - 1].slice(0, index);\n this.parent.resourceBase.expandedResources = this.colLevels[this.colLevels.length - 1];\n }\n };\n ViewBase.prototype.destroy = function () {\n if (this.element && this.element.parentNode) {\n remove(this.element);\n }\n this.element = null;\n this.renderDates = null;\n this.colLevels = null;\n };\n return ViewBase;\n}());\nexport { ViewBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { isNullOrUndefined, extend, EventHandler, formatUnit, Browser } from '@syncfusion/ej2-base';\nimport { createElement, remove, addClass, removeClass, append, prepend } from '@syncfusion/ej2-base';\nimport { ViewBase } from './view-base';\nimport { VerticalEvent } from '../event-renderer/vertical-view';\nimport { MonthEvent } from '../event-renderer/month';\nimport * as util from '../base/util';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\n/**\n * vertical view\n */\nvar VerticalView = /** @class */ (function (_super) {\n __extends(VerticalView, _super);\n function VerticalView(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-day-view';\n _this.isInverseTableSelect = true;\n _this.baseCssClass = 'e-vertical-view';\n _this.appointment = null;\n return _this;\n }\n VerticalView.prototype.getModuleName = function () {\n return 'verticalView';\n };\n VerticalView.prototype.addEventListener = function () {\n this.parent.on(event.scrollUiUpdate, this.scrollUiUpdate, this);\n this.parent.on(event.dataReady, this.renderEvents, this);\n };\n VerticalView.prototype.removeEventListener = function () {\n if (this.parent) {\n this.parent.off(event.scrollUiUpdate, this.scrollUiUpdate);\n this.parent.off(event.dataReady, this.renderEvents);\n }\n };\n VerticalView.prototype.renderEvents = function () {\n this.appointment = this.parent.activeViewOptions.timeScale.enable ?\n new VerticalEvent(this.parent) : new MonthEvent(this.parent);\n this.appointment.renderAppointments();\n this.parent.notify(event.eventsLoaded, {});\n };\n VerticalView.prototype.onContentScroll = function (e) {\n this.parent.removeNewEventElement();\n var target = e.target;\n this.parent.notify(event.virtualScroll, e);\n this.scrollLeftPanel(target);\n this.scrollTopPanel(target);\n if (!this.parent.isAdaptive) {\n this.parent.uiStateValues.top = target.scrollTop;\n }\n this.parent.uiStateValues.left = target.scrollLeft;\n if (!isNullOrUndefined(this.parent.quickPopup)) {\n this.parent.quickPopup.quickPopupHide();\n }\n this.setPersistence();\n };\n VerticalView.prototype.onAdaptiveMove = function (e) {\n if (this.parent.uiStateValues.action) {\n e.preventDefault();\n }\n };\n VerticalView.prototype.onAdaptiveScroll = function (e) {\n if (this.parent && !this.parent.isDestroyed) {\n this.parent.removeNewEventElement();\n this.parent.uiStateValues.top = e.target.scrollTop;\n }\n };\n VerticalView.prototype.scrollLeftPanel = function (target) {\n var leftPanel = this.getLeftPanelElement();\n if (!isNullOrUndefined(leftPanel)) {\n leftPanel.scrollTop = target.scrollTop;\n }\n };\n VerticalView.prototype.scrollUiUpdate = function (args) {\n if (!this.parent) {\n return;\n }\n var dateHeader = this.parent.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\n var headerBarHeight = this.getHeaderBarHeight();\n var timeCells = this.getLeftPanelElement();\n var content = this.getScrollableElement();\n var header = this.getDatesHeaderElement();\n var scrollerHeight = this.parent.element.offsetHeight - headerBarHeight - header.offsetHeight;\n this.setContentHeight(content, timeCells, scrollerHeight);\n this.setColWidth(content);\n var scrollBarWidth = util.getScrollBarWidth();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.firstElementChild.style[args.cssProperties.rtlBorder] = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.style[args.cssProperties.rtlPadding] = '';\n var isDateHeaderScroll = this.parent.enableAllDayScroll ? !((content.offsetWidth - content.clientWidth) <=\n (dateHeader.offsetWidth - dateHeader.clientWidth) && dateHeader.classList.contains('e-all-day-scroll')) : true;\n if (content.offsetWidth - content.clientWidth > 0 && isDateHeaderScroll) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.firstElementChild.style[args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.style[args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.firstElementChild.style[args.cssProperties.border] = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header.style[args.cssProperties.padding] = '';\n }\n if (!args.isPreventScrollUpdate) {\n if (this.parent.uiStateValues.isInitial) {\n if (this.parent.currentView.indexOf('Timeline') > -1) {\n content.scrollTop = this.parent.uiStateValues.top;\n }\n this.scrollToWorkHour();\n this.parent.uiStateValues.isInitial = false;\n }\n else {\n if (timeCells) {\n timeCells.scrollTop = this.parent.uiStateValues.top;\n }\n content.scrollTop = this.parent.uiStateValues.top;\n content.scrollLeft = this.parent.uiStateValues.left;\n }\n }\n if (this.parent.activeViewOptions.timeScale.enable) {\n this.highlightCurrentTime();\n }\n this.retainScrollPosition();\n };\n VerticalView.prototype.setContentHeight = function (element, leftPanelElement, height) {\n if (this.parent.isAdaptive && !this.isTimelineView()) {\n element.style.height = (this.parent.height === 'auto') ? 'auto' : formatUnit(height);\n }\n else {\n if (!isNullOrUndefined(leftPanelElement)) {\n leftPanelElement.style.height = (this.parent.height === 'auto') ? 'auto'\n : formatUnit(height - this.getScrollXIndent(element));\n }\n element.style.height = (this.parent.height === 'auto') ? 'auto' : formatUnit(height);\n }\n };\n VerticalView.prototype.scrollToWorkHour = function () {\n if (this.parent.workHours.highlight) {\n var firstWorkHourCell = this.element.querySelector('.' + cls.WORK_HOURS_CLASS);\n if (firstWorkHourCell) {\n this.getScrollableElement().scrollTop = firstWorkHourCell.offsetTop;\n this.parent.uiStateValues.top = firstWorkHourCell.offsetTop;\n this.parent.uiStateValues.left = 0;\n }\n }\n };\n VerticalView.prototype.scrollToHour = function (hour, scrollDate) {\n var date = this.parent.getStartEndTime(hour);\n if (!isNullOrUndefined(scrollDate)) {\n var headerElement = this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + '[data-date=\"' + new Date(util.resetTime(scrollDate)).getTime() + '\"]');\n if (headerElement) {\n if (this.parent.enableRtl) {\n var conWrap = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\n this.getScrollableElement().scrollLeft = -(conWrap.offsetWidth - headerElement.offsetLeft - headerElement.offsetWidth);\n }\n else {\n this.getScrollableElement().scrollLeft = headerElement.offsetLeft;\n }\n }\n }\n if (isNullOrUndefined(date)) {\n return;\n }\n this.getScrollableElement().scrollTop = this.getTopFromDateTime(date);\n };\n VerticalView.prototype.scrollToDate = function (scrollDate) {\n this.scrollToHour(null, scrollDate);\n };\n VerticalView.prototype.generateColumnLevels = function () {\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n var columnLevels = [];\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n columnLevels = this.parent.resourceBase.generateResourceLevels(level);\n if (this.parent.activeViewOptions.group.hideNonWorkingDays) {\n while (columnLevels[0].length === 0) {\n this.parent.setProperties({ selectedDate: this.parent.activeView.getNextPreviousDate(this.previousNextAction) }, true);\n this.parent.activeView.getRenderDates();\n if (this.parent.headerModule) {\n this.parent.headerModule.setCalendarDate(this.parent.selectedDate);\n this.parent.headerModule.updateDateRange();\n }\n level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n columnLevels = this.parent.resourceBase.generateResourceLevels(level);\n }\n }\n if (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0) {\n var resourceLevel = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\n var resStartHour = resourceLevel.resourceData[resourceLevel.resource.startHourField];\n var resEndHour = resourceLevel.resourceData[resourceLevel.resource.endHourField];\n var dateSlots = this.getDateSlots(resourceLevel.renderDates, resourceLevel.workDays, resStartHour, resEndHour);\n columnLevels = [dateSlots];\n }\n }\n else {\n columnLevels.push(level);\n }\n this.colLevels = columnLevels;\n return columnLevels;\n };\n // eslint-disable-next-line max-len\n VerticalView.prototype.getDateSlots = function (renderDates, workDays, workStartHour, workEndHour) {\n if (workStartHour === void 0) { workStartHour = this.parent.workHours.start; }\n if (workEndHour === void 0) { workEndHour = this.parent.workHours.end; }\n var dateCol = [];\n var start = this.parent.getStartEndTime(workStartHour);\n var end = this.parent.getStartEndTime(workEndHour);\n for (var _i = 0, renderDates_1 = renderDates; _i < renderDates_1.length; _i++) {\n var col = renderDates_1[_i];\n var classList = [cls.HEADER_CELLS_CLASS];\n if (this.isCurrentDate(col)) {\n classList.push(cls.CURRENT_DAY_CLASS);\n }\n dateCol.push({\n date: col, type: 'dateHeader', className: classList, colSpan: 1,\n workDays: workDays, startHour: new Date(+start), endHour: new Date(+end)\n });\n }\n return dateCol;\n };\n VerticalView.prototype.isWorkHourRange = function (date) {\n return (this.getStartHour().getTime() <= date.getTime()) && (this.getEndHour().getTime() >= date.getTime());\n };\n VerticalView.prototype.highlightCurrentTime = function () {\n var _this = this;\n if (this.parent.activeViewOptions.headerRows.length > 0 &&\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\n return;\n }\n var currentDate = this.parent.getCurrentTime();\n if (this.parent.showTimeIndicator && this.isWorkHourRange(currentDate)) {\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\n if (currentDateIndex.length > 0) {\n var workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\n if (workCells.length > 0) {\n this.changeCurrentTimePosition();\n }\n if (isNullOrUndefined(this.currentTimeIndicatorTimer)) {\n var interval = util.MS_PER_MINUTE - ((currentDate.getSeconds() * 1000) + currentDate.getMilliseconds());\n if (interval <= (util.MS_PER_MINUTE - 1000)) {\n window.setTimeout(function () {\n if (!isNullOrUndefined(_this.currentTimeIndicatorTimer)) {\n _this.clearCurrentTimeIndicatorTimer();\n _this.changeCurrentTimePosition();\n _this.updateCurrentTimeIndicatorTimer();\n }\n }, interval);\n }\n this.updateCurrentTimeIndicatorTimer();\n }\n }\n else {\n this.clearCurrentTimeIndicatorTimer();\n }\n }\n else {\n this.clearCurrentTimeIndicatorTimer();\n }\n };\n VerticalView.prototype.getCurrentTimeIndicatorIndex = function () {\n var currentDateIndex = [];\n if (!isNullOrUndefined(this.parent.resourceBase) && (this.parent.activeViewOptions.group.resources.length > 0) &&\n !this.parent.uiStateValues.isGroupAdaptive) {\n var count = 0;\n var currentDate = util.resetTime(this.parent.getCurrentTime());\n if (this.parent.virtualScrollModule && this.parent.activeViewOptions.allowVirtualScrolling &&\n this.parent.activeViewOptions.group.byDate) {\n for (var _i = 0, _a = this.parent.resourceBase.expandedResources; _i < _a.length; _i++) {\n var resource = _a[_i];\n if (util.resetTime(resource.date).getTime() === currentDate.getTime()) {\n currentDateIndex.push(count);\n }\n count += 1;\n }\n }\n else {\n for (var _b = 0, _c = this.parent.resourceBase.renderedResources; _b < _c.length; _b++) {\n var resource = _c[_b];\n var index = this.parent.getIndexOfDate(resource.renderDates, currentDate);\n if (index >= 0) {\n var resIndex = this.parent.activeViewOptions.group.byDate ?\n (this.parent.resourceBase.lastResourceLevel.length * index) + count : count + index;\n currentDateIndex.push(resIndex);\n }\n count += this.parent.activeViewOptions.group.byDate ? 1 : resource.renderDates.length;\n }\n }\n }\n else {\n var renderDates = (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0)\n ? this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex].renderDates : this.renderDates;\n var index = this.parent.getIndexOfDate(renderDates, util.resetTime(this.parent.getCurrentTime()));\n if (index >= 0) {\n currentDateIndex.push(index);\n }\n }\n return currentDateIndex;\n };\n VerticalView.prototype.clearCurrentTimeIndicatorTimer = function () {\n if (!isNullOrUndefined(this.currentTimeIndicatorTimer)) {\n window.clearInterval(this.currentTimeIndicatorTimer);\n this.currentTimeIndicatorTimer = null;\n this.removeCurrentTimeIndicatorElements();\n }\n };\n VerticalView.prototype.updateCurrentTimeIndicatorTimer = function () {\n var _this = this;\n this.currentTimeIndicatorTimer = window.setInterval(function () { _this.changeCurrentTimePosition(); }, util.MS_PER_MINUTE);\n };\n VerticalView.prototype.removeCurrentTimeIndicatorElements = function () {\n var queryString = '.' + cls.PREVIOUS_TIMELINE_CLASS + ',.' + cls.CURRENT_TIMELINE_CLASS + ',.' + cls.CURRENT_TIME_CLASS;\n var timeIndicator = [].slice.call(this.element.querySelectorAll(queryString));\n for (var _i = 0, timeIndicator_1 = timeIndicator; _i < timeIndicator_1.length; _i++) {\n var indicator = timeIndicator_1[_i];\n remove(indicator);\n }\n };\n VerticalView.prototype.changeCurrentTimePosition = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.removeCurrentTimeIndicatorElements();\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\n var firstRow = this.parent.getContentTable().rows[0];\n var top = this.getTopFromDateTime(this.parent.getCurrentTime());\n var topInPx = formatUnit(top);\n var rowIndex = Math.floor(top / firstRow.cells[0].offsetHeight);\n var timeCellsWrap = this.getLeftPanelElement();\n var timeTrs = [].slice.call(timeCellsWrap.querySelectorAll('tr'));\n if (isNullOrUndefined(rowIndex) || isNaN(rowIndex) || rowIndex === timeTrs.length) {\n return;\n }\n var curTimeWrap = [].slice.call(this.element.querySelectorAll('.' + cls.TIMELINE_WRAPPER_CLASS));\n for (var i = 0, length_1 = currentDateIndex[0]; i < length_1; i++) {\n curTimeWrap[parseInt(i.toString(), 10)].appendChild(createElement('div', { className: cls.PREVIOUS_TIMELINE_CLASS, styles: 'top:' + topInPx }));\n }\n for (var _i = 0, currentDateIndex_1 = currentDateIndex; _i < currentDateIndex_1.length; _i++) {\n var day = currentDateIndex_1[_i];\n curTimeWrap[parseInt(day.toString(), 10)].appendChild(createElement('div', { className: cls.CURRENT_TIMELINE_CLASS, styles: 'top:' + topInPx }));\n }\n var currentTimeEle = createElement('div', {\n innerHTML: this.parent.getTimeString(this.parent.getCurrentTime()),\n className: cls.CURRENT_TIME_CLASS,\n styles: 'top:' + topInPx\n });\n if (rowIndex <= timeTrs.length) {\n removeClass(timeCellsWrap.querySelectorAll('.' + cls.HIDE_CHILDS_CLASS), cls.HIDE_CHILDS_CLASS);\n if (timeTrs[parseInt(rowIndex.toString(), 10)]) {\n addClass([timeTrs[parseInt(rowIndex.toString(), 10)].lastElementChild], cls.HIDE_CHILDS_CLASS);\n }\n prepend([currentTimeEle], timeCellsWrap);\n currentTimeEle.style.top = formatUnit(currentTimeEle.offsetTop - (currentTimeEle.offsetHeight / 2));\n }\n };\n VerticalView.prototype.getTopFromDateTime = function (date) {\n var startHour = this.getStartHour();\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\n return (diffInMinutes * this.getWorkCellHeight() * this.parent.activeViewOptions.timeScale.slotCount) /\n this.parent.activeViewOptions.timeScale.interval;\n };\n VerticalView.prototype.getWorkCellHeight = function () {\n return parseFloat(this.element.querySelector('.' + cls.WORK_CELLS_CLASS).getBoundingClientRect().height.toFixed(2));\n };\n VerticalView.prototype.getTdContent = function (date, type, groupIndex) {\n var cntEle;\n var wrapper = createElement('div');\n var templateName = '';\n var templateId = this.parent.element.id + '_';\n switch (type) {\n case 'dateHeader':\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\n templateName = 'dateHeaderTemplate';\n var args = { date: date, type: type };\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\n cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));\n }\n else {\n wrapper.innerHTML = this.parent.activeView.isTimelineView() ?\n \"\" + this.getTimelineDate(date) + \"\" :\n \"
\" + util.capitalizeFirstWord(this.getDayName(date), 'single') + \"
\" +\n (\"
\" + this.getDate(date) + \"
\");\n cntEle = [].slice.call(wrapper.childNodes);\n }\n break;\n case 'majorSlot':\n if (this.parent.activeViewOptions.timeScale.majorSlotTemplate) {\n templateName = 'majorSlotTemplate';\n var args = { date: date, type: type };\n cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));\n }\n else {\n wrapper.innerHTML = \"\" + this.getTime(date) + \"\";\n cntEle = [].slice.call(wrapper.childNodes);\n }\n break;\n case 'minorSlot':\n if (this.parent.activeViewOptions.timeScale.minorSlotTemplate) {\n templateName = 'minorSlotTemplate';\n var args = { date: date, type: type };\n cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));\n }\n else {\n cntEle = [].slice.call(wrapper.childNodes);\n }\n break;\n case 'alldayCells':\n if (this.parent.activeViewOptions.cellTemplate) {\n var viewName = this.parent.activeViewOptions.cellTemplateName;\n templateName = 'cellTemplate';\n var args = { date: date, type: type, groupIndex: groupIndex };\n cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));\n }\n break;\n }\n return cntEle;\n };\n VerticalView.prototype.refreshHeader = function () {\n remove(this.element.querySelector('tbody tr'));\n this.renderHeader();\n this.parent.notify(event.contentReady, {});\n };\n VerticalView.prototype.renderLayout = function (type) {\n this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));\n var clsList = [this.baseCssClass, this.viewClass];\n clsList.push(type);\n if (this.parent.activeViewOptions.group.byDate) {\n clsList.push('e-by-date');\n }\n if (!this.parent.activeViewOptions.timeScale.enable) {\n addClass([this.element], [cls.TIMESCALE_DISABLE, this.viewClass]);\n }\n if (this.parent.activeViewOptions.allowVirtualScrolling && !this.parent.uiStateValues.isGroupAdaptive) {\n clsList.push(cls.VIRTUAL_SCROLL_CLASS);\n }\n if (this.parent.rowAutoHeight && this.parent.eventSettings.ignoreWhitespace) {\n clsList.push(cls.IGNORE_WHITESPACE);\n }\n this.renderPanel(type);\n addClass([this.element], clsList);\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\n this.element.querySelector('table').setAttribute('role', 'presentation');\n this.colLevels = this.generateColumnLevels();\n this.renderHeader();\n this.renderContent();\n if (this.parent.uiStateValues.isGroupAdaptive && !this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\n this.renderResourceMobileLayout();\n }\n this.parent.notify(event.contentReady, {});\n };\n VerticalView.prototype.renderHeader = function () {\n var tr = createElement('tr');\n var dateTd = createElement('td');\n dateTd.appendChild(this.renderDatesHeader());\n if (this.parent.activeViewOptions.timeScale.enable) {\n var indentTd = createElement('td', { className: cls.LEFT_INDENT_CLASS });\n indentTd.appendChild(this.renderLeftIndent());\n tr.appendChild(indentTd);\n }\n tr.appendChild(dateTd);\n prepend([tr], this.element.querySelector('tbody'));\n };\n VerticalView.prototype.renderContent = function () {\n if (this.parent.activeViewOptions.group.resources.length > 0) {\n this.parent.resourceBase.renderedResources = extend([], this.parent.resourceBase.lastResourceLevel, null, true);\n }\n var tr = createElement('tr');\n var workTd = createElement('td');\n if (this.parent.isAdaptive) {\n workTd.setAttribute('colspan', (this.parent.activeViewOptions.timeScale.enable ? '2' : '1'));\n var scrollContainer = createElement('div', { className: cls.SCROLL_CONTAINER_CLASS });\n if (this.parent.activeViewOptions.timeScale.enable) {\n scrollContainer.appendChild(this.renderTimeCells());\n }\n scrollContainer.appendChild(this.renderContentArea());\n workTd.appendChild(scrollContainer);\n EventHandler.add(scrollContainer, 'scroll', this.onAdaptiveScroll, this);\n EventHandler.add(scrollContainer, Browser.touchMoveEvent, this.onAdaptiveMove, this);\n tr.appendChild(workTd);\n }\n else {\n var levels = this.colLevels.slice(0);\n if (this.parent.virtualScrollModule) {\n this.resetColLevels();\n }\n var wrap = this.renderContentArea();\n workTd.appendChild(wrap);\n if (this.parent.activeViewOptions.timeScale.enable) {\n var timesTd = createElement('td');\n timesTd.appendChild(this.renderTimeCells());\n tr.appendChild(timesTd);\n }\n tr.appendChild(workTd);\n if (this.parent.virtualScrollModule) {\n this.colLevels = levels;\n this.parent.virtualScrollModule.renderVirtualTrack(wrap);\n }\n }\n this.element.querySelector('tbody').appendChild(tr);\n };\n VerticalView.prototype.renderLeftIndent = function () {\n var wrap = createElement('div', { className: cls.LEFT_INDENT_WRAP_CLASS });\n var tbl = this.createTableLayout();\n var trEle = createElement('tr');\n var rowCount = this.colLevels.length;\n var nth;\n for (var i = 0; i < rowCount; i++) {\n var ntr_1 = trEle.cloneNode();\n var data_1 = { className: [(this.colLevels[parseInt(i.toString(), 10)][0] && this.colLevels[parseInt(i.toString(), 10)][0].className[0])], type: 'emptyCells' };\n if (this.parent.activeViewOptions.showWeekNumber && data_1.className.indexOf(cls.HEADER_CELLS_CLASS) !== -1) {\n data_1.className.push(cls.WEEK_NUMBER_CLASS);\n var weekNo = this.parent.getWeekNumberContent(this.renderDates);\n data_1.template = [createElement('span', {\n innerHTML: '' + weekNo,\n attrs: { title: this.parent.localeObj.getConstant('week') + ' ' + weekNo }\n })];\n }\n nth = this.createTd(data_1);\n this.parent.renderHeaderIndentTemplate(data_1, nth);\n ntr_1.appendChild(nth);\n tbl.querySelector('tbody').appendChild(ntr_1);\n }\n var ntr = trEle.cloneNode();\n var appointmentExpandCollapse = createElement('div', {\n attrs: {\n 'tabindex': '0', 'role': 'list',\n title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false', 'aria-label': 'Expand section'\n },\n className: cls.ALLDAY_APPOINTMENT_SECTION_CLASS + ' ' + cls.APPOINTMENT_ROW_EXPAND_CLASS + ' ' +\n cls.ICON + ' ' + cls.DISABLE_CLASS\n });\n var data = { className: [cls.ALLDAY_CELLS_CLASS], type: 'emptyCells' };\n nth = this.createTd(data);\n nth.appendChild(appointmentExpandCollapse);\n this.parent.renderHeaderIndentTemplate(data, nth);\n ntr.appendChild(nth);\n tbl.querySelector('tbody').appendChild(ntr);\n wrap.appendChild(tbl);\n return wrap;\n };\n VerticalView.prototype.renderDatesHeader = function () {\n var container = createElement('div', { className: cls.DATE_HEADER_CONTAINER_CLASS });\n var wrap = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });\n container.appendChild(wrap);\n var tbl = this.createTableLayout();\n var trEle = createElement('tr', { className: cls.HEADER_ROW_CLASS });\n var rowCount = this.colLevels.length;\n var lastLevel = this.colLevels[rowCount - 1];\n for (var i = 0; i < rowCount; i++) {\n var ntr = trEle.cloneNode();\n var level = this.colLevels[parseInt(i.toString(), 10)];\n for (var j = 0; j < level.length; j++) {\n ntr.appendChild(this.createTd(level[parseInt(j.toString(), 10)]));\n }\n tbl.querySelector('tbody').appendChild(ntr);\n }\n this.createAllDayRow(tbl, lastLevel);\n this.createColGroup(tbl, lastLevel);\n wrap.appendChild(tbl);\n return container;\n };\n VerticalView.prototype.createAllDayRow = function (table, tdData) {\n var ntr = createElement('tr', { className: cls.ALLDAY_ROW_CLASS });\n for (var j = 0; j < tdData.length; j++) {\n var td = extend({}, tdData[parseInt(j.toString(), 10)]);\n td.className = [cls.ALLDAY_CELLS_CLASS];\n td.type = 'alldayCells';\n var ntd = this.createTd(td);\n ntd.setAttribute('data-date', td.date.getTime().toString());\n if (!isNullOrUndefined(td.groupIndex)) {\n ntd.setAttribute('data-group-index', '' + td.groupIndex);\n }\n else if (this.parent.uiStateValues.isGroupAdaptive) {\n ntd.setAttribute('data-group-index', '' + this.parent.uiStateValues.groupIndex);\n }\n this.wireCellEvents(ntd);\n ntr.appendChild(ntd);\n }\n table.querySelector('tbody').appendChild(ntr);\n var thead = createElement('thead');\n thead.appendChild(this.parent.eventBase.createEventWrapper('allDay'));\n prepend([thead], table);\n };\n VerticalView.prototype.createTd = function (td) {\n var tdEle = createElement('td');\n this.addAttributes(td, tdEle);\n if (td.date && td.type) {\n var ele = this.getTdContent(td.date, td.type, td.groupIndex);\n if (ele && ele.length) {\n append(ele, tdEle);\n }\n }\n if (!this.parent.isMinMaxDate(util.resetTime(new Date('' + td.date)))) {\n addClass([tdEle], cls.DISABLE_DATES);\n }\n if (td.type === 'resourceHeader') {\n this.setResourceHeaderContent(tdEle, td);\n }\n if (td.type === 'dateHeader' && td.className.indexOf(cls.HEADER_CELLS_CLASS) >= 0) {\n tdEle.setAttribute('data-date', td.date.getTime().toString());\n if (!isNullOrUndefined(td.groupIndex)) {\n tdEle.setAttribute('data-group-index', '' + td.groupIndex);\n }\n this.wireMouseEvents(tdEle);\n }\n var args = { elementType: td.type, element: tdEle, date: td.date, groupIndex: td.groupIndex };\n this.parent.trigger(event.renderCell, args);\n return tdEle;\n };\n VerticalView.prototype.wireCellEvents = function (element) {\n EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);\n this.wireMouseEvents(element);\n };\n VerticalView.prototype.wireMouseEvents = function (element) {\n EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);\n if (!this.parent.isAdaptive) {\n EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);\n }\n };\n VerticalView.prototype.renderTimeCells = function () {\n var _this = this;\n var wrap = createElement('div', { className: cls.TIME_CELLS_WRAP_CLASS });\n var tbl = this.createTableLayout();\n var trEle = createElement('tr');\n var handler = function (r) {\n r.type = r.first ? 'majorSlot' : 'minorSlot';\n r.className = r.last ? [cls.TIME_CELLS_CLASS, cls.TIME_SLOT_CLASS] : [cls.TIME_SLOT_CLASS];\n var ntr = trEle.cloneNode();\n var data = { date: r.date, type: r.type, className: r.className };\n ntr.appendChild(_this.createTd(data));\n tbl.querySelector('tbody').appendChild(ntr);\n return r;\n };\n this.getTimeSlotRows(handler);\n wrap.appendChild(tbl);\n return wrap;\n };\n VerticalView.prototype.renderContentArea = function () {\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\n this.setAriaAttributes(tbl);\n this.addAutoHeightClass(tbl);\n this.renderContentTable(tbl);\n this.createColGroup(tbl, this.colLevels.slice(-1)[0]);\n wrap.appendChild(tbl);\n this.wireCellEvents(tbl.querySelector('tbody'));\n EventHandler.add(wrap, 'scroll', this.onContentScroll, this);\n EventHandler.add(wrap, Browser.touchMoveEvent, this.onAdaptiveMove, this);\n return wrap;\n };\n VerticalView.prototype.renderContentTable = function (table) {\n var tBody = table.querySelector('tbody');\n append(this.getContentRows(), tBody);\n this.renderContentTableHeader(table);\n };\n VerticalView.prototype.getContentRows = function () {\n var _this = this;\n var rows = [];\n var tr = createElement('tr');\n var td = createElement('td', { attrs: { 'aria-selected': 'false' } });\n var handler = function (r) {\n var ntr = tr.cloneNode();\n for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {\n var tdData = _a[_i];\n var ntd = _this.createContentTd(tdData, r, td);\n ntr.appendChild(ntd);\n }\n rows.push(ntr);\n return r;\n };\n this.getTimeSlotRows(handler);\n return rows;\n };\n VerticalView.prototype.createContentTd = function (tdData, r, td) {\n var ntd = td.cloneNode();\n if (tdData.colSpan) {\n ntd.setAttribute('colspan', tdData.colSpan.toString());\n }\n var clsName = this.getContentTdClass(r);\n var cellDate = util.resetTime(tdData.date);\n if (!this.parent.isMinMaxDate(cellDate)) {\n clsName.push(cls.DISABLE_DATES);\n }\n util.setTime(cellDate, util.getDateInMs(r.date));\n var type = 'workCells';\n if (tdData.className.indexOf(cls.RESOURCE_PARENT_CLASS) !== -1) {\n clsName.push(cls.RESOURCE_GROUP_CELLS_CLASS);\n type = 'resourceGroupCells';\n }\n if (this.parent.workHours.highlight && ((this.parent.activeViewOptions.timeScale.enable &&\n this.isWorkHour(cellDate, tdData.startHour, tdData.endHour, tdData.workDays)) ||\n (!this.parent.activeViewOptions.timeScale.enable && this.isWorkDay(cellDate, tdData.workDays)))) {\n clsName.push(cls.WORK_HOURS_CLASS);\n }\n addClass([ntd], clsName);\n if (this.parent.activeViewOptions.cellTemplate) {\n var args_1 = { date: cellDate, type: type, groupIndex: tdData.groupIndex };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.cellTemplateName;\n var templateId = scheduleId + viewName + 'cellTemplate';\n var tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));\n append(tooltipTemplate, ntd);\n }\n ntd.setAttribute('data-date', cellDate.getTime().toString());\n if (!isNullOrUndefined(tdData.groupIndex) || this.parent.uiStateValues.isGroupAdaptive) {\n var groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\n tdData.groupIndex;\n ntd.setAttribute('data-group-index', '' + groupIndex);\n }\n var args = { elementType: type, element: ntd, date: cellDate, groupIndex: tdData.groupIndex };\n this.parent.trigger(event.renderCell, args);\n return ntd;\n };\n VerticalView.prototype.getContentTdClass = function (r) {\n return r.last ? [cls.WORK_CELLS_CLASS] : [cls.WORK_CELLS_CLASS, cls.ALTERNATE_CELLS_CLASS];\n };\n VerticalView.prototype.renderContentTableHeader = function (table) {\n var thead = createElement('thead');\n thead.appendChild(this.parent.eventBase.createEventWrapper());\n if (this.parent.activeViewOptions.timeScale.enable) {\n thead.appendChild(this.parent.eventBase.createEventWrapper('timeIndicator'));\n }\n prepend([thead], table);\n };\n VerticalView.prototype.getScrollableElement = function () {\n if (this.parent.isAdaptive && !this.isTimelineView()) {\n return this.element.querySelector('.' + cls.SCROLL_CONTAINER_CLASS);\n }\n else {\n return this.getContentAreaElement();\n }\n };\n VerticalView.prototype.getLeftPanelElement = function () {\n return this.element.querySelector('.' + cls.TIME_CELLS_WRAP_CLASS);\n };\n VerticalView.prototype.getEndDateFromStartDate = function (start) {\n var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\n var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;\n var end = new Date(start.getTime());\n end.setMilliseconds(end.getMilliseconds() + msInterval);\n return end;\n };\n VerticalView.prototype.getTimeSlotRows = function (handler) {\n var rows = [];\n var startHour = this.getStartHour();\n var endHour = this.getEndHour();\n var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\n var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;\n var length = Math.round(util.MS_PER_DAY / msInterval);\n var msStartHour = startHour.getTime();\n var msEndHour = endHour.getTime();\n if (msStartHour !== msEndHour) {\n var duration = this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\n length = (Math.abs(msEndHour - msStartHour) / msInterval) - ((new Date(msEndHour).getTimezoneOffset()\n - new Date(msStartHour).getTimezoneOffset()) / duration);\n }\n if (!this.parent.activeViewOptions.timeScale.enable) {\n length = 1;\n }\n var start = this.parent.getStartEndTime(this.parent.workHours.start);\n var end = this.parent.getStartEndTime(this.parent.workHours.end);\n for (var i = 0; i < length; i++) {\n var dt = new Date(msStartHour + (msInterval * i));\n if (util.isDaylightSavingTime(dt) || new Date(msStartHour).getTimezoneOffset() !== dt.getTimezoneOffset()) {\n var timeOffset = new Date(msStartHour).getTimezoneOffset() - dt.getTimezoneOffset();\n dt = new Date(dt.getTime() - (1000 * 60 * timeOffset));\n }\n var majorTickDivider = i % (msMajorInterval / msInterval);\n var row = {\n date: new Date('' + dt),\n startHour: start,\n endHour: end,\n first: (majorTickDivider === 0),\n middle: (majorTickDivider < this.parent.activeViewOptions.timeScale.slotCount - 1),\n last: (majorTickDivider === this.parent.activeViewOptions.timeScale.slotCount - 1),\n type: ''\n };\n if (handler) {\n handler(row);\n }\n rows.push(row);\n }\n return rows;\n };\n VerticalView.prototype.getAdjustedDate = function (startTime) {\n if (!this.parent.activeViewOptions.timeScale.enable) {\n return new Date(startTime.setHours(0, 0, 0, 0));\n }\n else {\n var timeSlots = this.getTimeSlotRows();\n var startDate = new Date(new Date(timeSlots[0].date.getTime()).\n setHours(startTime.getHours(), startTime.getMinutes(), startTime.getMilliseconds()));\n for (var i = 0; i < timeSlots.length; i++) {\n if (timeSlots[parseInt(i.toString(), 10)].date.getTime() > startDate.getTime()) {\n startTime.setHours(timeSlots[i - 1].date.getHours(), timeSlots[i - 1].date.getMinutes(), timeSlots[i - 1].date.getMilliseconds());\n return new Date(startTime);\n }\n }\n }\n return null;\n };\n VerticalView.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n this.clearCurrentTimeIndicatorTimer();\n if (this.element) {\n if (this.appointment) {\n this.appointment.destroy();\n this.appointment = null;\n }\n var contentScrollableEle = this.getContentAreaElement();\n if (contentScrollableEle) {\n EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);\n EventHandler.remove(contentScrollableEle, Browser.touchMoveEvent, this.onAdaptiveMove);\n }\n if (this.parent.resourceBase) {\n this.parent.resourceBase.destroy();\n }\n if (this.parent.scheduleTouchModule) {\n this.parent.scheduleTouchModule.resetValues();\n }\n _super.prototype.destroy.call(this);\n }\n };\n return VerticalView;\n}(ViewBase));\nexport { VerticalView };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { VerticalView } from './vertical-view';\n/**\n * day view\n */\nvar Day = /** @class */ (function (_super) {\n __extends(Day, _super);\n /**\n * Constructor for day view\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function Day(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-day-view';\n return _this;\n }\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name.\n */\n Day.prototype.getModuleName = function () {\n return 'day';\n };\n return Day;\n}(VerticalView));\nexport { Day };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { VerticalView } from './vertical-view';\n/**\n * week view\n */\nvar Week = /** @class */ (function (_super) {\n __extends(Week, _super);\n /**\n * Constructor for week view\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function Week(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-week-view';\n return _this;\n }\n Week.prototype.startDate = function () {\n return this.getViewStartDate();\n };\n Week.prototype.endDate = function () {\n return this.getViewEndDate();\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name.\n */\n Week.prototype.getModuleName = function () {\n return 'week';\n };\n return Week;\n}(VerticalView));\nexport { Week };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { VerticalView } from './vertical-view';\n/**\n * work week view\n */\nvar WorkWeek = /** @class */ (function (_super) {\n __extends(WorkWeek, _super);\n /**\n * Constructor for work week view\n *\n * @param {Schedule} parent Accepts the schedule instance\n */\n function WorkWeek(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-work-week-view';\n return _this;\n }\n WorkWeek.prototype.startDate = function () {\n return this.getViewStartDate();\n };\n WorkWeek.prototype.endDate = function () {\n return this.getViewEndDate();\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name.\n */\n WorkWeek.prototype.getModuleName = function () {\n return 'workWeek';\n };\n return WorkWeek;\n}(VerticalView));\nexport { WorkWeek };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNullOrUndefined, addClass, createElement, append, EventHandler, extend, remove } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { ViewBase } from '../renderer/view-base';\nimport * as util from '../base/util';\nimport * as cls from '../base/css-constant';\nimport * as event from '../base/constant';\nvar AgendaBase = /** @class */ (function (_super) {\n __extends(AgendaBase, _super);\n function AgendaBase(parent) {\n return _super.call(this, parent) || this;\n }\n // eslint-disable-next-line max-len\n AgendaBase.prototype.createAgendaContentElement = function (type, listData, aTd, groupOrder, groupIndex) {\n var _this = this;\n var listElement;\n var fieldMapping = this.parent.eventFields;\n if (type === 'noEvents') {\n var noEvents = [{ 'subject': this.parent.localeObj.getConstant('noEvents') }];\n listElement = ListBase.createList(this.parent.createElement, noEvents, {\n moduleName: 'agenda',\n listClass: this.parent.activeView.viewClass,\n itemClass: this.parent.activeView.viewClass,\n template: \"
\" + this.parent.localeObj.getConstant('noEvents') + \"
\"\n });\n if (listElement.querySelector('.e-agenda-item').children.length === 0) {\n listElement.firstElementChild.appendChild(createElement('div', { className: cls.AGENDA_NO_EVENT_CLASS, innerHTML: this.parent.localeObj.getConstant('noEvents') }));\n }\n }\n else {\n listElement = ListBase.createList(this.parent.createElement, listData, {\n moduleName: 'agenda',\n listClass: this.parent.activeView.viewClass,\n itemClass: this.parent.activeView.viewClass\n });\n var listElements = [].slice.call(listElement.children);\n listElements.forEach(function (element, li) {\n var appWrapper = createElement('div', {\n className: cls.APPOINTMENT_CLASS, attrs: {\n 'data-id': 'Appointment_' + listData[parseInt(li.toString(), 10)][\"\" + _this.parent.eventFields.id],\n 'data-guid': listData[parseInt(li.toString(), 10)].Guid,\n 'role': 'button',\n 'tabindex': '0',\n 'aria-disabled': _this.parent.eventBase.getReadonlyAttribute(listData[parseInt(li.toString(), 10)]),\n 'aria-label': _this.parent.getAnnouncementString(listData[parseInt(li.toString(), 10)])\n }\n });\n if (!isNullOrUndefined(groupIndex)) {\n appWrapper.setAttribute('data-group-index', groupIndex.toString());\n }\n _this.parent.eventBase.applyResourceColor(appWrapper, listData[parseInt(li.toString(), 10)], 'borderColor', groupOrder);\n var templateEle;\n if (!isNullOrUndefined(_this.parent.activeViewOptions.eventTemplate)) {\n addClass([appWrapper], cls.EVENT_TEMPLATE);\n var scheduleId = _this.parent.element.id + '_';\n var viewName = _this.parent.activeViewOptions.eventTemplateName;\n var templateId = scheduleId + viewName + 'eventTemplate';\n templateEle = _this.parent.getAppointmentTemplate()(listData[parseInt(li.toString(), 10)], _this.parent, 'eventTemplate', templateId, false);\n if (!isNullOrUndefined(listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceRule])) {\n var iconClass = (listData[parseInt(li.toString(), 10)][fieldMapping.id] ===\n listData[parseInt(li.toString(), 10)][fieldMapping.recurrenceID]) ?\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\n appWrapper.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));\n }\n }\n else {\n templateEle = _this.createAppointment(listData[parseInt(li.toString(), 10)]);\n }\n append([].slice.call(templateEle), appWrapper);\n util.removeChildren(element);\n element.appendChild(appWrapper);\n var args = {\n data: extend({}, listData[parseInt(li.toString(), 10)], null, true),\n element: element, cancel: false\n };\n _this.parent.trigger(event.eventRendered, args, function (eventArgs) {\n if (eventArgs.cancel) {\n remove(element);\n }\n });\n });\n }\n aTd.appendChild(listElement);\n if ((this.parent.currentView === 'MonthAgenda' && this.parent.activeViewOptions.group.resources.length > 0)\n || this.parent.currentView === 'Agenda') {\n addClass([aTd], cls.AGENDA_DAY_BORDER_CLASS);\n }\n this.parent.renderTemplates();\n return aTd;\n };\n AgendaBase.prototype.createAppointment = function (event) {\n var fieldMapping = this.parent.eventFields;\n var eventSubject = (event[fieldMapping.subject] || this.parent.eventSettings.fields.subject.default\n || this.parent.localeObj.getConstant('addTitle'));\n var eventLocation = (event[fieldMapping.location] || this.parent.eventSettings.fields.location.default);\n var appSubjectWrap = createElement('div', { className: cls.SUBJECT_WRAP });\n if (!isNullOrUndefined(eventLocation) && eventLocation !== '') {\n eventSubject += ',';\n }\n var appSubjectText = createElement('div', { className: cls.SUBJECT_CLASS });\n this.parent.sanitize(eventSubject, appSubjectText);\n appSubjectWrap.appendChild(appSubjectText);\n if (!isNullOrUndefined(eventLocation) && eventLocation !== '') {\n var appLocation = createElement('div', { className: cls.LOCATION_CLASS });\n this.parent.sanitize(eventLocation, appLocation);\n appSubjectWrap.appendChild(appLocation);\n }\n if (!isNullOrUndefined(event[fieldMapping.recurrenceRule])) {\n var iconClass = (event[fieldMapping.id] === event[fieldMapping.recurrenceID]) ?\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\n appSubjectWrap.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));\n }\n var strDate = event[fieldMapping.startTime];\n var endDate = event[fieldMapping.endTime];\n var isAllDay = event[fieldMapping.isAllDay];\n var allDayStr = this.parent.localeObj.getConstant('allDay');\n var timeStr = this.parent.getTimeString(strDate) + ' - ' + this.parent.getTimeString(endDate);\n if (!isNullOrUndefined(event.data)) {\n var milliSeconds = (endDate.getTimezoneOffset() !== strDate.getTimezoneOffset()) ?\n (endDate.getTime() - strDate.getTime() + 3600000) : (endDate.getTime() - strDate.getTime());\n var eventString = (milliSeconds / util.MS_PER_DAY) >= 1 ? allDayStr : timeStr;\n allDayStr = eventString + ' (' + this.parent.localeObj.getConstant('day') + ' '\n + event.data.index + '/' + event.data.count + ')';\n }\n var displayStr = (!isNullOrUndefined(event.data) || isAllDay) ? allDayStr : timeStr;\n var appDateTime = createElement('div', { className: cls.DATE_TIME_CLASS, innerHTML: displayStr });\n return [appSubjectWrap, appDateTime];\n };\n AgendaBase.prototype.processAgendaEvents = function (events) {\n var eventsProcessed = [];\n if (isNullOrUndefined(events)) {\n return eventsProcessed;\n }\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var event_1 = events_1[_i];\n var spanned = this.parent.eventBase.splitEventByDay(event_1);\n eventsProcessed = eventsProcessed.concat(spanned.length > 1 ? spanned : event_1);\n }\n return eventsProcessed;\n };\n AgendaBase.prototype.wireEventActions = function () {\n var eventElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\n for (var _i = 0, eventElement_1 = eventElement; _i < eventElement_1.length; _i++) {\n var element = eventElement_1[_i];\n this.parent.eventBase.wireAppointmentEvents(element, this.parent.getEventDetails(element), true);\n }\n var dateHeaderElement = [].slice.call(this.parent.element.querySelectorAll('.e-m-date'));\n for (var _a = 0, dateHeaderElement_1 = dateHeaderElement; _a < dateHeaderElement_1.length; _a++) {\n var element = dateHeaderElement_1[_a];\n EventHandler.add(element, 'click', this.parent.agendaModule.dayNavigationClick, this);\n }\n };\n AgendaBase.prototype.calculateResourceTableElement = function (tBody, noOfDays, agendaDate) {\n if (isNullOrUndefined(this.parent.resourceBase.lastResourceLevel)) {\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\n this.parent.resourceBase.generateResourceLevels(level);\n }\n var agendaLastDate = util.addDays(new Date(agendaDate.getTime()), noOfDays);\n var days = (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') ? noOfDays : 1;\n var resColl = this.parent.resourceBase.resourceCollection;\n var resData = this.parent.resourceBase.lastResourceLevel;\n var initialDate = agendaDate;\n for (var i = 0; i < days; i++) {\n var lastLevelInfo = [];\n var tempLastLevelInfo = [];\n var tempIndex = 0;\n var eventObj = void 0;\n var dateObj = void 0;\n var firstDate = util.addDays(initialDate, i);\n var finalDate = (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda')\n ? util.addDays(firstDate, 1) : agendaLastDate;\n var agendaCollection = this.parent.eventBase.filterEvents(firstDate, finalDate);\n if (agendaCollection.length > 0 || !this.parent.hideEmptyAgendaDays || this.parent.currentView === 'MonthAgenda') {\n for (var res = 0; res < resData.length; res++) {\n noOfDays = (!this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') ? noOfDays : 1;\n var data = [];\n agendaDate = firstDate;\n // eslint-disable-next-line max-len\n var resDataCollection = this.parent.eventBase.filterEvents(agendaDate, agendaLastDate, agendaCollection, resData[parseInt(res.toString(), 10)]);\n if (resDataCollection.length > 0 || !this.parent.hideEmptyAgendaDays || this.parent.currentView === 'MonthAgenda') {\n for (var r = 0; r < noOfDays; r++) {\n // eslint-disable-next-line max-len\n var resDayCollection = this.parent.eventBase.filterEvents(agendaDate, util.addDays(agendaDate, 1), resDataCollection, undefined);\n if (resDayCollection.length > 0 || !this.parent.hideEmptyAgendaDays ||\n this.parent.currentView === 'MonthAgenda') {\n data.push(resDayCollection[0]);\n eventObj = {\n rowSpan: 1, type: 'eventColumn', resource: resColl[resColl.length - 1],\n groupIndex: resData[parseInt(res.toString(), 10)].groupIndex,\n groupOrder: resData[parseInt(res.toString(), 10)].groupOrder,\n resourceData: resData[parseInt(res.toString(), 10)].resourceData,\n eventData: resDayCollection, date: agendaDate\n };\n dateObj = {\n rowSpan: 1, type: 'dateColumn', resource: resColl[parseInt((resColl.length - 1).toString(), 10)],\n groupOrder: resData[parseInt(res.toString(), 10)].groupOrder,\n resourceData: resData[parseInt(res.toString(), 10)].resourceData,\n date: agendaDate\n };\n if (!lastLevelInfo[parseInt(tempIndex.toString(), 10)]) {\n lastLevelInfo[parseInt(tempIndex.toString(), 10)] = [];\n }\n lastLevelInfo[parseInt(tempIndex.toString(), 10)].push(eventObj);\n lastLevelInfo[parseInt(tempIndex.toString(), 10)].push(dateObj);\n tempIndex++;\n }\n agendaDate = util.addDays(agendaDate, 1);\n if (agendaDate.getTime() >= agendaLastDate.getTime() || this.parent.activeViewOptions.group.byDate\n || this.parent.currentView === 'MonthAgenda') {\n lastLevelInfo[lastLevelInfo.length - 1][1].cssClass = cls.AGENDA_DAY_BORDER_CLASS;\n var tempObj = {\n rowSpan: data.length, type: 'resourceColumn', resource: resColl[parseInt((resColl.length - 1).toString(), 10)],\n groupOrder: resData[parseInt(res.toString(), 10)].groupOrder.slice(0, -1),\n resourceData: resData[parseInt(res.toString(), 10)].resourceData,\n groupIndex: (lastLevelInfo.length - data.length), className: [cls.RESOURCE_NAME],\n date: agendaDate\n };\n lastLevelInfo[parseInt((lastLevelInfo.length - data.length).toString(), 10)].push(tempObj);\n tempLastLevelInfo.push(extend({}, tempObj, null, true));\n break;\n }\n }\n }\n }\n var topResources = resColl.slice(0, -1);\n var tempGroupedData = [];\n var totalRowSpan = 0;\n for (var y = 0; y < topResources.length; y++) {\n var data = topResources[topResources.length - (y + 1)].dataSource;\n for (var x = 0; x < data.length; x++) {\n var z = 0;\n for (var u = 0; u < tempLastLevelInfo.length; u++) {\n // eslint-disable-next-line max-len\n if (tempLastLevelInfo[parseInt(u.toString(), 10)].groupOrder[topResources.length - (y + 1)] === data[parseInt(x.toString(), 10)][topResources[topResources.length - (y + 1)].idField]) {\n totalRowSpan = totalRowSpan + tempLastLevelInfo[parseInt(u.toString(), 10)].rowSpan;\n tempGroupedData.push(extend({}, tempLastLevelInfo[parseInt(u.toString(), 10)], null, true));\n }\n if (++z === tempLastLevelInfo.length && tempGroupedData.length > 0) {\n tempGroupedData[0].rowSpan = totalRowSpan;\n tempGroupedData[0].type = 'parentColumnLevel_' + (y + 1);\n tempGroupedData[0].resource = topResources[topResources.length - (y + 1)];\n tempGroupedData[0].resourceData = data[parseInt(x.toString(), 10)];\n tempGroupedData[0].date = agendaDate;\n lastLevelInfo[tempGroupedData[0].groupIndex].push(tempGroupedData[0]);\n tempGroupedData = [];\n totalRowSpan = 0;\n }\n }\n }\n }\n this.createResourceTableRow(lastLevelInfo, tBody);\n }\n }\n var totalCollection = this.parent.eventBase.filterEvents(initialDate, agendaLastDate);\n if (totalCollection.length === 0 && !this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) {\n this.renderEmptyContent(tBody, initialDate);\n }\n };\n AgendaBase.prototype.createResourceTableRow = function (tContent, tBody) {\n var tr = createElement('tr');\n var ntr;\n var td = createElement('td', { attrs: { 'aria-selected': 'false' } });\n var tempData;\n var rowSpan = 0;\n var level;\n if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {\n var tContentCollection = [];\n var parentCollection = this.parent.resourceBase.resourceCollection.slice(0, -1);\n for (var w = 0; w < tContent.length; w++) {\n tContentCollection = tContentCollection.concat(tContent[parseInt(w.toString(), 10)]);\n }\n level = (parentCollection.length > 0) ? 'parentColumnLevel_' + parentCollection.length : 'resourceColumn';\n var rowSpanCollection = tContentCollection.filter(function (data) { return data.type === level; });\n for (var x = 0; x < rowSpanCollection.length; x++) {\n rowSpan = rowSpan + rowSpanCollection[parseInt(x.toString(), 10)].rowSpan;\n }\n }\n for (var row = 0; row < tContent.length; row++) {\n ntr = tr.cloneNode();\n for (var col = tContent[parseInt(row.toString(), 10)].length - 1; col >= 0; col--) {\n var data = tContent[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)];\n var ntd = td.cloneNode();\n if (data.type === 'dateColumn') {\n if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {\n tempData = tContent[parseInt(row.toString(), 10)][parseInt(col.toString(), 10)];\n continue;\n }\n ntd.setAttribute('data-date', data.date.getTime().toString());\n ntd.appendChild(this.createDateHeaderElement(data.date));\n var className = [cls.AGENDA_CELLS_CLASS, cls.AGENDA_DATE_CLASS];\n if (data.cssClass) {\n className.push(data.cssClass);\n }\n addClass([ntd], className);\n if (this.isCurrentDate(new Date(data.date.getTime()))) {\n addClass(ntd.childNodes, cls.AGENDA_CURRENT_DAY_CLASS);\n }\n ntr.appendChild(ntd);\n }\n else if (data.type === 'eventColumn') {\n var elementType = (data.eventData.length === 0) ? 'noEvents' : 'data';\n ntd = this.createAgendaContentElement(elementType, data.eventData, ntd, data.groupOrder, data.groupIndex);\n ntd.setAttribute('data-date', data.date.getTime().toString());\n if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {\n addClass([ntd], [cls.AGENDA_CELLS_CLASS, cls.AGENDA_DAY_PADDING_CLASS]);\n }\n ntr.appendChild(ntd);\n }\n else {\n ntd.setAttribute('rowspan', data.rowSpan.toString());\n addClass([ntd], cls.AGENDA_RESOURCE_CLASS);\n this.setResourceHeaderContent(ntd, data, data.className[0]);\n ntr.appendChild(ntd);\n }\n }\n if (this.parent.activeViewOptions.group.byDate && row === 0 && this.parent.currentView !== 'MonthAgenda') {\n var ntd = td.cloneNode();\n ntd.setAttribute('data-date', tempData.date.getTime().toString());\n ntd.setAttribute('rowspan', rowSpan.toString());\n ntd.appendChild(this.createDateHeaderElement(tempData.date));\n addClass([ntd], [cls.AGENDA_CELLS_CLASS, cls.AGENDA_DATE_CLASS, cls.DATE_BORDER_CLASS]);\n var daysCount = util.getDaysCount(this.parent.selectedDate.getTime(), tempData.date.getTime());\n ntr.setAttribute('data-row-index', daysCount.toString());\n if (this.parent.element.querySelector(\".e-agenda-view tr[data-row-index=\\\"\" + daysCount + \"\\\"]\")) {\n break;\n }\n ntr.insertBefore(ntd, ntr.childNodes[0]);\n }\n tBody.appendChild(ntr);\n }\n };\n AgendaBase.prototype.createDateHeaderElement = function (date) {\n var dateHeader;\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\n dateHeader = createElement('div', { className: cls.AGENDA_HEADER_CLASS });\n var args = { date: date, type: 'dateHeader' };\n var scheduleId = this.parent.element.id + '_';\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\n var templateId = scheduleId + viewName + 'dateHeaderTemplate';\n var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, 'dateHeaderTemplate', templateId, false));\n append(dateTemplate, dateHeader);\n }\n else {\n dateHeader = this.getMobileDateElement(date, cls.AGENDA_HEADER_CLASS);\n }\n return dateHeader;\n };\n AgendaBase.prototype.renderEmptyContent = function (tBody, agendaDate) {\n var eTr = this.createTableRowElement(agendaDate, 'noEvents');\n var eTd = eTr.children[0];\n var noEvents = createElement('div', {\n className: cls.AGENDA_EMPTY_EVENT_CLASS,\n innerHTML: this.parent.localeObj.getConstant('noEvents')\n });\n eTd.appendChild(noEvents);\n tBody.appendChild(eTr);\n };\n AgendaBase.prototype.createTableRowElement = function (date, type) {\n var daysCount = util.getDaysCount(this.parent.selectedDate.getTime(), date.getTime());\n var tr = createElement('tr', { attrs: { 'data-row-index': daysCount.toString() } });\n var td = createElement('td', {\n attrs: {\n 'class': (type === 'monthHeader') ? cls.MONTH_HEADER_CLASS : cls.AGENDA_CELLS_CLASS,\n 'aria-selected': 'false',\n 'data-column-index': daysCount.toString(),\n 'data-date': date.getTime().toString()\n }\n });\n var dTd = td.cloneNode();\n var aTd = td.cloneNode();\n tr.appendChild(dTd);\n if (type !== 'noEvents') {\n tr.appendChild(aTd);\n }\n return tr;\n };\n AgendaBase.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return AgendaBase;\n}(ViewBase));\nexport { AgendaBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { formatUnit, isNullOrUndefined, closest, extend, append, prepend, remove } from '@syncfusion/ej2-base';\nimport { createElement, addClass, EventHandler } from '@syncfusion/ej2-base';\nimport { AgendaBase } from '../event-renderer/agenda-base';\nimport * as util from '../base/util';\nimport * as event from '../base/constant';\nimport * as cls from '../base/css-constant';\n/**\n * agenda view\n */\nvar Agenda = /** @class */ (function (_super) {\n __extends(Agenda, _super);\n function Agenda(parent) {\n var _this = _super.call(this, parent) || this;\n _this.viewClass = 'e-agenda-view';\n _this.isInverseTableSelect = false;\n _this.agendaDates = {};\n _this.virtualScrollTop = 1;\n return _this;\n }\n Agenda.prototype.getModuleName = function () {\n return 'agenda';\n };\n Agenda.prototype.renderLayout = function () {\n this.agendaDates = {};\n this.element = createElement('div', { className: cls.TABLE_WRAP_CLASS });\n addClass([this.element], this.viewClass);\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\n this.element.querySelector('table').setAttribute('role', 'presentation');\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.element);\n var eTr = createElement('tr');\n this.element.querySelector('tbody').appendChild(eTr);\n var workTd = createElement('td');\n eTr.appendChild(workTd);\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\n workTd.appendChild(wrap);\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\n this.setAriaAttributes(tbl);\n wrap.appendChild(tbl);\n var tBody = tbl.querySelector('tbody');\n var agendaDate = util.resetTime(this.parent.selectedDate);\n this.renderEmptyContent(tBody, agendaDate);\n this.wireEvents();\n if (this.parent.resourceBase) {\n this.parent.resourceBase.generateResourceLevels([{ renderDates: this.parent.activeView.renderDates }]);\n }\n if (this.parent.uiStateValues.isGroupAdaptive && !this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\n this.renderResourceMobileLayout();\n }\n this.parent.notify(event.contentReady, {});\n };\n Agenda.prototype.eventLoad = function (args) {\n this.dataSource = extend([], this.parent.eventsData, null, true);\n for (var _i = 0, _a = this.parent.eventsData; _i < _a.length; _i++) {\n var event_1 = _a[_i];\n delete event_1.generatedDates;\n }\n var eventCollection = this.parent.activeViewOptions.allowVirtualScrolling ?\n args.processedData : this.parent.eventsProcessed;\n if (this.parent.uiStateValues.isGroupAdaptive) {\n var resource = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\n this.dataSource = this.parent.eventBase.filterEventsByResource(resource, this.dataSource);\n eventCollection = this.parent.eventBase.filterEventsByResource(resource, eventCollection);\n }\n this.parent.eventsProcessed = this.processAgendaEvents(eventCollection);\n var agendaDate = util.resetTime(this.parent.selectedDate);\n var tBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\n util.removeChildren(tBody);\n this.renderInitialContent(tBody, agendaDate);\n this.wireEventActions();\n var contentArea = closest(tBody, '.' + cls.CONTENT_WRAP_CLASS);\n contentArea.scrollTop = 1;\n this.parent.notify(event.eventsLoaded, {});\n if (!this.parent.activeViewOptions.allowVirtualScrolling) {\n this.retainScrollPosition();\n }\n };\n Agenda.prototype.refreshEvent = function (refreshDate) {\n var processedData = [];\n var fields = this.parent.eventFields;\n for (var _i = 0, _a = this.dataSource; _i < _a.length; _i++) {\n var data = _a[_i];\n if (isNullOrUndefined(data[fields.recurrenceID]) && !isNullOrUndefined(data[fields.recurrenceRule]) &&\n !isNullOrUndefined(data.generatedDates) && refreshDate >= data.generatedDates.end) {\n processedData = processedData.concat(this.parent.eventBase.generateOccurrence(data, refreshDate));\n }\n }\n this.parent.eventsProcessed = this.parent.eventsProcessed.concat(this.processAgendaEvents(processedData));\n };\n Agenda.prototype.refreshHeader = function () {\n var tBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\n if (this.parent.activeViewOptions.group.byDate) {\n util.removeChildren(tBody);\n }\n else {\n remove(tBody.firstElementChild);\n }\n var agendaDate = util.resetTime(this.parent.selectedDate);\n var emptyTBody = createElement('tbody');\n var firstDate = new Date(agendaDate.getTime());\n var lastDate = (this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) ?\n this.getEndDateFromStartDate(firstDate) : util.addDays(firstDate, this.parent.agendaDaysCount);\n this.renderContent(emptyTBody, firstDate, lastDate);\n append([].slice.call(emptyTBody.childNodes), tBody);\n };\n Agenda.prototype.renderInitialContent = function (tBody, agendaDate) {\n var emptyTBody = createElement('tbody');\n var firstDate = new Date(agendaDate.getTime());\n var lastDate = (this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) ?\n this.getEndDateFromStartDate(firstDate) : util.addDays(firstDate, this.parent.agendaDaysCount);\n this.renderContent(emptyTBody, firstDate, lastDate);\n append([].slice.call(emptyTBody.childNodes), tBody);\n // Initial rendering, to load previous date events upto scroll bar enable\n if (this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays && this.parent.eventsData.length > 0) {\n var contentArea = this.getContentAreaElement();\n var contentChild = contentArea.querySelector('.e-content-table');\n while (contentArea.offsetWidth <= contentArea.clientWidth) {\n if (this.parent.isAdaptive && contentChild.offsetHeight >= contentArea.clientHeight) {\n break;\n }\n var emptyTBody_1 = createElement('tbody');\n lastDate = firstDate;\n firstDate = util.addDays(lastDate, -this.parent.agendaDaysCount);\n this.renderContent(emptyTBody_1, firstDate, lastDate);\n prepend([].slice.call(emptyTBody_1.childNodes), tBody);\n if (firstDate <= this.parent.minDate) {\n break;\n }\n }\n }\n if (tBody.childNodes.length <= 0) {\n this.renderEmptyContent(tBody, agendaDate);\n }\n };\n Agenda.prototype.renderContent = function (tBody, agendaDate, lastDate) {\n var fieldMapping = this.parent.eventFields;\n var firstDate = new Date(agendaDate.getTime());\n var isObject = this.appointmentFiltering(firstDate, lastDate);\n if (isObject.length > 0 && this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) {\n agendaDate = isObject[0][fieldMapping.startTime];\n agendaDate = new Date(new Date(agendaDate.getTime()).setHours(0, 0, 0, 0));\n this.updateHeaderText(isObject[0][fieldMapping.startTime]);\n }\n var endDate;\n if (!this.parent.hideEmptyAgendaDays || (this.parent.agendaDaysCount > 0 && isObject.length > 0)) {\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\n var date = agendaDate;\n if (!this.parent.activeViewOptions.group.byDate) {\n this.parent.activeViewOptions.allowVirtualScrolling = false;\n date = firstDate;\n if (this.parent.headerModule) {\n this.parent.headerModule.updateDateRange();\n this.parent.headerModule.updateHeaderItems('remove');\n }\n }\n this.calculateResourceTableElement(tBody, this.parent.agendaDaysCount, date);\n }\n else {\n for (var day = 0; day < this.parent.agendaDaysCount; day++) {\n var filterData = this.appointmentFiltering(agendaDate);\n var nTr = this.createTableRowElement(agendaDate, 'data');\n if (this.element.querySelector('tr[data-row-index=\"' + parseInt(nTr.getAttribute('data-row-index'), 10) + '\"]')) {\n agendaDate = util.addDays(agendaDate, 1);\n continue;\n }\n var dTd = nTr.children[0];\n var aTd = nTr.children[1];\n if (filterData.length > 0 || (!this.parent.hideEmptyAgendaDays && filterData.length === 0)) {\n var elementType = (!this.parent.hideEmptyAgendaDays && filterData.length === 0) ? 'noEvents' : 'data';\n dTd.appendChild(this.createDateHeaderElement(agendaDate));\n nTr.appendChild(dTd);\n var cTd = this.createAgendaContentElement(elementType, filterData, aTd);\n nTr.appendChild(cTd);\n if (cTd.querySelectorAll('li').length > 0) {\n tBody.appendChild(nTr);\n }\n }\n else if (this.parent.activeViewOptions.allowVirtualScrolling) {\n day--;\n }\n if (this.isCurrentDate(new Date(agendaDate.getTime()))) {\n addClass(dTd.childNodes, cls.AGENDA_CURRENT_DAY_CLASS);\n }\n agendaDate = util.addDays(agendaDate, 1);\n if (agendaDate.getTime() > lastDate.getTime()) {\n break;\n }\n }\n }\n endDate = new Date(agendaDate.getTime() - util.MS_PER_DAY);\n }\n this.agendaDates = { start: firstDate, end: endDate };\n };\n Agenda.prototype.agendaScrolling = function (event) {\n if (this.parent.quickPopup) {\n this.parent.quickPopup.quickPopupHide();\n }\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\n this.virtualScrolling(event);\n }\n if (!this.parent.activeViewOptions.allowVirtualScrolling) {\n this.setPersistence();\n }\n };\n Agenda.prototype.virtualScrolling = function (event) {\n var target = event.target;\n var scrollTop = target.scrollTop;\n var scrollHeight = target.scrollHeight;\n var offsetHeight = target.clientHeight;\n var totalHeight = scrollTop + offsetHeight;\n var direction = (this.virtualScrollTop < scrollTop) ? 'next' : 'previous';\n var tBody = target.querySelector('tbody');\n var emptyTBody = createElement('tbody');\n var topElement = this.getElementFromScrollerPosition(event);\n var scrollDate = this.parent.getDateFromElement(topElement);\n var filterDate;\n var filterData;\n if (scrollTop === 0) {\n filterDate = this.getPreviousNextDate(util.addDays(scrollDate, -1), direction);\n filterData = this.appointmentFiltering(filterDate.start, filterDate.end);\n if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {\n this.renderContent(emptyTBody, filterDate.start, filterDate.end);\n prepend([].slice.call(emptyTBody.childNodes), tBody);\n this.wireEventActions();\n for (var s = 0, element = tBody.children; s < element.length; s++) {\n if (element[parseInt(s.toString(), 10)].getAttribute('data-row-index') === topElement.getAttribute('data-column-index')) {\n var scrollToValue = element[parseInt(s.toString(), 10)].offsetTop -\n this.element.querySelector('.e-agenda-item').offsetHeight;\n target.scrollTop = scrollToValue;\n break;\n }\n }\n this.updateHeaderText(scrollDate);\n }\n }\n else if (totalHeight >= (scrollHeight - 5)) {\n filterDate = this.getPreviousNextDate(util.addDays(scrollDate, 1), direction);\n filterData = this.appointmentFiltering(filterDate.start, filterDate.end);\n if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {\n this.renderContent(emptyTBody, filterDate.start, filterDate.end);\n append([].slice.call(emptyTBody.childNodes), tBody);\n this.wireEventActions();\n this.updateHeaderText(scrollDate);\n }\n }\n else {\n this.updateHeaderText(scrollDate);\n }\n this.virtualScrollTop = scrollTop;\n var selectedElements = this.parent.eventBase.getSelectedAppointments();\n if (selectedElements.length > 0) {\n selectedElements[selectedElements.length - 1].focus();\n }\n };\n Agenda.prototype.getElementFromScrollerPosition = function (event) {\n var filterElement;\n var target = event.target;\n var scrollTop = target.scrollTop;\n var scrollHeight = target.scrollHeight;\n var offsetHeight = target.clientHeight;\n var totalHeight = scrollTop + offsetHeight;\n var liCollection = [].slice.call(target.querySelectorAll('.e-agenda-item'));\n var li;\n var liDetails;\n if (liCollection.length > 0) {\n if (scrollTop === 0) {\n li = liCollection[0];\n filterElement = closest(li, '.' + cls.AGENDA_CELLS_CLASS);\n }\n else if (totalHeight === scrollHeight) {\n li = liCollection[liCollection.length - 1];\n filterElement = closest(li, '.' + cls.AGENDA_CELLS_CLASS);\n }\n else {\n for (var a = 0, length_1 = liCollection.length; a < length_1; a++) {\n li = liCollection[parseInt(a.toString(), 10)];\n liDetails = li.getBoundingClientRect();\n if (liDetails.top >= 0) {\n filterElement = closest(li, '.' + cls.AGENDA_CELLS_CLASS);\n break;\n }\n }\n }\n }\n return filterElement;\n };\n Agenda.prototype.updateHeaderText = function (date) {\n if (this.parent.showHeaderBar) {\n this.parent.headerModule.updateDateRange(date);\n }\n };\n Agenda.prototype.getPreviousNextDate = function (date, type) {\n var currentDate = new Date(date.getTime());\n var firstDate = this.getStartDateFromEndDate(date);\n var lastDate = this.getEndDateFromStartDate(date);\n var daysCount = 0;\n do {\n var filterData = this.appointmentFiltering(currentDate);\n if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {\n daysCount++;\n }\n currentDate = util.addDays(currentDate, (type === 'next') ? 1 : -1);\n if (currentDate < firstDate || currentDate > lastDate) {\n break;\n }\n } while (daysCount !== this.parent.agendaDaysCount);\n var endDate = util.addDays(currentDate, (type === 'next') ? -1 : 1);\n return (type === 'next') ? { start: date, end: util.addDays(endDate, 1) } : { start: endDate, end: util.addDays(date, 1) };\n };\n Agenda.prototype.appointmentFiltering = function (startDate, endDate) {\n var dateStart;\n var dateEnd;\n if (!isNullOrUndefined(startDate) && isNullOrUndefined(endDate)) {\n dateStart = util.resetTime(new Date(startDate.getTime()));\n dateEnd = util.setTime(new Date(dateStart.getTime()), util.MS_PER_DAY);\n }\n else {\n dateStart = new Date(startDate.getTime());\n dateEnd = new Date(endDate.getTime());\n }\n var filterData = this.parent.eventBase.filterEvents(dateStart, dateEnd);\n if (filterData.length === 0) {\n this.refreshEvent(startDate);\n filterData = this.parent.eventBase.filterEvents(dateStart, dateEnd);\n }\n return filterData;\n };\n Agenda.prototype.getStartDateFromEndDate = function (endDate) {\n var filterDate;\n var fields = this.parent.eventFields;\n if (this.parent.eventsProcessed.length > 0) {\n var firstDate = Math.min.apply(Math, this.parent.eventsProcessed.map(function (a) {\n return a[fields.startTime].getTime();\n }));\n filterDate = this.parent.hideEmptyAgendaDays ? new Date(firstDate) : this.parent.minDate;\n }\n else {\n filterDate = this.parent.hideEmptyAgendaDays ? util.addMonths(endDate, -1) : this.parent.minDate;\n }\n return util.resetTime(filterDate);\n };\n Agenda.prototype.getEndDateFromStartDate = function (startDate) {\n var filterDate;\n var fieldMapping = this.parent.eventFields;\n if (this.parent.eventsProcessed.length > 0) {\n var lastDate = Math.max.apply(Math, this.parent.eventsProcessed.map(function (a) {\n return a[fieldMapping.endTime].getTime();\n }));\n filterDate = this.parent.hideEmptyAgendaDays ? new Date(lastDate) : this.parent.maxDate;\n }\n else {\n filterDate = this.parent.hideEmptyAgendaDays ? util.addMonths(startDate, 1) : this.parent.maxDate;\n }\n return util.resetTime(util.addDays(filterDate, 1));\n };\n Agenda.prototype.getNextPreviousDate = function (type) {\n var noOfDays = (type === 'next') ? 1 : -1;\n return util.addDays(this.parent.selectedDate, noOfDays);\n };\n Agenda.prototype.startDate = function () {\n return util.resetTime(this.parent.selectedDate);\n };\n Agenda.prototype.endDate = function () {\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\n return this.getEndDateFromStartDate(this.startDate());\n }\n else {\n return util.addDays(this.startDate(), this.parent.agendaDaysCount);\n }\n };\n Agenda.prototype.getDateRangeText = function (date) {\n var formatDate = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\n if (this.parent.activeViewOptions.allowVirtualScrolling || this.parent.isAdaptive) {\n var currentDate = isNullOrUndefined(date) ? this.parent.selectedDate : date;\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(currentDate, { format: formatDate, calendar: this.parent.getCalendarMode() }), 'multiple');\n }\n else {\n var startDate = this.parent.selectedDate;\n var endDate = util.addDays(startDate, this.parent.agendaDaysCount - 1);\n return this.formatDateRange(startDate, endDate);\n }\n };\n Agenda.prototype.dayNavigationClick = function (e) {\n var element = closest(e.currentTarget, '.' + cls.AGENDA_CELLS_CLASS);\n var date = this.parent.getDateFromElement(element);\n if (!isNullOrUndefined(date) && !this.parent.isAdaptive && this.parent.isMinMaxDate(date)) {\n this.parent.setProperties({ selectedDate: date }, true);\n this.parent.changeView('Day', e);\n }\n };\n Agenda.prototype.wireEvents = function () {\n EventHandler.add(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), event.scroll, this.agendaScrolling, this);\n };\n Agenda.prototype.unWireEvents = function () {\n EventHandler.remove(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), event.scroll, this.agendaScrolling);\n var dateHeaderElement = [].slice.call(this.element.querySelectorAll('.e-m-date'));\n for (var _i = 0, dateHeaderElement_1 = dateHeaderElement; _i < dateHeaderElement_1.length; _i++) {\n var element = dateHeaderElement_1[_i];\n EventHandler.remove(element, 'click', this.dayNavigationClick);\n }\n };\n Agenda.prototype.addEventListener = function () {\n this.parent.on(event.scrollUiUpdate, this.onAgendaScrollUiUpdate, this);\n this.parent.on(event.dataReady, this.eventLoad, this);\n };\n Agenda.prototype.removeEventListener = function () {\n if (this.parent) {\n this.parent.off(event.scrollUiUpdate, this.onAgendaScrollUiUpdate);\n this.parent.off(event.dataReady, this.eventLoad);\n }\n };\n Agenda.prototype.onAgendaScrollUiUpdate = function () {\n var headerHeight = this.getHeaderBarHeight();\n if (this.parent.headerModule) {\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\n this.parent.headerModule.updateHeaderItems('add');\n }\n else {\n this.parent.headerModule.updateHeaderItems('remove');\n }\n }\n var contentArea = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\n if (this.parent.height !== 'auto') {\n contentArea.style.height = formatUnit(this.parent.element.offsetHeight - headerHeight);\n }\n };\n Agenda.prototype.scrollToDate = function (scrollDate) {\n var date = new Date(+util.resetTime(scrollDate));\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\n if (!this.parent.hideEmptyAgendaDays || this.parent.getEvents(date, util.addDays(date, 1), true).length > 0) {\n this.parent.changeDate(date);\n }\n }\n else {\n var dateElement = this.element.querySelector('.' + cls.AGENDA_CELLS_CLASS + '[data-date=\"' + date.getTime() + '\"]');\n if (dateElement) {\n this.getContentAreaElement().scrollTop = dateElement.offsetTop;\n }\n }\n };\n Agenda.prototype.destroy = function () {\n if (!this.parent || this.parent && this.parent.isDestroyed) {\n return;\n }\n if (this.element) {\n this.unWireEvents();\n if (this.parent.resourceBase) {\n this.parent.resourceBase.destroy();\n }\n if (this.parent.headerModule && this.parent.activeViewOptions.allowVirtualScrolling) {\n this.parent.headerModule.updateHeaderItems('remove');\n }\n _super.prototype.destroy.call(this);\n }\n };\n return Agenda;\n}(AgendaBase));\nexport { Agenda };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.data)?_c('div',{staticClass:\"clickable\"},[_c('img',{staticClass:\"icon mr-2\",attrs:{\"src\":_vm.messageIcon(_vm.data.Location)}}),_vm._v(\" \"+_vm._s(_vm.data.Subject)+\"\\n \"),_c('br'),_c('small',[_vm._v(_vm._s(_vm.getTimeString(_vm.data.StartTime))+\" - \"+_vm._s(_vm.getTimeString(_vm.data.EndTime))+\"\\n \"),_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.$t('MESSAGES.TYPE.' + _vm.data.Location)))])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AgendaEventTemplate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AgendaEventTemplate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AgendaEventTemplate.vue?vue&type=template&id=1492e028&\"\nimport script from \"./AgendaEventTemplate.vue?vue&type=script&lang=js&\"\nexport * from \"./AgendaEventTemplate.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeetingsCalendar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeetingsCalendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MeetingsCalendar.vue?vue&type=template&id=28320318&\"\nimport script from \"./MeetingsCalendar.vue?vue&type=script&lang=js&\"\nexport * from \"./MeetingsCalendar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Calendar.vue?vue&type=template&id=69012f26&\"\nimport script from \"./Calendar.vue?vue&type=script&lang=js&\"\nexport * from \"./Calendar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}