{"version":3,"sources":["webpack:///./src/components/calendar/CalendarApp1.vue?2fb6","webpack:///./src/components/modals/forms/NewEventModal.vue?7919","webpack:///./src/views/Calendar.vue","webpack:///./src/components/calendar/CalendarApp1.vue","webpack:///./node_modules/@fullcalendar/timegrid/main.js","webpack:///./node_modules/@fullcalendar/list/main.js","webpack:///./src/core/data/events.ts","webpack:///./src/components/modals/forms/NewEventModal.vue?d96a","webpack:///./src/components/modals/forms/NewEventModal.vue","webpack:///./src/components/modals/forms/NewEventModal.vue?bf1e","webpack:///./src/components/calendar/CalendarApp1.vue?eaed","webpack:///./src/views/Calendar.vue?845e","webpack:///./src/core/helpers/dom.ts","webpack:///./src/core/helpers/breadcrumb.ts"],"names":["$can","class","calendarOptions","loading","options","_super","AllDaySplitter","apply","this","arguments","prototype","getKeyInfo","allDay","timed","getKeysForDateSpan","dateSpan","getKeysForEventDef","eventDef","DEFAULT_SLAT_LABEL_FORMAT","hour","minute","omitZeroMinute","meridiem","TimeColsAxisCell","props","classNames","isLabeled","Consumer","context","className","join","isoTimeStr","dateEnv","viewApi","labelFormat","slotLabelFormat","Array","isArray","hookProps","level","time","date","toDate","view","text","format","slotLabelClassNames","content","slotLabelContent","defaultContent","renderInnerContent","didMount","slotLabelDidMount","willUnmount","slotLabelWillUnmount","rootElRef","customClassNames","innerElRef","innerContent","ref","concat","TimeBodyAxis","render","slatMetas","map","slatMeta","key","DEFAULT_WEEK_NUM_FORMAT","week","AUTO_ALL_DAY_MAX_EVENT_ROWS","TimeColsView","_this","allDaySplitter","headerElRef","scrollerElRef","state","slatCoords","handleScrollTopRequest","scrollTop","scrollerEl","current","renderHeadAxis","rowKey","frameHeight","dateProfile","range","renderRange","dayCnt","start","end","navLinkAttrs","weekNumbers","defaultFormat","style","height","renderTableRowAxis","rowHeight","_a","allDayText","allDayClassNames","allDayContent","renderAllDayInner","allDayDidMount","allDayWillUnmount","handleSlatCoords","setState","renderSimpleLayout","headerRowContent","timeContent","sections","stickyHeaderDates","push","type","isSticky","chunk","elRef","tableClassName","rowContent","outerContent","role","theme","getClass","liquid","expandRows","Boolean","viewSpec","isHeightAuto","forPrint","collapsibleWidth","cols","width","renderHScrollLayout","colCnt","dayMinWidth","ScrollGrid","pluginHooks","scrollGridImpl","Error","stickyFooterScrollbar","syncRowHeights","chunks","arg","rowSyncHeights","contentArg","colSpan","isNowIndicator","nowIndicator","clientHeight","tableColGroupNode","unit","nowDate","nowIndicatorTop","safeComputeTop","isAxis","top","colGroups","span","minWidth","getAllDayMaxEventProps","dayMaxEvents","dayMaxEventRows","undefined","TimeColsSlatsCoords","positions","slotDuration","currentRange","startOfDayDate","timeMs","valueOf","slotMinTime","slotMaxTime","computeTimeTop","computeDateTop","when","duration","slatIndex","slatRemainder","len","els","length","slatCoverage","milliseconds","Math","max","min","floor","tops","getHeight","TimeColsSlatsBody","slatElRefs","i","createRef","axis","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","TimeColsSlats","tableMinWidth","clientWidth","minHeight","componentDidMount","updateSizing","componentDidUpdate","componentWillUnmount","onCoords","rootEl","offsetHeight","collectSlatEls","currentMap","elMap","splitSegsByCol","segs","segsByCol","col","splitInteractionByCol","ui","byRow","affectedInstances","isEvent","_i","seg","TimeColMoreLink","allDayDate","moreCnt","hiddenSegs","allSegs","alignmentElRef","renderMoreLinkInner","extraDateSpan","todayRange","popoverContent","renderPlainFgSegs","handleClick","title","isExpanded","popoverId","el","bottom","onClick","shortText","buildPositioning","segInputs","strictOrder","maxStackCnt","hierarchy","hiddenEntries","addSegs","hiddenGroups","web","buildWeb","stretchWeb","segRects","webToRects","entriesByLevel","buildNode","cacheable","lateral","siblingRange","findNextLevelSegs","nextLevelRes","buildNodes","entry","nextLevelNodes","thickness","lateralStart","lateralEnd","pairs","sort","cmpDescPressures","extractNode","a","b","subjectLevel","subjectLateral","levelCoords","subjectEntry","afterSubject","levelCnt","entries","searchIndex","topLevelNodes","totalThickness","stretchNode","node","startCoord","prevThickness","endCoord","allThickness","thicknessFraction","newChildren","nextLevelNodes_1","childNode","res","newThickness","rects","processNode","levelCoord","stackDepth","rect","stackForward","processNodes","nodes","nodes_1","keyFunc","workFunc","cache","args","computeSegVCoords","colDate","eventMinHeight","vcoords","spanStart","spanEnd","round","computeFgSegPlacements","segVCoords","eventOrderStrict","eventMaxStack","dumbSegs","index","segPlacements","segRects_1","segRect","_b","dumbSegs_1","dumbSeg","DEFAULT_TIME_FORMAT","TimeColEvent","isShort","defaultTimeFormat","extraClassNames","TimeColMisc","extraHookProps","TimeCol","sortEventSegs","isSelectMirror","selectMirror","mirrorSegs","eventDrag","eventResize","dateSelectionSegs","interactionAffectedInstances","sortedFgSegs","fgEventSegs","eventOrder","dataAttrs","extraDataAttrs","renderFillSegs","businessHourSegs","bgEventSegs","renderFgSegs","renderNowIndicator","nowIndicatorSegs","segIsInvisible","isDragging","isResizing","isDateSelecting","renderPositionedFgSegs","eventShortHeight","eventSelection","isMirror","_c","renderHiddenGroups","segPlacement","instanceId","eventRange","instance","isVisible","vStyle","computeSegVStyle","hStyle","computeSegHStyle","left","right","isInset","visibility","isSelected","hiddenGroup","positionCss","compileSegsFromEntries","fillType","children","segHCoords","isRtl","shouldOverlap","slotEventOverlap","nearCoord","farCoord","zIndex","hiddenInstances","segEntries","segEntry","TimeColsContent","splitFgEventSegs","splitBgEventSegs","splitBusinessHourSegs","splitNowIndicatorSegs","splitDateSelectionSegs","splitEventDrag","splitEventResize","cellElRefs","cells","fgEventSegsByRow","bgEventSegsByRow","businessHourSegsByRow","nowIndicatorSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","cell","updateCoords","onColCoords","collectCellEls","TimeCols","processSlotOptions","handleRootEl","registerInteractiveComponent","isHitComboAllowed","unregisterInteractiveComponent","handleScrollRequest","request","onScrollTopRequest","top_1","ceil","handleColCoords","colCoords","onSlatCoords","scrollResponder","createScrollResponder","prevProps","update","detach","queryHit","positionLeft","positionTop","snapDuration","snapsPerSlot","colIndex","leftToIndex","topToIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","dayDate","add","dayEl","lefts","rights","layer","snapDurationOverride","DayTimeColsSlicer","sliceRange","dayRanges","segRange","isStart","isEnd","DayTimeCols","buildDayRanges","slicer","timeColsRef","dayTableModel","sliceProps","sliceNowDate","ranges","headerDates","STOCK_SUB_DURATIONS","hours","minutes","seconds","buildSlatMetas","explicitLabelInterval","dayStart","Date","slatTime","slatIterator","labelInterval","computeLabelInterval","metas","toISOString","slotsPerLabel","DayTimeColsView","buildTimeColsModel","dateProfileGenerator","splitProps","slotLabelInterval","hasAttachedAxis","hasDetachedAxis","headerContent","dayHeaders","dates","datesRepDistinctDays","renderIntro","allDaySlot","nextDayThreshold","colGroupNode","renderRowIntro","showWeekNumbers","headerAlignElRef","timeGridContent","daySeries","OPTION_REFINERS","initialView","optionRefiners","views","timeGrid","component","usesMinMaxTime","timeGridDay","days","timeGridWeek","weeks","ListViewHeaderRow","textId","cellId","dayMeta","listDayFormat","sideText","listDaySideFormat","sideNavLinkAttrs","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","scope","id","ListViewEventRow","timeHeaderId","eventHeaderId","dateHeaderId","timeFormat","eventTimeFormat","timeText","disableDragging","disableResizing","renderEventInnerContent","isPast","isFuture","isToday","event","url","buildTimeContent","borderColor","backgroundColor","headers","interactiveAttrs","def","displayEventTime","eventInstance","doAllDay","ListView","computeDateVars","eventStoreToSegs","_eventStoreToSegs","dateHeaderIdRoot","setRootEl","dayDates","eventSegs","eventStore","eventUiBases","overflowX","overflowY","renderSegList","renderEmptyMessage","noEventsText","noEventsClassNames","noEventsContent","renderNoEventsInner","noEventsDidMount","noEventsWillUnmount","segsByDay","groupSegsByDay","innerNodes","dayIndex","daySegs","dayStr","daySegs_1","timeHint","eventHint","eventRangesToSegs","activeRange","fg","eventRanges","eventRanges_1","eventRangeToSegs","viewEnd","createFalsableFormatter","input","list","buttonTextKey","month","day","year","listDay","weekday","listWeek","listMonth","listYear","todayDate","startOf","TODAY","clone","subtract","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_ctx","_cache","$props","$setup","$data","$options","_component_inline_svg","_component_el_input","_component_el_form_item","_component_el_checkbox","_component_el_date_picker","_component_el_form","onSubmit","$event","submit","model","targetData","rules","default","src","prop","modelValue","eventName","name","_","eventDescription","placeholder","eventLocation","eventStartDate","size","eventEndDate","components","setup","formRef","newTargetModalRef","required","message","trigger","value","validate","valid","fire","icon","buttonsStyling","confirmButtonText","customClass","confirmButton","setTimeout","then","__exports__","FullCalendar","NewEventModal","LoadingSpinner","methods","data","$router","extendedProps","job_id","computed","watch","val","plugins","headerToolbar","center","initialDate","firstDay","navLinks","eventClick","handleEventClick","weekText","buttonText","editable","events","shifts","fetchShifts","CalendarApp1","AdminCalendar","hideModal","modalEl","myModal","getInstance","hide","removeModalBackdrop","document","querySelectorAll","forEach","item","remove","setCurrentPageBreadcrumbs","pageTitle","breadcrumbs","dispatch","SET_BREADCRUMB_ACTION","pageBreadcrumbPath","setCurrentPageTitle"],"mappings":"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","file":"js/chunk-12f2f5d1.0bf09d65.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarApp1.vue?vue&type=style&index=0&id=7fdbcf9f&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NewEventModal.vue?vue&type=style&index=0&id=461af83a&lang=scss\"","\n\n\n","\n\n\n\n\n","/*!\nFullCalendar v5.10.1\nDocs & License: https://fullcalendar.io/\n(c) 2021 Adam Shaw\n*/\nimport './main.css';\n\nimport { hasBgRendering, Splitter, createFormatter, createElement, ViewContextType, RenderHook, BaseComponent, createRef, diffDays, buildNavLinkAttrs, WeekNumberRoot, getStickyHeaderDates, ViewRoot, SimpleScrollGrid, getStickyFooterScrollbar, NowTimer, NowIndicatorRoot, renderScrollShim, DateComponent, rangeContainsMarker, startOfDay, asRoughMs, createDuration, RefMap, PositionCache, MoreLinkRoot, setRef, SegHierarchy, groupIntersectingEntries, buildEntryKey, binarySearch, getEntrySpanEnd, StandardEvent, DayCellContent, Fragment, getSegMeta, memoize, sortEventSegs, DayCellRoot, buildIsoString, computeEarliestSegStart, buildEventRangeKey, BgEvent, renderFill, addDurations, multiplyDuration, wholeDivideDurations, intersectRanges, Slicer, formatIsoTimeString, DayHeader, DaySeriesModel, DayTableModel, createPlugin } from '@fullcalendar/common';\nimport { __extends, __assign } from 'tslib';\nimport { DayTable } from '@fullcalendar/daygrid';\n\nvar AllDaySplitter = /** @class */ (function (_super) {\n __extends(AllDaySplitter, _super);\n function AllDaySplitter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AllDaySplitter.prototype.getKeyInfo = function () {\n return {\n allDay: {},\n timed: {},\n };\n };\n AllDaySplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n if (dateSpan.allDay) {\n return ['allDay'];\n }\n return ['timed'];\n };\n AllDaySplitter.prototype.getKeysForEventDef = function (eventDef) {\n if (!eventDef.allDay) {\n return ['timed'];\n }\n if (hasBgRendering(eventDef)) {\n return ['timed', 'allDay'];\n }\n return ['allDay'];\n };\n return AllDaySplitter;\n}(Splitter));\n\nvar DEFAULT_SLAT_LABEL_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'short',\n});\nfunction TimeColsAxisCell(props) {\n var classNames = [\n 'fc-timegrid-slot',\n 'fc-timegrid-slot-label',\n props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',\n ];\n return (createElement(ViewContextType.Consumer, null, function (context) {\n if (!props.isLabeled) {\n return (createElement(\"td\", { className: classNames.join(' '), \"data-time\": props.isoTimeStr }));\n }\n var dateEnv = context.dateEnv, options = context.options, viewApi = context.viewApi;\n var labelFormat = // TODO: fully pre-parse\n options.slotLabelFormat == null ? DEFAULT_SLAT_LABEL_FORMAT :\n Array.isArray(options.slotLabelFormat) ? createFormatter(options.slotLabelFormat[0]) :\n createFormatter(options.slotLabelFormat);\n var hookProps = {\n level: 0,\n time: props.time,\n date: dateEnv.toDate(props.date),\n view: viewApi,\n text: dateEnv.format(props.date, labelFormat),\n };\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.slotLabelClassNames, content: options.slotLabelContent, defaultContent: renderInnerContent, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-time\": props.isoTimeStr },\n createElement(\"div\", { className: \"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame\" },\n createElement(\"div\", { className: \"fc-timegrid-slot-label-cushion fc-scrollgrid-shrink-cushion\", ref: innerElRef }, innerContent)))); }));\n }));\n}\nfunction renderInnerContent(props) {\n return props.text;\n}\n\nvar TimeBodyAxis = /** @class */ (function (_super) {\n __extends(TimeBodyAxis, _super);\n function TimeBodyAxis() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeBodyAxis.prototype.render = function () {\n return this.props.slatMetas.map(function (slatMeta) { return (createElement(\"tr\", { key: slatMeta.key },\n createElement(TimeColsAxisCell, __assign({}, slatMeta)))); });\n };\n return TimeBodyAxis;\n}(BaseComponent));\n\nvar DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'short' });\nvar AUTO_ALL_DAY_MAX_EVENT_ROWS = 5;\nvar TimeColsView = /** @class */ (function (_super) {\n __extends(TimeColsView, _super);\n function TimeColsView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allDaySplitter = new AllDaySplitter(); // for use by subclasses\n _this.headerElRef = createRef();\n _this.rootElRef = createRef();\n _this.scrollerElRef = createRef();\n _this.state = {\n slatCoords: null,\n };\n _this.handleScrollTopRequest = function (scrollTop) {\n var scrollerEl = _this.scrollerElRef.current;\n if (scrollerEl) { // TODO: not sure how this could ever be null. weirdness with the reducer\n scrollerEl.scrollTop = scrollTop;\n }\n };\n /* Header Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n _this.renderHeadAxis = function (rowKey, frameHeight) {\n if (frameHeight === void 0) { frameHeight = ''; }\n var options = _this.context.options;\n var dateProfile = _this.props.dateProfile;\n var range = dateProfile.renderRange;\n var dayCnt = diffDays(range.start, range.end);\n var navLinkAttrs = (dayCnt === 1) // only do in day views (to avoid doing in week views that dont need it)\n ? buildNavLinkAttrs(_this.context, range.start, 'week')\n : {};\n if (options.weekNumbers && rowKey === 'day') {\n return (createElement(WeekNumberRoot, { date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"th\", { ref: rootElRef, \"aria-hidden\": true, className: [\n 'fc-timegrid-axis',\n 'fc-scrollgrid-shrink',\n ].concat(classNames).join(' ') },\n createElement(\"div\", { className: \"fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid\", style: { height: frameHeight } },\n createElement(\"a\", __assign({ ref: innerElRef, className: \"fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner\" }, navLinkAttrs), innerContent)))); }));\n }\n return (createElement(\"th\", { \"aria-hidden\": true, className: \"fc-timegrid-axis\" },\n createElement(\"div\", { className: \"fc-timegrid-axis-frame\", style: { height: frameHeight } })));\n };\n /* Table Component Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,\n // but DayGrid still needs to have classNames on inner elements in order to measure.\n _this.renderTableRowAxis = function (rowHeight) {\n var _a = _this.context, options = _a.options, viewApi = _a.viewApi;\n var hookProps = {\n text: options.allDayText,\n view: viewApi,\n };\n return (\n // TODO: make reusable hook. used in list view too\n createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, \"aria-hidden\": true, className: [\n 'fc-timegrid-axis',\n 'fc-scrollgrid-shrink',\n ].concat(classNames).join(' ') },\n createElement(\"div\", { className: 'fc-timegrid-axis-frame fc-scrollgrid-shrink-frame' + (rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : ''), style: { height: rowHeight } },\n createElement(\"span\", { className: \"fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner\", ref: innerElRef }, innerContent)))); }));\n };\n _this.handleSlatCoords = function (slatCoords) {\n _this.setState({ slatCoords: slatCoords });\n };\n return _this;\n }\n // rendering\n // ----------------------------------------------------------------------------------------------------\n TimeColsView.prototype.renderSimpleLayout = function (headerRowContent, allDayContent, timeContent) {\n var _a = this, context = _a.context, props = _a.props;\n var sections = [];\n var stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n if (allDayContent) {\n sections.push({\n type: 'body',\n key: 'all-day',\n chunk: { content: allDayContent },\n });\n sections.push({\n type: 'body',\n key: 'all-day-divider',\n outerContent: ( // TODO: rename to cellContent so don't need to define ?\n createElement(\"tr\", { role: \"presentation\", className: \"fc-scrollgrid-section\" },\n createElement(\"td\", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n expandRows: Boolean(context.options.expandRows),\n chunk: {\n scrollerElRef: this.scrollerElRef,\n content: timeContent,\n },\n });\n return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.rootElRef }, function (rootElRef, classNames) { return (createElement(\"div\", { className: ['fc-timegrid'].concat(classNames).join(' '), ref: rootElRef },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [{ width: 'shrink' }], sections: sections }))); }));\n };\n TimeColsView.prototype.renderHScrollLayout = function (headerRowContent, allDayContent, timeContent, colCnt, dayMinWidth, slatMetas, slatCoords) {\n var _this = this;\n var ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n var _a = this, context = _a.context, props = _a.props;\n var stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n var stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n var sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n syncRowHeights: true,\n chunks: [\n {\n key: 'axis',\n rowContent: function (arg) { return (createElement(\"tr\", { role: \"presentation\" }, _this.renderHeadAxis('day', arg.rowSyncHeights[0]))); },\n },\n {\n key: 'cols',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n ],\n });\n }\n if (allDayContent) {\n sections.push({\n type: 'body',\n key: 'all-day',\n syncRowHeights: true,\n chunks: [\n {\n key: 'axis',\n rowContent: function (contentArg) { return (createElement(\"tr\", { role: \"presentation\" }, _this.renderTableRowAxis(contentArg.rowSyncHeights[0]))); },\n },\n {\n key: 'cols',\n content: allDayContent,\n },\n ],\n });\n sections.push({\n key: 'all-day-divider',\n type: 'body',\n outerContent: ( // TODO: rename to cellContent so don't need to define ?\n createElement(\"tr\", { role: \"presentation\", className: \"fc-scrollgrid-section\" },\n createElement(\"td\", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n });\n }\n var isNowIndicator = context.options.nowIndicator;\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n expandRows: Boolean(context.options.expandRows),\n chunks: [\n {\n key: 'axis',\n content: function (arg) { return (\n // TODO: make this now-indicator arrow more DRY with TimeColsContent\n createElement(\"div\", { className: \"fc-timegrid-axis-chunk\" },\n createElement(\"table\", { \"aria-hidden\": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },\n arg.tableColGroupNode,\n createElement(\"tbody\", null,\n createElement(TimeBodyAxis, { slatMetas: slatMetas }))),\n createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" },\n createElement(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' /* hacky */ }, function (nowDate) {\n var nowIndicatorTop = isNowIndicator &&\n slatCoords &&\n slatCoords.safeComputeTop(nowDate); // might return void\n if (typeof nowIndicatorTop === 'number') {\n return (createElement(NowIndicatorRoot, { isAxis: true, date: nowDate }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-timegrid-now-indicator-arrow'].concat(classNames).join(' '), style: { top: nowIndicatorTop } }, innerContent)); }));\n }\n return null;\n })))); },\n },\n {\n key: 'cols',\n scrollerElRef: this.scrollerElRef,\n content: timeContent,\n },\n ],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n key: 'footer',\n type: 'footer',\n isSticky: true,\n chunks: [\n {\n key: 'axis',\n content: renderScrollShim,\n },\n {\n key: 'cols',\n content: renderScrollShim,\n },\n ],\n });\n }\n return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.rootElRef }, function (rootElRef, classNames) { return (createElement(\"div\", { className: ['fc-timegrid'].concat(classNames).join(' '), ref: rootElRef },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: false, colGroups: [\n { width: 'shrink', cols: [{ width: 'shrink' }] },\n { cols: [{ span: colCnt, minWidth: dayMinWidth }] },\n ], sections: sections }))); }));\n };\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n TimeColsView.prototype.getAllDayMaxEventProps = function () {\n var _a = this.context.options, dayMaxEvents = _a.dayMaxEvents, dayMaxEventRows = _a.dayMaxEventRows;\n if (dayMaxEvents === true || dayMaxEventRows === true) { // is auto?\n dayMaxEvents = undefined;\n dayMaxEventRows = AUTO_ALL_DAY_MAX_EVENT_ROWS; // make sure \"auto\" goes to a real number\n }\n return { dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows };\n };\n return TimeColsView;\n}(DateComponent));\nfunction renderAllDayInner(hookProps) {\n return hookProps.text;\n}\n\nvar TimeColsSlatsCoords = /** @class */ (function () {\n function TimeColsSlatsCoords(positions, dateProfile, slotDuration) {\n this.positions = positions;\n this.dateProfile = dateProfile;\n this.slotDuration = slotDuration;\n }\n TimeColsSlatsCoords.prototype.safeComputeTop = function (date) {\n var dateProfile = this.dateProfile;\n if (rangeContainsMarker(dateProfile.currentRange, date)) {\n var startOfDayDate = startOfDay(date);\n var timeMs = date.valueOf() - startOfDayDate.valueOf();\n if (timeMs >= asRoughMs(dateProfile.slotMinTime) &&\n timeMs < asRoughMs(dateProfile.slotMaxTime)) {\n return this.computeTimeTop(createDuration(timeMs));\n }\n }\n return null;\n };\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n TimeColsSlatsCoords.prototype.computeDateTop = function (when, startOfDayDate) {\n if (!startOfDayDate) {\n startOfDayDate = startOfDay(when);\n }\n return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n };\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.\n // Eventually allow computation with arbirary slat dates.\n TimeColsSlatsCoords.prototype.computeTimeTop = function (duration) {\n var _a = this, positions = _a.positions, dateProfile = _a.dateProfile;\n var len = positions.els.length;\n // floating-point value of # of slots covered\n var slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.slotMinTime)) / asRoughMs(this.slotDuration);\n var slatIndex;\n var slatRemainder;\n // compute a floating-point number for how many slats should be progressed through.\n // from 0 to number of slats (inclusive)\n // constrained because slotMinTime/slotMaxTime might be customized.\n slatCoverage = Math.max(0, slatCoverage);\n slatCoverage = Math.min(len, slatCoverage);\n // an integer index of the furthest whole slat\n // from 0 to number slats (*exclusive*, so len-1)\n slatIndex = Math.floor(slatCoverage);\n slatIndex = Math.min(slatIndex, len - 1);\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n // could be 1.0 if slatCoverage is covering *all* the slots\n slatRemainder = slatCoverage - slatIndex;\n return positions.tops[slatIndex] +\n positions.getHeight(slatIndex) * slatRemainder;\n };\n return TimeColsSlatsCoords;\n}());\n\nvar TimeColsSlatsBody = /** @class */ (function (_super) {\n __extends(TimeColsSlatsBody, _super);\n function TimeColsSlatsBody() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeColsSlatsBody.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\n var options = context.options;\n var slatElRefs = props.slatElRefs;\n return (createElement(\"tbody\", null, props.slatMetas.map(function (slatMeta, i) {\n var hookProps = {\n time: slatMeta.time,\n date: context.dateEnv.toDate(slatMeta.date),\n view: context.viewApi,\n };\n var classNames = [\n 'fc-timegrid-slot',\n 'fc-timegrid-slot-lane',\n slatMeta.isLabeled ? '' : 'fc-timegrid-slot-minor',\n ];\n return (createElement(\"tr\", { key: slatMeta.key, ref: slatElRefs.createRef(slatMeta.key) },\n props.axis && (createElement(TimeColsAxisCell, __assign({}, slatMeta))),\n createElement(RenderHook, { hookProps: hookProps, classNames: options.slotLaneClassNames, content: options.slotLaneContent, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-time\": slatMeta.isoTimeStr }, innerContent)); })));\n })));\n };\n return TimeColsSlatsBody;\n}(BaseComponent));\n\n/*\nfor the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n*/\nvar TimeColsSlats = /** @class */ (function (_super) {\n __extends(TimeColsSlats, _super);\n function TimeColsSlats() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rootElRef = createRef();\n _this.slatElRefs = new RefMap();\n return _this;\n }\n TimeColsSlats.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\n return (createElement(\"div\", { ref: this.rootElRef, className: \"fc-timegrid-slots\" },\n createElement(\"table\", { \"aria-hidden\": true, className: context.theme.getClass('table'), style: {\n minWidth: props.tableMinWidth,\n width: props.clientWidth,\n height: props.minHeight,\n } },\n props.tableColGroupNode /* relies on there only being a single for the axis */,\n createElement(TimeColsSlatsBody, { slatElRefs: this.slatElRefs, axis: props.axis, slatMetas: props.slatMetas }))));\n };\n TimeColsSlats.prototype.componentDidMount = function () {\n this.updateSizing();\n };\n TimeColsSlats.prototype.componentDidUpdate = function () {\n this.updateSizing();\n };\n TimeColsSlats.prototype.componentWillUnmount = function () {\n if (this.props.onCoords) {\n this.props.onCoords(null);\n }\n };\n TimeColsSlats.prototype.updateSizing = function () {\n var _a = this, context = _a.context, props = _a.props;\n if (props.onCoords &&\n props.clientWidth !== null // means sizing has stabilized\n ) {\n var rootEl = this.rootElRef.current;\n if (rootEl.offsetHeight) { // not hidden by css\n props.onCoords(new TimeColsSlatsCoords(new PositionCache(this.rootElRef.current, collectSlatEls(this.slatElRefs.currentMap, props.slatMetas), false, true), this.props.dateProfile, context.options.slotDuration));\n }\n }\n };\n return TimeColsSlats;\n}(BaseComponent));\nfunction collectSlatEls(elMap, slatMetas) {\n return slatMetas.map(function (slatMeta) { return elMap[slatMeta.key]; });\n}\n\nfunction splitSegsByCol(segs, colCnt) {\n var segsByCol = [];\n var i;\n for (i = 0; i < colCnt; i += 1) {\n segsByCol.push([]);\n }\n if (segs) {\n for (i = 0; i < segs.length; i += 1) {\n segsByCol[segs[i].col].push(segs[i]);\n }\n }\n return segsByCol;\n}\nfunction splitInteractionByCol(ui, colCnt) {\n var byRow = [];\n if (!ui) {\n for (var i = 0; i < colCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (var i = 0; i < colCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (var _i = 0, _a = ui.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n byRow[seg.col].segs.push(seg);\n }\n }\n return byRow;\n}\n\nvar TimeColMoreLink = /** @class */ (function (_super) {\n __extends(TimeColMoreLink, _super);\n function TimeColMoreLink() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rootElRef = createRef();\n return _this;\n }\n TimeColMoreLink.prototype.render = function () {\n var _this = this;\n var props = this.props;\n return (createElement(MoreLinkRoot, { allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, alignmentElRef: this.rootElRef, defaultContent: renderMoreLinkInner, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: function () { return renderPlainFgSegs(props.hiddenSegs, props); } }, function (rootElRef, classNames, innerElRef, innerContent, handleClick, title, isExpanded, popoverId) { return (createElement(\"a\", { ref: function (el) {\n setRef(rootElRef, el);\n setRef(_this.rootElRef, el);\n }, className: ['fc-timegrid-more-link'].concat(classNames).join(' '), style: { top: props.top, bottom: props.bottom }, onClick: handleClick, title: title, \"aria-expanded\": isExpanded, \"aria-controls\": popoverId },\n createElement(\"div\", { ref: innerElRef, className: \"fc-timegrid-more-link-inner fc-sticky\" }, innerContent))); }));\n };\n return TimeColMoreLink;\n}(BaseComponent));\nfunction renderMoreLinkInner(props) {\n return props.shortText;\n}\n\n// segInputs assumed sorted\nfunction buildPositioning(segInputs, strictOrder, maxStackCnt) {\n var hierarchy = new SegHierarchy();\n if (strictOrder != null) {\n hierarchy.strictOrder = strictOrder;\n }\n if (maxStackCnt != null) {\n hierarchy.maxStackCnt = maxStackCnt;\n }\n var hiddenEntries = hierarchy.addSegs(segInputs);\n var hiddenGroups = groupIntersectingEntries(hiddenEntries);\n var web = buildWeb(hierarchy);\n web = stretchWeb(web, 1); // all levelCoords/thickness will have 0.0-1.0\n var segRects = webToRects(web);\n return { segRects: segRects, hiddenGroups: hiddenGroups };\n}\nfunction buildWeb(hierarchy) {\n var entriesByLevel = hierarchy.entriesByLevel;\n var buildNode = cacheable(function (level, lateral) { return level + ':' + lateral; }, function (level, lateral) {\n var siblingRange = findNextLevelSegs(hierarchy, level, lateral);\n var nextLevelRes = buildNodes(siblingRange, buildNode);\n var entry = entriesByLevel[level][lateral];\n return [\n __assign(__assign({}, entry), { nextLevelNodes: nextLevelRes[0] }),\n entry.thickness + nextLevelRes[1], // the pressure builds\n ];\n });\n return buildNodes(entriesByLevel.length\n ? { level: 0, lateralStart: 0, lateralEnd: entriesByLevel[0].length }\n : null, buildNode)[0];\n}\nfunction buildNodes(siblingRange, buildNode) {\n if (!siblingRange) {\n return [[], 0];\n }\n var level = siblingRange.level, lateralStart = siblingRange.lateralStart, lateralEnd = siblingRange.lateralEnd;\n var lateral = lateralStart;\n var pairs = [];\n while (lateral < lateralEnd) {\n pairs.push(buildNode(level, lateral));\n lateral += 1;\n }\n pairs.sort(cmpDescPressures);\n return [\n pairs.map(extractNode),\n pairs[0][1], // first item's pressure\n ];\n}\nfunction cmpDescPressures(a, b) {\n return b[1] - a[1];\n}\nfunction extractNode(a) {\n return a[0];\n}\nfunction findNextLevelSegs(hierarchy, subjectLevel, subjectLateral) {\n var levelCoords = hierarchy.levelCoords, entriesByLevel = hierarchy.entriesByLevel;\n var subjectEntry = entriesByLevel[subjectLevel][subjectLateral];\n var afterSubject = levelCoords[subjectLevel] + subjectEntry.thickness;\n var levelCnt = levelCoords.length;\n var level = subjectLevel;\n // skip past levels that are too high up\n for (; level < levelCnt && levelCoords[level] < afterSubject; level += 1)\n ; // do nothing\n for (; level < levelCnt; level += 1) {\n var entries = entriesByLevel[level];\n var entry = void 0;\n var searchIndex = binarySearch(entries, subjectEntry.span.start, getEntrySpanEnd);\n var lateralStart = searchIndex[0] + searchIndex[1]; // if exact match (which doesn't collide), go to next one\n var lateralEnd = lateralStart;\n while ( // loop through entries that horizontally intersect\n (entry = entries[lateralEnd]) && // but not past the whole seg list\n entry.span.start < subjectEntry.span.end) {\n lateralEnd += 1;\n }\n if (lateralStart < lateralEnd) {\n return { level: level, lateralStart: lateralStart, lateralEnd: lateralEnd };\n }\n }\n return null;\n}\nfunction stretchWeb(topLevelNodes, totalThickness) {\n var stretchNode = cacheable(function (node, startCoord, prevThickness) { return buildEntryKey(node); }, function (node, startCoord, prevThickness) {\n var nextLevelNodes = node.nextLevelNodes, thickness = node.thickness;\n var allThickness = thickness + prevThickness;\n var thicknessFraction = thickness / allThickness;\n var endCoord;\n var newChildren = [];\n if (!nextLevelNodes.length) {\n endCoord = totalThickness;\n }\n else {\n for (var _i = 0, nextLevelNodes_1 = nextLevelNodes; _i < nextLevelNodes_1.length; _i++) {\n var childNode = nextLevelNodes_1[_i];\n if (endCoord === undefined) {\n var res = stretchNode(childNode, startCoord, allThickness);\n endCoord = res[0];\n newChildren.push(res[1]);\n }\n else {\n var res = stretchNode(childNode, endCoord, 0);\n newChildren.push(res[1]);\n }\n }\n }\n var newThickness = (endCoord - startCoord) * thicknessFraction;\n return [endCoord - newThickness, __assign(__assign({}, node), { thickness: newThickness, nextLevelNodes: newChildren })];\n });\n return topLevelNodes.map(function (node) { return stretchNode(node, 0, 0)[1]; });\n}\n// not sorted in any particular order\nfunction webToRects(topLevelNodes) {\n var rects = [];\n var processNode = cacheable(function (node, levelCoord, stackDepth) { return buildEntryKey(node); }, function (node, levelCoord, stackDepth) {\n var rect = __assign(__assign({}, node), { levelCoord: levelCoord,\n stackDepth: stackDepth, stackForward: 0 });\n rects.push(rect);\n return (rect.stackForward = processNodes(node.nextLevelNodes, levelCoord + node.thickness, stackDepth + 1) + 1);\n });\n function processNodes(nodes, levelCoord, stackDepth) {\n var stackForward = 0;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n stackForward = Math.max(processNode(node, levelCoord, stackDepth), stackForward);\n }\n return stackForward;\n }\n processNodes(topLevelNodes, 0, 0);\n return rects; // TODO: sort rects by levelCoord to be consistent with toRects?\n}\n// TODO: move to general util\nfunction cacheable(keyFunc, workFunc) {\n var cache = {};\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var key = keyFunc.apply(void 0, args);\n return (key in cache)\n ? cache[key]\n : (cache[key] = workFunc.apply(void 0, args));\n };\n}\n\nfunction computeSegVCoords(segs, colDate, slatCoords, eventMinHeight) {\n if (slatCoords === void 0) { slatCoords = null; }\n if (eventMinHeight === void 0) { eventMinHeight = 0; }\n var vcoords = [];\n if (slatCoords) {\n for (var i = 0; i < segs.length; i += 1) {\n var seg = segs[i];\n var spanStart = slatCoords.computeDateTop(seg.start, colDate);\n var spanEnd = Math.max(spanStart + (eventMinHeight || 0), // :(\n slatCoords.computeDateTop(seg.end, colDate));\n vcoords.push({\n start: Math.round(spanStart),\n end: Math.round(spanEnd), //\n });\n }\n }\n return vcoords;\n}\nfunction computeFgSegPlacements(segs, segVCoords, // might not have for every seg\neventOrderStrict, eventMaxStack) {\n var segInputs = [];\n var dumbSegs = []; // segs without coords\n for (var i = 0; i < segs.length; i += 1) {\n var vcoords = segVCoords[i];\n if (vcoords) {\n segInputs.push({\n index: i,\n thickness: 1,\n span: vcoords,\n });\n }\n else {\n dumbSegs.push(segs[i]);\n }\n }\n var _a = buildPositioning(segInputs, eventOrderStrict, eventMaxStack), segRects = _a.segRects, hiddenGroups = _a.hiddenGroups;\n var segPlacements = [];\n for (var _i = 0, segRects_1 = segRects; _i < segRects_1.length; _i++) {\n var segRect = segRects_1[_i];\n segPlacements.push({\n seg: segs[segRect.index],\n rect: segRect,\n });\n }\n for (var _b = 0, dumbSegs_1 = dumbSegs; _b < dumbSegs_1.length; _b++) {\n var dumbSeg = dumbSegs_1[_b];\n segPlacements.push({ seg: dumbSeg, rect: null });\n }\n return { segPlacements: segPlacements, hiddenGroups: hiddenGroups };\n}\n\nvar DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: false,\n});\nvar TimeColEvent = /** @class */ (function (_super) {\n __extends(TimeColEvent, _super);\n function TimeColEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeColEvent.prototype.render = function () {\n var classNames = [\n 'fc-timegrid-event',\n 'fc-v-event',\n ];\n if (this.props.isShort) {\n classNames.push('fc-timegrid-event-short');\n }\n return (createElement(StandardEvent, __assign({}, this.props, { defaultTimeFormat: DEFAULT_TIME_FORMAT, extraClassNames: classNames })));\n };\n return TimeColEvent;\n}(BaseComponent));\n\nvar TimeColMisc = /** @class */ (function (_super) {\n __extends(TimeColMisc, _super);\n function TimeColMisc() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeColMisc.prototype.render = function () {\n var props = this.props;\n return (createElement(DayCellContent, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps }, function (innerElRef, innerContent) { return (innerContent &&\n createElement(\"div\", { className: \"fc-timegrid-col-misc\", ref: innerElRef }, innerContent)); }));\n };\n return TimeColMisc;\n}(BaseComponent));\n\nvar TimeCol = /** @class */ (function (_super) {\n __extends(TimeCol, _super);\n function TimeCol() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.sortEventSegs = memoize(sortEventSegs);\n return _this;\n }\n // TODO: memoize event-placement?\n TimeCol.prototype.render = function () {\n var _this = this;\n var _a = this, props = _a.props, context = _a.context;\n var isSelectMirror = context.options.selectMirror;\n var mirrorSegs = (props.eventDrag && props.eventDrag.segs) ||\n (props.eventResize && props.eventResize.segs) ||\n (isSelectMirror && props.dateSelectionSegs) ||\n [];\n var interactionAffectedInstances = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n var sortedFgSegs = this.sortEventSegs(props.fgEventSegs, context.options.eventOrder);\n return (createElement(DayCellRoot, { elRef: props.elRef, date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps }, function (rootElRef, classNames, dataAttrs) { return (createElement(\"td\", __assign({ ref: rootElRef, role: \"gridcell\", className: ['fc-timegrid-col'].concat(classNames, props.extraClassNames || []).join(' ') }, dataAttrs, props.extraDataAttrs),\n createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n createElement(\"div\", { className: \"fc-timegrid-col-bg\" },\n _this.renderFillSegs(props.businessHourSegs, 'non-business'),\n _this.renderFillSegs(props.bgEventSegs, 'bg-event'),\n _this.renderFillSegs(props.dateSelectionSegs, 'highlight')),\n createElement(\"div\", { className: \"fc-timegrid-col-events\" }, _this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)),\n createElement(\"div\", { className: \"fc-timegrid-col-events\" }, _this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror))),\n createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, _this.renderNowIndicator(props.nowIndicatorSegs)),\n createElement(TimeColMisc, { date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraHookProps: props.extraHookProps })))); }));\n };\n TimeCol.prototype.renderFgSegs = function (sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting) {\n var props = this.props;\n if (props.forPrint) {\n return renderPlainFgSegs(sortedFgSegs, props);\n }\n return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting);\n };\n TimeCol.prototype.renderPositionedFgSegs = function (segs, // if not mirror, needs to be sorted\n segIsInvisible, isDragging, isResizing, isDateSelecting) {\n var _this = this;\n var _a = this.context.options, eventMaxStack = _a.eventMaxStack, eventShortHeight = _a.eventShortHeight, eventOrderStrict = _a.eventOrderStrict, eventMinHeight = _a.eventMinHeight;\n var _b = this.props, date = _b.date, slatCoords = _b.slatCoords, eventSelection = _b.eventSelection, todayRange = _b.todayRange, nowDate = _b.nowDate;\n var isMirror = isDragging || isResizing || isDateSelecting;\n var segVCoords = computeSegVCoords(segs, date, slatCoords, eventMinHeight);\n var _c = computeFgSegPlacements(segs, segVCoords, eventOrderStrict, eventMaxStack), segPlacements = _c.segPlacements, hiddenGroups = _c.hiddenGroups;\n return (createElement(Fragment, null,\n this.renderHiddenGroups(hiddenGroups, segs),\n segPlacements.map(function (segPlacement) {\n var seg = segPlacement.seg, rect = segPlacement.rect;\n var instanceId = seg.eventRange.instance.instanceId;\n var isVisible = isMirror || Boolean(!segIsInvisible[instanceId] && rect);\n var vStyle = computeSegVStyle(rect && rect.span);\n var hStyle = (!isMirror && rect) ? _this.computeSegHStyle(rect) : { left: 0, right: 0 };\n var isInset = Boolean(rect) && rect.stackForward > 0;\n var isShort = Boolean(rect) && (rect.span.end - rect.span.start) < eventShortHeight; // look at other places for this problem\n return (createElement(\"div\", { className: 'fc-timegrid-event-harness' +\n (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: instanceId, style: __assign(__assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },\n createElement(TimeColEvent, __assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, isShort: isShort }, getSegMeta(seg, todayRange, nowDate)))));\n })));\n };\n // will already have eventMinHeight applied because segInputs already had it\n TimeCol.prototype.renderHiddenGroups = function (hiddenGroups, segs) {\n var _a = this.props, extraDateSpan = _a.extraDateSpan, dateProfile = _a.dateProfile, todayRange = _a.todayRange, nowDate = _a.nowDate, eventSelection = _a.eventSelection, eventDrag = _a.eventDrag, eventResize = _a.eventResize;\n return (createElement(Fragment, null, hiddenGroups.map(function (hiddenGroup) {\n var positionCss = computeSegVStyle(hiddenGroup.span);\n var hiddenSegs = compileSegsFromEntries(hiddenGroup.entries, segs);\n return (createElement(TimeColMoreLink, { key: buildIsoString(computeEarliestSegStart(hiddenSegs)), hiddenSegs: hiddenSegs, top: positionCss.top, bottom: positionCss.bottom, extraDateSpan: extraDateSpan, dateProfile: dateProfile, todayRange: todayRange, nowDate: nowDate, eventSelection: eventSelection, eventDrag: eventDrag, eventResize: eventResize }));\n })));\n };\n TimeCol.prototype.renderFillSegs = function (segs, fillType) {\n var _a = this, props = _a.props, context = _a.context;\n var segVCoords = computeSegVCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight); // don't assume all populated\n var children = segVCoords.map(function (vcoords, i) {\n var seg = segs[i];\n return (createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-timegrid-bg-harness\", style: computeSegVStyle(vcoords) }, fillType === 'bg-event' ?\n createElement(BgEvent, __assign({ seg: seg }, getSegMeta(seg, props.todayRange, props.nowDate))) :\n renderFill(fillType)));\n });\n return createElement(Fragment, null, children);\n };\n TimeCol.prototype.renderNowIndicator = function (segs) {\n var _a = this.props, slatCoords = _a.slatCoords, date = _a.date;\n if (!slatCoords) {\n return null;\n }\n return segs.map(function (seg, i) { return (createElement(NowIndicatorRoot, { isAxis: false, date: date, \n // key doesn't matter. will only ever be one\n key: i }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-timegrid-now-indicator-line'].concat(classNames).join(' '), style: { top: slatCoords.computeDateTop(seg.start, date) } }, innerContent)); })); });\n };\n TimeCol.prototype.computeSegHStyle = function (segHCoords) {\n var _a = this.context, isRtl = _a.isRtl, options = _a.options;\n var shouldOverlap = options.slotEventOverlap;\n var nearCoord = segHCoords.levelCoord; // the left side if LTR. the right side if RTL. floating-point\n var farCoord = segHCoords.levelCoord + segHCoords.thickness; // the right side if LTR. the left side if RTL. floating-point\n var left; // amount of space from left edge, a fraction of the total width\n var right; // amount of space from right edge, a fraction of the total width\n if (shouldOverlap) {\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\n farCoord = Math.min(1, nearCoord + (farCoord - nearCoord) * 2);\n }\n if (isRtl) {\n left = 1 - farCoord;\n right = nearCoord;\n }\n else {\n left = nearCoord;\n right = 1 - farCoord;\n }\n var props = {\n zIndex: segHCoords.stackDepth + 1,\n left: left * 100 + '%',\n right: right * 100 + '%',\n };\n if (shouldOverlap && !segHCoords.stackForward) {\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\n props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n }\n return props;\n };\n return TimeCol;\n}(BaseComponent));\nfunction renderPlainFgSegs(sortedFgSegs, _a) {\n var todayRange = _a.todayRange, nowDate = _a.nowDate, eventSelection = _a.eventSelection, eventDrag = _a.eventDrag, eventResize = _a.eventResize;\n var hiddenInstances = (eventDrag ? eventDrag.affectedInstances : null) ||\n (eventResize ? eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, sortedFgSegs.map(function (seg) {\n var instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { key: instanceId, style: { visibility: hiddenInstances[instanceId] ? 'hidden' : '' } },\n createElement(TimeColEvent, __assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === eventSelection, isShort: false }, getSegMeta(seg, todayRange, nowDate)))));\n })));\n}\nfunction computeSegVStyle(segVCoords) {\n if (!segVCoords) {\n return { top: '', bottom: '' };\n }\n return {\n top: segVCoords.start,\n bottom: -segVCoords.end,\n };\n}\nfunction compileSegsFromEntries(segEntries, allSegs) {\n return segEntries.map(function (segEntry) { return allSegs[segEntry.index]; });\n}\n\nvar TimeColsContent = /** @class */ (function (_super) {\n __extends(TimeColsContent, _super);\n function TimeColsContent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.splitFgEventSegs = memoize(splitSegsByCol);\n _this.splitBgEventSegs = memoize(splitSegsByCol);\n _this.splitBusinessHourSegs = memoize(splitSegsByCol);\n _this.splitNowIndicatorSegs = memoize(splitSegsByCol);\n _this.splitDateSelectionSegs = memoize(splitSegsByCol);\n _this.splitEventDrag = memoize(splitInteractionByCol);\n _this.splitEventResize = memoize(splitInteractionByCol);\n _this.rootElRef = createRef();\n _this.cellElRefs = new RefMap();\n return _this;\n }\n TimeColsContent.prototype.render = function () {\n var _this = this;\n var _a = this, props = _a.props, context = _a.context;\n var nowIndicatorTop = context.options.nowIndicator &&\n props.slatCoords &&\n props.slatCoords.safeComputeTop(props.nowDate); // might return void\n var colCnt = props.cells.length;\n var fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, colCnt);\n var bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, colCnt);\n var businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, colCnt);\n var nowIndicatorSegsByRow = this.splitNowIndicatorSegs(props.nowIndicatorSegs, colCnt);\n var dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt);\n var eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);\n var eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);\n return (createElement(\"div\", { className: \"fc-timegrid-cols\", ref: this.rootElRef },\n createElement(\"table\", { role: \"presentation\", style: {\n minWidth: props.tableMinWidth,\n width: props.clientWidth,\n } },\n props.tableColGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(\"tr\", { role: \"row\" },\n props.axis && (createElement(\"td\", { \"aria-hidden\": true, className: \"fc-timegrid-col fc-timegrid-axis\" },\n createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, typeof nowIndicatorTop === 'number' && (createElement(NowIndicatorRoot, { isAxis: true, date: props.nowDate }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-timegrid-now-indicator-arrow'].concat(classNames).join(' '), style: { top: nowIndicatorTop } }, innerContent)); })))))),\n props.cells.map(function (cell, i) { return (createElement(TimeCol, { key: cell.key, elRef: _this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraHookProps: cell.extraHookProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint })); }))))));\n };\n TimeColsContent.prototype.componentDidMount = function () {\n this.updateCoords();\n };\n TimeColsContent.prototype.componentDidUpdate = function () {\n this.updateCoords();\n };\n TimeColsContent.prototype.updateCoords = function () {\n var props = this.props;\n if (props.onColCoords &&\n props.clientWidth !== null // means sizing has stabilized\n ) {\n props.onColCoords(new PositionCache(this.rootElRef.current, collectCellEls(this.cellElRefs.currentMap, props.cells), true, // horizontal\n false));\n }\n };\n return TimeColsContent;\n}(BaseComponent));\nfunction collectCellEls(elMap, cells) {\n return cells.map(function (cell) { return elMap[cell.key]; });\n}\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\nvar TimeCols = /** @class */ (function (_super) {\n __extends(TimeCols, _super);\n function TimeCols() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.processSlotOptions = memoize(processSlotOptions);\n _this.state = {\n slatCoords: null,\n };\n _this.handleRootEl = function (el) {\n if (el) {\n _this.context.registerInteractiveComponent(_this, {\n el: el,\n isHitComboAllowed: _this.props.isHitComboAllowed,\n });\n }\n else {\n _this.context.unregisterInteractiveComponent(_this);\n }\n };\n _this.handleScrollRequest = function (request) {\n var onScrollTopRequest = _this.props.onScrollTopRequest;\n var slatCoords = _this.state.slatCoords;\n if (onScrollTopRequest && slatCoords) {\n if (request.time) {\n var top_1 = slatCoords.computeTimeTop(request.time);\n top_1 = Math.ceil(top_1); // zoom can give weird floating-point values. rather scroll a little bit further\n if (top_1) {\n top_1 += 1; // to overcome top border that slots beyond the first have. looks better\n }\n onScrollTopRequest(top_1);\n }\n return true;\n }\n return false;\n };\n _this.handleColCoords = function (colCoords) {\n _this.colCoords = colCoords;\n };\n _this.handleSlatCoords = function (slatCoords) {\n _this.setState({ slatCoords: slatCoords });\n if (_this.props.onSlatCoords) {\n _this.props.onSlatCoords(slatCoords);\n }\n };\n return _this;\n }\n TimeCols.prototype.render = function () {\n var _a = this, props = _a.props, state = _a.state;\n return (createElement(\"div\", { className: \"fc-timegrid-body\", ref: this.handleRootEl, style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(TimeColsSlats, { axis: props.axis, dateProfile: props.dateProfile, slatMetas: props.slatMetas, clientWidth: props.clientWidth, minHeight: props.expandRows ? props.clientHeight : '', tableMinWidth: props.tableMinWidth, tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */, onCoords: this.handleSlatCoords }),\n createElement(TimeColsContent, { cells: props.cells, axis: props.axis, dateProfile: props.dateProfile, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange, nowDate: props.nowDate, nowIndicatorSegs: props.nowIndicatorSegs, clientWidth: props.clientWidth, tableMinWidth: props.tableMinWidth, tableColGroupNode: props.tableColGroupNode, slatCoords: state.slatCoords, onColCoords: this.handleColCoords, forPrint: props.forPrint })));\n };\n TimeCols.prototype.componentDidMount = function () {\n this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest);\n };\n TimeCols.prototype.componentDidUpdate = function (prevProps) {\n this.scrollResponder.update(prevProps.dateProfile !== this.props.dateProfile);\n };\n TimeCols.prototype.componentWillUnmount = function () {\n this.scrollResponder.detach();\n };\n TimeCols.prototype.queryHit = function (positionLeft, positionTop) {\n var _a = this.context, dateEnv = _a.dateEnv, options = _a.options;\n var colCoords = this.colCoords;\n var dateProfile = this.props.dateProfile;\n var slatCoords = this.state.slatCoords;\n var _b = this.processSlotOptions(this.props.slotDuration, options.snapDuration), snapDuration = _b.snapDuration, snapsPerSlot = _b.snapsPerSlot;\n var colIndex = colCoords.leftToIndex(positionLeft);\n var slatIndex = slatCoords.positions.topToIndex(positionTop);\n if (colIndex != null && slatIndex != null) {\n var cell = this.props.cells[colIndex];\n var slatTop = slatCoords.positions.tops[slatIndex];\n var slatHeight = slatCoords.positions.getHeight(slatIndex);\n var partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n var dayDate = this.props.cells[colIndex].date;\n var time = addDurations(dateProfile.slotMinTime, multiplyDuration(snapDuration, snapIndex));\n var start = dateEnv.add(dayDate, time);\n var end = dateEnv.add(start, snapDuration);\n return {\n dateProfile: dateProfile,\n dateSpan: __assign({ range: { start: start, end: end }, allDay: false }, cell.extraDateSpan),\n dayEl: colCoords.els[colIndex],\n rect: {\n left: colCoords.lefts[colIndex],\n right: colCoords.rights[colIndex],\n top: slatTop,\n bottom: slatTop + slatHeight,\n },\n layer: 0,\n };\n }\n return null;\n };\n return TimeCols;\n}(DateComponent));\nfunction processSlotOptions(slotDuration, snapDurationOverride) {\n var snapDuration = snapDurationOverride || slotDuration;\n var snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n if (snapsPerSlot === null) {\n snapDuration = slotDuration;\n snapsPerSlot = 1;\n // TODO: say warning?\n }\n return { snapDuration: snapDuration, snapsPerSlot: snapsPerSlot };\n}\n\nvar DayTimeColsSlicer = /** @class */ (function (_super) {\n __extends(DayTimeColsSlicer, _super);\n function DayTimeColsSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayTimeColsSlicer.prototype.sliceRange = function (range, dayRanges) {\n var segs = [];\n for (var col = 0; col < dayRanges.length; col += 1) {\n var segRange = intersectRanges(range, dayRanges[col]);\n if (segRange) {\n segs.push({\n start: segRange.start,\n end: segRange.end,\n isStart: segRange.start.valueOf() === range.start.valueOf(),\n isEnd: segRange.end.valueOf() === range.end.valueOf(),\n col: col,\n });\n }\n }\n return segs;\n };\n return DayTimeColsSlicer;\n}(Slicer));\n\nvar DayTimeCols = /** @class */ (function (_super) {\n __extends(DayTimeCols, _super);\n function DayTimeCols() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buildDayRanges = memoize(buildDayRanges);\n _this.slicer = new DayTimeColsSlicer();\n _this.timeColsRef = createRef();\n return _this;\n }\n DayTimeCols.prototype.render = function () {\n var _this = this;\n var _a = this, props = _a.props, context = _a.context;\n var dateProfile = props.dateProfile, dayTableModel = props.dayTableModel;\n var isNowIndicator = context.options.nowIndicator;\n var dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);\n // give it the first row of cells\n // TODO: would move this further down hierarchy, but sliceNowDate needs it\n return (createElement(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' }, function (nowDate, todayRange) { return (createElement(TimeCols, __assign({ ref: _this.timeColsRef }, _this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: isNowIndicator && _this.slicer.sliceNowDate(nowDate, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords }))); }));\n };\n return DayTimeCols;\n}(DateComponent));\nfunction buildDayRanges(dayTableModel, dateProfile, dateEnv) {\n var ranges = [];\n for (var _i = 0, _a = dayTableModel.headerDates; _i < _a.length; _i++) {\n var date = _a[_i];\n ranges.push({\n start: dateEnv.add(date, dateProfile.slotMinTime),\n end: dateEnv.add(date, dateProfile.slotMaxTime),\n });\n }\n return ranges;\n}\n\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nvar STOCK_SUB_DURATIONS = [\n { hours: 1 },\n { minutes: 30 },\n { minutes: 15 },\n { seconds: 30 },\n { seconds: 15 },\n];\nfunction buildSlatMetas(slotMinTime, slotMaxTime, explicitLabelInterval, slotDuration, dateEnv) {\n var dayStart = new Date(0);\n var slatTime = slotMinTime;\n var slatIterator = createDuration(0);\n var labelInterval = explicitLabelInterval || computeLabelInterval(slotDuration);\n var metas = [];\n while (asRoughMs(slatTime) < asRoughMs(slotMaxTime)) {\n var date = dateEnv.add(dayStart, slatTime);\n var isLabeled = wholeDivideDurations(slatIterator, labelInterval) !== null;\n metas.push({\n date: date,\n time: slatTime,\n key: date.toISOString(),\n isoTimeStr: formatIsoTimeString(date),\n isLabeled: isLabeled,\n });\n slatTime = addDurations(slatTime, slotDuration);\n slatIterator = addDurations(slatIterator, slotDuration);\n }\n return metas;\n}\n// Computes an automatic value for slotLabelInterval\nfunction computeLabelInterval(slotDuration) {\n var i;\n var labelInterval;\n var slotsPerLabel;\n // find the smallest stock label interval that results in more than one slots-per-label\n for (i = STOCK_SUB_DURATIONS.length - 1; i >= 0; i -= 1) {\n labelInterval = createDuration(STOCK_SUB_DURATIONS[i]);\n slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n if (slotsPerLabel !== null && slotsPerLabel > 1) {\n return labelInterval;\n }\n }\n return slotDuration; // fall back\n}\n\nvar DayTimeColsView = /** @class */ (function (_super) {\n __extends(DayTimeColsView, _super);\n function DayTimeColsView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buildTimeColsModel = memoize(buildTimeColsModel);\n _this.buildSlatMetas = memoize(buildSlatMetas);\n return _this;\n }\n DayTimeColsView.prototype.render = function () {\n var _this = this;\n var _a = this.context, options = _a.options, dateEnv = _a.dateEnv, dateProfileGenerator = _a.dateProfileGenerator;\n var props = this.props;\n var dateProfile = props.dateProfile;\n var dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator);\n var splitProps = this.allDaySplitter.splitProps(props);\n var slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);\n var dayMinWidth = options.dayMinWidth;\n var hasAttachedAxis = !dayMinWidth;\n var hasDetachedAxis = dayMinWidth;\n var headerContent = options.dayHeaders && (createElement(DayHeader, { dates: dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));\n var allDayContent = (options.allDaySlot !== false) && (function (contentArg) { return (createElement(DayTable, __assign({}, splitProps.allDay, { dateProfile: dateProfile, dayTableModel: dayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? _this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: _this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, _this.getAllDayMaxEventProps()))); });\n var timeGridContent = function (contentArg) { return (createElement(DayTimeCols, __assign({}, splitProps.timed, { dayTableModel: dayTableModel, dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, forPrint: props.forPrint, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: _this.handleSlatCoords, expandRows: contentArg.expandRows, onScrollTopRequest: _this.handleScrollTopRequest }))); };\n return hasDetachedAxis\n ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)\n : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);\n };\n return DayTimeColsView;\n}(TimeColsView));\nfunction buildTimeColsModel(dateProfile, dateProfileGenerator) {\n var daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, false);\n}\n\nvar OPTION_REFINERS = {\n allDaySlot: Boolean,\n};\n\nvar main = createPlugin({\n initialView: 'timeGridWeek',\n optionRefiners: OPTION_REFINERS,\n views: {\n timeGrid: {\n component: DayTimeColsView,\n usesMinMaxTime: true,\n allDaySlot: true,\n slotDuration: '00:30:00',\n slotEventOverlap: true, // a bad name. confused with overlap/constraint system\n },\n timeGridDay: {\n type: 'timeGrid',\n duration: { days: 1 },\n },\n timeGridWeek: {\n type: 'timeGrid',\n duration: { weeks: 1 },\n },\n },\n});\n\nexport default main;\nexport { DayTimeCols, DayTimeColsSlicer, DayTimeColsView, TimeCols, TimeColsSlatsCoords, TimeColsView, buildDayRanges, buildSlatMetas, buildTimeColsModel };\n//# sourceMappingURL=main.js.map\n","/*!\nFullCalendar v5.10.1\nDocs & License: https://fullcalendar.io/\n(c) 2021 Adam Shaw\n*/\nimport './main.css';\n\nimport { getUniqueDomId, getDateMeta, buildNavLinkAttrs, getDayClassNames, createElement, RenderHook, formatDayString, BaseComponent, Fragment, createFormatter, EventRoot, getSegAnchorAttrs, isMultiDayRange, buildSegTimeText, memoize, ViewRoot, Scroller, NowTimer, sortEventSegs, getSegMeta, sliceEventStore, intersectRanges, DateComponent, startOfDay, addDays, identity, createPlugin } from '@fullcalendar/common';\nimport { __extends, __assign } from 'tslib';\n\nvar ListViewHeaderRow = /** @class */ (function (_super) {\n __extends(ListViewHeaderRow, _super);\n function ListViewHeaderRow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n textId: getUniqueDomId(),\n };\n return _this;\n }\n ListViewHeaderRow.prototype.render = function () {\n var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options, viewApi = _a.viewApi;\n var _b = this.props, cellId = _b.cellId, dayDate = _b.dayDate, todayRange = _b.todayRange;\n var textId = this.state.textId;\n var dayMeta = getDateMeta(dayDate, todayRange);\n // will ever be falsy?\n var text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';\n // will ever be falsy? also, BAD NAME \"alt\"\n var sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';\n var hookProps = __assign({ date: dateEnv.toDate(dayDate), view: viewApi, textId: textId,\n text: text,\n sideText: sideText, navLinkAttrs: buildNavLinkAttrs(this.context, dayDate), sideNavLinkAttrs: buildNavLinkAttrs(this.context, dayDate, 'day', false) }, dayMeta);\n var classNames = ['fc-list-day'].concat(getDayClassNames(dayMeta, theme));\n // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInnerContent, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"tr\", { ref: rootElRef, className: classNames.concat(customClassNames).join(' '), \"data-date\": formatDayString(dayDate) },\n createElement(\"th\", { scope: \"colgroup\", colSpan: 3, id: cellId, \"aria-labelledby\": textId },\n createElement(\"div\", { className: 'fc-list-day-cushion ' + theme.getClass('tableCellShaded'), ref: innerElRef }, innerContent)))); }));\n };\n return ListViewHeaderRow;\n}(BaseComponent));\nfunction renderInnerContent(props) {\n return (createElement(Fragment, null,\n props.text && (createElement(\"a\", __assign({ id: props.textId, className: \"fc-list-day-text\" }, props.navLinkAttrs), props.text)),\n props.sideText && ( /* not keyboard tabbable */createElement(\"a\", __assign({ \"aria-hidden\": true, className: \"fc-list-day-side-text\" }, props.sideNavLinkAttrs), props.sideText))));\n}\n\nvar DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: 'short',\n});\nvar ListViewEventRow = /** @class */ (function (_super) {\n __extends(ListViewEventRow, _super);\n function ListViewEventRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListViewEventRow.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\n var seg = props.seg, timeHeaderId = props.timeHeaderId, eventHeaderId = props.eventHeaderId, dateHeaderId = props.dateHeaderId;\n var timeFormat = context.options.eventTimeFormat || DEFAULT_TIME_FORMAT;\n return (createElement(EventRoot, { seg: seg, timeText: \"\" // BAD. because of all-day content\n , disableDragging: true, disableResizing: true, defaultContent: function () { return renderEventInnerContent(seg, context); } /* weird */, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, isSelected: props.isSelected, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement(\"tr\", { className: ['fc-list-event', hookProps.event.url ? 'fc-event-forced-url' : ''].concat(classNames).join(' '), ref: rootElRef },\n buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId),\n createElement(\"td\", { \"aria-hidden\": true, className: \"fc-list-event-graphic\" },\n createElement(\"span\", { className: \"fc-list-event-dot\", style: { borderColor: hookProps.borderColor || hookProps.backgroundColor } })),\n createElement(\"td\", { ref: innerElRef, headers: eventHeaderId + \" \" + dateHeaderId, className: \"fc-list-event-title\" }, innerContent))); }));\n };\n return ListViewEventRow;\n}(BaseComponent));\nfunction renderEventInnerContent(seg, context) {\n var interactiveAttrs = getSegAnchorAttrs(seg, context);\n return (createElement(\"a\", __assign({}, interactiveAttrs), seg.eventRange.def.title));\n}\nfunction buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {\n var options = context.options;\n if (options.displayEventTime !== false) {\n var eventDef = seg.eventRange.def;\n var eventInstance = seg.eventRange.instance;\n var doAllDay = false;\n var timeText = void 0;\n if (eventDef.allDay) {\n doAllDay = true;\n }\n else if (isMultiDayRange(seg.eventRange.range)) { // TODO: use (!isStart || !isEnd) instead?\n if (seg.isStart) {\n timeText = buildSegTimeText(seg, timeFormat, context, null, null, eventInstance.range.start, seg.end);\n }\n else if (seg.isEnd) {\n timeText = buildSegTimeText(seg, timeFormat, context, null, null, seg.start, eventInstance.range.end);\n }\n else {\n doAllDay = true;\n }\n }\n else {\n timeText = buildSegTimeText(seg, timeFormat, context);\n }\n if (doAllDay) {\n var hookProps = {\n text: context.options.allDayText,\n view: context.viewApi,\n };\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.allDayClassNames, content: options.allDayContent, defaultContent: renderAllDayInner, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"td\", { ref: rootElRef, headers: timeHeaderId + \" \" + dateHeaderId, className: ['fc-list-event-time'].concat(classNames).join(' ') }, innerContent)); }));\n }\n return (createElement(\"td\", { className: \"fc-list-event-time\" }, timeText));\n }\n return null;\n}\nfunction renderAllDayInner(hookProps) {\n return hookProps.text;\n}\n\n/*\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\n*/\nvar ListView = /** @class */ (function (_super) {\n __extends(ListView, _super);\n function ListView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.computeDateVars = memoize(computeDateVars);\n _this.eventStoreToSegs = memoize(_this._eventStoreToSegs);\n _this.state = {\n timeHeaderId: getUniqueDomId(),\n eventHeaderId: getUniqueDomId(),\n dateHeaderIdRoot: getUniqueDomId(),\n };\n _this.setRootEl = function (rootEl) {\n if (rootEl) {\n _this.context.registerInteractiveComponent(_this, {\n el: rootEl,\n });\n }\n else {\n _this.context.unregisterInteractiveComponent(_this);\n }\n };\n return _this;\n }\n ListView.prototype.render = function () {\n var _this = this;\n var _a = this, props = _a.props, context = _a.context;\n var extraClassNames = [\n 'fc-list',\n context.theme.getClass('table'),\n context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : '',\n ];\n var _b = this.computeDateVars(props.dateProfile), dayDates = _b.dayDates, dayRanges = _b.dayRanges;\n var eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);\n return (createElement(ViewRoot, { viewSpec: context.viewSpec, elRef: this.setRootEl }, function (rootElRef, classNames) { return (createElement(\"div\", { ref: rootElRef, className: extraClassNames.concat(classNames).join(' ') },\n createElement(Scroller, { liquid: !props.isHeightAuto, overflowX: props.isHeightAuto ? 'visible' : 'hidden', overflowY: props.isHeightAuto ? 'visible' : 'auto' }, eventSegs.length > 0 ?\n _this.renderSegList(eventSegs, dayDates) :\n _this.renderEmptyMessage()))); }));\n };\n ListView.prototype.renderEmptyMessage = function () {\n var _a = this.context, options = _a.options, viewApi = _a.viewApi;\n var hookProps = {\n text: options.noEventsText,\n view: viewApi,\n };\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.noEventsClassNames, content: options.noEventsContent, defaultContent: renderNoEventsInner, didMount: options.noEventsDidMount, willUnmount: options.noEventsWillUnmount }, function (rootElRef, classNames, innerElRef, innerContent) { return (createElement(\"div\", { className: ['fc-list-empty'].concat(classNames).join(' '), ref: rootElRef },\n createElement(\"div\", { className: \"fc-list-empty-cushion\", ref: innerElRef }, innerContent))); }));\n };\n ListView.prototype.renderSegList = function (allSegs, dayDates) {\n var _a = this.context, theme = _a.theme, options = _a.options;\n var _b = this.state, timeHeaderId = _b.timeHeaderId, eventHeaderId = _b.eventHeaderId, dateHeaderIdRoot = _b.dateHeaderIdRoot;\n var segsByDay = groupSegsByDay(allSegs); // sparse array\n return (createElement(NowTimer, { unit: \"day\" }, function (nowDate, todayRange) {\n var innerNodes = [];\n for (var dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {\n var daySegs = segsByDay[dayIndex];\n if (daySegs) { // sparse array, so might be undefined\n var dayStr = formatDayString(dayDates[dayIndex]);\n var dateHeaderId = dateHeaderIdRoot + '-' + dayStr;\n // append a day header\n innerNodes.push(createElement(ListViewHeaderRow, { key: dayStr, cellId: dateHeaderId, dayDate: dayDates[dayIndex], todayRange: todayRange }));\n daySegs = sortEventSegs(daySegs, options.eventOrder);\n for (var _i = 0, daySegs_1 = daySegs; _i < daySegs_1.length; _i++) {\n var seg = daySegs_1[_i];\n innerNodes.push(createElement(ListViewEventRow, __assign({ key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */, seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, timeHeaderId: timeHeaderId, eventHeaderId: eventHeaderId, dateHeaderId: dateHeaderId }, getSegMeta(seg, todayRange, nowDate))));\n }\n }\n }\n return (createElement(\"table\", { className: 'fc-list-table ' + theme.getClass('table') },\n createElement(\"thead\", null,\n createElement(\"tr\", null,\n createElement(\"th\", { scope: \"col\", id: timeHeaderId }, options.timeHint),\n createElement(\"th\", { scope: \"col\", \"aria-hidden\": true }),\n createElement(\"th\", { scope: \"col\", id: eventHeaderId }, options.eventHint))),\n createElement(\"tbody\", null, innerNodes)));\n }));\n };\n ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) {\n return this.eventRangesToSegs(sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, dayRanges);\n };\n ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) {\n var segs = [];\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges));\n }\n return segs;\n };\n ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) {\n var dateEnv = this.context.dateEnv;\n var nextDayThreshold = this.context.options.nextDayThreshold;\n var range = eventRange.range;\n var allDay = eventRange.def.allDay;\n var dayIndex;\n var segRange;\n var seg;\n var segs = [];\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {\n segRange = intersectRanges(range, dayRanges[dayIndex]);\n if (segRange) {\n seg = {\n component: this,\n eventRange: eventRange,\n start: segRange.start,\n end: segRange.end,\n isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),\n isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),\n dayIndex: dayIndex,\n };\n segs.push(seg);\n // detect when range won't go fully into the next day,\n // and mutate the latest seg to the be the end.\n if (!seg.isEnd && !allDay &&\n dayIndex + 1 < dayRanges.length &&\n range.end <\n dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) {\n seg.end = range.end;\n seg.isEnd = true;\n break;\n }\n }\n }\n return segs;\n };\n return ListView;\n}(DateComponent));\nfunction renderNoEventsInner(hookProps) {\n return hookProps.text;\n}\nfunction computeDateVars(dateProfile) {\n var dayStart = startOfDay(dateProfile.renderRange.start);\n var viewEnd = dateProfile.renderRange.end;\n var dayDates = [];\n var dayRanges = [];\n while (dayStart < viewEnd) {\n dayDates.push(dayStart);\n dayRanges.push({\n start: dayStart,\n end: addDays(dayStart, 1),\n });\n dayStart = addDays(dayStart, 1);\n }\n return { dayDates: dayDates, dayRanges: dayRanges };\n}\n// Returns a sparse array of arrays, segs grouped by their dayIndex\nfunction groupSegsByDay(segs) {\n var segsByDay = []; // sparse array\n var i;\n var seg;\n for (i = 0; i < segs.length; i += 1) {\n seg = segs[i];\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\n .push(seg);\n }\n return segsByDay;\n}\n\nvar OPTION_REFINERS = {\n listDayFormat: createFalsableFormatter,\n listDaySideFormat: createFalsableFormatter,\n noEventsClassNames: identity,\n noEventsContent: identity,\n noEventsDidMount: identity,\n noEventsWillUnmount: identity,\n // noEventsText is defined in base options\n};\nfunction createFalsableFormatter(input) {\n return input === false ? null : createFormatter(input);\n}\n\nvar main = createPlugin({\n optionRefiners: OPTION_REFINERS,\n views: {\n list: {\n component: ListView,\n buttonTextKey: 'list',\n listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' }, // like \"January 1, 2016\"\n },\n listDay: {\n type: 'list',\n duration: { days: 1 },\n listDayFormat: { weekday: 'long' }, // day-of-week is all we need. full date is probably in headerToolbar\n },\n listWeek: {\n type: 'list',\n duration: { weeks: 1 },\n listDayFormat: { weekday: 'long' },\n listDaySideFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n },\n listMonth: {\n type: 'list',\n duration: { month: 1 },\n listDaySideFormat: { weekday: 'long' }, // day-of-week is nice-to-have\n },\n listYear: {\n type: 'list',\n duration: { year: 1 },\n listDaySideFormat: { weekday: 'long' }, // day-of-week is nice-to-have\n },\n },\n});\n\nexport default main;\nexport { ListView };\n//# sourceMappingURL=main.js.map\n","import moment from \"moment\";\n\nconst todayDate = moment().startOf(\"day\");\nconst YM = todayDate.format(\"YYYY-MM\");\nconst YESTERDAY = todayDate.clone().subtract(1, \"day\").format(\"YYYY-MM-DD\");\nconst TODAY = todayDate.format(\"YYYY-MM-DD\");\nconst TOMORROW = todayDate.clone().add(1, \"day\").format(\"YYYY-MM-DD\");\n\nconst events = [\n {\n title: \"All Day Event\",\n start: YM + \"-01\",\n description: \"Toto lorem ipsum dolor sit incid idunt ut\",\n className: \"fc-event-danger fc-event-solid-warning\",\n },\n {\n title: \"Reporting\",\n start: YM + \"-14T13:30:00\",\n description: \"Lorem ipsum dolor incid idunt ut labore\",\n end: YM + \"-14\",\n className: \"fc-event-success\",\n },\n {\n title: \"Company Trip\",\n start: YM + \"-02\",\n description: \"Lorem ipsum dolor sit tempor incid\",\n end: YM + \"-03\",\n className: \"fc-event-primary\",\n },\n {\n title: \"ICT Expo 2017 - Product Release\",\n start: YM + \"-03\",\n description: \"Lorem ipsum dolor sit tempor inci\",\n end: YM + \"-05\",\n className: \"fc-event-light fc-event-solid-primary\",\n },\n {\n title: \"Dinner\",\n start: YM + \"-12\",\n description: \"Lorem ipsum dolor sit amet, conse ctetur\",\n end: YM + \"-10\",\n },\n {\n id: 999,\n title: \"Repeating Event\",\n start: YM + \"-09T16:00:00\",\n description: \"Lorem ipsum dolor sit ncididunt ut labore\",\n className: \"fc-event-danger\",\n },\n {\n id: 1000,\n title: \"Repeating Event\",\n description: \"Lorem ipsum dolor sit amet, labore\",\n start: YM + \"-16T16:00:00\",\n },\n {\n title: \"Conference\",\n start: YESTERDAY,\n end: TOMORROW,\n description: \"Lorem ipsum dolor eius mod tempor labore\",\n className: \"fc-event-primary\",\n },\n {\n title: \"Meeting\",\n start: TODAY + \"T10:30:00\",\n end: TODAY + \"T12:30:00\",\n description: \"Lorem ipsum dolor eiu idunt ut labore\",\n },\n {\n title: \"test\",\n start: TODAY + \"T12:00:00\",\n className: \"fc-event-info\",\n description: \"Lorem ipsum dolor sit amet, ut labore\",\n },\n {\n title: \"Meeting\",\n start: TODAY + \"T14:30:00\",\n className: \"fc-event-warning\",\n description: \"Lorem ipsum conse ctetur adipi scing\",\n },\n {\n title: \"Happy Hour\",\n start: TODAY + \"T17:30:00\",\n className: \"fc-event-info\",\n description: \"Lorem ipsum dolor sit amet, conse ctetur\",\n },\n {\n title: \"Dinnerd\",\n start: TOMORROW + \"T05:00:00\",\n className: \"fc-event-solid-danger fc-event-light\",\n description: \"Lorem ipsum dolor sit ctetur adipi scing\",\n },\n {\n title: \"Birthday Party\",\n start: TOMORROW + \"T07:00:00\",\n className: \"fc-event-primary\",\n description: \"Lorem ipsum dolor sit amet, scing\",\n },\n {\n title: \"Click for Google\",\n url: \"http://google.com/\",\n start: YM + \"-28\",\n className: \"fc-event-solid-info fc-event-light\",\n description: \"Lorem ipsum dolor sit amet, labore\",\n },\n];\n\nexport default events;\n\nexport { todayDate, YM, YESTERDAY, TODAY, TOMORROW };\n","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"modal fade show\",\n id: \"kt_modal_add_event\",\n \"aria-modal\": \"true\",\n role: \"dialog\",\n ref: \"newTargetModalRef\"\n}\nconst _hoisted_2 = { class: \"modal-dialog modal-dialog-centered mw-650px\" }\nconst _hoisted_3 = { class: \"modal-content\" }\nconst _hoisted_4 = { class: \"modal-header\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"fw-bolder\" }, \"Add a New Event\", -1)\nconst _hoisted_6 = {\n class: \"btn btn-icon btn-sm btn-active-icon-primary\",\n id: \"kt_modal_add_event_close\",\n \"data-bs-dismiss\": \"modal\"\n}\nconst _hoisted_7 = { class: \"svg-icon svg-icon-1\" }\nconst _hoisted_8 = { class: \"modal-body py-10 px-lg-17\" }\nconst _hoisted_9 = { class: \"fv-row mb-9 fv-plugins-icon-container\" }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"fs-6 fw-bold required mb-2\" }, \"Event Name\", -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fv-plugins-message-container invalid-feedback\" }, null, -1)\nconst _hoisted_12 = { class: \"fv-row mb-9\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"fs-6 fw-bold mb-2\" }, \"Event Description\", -1)\nconst _hoisted_14 = { class: \"fv-row mb-9\" }\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"fs-6 fw-bold mb-2\" }, \"Event Location\", -1)\nconst _hoisted_16 = { class: \"fv-row mb-9\" }\nconst _hoisted_17 = { class: \"form-check form-check-custom form-check-solid\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"form-check-label fw-bold\" }, \"All Day\", -1)\nconst _hoisted_19 = { class: \"row row-cols-lg-2 g-10\" }\nconst _hoisted_20 = { class: \"col\" }\nconst _hoisted_21 = { class: \"fv-row mb-9 fv-plugins-icon-container fv-plugins-bootstrap5-row-valid\" }\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"fs-6 fw-bold mb-2 required\" }, \"Event Start Date\", -1)\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fv-plugins-message-container invalid-feedback\" }, null, -1)\nconst _hoisted_24 = { class: \"row row-cols-lg-2 g-10\" }\nconst _hoisted_25 = { class: \"col\" }\nconst _hoisted_26 = { class: \"fv-row mb-9 fv-plugins-icon-container fv-plugins-bootstrap5-row-valid\" }\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"label\", { class: \"fs-6 fw-bold mb-2 required\" }, \"Event End Date\", -1)\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"fv-plugins-message-container invalid-feedback\" }, null, -1)\nconst _hoisted_29 = { class: \"modal-footer flex-center\" }\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"button\", {\n \"data-bs-dismiss\": \"modal\",\n type: \"reset\",\n id: \"kt_modal_add_event_cancel\",\n class: \"btn btn-light me-3\"\n}, \" Cancel \", -1)\nconst _hoisted_31 = [\"data-kt-indicator\"]\nconst _hoisted_32 = {\n key: 0,\n class: \"indicator-label\"\n}\nconst _hoisted_33 = /*#__PURE__*/_createTextVNode(\" Submit \")\nconst _hoisted_34 = { class: \"svg-icon svg-icon-3 ms-2 me-0\" }\nconst _hoisted_35 = {\n key: 1,\n class: \"indicator-progress\"\n}\nconst _hoisted_36 = /*#__PURE__*/_createTextVNode(\" Please wait... \")\nconst _hoisted_37 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"spinner-border spinner-border-sm align-middle ms-2\" }, null, -1)\nconst _hoisted_38 = [\n _hoisted_36,\n _hoisted_37\n]\nconst _hoisted_39 = /*#__PURE__*/_createElementVNode(\"div\", null, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_inline_svg = _resolveComponent(\"inline-svg\")!\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\")!\n const _component_el_date_picker = _resolveComponent(\"el-date-picker\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_el_form, {\n class: \"form fv-plugins-bootstrap5 fv-plugins-framework\",\n id: \"kt_modal_add_event_form\",\n onSubmit: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.submit()), [\"prevent\"])),\n model: _ctx.targetData,\n rules: _ctx.rules,\n ref: \"formRef\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, [\n _createVNode(_component_inline_svg, { src: \"media/icons/duotune/arrows/arr061.svg\" })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n _createVNode(_component_el_form_item, { prop: \"eventName\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _ctx.targetData.eventName,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.targetData.eventName) = $event)),\n type: \"text\",\n name: \"eventName\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _hoisted_11\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createVNode(_component_el_input, {\n modelValue: _ctx.targetData.eventDescription,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.targetData.eventDescription) = $event)),\n type: \"text\",\n placeholder: \"\",\n name: \"eventDescription\"\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createVNode(_component_el_input, {\n modelValue: _ctx.targetData.eventLocation,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.targetData.eventLocation) = $event)),\n type: \"text\",\n placeholder: \"\",\n name: \"eventLocation\"\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, [\n _createVNode(_component_el_checkbox, {\n modelValue: _ctx.targetData.allDay,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.targetData.allDay) = $event)),\n type: \"checkbox\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_18\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _hoisted_22,\n _createVNode(_component_el_date_picker, {\n modelValue: _ctx.targetData.eventStartDate,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.targetData.eventStartDate) = $event)),\n type: \"text\",\n size: \"large\",\n name: \"eventStartDate\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_23\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"div\", _hoisted_26, [\n _hoisted_27,\n _createVNode(_component_el_date_picker, {\n modelValue: _ctx.targetData.eventEndDate,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.targetData.eventEndDate) = $event)),\n type: \"text\",\n size: \"large\",\n name: \"eventName\"\n }, null, 8, [\"modelValue\"]),\n _hoisted_28\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _hoisted_30,\n _createElementVNode(\"button\", {\n \"data-kt-indicator\": _ctx.loading ? 'on' : null,\n class: \"btn btn-lg btn-primary\",\n type: \"submit\"\n }, [\n (!_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_32, [\n _hoisted_33,\n _createElementVNode(\"span\", _hoisted_34, [\n _createVNode(_component_inline_svg, { src: \"icons/duotune/arrows/arr064.svg\" })\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_35, _hoisted_38))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_31)\n ]),\n _hoisted_39\n ]),\n _: 1\n }, 8, [\"model\", \"rules\"])\n ])\n ])\n ], 512))\n}","\nimport { defineComponent, ref } from \"vue\";\nimport { hideModal } from \"@/core/helpers/dom\";\nimport Swal from \"sweetalert2/dist/sweetalert2.js\";\n\ninterface NewAddressData {\n eventName: string;\n eventDescription: string;\n eventLocation: string;\n allDay: boolean;\n eventStartDate: string;\n eventEndDate: string;\n}\n\nexport default defineComponent({\n name: \"new-event-modal\",\n components: {},\n setup() {\n const formRef = ref(null);\n const newTargetModalRef = ref(null);\n const loading = ref(false);\n\n const targetData = ref({\n eventName: \"\",\n eventDescription: \"\",\n eventLocation: \"\",\n allDay: true,\n eventStartDate: \"\",\n eventEndDate: \"\",\n });\n\n const rules = ref({\n eventName: [\n {\n required: true,\n message: \"Please input event name\",\n trigger: \"blur\",\n },\n ],\n });\n\n const submit = () => {\n if (!formRef.value) {\n return;\n }\n\n formRef.value.validate((valid) => {\n if (valid) {\n loading.value = true;\n\n setTimeout(() => {\n loading.value = false;\n\n Swal.fire({\n text: \"Form has been successfully submitted!\",\n icon: \"success\",\n buttonsStyling: false,\n confirmButtonText: \"Ok, got it!\",\n customClass: {\n confirmButton: \"btn btn-primary\",\n },\n }).then(() => {\n hideModal(newTargetModalRef.value);\n });\n }, 2000);\n } else {\n Swal.fire({\n text: \"Sorry, looks like there are some errors detected, please try again.\",\n icon: \"error\",\n buttonsStyling: false,\n confirmButtonText: \"Ok, got it!\",\n customClass: {\n confirmButton: \"btn btn-primary\",\n },\n });\n return false;\n }\n });\n };\n\n return {\n formRef,\n newTargetModalRef,\n loading,\n targetData,\n rules,\n submit,\n };\n },\n});\n","import { render } from \"./NewEventModal.vue?vue&type=template&id=461af83a&ts=true\"\nimport script from \"./NewEventModal.vue?vue&type=script&lang=ts\"\nexport * from \"./NewEventModal.vue?vue&type=script&lang=ts\"\n\nimport \"./NewEventModal.vue?vue&type=style&index=0&id=461af83a&lang=scss\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./CalendarApp1.vue?vue&type=template&id=7fdbcf9f\"\nimport script from \"./CalendarApp1.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarApp1.vue?vue&type=script&lang=js\"\n\nimport \"./CalendarApp1.vue?vue&type=style&index=0&id=7fdbcf9f&lang=scss\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Calendar.vue?vue&type=template&id=aca1fe46\"\nimport script from \"./Calendar.vue?vue&type=script&lang=js\"\nexport * from \"./Calendar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/codebuild/output/src1803551405/src/wci-front/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Modal } from \"bootstrap\";\n\nconst hideModal = (modalEl: HTMLElement | null): void => {\n if (!modalEl) {\n return;\n }\n\n const myModal = Modal.getInstance(modalEl);\n myModal.hide();\n};\n\nconst removeModalBackdrop = (): void => {\n if (document.querySelectorAll(\".modal-backdrop.fade.show\").length) {\n document.querySelectorAll(\".modal-backdrop.fade.show\").forEach((item) => {\n item.remove();\n });\n }\n};\n\nexport { removeModalBackdrop, hideModal };\n","import store from \"@/store\";\r\nimport { Actions } from \"@/store/enums/StoreEnums\";\r\n\r\n/**\r\n * Sets current page breadcrumbs\r\n * @param {string} pageTitle Current page title\r\n * @param {Array} breadcrumbs Current page breadcrumbs\r\n */\r\nexport const setCurrentPageBreadcrumbs = (\r\n pageTitle: string,\r\n breadcrumbs: Array\r\n): void => {\r\n store.dispatch(Actions.SET_BREADCRUMB_ACTION, {\r\n title: pageTitle,\r\n pageBreadcrumbPath: breadcrumbs\r\n });\r\n};\r\n\r\n/**\r\n * Sets current page breadcrumbs\r\n * @param {string} title Current page title name\r\n */\r\nexport const setCurrentPageTitle = (title: string): void => {\r\n store.dispatch(Actions.SET_BREADCRUMB_ACTION, {\r\n title: title\r\n });\r\n};\r\n"],"sourceRoot":""}