@tylertech/forge 2.20.1 → 2.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/custom-elements.json +51 -17
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/calendar/index.js +1 -1
  6. package/dist/esm/chunks/{chunk.K55FBLTW.js → chunk.2GDEYC4V.js} +2 -2
  7. package/dist/esm/chunks/{chunk.HGGP6G7L.js → chunk.43RHBWGI.js} +2 -2
  8. package/dist/esm/chunks/{chunk.ZWL2Q7E6.js → chunk.45KYMP5J.js} +2 -2
  9. package/dist/esm/chunks/{chunk.KNVCEYY2.js → chunk.5E2BG6O3.js} +2 -2
  10. package/dist/esm/chunks/{chunk.2VWASAUU.js → chunk.AIUIUCZH.js} +2 -2
  11. package/dist/esm/chunks/{chunk.AD4NVLFA.js → chunk.COS4RDZB.js} +2 -2
  12. package/dist/esm/chunks/chunk.DPZU5F27.js +7 -0
  13. package/dist/esm/chunks/chunk.DPZU5F27.js.map +7 -0
  14. package/dist/esm/chunks/chunk.F5LXG5X7.js +7 -0
  15. package/dist/esm/chunks/chunk.F5LXG5X7.js.map +7 -0
  16. package/dist/esm/chunks/chunk.PWHMNJ5Y.js +7 -0
  17. package/dist/esm/chunks/{chunk.WPJEXVHM.js.map → chunk.PWHMNJ5Y.js.map} +2 -2
  18. package/dist/esm/chunks/chunk.Q7HX26UO.js +7 -0
  19. package/dist/esm/chunks/chunk.Q7HX26UO.js.map +7 -0
  20. package/dist/esm/chunks/{chunk.O7IKUHRR.js → chunk.RD7SYOAI.js} +2 -2
  21. package/dist/esm/chunks/{chunk.4E4ZOFQI.js → chunk.TBSCULSM.js} +2 -2
  22. package/dist/esm/chunks/{chunk.4E4ZOFQI.js.map → chunk.TBSCULSM.js.map} +1 -1
  23. package/dist/esm/chunks/{chunk.4HWB754J.js → chunk.UQTJSPU4.js} +2 -2
  24. package/dist/esm/chunks/chunk.Y7YPNMPI.js +7 -0
  25. package/dist/esm/chunks/chunk.Y7YPNMPI.js.map +7 -0
  26. package/dist/esm/date-picker/index.js +1 -1
  27. package/dist/esm/date-range-picker/index.js +1 -1
  28. package/dist/esm/expansion-panel/index.js +1 -1
  29. package/dist/esm/index.js +1 -1
  30. package/dist/esm/menu/index.js +1 -1
  31. package/dist/esm/paginator/index.js +1 -1
  32. package/dist/esm/split-view/index.js +1 -1
  33. package/dist/esm/split-view/split-view/index.js +1 -1
  34. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  35. package/dist/esm/stepper/index.js +1 -1
  36. package/dist/esm/stepper/step/index.js +1 -1
  37. package/dist/esm/stepper/stepper/index.js +1 -1
  38. package/dist/esm/table/index.js +1 -1
  39. package/esm/calendar/calendar-foundation.js +2 -1
  40. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  41. package/esm/date-range-picker/date-range-picker-foundation.js +4 -0
  42. package/esm/expansion-panel/expansion-panel-adapter.js +0 -5
  43. package/esm/menu/menu-adapter.d.ts +3 -3
  44. package/esm/menu/menu-constants.d.ts +1 -1
  45. package/esm/menu/menu-foundation.d.ts +1 -0
  46. package/esm/menu/menu-foundation.js +11 -4
  47. package/esm/paginator/paginator-constants.d.ts +9 -0
  48. package/esm/paginator/paginator-foundation.d.ts +5 -2
  49. package/esm/paginator/paginator-foundation.js +29 -8
  50. package/esm/paginator/paginator.d.ts +3 -1
  51. package/esm/paginator/paginator.js +3 -0
  52. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  53. package/package.json +1 -1
  54. package/dist/esm/chunks/chunk.JOLJ7WVN.js +0 -7
  55. package/dist/esm/chunks/chunk.JOLJ7WVN.js.map +0 -7
  56. package/dist/esm/chunks/chunk.RH4E52PS.js +0 -7
  57. package/dist/esm/chunks/chunk.RH4E52PS.js.map +0 -7
  58. package/dist/esm/chunks/chunk.SZNMBPMR.js +0 -7
  59. package/dist/esm/chunks/chunk.SZNMBPMR.js.map +0 -7
  60. package/dist/esm/chunks/chunk.WPJEXVHM.js +0 -7
  61. package/dist/esm/chunks/chunk.XY3WCDVX.js +0 -7
  62. package/dist/esm/chunks/chunk.XY3WCDVX.js.map +0 -7
  63. /package/dist/esm/chunks/{chunk.K55FBLTW.js.map → chunk.2GDEYC4V.js.map} +0 -0
  64. /package/dist/esm/chunks/{chunk.HGGP6G7L.js.map → chunk.43RHBWGI.js.map} +0 -0
  65. /package/dist/esm/chunks/{chunk.ZWL2Q7E6.js.map → chunk.45KYMP5J.js.map} +0 -0
  66. /package/dist/esm/chunks/{chunk.KNVCEYY2.js.map → chunk.5E2BG6O3.js.map} +0 -0
  67. /package/dist/esm/chunks/{chunk.2VWASAUU.js.map → chunk.AIUIUCZH.js.map} +0 -0
  68. /package/dist/esm/chunks/{chunk.AD4NVLFA.js.map → chunk.COS4RDZB.js.map} +0 -0
  69. /package/dist/esm/chunks/{chunk.O7IKUHRR.js.map → chunk.RD7SYOAI.js.map} +0 -0
  70. /package/dist/esm/chunks/{chunk.4HWB754J.js.map → chunk.UQTJSPU4.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/date-range-picker/date-range-picker-constants.ts", "../../src/date-range-picker/date-range-picker-adapter.ts", "../../src/date-range-picker/date-range-picker-foundation.ts", "../../src/date-range-picker/date-range-picker.ts", "../../src/date-range-picker/date-range-picker-component-delegate.ts", "../../src/date-range-picker/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-range-picker`;\n\nexport class DatePickerRange implements IDatePickerRange {\n public from?: Date | string | null;\n public to?: Date | string | null;\n constructor(range?: IDatePickerRange) {\n if (range) {\n this.from = range.from;\n this.to = range.to;\n }\n }\n\n public copy(): DatePickerRange {\n return new DatePickerRange(this);\n }\n}\n\nexport interface IDatePickerRange {\n from?: Date | string | null;\n to?: Date | string | null;\n}\n\nconst observedAttributes = {\n FROM: 'from',\n TO: 'to',\n END_VALUE: 'end-value'\n};\n\nconst selectors = {\n INPUT: 'input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_RANGE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n\n\nexport interface IDateRangePickerChangeEventData extends DatePickerRange {}\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { CalendarDropdown, ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from '../date-picker/base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from '../date-picker/base/base-date-picker-constants';\nimport { createToggleElement } from '../date-picker/base/base-date-picker-utils';\nimport { DateRangePickerComponent, IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS } from './date-range-picker-constants';\n\nexport interface IDateRangePickerAdapter extends IBaseDatePickerAdapter {\n initializeToMask(toOptions: IDateInputMaskOptions): void;\n addToInputListener(type: string, listener: (event: Event) => void): void;\n removeToInputListener(type: string, listener: (event: Event) => void): void;\n setToInputValueChangedListener(context: any, listener: (value: any) => void): void;\n getToInputValue(): string;\n setToInputValue(value: string, emitEvents: boolean): void;\n emitInputEvent(type: string, data?: any): void;\n emitToInputEvent(type: string, data?: any): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectToInputText(): void;\n destroyToMask(): void;\n}\n\nexport class DateRangePickerAdapter extends BaseDatePickerAdapter<IDateRangePickerComponent> implements IDateRangePickerAdapter {\n private _fromInputElement: HTMLInputElement;\n private _toInputElement: HTMLInputElement;\n private _toInputMask: DateInputMask | undefined;\n private _fromInputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n private _toValueChangeListener: (() => void) | undefined;\n\n constructor(component: DateRangePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-range-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._fromInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[0] as HTMLInputElement;\n this._toInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[1] as HTMLInputElement;\n\n if (!this._fromInputElement || !this._fromInputElement) {\n throw new Error(`The ${DATE_RANGE_PICKER_CONSTANTS.elementName} requires two inputs`);\n }\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public override initializeMask(fromOptions: IDateInputMaskOptions): void {\n this._fromInputMask?.destroy();\n this._fromInputMask = new DateInputMask(this._fromInputElement, fromOptions);\n }\n\n public override destroyMask(): void {\n this._fromInputMask?.destroy();\n this._fromInputMask = undefined;\n }\n\n public initializeToMask(toOptions: IDateInputMaskOptions): void {\n this._toInputMask?.destroy();\n this._toInputMask = new DateInputMask(this._toInputElement, toOptions);\n }\n\n public destroyToMask(): void {\n this._toInputMask?.destroy();\n this._toInputMask = undefined;\n }\n\n public override destroy(): void {\n super.destroy();\n this._destroyToValueChangeListener();\n }\n\n private _destroyToValueChangeListener(): void {\n if (typeof this._toValueChangeListener === 'function') {\n this._toValueChangeListener();\n }\n }\n\n public initializeAccessibility(): void {\n this._applyToInputs(input => input.setAttribute('autocomplete', 'off'));\n this._applyToInputs(input => input.setAttribute('autocorrect', 'off'));\n this._applyToInputs(input => input.setAttribute('autocapitalize', 'off'));\n this._applyToInputs(input => input.setAttribute('spellcheck', 'false'));\n this._applyToInputs(input => input.setAttribute('role', 'combobox'));\n this._applyToInputs(input => input.setAttribute('aria-live', 'assertive'));\n this._applyToInputs(input => input.setAttribute('aria-atomic', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-haspopup', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-expanded', 'false'));\n this._applyToInputs(input => input.setAttribute('aria-owns', this._dropdownIdentifier));\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._fromInputElement?.addEventListener(type, listener, { capture });\n }\n\n public addToInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._toInputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void): void {\n this._fromInputElement?.removeEventListener(type, listener);\n }\n \n public removeToInputListener(type: string, listener: (event: Event) => void): void {\n this._toInputElement?.removeEventListener(type, listener);\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n if (this._valueChangeListeners.length) {\n this.destroyValueChangeListener();\n }\n const destroyListenerCb = listenOwnProperty(context, this._fromInputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public setToInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this._destroyToValueChangeListener();\n this._toValueChangeListener = listenOwnProperty(context, this._toInputElement, 'value', listener);\n }\n\n public hasInputElement(): boolean {\n return !!this._fromInputElement && !!this._toInputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._fromInputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._fromInputElement) {\n this._fromInputElement.setAttribute('aria-expanded', 'false');\n this._fromInputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._fromInputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._fromInputElement.value === value) {\n return;\n }\n\n this._fromInputElement.value = value;\n \n if (this._fromInputMask) {\n this._fromInputMask.updateMask();\n }\n\n if (emitEvents) {\n this._fromInputElement.dispatchEvent(new Event('change'));\n this._fromInputElement.dispatchEvent(new Event('input'));;\n }\n }\n\n public setToInputValue(value: string, emitEvents: boolean): void {\n if (this._toInputElement.value === value) {\n return;\n }\n\n this._toInputElement.value = value;\n \n if (this._toInputMask) {\n this._toInputMask.updateMask();\n }\n \n if (emitEvents) {\n this._toInputElement.dispatchEvent(new Event('change'));\n this._toInputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._fromInputElement.disabled;\n }\n\n public isInputFocused(target?: EventTarget | null): boolean {\n if (target && this._toInputElement === target || this._fromInputElement === target) {\n return true;\n }\n const activeEl = getActiveElement(this._component.ownerDocument);\n return this._toInputElement === activeEl || this._fromInputElement === activeEl;\n }\n\n public getInputValue(): string {\n return this._fromInputElement.value;\n }\n\n public getToInputValue(): string {\n return this._toInputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._fromInputElement.disabled = isDisabled;\n this._toInputElement.disabled = isDisabled;\n\n this._toInputElement.setAttribute('aria-disabled', isDisabled.toString());\n this._fromInputElement.setAttribute('aria-disabled', isDisabled.toString());\n\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', isDisabled.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = isDisabled;\n }\n }\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._fromInputElement, type, data);\n }\n\n public emitToInputEvent(type: string, data?: any): void {\n emitEvent(this._toInputElement, type, data);\n }\n\n protected override _createToggleElement(): HTMLElement {\n return createToggleElement('date_range');\n }\n\n public tryFocusInput(): void {\n this._fromInputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._fromInputElement.blur();\n }\n\n public selectInputText(): void {\n this._fromInputElement.select();\n }\n\n public selectToInputText(): void {\n this._toInputElement.select();\n }\n\n private _applyToInputs(action: (input: HTMLInputElement) => void): void {\n [this._fromInputElement, this._toInputElement].forEach(action);\n }\n}\n", "import { isDate, isValidDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, DateRange, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core/utils/date-utils';\nimport { IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from '../date-picker/base/base-date-picker-foundation';\nimport { IDateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DatePickerRange, DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport interface IDateRangePickerFoundation extends IBaseDatePickerFoundation<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\nexport class DateRangePickerFoundation extends BaseDatePickerFoundation<IDateRangePickerAdapter, IDatePickerRange> implements IDateRangePickerFoundation {\n protected _mode: CalendarMode = 'range';\n private _from?: Date | null = null;\n private _to?: Date | null = null;\n private _toInputListener: (evt: Event) => void;\n private _toInputKeydownListener: (evt: KeyboardEvent) => void;\n private _toInputFocusListener: (evt: FocusEvent) => void;\n private _toInputBlurListener: (evt: FocusEvent) => void;\n private _toInputValueChangedListener: (value: string) => void;\n\n constructor(adapter: IDateRangePickerAdapter) {\n super(adapter);\n this._toInputListener = evt => this._onToInput(evt);\n this._toInputValueChangedListener = value => this._onToInputValueChanged(value);\n this._toInputKeydownListener = evt => this._onInputKeydown(evt);\n this._toInputFocusListener = evt => this._onToInputFocus();\n this._toInputBlurListener = evt => this._onToInputBlur(evt);\n }\n\n public override initialize(): void {\n super.initialize();\n this._setFormattedToInputValue(true);\n }\n\n protected _initializeState(): void {\n this._applyToMask();\n\n if (!this._from) {\n this._from = this._coerceDateValue(this._adapter.getInputValue());\n }\n if (!this._to) {\n this._to = this._coerceDateValue(this._adapter.getToInputValue());\n }\n }\n\n protected override _initializeListeners(): void {\n super._initializeListeners();\n this._adapter.addToInputListener('keydown', this._toInputKeydownListener);\n this._adapter.addToInputListener('focus', this._toInputFocusListener);\n this._adapter.addToInputListener('blur', this._toInputBlurListener);\n }\n\n protected override _initializeValueChangedListeners(): void {\n super._initializeValueChangedListeners();\n this._adapter.setToInputValueChangedListener(this, this._toInputValueChangedListener);\n }\n\n protected override _setInputChangeListeners(): void {\n super._setInputChangeListeners();\n this._adapter.addToInputListener('input', this._toInputListener);\n }\n\n protected override _removeInputChangeListeners(): void {\n super._removeInputChangeListeners();\n this._adapter.removeToInputListener('input', this._toInputListener);\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n this._formatToInputValue();\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue?.to) {\n this._adapter.goToCalendarDate(new Date(currentValue.to));\n } else if (!!currentValue?.from) {\n this._adapter.goToCalendarDate(new Date(currentValue.from));\n }\n }\n\n protected _emitChangeEvent(value: DateRange | null | undefined, force?: boolean): boolean {\n const typedStartValue = this._getTypedValue((value && value.from) || null);\n const typedEndValue = this._getTypedValue((value && value.to) || null);\n const detail: IDateRangePickerChangeEventData = new DatePickerRange({ from: typedStartValue, to: typedEndValue });\n const wasCancelled = !this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, detail, true, !force);\n if (!wasCancelled) {\n this._setValue(this._coerceDateValue((value && value.from) || null));\n this._setToValue(this._coerceDateValue((value && value.to) || null));\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n \n protected _onToday(): void {\n const today = new Date();\n const range = this._open ? new DateRange({ from: this._from || today, to: this._to || undefined }) : new DateRange({ from: today });\n if (!this._isDateRangeAcceptable(range)) {\n return;\n }\n this.value = range;\n this._onDateSelected({ date: today, range, selected: true, type: 'date' });\n this._adapter.setCalendarActiveDate(today);\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, range: new DateRange(), selected: false, type: 'date' });\n this._closeCalendar(true);\n }\n\n protected _getCurrentValue(): IDatePickerRange | null | undefined {\n return this._value;\n }\n\n private _applyToMask(): void {\n if (this._masked) {\n this._initializeToMask();\n } else {\n this._adapter.destroyToMask();\n this._formatToInputValue();\n }\n }\n\n private _formatToInputValue(): void {\n const inputValue = this._adapter.getToInputValue();\n if (inputValue) {\n const parsedDate = this._parseDateString(inputValue);\n if (isValidDate(parsedDate) && this._isDateValueAcceptable(parsedDate)) {\n const formattedDate = this._formatDate(parsedDate);\n if (formattedDate) {\n this._adapter.setToInputValue(formattedDate, this._notifyInputValueChanges);\n }\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setToInputValue('', this._notifyInputValueChanges);\n }\n }\n }\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._from);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n private _setFormattedToInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._to);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setToInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n protected _isDateRangeAcceptable(value?: DateRange | null | undefined): boolean {\n if (!value?.to) {\n return true;\n }\n\n const passesMinDate = (): boolean => this._isDateValueAcceptable(value.from);\n const passesMaxDate = (): boolean => this._isDateValueAcceptable(value.to);\n const passesDateRange = (): boolean => value?.from && value?.to ? value.from.getTime() <= value.to.getTime() : true;\n\n return passesMinDate() && passesMaxDate() && passesDateRange();\n }\n\n protected _setValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._from = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.from = this._from;\n }\n }\n }\n\n private _setToValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._to = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.to = this._to;\n }\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.range;\n\n if (event.rangeSelectionState === 'to') {\n this._closeCalendar(true);\n }\n\n if (!this._emitChangeEvent(value ?? null)) {\n return;\n }\n\n const formattedFromValue = this._formatDate((value && value.from) || null);\n const formattedToValue = this._formatDate((value && value.to) || null);\n this._adapter.setInputValue(formattedFromValue, this._notifyInputValueChanges);\n this._adapter.setToInputValue(formattedToValue, this._notifyInputValueChanges);\n this._formatInputValue();\n this._formatToInputValue();\n\n this._from = (value && value.from) || null;\n this._to = (value && value.to) || null;\n\n if (!Platform.isMobile) {\n if (formattedToValue) {\n this._adapter.selectToInputText();\n } else {\n this._adapter.selectInputText();\n }\n }\n }\n\n protected override _applyMin(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMax();\n }\n\n protected _initializeToMask(): void {\n if (!this._masked) {\n return;\n }\n\n const options: IDateInputMaskOptions = {\n showMaskFormat: this._showMaskFormat && this._adapter.isInputFocused(),\n pattern: this._maskFormat,\n onChange: (value: string) => this._handleToInput(value)\n };\n\n if (this._prepareMaskCallback) {\n options.prepareCallback = (value, masked, flags, maskInstance) => {\n return this._prepareMaskCallback.call(null, value, masked, flags, maskInstance);\n };\n }\n\n this._adapter.initializeToMask(options);\n }\n\n protected _applyDisabledDates(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(null, true);\n this._setFormattedToInputValue();\n }\n }\n\n private _onToInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._from) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _handleToInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitToInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._to) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n private _onToInputFocus(): void {\n if (this.masked && this._showMaskFormat) {\n this._initializeMask();\n this._initializeToMask();\n }\n this._adapter.selectToInputText();\n }\n\n private _onToInputBlur(evt: FocusEvent): void {\n if (this._masked && !this._adapter.isInputFocused(evt.relatedTarget)) {\n this._initializeMask();\n this._initializeToMask();\n }\n\n this._formatToInputValue();\n\n if (this._open) {\n this._closeCalendar(true);\n }\n }\n\n protected override _onInputFocus(evt: FocusEvent): void {\n if (this.masked && this._showMaskFormat) {\n this._initializeMask();\n this._initializeToMask();\n }\n this._adapter.selectInputText();\n }\n\n protected override _onInputBlur(evt: FocusEvent): void {\n if (this.masked && !this._adapter.isInputFocused(evt.relatedTarget)) {\n this._initializeMask();\n this._initializeToMask();\n }\n\n this._formatInputValue();\n\n if (this._open && !this._adapter.isInputFocused(evt.relatedTarget)) {\n this._closeCalendar(true);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._from)) {\n this.from = date;\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _onToInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._to)) {\n this.to = date;\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n public get value(): IDatePickerRange | null | undefined {\n return { from: this.from, to: this.to };\n }\n public set value(value: IDatePickerRange | null | undefined) {\n if (!value) {\n value = { from: null, to: null };\n }\n\n if (value.from === undefined) {\n value.from = null;\n }\n\n if (value.to === undefined) {\n value.to = null;\n }\n\n this.from = value.from;\n this.to = value.to;\n\n this._value = { from: this.from, to: this.to };\n }\n\n public get from(): Date | string | null | undefined {\n const date = this._getTypedValue(this._from);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set from(value: Date | string | null | undefined) {\n if (this._from !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ from: this._coerceDateValue(value) || undefined, to: this._coerceDateValue(this._to) || undefined }));\n }\n }\n }\n }\n\n public get to(): Date | string | null | undefined {\n const date = this._getTypedValue(this._to);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set to(value: Date | string | null | undefined) {\n if (this._to !== value) {\n this._setToValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedToInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ to: this._coerceDateValue(value) || undefined, from: this._coerceDateValue(this._from) || undefined }));\n }\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconDateRange } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from '../date-picker/base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\nimport { DateRangePickerFoundation } from './date-range-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDateRangePickerComponent extends IBaseDatePickerComponent<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-range-picker': IDateRangePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-range-picker-change': CustomEvent<IDateRangePickerChangeEventData>;\n 'forge-date-range-picker-open': CustomEvent<void>;\n 'forge-date-range-picker-close': CustomEvent<void>;\n 'forge-date-range-picker-input': CustomEvent<string>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-date-range-picker>` element.\n * \n * @tag forge-date-range-picker\n */\n@CustomElement({\n name: DATE_RANGE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DateRangePickerComponent extends BaseDatePickerComponent<IDatePickerRange, IDatePickerRange, DateRangePickerFoundation> implements IDateRangePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM,\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconDateRange);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DateRangePickerFoundation(new DateRangePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM:\n this.from = newValue;\n return;\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO:\n this.to = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the \"from\" date range value. */\n @FoundationProperty()\n public declare from: Date | string | null | undefined;\n\n /** Gets/sets the \"to\" date range value. */\n @FoundationProperty()\n public declare to: Date | string | null | undefined;\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions, IBaseComponentDelegateConfig } from '../core/delegates';\nimport { FieldDensityType } from '../field/field-constants';\nimport { ITextFieldComponent, TEXT_FIELD_CONSTANTS } from '../text-field';\nimport { IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport type DateRangePickerComponentDelegateProps = Partial<IDateRangePickerComponent>;\nexport interface IDateRangePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n fromPlaceholder?: string;\n toPlaceholder?: string;\n label?: string;\n required?: boolean;\n density?: FieldDensityType;\n}\nexport interface IDateRangePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {}\n\nexport class DateRangeComponentDelegate extends FormFieldComponentDelegate<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {\n private _textField: ITextFieldComponent;\n private _fromInput: HTMLInputElement;\n private _toInput: HTMLInputElement;\n\n constructor(config?: IDateRangePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDateRangePickerComponent {\n const dateRangePicker = document.createElement(DATE_RANGE_PICKER_CONSTANTS.elementName) as IDateRangePickerComponent;\n this._attachTextField(dateRangePicker);\n return dateRangePicker;\n }\n\n public get fromInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-0]`) as HTMLInputElement;\n }\n\n public get toInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-1]`) as HTMLInputElement;\n }\n\n public get textField(): ITextFieldComponent {\n return this._textField;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._element.disabled;\n }\n public set disabled(value: boolean) {\n this._element.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textField.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textField.invalid = value;\n }\n\n public onChange(listener: (value: IDateRangePickerChangeEventData) => void): void {\n this._element.addEventListener(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<IDateRangePickerChangeEventData>) => listener(evt.detail));\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusin', (evt: FocusEvent) => {\n const isFocusWithin = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusWithin) {\n listener(evt);\n }\n });\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusout', (evt: FocusEvent) => {\n const isFocusOutside = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusOutside) {\n listener(evt);\n }\n });\n }\n\n private _attachTextField(dateRangePicker: IDateRangePickerComponent): void {\n this._textField = document.createElement(TEXT_FIELD_CONSTANTS.elementName);\n\n if (this._config.options?.required) {\n this._textField.required = true;\n }\n if (this._config.options?.density) {\n this._textField.density = this._config.options.density;\n }\n\n this._fromInput = document.createElement('input');\n this._fromInput.type = 'text';\n this._fromInput.placeholder = this._config.options?.fromPlaceholder || 'From';\n this._textField.appendChild(this._fromInput);\n\n this._toInput = document.createElement('input');\n this._toInput.type = 'text';\n this._toInput.placeholder = this._config.options?.toPlaceholder || 'To';\n this._textField.appendChild(this._toInput);\n\n const label = document.createElement('label');\n label.textContent = this._config.options?.label || 'Choose date range';\n this._textField.appendChild(label);\n\n dateRangePicker.appendChild(this._textField);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DateRangePickerComponent } from './date-range-picker';\n\nexport * from './date-range-picker';\nexport * from './date-range-picker-adapter';\nexport * from './date-range-picker-constants';\nexport * from './date-range-picker-foundation';\nexport * from './date-range-picker-component-delegate';\n\nexport function defineDateRangePickerComponent(): void {\n defineCustomElement(DateRangePickerComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "DatePickerRange", "range", "observedAttributes", "selectors", "events", "DATE_RANGE_PICKER_CONSTANTS", "DateRangePickerAdapter", "BaseDatePickerAdapter", "component", "DATE_RANGE_PICKER_CONSTANTS", "targetElement", "CalendarDropdown", "fromOptions", "_a", "DateInputMask", "toOptions", "input", "type", "listener", "capture", "context", "destroyListenerCb", "listenOwnProperty", "calendarConfig", "dropdownConfig", "id", "value", "emitEvents", "target", "activeEl", "getActiveElement", "isDisabled", "data", "emitEvent", "createToggleElement", "action", "DateRangePickerFoundation", "BaseDatePickerFoundation", "adapter", "evt", "value", "emitOpenEvent", "currentValue", "force", "typedStartValue", "typedEndValue", "detail", "DatePickerRange", "DATE_RANGE_PICKER_CONSTANTS", "today", "range", "DateRange", "inputValue", "parsedDate", "isValidDate", "formattedDate", "suppressValueChanges", "passesMinDate", "passesMaxDate", "passesDateRange", "event", "formattedFromValue", "formattedToValue", "Platform", "options", "masked", "flags", "maskInstance", "sanitizedValue", "date", "isSameDate", "isDate", "template", "styles", "DateRangePickerComponent", "BaseDatePickerComponent", "IconRegistry", "tylIconDateRange", "attachShadowTemplate", "DateRangePickerFoundation", "DateRangePickerAdapter", "BASE_DATE_PICKER_CONSTANTS", "DATE_RANGE_PICKER_CONSTANTS", "name", "oldValue", "newValue", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "CalendarComponent", "IconButtonComponent", "IconComponent", "DateRangeComponentDelegate", "FormFieldComponentDelegate", "config", "dateRangePicker", "DATE_RANGE_PICKER_CONSTANTS", "TEXT_FIELD_CONSTANTS", "value", "listener", "evt", "_a", "_b", "_c", "_d", "_e", "label", "defineDateRangePickerComponent", "defineCustomElement", "DateRangePickerComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{A as Ne,B as T,C as Ye,D as q,a as r,f as w,g as v,h as De,i as we,j as Ee,l as m,m as ke,n as xe,o as Ce,p as Me,q as Te,r as Oe,s as Se,t as Ae,u as G,v as Be,w as Ie,x as U,y as Le,z as Fe}from"./chunk.44WDRTRR.js";import{a as M,j as ye}from"./chunk.PADHAJLS.js";import{a as E}from"./chunk.YPZNIYQL.js";import{a as ae}from"./chunk.4DAIIJ37.js";import{c as ve}from"./chunk.CE6NTUWI.js";import{b as be}from"./chunk.RLWX5BFQ.js";import{a as se,c as le,r as de,s as ce,v as ue}from"./chunk.MZLPUI6R.js";import{d as me}from"./chunk.73GVVX4K.js";import{d as fe,l as ge}from"./chunk.IWICN773.js";import{e as b,f as he,g as _e}from"./chunk.U6WGJELL.js";import{a as pe}from"./chunk.BESB4RGK.js";import{a as ne}from"./chunk.5KC43VFL.js";import{a as c}from"./chunk.KTGSZEAG.js";import{a as oe}from"./chunk.QOA2O575.js";import{a as ie,e as re,g as D}from"./chunk.HOXFK44F.js";import{b as Q,d as L,u as F,v as ee,w as te}from"./chunk.4LA6HEA7.js";import{b as A,g as B,i as C,k as g,l as I}from"./chunk.J2M2MXP2.js";import{f as d}from"./chunk.MCIQXNKY.js";function V(o,e,t=0){let a=[],i=O(new Date(e,o,1),t),n=new Date(i);n.setDate(i.getDate()+r.numbers.MONTH_LENGTH);for(let s=i;s<n;s.setDate(s.getDate()+1))a.push(new Date(s));return a}function _t(o,e=0){let t=[],a=O(o,e),i=new Date(a);i.setDate(a.getDate()+7);for(let n=a;n<i;n.setDate(n.getDate()+1))t.push(new Date(n));return t}function O(o,e=0){let t=o.getDay(),a=new Date(o),i=t>=e?t-e:7+(t-e);return a.setDate(o.getDate()-i),a.setHours(0,0,0,0),a}function Re(o,e=0){let t=O(o,e);return t.setDate(t.getDate()+6),t}function ft(o,e){return new Date(e,o,1).getDay()}function N(o=0){let e=[],t=o;do e.push(t),t+=1,t%=7;while(t!==o);return e}function He(o){return b(new Date,o)}function p(o,e,t){return o.getMonth()===e&&o.getFullYear()===t}function Ze(o,e,t){return o>e&&o<t||b(o,e)||b(o,t)}function Y(o){return o.sort((e,t)=>e.getTime()-t.getTime())}function We(o){let e=[];for(let t=0;t<o.length;t+=7){let a=o.slice(t,t+7);e.push(a)}return e}function y(o){if(!o.length)return new E;if(o.length===1)return new E({from:new Date(o[0])});let e=R(o);return new E({from:e[0],to:e[e.length-1]})}function Pe(o){let e=[];return o.from&&e.push(new Date(o.from)),o.to&&e.push(new Date(o.to)),e}function R(o){if(!o.length)return[];if(o.length===1)return[new Date(o[0])];let e=Y(o.slice().map(t=>new Date(t)));return[new Date(e[0]),new Date(e[e.length-1])]}function H(o,e,t){return!e||!t?[]:o.filter(a=>Ze(a,e,t))}function K(o){let e=`${o.length} event${o.length===1?"":"s"}`,t=o.map(a=>a.label).join(", ");return t!=null&&t.length&&(e+=`: ${t}`),e}function Je(o){var a,i;let e=new Date;return((i=(a=o.match(/-?[0-9]*[a-zA-Z]/g))==null?void 0:a.map(n=>n.trim()))!=null?i:[]).forEach(n=>{let s=n.slice(-1),u=+n.slice(0,-1);switch(s){case"y":e.setFullYear(e.getFullYear()+u);break;case"m":e.setMonth(e.getMonth()+u);break;case"w":e.setDate(e.getDate()+u*7);break;case"d":e.setDate(e.getDate()+u);break}}),e.setHours(0,0,0,0),e}function ze(o){let e=o.split(":");if((e==null?void 0:e.length)<2)return{min:1970,max:1970};let t=new Date().getFullYear(),a=e.slice(0,2).map(i=>i.startsWith("-")?t-+i.substring(1):i.startsWith("+")?t+ +i.substring(1):+i);return{min:a[0],max:a[1]}}function Ge(o){var n,s,u,_,f,j,Z,J;let e=(s=(n=o.min)==null?void 0:n.getFullYear())!=null?s:0,t=(_=(u=o.max)==null?void 0:u.getFullYear())!=null?_:0,a=(j=(f=o.min)==null?void 0:f.getMonth())!=null?j:-1,i=(J=(Z=o.max)==null?void 0:Z.getMonth())!=null?J:12;return[...Array(12).keys()].map(x=>{let $e=o.min?o.selectedYear<e||o.selectedYear===e&&x<a:!1,Xe=o.max?o.selectedYear>t||o.selectedYear===t&&x>i:!1;return{value:x,label:w(x,"long",o.locale),selected:x===o.selectedMonth,disabled:$e||Xe}})}function Ue(o){let e=[],t=o.yearInView%r.numbers.YEARS_IN_VIEW,a=o.yearInView-t;for(let i=a;i<a+r.numbers.YEARS_IN_VIEW;i++)e.push({value:i,label:v(i,"numeric",o.locale),selected:i===o.selectedYear,disabled:i<o.min||i>o.max});return e}function qe(o){let e=[];for(let t=o.min;t<=o.max;t++)e.push({value:t,label:v(t,"numeric",o.locale),selected:t===o.selectedYear});return e}function k(o,e){return e.some(t=>b(t,o))}function h(o,e){return!!(e.minDate&&o<e.minDate||e.maxDate&&o>e.maxDate||e.otherMonth||e.disabledDates.some(t=>b(t,o))||e.disabledDaysOfWeek.includes(o.getDay())||e.builder&&e.builder(o))}function S(o,e){return e.findIndex(t=>b(t,o))}function W(o,e,t){let a=e.filter(i=>b(i.date,o));if(t){let i=t(o);i&&(C(i)?a.push(...i):a.push(i))}return a}function Ve(o,e){if(!o.length)return[];let t=new Date(o[0]),a=o[o.length-1],i=[];for(;t<=a;)(!e||!h(t,e))&&i.push(new Date(t)),t.setDate(t.getDate()+1);return i}function $(o){let e=null;return typeof o=="string"&&!o.length&&(o=null),o!=null&&(B(new Date(o))?e=new Date(o):o.length&&(e=Je(o)),e==null||e.setHours(0,0,0,0)),e}function X(o,e,t){return t||!ae(o).length||!!(e==="date"&&T(o))||!!(e!=="date"&&Ye(o,r.ids.MENU))}var P=class extends ne{constructor(t){super(t);this._container=D(t,r.selectors.CALENDAR),this._dateView=D(t,r.selectors.DATE_VIEW),this._dayRow=D(t,r.selectors.DAY_ROW),this._dateGrid=D(t,r.selectors.DATE_GRID),this._menu=D(t,r.selectors.MENU)}toggleContainerAttribute(t,a,i){F(this._container,t,a,i)}registerMonthButtonListener(t){let a=this._container.querySelector(r.selectors.MONTH_BUTTON);a==null||a.addEventListener("click",t)}unregisterMonthButtonListener(t){let a=this._container.querySelector(r.selectors.MONTH_BUTTON);a==null||a.removeEventListener("click",t)}registerYearButtonListener(t){let a=this._container.querySelector(r.selectors.YEAR_BUTTON);a==null||a.addEventListener("click",t)}unregisterYearButtonListener(t){let a=this._container.querySelector(r.selectors.YEAR_BUTTON);a==null||a.removeEventListener("click",t)}registerMenuListener(t){this._menu.addEventListener(M.events.SELECT,t)}unregisterMenuListener(t){this._menu.removeEventListener(M.events.SELECT,t)}registerMenuFocusChangeEventListener(t){this._menu.addEventListener(M.events.FOCUS_CHANGE,t)}unregisterMenuFocusChangeEventListener(t){this._menu.addEventListener(M.events.FOCUS_CHANGE,t)}registerNextButtonListener(t){let a=this._container.querySelector(r.selectors.NEXT_BUTTON);a==null||a.addEventListener("click",t)}unregisterNextButtonListener(t){let a=this._container.querySelector(r.selectors.NEXT_BUTTON);a==null||a.removeEventListener("click",t)}registerPreviousButtonListener(t){let a=this._container.querySelector(r.selectors.PREVIOUS_BUTTON);a==null||a.addEventListener("click",t)}unregisterPreviousButtonListener(t){let a=this._container.querySelector(r.selectors.PREVIOUS_BUTTON);a==null||a.removeEventListener("click",t)}registerClearButtonListener(t){let a=this._container.querySelector(r.selectors.CLEAR_BUTTON);a==null||a.addEventListener("click",t)}unregisterClearButtonListener(t){let a=this._container.querySelector(r.selectors.CLEAR_BUTTON);a==null||a.removeEventListener("click",t)}registerTodayButtonListener(t){let a=this._container.querySelector(r.selectors.TODAY_BUTTON);a==null||a.addEventListener("click",t)}unregisterTodayButtonListener(t){let a=this._container.querySelector(r.selectors.TODAY_BUTTON);a==null||a.removeEventListener("click",t)}registerDateClickListener(t){this._dateGrid.addEventListener("click",t)}unregisterDateClickListener(t){this._dateGrid.removeEventListener("click",t)}registerKeydownListener(t){this._container.addEventListener("keydown",t)}registerHoverListener(t){this._dateGrid.addEventListener("mouseover",t)}unregisterHoverListener(t){this._dateGrid.removeEventListener("mouseover",t)}registerPreventFocusListener(t){this._container.addEventListener("mousedown",t)}unregisterPreventFocusListener(t){this._container.removeEventListener("mousedown",t)}setContainerClass(t,a){this._container.classList.toggle(t,a)}setHeader(){let t=this._container.querySelector(r.selectors.ACCESSIBLE_HEADER);t==null||t.remove();let a=this._container.querySelector(r.selectors.HEADER);a?a.replaceWith(G()):this._container.prepend(G())}removeHeader(){let t=this._container.querySelector(r.selectors.HEADER);t==null||t.remove();let a=this._container.querySelector(r.selectors.ACCESSIBLE_HEADER);a?a.replaceWith(U()):this._container.prepend(U())}setNextButtonDisabled(t){let a=this._container.querySelector(r.selectors.NEXT_BUTTON);a==null||a.toggleAttribute("disabled",t)}setPreviousButtonDisabled(t){let a=this._container.querySelector(r.selectors.PREVIOUS_BUTTON);a==null||a.toggleAttribute("disabled",t)}setNextButtonLabel(t){let a=this._container.querySelector(r.selectors.NEXT_BUTTON);a==null||a.setAttribute("aria-label",t);let i=this._container.querySelector(r.selectors.NEXT_BUTTON_TOOLTIP);i&&(i.innerHTML=t)}setPreviousButtonLabel(t){let a=this._container.querySelector(r.selectors.PREVIOUS_BUTTON);a==null||a.setAttribute("aria-label",t);let i=this._container.querySelector(r.selectors.PREVIOUS_BUTTON_TOOLTIP);i&&(i.innerHTML=t)}setMonthButtonPressed(t){let a=this._container.querySelector(r.selectors.MONTH_BUTTON);a&&(a.setAttribute("aria-pressed",t.toString()),this._container.classList.toggle(r.classes.MONTH_MENU_OPEN,t))}setYearButtonPressed(t){let a=this._container.querySelector(r.selectors.YEAR_BUTTON);a&&(a.setAttribute("aria-pressed",t.toString()),this._container.classList.toggle(r.classes.YEAR_MENU_OPEN,t))}setMonth(t,a){let i=this._container.querySelector(r.selectors.MONTH_BUTTON);if(i){let s=Be(t,a);i.replaceChildren(s[0],s[1]);return}let n=this._container.querySelector(r.selectors.ACCESSIBLE_MONTH);n&&(n.textContent=w(t,"long",a))}setYear(t,a){let i=this._container.querySelector(r.selectors.YEAR_BUTTON);if(i){let s=Ie(t,a);i.replaceChildren(s[0],s[1]);return}let n=this._container.querySelector(r.selectors.ACCESSIBLE_YEAR);n&&(n.textContent=v(t,"numeric",a))}setFooter(){this._container.querySelector(r.selectors.FOOTER)||this._container.appendChild(Le())}removeFooter(){var a;let t=this._container.querySelector(r.selectors.FOOTER);(a=t==null?void 0:t.parentNode)==null||a.removeChild(t)}setClearButton(){let t=this._container.querySelector(r.selectors.FOOTER);if(!t)return;t.querySelector(r.selectors.CLEAR_BUTTON)||t.prepend(Fe())}removeClearButton(){var a;let t=this._container.querySelector(r.selectors.CLEAR_BUTTON);(a=t==null?void 0:t.parentNode)==null||a.removeChild(t)}setTodayButton(){let t=this._container.querySelector(r.selectors.FOOTER);if(!t)return;t.querySelector(r.selectors.TODAY_BUTTON)||t.appendChild(Ne())}removeTodayButton(){var a;let t=this._container.querySelector(r.selectors.TODAY_BUTTON);(a=t==null?void 0:t.parentNode)==null||a.removeChild(t)}setDays(t,a){L(this._dayRow),t.forEach(i=>{let n=xe(i,a==null?void 0:a.locale);a!=null&&a.builder&&(n=a.builder(i,n)),this._dayRow.appendChild(n)})}setDates(t,a){L(this._dateGrid),We(t).forEach((i,n)=>{let s=Ce(i,n,a);this._dateGrid.appendChild(s)})}replaceDate(t,a){let i=this._dateGrid.querySelector(`#${m(t.date)}`);if(i){let n=Me(t,a==null?void 0:a.locale);a!=null&&a.builder?i.replaceWith(a.builder(t,n)):i.replaceWith(n)}}replaceDateWithSpacer(t){let a=this._dateGrid.querySelector(`#${m(t)}`);a==null||a.replaceWith(Te(t))}setDateDisabled(t,a){let i=this._dateGrid.querySelector(`#${m(t)}`);i&&(i.toggleAttribute("disabled",a),i.setAttribute("aria-disabled",a.toString()))}setDateSelected(t,a){let i=this._dateGrid.querySelector(`#${m(t)}`);i&&(i.classList.toggle(r.classes.DATE_SELECTED,a),i.setAttribute("aria-selected",a.toString()))}setWeekend(t,a){let i=this._dateGrid.querySelector(`#${m(t)}`),n=i==null?void 0:i.querySelector(r.selectors.DATE_INNER);!n||ee(n,"part",r.parts.WEEKEND,a)}appendDateAttribute(t,a,i){let n=this._dateGrid.querySelector(`#${m(t)}`);n&&te(n,a,i)}setMultiple(t){this._dateView.setAttribute("aria-multiselectable",t.toString())}setDateViewHidden(t){F(this._dateView,t,"aria-hidden",t.toString()),this.setAllDatesUnfocusable()}setRange(t){this._dateGrid.querySelectorAll(r.selectors.RANGE).forEach(i=>i.classList.remove(r.classes.RANGE)),t&&t.forEach(i=>{let n=this._dateGrid.querySelector(`#${m(i)}`);n==null||n.classList.add(r.classes.RANGE)})}setRangeStart(t){let a=this._dateGrid.querySelector(r.selectors.RANGE_START);if(a==null||a.classList.remove(r.classes.RANGE_START),!t)return;let i=this._dateGrid.querySelector(`#${m(t)}`);i==null||i.classList.add(r.classes.RANGE_START)}setRangeEnd(t){let a=this._dateGrid.querySelector(r.selectors.RANGE_END);if(a==null||a.classList.remove(r.classes.RANGE_END),!t)return;let i=this._dateGrid.querySelector(`#${m(t)}`);i==null||i.classList.add(r.classes.RANGE_END)}setActiveDate(t,a,i){let n=t.toDateString();this._dateGrid.querySelectorAll(r.selectors.DATE).forEach(u=>{let _=u.getAttribute(r.attributes.DATA_DATE)===n;q(u,_?0:-1,a,i)})}setAllDatesUnfocusable(){this._dateGrid.querySelectorAll(r.selectors.DATE).forEach(a=>q(a,-1,!1,!0))}setDateDescription(t,a){let i=this._dateGrid.querySelector(`#${m(t)}`);!i||F(i,!!a,a)}setDateTooltip(t,a){let i=this._dateGrid.querySelector(`#${m(t)}`);if(!i)return;let n=i.querySelector(r.selectors.TOOLTIP);n?a!=null&&a.length?n.textContent=a:n.remove():a!=null&&a.length&&i.prepend(Ae(a))}setEventWrapperOnDate(t,a){let i=this._dateGrid.querySelector(`#${m(t)}`);if(!i)return;let n=i.querySelector(r.selectors.EVENT_WRAPPER);n?a?L(n):n.remove():a&&i.appendChild(Oe(t))}setEvent(t,a){let i=this._dateGrid.querySelector(`#${ke(t.date)}`);i==null||i.appendChild(Se(t,a))}openMenuAsGrid(t,a){this._menu.openAsGrid(t,a)}openMenuAsList(t,a){this._menu.openAsList(t,a)}closeMenu(){this._menu.close()}setMenuAnimation(t){this._menu.animationType=t}animateIntoSelectionMenu(t,a,i){this._menu.animateIn(t,a,i)}moveMenuFocusDown(){this._menu.moveFocusDown()}moveMenuFocusBackward(){return this._menu.moveFocusBackward()}moveMenuFocusForward(){return this._menu.moveFocusForward()}moveMenuFocusUp(){this._menu.moveFocusUp()}selectFocusedMenuItem(){this._menu.selectFocusedItem()}setPreventFocusOnMenu(t){this._menu.preventFocus=t}};var z=class{constructor(e){this._adapter=e;this._dates=[];this._month=new Date().getMonth();this._year=new Date().getFullYear();this._showToday=!0;this._showOtherMonths=!1;this._fixedHeight=!1;this._events=[];this._value=[];this._mode="single";this._readonly=!1;this._selectionFollowsMonth=!1;this._rangeSelectionState="none";this._allowSingleDateRange=!0;this._min=null;this._max=null;this._minAttribute=null;this._maxAttribute=null;this._disabledDates=[];this._disabledDaysOfWeek=[];this._constrainToEnabled=!0;this._showHeader=!0;this._clearButton=!1;this._todayButton=!1;this._view="date";this._menuAnimation="scale";this._menuYear=null;this._listYears=!0;this._menuIncludedYear=new Date().getFullYear();this._menuYearsInView=null;this._yearRange=`-${r.numbers.DEFAULT_MIN_YEAR_OFFSET}:+${r.numbers.DEFAULT_MAX_YEAR_OFFSET}`;this._weekendDays=null;this._localeFirstDayOfWeek=0;this._localeWeekendDays=[];this._rtl=!1;this._preventFocus=!1;this._isInitialized=!1;this._clearButtonListener=()=>this._onClearClicked(),this._dateClickListener=t=>this._onDateClick(t),this._keydownListener=t=>this._onKeydown(t),this._hoverListener=t=>this._onHover(t),this._menuFocusChangeListener=t=>this._onMenuFocusChange(t),this._menuListener=t=>this._onMenuSelect(t),this._monthButtonListener=()=>this._onMonthButtonClicked(),this._nextButtonListener=()=>this._onNextButtonClicked(),this._preventFocusListener=t=>t.preventDefault(),this._previousButtonListener=()=>this._onPreviousButtonClicked(),this._todayButtonListener=()=>this._onTodayClicked(),this._yearButtonListener=()=>this._onYearButtonClicked()}initialize(){this._adapter.registerMenuListener(this._menuListener),this._adapter.registerMenuFocusChangeEventListener(this._menuFocusChangeListener),this._adapter.registerKeydownListener(this._keydownListener),this._applyMin(),this._applyMax(),this._applyFixedHeight(),this._applyReadOnly(),this._applyShowToday(),this._applyPreventFocus(),this._applyShowHeader(),this._applyMonth(),this._applyYear(),this._applyListYears(),this._applyMenuAnimation(),this._applyLocale(),this._applyClearButton(),this._applyTodayButton(),this._applyFirstDayOfWeek(),this._applyShowOtherMonths(),this._createDateView(),this._applyConstrainToEnabled(),this._applyAllowSingleDateRange(),this._applyMode(),this._applyYearRange(),this._applySelectionFollowsMonth(),this._isInitialized=!0}disconnect(){this._isInitialized=!1}_onMonthButtonClicked(){this._toggleMonthMenu()}_toggleMonthMenu(e=!1){this._view!=="month"?this._openMonthMenu(e):this._closeMenu(!1,e)}_onYearButtonClicked(){this._toggleYearMenu()}_toggleYearMenu(e=!1){this._view!=="year"?this._openYearMenu(e):this._closeMenu(!1,e)}_onMenuFocusChange(e){this._emitFocusChangeEvent(e.detail)}_onMenuSelect(e){switch(this._view){case"month":this._onMonthSelected(e.detail);break;case"year":this._onYearSelected(e.detail);break}}_onNextButtonClicked(){this._view==="date"?(this._goToNextMonth(),this._setFocusInMonth(1,!1)):this._view==="month"?this._goToNextYear():this._goToNextSetOfYears()}_onPreviousButtonClicked(){this._view==="date"?(this._goToPreviousMonth(),this._setFocusInMonth(2,!1)):this._view==="month"?this._goToPreviousYear():this._goToPreviousSetOfYears()}_onHover(e){if(this._mode==="range"){let t=T(e,!1);if(!t)return;let a=new Date(Date.parse(t.getAttribute(r.attributes.DATA_DATE)));p(a,this._month,this._year)&&this._setRangePreview(a)}}_onDateClick(e){let t=T(e,!1);if(!t)return;let a=t.getAttribute(r.attributes.DATA_DATE);if(!a)return;let i=new Date(a);p(i,this._month,this._year)&&(this._focusedDate=i,this._beforeDateSelected(i)),this._resumeTabindexOnDate(!1)}_onKeydown(e){switch(e.key){case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":this._handleArrowKey(e);break;case"Home":case"End":case"PageUp":case"PageDown":this._handleNavigationKey(e);break;case" ":case"Enter":this._handleEnterOrSpaceKey(e);break;case"m":case"M":e.preventDefault(),this._toggleMonthMenu(!0);break;case"y":case"Y":e.preventDefault(),this._toggleYearMenu(!0);break;case"t":case"T":case"n":case"N":e.preventDefault(),this.today();break;case"Delete":case"Backspace":e.preventDefault(),this._deselectAllDates();break;case"Escape":this._view!=="date"&&(e.preventDefault(),e.stopPropagation(),this._closeMenu(!1,!0));break}}_handleArrowKey(e){if(!X(e,this._view,this._preventFocus))return;e.preventDefault();let t;switch(e.key){case"ArrowLeft":t=this._rtl?"next":"previous";break;case"ArrowRight":t=this._rtl?"previous":"next";break;case"ArrowUp":t="up";break;case"ArrowDown":t="down";break}switch(t){case"previous":this._view==="date"?this._moveFocusToPreviousDate(!0):!this._adapter.moveMenuFocusBackward()&&this._canGoBackward()&&(this._view==="month"?this._goToPreviousYear(!0):this._goToPreviousSetOfYears(!0));break;case"next":this._view==="date"?this._moveFocusToNextDate(!0):!this._adapter.moveMenuFocusForward()&&this._canGoForward()&&(this._view==="month"?this._goToNextYear(!0):this._goToNextSetOfYears(!0));break;case"up":this._view==="date"?this._moveFocusToPreviousWeek(!0):this._adapter.moveMenuFocusUp();break;case"down":this._view==="date"?this._moveFocusToNextWeek(!0):this._adapter.moveMenuFocusDown();break}this._mode==="range"&&this._setRangePreview(this._focusedDate)}_handleNavigationKey(e){switch(e.preventDefault(),e.key){case"Home":if(this._view!=="date")break;e.shiftKey?this._moveFocusToFirstOfMonth(!0):this._moveFocusToFirstOfWeek(!0);break;case"End":if(this._view!=="date")break;e.shiftKey?this._moveFocusToLastOfMonth(!0):this._moveFocusToLastOfWeek(!0);break;case"PageUp":this._view==="date"?e.shiftKey?this._moveFocusToPreviousYear(!0):this._moveFocusToPreviousMonth(!0):this._view==="month"&&!e.shiftKey&&this._canGoBackward()?this._goToPreviousYear(!0):this._view==="year"&&!e.shiftKey&&this._canGoBackward()&&this._goToPreviousSetOfYears(!0);break;case"PageDown":this._view==="date"?e.shiftKey?this._moveFocusToNextYear(!0):this._moveFocusToNextMonth(!0):this._view==="month"&&!e.shiftKey&&this._canGoForward()?this._goToNextYear(!0):this._view==="year"&&!e.shiftKey&&this._canGoForward()&&this._goToNextSetOfYears(!0);break}}_handleEnterOrSpaceKey(e){if(!!X(e,this._view,this._preventFocus))switch(e.preventDefault(),this._view){case"date":if(this._readonly)break;this._setSelectOnFocusedDate();break;case"month":case"year":this._adapter.selectFocusedMenuItem();break}}_onMonthSelected(e){this._year!==this._menuYear&&this._menuYear!=null&&(this._year=this._menuYear,this._setYear()),this._month=e,this._setMonth(!0),this._trySetValueMonthAndYear(this._month,this._year,"month"),this._closeMenu(!0)}_onYearSelected(e){this._year=e,this._setYear(!0),this._trySetValueMonthAndYear(this._month,this._year,"year"),this._closeMenu(!0)}_onClearClicked(){this.clear()}_onTodayClicked(){this.today()}_trySetValueMonthAndYear(e,t,a="date"){var s;if(!this.selectionFollowsMonth||this._mode!=="single"||!((s=this._value)!=null&&s.length))return;let i=new Date(this._value[0]),n=_e(e,t);i.setDate(Math.min(i.getDate(),n)),i.setFullYear(t),i.setMonth(e),!h(i,this._getDisabledDateParams())&&this._beforeDateSelected(i,a)}_setInitialDateFocus(e=!1){let t=new Date;if(p(t,this._month,this._year)&&!h(t,this._getDisabledDateParams(!1))){this._setFocusedDate(t,e);return}let a=new Date(this._year,this._month,1);this._setFocusedDate(this._getNextEnabledDate(a,1,!1,!0,!0),e)}_resumeTabindexOnDate(e){return p(this._focusedDate,this._month,this._year)?(this._adapter.setActiveDate(this._focusedDate,e,this._preventFocus),this._emitFocusChangeEvent(this._focusedDate),!0):!1}_moveFocusToNextDate(e){this._setFocusedDate(this._getNextEnabledDate(this._focusedDate),e)}_moveFocusToPreviousDate(e){this._setFocusedDate(this._getPreviousEnabledDate(this._focusedDate),e)}_moveFocusToNextWeek(e){this._setFocusedDate(this._getNextEnabledDate(this._focusedDate,7,!0),e)}_moveFocusToPreviousWeek(e){this._setFocusedDate(this._getPreviousEnabledDate(this._focusedDate,7,!0),e)}_moveFocusToFirstOfWeek(e){this._setFocusedDate(this._getFirstEnabledDayOfWeek(this._focusedDate,!0),e)}_moveFocusToLastOfWeek(e){this._setFocusedDate(this._getLastEnabledDayOfWeek(this._focusedDate,!0),e)}_moveFocusToFirstOfMonth(e){let t=new Date(this._year,this._month,1);this._setFocusedDate(this._getNextEnabledDate(t,1,!1,!0),e)}_moveFocusToLastOfMonth(e){let t=new Date(this._year,this._month+1,0);this._setFocusedDate(this._getPreviousEnabledDate(t,1,!1,!0),e)}_moveFocusToNextMonth(e){let t=S(this._focusedDate,this._dates),a=(this._month+1)%12,i=a===0?this._year+1:this._year;this._setFocusedDate(this._getDateAtIndexInMonth(t,a,i),e)}_moveFocusToPreviousMonth(e){let t=S(this._focusedDate,this._dates),a=this._month===0?11:this._month-1,i=a===11?this._year-1:this._year;this._setFocusedDate(this._getDateAtIndexInMonth(t,a,i),e)}_moveFocusToNextYear(e){let t=S(this._focusedDate,this._dates);this._setFocusedDate(this._getDateAtIndexInMonth(t,this._month,this._year+1),e)}_moveFocusToPreviousYear(e){let t=S(this._focusedDate,this._dates);this._setFocusedDate(this._getDateAtIndexInMonth(t,this._month,this._year-1),e)}_setFocusInMonth(e,t){switch(e){case 1:this._moveFocusToFirstOfMonth(t);break;case 2:this._moveFocusToLastOfMonth(t);break;default:this._resumeTabindexOnDate(t);break}}_setSelectOnFocusedDate(){p(this._focusedDate,this._month,this._year)&&!h(this._focusedDate,this._getDisabledDateParams(!1))&&this._beforeDateSelected(this._focusedDate)}_emitFocusChangeEvent(e){let t={type:this._view,value:e};switch(this._view){case"date":t.selected=k(e,this._value),t.text=e.toLocaleDateString(this.locale,{month:"long",day:"2-digit",year:"numeric"});break;case"month":t.selected=this._month===e,t.text=w(e,"long");break;case"year":t.selected=this._year===e,t.text=v(e,"numeric");break}this._adapter.emitHostEvent(r.events.FOCUS_CHANGE,t)}_getPreviousEnabledDate(e,t=1,a=!1,i=!1,n=!1){let s=this._getDisabledDateParams(),u=new Date(e);if(i&&!h(u,s))return u;let _=e.getMonth(),f=!1;do u.setDate(u.getDate()-t),a&&(t=1),(n&&u.getMonth()!==_||this._min&&u<this._min)&&(f=!0);while(!f&&h(u,s));return f?null:u}_getNextEnabledDate(e,t=1,a=!1,i=!1,n=!1){let s=this._getDisabledDateParams(),u=new Date(e);if(i&&!h(u,s))return u;let _=e.getMonth(),f=!1;do u.setDate(u.getDate()+t),a&&(t=1),(n&&u.getMonth()!==_||this._max&&u>this._max)&&(f=!0);while(!f&&h(u,s));return f?null:u}_getClosestEnabledDate(e,t=!1,a=!1){if(this._min&&e<this._min)return this._getFirstEnabledDate();if(this._max&&e>this._max)return this._getLastEnabledDate();let i=this._getDisabledDateParams();if(a&&!h(e,i))return new Date(e);let n=e.getDate(),s,u=!1,_=!1,f=1;for(;!u||!_;){if(!u){if(s=new Date(e),s.setDate(n+f),u=!p(s,e.getMonth(),e.getFullYear()),!u&&!h(s,i))return s;this._max&&s>this._max&&(u=!0)}if(!_){if(s=new Date(e),s.setDate(n-f),_=!p(s,e.getMonth(),e.getFullYear()),!_&&!h(s,i))return s;this._min&&s<this._min&&(_=!0)}f+=1}return null}_getFirstEnabledDayOfWeek(e,t=!0){let a=O(e),i=this._getDisabledDateParams(t?a.getMonth()!==e.getMonth()||a.getFullYear()!==e.getFullYear():void 0),n=0;for(;n<7&&h(a,i);)a.setDate(a.getDate()+1),i.otherMonth=t?a.getMonth()!==e.getMonth()||a.getFullYear()!==e.getFullYear():void 0,n+=1;return n<7?a:null}_getLastEnabledDayOfWeek(e,t=!0){let a=Re(e),i=this._getDisabledDateParams(t?a.getMonth()!==e.getMonth()||a.getFullYear()!==e.getFullYear():void 0),n=0;for(;n<7&&h(a,i);)a.setDate(a.getDate()-1),i.otherMonth=t?a.getMonth()!==e.getMonth()||a.getFullYear()!==e.getFullYear():void 0,n+=1;return n<7?a:null}_getDateAtIndexInMonth(e,t,a){var n;let i=V(t,a,(n=this._firstDayOfWeek)!=null?n:this._localeFirstDayOfWeek);return this._min&&i[e]<this._min?this._getFirstEnabledDate():this._max&&i[e]>this._max?this._getLastEnabledDate():p(i[e],t,a)?this._getClosestEnabledDate(i[e],!0):e<20?this._getNextEnabledDate(i[e],7,!0):this._getPreviousEnabledDate(i[e],7,!0)}_getFirstEnabledDate(){return this._min?this._getNextEnabledDate(this._min,1,!1,!0):null}_getLastEnabledDate(){return this._max?this._getPreviousEnabledDate(this._max,1,!1,!0):null}_setFocusedDate(e,t){if(!e)return;let a=this._month!==e.getMonth(),i=this._year!==e.getFullYear();(a||i)&&(a&&(this._month=e.getMonth(),this._setMonth()),i&&(this._year=e.getFullYear(),this._setYear()),this._resetDateGrid()),this._focusedDate=e,this._adapter.setActiveDate(this._focusedDate,t,this._preventFocus),this._emitFocusChangeEvent(this._focusedDate)}_getDisabledDateParams(e){return{builder:this._disabledDateBuilder,disabledDates:this._disabledDates,disabledDaysOfWeek:this._disabledDaysOfWeek,maxDate:this._max,minDate:this._min,otherMonth:e}}_createDateView(){this._resetDateGrid(),(!this._focusedDate||!this._resumeTabindexOnDate(!1))&&this._setInitialDateFocus()}_openMonthMenu(e=!1){this._view="month",this._menuYear==null&&(this._menuYear=this._year),this._showHeader&&(this._setNavButtonLabels(),this._adapter.setMonthButtonPressed(!0),this._adapter.setYearButtonPressed(!1)),this._adapter.openMenuAsGrid(this._getMonthsForMenu(),e),this._adapter.setDateViewHidden(!0),this._setNavigationButtonStates(),this._adapter.emitHostEvent(r.events.VIEW_CHANGE,this._view)}_openYearMenu(e=!1){var t;this._view="year",this._menuIncludedYear=(t=this._menuYear)!=null?t:this._year,this._showHeader&&(this._setNavButtonLabels(),this._adapter.setMonthButtonPressed(!1),this._adapter.setYearButtonPressed(!0)),this._listYears?this._adapter.openMenuAsList(this._getYearsForMenu(),e):this._adapter.openMenuAsGrid(this._getYearsForMenu(),e),this._adapter.setDateViewHidden(!0),this._setNavigationButtonStates(),this._adapter.emitHostEvent(r.events.VIEW_CHANGE,this._view)}_getMonthsForMenu(){var t;let e={locale:this._locale,max:this._max,min:this._min,selectedMonth:this._year===this._menuYear?this._month:-1,selectedYear:(t=this._menuYear)!=null?t:this._year};return Ge(e)}_getYearsForMenu(){let e=this._min?this._min.getFullYear():this._minYear,t=this._max?this._max.getFullYear():this._maxYear,a={locale:this._locale,max:t,min:e,selectedYear:this._year,yearInView:this._menuIncludedYear},i=this._listYears?qe(a):Ue(a);return this._menuYearsInView={min:i[0].value,max:i[i.length-1].value},i}_closeMenu(e,t=!1){this._view="date",this._menuYear=null,this._adapter.closeMenu(),this._adapter.setDateViewHidden(!1),this._adapter.setYear(this._year,this._locale),e&&this._resetDateGrid(),this._showHeader&&(this._setNavButtonLabels(),this._setNavigationButtonStates(),this._adapter.setMonthButtonPressed(!1),this._adapter.setYearButtonPressed(!1)),this._resumeTabindexOnDate(t)||this._setInitialDateFocus(t),this._adapter.emitHostEvent(r.events.VIEW_CHANGE,this._view)}_setNavButtonLabels(){switch(this._view){case"date":this._adapter.setPreviousButtonLabel("Previous month"),this._adapter.setNextButtonLabel("Next month");break;case"month":this._adapter.setPreviousButtonLabel("Previous year"),this._adapter.setNextButtonLabel("Next year");break;case"year":this._adapter.setPreviousButtonLabel("Previous years"),this._adapter.setNextButtonLabel("Next years");break}}_resetDateGrid(){var t;this._dates=V(this._month,this._year,(t=this._firstDayOfWeek)!=null?t:this._localeFirstDayOfWeek);let e=this._dates.map(a=>this._getDateConfig(a));this._adapter.setDates(e,{builder:this._dateBuilder,locale:this._locale,showOtherMonths:this._showOtherMonths}),this._setNavigationButtonStates(),this._applyWeekendDays(),this._applyEvents(),this._mode==="range"&&(this._adapter.setRangeStart(this._value[0]),this._setRangePreview())}_getDateConfig(e){let t=p(e,this._month,this._year);return{date:new Date(e),selected:k(e,this._value),today:He(e),thisMonth:t,disabled:h(e,this._getDisabledDateParams(!t))}}_getCalendarDate(e){return{date:new Date(e),selected:k(e,this._value),events:W(e,this._events,this._eventBuilder)}}_setEventsOnDate(e){var i;if(!this._showOtherMonths&&!p(e,this._month,this._year)){this._adapter.setEventWrapperOnDate(e,!1);return}let t=W(e,this._events,this._eventBuilder);this._adapter.setEventWrapperOnDate(e,!!t.length),t.forEach((n,s)=>{s>2||this._adapter.setEvent(n,s===2&&t.length>3)});let a=t.length?K(t):"";this._tooltipBuilder&&(a=(i=this._tooltipBuilder(this._getCalendarDate(e),a))!=null?i:""),this._adapter.setDateTooltip(e,a)}_beforeDateSelected(e,t="date"){this._dateSelectCallback?Promise.resolve(this._dateSelectCallback(this._getCalendarDate(e))).then(a=>{a&&this._onDateSelected(e,void 0,t)}):this._onDateSelected(e,void 0,t)}_onDateSelected(e,t,a="date"){if(this._mode==="range"&&this._emitRangeSelectionEvent(e)){this._applyRangeSelection(e),this._rangeSelectionStore=void 0;return}let i=k(e,this._value),n={date:new Date(e),selected:i,type:a};!this._adapter.emitHostEvent(r.events.DATE_SELECT,n,!0,!0)||(this._rangeSelectionStore=void 0,this._mode==="single"?i&&!t||t===!1?this._deselectDate(e):(t===void 0||t===!0)&&(this._value.length&&this._deselectDate(this._value[0]),this._selectDate(e)):i&&!t||t===!1?this._deselectDate(e):(t===void 0||t===!0)&&this._selectDate(e),Y(this._value))}_emitRangeSelectionEvent(e){let t={date:new Date(e),selected:k(e,this._value),type:"date"};switch(this._rangeSelectionState){case"none":case"to":t.range=y([e]),t.rangeSelectionState="from";break;case"from":b(e,this._value[0])?this._allowSingleDateRange?(t.range=y([this._value[0],e]),t.rangeSelectionState="to"):(t.range=y([]),t.rangeSelectionState="none"):e<this._value[0]?(t.range=y([e]),t.rangeSelectionState="from"):(t.range=y([this._value[0],e]),t.rangeSelectionState="to");break}return this._adapter.emitHostEvent(r.events.DATE_SELECT,t,!0,!0)}_applyRangeSelection(e){switch(this._rangeSelectionState){case"none":case"to":this._deselectAllDates(),this._selectDate(e),this._adapter.setRange(null),this._adapter.setRangeStart(e),this._rangeSelectionState="from";break;case"from":b(e,this._value[0])?this._allowSingleDateRange?(this._value.push(e),this._rangeSelectionState="to"):(this._deselectDate(e),this._rangeSelectionState="none"):e<this._value[0]?(this._deselectDate(this._value[0]),this._selectDate(e),this._adapter.setRangeStart(e)):(this._selectDate(e),this._setRangePreview(e),this._rangeSelectionState="to");break}}_setRangePreview(e){switch(this._rangeSelectionState){case"from":if(!e)return;e<this._value[0]?this._adapter.setRange(null):(this._adapter.setRange(H(this._dates,this._value[0],e)),this._adapter.setRangeEnd(e));break;case"to":this._adapter.setRange(H(this._dates,this._value[0],this._value[1])),this._adapter.setRangeEnd(this._value[1]);break}}_clearRangePreview(){this._adapter.setRange(null),this._adapter.setRangeStart(null),this._adapter.setRangeEnd(null)}_selectDate(e){this._value.push(e),this._focusedDate=e,this._adapter.setDateSelected(e,!0)}_deselectDate(e){let t=this._value.findIndex(a=>b(a,e));t>-1&&this._value.splice(t,1),this._adapter.setDateSelected(e,!1)}_deselectAllDates(){this._value.forEach(e=>this._adapter.setDateSelected(e,!1)),this._clearRangePreview(),this._value=[]}_goToDate(e,t){let a=e.getFullYear(),i=e.getMonth();this._focusedDate=e,this._year!==a||this._month!==i?(this._month=i,this._setMonth(),this._year=a,this._setYear(),this._view!=="date"?this._closeMenu(!1,t):this._resetDateGrid()):this._view!=="date"&&this._closeMenu(!1,t),this._adapter.setActiveDate(e,t,this._preventFocus),this._emitFocusChangeEvent(this._focusedDate)}_goToNextMonth(){this._month<11?this._month+=1:(this._month=0,this._year+=1,this._setYear()),this._setMonth(),this._resetDateGrid()}_goToPreviousMonth(){this._month>0?this._month-=1:(this._month=11,this._year-=1,this._setYear()),this._setMonth(),this._resetDateGrid()}_goToNextYear(e=!1){this._view==="month"?(this._menuYear&&(this._menuYear+=1,this._setMenuYear()),this._adapter.animateIntoSelectionMenu(this._getMonthsForMenu(),this._rtl?"left":"right",e)):(this._year+=1,this._setYear(),this._resetDateGrid())}_goToPreviousYear(e=!1){this._view==="month"?(this._menuYear&&(this._menuYear-=1,this._setMenuYear()),this._adapter.animateIntoSelectionMenu(this._getMonthsForMenu(),this._rtl?"right":"left",e)):(this._year-=1,this._setYear(),this._resetDateGrid())}_goToNextSetOfYears(e=!1){this._menuIncludedYear+=r.numbers.YEARS_IN_VIEW,this._adapter.animateIntoSelectionMenu(this._getYearsForMenu(),this._rtl?"left":"right",e),this._setNavigationButtonStates()}_goToPreviousSetOfYears(e=!1){this._menuIncludedYear-=r.numbers.YEARS_IN_VIEW,this._adapter.animateIntoSelectionMenu(this._getYearsForMenu(),this._rtl?"right":"left",e),this._setNavigationButtonStates()}_canGoBackward(e){var t;if(!e&&!this._constrainToEnabled)return!0;switch(this._view){case"date":return!this._min||this._min<new Date(this._year,this._month,1);case"month":let a=(t=this._min)==null?void 0:t.getFullYear();return this._menuYear!=null&&(a==null||a<this._menuYear);case"year":return!!this._menuYearsInView&&this._minYear<this._menuYearsInView.min;default:return!1}}_canGoForward(e){var t;if(!e&&!this._constrainToEnabled)return!0;switch(this._view){case"date":return!this._max||this._max>he(this._month,this._year);case"month":let a=(t=this._max)==null?void 0:t.getFullYear();return this._menuYear!=null&&(a==null||a>this._menuYear);case"year":return!!this._menuYearsInView&&this._maxYear>this._menuYearsInView.max;default:return!1}}_setNavigationButtonStates(){if(!!this._showHeader){if(!this._constrainToEnabled){this._adapter.setPreviousButtonDisabled(!1),this._adapter.setNextButtonDisabled(!1);return}this._adapter.setPreviousButtonDisabled(!this._canGoBackward()),this._adapter.setNextButtonDisabled(!this._canGoForward())}}_setMonth(e){this._adapter.setMonth(this._month,this._locale),this._adapter.setHostAttribute(r.attributes.MONTH,this._month.toString()),this._isInitialized&&(this._setNavigationButtonStates(),this._adapter.emitHostEvent(r.events.MONTH_CHANGE,{month:this._month,userSelected:e!=null?e:!1,year:this._year}))}_setYear(e){this._adapter.setYear(this._year,this._locale),this._adapter.setHostAttribute(r.attributes.YEAR,this._year.toString()),this._isInitialized&&(this._setNavigationButtonStates(),this._adapter.emitHostEvent(r.events.MONTH_CHANGE,{month:this._month,userSelected:e!=null?e:!1,year:this._year}))}_setMenuYear(){this._menuYear!=null&&(this._setNavigationButtonStates(),this._adapter.setYear(this._menuYear,this._locale))}_applyAllowSingleDateRange(){this._adapter.toggleHostAttribute(r.attributes.ALLOW_SINGLE_DATE_RANGE,this._allowSingleDateRange),this._adapter.setContainerClass(r.classes.ALLOW_SINGLE_DATE_RANGE,this._allowSingleDateRange)}_applyClearButton(){this._adapter.toggleHostAttribute(r.attributes.CLEAR_BUTTON,!0,this._clearButton.toString()),this._clearButton?(this._adapter.setFooter(),this._adapter.setClearButton(),this._adapter.registerClearButtonListener(this._clearButtonListener)):(this._adapter.unregisterClearButtonListener(this._clearButtonListener),this._adapter.removeClearButton(),this._todayButton||this._adapter.removeFooter())}_applyConstrainToEnabled(){this._adapter.toggleHostAttribute(r.attributes.CONSTRAIN_TO_ENABLED,!0,this._constrainToEnabled.toString()),this._isInitialized&&this._setNavigationButtonStates()}_applyDateBuilder(){this._view==="date"&&(this._resetDateGrid(),this._resumeTabindexOnDate(!1))}_applyDayBuilder(){var e;this._adapter.setDays(N((e=this._firstDayOfWeek)!=null?e:this._localeFirstDayOfWeek),{builder:this._dayBuilder,locale:this._locale})}_applyDisabledDates(){switch(this._view){case"date":this._dates.forEach(e=>{let t=p(e,this._month,this._year),a=this._getDisabledDateParams(!t);this._adapter.setDateDisabled(e,h(e,a))});break;case"month":this._openMonthMenu();break;case"year":this._openYearMenu();break}this._setNavigationButtonStates()}_applyEvents(){this._view==="date"&&this._dates.forEach(e=>{this._setEventsOnDate(e)})}_applyFirstDayOfWeek(){var e,t;this._adapter.toggleHostAttribute(r.attributes.FIRST_DAY_OF_WEEK,A(this._firstDayOfWeek),((e=this._firstDayOfWeek)!=null?e:0).toString()),this._adapter.setDays(N((t=this._firstDayOfWeek)!=null?t:this._localeFirstDayOfWeek),{builder:this._dayBuilder,locale:this._locale}),this._isInitialized&&this._view==="date"&&(this._resetDateGrid(),this._resumeTabindexOnDate(!1))}_applyFixedHeight(){this._adapter.toggleHostAttribute(r.attributes.FIXED_HEIGHT,this._fixedHeight),this._adapter.setContainerClass(r.classes.FIXED_HEIGHT,this._fixedHeight)}_applyListYears(){this._adapter.toggleHostAttribute(r.attributes.LIST_YEARS,this._listYears),this._isInitialized&&this._view==="year"&&this._openYearMenu()}_applyLocale(){var e;if(this._adapter.toggleHostAttribute(r.attributes.LOCALE,!!this._locale,this._locale),this._adapter.toggleContainerAttribute(!!this._locale,"lang",this._locale),this._localeFirstDayOfWeek=De(this._locale),this._localeWeekendDays=we(this._locale),this._applyRtl(),this._isInitialized)switch(this._adapter.setMonth(this._month,this._locale),this._adapter.setYear(this._year,this._locale),this._view){case"date":this._adapter.setDays(N((e=this._firstDayOfWeek)!=null?e:this._localeFirstDayOfWeek),{builder:this._dayBuilder,locale:this._locale}),this._resetDateGrid(),this._resumeTabindexOnDate(!1);break;case"month":this._openMonthMenu();break;case"year":this._openYearMenu();break}}_applyMenuAnimation(){this._adapter.setHostAttribute(r.attributes.MENU_ANIMATION,this._menuAnimation),this._adapter.setMenuAnimation(this._menuAnimation)}_applyMin(){if(this._adapter.toggleHostAttribute(r.attributes.MIN,!!this._minAttribute,this._minAttribute),this._min&&(this._min.getMonth()>this._month||this._min.getFullYear()>this._year)&&(this._year=this._min.getFullYear(),this._month=this._min.getMonth()),this._isInitialized&&(this._applyDisabledDates(),this._min&&this._min>this._focusedDate)){let e=this._getFirstEnabledDate();e&&this._goToDate(e,!1)}}_applyMax(){if(this._adapter.toggleHostAttribute(r.attributes.MAX,!!this._maxAttribute,this._maxAttribute),this._max&&this._max.getMonth()<this._month&&(this._month=this._max.getMonth()),this._isInitialized&&(this._applyDisabledDates(),this._max&&this._max<this._focusedDate)){let e=this._getLastEnabledDate();e&&this._goToDate(e,!1)}}_applyMode(e){switch(this._mode){case"single":this._applySingleMode();break;case"multiple":this._applyMultipleMode(e==="range");break;case"range":this._applyRangeMode();break}this._mode!=="range"&&(this._rangeSelectionState="none",this._adapter.unregisterHoverListener(this._hoverListener),this._clearRangePreview())}_applySingleMode(){if(this._adapter.setHostAttribute(r.attributes.MODE,"single"),this._adapter.setMultiple(!1),this._value.length>1)for(let e=this._value.length-2;e>=0;e-=1)this._deselectDate(this._value[e])}_applyMultipleMode(e=!1){if(this._adapter.setHostAttribute(r.attributes.MODE,"multiple"),this._adapter.setMultiple(!0),e){let t=Ve(this._value,this._getDisabledDateParams());this._deselectAllDates(),t.forEach(a=>{this._selectDate(a)})}}_applyRangeMode(){var t,a;this._adapter.setHostAttribute(r.attributes.MODE,"range"),this._adapter.setMultiple(!1);let e=R(this._value);this._deselectAllDates(),e.forEach(i=>{this._selectDate(i)}),this._rangeSelectionState=this._value[0]?this._value[1]?"to":"from":"none",this._adapter.registerHoverListener(this._hoverListener),this._adapter.setRange(H(this._dates,this._value[0],this._value[1])),this._adapter.setRangeStart((t=this._value[0])!=null?t:null),this._adapter.setRangeEnd((a=this._value[1])!=null?a:null)}_applyMonth(){this._setMonth(),this._isInitialized&&this._view==="date"&&(this._resetDateGrid(),this._moveFocusToFirstOfMonth(!1))}_applyPreventFocus(){this._adapter.toggleHostAttribute(r.attributes.PREVENT_FOCUS,this._preventFocus),this._adapter.setContainerClass(r.classes.PREVENT_FOCUS,this._preventFocus),this._adapter.setPreventFocusOnMenu(this._preventFocus),this._preventFocus?this._adapter.registerPreventFocusListener(this._preventFocusListener):this._adapter.unregisterPreventFocusListener(this._preventFocusListener),this._isInitialized&&this._view==="date"&&this._resumeTabindexOnDate(!1)}_applyReadOnly(){this._adapter.toggleHostAttribute(r.attributes.READONLY,this._readonly),this._adapter.toggleHostAttribute("aria-readonly",this._readonly,"true"),this._adapter.setContainerClass(r.classes.READONLY,this._readonly),this._readonly?(this._adapter.unregisterDateClickListener(this._dateClickListener),this._adapter.unregisterHoverListener(this._hoverListener)):(this._adapter.registerDateClickListener(this._dateClickListener),this._mode==="range"&&this._adapter.registerHoverListener(this._hoverListener))}_applyRtl(){this._rtl=Ee(this._locale),this._adapter.setContainerClass(r.classes.RTL,this._rtl),this._adapter.toggleContainerAttribute(this._rtl,"dir","rtl")}_applySelectionFollowsMonth(){this._adapter.setHostAttribute(r.attributes.SELECTION_FOLLOWS_MONTH,this._selectionFollowsMonth.toString())}_applyShowHeader(){this._adapter.toggleHostAttribute(r.attributes.SHOW_HEADER,this._showHeader,this._showHeader.toString()),this._showHeader?(this._adapter.setHeader(),this._adapter.registerMonthButtonListener(this._monthButtonListener),this._adapter.registerNextButtonListener(this._nextButtonListener),this._adapter.registerPreviousButtonListener(this._previousButtonListener),this._adapter.registerYearButtonListener(this._yearButtonListener),this._setNavButtonLabels()):(this._adapter.unregisterMonthButtonListener(this._monthButtonListener),this._adapter.unregisterNextButtonListener(this._nextButtonListener),this._adapter.unregisterPreviousButtonListener(this._previousButtonListener),this._adapter.unregisterYearButtonListener(this._yearButtonListener),this._adapter.removeHeader()),this._isInitialized&&(this._adapter.setMonth(this._month,this._locale),this._adapter.setYear(this._year,this._locale),this._setNavigationButtonStates())}_applyShowOtherMonths(){if(this._adapter.toggleHostAttribute(r.attributes.SHOW_OTHER_MONTHS,this._showOtherMonths),this._isInitialized&&this._view==="date"){let e=!1;this._dates.forEach((t,a)=>{p(t,this._month,this._year)||((a===r.numbers.PENULTIMATE_WEEK_BEGIN_INDEX||a===r.numbers.FINAL_WEEK_BEGIN_INDEX)&&(e=!0),this._showOtherMonths&&!e?this._adapter.replaceDate(this._getDateConfig(t),{builder:this._dateBuilder,locale:this._locale}):this._adapter.replaceDateWithSpacer(t),this._setEventsOnDate(t),this._applyWeekendDays())})}}_applyShowToday(){this._adapter.toggleHostAttribute(r.attributes.SHOW_TODAY,this._showToday),this._adapter.setContainerClass(r.classes.SHOW_TODAY,this._showToday)}_applyTodayButton(){this._adapter.toggleHostAttribute(r.attributes.TODAY_BUTTON,!0,this._todayButton.toString()),this._todayButton?(this._adapter.setFooter(),this._adapter.setTodayButton(),this._adapter.registerTodayButtonListener(this._todayButtonListener)):(this._adapter.unregisterTodayButtonListener(this._todayButtonListener),this._adapter.removeTodayButton(),this._clearButton||this._adapter.removeFooter())}_applyTooltipBuilder(){this._view==="date"&&this._dates.forEach(e=>{var i;if(!this._showOtherMonths&&!p(e,this._month,this._year))return;let t=W(e,this._events,this._eventBuilder),a=K(t);this._tooltipBuilder&&(a=(i=this._tooltipBuilder(this._getCalendarDate(e),a))!=null?i:""),this._adapter.setDateTooltip(e,a)})}_applyWeekendDays(){var t;let e=(t=this._weekendDays)!=null?t:this._localeWeekendDays;this._view==="date"&&this._dates.forEach(a=>{let i=a.getDay();this._adapter.setWeekend(a,(this._showOtherMonths||p(a,this._month,this._year))&&e.includes(i))})}_applyValue(e){e=e.map(t=>new Date(t)),Y(e),this._deselectAllDates(),e.forEach(t=>this._selectDate(t)),this._mode==="range"&&(this._rangeSelectionState=this._value.length===2?"to":this._value.length===1?"from":"none",this._clearRangePreview(),this._adapter.setRangeStart(this._value[0]),this._setRangePreview())}_applyView(){switch(this._adapter.setHostAttribute(r.attributes.VIEW,this._view),this._view){case"date":this._closeMenu();break;case"month":this._openMonthMenu();break;case"year":this._openYearMenu();break}}_applyYear(){this._setYear(),this._isInitialized&&this._view==="date"&&(this._resetDateGrid(),this._moveFocusToFirstOfMonth(!1))}_applyYearRange(){this._adapter.setHostAttribute(r.attributes.YEAR_RANGE,this._yearRange);let e=ze(this._yearRange);this._minYear=e.min,this._maxYear=e.max,this._view==="year"&&(this._openYearMenu(),this._setNavigationButtonStates())}get activeDate(){return new Date(this._focusedDate)}get allowSingleDateRange(){return this._allowSingleDateRange}set allowSingleDateRange(e){this._allowSingleDateRange!==e&&(this._allowSingleDateRange=e,this._applyAllowSingleDateRange())}get clearButton(){return this._clearButton}set clearButton(e){this._clearButton!==e&&(this._clearButton=e,this._isInitialized&&this._applyClearButton())}get clearCallback(){return this._clearCallback}set clearCallback(e){this._clearCallback=e}get constrainToEnabled(){return this._constrainToEnabled}set constrainToEnabled(e){this._constrainToEnabled!==e&&(this._constrainToEnabled=e,this._isInitialized&&this._applyConstrainToEnabled())}get dateBuilder(){return this._dateBuilder}set dateBuilder(e){this._dateBuilder=e,this._isInitialized&&this._applyDateBuilder()}get dateSelectCallback(){return this._dateSelectCallback}set dateSelectCallback(e){this._dateSelectCallback=e}get dayBuilder(){return this.dayBuilder}set dayBuilder(e){this._dayBuilder=e,this._isInitialized&&this._applyDayBuilder()}get disabledDateBuilder(){return this._disabledDateBuilder}set disabledDateBuilder(e){this._disabledDateBuilder=e,this._isInitialized&&this._applyDisabledDates()}get disabledDates(){let e=this._disabledDates.map(t=>new Date(t));return e.length?e:null}set disabledDates(e){let t=e?C(e)?e:[e]:[];this._disabledDates=t.map(a=>{let i=new Date(a);return i.setHours(0,0,0,0),i}),this._isInitialized&&this._applyDisabledDates()}get disabledDaysOfWeek(){return this._disabledDaysOfWeek.length?[...this._disabledDaysOfWeek]:null}set disabledDaysOfWeek(e){this._disabledDaysOfWeek=A(e)?C(e)?e:[e]:[],this._isInitialized&&this._applyDisabledDates()}get eventBuilder(){return this._eventBuilder}set eventBuilder(e){this._eventBuilder=e,this._isInitialized&&this._applyEvents()}get events(){return this._events?[...this._events]:null}set events(e){this._events=e!=null&&e.length?[...e]:[],this._isInitialized&&this._applyEvents()}get firstDayOfWeek(){return this._firstDayOfWeek}set firstDayOfWeek(e){this._firstDayOfWeek!==e&&(this._firstDayOfWeek=A(e)?+e:e,this._isInitialized&&this._applyFirstDayOfWeek())}get fixedHeight(){return this._fixedHeight}set fixedHeight(e){this._fixedHeight!==e&&(this._fixedHeight=e,this._isInitialized&&this._applyFixedHeight())}get listYears(){return this._listYears}set listYears(e){this._listYears!==e&&(this._listYears=e,this._applyListYears())}get locale(){return this._locale}set locale(e){typeof e=="string"&&!e.length&&(e=void 0),this._locale!==e&&(this._locale=e,this._isInitialized&&this._applyLocale())}get max(){return this._max}set max(e){var t;this._maxAttribute!==e&&(this._maxAttribute=(t=e==null?void 0:e.toString())!=null?t:null,this._max=$(e),this._applyMax())}get menuAnimation(){return this._menuAnimation}set menuAnimation(e){this._menuAnimation!==e&&(this._menuAnimation=e,this._isInitialized&&this._applyMenuAnimation())}get min(){return this._min}set min(e){var t;this._minAttribute!==e&&(this._minAttribute=(t=e==null?void 0:e.toString())!=null?t:null,this._min=$(e),this._applyMin())}get mode(){return this._mode}set mode(e){if(this._mode!==e){let t=this._mode;this._mode=e,this._isInitialized&&this._applyMode(t)}}get month(){return this._month}set month(e){if(this._month!==e){let t=isNaN(+e)?this._month:+e;if(this._month===t)return;this._month=+e,this._isInitialized&&this._applyMonth()}}get preventFocus(){return this._preventFocus}set preventFocus(e){this._preventFocus!==e&&(this._preventFocus=e,this._isInitialized&&this._applyPreventFocus())}get readonly(){return this._readonly}set readonly(e){this._readonly!==e&&(this._readonly=e,this._isInitialized&&this._applyReadOnly())}get selectionFollowsMonth(){return this._selectionFollowsMonth}set selectionFollowsMonth(e){this._selectionFollowsMonth!==e&&(this._selectionFollowsMonth=e,this._isInitialized&&this._applySelectionFollowsMonth())}get showHeader(){return this._showHeader}set showHeader(e){this._showHeader!==e&&(this._showHeader=e,this._isInitialized&&this._applyShowHeader())}get showOtherMonths(){return this._showOtherMonths}set showOtherMonths(e){this._showOtherMonths!==e&&(this._showOtherMonths=e,this._isInitialized&&this._applyShowOtherMonths())}get showToday(){return this._showToday}set showToday(e){this._showToday!==e&&(this._showToday=e,this._isInitialized&&this._applyShowToday())}get todayButton(){return this._todayButton}set todayButton(e){this._todayButton!==e&&(this._todayButton=e,this._isInitialized&&this._applyTodayButton())}get todayCallback(){return this._todayCallback}set todayCallback(e){this._todayCallback=e}get tooltipBuilder(){return this._tooltipBuilder}set tooltipBuilder(e){this._tooltipBuilder=e,this._isInitialized&&this._applyTooltipBuilder()}get value(){var t;if(this._mode==="range")return(t=this._rangeSelectionStore)!=null?t:y(this._value);let e=this._value.map(a=>new Date(a));return this._mode==="multiple"?e:e.length?e[0]:null}set value(e){let t=[];if(this._rangeSelectionStore=void 0,!e||Array.isArray(e)&&!e.length)this._value=[];else if(Array.isArray(e))switch(this._mode){case"single":t=[e[0]];break;case"multiple":t=e;break;case"range":let a=R(e);t.push(a[0]),a.length>1&&t.push(a[1]);break}else B(new Date(e))?t=[e]:(this._rangeSelectionStore=new E(e),t=Pe(e));this._applyValue(t)}get view(){return this._view}set view(e){this._view!==e&&(this._view=e,this._applyView())}get weekendDays(){return this._weekendDays?[...this._weekendDays]:null}set weekendDays(e){var t;this._weekendDays=(t=e==null?void 0:e.map(a=>+a))!=null?t:null,this._isInitialized&&this._applyWeekendDays()}get year(){return this._year}set year(e){if(this._year!==e){let t=isNaN(+e)?this._year:+e;if(this._year===t)return;this._year=t,this._isInitialized&&this._applyYear()}}get yearRange(){return this._yearRange}set yearRange(e){this._yearRange!==e&&(this._yearRange=e,this._isInitialized&&this._applyYearRange())}clear(){this._deselectAllDates(),this._clearCallback&&this._clearCallback()}deselectDate(e,t){this._onDateSelected(e,!1),t&&(this._focusedDate=e,this._resumeTabindexOnDate(!0))}goToDate(e,t){this._goToDate(e,t!=null?t:!1)}handleExternalKeyEvent(e){this._onKeydown(e)}layout(){this._applyFirstDayOfWeek(),this._createDateView(),this._applyShowHeader(),this._applyConstrainToEnabled()}selectDate(e,t){this._onDateSelected(e,!0),t&&(this._focusedDate=e,this._resumeTabindexOnDate(!0))}setActiveDate(e,t){return this._dates.some(a=>b(a,e)&&(this._showOtherMonths||p(a,this._month,this._year)))?(this._goToDate(e,t!=null?t:!1),!0):!1}today(){let e=new Date;e.setHours(0,0,0,0),this._goToDate(e,!0),this._todayCallback&&this._todayCallback()}toggleDate(e,t){this._onDateSelected(e)}};var Qe='<template><div class="forge-calendar" part="root"><div id="view" class="forge-calendar__view" part="view"><div id="date-view" class="forge-calendar__date-view" role="grid" part="date-view"><div role="rowgroup" part="date-view-container"><div id="day-row" class="forge-calendar__date-view__row" role="row" part="date-view-row"></div></div><div id="date-grid" class="forge-calendar__date-grid" role="rowgroup" part="date-grid-container"></div></div><forge-calendar-menu id="menu" part="calendar-menu"></forge-calendar-menu></div></div></template>',et='.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:0;opacity:var(--mdc-elevation-overlay-opacity, 0);-webkit-transition:opacity 280ms cubic-bezier(.4, 0, .2, 1);transition:opacity 280ms cubic-bezier(.4, 0, .2, 1);background-color:#fff;background-color:var(--mdc-elevation-overlay-color,#fff)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle}.forge-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:active{outline:0}.forge-button:hover{cursor:pointer}.forge-button:disabled{cursor:default;pointer-events:none}.forge-button .forge-button__icon{margin-left:0;margin-right:8px;display:inline-block;font-size:1.125rem;height:1.125rem;vertical-align:top;width:1.125rem}.forge-button .forge-button__icon[dir=rtl],[dir=rtl] .forge-button .forge-button__icon{margin-left:8px;margin-right:0}.forge-button__label~.forge-button__icon{margin-left:8px;margin-right:0}.forge-button__label~.forge-button__icon[dir=rtl],[dir=rtl] .forge-button__label~.forge-button__icon{margin-left:0;margin-right:8px}svg.forge-button__icon{fill:currentColor}.forge-button--outlined .forge-button__icon,.forge-button--raised .forge-button__icon,.forge-button--unelevated .forge-button__icon{margin-left:-4px;margin-right:8px}.forge-button--outlined .forge-button__icon[dir=rtl],.forge-button--raised .forge-button__icon[dir=rtl],.forge-button--unelevated .forge-button__icon[dir=rtl],[dir=rtl] .forge-button--outlined .forge-button__icon,[dir=rtl] .forge-button--raised .forge-button__icon,[dir=rtl] .forge-button--unelevated .forge-button__icon{margin-left:8px;margin-right:-4px}.forge-button--outlined .forge-button__label~.forge-button__icon,.forge-button--raised .forge-button__label~.forge-button__icon,.forge-button--unelevated .forge-button__label~.forge-button__icon{margin-left:8px;margin-right:-4px}.forge-button--outlined .forge-button__label~.forge-button__icon[dir=rtl],.forge-button--raised .forge-button__label~.forge-button__icon[dir=rtl],.forge-button--unelevated .forge-button__label~.forge-button__icon[dir=rtl],[dir=rtl] .forge-button--outlined .forge-button__label~.forge-button__icon,[dir=rtl] .forge-button--raised .forge-button__label~.forge-button__icon,[dir=rtl] .forge-button--unelevated .forge-button__label~.forge-button__icon{margin-left:-4px;margin-right:8px}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-button .forge-button__ripple::after,.forge-button .forge-button__ripple::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-button .forge-button__ripple::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-button .forge-button__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-button.mdc-ripple-upgraded .forge-button__ripple::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-button.mdc-ripple-upgraded .forge-button__ripple::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-button.mdc-ripple-upgraded--unbounded .forge-button__ripple::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-button.mdc-ripple-upgraded--foreground-activation .forge-button__ripple::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-button.mdc-ripple-upgraded--foreground-deactivation .forge-button__ripple::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-button .forge-button__ripple::after,.forge-button .forge-button__ripple::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-button.mdc-ripple-upgraded .forge-button__ripple::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-button .forge-button__ripple{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;overflow:hidden}.forge-button:not(.forge-button--outlined) .forge-button__ripple{top:0;left:0}.forge-button--raised{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-transition:-webkit-box-shadow 280ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-box-shadow 280ms cubic-bezier(.4, 0, .2, 1);transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1);transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),-webkit-box-shadow 280ms cubic-bezier(.4, 0, .2, 1)}.forge-button--raised:focus,.forge-button--raised:hover{-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.forge-button--raised:active{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.forge-button--raised:disabled{-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.forge-button--outlined{border-style:solid}.forge-button{height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px);padding:0 8px 0 8px}.forge-button:not(:disabled){background-color:transparent}.forge-button:disabled{background-color:transparent}.forge-button:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button .forge-button__ripple::after,.forge-button .forge-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-button.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button:hover .forge-button__ripple::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-button.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-button:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-button .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--unelevated{padding:0 16px 0 16px;height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--unelevated:not(:disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5)}.forge-button--unelevated:disabled{background-color:rgba(0,0,0,.12);background-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-button--unelevated:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-button--unelevated:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button--unelevated .forge-button__ripple::after,.forge-button--unelevated .forge-button__ripple::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button--unelevated.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button--unelevated:hover .forge-button__ripple::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button--unelevated.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button--unelevated:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button--unelevated:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button--unelevated:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button--unelevated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button--unelevated .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--raised{padding:0 16px 0 16px;height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--raised:not(:disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5)}.forge-button--raised:disabled{background-color:rgba(0,0,0,.12);background-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-button--raised:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-button--raised:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button--raised .forge-button__ripple::after,.forge-button--raised .forge-button__ripple::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button--raised.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button--raised:hover .forge-button__ripple::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button--raised.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button--raised:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button--raised:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button--raised:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button--raised.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button--raised .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--outlined{height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px);padding:0 15px 0 15px;border-width:1px}.forge-button--outlined:not(:disabled){background-color:transparent}.forge-button--outlined:disabled{background-color:transparent}.forge-button--outlined:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-button--outlined:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button--outlined .forge-button__ripple::after,.forge-button--outlined .forge-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-button--outlined.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button--outlined:hover .forge-button__ripple::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-button--outlined.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button--outlined:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-button--outlined:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button--outlined:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-button--outlined.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-button--outlined .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--outlined:not(:disabled){border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-button--outlined:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-button--outlined .forge-button__ripple{top:-1px;left:-1px;border:1px solid transparent}.forge-button--dense{height:24px;margin-top:0;margin-bottom:0;height:1.5rem}forge-button{display:inline-block}forge-button[hidden]{display:none}forge-button[disabled]{cursor:not-allowed}a.forge-hyperlink{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5);text-decoration:none}a.forge-hyperlink:visited{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}a.forge-hyperlink[disabled]{pointer-events:none;cursor:default}a.forge-hyperlink:focus,a.forge-hyperlink:hover:not([disabled]){text-decoration:underline}button.forge-hyperlink{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5);cursor:pointer;border:none;background-color:transparent;font-size:inherit;padding:0;outline:0;text-align:left}button.forge-hyperlink[disabled]{pointer-events:none;cursor:default}button.forge-hyperlink:hover:not([disabled]){text-decoration:underline}.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.forge-calendar{width:100%;width:var(--forge-calendar-width,100%);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;position:relative}.forge-calendar__header{padding:0;padding:var(--forge-calendar-controls-padding,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.forge-calendar__footer{padding:0;padding:var(--forge-calendar-controls-padding,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.forge-calendar__view{position:relative}.forge-calendar__date-view{display:block}.forge-calendar__date-view__row{display:grid;grid-template-columns:repeat(7,1fr)}.forge-calendar__date-grid{display:grid}.forge-calendar__day{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;min-width:0;padding:0;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar__day::after{float:left;padding-top:100%;content:""}.forge-calendar__date{margin-top:2px;margin-top:var(--forge-calendar-row-gap,2px);min-width:0;padding:0;border-radius:50%;position:relative;outline:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar__date::after{float:left;padding-top:100%;content:""}.forge-calendar__date .mdc-ripple-surface{border-radius:inherit}.forge-calendar__date .mdc-ripple-surface::after,.forge-calendar__date .mdc-ripple-surface::before{position:absolute;width:calc(100% - 2px)!important;height:calc(100% - 2px)!important;top:calc(2px / 2)!important;left:calc(2px / 2)!important;border-radius:inherit!important}.forge-calendar__date__inner{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);position:absolute;width:calc(100% - 2px);height:calc(100% - 2px);top:calc(2px / 2);left:calc(2px / 2);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-calendar--show-today .forge-calendar__date--today:not([disabled]){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5);border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-calendar--show-today .forge-calendar__date--today .forge-calendar__date__inner{border-color:inherit;border-width:1px;border-style:solid;font-weight:700}.forge-calendar--show-today .forge-calendar__date--today.forge-calendar__date--selected{color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]){--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;cursor:pointer}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:""}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--unbounded .mdc-ripple-surface::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--foreground-activation .mdc-ripple-surface::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--foreground-deactivation .mdc-ripple-surface::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-surface--hover .mdc-ripple-surface::before,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):hover .mdc-ripple-surface::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--background-focused .mdc-ripple-surface::before,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):not(.mdc-ripple-upgraded):focus .mdc-ripple-surface::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):not(.mdc-ripple-upgraded) .mdc-ripple-surface::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):not(.mdc-ripple-upgraded):active .mdc-ripple-surface::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-calendar__date--selected:not([disabled]) .forge-calendar__date__inner{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-calendar__date--selected[disabled] .forge-calendar__date__inner{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);color:rgba(0,0,0,.12);color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date--selected:hover .forge-calendar__date__inner{opacity:.87}.forge-calendar__date--selected.mdc-ripple-upgraded--background-focused .forge-calendar__date__inner,.forge-calendar__date--selected:focus .forge-calendar__date__inner{opacity:.54}.forge-calendar__date[disabled]{color:rgba(0,0,0,.12);color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-calendar__date-spacer{pointer-events:none}.forge-calendar--fixed-height .forge-calendar__date-spacer{margin-top:2px;margin-top:var(--forge-calendar-row-gap,2px)}.forge-calendar--fixed-height .forge-calendar__date-spacer::after{float:left;padding-top:100%;content:""}.forge-calendar__range:not(.forge-calendar__date-spacer) .forge-calendar__range__target{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);position:absolute;width:100%;height:100%;opacity:.14;border-radius:0}.forge-calendar__range:not(.forge-calendar__date-spacer).forge-calendar__range--start .forge-calendar__range__target{border-top-left-radius:50%;border-bottom-left-radius:50%}.forge-calendar__range:not(.forge-calendar__date-spacer).forge-calendar__range--end .forge-calendar__range__target{border-top-right-radius:50%;border-bottom-right-radius:50%}.forge-calendar__range:not(.forge-calendar__range--start):first-of-type .forge-calendar__range__target{border-top-left-radius:4px;border-bottom-left-radius:4px}.forge-calendar__range:not(.forge-calendar__range--end):last-of-type .forge-calendar__range__target{border-top-right-radius:4px;border-bottom-right-radius:4px}.forge-calendar--allow-single-date-range .forge-calendar__range--start.forge-calendar__range--end .forge-calendar__range__target{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s;-webkit-transform:scale(1.15);transform:scale(1.15);-webkit-transform-origin:center;transform-origin:center}.forge-calendar__event{font-size:12px;font-size:var(--forge-calendar-event-dot-size, 12px)}.forge-calendar__event[data-event-theme=primary]{color:#3f51b5;color:var(--forge-calendar-theme-event-primary-accent,#3f51b5)}.forge-calendar__event[data-event-theme=secondary]{color:#ffc107;color:var(--forge-calendar-theme-event-secondary-accent,#ffc107)}.forge-calendar__event[data-event-theme=blue]{color:#2196f3;color:var(--forge-calendar-theme-event-blue-accent,#2196f3)}.forge-calendar__event[data-event-theme=light-green]{color:#8bc34a;color:var(--forge-calendar-theme-event-light-green-accent,#8bc34a)}.forge-calendar__event[data-event-theme=cyan]{color:#00bcd4;color:var(--forge-calendar-theme-event-cyan-accent,#00bcd4)}.forge-calendar__event[data-event-theme=teal]{color:#009688;color:var(--forge-calendar-theme-event-teal-accent,#009688)}.forge-calendar__event[data-event-theme=orange]{color:#ff9800;color:var(--forge-calendar-theme-event-orange-accent,#ff9800)}.forge-calendar__event[data-event-theme=blue-grey]{color:#607d8b;color:var(--forge-calendar-theme-event-blue-grey-accent,#607d8b)}.forge-calendar__event[data-event-theme=grey]{color:#9e9e9e;color:var(--forge-calendar-theme-event-grey-accent,#9e9e9e)}.forge-calendar__event[data-event-theme=red]{color:#f44336;color:var(--forge-calendar-theme-event-red-accent,#f44336)}.forge-calendar__event[data-event-theme=pink]{color:#e91e63;color:var(--forge-calendar-theme-event-pink-accent,#e91e63)}.forge-calendar__event[data-event-theme=purple]{color:#9c27b0;color:var(--forge-calendar-theme-event-purple-accent,#9c27b0)}.forge-calendar__event[data-event-theme=light-blue]{color:#03a9f4;color:var(--forge-calendar-theme-event-light-blue-accent,#03a9f4)}.forge-calendar__event[data-event-theme=deep-purple]{color:#673ab7;color:var(--forge-calendar-theme-event-deep-purple-accent,#673ab7)}.forge-calendar__event[data-event-theme=green]{color:#4caf50;color:var(--forge-calendar-theme-event-green-accent,#4caf50)}.forge-calendar__event[data-event-theme=lime]{color:#cddc39;color:var(--forge-calendar-theme-event-lime-accent,#cddc39)}.forge-calendar__event[data-event-theme=yellow]{color:#ffeb3b;color:var(--forge-calendar-theme-event-yellow-accent,#ffeb3b)}.forge-calendar__event[data-event-theme=brown]{color:#795548;color:var(--forge-calendar-theme-event-brown-accent,#795548)}.forge-calendar__event[data-event-theme=deep-orange]{color:#ff5722;color:var(--forge-calendar-theme-event-deep-orange-accent,#ff5722)}.forge-calendar__date[disabled] .forge-calendar__event{opacity:.14}.forge-calendar__event--overflow{color:#000;color:var(--mdc-theme-on-surface,#000);background-color:var(--mdc-theme-surface);border-radius:50%}.forge-calendar__event__wrapper{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;gap:2px;position:absolute;bottom:0;left:0;width:100%;padding-bottom:2px;pointer-events:none}.forge-calendar__date-spacer .forge-calendar__event__wrapper{display:none}.forge-calendar--rtl .forge-calendar__header forge-icon-button forge-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}#accessible-header{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}#month-button forge-icon{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.forge-calendar--month-menu-open #month-button forge-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}#year-button forge-icon{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.forge-calendar--year-menu-open #year-button forge-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host{--forge-calendar-event-stroke-color:#ffffff;--forge-calendar-event-stroke-color:var(--mdc-theme-surface, #ffffff);display:inline-block}:host([hidden]){display:none}:host([forge-popup-context=true]){--forge-calendar-event-stroke-color:#ffffff;--forge-calendar-event-stroke-color:var(--forge-theme-elevated-surface, #ffffff)}',l=class extends HTMLElement{constructor(){super();fe.define([de,ce,le,ue,se]),re(this,Qe,et),this._foundation=new z(new P(this))}static get observedAttributes(){return[r.attributes.ALLOW_SINGLE_DATE_RANGE,r.attributes.CLEAR_BUTTON,r.attributes.CONSTRAIN_TO_ENABLED,r.attributes.FIRST_DAY_OF_WEEK,r.attributes.FIXED_HEIGHT,r.attributes.LIST_YEARS,r.attributes.LOCALE,r.attributes.MAX,r.attributes.MENU_ANIMATION,r.attributes.MIN,r.attributes.MODE,r.attributes.MONTH,r.attributes.PREVENT_FOCUS,r.attributes.READONLY,r.attributes.SELECTION_FOLLOWS_MONTH,r.attributes.SHOW_HEADER,r.attributes.SHOW_OTHER_MONTHS,r.attributes.SHOW_TODAY,r.attributes.TODAY_BUTTON,r.attributes.VIEW,r.attributes.YEAR,r.attributes.YEAR_RANGE]}connectedCallback(){!this.hasAttribute(r.attributes.POPUP_CONTEXT)&&Q(this).some(t=>t.tagName.toLowerCase()==="forge-popup")&&this.setAttribute(r.attributes.POPUP_CONTEXT,"true"),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,a,i){switch(t){case r.attributes.ALLOW_SINGLE_DATE_RANGE:this.allowSingleDateRange=g(i);break;case r.attributes.CLEAR_BUTTON:this.clearButton=g(i);break;case r.attributes.CONSTRAIN_TO_ENABLED:this.constrainToEnabled=g(i);break;case r.attributes.FIRST_DAY_OF_WEEK:this.firstDayOfWeek=I(i);break;case r.attributes.FIXED_HEIGHT:this.fixedHeight=g(i);break;case r.attributes.LIST_YEARS:this.listYears=g(i);break;case r.attributes.LOCALE:this.locale=i;break;case r.attributes.MAX:this.max=i;break;case r.attributes.MENU_ANIMATION:this.menuAnimation=i;break;case r.attributes.MIN:this.min=i;break;case r.attributes.MODE:this.mode=i;break;case r.attributes.MONTH:this.month=I(i);break;case r.attributes.PREVENT_FOCUS:this.preventFocus=g(i);break;case r.attributes.READONLY:this.readonly=g(i);break;case r.attributes.SELECTION_FOLLOWS_MONTH:this.selectionFollowsMonth=g(i);break;case r.attributes.SHOW_HEADER:this.showHeader=g(i);break;case r.attributes.SHOW_OTHER_MONTHS:this.showOtherMonths=g(i);break;case r.attributes.SHOW_TODAY:this.showToday=g(i);break;case r.attributes.TODAY_BUTTON:this.todayButton=g(i);break;case r.attributes.VIEW:this.view=i;break;case r.attributes.YEAR:this.year=I(i);break;case r.attributes.YEAR_RANGE:this.yearRange=i;break}}clear(){this._foundation.clear()}deselectDate(t){this._foundation.deselectDate(new Date(t))}goToDate(t,a){this._foundation.goToDate(new Date(t),a)}handleKey(t){this._foundation.handleExternalKeyEvent(t)}layout(){this._foundation.layout()}selectDate(t){this._foundation.selectDate(new Date(t))}setActiveDate(t,a){return this._foundation.setActiveDate(new Date(t),a)}today(){this._foundation.today()}toggleDate(t,a){this._foundation.toggleDate(new Date(t),a)}};d([c({set:!1})],l.prototype,"activeDate",2),d([c()],l.prototype,"allowSingleDateRange",2),d([c()],l.prototype,"clearButton",2),d([c()],l.prototype,"clearCallback",2),d([c()],l.prototype,"constrainToEnabled",2),d([c()],l.prototype,"dateBuilder",2),d([c()],l.prototype,"dateSelectCallback",2),d([c()],l.prototype,"dayBuilder",2),d([c()],l.prototype,"disabledDateBuilder",2),d([c()],l.prototype,"disabledDates",2),d([c()],l.prototype,"disabledDaysOfWeek",2),d([c()],l.prototype,"eventBuilder",2),d([c()],l.prototype,"events",2),d([c()],l.prototype,"firstDayOfWeek",2),d([c()],l.prototype,"fixedHeight",2),d([c()],l.prototype,"listYears",2),d([c()],l.prototype,"locale",2),d([c()],l.prototype,"max",2),d([c()],l.prototype,"menuAnimation",2),d([c()],l.prototype,"min",2),d([c()],l.prototype,"mode",2),d([c()],l.prototype,"month",2),d([c()],l.prototype,"preventFocus",2),d([c()],l.prototype,"readonly",2),d([c()],l.prototype,"selectionFollowsMonth",2),d([c()],l.prototype,"showHeader",2),d([c()],l.prototype,"showOtherMonths",2),d([c()],l.prototype,"showToday",2),d([c()],l.prototype,"todayButton",2),d([c()],l.prototype,"todayCallback",2),d([c()],l.prototype,"tooltipBuilder",2),d([c()],l.prototype,"value",2),d([c()],l.prototype,"view",2),d([c()],l.prototype,"weekendDays",2),d([c()],l.prototype,"year",2),d([c()],l.prototype,"yearRange",2),l=d([oe({name:r.elementName,dependencies:[ve,ye,be,ge,me]})],l);var Ke=class extends pe{constructor(e){super(e)}_build(){return document.createElement(r.elementName)}onDateSelect(e){this._element.addEventListener(r.events.DATE_SELECT,e)}onFocusChange(e){this._element.addEventListener(r.events.FOCUS_CHANGE,e)}onMonthChange(e){this._element.addEventListener(r.events.MONTH_CHANGE,e)}onViewChange(e){this._element.addEventListener(r.events.VIEW_CHANGE,e)}};function qa(){ie(l)}export{V as a,_t as b,O as c,Re as d,ft as e,N as f,He as g,p as h,Ze as i,Y as j,We as k,y as l,Pe as m,R as n,H as o,K as p,Je as q,ze as r,Ge as s,Ue as t,qe as u,k as v,h as w,S as x,W as y,Ve as z,$ as A,X as B,P as C,z as D,l as E,Ke as F,qa as G};
7
+ //# sourceMappingURL=chunk.PWHMNJ5Y.js.map