{ "version": 3, "sources": ["src/app/modules/events/store/actions/events.actions.ts", "src/app/modules/events/store/reducers/events.reducer.ts", "src/app/shared/components/custom-calendar-header/custom-calendar-header.component.ts", "src/app/shared/components/custom-calendar-header/custom-calendar-header.component.html", "src/app/shared/widgets/calendar-widget/calendar-widget.component.ts", "src/app/shared/widgets/calendar-widget/calendar-widget.component.html", "src/app/modules/events/store/selectors/events.selectors.ts", "src/app/modules/events/store/facade/events.facade.ts"], "sourcesContent": ["import { createAction, props } from \"@ngrx/store\";\r\nimport { CalendarEventModel, EventModel, EventsPagingMetaData } from \"../../../../models/interfaces/events-model\";\r\n\r\nexport const initEventsLoadingWithPaginationFromDate = createAction('[Events] Init Events Loading With Pagination From Date', props<{ dateFrom: Date }>());\r\n\r\nexport const initSidebarCalendarEvents = createAction('[Events] Init Sidebar Calendar Events');\r\n\r\nexport const setEvents = createAction('[Events] Set Events', props<{ eventsData: EventModel[] | null }>());\r\n\r\nexport const setEventsPagingMetadata = createAction('[Events] Set Events Paging MetaData', props<{ metaData: EventsPagingMetaData | null }>());\r\n\r\nexport const resetEventsPagingMetadata = createAction('[Events] Reset Events Paging MetaData');\r\n\r\nexport const resetEvents = createAction('[Events] Reset Events');\r\n\r\nexport const loadSidebarCalendarEventsDataChunk = createAction('[Events] Load Sidebar Calendar Events Data Chunk', props<{ dateFrom: Date, dateTo: Date }>());\r\n\r\nexport const loadCalendarEventsDataChunk = createAction('[Events] Load Calendar Events Data Chunk', props<{ dateFrom: Date, dateTo: Date }>());\r\n\r\nexport const addCalendarEvent = createAction('[Events] Add Calendar Event to Store', props<{ eventsData: CalendarEventModel[] }>());\r\n\r\nexport const calendarEventsDataLoaded = createAction('[Events] Calendar Event Loaded ');\r\n\r\nexport const addSidebarCalendarEvent = createAction('[Events] Add Sidebar Calendar Event to Store', props<{ eventsData: CalendarEventModel[] }>());\r\n\r\nexport const loadAndOverrideAllEventsData = createAction('[Events] Load And Override All Events Data', props<{ dateFrom: Date, dateTo: Date, isPaginated: boolean }>());\r\n\r\nexport const loadAndAddEventsDataChunk = createAction('[Events] Load And Add Events Data Chunk', props<{ dateFrom: Date, dateTo?: Date, page?: number }>());\r\n", "import { createReducer, on } from \"@ngrx/store\";\r\nimport { EventsActions } from \"../actions\";\r\nimport { CalendarEventModel, EventModel, EventsPagingMetaData } from \"../../../../models/interfaces/events-model\";\r\n\r\nexport const eventsFeatureKey = 'events';\r\n\r\nexport interface EventsState {\r\n calendarEventsList: CalendarEventModel[] | null;\r\n eventsList: EventModel[] | null;\r\n eventsPagingMetaData: EventsPagingMetaData | null;\r\n}\r\n\r\nexport const initialState: EventsState = {\r\n calendarEventsList: null,\r\n eventsList: null,\r\n eventsPagingMetaData: null\r\n}\r\n\r\nexport const eventsReducer = createReducer(\r\n initialState,\r\n on(EventsActions.setEvents, (state, { eventsData }) => ({\r\n ...state,\r\n eventsList: [...eventsData! ],\r\n })),\r\n on(EventsActions.resetEvents, (state) => ({\r\n ...state,\r\n eventsList: null,\r\n })),\r\n on(EventsActions.setEventsPagingMetadata, (state, { metaData }) => ({\r\n ...state,\r\n eventsPagingMetaData: metaData,\r\n })),\r\n on(EventsActions.resetEventsPagingMetadata, (state) => ({\r\n ...state,\r\n eventsPagingMetaData: null,\r\n })),\r\n on(EventsActions.addCalendarEvent, (state, { eventsData }) => ({\r\n ...state,\r\n calendarEventsList: [\r\n ...(state.calendarEventsList ?? []),\r\n ...eventsData.filter(event =>\r\n !(state.calendarEventsList ?? []).some(existingEvent =>\r\n existingEvent.dateFrom === event.dateFrom &&\r\n existingEvent.dateTo! === event.dateTo! &&\r\n existingEvent.actionType === event.actionType\r\n )\r\n )\r\n ],\r\n }))\r\n)\r\n", "import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { MatCalendarHeader } from '@angular/material/datepicker';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'app-custom-calendar-header',\n templateUrl: './custom-calendar-header.component.html',\n styleUrls: ['./custom-calendar-header.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCalendarHeader, MatIcon, MatCalendarHeader],\n})\n\n//CUSTOM CALENDAR HEADER THAT HANDLES NEXT AND PREVIOUS BUTTONS CLICK EVENTS\nexport class CustomCalendarHeaderComponent extends MatCalendarHeader implements OnInit {\n private static originalNextClicked: Function = MatCalendarHeader.prototype.nextClicked;\n private static originalPreviousClicked: Function = MatCalendarHeader.prototype.previousClicked;\n private static originalCurrentPeriodClickedEvent: Function = MatCalendarHeader.prototype.currentPeriodClicked;\n\n @Output() readonly nextClickedEvent = new EventEmitter();\n @Output() readonly previousClickedEvent = new EventEmitter();\n @Output() readonly currentPeriodClickedEvent = new EventEmitter();\n\n\n ngOnInit(): void {\n const self = this;\n\n MatCalendarHeader.prototype.currentPeriodClicked = function() : void {\n self.myCurrentPeriodClickedEvent();\n CustomCalendarHeaderComponent.originalCurrentPeriodClickedEvent.apply(this);\n };\n\n MatCalendarHeader.prototype.nextClicked = function() : void {\n self.myNextClicked();\n CustomCalendarHeaderComponent.originalNextClicked.apply(this);\n };\n\n MatCalendarHeader.prototype.previousClicked = function() : void {\n self.myPreviousClicked();\n CustomCalendarHeaderComponent.originalPreviousClicked.apply(this);\n };\n }\n\n private myNextClicked(): void {\n this.nextClickedEvent.emit();\n }\n\n private myPreviousClicked(): void {\n this.previousClickedEvent.emit();\n }\n\n private myCurrentPeriodClickedEvent(): void {\n this.currentPeriodClickedEvent.emit();\n }\n\n }\n", "\n\n", "import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { MatCalendar } from '@angular/material/datepicker';\nimport { Actions, ofType } from '@ngrx/effects';\nimport { BehaviorSubject, Observable, debounceTime, filter, first, map } from 'rxjs';\nimport { CustomCalendarHeaderComponent } from '../../components/custom-calendar-header/custom-calendar-header.component';\nimport { CalendarEventModel } from '../../../models/interfaces/events-model';\nimport { NgxLoadingModule } from 'ngx-loading';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { ASSIGNED_CALENDAR_SPECIAL_DATE_CLASSNAME, CALENDAR_MONTH_VIEW_TYPE, CALENDAR_SPECIAL_DATE_CLASSNAME, EVENT_ROUTE_DATE_FROM_PARAMETER, EVENT_ROUTE_DATE_PARAMETER, PAST_CALENDAR_SPECIAL_DATE_CLASSNAME, TRANSPARENT_ORDINARY_CALENDAR_DATE } from '../../../models/const/strings';\nimport { EventsService } from '../../../services/events/events.service';\nimport { Builder } from '../../../../utils/builders/builder';\nimport { Router } from '@angular/router';\nimport { EVENTS_URL } from '../../../models/const/urls';\nimport { EVENTS_CALENDAR_MIN_DATE } from '../../../../utils/consts/const-dates';\nimport { EventActionTypeEnum, MenuButtonsEnum, UserFunctionsEnum } from '../../../models/enums/enums';\nimport { UserFacade } from '../../../core/store/facade/user.facade';\nimport { MenuService } from '../../../services/global-menu/menu.service';\nimport { prepareUrlDateParameter } from '../../../../utils/consts/const-methods';\nimport { EventsActions } from '../../../modules/events/store/actions';\n\n@Component({\n selector: 'my-gwo-calendar-widget',\n standalone: true,\n templateUrl: './calendar-widget.component.html',\n styleUrl: './calendar-widget.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCalendar, CustomCalendarHeaderComponent, NgxLoadingModule, AsyncPipe, NgClass],\n})\nexport class CalendarWidgetComponent implements OnChanges {\n @Input() calendarEvents: CalendarEventModel[] | null = [];\n\n @Input() currentUserFunctions: UserFunctionsEnum[] = [];\n\n @Input() widgetMode: boolean = false;\n\n @Output() readonly monthSelected = new EventEmitter();\n\n readonly customHeader = CustomCalendarHeaderComponent;\n\n readonly UserFunctionsEnum = UserFunctionsEnum;\n\n calendarAccessForUserRole: boolean = false;\n\n readonly EVENTS_CALENDAR_MIN_DATE = EVENTS_CALENDAR_MIN_DATE;\n\n private readonly calendarUserRoles = [UserFunctionsEnum.TEACHER, UserFunctionsEnum.TEACHER_VERIFIED, UserFunctionsEnum.DIRECTOR, UserFunctionsEnum.OTHER];\n\n @ViewChild('calendar') readonly calendar!: MatCalendar;\n\n readonly isLoading$: Observable = this.eventsService.isCalendarLoading$;\n\n readonly isEventsLoading$: Observable = this.eventsService.isEventsLoading$;\n\n readonly isSideBarCalendarLoading$: Observable = this.eventsService.isSidebarCalendarLoading$;\n\n private readonly selectedDateByCalendarNavigationArrowsBS: BehaviorSubject = new BehaviorSubject(null);\n\n private selectedDateByCalendarNavigationArrows$ = this.selectedDateByCalendarNavigationArrowsBS.asObservable();\n\n private readonly isQuasiUser$ = this.userFacade.user$\n .pipe(filter(Boolean), map((data) => data.isQuasiUser));\n\n readonly updateCalendarWhenSwitchingMonthsWithArrowsSubscription = this.selectedDateByCalendarNavigationArrows$\n .pipe(\n filter(Boolean),\n map(date => ({ year: date.getFullYear(), month: date.getMonth() })),\n debounceTime(400)\n )\n .subscribe(({ year, month }) => {\n this.loadCalendarEventsForSpecificMonth(new Date(year, month, 1));\n });\n\n readonly updateCalendarWhenEventsDataIsSet = this.actions$.pipe(ofType(EventsActions.addSidebarCalendarEvent, EventsActions.setEvents)).subscribe(() => {\n setTimeout(() => {\n this.calendar.updateTodaysDate();\n });\n });\n\n\n readonly highlightEventClass = (d: Date, view: string): string => {\n if (view !== CALENDAR_MONTH_VIEW_TYPE) {\n return '';\n }\n const today = new Date();\n const isPastDate = d < new Date(today.getFullYear(), today.getMonth(), today.getDate());\n\n const date = d.getDate();\n const month = d.getMonth();\n const year = d.getFullYear();\n\n if (this.calendarEvents && this.calendarEvents.length > 0) {\n const eventClass = this.calendarEvents.find(event => {\n const eventDate = new Date(event.dateFrom);\n return eventDate.getDate() === date && eventDate.getMonth() === month && eventDate.getFullYear() === year;\n });\n\n if (eventClass) {\n return eventClass.actionType === EventActionTypeEnum.SUCCESS ? ASSIGNED_CALENDAR_SPECIAL_DATE_CLASSNAME : (isPastDate ? PAST_CALENDAR_SPECIAL_DATE_CLASSNAME : CALENDAR_SPECIAL_DATE_CLASSNAME);\n }\n return TRANSPARENT_ORDINARY_CALENDAR_DATE;\n } else {\n return TRANSPARENT_ORDINARY_CALENDAR_DATE;\n }\n };\n\n constructor(\n private readonly eventsService: EventsService,\n private readonly actions$: Actions,\n private readonly menuService: MenuService,\n private readonly router: Router,\n private readonly userFacade: UserFacade,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['currentUserFunctions']?.currentValue.length) {\n const hasRole = this.calendarUserRoles.some(role => this.currentUserFunctions.includes(role));\n hasRole ? this.calendarAccessForUserRole = true : this.calendarAccessForUserRole = false;\n }\n\n if (changes['calendarEvents'] && changes['calendarEvents'].currentValue !== null && changes['calendarEvents'].currentValue.length > 0) {\n setTimeout(() => {\n this.calendar.updateTodaysDate();\n });\n }\n }\n\n handleNextMonthClicked(): void {\n this.isQuasiUser$.pipe(first(),filter(isQuasiUser => !isQuasiUser)).subscribe(() => {\n let newDate = new Date(this.calendar.activeDate);\n newDate.setMonth(newDate.getMonth() + 1);\n this.selectedDateByCalendarNavigationArrowsBS.next(newDate);\n });\n }\n\n handlePreviousMonthClicked(): void {\n this.isQuasiUser$.pipe(first(),filter(isQuasiUser => !isQuasiUser)).subscribe(() => {\n let newDate = new Date(this.calendar.activeDate);\n newDate.setMonth(newDate.getMonth() - 1);\n this.selectedDateByCalendarNavigationArrowsBS.next(newDate);\n });\n }\n\n loadCalendarEventsForSpecificDay(date: Date): void {\n this.router.navigate([`${EVENTS_URL}`], {\n queryParams: { [EVENT_ROUTE_DATE_PARAMETER]: prepareUrlDateParameter(date) },\n });\n }\n\n loadCalendarEventsForSpecificMonth(date: Date): void {\n const year = date.getFullYear();\n const month = date.getMonth();\n const dateFrom = (new Date(year, month, 1));\n const dateTo = (new Date(year, month + 1, 1));\n this.monthSelected.emit(Builder().dateFrom(dateFrom).dateTo(dateTo).build())\n this.eventsService.eventsDateFromListBoundary = dateFrom;\n this.eventsService.eventsDateToListBoundary = dateTo;\n }\n\n showMonthInEventsModule(): void {\n if(this.widgetMode && this.calendarAccessForUserRole) {\n //handles loader when navigating to events module from widget\n setTimeout(()=>{\n this.eventsService.isCalendarLoading = true;\n this.eventsService.isEventsLoading = true;\n })\n const year = this.calendar.activeDate.getFullYear();\n const month = this.calendar.activeDate.getMonth();\n const dateFrom = prepareUrlDateParameter(new Date(year, month, 1));\n this.router.navigate([`${EVENTS_URL}`], {\n queryParams: { [EVENT_ROUTE_DATE_FROM_PARAMETER]: dateFrom },\n });\n this.menuService.currentPageValue = MenuButtonsEnum.EVENTS;\n }\n }\n\n getSelectedDateSubject(): BehaviorSubject {\n return this.selectedDateByCalendarNavigationArrowsBS;\n }\n\n ngOnDestroy(): void {\n this.updateCalendarWhenSwitchingMonthsWithArrowsSubscription.unsubscribe();\n this.updateCalendarWhenEventsDataIsSet.unsubscribe();\n this.calendarEvents = null;\n }\n}\n", "
\n
\n \n \n \n
\n @if(!widgetMode){\n
\n \n
\n }\n @if(widgetMode){\n
\n \n
\n }\n\n
\n", "import { createFeatureSelector, createSelector } from \"@ngrx/store\";\nimport { AppState } from \"../reducers\";\nimport { EventsState, eventsFeatureKey } from \"../reducers/events.reducer\";\nimport { CalendarEventModel, EventModel, EventsPagingMetaData } from \"../../../../models/interfaces/events-model\";\n\nconst selectEventState = createFeatureSelector(eventsFeatureKey);\n\nexport const selectEvents = createSelector(selectEventState, ({ eventsList }) => eventsList);\n\nexport const selectEventsPagingMetaData = createSelector(selectEventState, ({ eventsPagingMetaData }) => eventsPagingMetaData);\n\nexport const selectCalendarEvents = createSelector(selectEventState, ({ calendarEventsList }) => calendarEventsList);\n\n", "import {Injectable} from \"@angular/core\";\r\nimport {Store} from \"@ngrx/store\";\r\nimport {EventsActions} from \"../actions\";\r\nimport {Observable} from \"rxjs\";\r\nimport {selectCalendarEvents, selectEvents, selectEventsPagingMetaData} from \"../selectors/events.selectors\";\r\nimport {AppState} from \"../reducers\";\r\nimport {EventModel, EventsPagingMetaData, CalendarEventModel} from \"../../../../models/interfaces/events-model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventsFacade {\r\n readonly eventsList$: Observable = this.store.select(selectEvents);\r\n\r\n readonly eventsPagingMetadata$: Observable = this.store.select(selectEventsPagingMetaData);\r\n\r\n readonly calendarEventsList$: Observable = this.store.select(selectCalendarEvents);\r\n\r\n constructor(\r\n private readonly store: Store\r\n ) {\r\n }\r\n\r\n initEventsLoadingWithPaginationFromDate(dateFrom: Date): void {\r\n this.store.dispatch(EventsActions.initEventsLoadingWithPaginationFromDate({ dateFrom: dateFrom }));\r\n }\r\n\r\n resetEvents(): void {\r\n this.store.dispatch(EventsActions.resetEvents());\r\n }\r\n\r\n resetEventsPagingMetadata(): void {\r\n this.store.dispatch(EventsActions.resetEventsPagingMetadata());\r\n }\r\n\r\n setEvents(eventsData: EventModel[]): void {\r\n this.store.dispatch(EventsActions.setEvents({ eventsData: eventsData }));\r\n }\r\n\r\n loadAndAddEventsChunk(dateFrom: Date, dateTo?: Date, page?: number): void {\r\n this.store.dispatch(EventsActions.loadAndAddEventsDataChunk({ dateFrom: dateFrom, dateTo: dateTo, page: page }));\r\n }\r\n\r\n loadAndOverrideAllEventsData(dateFrom: Date, dateTo: Date, isPaginated: boolean): void {\r\n this.store.dispatch(EventsActions.loadAndOverrideAllEventsData({ dateFrom: dateFrom, dateTo: dateTo, isPaginated: isPaginated }));\r\n }\r\n\r\n loadCalendarEventsDataChunk(dateFrom: Date, dateTo: Date): void {\r\n this.store.dispatch(EventsActions.loadCalendarEventsDataChunk({ dateFrom: dateFrom, dateTo: dateTo }));\r\n }\r\n}\r\n"], "mappings": "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", "names": ["events_actions_exports", "__export", "addCalendarEvent", "addSidebarCalendarEvent", "calendarEventsDataLoaded", "initEventsLoadingWithPaginationFromDate", "initSidebarCalendarEvents", "loadAndAddEventsDataChunk", "loadAndOverrideAllEventsData", "loadCalendarEventsDataChunk", "loadSidebarCalendarEventsDataChunk", "resetEvents", "resetEventsPagingMetadata", "setEvents", "setEventsPagingMetadata", "initEventsLoadingWithPaginationFromDate", "createAction", "props", "initSidebarCalendarEvents", "setEvents", "setEventsPagingMetadata", "resetEventsPagingMetadata", "resetEvents", "loadSidebarCalendarEventsDataChunk", "loadCalendarEventsDataChunk", "addCalendarEvent", "calendarEventsDataLoaded", "addSidebarCalendarEvent", "loadAndOverrideAllEventsData", "loadAndAddEventsDataChunk", "eventsFeatureKey", "initialState", "calendarEventsList", "eventsList", "eventsPagingMetaData", "eventsReducer", "createReducer", "on", "EventsActions", "setEvents", "state", "eventsData", "__spreadProps", "__spreadValues", "resetEvents", "setEventsPagingMetadata", "metaData", "resetEventsPagingMetadata", "addCalendarEvent", "_a", "filter", "event", "some", "existingEvent", "dateFrom", "dateTo", "actionType", "CustomCalendarHeaderComponent", "MatCalendarHeader", "constructor", "nextClickedEvent", "EventEmitter", "previousClickedEvent", "currentPeriodClickedEvent", "ngOnInit", "self", "prototype", "currentPeriodClicked", "myCurrentPeriodClickedEvent", "originalCurrentPeriodClickedEvent", "apply", "nextClicked", "myNextClicked", "originalNextClicked", "previousClicked", "myPreviousClicked", "originalPreviousClicked", "emit", "_CustomCalendarHeaderComponent", "t", "selectors", "outputs", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "template", "rf", "ctx", "\u0275\u0275element", "styles", "changeDetection", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pipeBind1", "ctx_r1", "isLoading$", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "ctx_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "showMonthInEventsModule", "\u0275\u0275pureFunction1", "_c1", "ctx_r2", "widgetMode", "calendarAccessForUserRole", "isSideBarCalendarLoading$", "CalendarWidgetComponent", "constructor", "eventsService", "actions$", "menuService", "router", "userFacade", "calendarEvents", "currentUserFunctions", "monthSelected", "EventEmitter", "customHeader", "CustomCalendarHeaderComponent", "UserFunctionsEnum", "EVENTS_CALENDAR_MIN_DATE", "calendarUserRoles", "TEACHER", "TEACHER_VERIFIED", "DIRECTOR", "OTHER", "isCalendarLoading$", "isEventsLoading$", "isSidebarCalendarLoading$", "selectedDateByCalendarNavigationArrowsBS", "BehaviorSubject", "selectedDateByCalendarNavigationArrows$", "asObservable", "isQuasiUser$", "user$", "pipe", "filter", "Boolean", "map", "data", "isQuasiUser", "updateCalendarWhenSwitchingMonthsWithArrowsSubscription", "date", "year", "getFullYear", "month", "getMonth", "debounceTime", "subscribe", "loadCalendarEventsForSpecificMonth", "Date", "updateCalendarWhenEventsDataIsSet", "ofType", "EventsActions", "addSidebarCalendarEvent", "setEvents", "setTimeout", "calendar", "updateTodaysDate", "highlightEventClass", "d", "view", "CALENDAR_MONTH_VIEW_TYPE", "today", "isPastDate", "getDate", "length", "eventClass", "find", "event", "eventDate", "dateFrom", "actionType", "EventActionTypeEnum", "SUCCESS", "ASSIGNED_CALENDAR_SPECIAL_DATE_CLASSNAME", "PAST_CALENDAR_SPECIAL_DATE_CLASSNAME", "CALENDAR_SPECIAL_DATE_CLASSNAME", "TRANSPARENT_ORDINARY_CALENDAR_DATE", "ngOnChanges", "changes", "_a", "currentValue", "some", "role", "includes", "handleNextMonthClicked", "first", "newDate", "activeDate", "setMonth", "next", "handlePreviousMonthClicked", "loadCalendarEventsForSpecificDay", "navigate", "EVENTS_URL", "queryParams", "EVENT_ROUTE_DATE_PARAMETER", "prepareUrlDateParameter", "dateTo", "emit", "Builder", "build", "eventsDateFromListBoundary", "eventsDateToListBoundary", "isCalendarLoading", "isEventsLoading", "EVENT_ROUTE_DATE_FROM_PARAMETER", "currentPageValue", "MenuButtonsEnum", "EVENTS", "getSelectedDateSubject", "ngOnDestroy", "unsubscribe", "\u0275\u0275directiveInject", "EventsService", "Actions", "MenuService", "Router", "UserFacade", "selectors", "viewQuery", "rf", "ctx", "$event", "\u0275\u0275template", "CalendarWidgetComponent_Conditional_7_Template", "CalendarWidgetComponent_Conditional_8_Template", "\u0275\u0275pureFunction3", "_c2", "\u0275\u0275pureFunction2", "_c3", "\u0275\u0275conditional", "MatCalendar", "NgxLoadingModule", "NgxLoadingComponent", "AsyncPipe", "NgClass", "styles", "changeDetection", "_CalendarWidgetComponent", "selectEventState", "createFeatureSelector", "eventsFeatureKey", "selectEvents", "createSelector", "eventsList", "selectEventsPagingMetaData", "eventsPagingMetaData", "selectCalendarEvents", "calendarEventsList", "EventsFacade", "constructor", "store", "eventsList$", "select", "selectEvents", "eventsPagingMetadata$", "selectEventsPagingMetaData", "calendarEventsList$", "selectCalendarEvents", "initEventsLoadingWithPaginationFromDate", "dateFrom", "dispatch", "EventsActions", "resetEvents", "resetEventsPagingMetadata", "setEvents", "eventsData", "loadAndAddEventsChunk", "dateTo", "page", "loadAndAddEventsDataChunk", "loadAndOverrideAllEventsData", "isPaginated", "loadCalendarEventsDataChunk", "\u0275\u0275inject", "Store", "factory", "\u0275fac", "providedIn", "_EventsFacade"] }