{"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.component.html","../../../lib/src/full-calendar.module.ts","../../../lib/src/public-api.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 shallowCopy(val: any): any {\n  if (typeof val === 'object') {\n    if (Array.isArray(val)) {\n      val = Array.prototype.slice.call(val);\n    } else if (val) { // non-null\n      val = { ...val };\n    }\n  }\n  return val;\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  AfterViewInit,\n  OnDestroy,\n  ElementRef\n} from '@angular/core';\n\nconst dummyContainer = document.createDocumentFragment()\n\n@Component({\n  selector: 'offscreen-fragment',\n  template: '<ng-content></ng-content>',\n  encapsulation: ViewEncapsulation.None\n})\nexport class OffscreenFragmentComponent implements AfterViewInit, OnDestroy {\n  constructor(private element: ElementRef) {\n  }\n\n  ngAfterViewInit() {\n    dummyContainer.appendChild(this.element.nativeElement)\n  }\n\n  // invoked BEFORE component removed from DOM\n  ngOnDestroy() {\n    dummyContainer.removeChild(this.element.nativeElement)\n  }\n}\n","import {\n  Component,\n  Input,\n  ViewEncapsulation,\n  ViewChild,\n  TemplateRef,\n  ElementRef,\n  OnChanges,\n  AfterViewInit,\n  OnDestroy,\n  SimpleChanges\n} from '@angular/core';\n\nconst dummyContainer = document.createDocumentFragment();\n\n@Component({\n  selector: 'transport-container',\n  templateUrl: './transport-container.component.html',\n  encapsulation: ViewEncapsulation.None\n})\nexport class TransportContainerComponent implements OnChanges, AfterViewInit, OnDestroy {\n  @Input() inPlaceOf!: HTMLElement; // required\n  @Input() reportEl!: (el: HTMLElement | null) => void; // required\n  @Input() elTag!: string; // required\n  @Input() elClasses?: string[];\n  @Input() elStyle?: Record<string, unknown>;\n  @Input() elAttrs?: Record<string, unknown>;\n  @Input() template!: TemplateRef<any>; // required\n  @Input() renderProps?: any;\n\n  @ViewChild('rootEl') rootElRef?: ElementRef;\n\n  ngAfterViewInit() {\n    const rootEl: Element = this.rootElRef?.nativeElement; // assumed defined\n\n    replaceEl(rootEl, this.inPlaceOf);\n    applyElAttrs(rootEl, undefined, this.elAttrs);\n    this.reportEl(rootEl as HTMLElement);\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const rootEl: Element | undefined = this.rootElRef?.nativeElement;\n\n    // ngOnChanges is called before ngAfterViewInit (and before DOM initializes)\n    // so make sure rootEl is defined before doing anything\n    if (rootEl) {\n      // If the ContentContainer's tagName changed, it will create a new DOM element in its\n      // original place. Detect this and re-replace.\n      if (this.inPlaceOf.parentNode !== dummyContainer) {\n        replaceEl(rootEl, this.inPlaceOf);\n        applyElAttrs(rootEl, undefined, this.elAttrs);\n        this.reportEl(rootEl as HTMLElement);\n      } else {\n        const elAttrsChange = changes['elAttrs'];\n\n        if (elAttrsChange) {\n          applyElAttrs(rootEl, elAttrsChange.previousValue, elAttrsChange.currentValue);\n        }\n      }\n    }\n  }\n\n  // invoked BEFORE component removed from DOM\n  ngOnDestroy() {\n    dummyContainer.removeChild(this.inPlaceOf);\n    this.reportEl(null);\n  }\n}\n\nfunction replaceEl(subject: Element, inPlaceOf: Element): void {\n  inPlaceOf.parentNode?.insertBefore(subject, inPlaceOf.nextSibling);\n  dummyContainer.appendChild(inPlaceOf);\n}\n\nfunction applyElAttrs(\n  el: Element,\n  previousAttrs: Record<string, any> = {},\n  currentAttrs: Record<string, any> = {}\n): void {\n  // these are called \"attributes\" but they manipulate DOM node *properties*\n\n  for (const attrName in previousAttrs) {\n    if (!(attrName in currentAttrs)) {\n      (el as any)[attrName] = null;\n    }\n  }\n\n  for (const attrName in currentAttrs) {\n    (el as any)[attrName] = currentAttrs[attrName];\n  }\n}\n","<ng-template [ngIf]=\"elTag == 'div'\">\n  <div #rootEl [ngClass]=\"elClasses || ''\" [ngStyle]=\"elStyle || null\">\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n    ></ng-container>\n  </div>\n</ng-template>\n<ng-template [ngIf]=\"elTag == 'span'\">\n  <span #rootEl [ngClass]=\"elClasses || ''\" [ngStyle]=\"elStyle || null\">\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n    ></ng-container>\n  </span>\n</ng-template>\n<ng-template [ngIf]=\"elTag == 'a'\">\n  <a #rootEl [ngClass]=\"elClasses || ''\" [ngStyle]=\"elStyle || null\">\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n    ></ng-container>\n  </a>\n</ng-template>\n<ng-template [ngIf]=\"elTag == 'tr'\">\n  <tr #rootEl [ngClass]=\"elClasses || ''\" [ngStyle]=\"elStyle || null\">\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n    ></ng-container>\n  </tr>\n</ng-template>\n<ng-template [ngIf]=\"elTag == 'th'\">\n  <th #rootEl [ngClass]=\"elClasses || ''\" [ngStyle]=\"elStyle || null\">\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n    ></ng-container>\n  </th>\n</ng-template>\n<ng-template [ngIf]=\"elTag == 'td'\">\n  <td #rootEl [ngClass]=\"elClasses || ''\" [ngStyle]=\"elStyle || null\">\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{ $implicit: renderProps }\"\n    ></ng-container>\n  </td>\n</ng-template>\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} from '@angular/core';\nimport { Calendar, CalendarOptions } from '@fullcalendar/core';\nimport { CustomRendering, CustomRenderingStore } from '@fullcalendar/core/internal';\nimport { OPTION_INPUT_NAMES, OPTION_IS_DEEP } from './options';\nimport { CalendarOption, CalendarTemplateRef } from './private-types';\nimport { deepCopy, shallowCopy, mapHash } from './utils/obj';\nimport { deepEqual } from './utils/fast-deep-equal';\n\n@Component({\n  selector: 'full-calendar',\n  templateUrl: './full-calendar.component.html',\n  encapsulation: ViewEncapsulation.None // the styles are root-level, not scoped within the component\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('dayHeaderContent', { static: true }) dayHeaderContent?: CalendarTemplateRef<'dayHeaderContent'>;\n  @ContentChild('dayCellContent', { static: true }) dayCellContent?: CalendarTemplateRef<'dayCellContent'>;\n  @ContentChild('weekNumberContent', { static: true }) weekNumberContent?: CalendarTemplateRef<'weekNumberContent'>;\n  @ContentChild('nowIndicatorContent', { static: true }) nowIndicatorContent?: CalendarTemplateRef<'nowIndicatorContent'>;\n  @ContentChild('eventContent', { static: true }) eventContent?: CalendarTemplateRef<'eventContent'>;\n  @ContentChild('slotLaneContent', { static: true }) slotLaneContent?: CalendarTemplateRef<'slotLaneContent'>;\n  @ContentChild('slotLabelContent', { static: true }) slotLabelContent?: CalendarTemplateRef<'slotLabelContent'>;\n  @ContentChild('allDayContent', { static: true }) allDayContent?: CalendarTemplateRef<'allDayContent'>;\n  @ContentChild('moreLinkContent', { static: true }) moreLinkContent?: CalendarTemplateRef<'moreLinkContent'>;\n  @ContentChild('noEventsContent', { static: true }) noEventsContent?: CalendarTemplateRef<'noEventsContent'>;\n  @ContentChild('resourceAreaHeaderContent', { static: true }) resourceAreaHeaderContent?: CalendarTemplateRef<'resourceAreaHeaderContent'>;\n  @ContentChild('resourceGroupLabelContent', { static: true }) resourceGroupLabelContent?: CalendarTemplateRef<'resourceGroupLabelContent'>;\n  @ContentChild('resourceLabelContent', { static: true }) resourceLabelContent?: CalendarTemplateRef<'resourceLabelContent'>;\n  @ContentChild('resourceLaneContent', { static: true }) resourceLaneContent?: CalendarTemplateRef<'resourceLaneContent'>;\n  @ContentChild('resourceGroupLaneContent', { static: true }) resourceGroupLaneContent?: CalendarTemplateRef<'resourceGroupLaneContent'>;\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  public templateMap: { [templateName: string]: TemplateRef<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    this.templateMap = this as any; // alias to this\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    this.calendar = new Calendar(this.element.nativeElement, {\n      ...options,\n      ...this.buildExtraOptions(),\n    });\n    this.calendar.render();\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      let anyChanges = false;\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              anyChanges = true;\n\n              // trick FC into knowing about a nested change.\n              // TODO: future versions won't need this.\n              // can't use the previously-made deep copy because it blows away prototype-association.\n              optionVal = shallowCopy(optionVal);\n            }\n          } else {\n            if (optionSnapshot[optionName] !== optionVal) {\n              optionSnapshot[optionName] = optionVal;\n              anyChanges = true;\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          anyChanges = true;\n        }\n      }\n\n      if (anyChanges) {\n        this.calendar.pauseRendering();\n        this.calendar.resetOptions({\n          ...newProcessedOptions,\n          ...this.buildExtraOptions(),\n        });\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.templateMap,\n      customRenderingReplacesEl: true,\n    };\n  }\n\n  // for `trackBy` in loop\n  trackCustomRendering(index: number, customRendering: CustomRendering<any>): any {\n    return customRendering.id\n  }\n}\n","<offscreen-fragment>\n  <transport-container *ngFor=\"let customRendering of customRenderings; trackBy:trackCustomRendering\"\n    [inPlaceOf]=\"customRendering.containerEl\"\n    [reportEl]=\"customRendering.reportNewContainerEl\"\n    [elTag]=\"customRendering.elTag\"\n    [elClasses]=\"customRendering.elClasses\"\n    [elStyle]=\"customRendering.elStyle\"\n    [elAttrs]=\"customRendering.elAttrs\"\n    [template]=\"templateMap[customRendering.generatorName]!\"\n    [renderProps]=\"customRendering.renderProps\"\n  ></transport-container>\n</offscreen-fragment>\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 './full-calendar.component';\nexport * from './full-calendar.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["dummyContainer","i1.OffscreenFragmentComponent","i2.TransportContainerComponent","i3"],"mappings":"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"}