{"version":3,"file":"fullcalendar-angular.mjs","sources":["../../../lib/src/options.ts","../../../lib/src/utils/obj.ts","../../../lib/src/utils/fast-deep-equal.ts","../../../lib/src/utils/offscreen-fragment.component.ts","../../../lib/src/utils/transport-container.component.ts","../../../lib/src/utils/transport-container.component.html","../../../lib/src/full-calendar.component.ts","../../../lib/src/full-calendar.module.ts","../../../lib/src/index.ts","../../../lib/src/fullcalendar-angular.ts"],"sourcesContent":["\nexport const OPTION_IS_DEEP: { [optionName: string]: boolean } = {\n  headerToolbar: true,\n  footerToolbar: true,\n  events: true,\n  eventSources: true,\n  resources: true\n};\n\n/*\nNOTE: keep synced with component\n*/\nexport const OPTION_INPUT_NAMES: string[] = [\n  'events',\n  'eventSources',\n  'resources',\n];\n","\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/*\nReally simple clone utility. Only copies plain arrays, objects, and Dates. Transfers everything else as-is.\nWanted to use a third-party lib, but none did exactly this.\n*/\nexport function deepCopy(input: any): any {\n\n  if (Array.isArray(input)) {\n    return input.map(deepCopy);\n\n  } else if (input instanceof Date) {\n    return new Date(input.valueOf());\n\n  } else if (typeof input === 'object' && input) { // non-null object\n    return mapHash(input, deepCopy);\n\n  } else { // everything else (null, function, etc)\n    return input;\n  }\n}\n\n\nexport function mapHash(input: any, func: any): any {\n  const output: { [key: string]: any } = {};\n\n  for (const key in input) {\n    if (hasOwnProperty.call(input, key)) {\n      output[key] = func(input[key], key);\n    }\n  }\n\n  return output;\n}\n","/*\nForked from https://github.com/epoberezkin/fast-deep-equal (also has MIT license)\nNeeded ESM support or else Angular complains about treeshaking\n(https://github.com/fullcalendar/fullcalendar-angular/issues/421)\n*/\nexport function deepEqual(a: any, b: any): boolean {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!deepEqual(a[i], b[i])) return false;\n      return true;\n    }\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n\n      if (!deepEqual(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a!==a && b!==b;\n}\n","import {\n  Component,\n  ViewEncapsulation,\n  ChangeDetectionStrategy,\n  AfterViewInit,\n  OnDestroy,\n  ElementRef\n} from '@angular/core';\n\nconst dummyContainer = typeof document !== 'undefined' ? document.createDocumentFragment() : null;\n\n@Component({\n  selector: 'offscreen-fragment',\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Default\n})\nexport class OffscreenFragmentComponent implements AfterViewInit, OnDestroy {\n  constructor(private element: ElementRef) {\n  }\n\n  ngAfterViewInit() {\n    if (dummyContainer) {\n      dummyContainer.appendChild(this.element.nativeElement)\n    }\n  }\n\n  // invoked BEFORE component removed from DOM\n  ngOnDestroy() {\n    if (dummyContainer) {\n      dummyContainer.removeChild(this.element.nativeElement)\n    }\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  ViewEncapsulation,\n  ViewChild,\n  TemplateRef,\n  ElementRef,\n  OnChanges,\n  AfterViewInit,\n  SimpleChanges\n} from '@angular/core';\n\n@Component({\n  selector: 'transport-container',\n  templateUrl: './transport-container.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Default\n})\nexport class TransportContainerComponent implements OnChanges, AfterViewInit {\n  @Input() containerEl!: HTMLElement; // required\n  @Input() template!: TemplateRef<any>; // required\n  @Input() renderProps?: any;\n\n  @ViewChild('wrapperEl') wrapperElRef?: ElementRef;\n\n  ngAfterViewInit() {\n    this.attachWrapperEl();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['containerEl'] && this.wrapperElRef) {\n      this.attachWrapperEl();\n    }\n  }\n\n  // Keep Preact's container in place and move only Angular's boxless wrapper into it.\n  private attachWrapperEl() {\n    const wrapperEl: Element | undefined = this.wrapperElRef?.nativeElement;\n\n    if (wrapperEl && wrapperEl.parentNode !== this.containerEl) {\n      this.containerEl.appendChild(wrapperEl);\n    }\n  }\n}\n","<div #wrapperEl style=\"display: contents\">\n  <ng-container\n    [ngTemplateOutlet]=\"template\"\n    [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n  ></ng-container>\n</div>\n","import {\n  Component,\n  ContentChild,\n  TemplateRef,\n  ElementRef,\n  Input,\n  AfterViewInit,\n  DoCheck,\n  AfterContentChecked,\n  OnDestroy,\n  ViewEncapsulation,\n  ChangeDetectorRef,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { Calendar, CalendarOptions } from 'fullcalendar';\nimport { CustomRendering, CustomRenderingStore } from 'fullcalendar/protected-api';\nimport { OPTION_INPUT_NAMES, OPTION_IS_DEEP } from './options';\nimport { CalendarOption, CalendarTemplateRef } from './private-types';\nimport { deepCopy, mapHash } from './utils/obj';\nimport { deepEqual } from './utils/fast-deep-equal';\n\n@Component({\n  selector: 'full-calendar',\n  template: `\n    <offscreen-fragment>\n      <transport-container *ngFor=\"let customRendering of customRenderings; trackBy:trackCustomRendering\"\n        [containerEl]=\"customRendering.containerEl\"\n        [template]=\"customRendering.generatorMeta\"\n        [renderProps]=\"customRendering.renderProps\"\n      ></transport-container>\n    </offscreen-fragment>\n  `,\n  encapsulation: ViewEncapsulation.None, // the styles are root-level, not scoped within the component\n  changeDetection: ChangeDetectionStrategy.Default\n})\nexport class FullCalendarComponent implements AfterViewInit, DoCheck, AfterContentChecked, OnDestroy {\n  @Input() options?: CalendarOptions;\n  @Input() deepChangeDetection?: boolean;\n\n  /*\n  Options as individual Inputs\n  NOTE: keep in sync with OPTION_INPUT_NAMES\n  */\n  @Input() events?: CalendarOption<'events'> | null | undefined;\n  @Input() eventSources?: CalendarOption<'eventSources'> | null | undefined;\n  @Input() resources?: CalendarOption<'resources'> | null | undefined;\n\n  /*\n  Templates\n  */\n  @ContentChild('allDayHeaderContent', { static: true }) allDayHeaderContent?: CalendarTemplateRef<'allDayHeaderContent'>;\n  @ContentChild('dayCellTopContent', { static: true }) dayCellTopContent?: CalendarTemplateRef<'dayCellTopContent'>;\n  @ContentChild('dayHeaderContent', { static: true }) dayHeaderContent?: CalendarTemplateRef<'dayHeaderContent'>;\n  @ContentChild('eventContent', { static: true }) eventContent?: CalendarTemplateRef<'eventContent'>;\n  @ContentChild('inlineWeekNumberContent', { static: true }) inlineWeekNumberContent?: CalendarTemplateRef<'inlineWeekNumberContent'>;\n  @ContentChild('listDayHeaderContent', { static: true }) listDayHeaderContent?: CalendarTemplateRef<'listDayHeaderContent'>;\n  @ContentChild('moreLinkContent', { static: true }) moreLinkContent?: CalendarTemplateRef<'moreLinkContent'>;\n  @ContentChild('noEventsContent', { static: true }) noEventsContent?: CalendarTemplateRef<'noEventsContent'>;\n  @ContentChild('nowIndicatorHeaderContent', { static: true }) nowIndicatorHeaderContent?: CalendarTemplateRef<'nowIndicatorHeaderContent'>;\n  @ContentChild('nowIndicatorLineContent', { static: true }) nowIndicatorLineContent?: CalendarTemplateRef<'nowIndicatorLineContent'>;\n  @ContentChild('popoverCloseContent', { static: true }) popoverCloseContent?: CalendarTemplateRef<'popoverCloseContent'>;\n  @ContentChild('resourceCellContent', { static: true }) resourceCellContent?: CalendarTemplateRef<'resourceCellContent'>;\n  @ContentChild('resourceColumnHeaderContent', { static: true }) resourceColumnHeaderContent?: CalendarTemplateRef<'resourceColumnHeaderContent'>;\n  @ContentChild('resourceDayHeaderContent', { static: true }) resourceDayHeaderContent?: CalendarTemplateRef<'resourceDayHeaderContent'>;\n  @ContentChild('resourceExpanderContent', { static: true }) resourceExpanderContent?: CalendarTemplateRef<'resourceExpanderContent'>;\n  @ContentChild('resourceGroupHeaderContent', { static: true }) resourceGroupHeaderContent?: CalendarTemplateRef<'resourceGroupHeaderContent'>;\n  @ContentChild('resourceGroupLaneContent', { static: true }) resourceGroupLaneContent?: CalendarTemplateRef<'resourceGroupLaneContent'>;\n  @ContentChild('resourceLaneBottomContent', { static: true }) resourceLaneBottomContent?: CalendarTemplateRef<'resourceLaneBottomContent'>;\n  @ContentChild('resourceLaneTopContent', { static: true }) resourceLaneTopContent?: CalendarTemplateRef<'resourceLaneTopContent'>;\n  @ContentChild('rowEventAfterContent', { static: true }) rowEventAfterContent?: CalendarTemplateRef<'rowEventAfterContent'>;\n  @ContentChild('rowEventBeforeContent', { static: true }) rowEventBeforeContent?: CalendarTemplateRef<'rowEventBeforeContent'>;\n  @ContentChild('slotHeaderContent', { static: true }) slotHeaderContent?: CalendarTemplateRef<'slotHeaderContent'>;\n  @ContentChild('weekNumberHeaderContent', { static: true }) weekNumberHeaderContent?: CalendarTemplateRef<'weekNumberHeaderContent'>;\n\n  private calendar: Calendar | null = null;\n  private optionSnapshot: Record<string, any> = {}; // for diffing\n  private handleCustomRendering: (customRendering: CustomRendering<any>) => void\n  private customRenderingMap = new Map<string, CustomRendering<any>>()\n  private customRenderingArray?: CustomRendering<any>[]\n\n  constructor(\n    private element: ElementRef,\n    changeDetector: ChangeDetectorRef\n  ) {\n    const customRenderingStore = new CustomRenderingStore();\n\n    customRenderingStore.subscribe((customRenderingMap) => {\n      this.customRenderingMap = customRenderingMap;\n      this.customRenderingArray = undefined; // clear cache\n      changeDetector.detectChanges();\n    });\n\n    this.handleCustomRendering = customRenderingStore.handle.bind(customRenderingStore);\n  }\n\n  ngAfterViewInit() {\n    const { deepChangeDetection } = this;\n    const options = {\n      ...this.options,\n      ...this.buildInputOptions(),\n    };\n\n    // initialize snapshot\n    this.optionSnapshot = mapHash(options, (optionVal: any, optionName: string) => (\n      (deepChangeDetection && OPTION_IS_DEEP[optionName])\n        ? deepCopy(optionVal)\n        : optionVal\n    ));\n\n    const calendarEl = this.element.nativeElement\n    const calendar = this.calendar = new Calendar(calendarEl, {\n      ...options,\n      ...this.buildExtraOptions(),\n    });\n\n    // Ionic dimensions hack\n    // https://github.com/fullcalendar/fullcalendar/issues/4976\n    const ionContent = calendarEl.closest('ion-content')\n    if (ionContent && ionContent.componentOnReady) {\n      ionContent.componentOnReady().then(() => {\n        window.requestAnimationFrame(() => {\n          calendar.render()\n        })\n      })\n    } else {\n      calendar.render()\n    }\n  }\n\n  /*\n  allows us to manually detect complex input changes, internal mutations to certain options.\n  called before ngOnChanges. called much more often than ngOnChanges.\n  */\n  ngDoCheck() {\n    if (this.calendar) { // not the initial render\n      const { deepChangeDetection, optionSnapshot } = this;\n      const newOptions = {\n        ...this.options,\n        ...this.buildInputOptions(),\n      };\n      const newProcessedOptions: Record<string, any> = {};\n      const changedOptionNames: string[] = []\n\n      // detect adds and updates (and update snapshot)\n      for (const optionName in newOptions) {\n        if (newOptions.hasOwnProperty(optionName)) {\n          let optionVal = newOptions[optionName as keyof CalendarOptions];\n\n          if (deepChangeDetection && OPTION_IS_DEEP[optionName]) {\n            if (!deepEqual(optionSnapshot[optionName], optionVal)) {\n              optionSnapshot[optionName] = deepCopy(optionVal);\n              changedOptionNames.push(optionName);\n            }\n          } else {\n            if (optionSnapshot[optionName] !== optionVal) {\n              optionSnapshot[optionName] = optionVal;\n              changedOptionNames.push(optionName);\n            }\n          }\n\n          newProcessedOptions[optionName] = optionVal;\n        }\n      }\n\n      const oldOptionNames = Object.keys(optionSnapshot);\n\n      // detect removals (and update snapshot)\n      for (const optionName of oldOptionNames) {\n        if (!(optionName in newOptions)) { // doesn't exist in new options?\n          delete optionSnapshot[optionName];\n          changedOptionNames.push(optionName);\n        }\n      }\n\n      if (changedOptionNames.length) {\n        this.calendar.pauseRendering();\n        this.calendar.resetOptions({\n          ...newProcessedOptions,\n          ...this.buildExtraOptions(),\n        }, changedOptionNames);\n      }\n    }\n  }\n\n  ngAfterContentChecked() {\n    if (this.calendar) { // too defensive?\n      this.calendar.resumeRendering();\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.calendar) { // too defensive?\n      this.calendar.destroy();\n      this.calendar = null;\n    }\n  }\n\n  get customRenderings(): CustomRendering<any>[] {\n    return this.customRenderingArray ||\n      (this.customRenderingArray = [...this.customRenderingMap.values()]);\n  }\n\n  public getApi(): Calendar {\n    return this.calendar!;\n  }\n\n  private buildInputOptions(): CalendarOptions {\n    const options: CalendarOptions = {}\n\n    for (const inputName of OPTION_INPUT_NAMES) {\n      const inputValue = (this as any)[inputName];\n\n      if (inputValue != null) { // exclude both null and undefined\n        (options as any)[inputName] = inputValue;\n      }\n    }\n\n    return options;\n  }\n\n  private buildExtraOptions(): CalendarOptions {\n    return {\n      handleCustomRendering: this.handleCustomRendering,\n      customRenderingMetaMap: this as unknown as { [templateName: string]: TemplateRef<any> },\n    };\n  }\n\n  // for `trackBy` in loop\n  trackCustomRendering(index: number, customRendering: CustomRendering<any>): any {\n    return customRendering.id\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FullCalendarComponent } from './full-calendar.component';\nimport { OffscreenFragmentComponent } from './utils/offscreen-fragment.component';\nimport { TransportContainerComponent } from './utils/transport-container.component';\n\n@NgModule({\n  declarations: [\n    FullCalendarComponent,\n    OffscreenFragmentComponent,\n    TransportContainerComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    FullCalendarComponent\n  ]\n})\nexport class FullCalendarModule { }\n","/*\n * Public API Surface of lib\n */\n\nexport * from 'fullcalendar/public-api'\nexport * from './full-calendar.component';\nexport * from './full-calendar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.OffscreenFragmentComponent","i3.TransportContainerComponent"],"mappings":"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"}