@kyndryl-design-system/shidoka-applications 2.67.0 → 2.67.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.
@@ -6,7 +6,7 @@ type SupportedLocale = (typeof langsArray)[number];
6
6
  declare const DatePicker_base: (new (...args: any[]) => import("../../../common/mixins/form-input").FormMixinInterface) & typeof LitElement;
7
7
  /**
8
8
  * Datepicker: uses Flatpickr's datetime picker library -- `https://flatpickr.js.org`
9
- * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dataString: string, dates: date, source: string }`
9
+ * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dateString: string, dates: date, source: string }`
10
10
  * @slot tooltip - Slot for tooltip.
11
11
  * @attr {string} [name=''] - The name of the input, used for form submission.
12
12
  * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.js","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n updateEnableTime,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n getModalContainer,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nimport DatePickerStyles from './datepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n noDateSelected: 'No date selected',\n pleaseSelectValidDate: 'Please select a valid date',\n invalidDateFormat: 'Invalid date format provided',\n errorProcessing: 'Error processing date',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Datepicker: uses Flatpickr's datetime picker library -- `https://flatpickr.js.org`\n * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dataString: string, dates: date, source: string }`\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-picker')\nexport class DatePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DatePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /* Sets desired locale and, if supported, dynamically loads language lib */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For multiple mode, provide an array of date strings matching dateFormat. */\n @property({ type: Array })\n accessor defaultDate: string | string[] | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /** Sets datepicker form input value to required/required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /**\n * Sets the date/time value for the component.\n *\n * For controlled usage patterns, this property allows parent components to directly control the selected date.\n * When used together with defaultDate, value takes precedence if both are provided.\n *\n * In uncontrolled usage, this is populated automatically based on defaultDate and user selections.\n * @internal\n */\n override value: Date | Date[] | null = null;\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets flatpickr mode to select single (default), multiple dates. */\n @property({ type: String })\n accessor mode: 'single' | 'multiple' = 'single';\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets entire datepicker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor datePickerDisabled = false;\n\n /** Sets entire datepicker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24 hour formatting true/false.\n * Defaults to 12H for all `en-*` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of datepicker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Sets upper boundary of datepicker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: flatpickr.Instance | undefined;\n\n /**\n * Queries the anchor DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | any;\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n return (...args: Parameters<T>) => {\n if (timeout) window.clearTimeout(timeout);\n timeout = window.setTimeout(() => {\n func(...args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (this.flatpickrInstance) await this.initializeFlatpickr();\n }, 100);\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n\n if (!this.value && this.defaultDate) {\n this._hasInitialDefaultDate = true;\n }\n }\n\n override disconnectedCallback() {\n this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n }\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value) {\n if (Array.isArray(this.value)) {\n return (\n this.value.length > 0 && !this.value.every((date) => date === null)\n );\n }\n return true;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue(): void {\n if (this._internals && this._inputEl) {\n this._internals.setFormValue(this._inputEl.value);\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? `${this.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat);\n\n return html`\n <div class=${classMap(this.getDatepickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n ?readonly=${this.readonly}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.datePickerDisabled}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings?.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.datePickerDisabled}\n ?readonly=${!this.datePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n autocomplete=\"off\"\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${this.hasValue() && !this.readonly\n ? html`\n <kyn-button\n ?disabled=${this.datePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : html`<span\n class=\"input-icon ${this.datePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >${unsafeSVG(calendarIcon)}</span\n >`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.datePickerDisabled}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.datePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n getDatepickerClasses() {\n return {\n 'date-picker': true,\n 'date-picker__enable-time': this._enableTime,\n 'date-picker__multiple-select': this.mode === 'multiple',\n 'date-picker__disabled': this.datePickerDisabled,\n };\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n\n if (this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (this.mode === 'multiple') {\n this.value = [...processedDates];\n } else {\n this.value = processedDates[0];\n }\n }\n }\n }\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const values = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const nonEmptyValues = values.filter(\n (v) =>\n v !== null &&\n v !== undefined &&\n v !== '' &&\n !(typeof v === 'string' && v.trim() === '')\n );\n\n if (nonEmptyValues.length === 0) return [];\n\n const min = this.minDate\n ? this.parseDateString(this.minDate as string)\n : null;\n const max = this.maxDate\n ? this.parseDateString(this.maxDate as string)\n : null;\n\n const parsed = nonEmptyValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const valid = parsed.filter(\n (d): d is Date =>\n d instanceof Date &&\n !isNaN(d.getTime()) &&\n (!min || d >= min) &&\n (!max || d <= max)\n );\n\n if (valid.length !== parsed.length) {\n console.error('Invalid date(s) provided in defaultDate', valid);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return valid;\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n }\n\n if (changedProperties.has('value') && !this._isClearing) {\n const val = this.value;\n const isNull = val === null || (Array.isArray(val) && val.length === 0);\n\n if (isNull && this.flatpickrInstance) {\n this._isClearing = true;\n try {\n this.flatpickrInstance.clear();\n this._inputEl.value = '';\n } finally {\n this._isClearing = false;\n }\n } else if (this.flatpickrInstance && val != null) {\n const dates: Date[] = Array.isArray(val)\n ? val.filter((d): d is Date => d instanceof Date)\n : val instanceof Date\n ? [val]\n : [];\n\n if (dates.length > 0) {\n this.flatpickrInstance.setDate(dates, false);\n }\n }\n\n this.requestUpdate();\n }\n\n if (changedProperties.has('defaultDate') && !this._isClearing) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates.length > 0 && this.flatpickrInstance) {\n this.value =\n this.mode === 'multiple' ? [...processedDates] : processedDates[0];\n this.flatpickrInstance.setDate(processedDates, true);\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [y, m, d] = date.split('-').map(Number);\n return !isNaN(y) && !isNaN(m) && !isNaN(d)\n ? new Date(y, m - 1, d)\n : date;\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n this.flatpickrInstance && this.debouncedUpdate();\n }\n\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized && !this._isClearing) {\n this.debouncedUpdate();\n }\n }\n\n if (\n (changedProperties.has('datePickerDisabled') &&\n this.datePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n this.flatpickrInstance?.close();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.flatpickrInstance) {\n console.warn('Cannot clear: Flatpickr instance not available');\n return;\n }\n\n this._isClearing = true;\n\n try {\n this.value = this.mode === 'multiple' ? [] : null;\n this.defaultDate = null;\n\n await clearFlatpickrInput(this.flatpickrInstance, this._inputEl, () => {\n this.updateFormValue();\n });\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: (this._inputEl as HTMLInputElement)?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n await this.initializeFlatpickr();\n this.requestUpdate();\n } catch (error) {\n console.error('Error clearing datepicker:', error);\n } finally {\n this._isClearing = false;\n }\n }\n\n async initializeFlatpickr() {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n try {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n }\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n const container = getModalContainer(this);\n const isInModal = container !== document.body;\n\n if (instance.calendarContainer && isInModal) {\n instance.calendarContainer.classList.add('container-modal');\n instance.calendarContainer.classList.remove('container-default');\n }\n\n setCalendarAttributes(instance, isInModal);\n\n if (instance.calendarContainer) {\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date picker'\n );\n }\n } catch (error) {\n console.error('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr.trim()) return null;\n\n if (dateStr.includes('T')) {\n try {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n } catch (e) {\n console.warn('Error parsing ISO date string:', e);\n }\n }\n\n const dtMatch =\n /^(\\d{4})-(\\d{2})-(\\d{2})[ T](\\d{2}):(\\d{2})(?::(\\d{2}))?$/.exec(dateStr);\n if (dtMatch) {\n const y = Number(dtMatch[1]);\n const mo = Number(dtMatch[2]);\n const da = Number(dtMatch[3]);\n const hh = Number(dtMatch[4]);\n const mm = Number(dtMatch[5]);\n const ss = dtMatch[6] !== undefined ? Number(dtMatch[6]) : 0;\n const dt = new Date(y, mo - 1, da, hh, mm, ss);\n return isNaN(dt.getTime()) ? null : dt;\n }\n\n const dateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(dateStr);\n if (dateMatch) {\n const [, y, mo, da] = dateMatch.map(Number);\n const dt = new Date(y, mo - 1, da);\n return isNaN(dt.getTime()) ? null : dt;\n }\n\n return null;\n }\n\n setInitialDates() {\n if (!this.flatpickrInstance) {\n return;\n }\n\n try {\n const dateToSet = this.defaultDate || this.value;\n if (!dateToSet) return;\n\n if (Array.isArray(dateToSet)) {\n const validDates = dateToSet\n .map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'string') return this.parseDateString(date);\n return null;\n })\n .filter(\n (date): date is Date => date !== null && !isNaN(date.getTime())\n )\n .filter((d) => {\n const min = this.minDate\n ? this.parseDateString(this.minDate as string)\n : null;\n const max = this.maxDate\n ? this.parseDateString(this.maxDate as string)\n : null;\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (validDates.length > 0) {\n this.flatpickrInstance.setDate(validDates, true);\n\n if (\n this.value === null ||\n (Array.isArray(this.value) && this.value.length === 0)\n ) {\n if (this.mode === 'multiple') {\n this.value = [...validDates];\n } else {\n this.value = validDates[0];\n }\n }\n }\n } else if (typeof dateToSet === 'string') {\n const parsedDate = this.parseDateString(dateToSet);\n if (parsedDate) {\n this.flatpickrInstance.setDate(parsedDate, true);\n\n if (this.value === null) {\n this.value = parsedDate;\n }\n }\n } else if (dateToSet instanceof Date) {\n this.flatpickrInstance.setDate(dateToSet, true);\n\n if (this.value === null) {\n this.value = dateToSet;\n }\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n }\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale,\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ? this.defaultDate : undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: this.mode,\n allowInput: this.allowManualInput,\n closeOnSelect: !(this.mode === 'multiple' || this._enableTime),\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n if (this.mode === 'multiple') {\n options.closeOnSelect = false;\n }\n\n return options;\n }\n\n async handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n return;\n }\n\n this.flatpickrInstance?.open();\n this._shouldFlatpickrOpen = false;\n\n const cfg = this.flatpickrInstance!.config;\n if (cfg.minDate && cfg.maxDate) {\n const minY = new Date(cfg.minDate as any).getFullYear();\n const maxY = new Date(cfg.maxDate as any).getFullYear();\n this.flatpickrInstance!.calendarContainer.classList.toggle(\n 'single-year',\n minY === maxY\n );\n }\n\n hideEmptyYear();\n }\n\n async handleClose() {\n this._validate(false, false);\n await this.updateComplete;\n\n if (!this.value && !this.defaultDate) {\n this._hasInteracted = true;\n }\n }\n\n async handleDateChange(selectedDates: Date[], dateStr: string) {\n if (this._isClearing) return;\n\n this._hasInteracted = true;\n\n try {\n const invalidDates = selectedDates.filter((date) =>\n isNaN(date.getTime())\n );\n if (invalidDates.length > 0) {\n this.invalidText = this._textStrings.invalidDateFormat;\n this._validate(true, false);\n return;\n }\n\n if (this.mode === 'multiple') {\n this.value = selectedDates.length > 0 ? [...selectedDates] : [];\n } else {\n this.value = selectedDates.length > 0 ? selectedDates[0] : null;\n }\n\n let formattedDates;\n const isMultiple = this.mode === 'multiple';\n if (isMultiple) {\n formattedDates = selectedDates.map((date) => date.toISOString());\n } else if (selectedDates.length > 0) {\n formattedDates = selectedDates[0].toISOString();\n } else {\n formattedDates = isMultiple ? [] : null;\n }\n\n emitValue(this, 'on-change', {\n dates: formattedDates,\n dateString: (this._inputEl as HTMLInputElement)?.value || dateStr,\n source: selectedDates.length === 0 ? 'clear' : undefined,\n });\n\n if (this.invalidText) {\n this.invalidText = '';\n }\n\n this._validate(true, false);\n await this.updateComplete;\n this.requestUpdate();\n } catch (error) {\n console.error('Error handling date change:', error);\n this.invalidText = this._textStrings.errorProcessing;\n this._validate(true, false);\n }\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent() {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.datePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const hasValidDefaultValue =\n this.defaultDate !== null &&\n ((typeof this.defaultDate === 'string' &&\n this.defaultDate.trim() !== '') ||\n (Array.isArray(this.defaultDate) &&\n this.defaultDate.length > 0 &&\n this.defaultDate.some((date) => date && date !== '')));\n\n const isEmpty = !this._inputEl.value.trim() && !hasValidDefaultValue;\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (\n !this._hasInteracted &&\n !interacted &&\n this._enableTime &&\n !(isRequired && isEmpty)\n ) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = this._hasInteracted || interacted;\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n return;\n }\n\n if (this.mode === 'multiple' && this._inputEl.value.trim() !== '') {\n if (this.invalidText) {\n this.invalidText = '';\n }\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid =\n !isValid &&\n (this._hasInteracted || this.invalidText !== '' || interacted);\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n }\n\n public getValue(): Date | Date[] | null {\n return this.value;\n }\n\n public setValue(newValue: Date | Date[] | null): void {\n this.value = newValue;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-picker': DatePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","noDateSelected","pleaseSelectValidDate","invalidDateFormat","errorProcessing","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DatePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DatePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DatePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DatePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DatePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DatePicker_defaultErrorMessage_accessor_storage","_defaultDate_extraInitializers","_defaultErrorMessage_initializers","_DatePicker_required_accessor_storage","_defaultErrorMessage_extraInitializers","_required_initializers","_DatePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","value","_size_extraInitializers","_DatePicker_warnText_accessor_storage","_warnText_initializers","_DatePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DatePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DatePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DatePicker_mode_accessor_storage","_enable_extraInitializers","_mode_initializers","_DatePicker_caption_accessor_storage","_mode_extraInitializers","_caption_initializers","_DatePicker_datePickerDisabled_accessor_storage","_caption_extraInitializers","_datePickerDisabled_initializers","_DatePicker_readonly_accessor_storage","_datePickerDisabled_extraInitializers","_readonly_initializers","_DatePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DatePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DatePicker_maxDate_accessor_storage","_minDate_extraInitializers","_maxDate_initializers","_DatePicker_allowManualInput_accessor_storage","_maxDate_extraInitializers","_allowManualInput_initializers","_DatePicker_errorAriaLabel_accessor_storage","_allowManualInput_extraInitializers","_errorAriaLabel_initializers","_DatePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DatePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DatePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DatePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DatePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DatePicker__hasInteracted_accessor_storage","__enableTime_extraInitializers","__hasInteracted_initializers","_DatePicker_flatpickrInstance_accessor_storage","__hasInteracted_extraInitializers","_flatpickrInstance_initializers","_DatePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DatePicker__isClearing_accessor_storage","__inputEl_extraInitializers","__isClearing_initializers","_DatePicker_textStrings_accessor_storage","__isClearing_extraInitializers","_textStrings_initializers","_DatePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DatePicker__shouldFlatpickrOpen_accessor_storage","__textStrings_extraInitializers","__shouldFlatpickrOpen_initializers","_DatePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_isDestroyed","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","defaultErrorMessage","required","size","warnText","disable","_processedDisableDates","enable","mode","caption","datePickerDisabled","readonly","twentyFourHourFormat","minDate","maxDate","allowManualInput","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_hasInteracted","_inputEl","_isClearing","textStrings","_textStrings","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","connectedCallback","super","addEventListener","_onChange","_handleFormReset","disconnectedCallback","removeEventListener","destroy","undefined","hasValue","_a","Array","isArray","length","every","date","updateFormValue","_internals","setFormValue","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","html","classMap","getDatepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","e","key","preventDefault","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","processedDates","processDefaultDates","nonEmptyValues","filter","v","trim","min","parseDateString","max","parsed","map","d","Date","valid","isNaN","getTime","console","error","updated","has","val","clear","dates","setDate","requestUpdate","y","m","split","Number","updateEnableTime","close","syncAllowInput","readOnly","event","stopPropagation","clearFlatpickrInput","emitValue","dateString","source","_validate","warn","isConnected","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","isInModal","getModalContainer","document","body","calendarContainer","classList","add","remove","setAttribute","setInitialDates","bind","Error","hideEmptyYear","message","updateFlatpickrOptions","dateStr","includes","dtMatch","exec","mo","da","hh","mm","ss","dt","dateMatch","dateToSet","validDates","parsedDate","container","options","enableTime","allowInput","closeOnSelect","loadLocale","onOpen","handleOpen","onClose","handleClose","onChange","handleDateChange","appendTo","noCalendar","static","open","cfg","config","minY","getFullYear","maxY","toggle","selectedDates","formattedDates","isMultiple","toISOString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","setValidity","hasValidDefaultValue","some","isEmpty","isRequired","validity","validationMessage","valueMissing","reportValidity","customError","isValid","getValue","setValue","newValue","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_defaultErrorMessage_decorators","_required_decorators","Boolean","_size_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_mode_decorators","_caption_decorators","_datePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_maxDate_decorators","_allowManualInput_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","__hasInteracted_decorators","_flatpickrInstance_decorators","query","__isClearing_decorators","_textStrings_decorators","Object","__textStrings_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DatePickerStyles"],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.js","sources":["../../../../src/components/reusable/datePicker/datepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n updateEnableTime,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n hideEmptyYear,\n getModalContainer,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport flatpickr from 'flatpickr';\nimport { BaseOptions } from 'flatpickr/dist/types/options';\n\nimport DatePickerStyles from './datepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n noDateSelected: 'No date selected',\n pleaseSelectValidDate: 'Please select a valid date',\n invalidDateFormat: 'Invalid date format provided',\n errorProcessing: 'Error processing date',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Datepicker: uses Flatpickr's datetime picker library -- `https://flatpickr.js.org`\n * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dateString: string, dates: date, source: string }`\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-picker')\nexport class DatePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DatePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /* Sets desired locale and, if supported, dynamically loads language lib */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For multiple mode, provide an array of date strings matching dateFormat. */\n @property({ type: Array })\n accessor defaultDate: string | string[] | null = null;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /** Sets datepicker form input value to required/required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /**\n * Sets the date/time value for the component.\n *\n * For controlled usage patterns, this property allows parent components to directly control the selected date.\n * When used together with defaultDate, value takes precedence if both are provided.\n *\n * In uncontrolled usage, this is populated automatically based on defaultDate and user selections.\n * @internal\n */\n override value: Date | Date[] | null = null;\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets flatpickr mode to select single (default), multiple dates. */\n @property({ type: String })\n accessor mode: 'single' | 'multiple' = 'single';\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets entire datepicker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor datePickerDisabled = false;\n\n /** Sets entire datepicker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24 hour formatting true/false.\n * Defaults to 12H for all `en-*` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of datepicker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Sets upper boundary of datepicker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: flatpickr.Instance | undefined;\n\n /**\n * Queries the anchor DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | any;\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Track destroyed state\n * @internal\n */\n private _isDestroyed = false;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n return (...args: Parameters<T>) => {\n if (timeout) window.clearTimeout(timeout);\n timeout = window.setTimeout(() => {\n func(...args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (this.flatpickrInstance) await this.initializeFlatpickr();\n }, 100);\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n\n if (!this.value && this.defaultDate) {\n this._hasInitialDefaultDate = true;\n }\n }\n\n override disconnectedCallback() {\n this._isDestroyed = true;\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.flatpickrInstance = undefined;\n }\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value) {\n if (Array.isArray(this.value)) {\n return (\n this.value.length > 0 && !this.value.every((date) => date === null)\n );\n }\n return true;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue(): void {\n if (this._internals && this._inputEl) {\n this._internals.setFormValue(this._inputEl.value);\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? `${this.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat);\n\n return html`\n <div class=${classMap(this.getDatepickerClasses())}>\n <div\n class=\"label-text\"\n @mousedown=${this.preventFlatpickrOpen}\n ?readonly=${this.readonly}\n @click=${this.preventFlatpickrOpen}\n ?disabled=${this.datePickerDisabled}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings?.requiredText}\n role=\"img\"\n aria-label=${this._textStrings?.requiredText}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.datePickerDisabled}\n ?readonly=${!this.datePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n autocomplete=\"off\"\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${this.hasValue() && !this.readonly\n ? html`\n <kyn-button\n ?disabled=${this.datePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>\n `\n : html`<span\n class=\"input-icon ${this.datePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >${unsafeSVG(calendarIcon)}</span\n >`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.datePickerDisabled}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.datePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`<div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >${unsafeSVG(errorIcon)}</span\n >${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>`;\n }\n\n if (this.warnText) {\n return html`<div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>`;\n }\n\n return null;\n }\n\n getDatepickerClasses() {\n return {\n 'date-picker': true,\n 'date-picker__enable-time': this._enableTime,\n 'date-picker__multiple-select': this.mode === 'multiple',\n 'date-picker__disabled': this.datePickerDisabled,\n };\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n await this.updateComplete;\n this.setupAnchor();\n\n if (this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (this.mode === 'multiple') {\n this.value = [...processedDates];\n } else {\n this.value = processedDates[0];\n }\n }\n }\n }\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const values = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const nonEmptyValues = values.filter(\n (v) =>\n v !== null &&\n v !== undefined &&\n v !== '' &&\n !(typeof v === 'string' && v.trim() === '')\n );\n\n if (nonEmptyValues.length === 0) return [];\n\n const min = this.minDate\n ? this.parseDateString(this.minDate as string)\n : null;\n const max = this.maxDate\n ? this.parseDateString(this.maxDate as string)\n : null;\n\n const parsed = nonEmptyValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const valid = parsed.filter(\n (d): d is Date =>\n d instanceof Date &&\n !isNaN(d.getTime()) &&\n (!min || d >= min) &&\n (!max || d <= max)\n );\n\n if (valid.length !== parsed.length) {\n console.error('Invalid date(s) provided in defaultDate', valid);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return valid;\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n }\n\n if (changedProperties.has('value') && !this._isClearing) {\n const val = this.value;\n const isNull = val === null || (Array.isArray(val) && val.length === 0);\n\n if (isNull && this.flatpickrInstance) {\n this._isClearing = true;\n try {\n this.flatpickrInstance.clear();\n this._inputEl.value = '';\n } finally {\n this._isClearing = false;\n }\n } else if (this.flatpickrInstance && val != null) {\n const dates: Date[] = Array.isArray(val)\n ? val.filter((d): d is Date => d instanceof Date)\n : val instanceof Date\n ? [val]\n : [];\n\n if (dates.length > 0) {\n this.flatpickrInstance.setDate(dates, false);\n }\n }\n\n this.requestUpdate();\n }\n\n if (changedProperties.has('defaultDate') && !this._isClearing) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates.length > 0 && this.flatpickrInstance) {\n this.value =\n this.mode === 'multiple' ? [...processedDates] : processedDates[0];\n this.flatpickrInstance.setDate(processedDates, true);\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [y, m, d] = date.split('-').map(Number);\n return !isNaN(y) && !isNaN(m) && !isNaN(d)\n ? new Date(y, m - 1, d)\n : date;\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n this.flatpickrInstance && this.debouncedUpdate();\n }\n\n if (\n changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n if (this.flatpickrInstance && this._initialized && !this._isClearing) {\n this.debouncedUpdate();\n }\n }\n\n if (\n (changedProperties.has('datePickerDisabled') &&\n this.datePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n this.flatpickrInstance?.close();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.flatpickrInstance) {\n console.warn('Cannot clear: Flatpickr instance not available');\n return;\n }\n\n this._isClearing = true;\n\n try {\n this.value = this.mode === 'multiple' ? [] : null;\n this.defaultDate = null;\n\n await clearFlatpickrInput(this.flatpickrInstance, this._inputEl, () => {\n this.updateFormValue();\n });\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: (this._inputEl as HTMLInputElement)?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n await this.initializeFlatpickr();\n this.requestUpdate();\n } catch (error) {\n console.error('Error clearing datepicker:', error);\n } finally {\n this._isClearing = false;\n }\n }\n\n async initializeFlatpickr() {\n if (this._isDestroyed) {\n return;\n }\n\n if (!this._inputEl || !this._inputEl.isConnected) {\n console.warn(\n 'Cannot initialize Flatpickr: input element not available or not connected to DOM'\n );\n return;\n }\n\n try {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n }\n\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n const container = getModalContainer(this);\n const isInModal = container !== document.body;\n\n if (instance.calendarContainer && isInModal) {\n instance.calendarContainer.classList.add('container-modal');\n instance.calendarContainer.classList.remove('container-default');\n }\n\n setCalendarAttributes(instance, isInModal);\n\n if (instance.calendarContainer) {\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date picker'\n );\n }\n } catch (error) {\n console.error('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: this.setInitialDates.bind(this),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr.trim()) return null;\n\n if (dateStr.includes('T')) {\n try {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n } catch (e) {\n console.warn('Error parsing ISO date string:', e);\n }\n }\n\n const dtMatch =\n /^(\\d{4})-(\\d{2})-(\\d{2})[ T](\\d{2}):(\\d{2})(?::(\\d{2}))?$/.exec(dateStr);\n if (dtMatch) {\n const y = Number(dtMatch[1]);\n const mo = Number(dtMatch[2]);\n const da = Number(dtMatch[3]);\n const hh = Number(dtMatch[4]);\n const mm = Number(dtMatch[5]);\n const ss = dtMatch[6] !== undefined ? Number(dtMatch[6]) : 0;\n const dt = new Date(y, mo - 1, da, hh, mm, ss);\n return isNaN(dt.getTime()) ? null : dt;\n }\n\n const dateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(dateStr);\n if (dateMatch) {\n const [, y, mo, da] = dateMatch.map(Number);\n const dt = new Date(y, mo - 1, da);\n return isNaN(dt.getTime()) ? null : dt;\n }\n\n return null;\n }\n\n setInitialDates() {\n if (!this.flatpickrInstance) {\n return;\n }\n\n try {\n const dateToSet = this.defaultDate || this.value;\n if (!dateToSet) return;\n\n if (Array.isArray(dateToSet)) {\n const validDates = dateToSet\n .map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'string') return this.parseDateString(date);\n return null;\n })\n .filter(\n (date): date is Date => date !== null && !isNaN(date.getTime())\n )\n .filter((d) => {\n const min = this.minDate\n ? this.parseDateString(this.minDate as string)\n : null;\n const max = this.maxDate\n ? this.parseDateString(this.maxDate as string)\n : null;\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (validDates.length > 0) {\n this.flatpickrInstance.setDate(validDates, true);\n\n if (\n this.value === null ||\n (Array.isArray(this.value) && this.value.length === 0)\n ) {\n if (this.mode === 'multiple') {\n this.value = [...validDates];\n } else {\n this.value = validDates[0];\n }\n }\n }\n } else if (typeof dateToSet === 'string') {\n const parsedDate = this.parseDateString(dateToSet);\n if (parsedDate) {\n this.flatpickrInstance.setDate(parsedDate, true);\n\n if (this.value === null) {\n this.value = parsedDate;\n }\n }\n } else if (dateToSet instanceof Date) {\n this.flatpickrInstance.setDate(dateToSet, true);\n\n if (this.value === null) {\n this.value = dateToSet;\n }\n }\n } catch (error) {\n console.warn('Error setting initial dates:', error);\n }\n }\n\n async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale,\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ? this.defaultDate : undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: this.mode,\n allowInput: this.allowManualInput,\n closeOnSelect: !(this.mode === 'multiple' || this._enableTime),\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n if (this.mode === 'multiple') {\n options.closeOnSelect = false;\n }\n\n return options;\n }\n\n async handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n if (!this._shouldFlatpickrOpen) {\n this.flatpickrInstance?.close();\n this._shouldFlatpickrOpen = true;\n return;\n }\n\n this.flatpickrInstance?.open();\n this._shouldFlatpickrOpen = false;\n\n const cfg = this.flatpickrInstance!.config;\n if (cfg.minDate && cfg.maxDate) {\n const minY = new Date(cfg.minDate as any).getFullYear();\n const maxY = new Date(cfg.maxDate as any).getFullYear();\n this.flatpickrInstance!.calendarContainer.classList.toggle(\n 'single-year',\n minY === maxY\n );\n }\n\n hideEmptyYear();\n }\n\n async handleClose() {\n this._validate(false, false);\n await this.updateComplete;\n\n if (!this.value && !this.defaultDate) {\n this._hasInteracted = true;\n }\n }\n\n async handleDateChange(selectedDates: Date[], dateStr: string) {\n if (this._isClearing) return;\n\n this._hasInteracted = true;\n\n try {\n const invalidDates = selectedDates.filter((date) =>\n isNaN(date.getTime())\n );\n if (invalidDates.length > 0) {\n this.invalidText = this._textStrings.invalidDateFormat;\n this._validate(true, false);\n return;\n }\n\n if (this.mode === 'multiple') {\n this.value = selectedDates.length > 0 ? [...selectedDates] : [];\n } else {\n this.value = selectedDates.length > 0 ? selectedDates[0] : null;\n }\n\n let formattedDates;\n const isMultiple = this.mode === 'multiple';\n if (isMultiple) {\n formattedDates = selectedDates.map((date) => date.toISOString());\n } else if (selectedDates.length > 0) {\n formattedDates = selectedDates[0].toISOString();\n } else {\n formattedDates = isMultiple ? [] : null;\n }\n\n emitValue(this, 'on-change', {\n dates: formattedDates,\n dateString: (this._inputEl as HTMLInputElement)?.value || dateStr,\n source: selectedDates.length === 0 ? 'clear' : undefined,\n });\n\n if (this.invalidText) {\n this.invalidText = '';\n }\n\n this._validate(true, false);\n await this.updateComplete;\n this.requestUpdate();\n } catch (error) {\n console.error('Error handling date change:', error);\n this.invalidText = this._textStrings.errorProcessing;\n this._validate(true, false);\n }\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputFocusEvent() {\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.datePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const hasValidDefaultValue =\n this.defaultDate !== null &&\n ((typeof this.defaultDate === 'string' &&\n this.defaultDate.trim() !== '') ||\n (Array.isArray(this.defaultDate) &&\n this.defaultDate.length > 0 &&\n this.defaultDate.some((date) => date && date !== '')));\n\n const isEmpty = !this._inputEl.value.trim() && !hasValidDefaultValue;\n const isRequired = this.required;\n\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (\n !this._hasInteracted &&\n !interacted &&\n this._enableTime &&\n !(isRequired && isEmpty)\n ) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (isRequired && isEmpty) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = this._hasInteracted || interacted;\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n return;\n }\n\n if (this.mode === 'multiple' && this._inputEl.value.trim() !== '') {\n if (this.invalidText) {\n this.invalidText = '';\n }\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid =\n !isValid &&\n (this._hasInteracted || this.invalidText !== '' || interacted);\n this._internalValidationMsg = validationMessage;\n\n if (report) {\n this._internals.reportValidity();\n }\n\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = null;\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n }\n this._hasInteracted = false;\n }\n\n public getValue(): Date | Date[] | null {\n return this.value;\n }\n\n public setValue(newValue: Date | Date[] | null): void {\n this.value = newValue;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-picker': DatePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","noDateSelected","pleaseSelectValidDate","invalidDateFormat","errorProcessing","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DatePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DatePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DatePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DatePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DatePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DatePicker_defaultErrorMessage_accessor_storage","_defaultDate_extraInitializers","_defaultErrorMessage_initializers","_DatePicker_required_accessor_storage","_defaultErrorMessage_extraInitializers","_required_initializers","_DatePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","value","_size_extraInitializers","_DatePicker_warnText_accessor_storage","_warnText_initializers","_DatePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DatePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DatePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DatePicker_mode_accessor_storage","_enable_extraInitializers","_mode_initializers","_DatePicker_caption_accessor_storage","_mode_extraInitializers","_caption_initializers","_DatePicker_datePickerDisabled_accessor_storage","_caption_extraInitializers","_datePickerDisabled_initializers","_DatePicker_readonly_accessor_storage","_datePickerDisabled_extraInitializers","_readonly_initializers","_DatePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DatePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DatePicker_maxDate_accessor_storage","_minDate_extraInitializers","_maxDate_initializers","_DatePicker_allowManualInput_accessor_storage","_maxDate_extraInitializers","_allowManualInput_initializers","_DatePicker_errorAriaLabel_accessor_storage","_allowManualInput_extraInitializers","_errorAriaLabel_initializers","_DatePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DatePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DatePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DatePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DatePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DatePicker__hasInteracted_accessor_storage","__enableTime_extraInitializers","__hasInteracted_initializers","_DatePicker_flatpickrInstance_accessor_storage","__hasInteracted_extraInitializers","_flatpickrInstance_initializers","_DatePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DatePicker__isClearing_accessor_storage","__inputEl_extraInitializers","__isClearing_initializers","_DatePicker_textStrings_accessor_storage","__isClearing_extraInitializers","_textStrings_initializers","_DatePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DatePicker__shouldFlatpickrOpen_accessor_storage","__textStrings_extraInitializers","__shouldFlatpickrOpen_initializers","_DatePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_isDestroyed","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","defaultErrorMessage","required","size","warnText","disable","_processedDisableDates","enable","mode","caption","datePickerDisabled","readonly","twentyFourHourFormat","minDate","maxDate","allowManualInput","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_hasInteracted","_inputEl","_isClearing","textStrings","_textStrings","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","connectedCallback","super","addEventListener","_onChange","_handleFormReset","disconnectedCallback","removeEventListener","destroy","undefined","hasValue","_a","Array","isArray","length","every","date","updateFormValue","_internals","setFormValue","render","errorId","name","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","html","classMap","getDatepickerClasses","preventFlatpickrOpen","_b","_c","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","errorIcon","_internalValidationMsg","e","key","preventDefault","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateComplete","setupAnchor","processedDates","processDefaultDates","nonEmptyValues","filter","v","trim","min","parseDateString","max","parsed","map","d","Date","valid","isNaN","getTime","console","error","updated","has","val","clear","dates","setDate","requestUpdate","y","m","split","Number","updateEnableTime","close","syncAllowInput","readOnly","event","stopPropagation","clearFlatpickrInput","emitValue","dateString","source","_validate","warn","isConnected","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","isInModal","getModalContainer","document","body","calendarContainer","classList","add","remove","setAttribute","setInitialDates","bind","Error","hideEmptyYear","message","updateFlatpickrOptions","dateStr","includes","dtMatch","exec","mo","da","hh","mm","ss","dt","dateMatch","dateToSet","validDates","parsedDate","container","options","enableTime","allowInput","closeOnSelect","loadLocale","onOpen","handleOpen","onClose","handleClose","onChange","handleDateChange","appendTo","noCalendar","static","open","cfg","config","minY","getFullYear","maxY","toggle","selectedDates","formattedDates","isMultiple","toISOString","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","handleInputFocus","interacted","report","HTMLInputElement","setValidity","hasValidDefaultValue","some","isEmpty","isRequired","validity","validationMessage","valueMissing","reportValidity","customError","isValid","getValue","setValue","newValue","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_defaultErrorMessage_decorators","_required_decorators","Boolean","_size_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_mode_decorators","_caption_decorators","_datePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_maxDate_decorators","_allowManualInput_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","__hasInteracted_decorators","_flatpickrInstance_decorators","query","__isClearing_decorators","_textStrings_decorators","Object","__textStrings_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DatePickerStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCA,MAAMA,EAAsB,CAC1BC,aAAc,WACdC,SAAU,QACVC,iBAAkB,uBAClBC,eAAgB,mBAChBC,sBAAuB,6BACvBC,kBAAmB,+BACnBC,gBAAiB,wBAEjBC,gBAAiB,uBACjBC,cAAe,qBACfC,WAAY,iBACZC,iBAAkB,wBAClBC,oBAAqB,iCAWVC,EAAU,2MADtBC,EAAc,6BACiBC,EAAUC,sZAAlBC,GAAA,cAAQC,qCAQrBC,EAAAC,IAAAC,KAAAC,EAAAD,KAAAE,GAAQ,KAIRC,EAAAJ,IAAAC,MAAAC,EAAAD,KAAAI,IAAAH,EAAAD,KAAAK,GAAmC,QAInCC,EAAAP,IAAAC,MAAAC,EAAAD,KAAAO,IAAAN,EAAAD,KAAAQ,GAAa,WAIbC,EAAAV,IAAAC,MAAAC,EAAAD,KAAAU,IAAAT,EAAAD,KAAAW,GAAwC,QAIxCC,EAAAb,IAAAC,MAAAC,EAAAD,KAAAa,IAAAZ,EAAAD,KAAAc,GAAsB,MAItBC,EAAAhB,IAAAC,MAAAC,EAAAD,KAAAgB,IAAAf,EAAAD,KAAAiB,IAAW,KAIXC,EAAAnB,IAAAC,MAAAC,EAAAD,KAAAmB,IAAAlB,EAAAD,KAAAoB,GAAO,QAWPpB,KAAAqB,OAAKpB,EAAAD,KAAAsB,IAAyB,MAI9BC,EAAAxB,IAAAC,KAAAC,EAAAD,KAAAwB,GAAW,KAIXC,EAAA1B,IAAAC,MAAAC,EAAAD,KAAA0B,IAAAzB,EAAAD,KAAA2B,GAAsC,MAI9BC,EAAA7B,IAAAC,MAAAC,EAAAD,KAAA6B,IAAA5B,EAAAD,KAAA8B,GAAqD,MAI7DC,EAAAhC,IAAAC,MAAAC,EAAAD,KAAAgC,IAAA/B,EAAAD,KAAAiC,GAAqC,MAIrCC,EAAAnC,IAAAC,MAAAC,EAAAD,KAAAmC,IAAAlC,EAAAD,KAAAoC,GAA8B,YAI9BC,EAAAtC,IAAAC,MAAAC,EAAAD,KAAAsC,IAAArC,EAAAD,KAAAuC,GAAU,MAIVC,EAAAzC,IAAAC,MAAAC,EAAAD,KAAAyC,IAAAxC,EAAAD,KAAA0C,IAAqB,KAIrBC,EAAA5C,IAAAC,MAAAC,EAAAD,KAAA4C,IAAA3C,EAAAD,KAAA6C,IAAW,KAMXC,EAAA/C,IAAAC,MAAAC,EAAAD,KAAA+C,IAAA9C,EAAAD,KAAAgD,GAAuC,QAIvCC,EAAAlD,IAAAC,MAAAC,EAAAD,KAAAkD,IAAAjD,EAAAD,KAAAmD,GAAkC,MAIlCC,EAAArD,IAAAC,MAAAC,EAAAD,KAAAqD,IAAApD,EAAAD,KAAAsD,GAAkC,MAIlCC,EAAAxD,IAAAC,MAAAC,EAAAD,KAAAwD,IAAAvD,EAAAD,KAAAyD,IAAmB,KAInBC,GAAA3D,IAAAC,MAAAC,EAAAD,KAAA2D,IAAA1D,EAAAD,KAAA4D,GAAiB,MAIjBC,GAAA9D,IAAAC,MAAAC,EAAAD,KAAA8D,IAAA7D,EAAAD,KAAA+D,GAAa,MAIbC,GAAAjE,IAAAC,MAAAC,EAAAD,KAAAiE,IAAAhE,EAAAD,KAAAkE,GAAmB,MAInBC,GAAApE,IAAAC,MAAAC,EAAAD,KAAAoE,IAAAnE,EAAAD,KAAAqE,GAAe,MAIfC,GAAAvE,IAAAC,MAAAC,EAAAD,KAAAuE,IAAAtE,EAAAD,KAAAwE,IAAiB,KAMTC,GAAA1E,IAAAC,MAAAC,EAAAD,KAAA0E,IAAAzE,EAAAD,KAAA2E,IAAc,KAOdC,GAAA7E,IAAAC,MAAAC,EAAAD,KAAA6E,IAAA5E,EAAAD,KAAA8E,IAAiB,KAMjBC,GAAAhF,IAAAC,MAAAC,EAAAD,KAAAgF,IAAA/E,EAAAD,KAAAiF,QAAA,KAOAC,GAAAnF,IAAAC,MAAAC,EAAAD,KAAAmF,IAAAlF,EAAAD,KAAAoF,QAAA,KAMAC,GAAAtF,IAAAC,MAAAC,EAAAD,KAAAsF,IAAArF,EAAAD,KAAAuF,IAAc,KAItBC,GAAAzF,IAAAC,MAAAC,EAAAD,KAAAyF,IAAAxF,EAAAD,KAAA0F,GAAc/G,KAMdgH,GAAA5F,IAAAC,MAAAC,EAAAD,KAAA4F,IAAA3F,EAAAD,KAAA6F,GAAe,IAAKlH,MAMZmH,GAAA/F,IAAAC,MAAAC,EAAAD,KAAA+F,IAAA9F,EAAAD,KAAAgG,IAAuB,KAIvBC,GAAAlG,IAAAC,MAAAC,EAAAD,KAAAkG,IAAAjG,EAAAD,KAAAmG,IAAyB,KAKlCnG,KAAAoG,cAAYnG,EAAAD,KAAAqG,KAAG,GAKfrG,KAAAsG,cAAe,EAgBftG,KAAAuG,gBAAkBvG,KAAKwG,UAASC,UAClCzG,KAAK0G,yBAAyB1G,KAAK2G,qBAAqB,GAC3D,KAzLH,SAASC,GAAK,OAAAC,EAAA7G,KAAAF,EAAA,IAAA,CAAd,SAAS8G,CAAKvF,GAAAyF,EAAA9G,KAAAF,EAAAuB,EAAA,IAAA,CAId,UAAS0F,GAAM,OAAAF,EAAA7G,KAAAG,EAAA,IAAA,CAAf,UAAS4G,CAAM1F,GAAAyF,EAAA9G,KAAAG,EAAAkB,EAAA,IAAA,CAIf,cAAS2F,GAAU,OAAAH,EAAA7G,KAAAM,EAAA,IAAA,CAAnB,cAAS0G,CAAU3F,GAAAyF,EAAA9G,KAAAM,EAAAe,EAAA,IAAA,CAInB,eAAS4F,GAAW,OAAAJ,EAAA7G,KAAAS,EAAA,IAAA,CAApB,eAASwG,CAAW5F,GAAAyF,EAAA9G,KAAAS,EAAAY,EAAA,IAAA,CAIpB,uBAAS6F,GAAmB,OAAAL,EAAA7G,KAAAY,EAAA,IAAA,CAA5B,uBAASsG,CAAmB7F,GAAAyF,EAAA9G,KAAAY,EAAAS,EAAA,IAAA,CAI5B,YAAS8F,GAAQ,OAAAN,EAAA7G,KAAAe,EAAA,IAAA,CAAjB,YAASoG,CAAQ9F,GAAAyF,EAAA9G,KAAAe,EAAAM,EAAA,IAAA,CAIjB,QAAS+F,GAAI,OAAAP,EAAA7G,KAAAkB,EAAA,IAAA,CAAb,QAASkG,CAAI/F,GAAAyF,EAAA9G,KAAAkB,EAAAG,EAAA,IAAA,CAeb,YAASgG,GAAQ,OAAAR,EAAA7G,KAAAuB,EAAA,IAAA,CAAjB,YAAS8F,CAAQhG,GAAAyF,EAAA9G,KAAAuB,EAAAF,EAAA,IAAA,CAIjB,WAASiG,GAAO,OAAAT,EAAA7G,KAAAyB,EAAA,IAAA,CAAhB,WAAS6F,CAAOjG,GAAAyF,EAAA9G,KAAAyB,EAAAJ,EAAA,IAAA,CAIhB,0BAAiBkG,GAAsB,OAAAV,EAAA7G,KAAA4B,EAAA,IAAA,CAAvC,0BAAiB2F,CAAsBlG,GAAAyF,EAAA9G,KAAA4B,EAAAP,EAAA,IAAA,CAIvC,UAASmG,GAAM,OAAAX,EAAA7G,KAAA+B,EAAA,IAAA,CAAf,UAASyF,CAAMnG,GAAAyF,EAAA9G,KAAA+B,EAAAV,EAAA,IAAA,CAIf,QAASoG,GAAI,OAAAZ,EAAA7G,KAAAkC,EAAA,IAAA,CAAb,QAASuF,CAAIpG,GAAAyF,EAAA9G,KAAAkC,EAAAb,EAAA,IAAA,CAIb,WAASqG,GAAO,OAAAb,EAAA7G,KAAAqC,EAAA,IAAA,CAAhB,WAASqF,CAAOrG,GAAAyF,EAAA9G,KAAAqC,EAAAhB,EAAA,IAAA,CAIhB,sBAASsG,GAAkB,OAAAd,EAAA7G,KAAAwC,EAAA,IAAA,CAA3B,sBAASmF,CAAkBtG,GAAAyF,EAAA9G,KAAAwC,EAAAnB,EAAA,IAAA,CAI3B,YAASuG,GAAQ,OAAAf,EAAA7G,KAAA2C,EAAA,IAAA,CAAjB,YAASiF,CAAQvG,GAAAyF,EAAA9G,KAAA2C,EAAAtB,EAAA,IAAA,CAMjB,wBAASwG,GAAoB,OAAAhB,EAAA7G,KAAA8C,EAAA,IAAA,CAA7B,wBAAS+E,CAAoBxG,GAAAyF,EAAA9G,KAAA8C,EAAAzB,EAAA,IAAA,CAI7B,WAASyG,GAAO,OAAAjB,EAAA7G,KAAAiD,EAAA,IAAA,CAAhB,WAAS6E,CAAOzG,GAAAyF,EAAA9G,KAAAiD,EAAA5B,EAAA,IAAA,CAIhB,WAAS0G,GAAO,OAAAlB,EAAA7G,KAAAoD,EAAA,IAAA,CAAhB,WAAS2E,CAAO1G,GAAAyF,EAAA9G,KAAAoD,EAAA/B,EAAA,IAAA,CAIhB,oBAAS2G,GAAgB,OAAAnB,EAAA7G,KAAAuD,EAAA,IAAA,CAAzB,oBAASyE,CAAgB3G,GAAAyF,EAAA9G,KAAAuD,EAAAlC,EAAA,IAAA,CAIzB,kBAAS4G,GAAc,OAAApB,EAAA7G,KAAA0D,GAAA,IAAA,CAAvB,kBAASuE,CAAc5G,GAAAyF,EAAA9G,KAAA0D,GAAArC,EAAA,IAAA,CAIvB,cAAS6G,GAAU,OAAArB,EAAA7G,KAAA6D,GAAA,IAAA,CAAnB,cAASqE,CAAU7G,GAAAyF,EAAA9G,KAAA6D,GAAAxC,EAAA,IAAA,CAInB,oBAAS8G,GAAgB,OAAAtB,EAAA7G,KAAAgE,GAAA,IAAA,CAAzB,oBAASmE,CAAgB9G,GAAAyF,EAAA9G,KAAAgE,GAAA3C,EAAA,IAAA,CAIzB,gBAAS+G,GAAY,OAAAvB,EAAA7G,KAAAmE,GAAA,IAAA,CAArB,gBAASiE,CAAY/G,GAAAyF,EAAA9G,KAAAmE,GAAA9C,EAAA,IAAA,CAIrB,kBAASgH,GAAc,OAAAxB,EAAA7G,KAAAsE,GAAA,IAAA,CAAvB,kBAAS+D,CAAchH,GAAAyF,EAAA9G,KAAAsE,GAAAjD,EAAA,IAAA,CAMvB,eAAiBiH,GAAW,OAAAzB,EAAA7G,KAAAyE,GAAA,IAAA,CAA5B,eAAiB6D,CAAWjH,GAAAyF,EAAA9G,KAAAyE,GAAApD,EAAA,IAAA,CAO5B,kBAAiBkH,GAAc,OAAA1B,EAAA7G,KAAA4E,GAAA,IAAA,CAA/B,kBAAiB2D,CAAclH,GAAAyF,EAAA9G,KAAA4E,GAAAvD,EAAA,IAAA,CAM/B,qBAAiBqF,GAAiB,OAAAG,EAAA7G,KAAA+E,GAAA,IAAA,CAAlC,qBAAiB2B,CAAiBrF,GAAAyF,EAAA9G,KAAA+E,GAAA1D,EAAA,IAAA,CAOlC,YAAiBmH,GAAQ,OAAA3B,EAAA7G,KAAAkF,GAAA,IAAA,CAAzB,YAAiBsD,CAAQnH,GAAAyF,EAAA9G,KAAAkF,GAAA7D,EAAA,IAAA,CAMzB,eAAiBoH,GAAW,OAAA5B,EAAA7G,KAAAqF,GAAA,IAAA,CAA5B,eAAiBoD,CAAWpH,GAAAyF,EAAA9G,KAAAqF,GAAAhE,EAAA,IAAA,CAI5B,eAASqH,GAAW,OAAA7B,EAAA7G,KAAAwF,GAAA,IAAA,CAApB,eAASkD,CAAWrH,GAAAyF,EAAA9G,KAAAwF,GAAAnE,EAAA,IAAA,CAMpB,gBAASsH,GAAY,OAAA9B,EAAA7G,KAAA2F,GAAA,IAAA,CAArB,gBAASgD,CAAYtH,GAAAyF,EAAA9G,KAAA2F,GAAAtE,EAAA,IAAA,CAMrB,wBAAiBuH,GAAoB,OAAA/B,EAAA7G,KAAA8F,GAAA,IAAA,CAArC,wBAAiB8C,CAAoBvH,GAAAyF,EAAA9G,KAAA8F,GAAAzE,EAAA,IAAA,CAIrC,0BAAiBwH,GAAsB,OAAAhC,EAAA7G,KAAAiG,GAAA,IAAA,CAAvC,0BAAiB4C,CAAsBxH,GAAAyF,EAAA9G,KAAAiG,GAAA5E,EAAA,IAAA,CAY/B,QAAAmF,CACNsC,EACAC,GAEA,IAAIC,EAAyB,KAC7B,MAAO,IAAIC,KACLD,GAASE,OAAOC,aAAaH,GACjCA,EAAUE,OAAOE,YAAW,KAC1BN,KAAQG,GACRD,EAAU,IAAI,GACbD,EAAK,EAQH,iBAAAM,GACPC,MAAMD,oBACNrJ,KAAKuJ,iBAAiB,SAAUvJ,KAAKwJ,WACrCxJ,KAAKuJ,iBAAiB,QAASvJ,KAAKyJ,mBAE/BzJ,KAAKqB,OAASrB,KAAKiH,cACtBjH,KAAK6I,wBAAyB,GAIzB,oBAAAa,GACP1J,KAAKsG,cAAe,EACpBgD,MAAMI,uBACN1J,KAAK2J,oBAAoB,SAAU3J,KAAKwJ,WACxCxJ,KAAK2J,oBAAoB,QAAS3J,KAAKyJ,kBAEnCzJ,KAAK0G,oBACP1G,KAAK0G,kBAAkBkD,UACvB5J,KAAK0G,uBAAoBmD,GAIrB,QAAAC,SACN,iBAAIC,EAAA/J,KAAKwI,+BAAUnH,SACfrB,KAAKqB,OACH2I,MAAMC,QAAQjK,KAAKqB,QAEnBrB,KAAKqB,MAAM6I,OAAS,IAAMlK,KAAKqB,MAAM8I,OAAOC,GAAkB,OAATA,MAKvDpK,KAAKiH,cACH+C,MAAMC,QAAQjK,KAAKiH,aAEnBjH,KAAKiH,YAAYiD,OAAS,IACzBlK,KAAKiH,YAAYkD,OAAOC,IAAUA,GAAiB,KAATA,MAGtCpK,KAAKiH,cAKV,eAAAoD,GACFrK,KAAKsK,YAActK,KAAKwI,UAC1BxI,KAAKsK,WAAWC,aAAavK,KAAKwI,SAASnH,OAItC,MAAAmJ,aACP,MAAMC,EAAU,GAAGzK,KAAK0K,qBAClBC,EAAY,GAAG3K,KAAK0K,uBACpBE,EAAW5K,KAAK0K,KAClB,GAAG1K,KAAK0K,QAAQG,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,MACpD,eAAeH,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,MACjDC,EAAyB,QAATlB,EAAA/J,KAAK0K,YAAI,IAAAX,EAAAA,EAAI,GAC7BmB,EAAcC,EAAenL,KAAKgH,YAExC,OAAOoE,CAAI;mBACIC,EAASrL,KAAKsL;;;uBAGVtL,KAAKuL;sBACNvL,KAAK4H;mBACR5H,KAAKuL;sBACFvL,KAAK2H;eACZ,SAASiD;;YAEZ5K,KAAKmH,SACHiE,CAAI;;wBAEuB,QAAjBI,EAAAxL,KAAK2I,oBAAY,IAAA6C,OAAA,EAAAA,EAAE5M;;6BAEG,QAAjB6M,EAAAzL,KAAK2I,oBAAY,IAAA8C,OAAA,EAAAA,EAAE7M;;iBAGlC;YACFoB,KAAK4G;;;;;;qBAMIyE,EAAS,CAChB,CAAC,SAASrL,KAAKoH,SAAS,EACxB,gBAAgB,EAChB,cAAepH,KAAK4H;;iBAGjBgD;mBACE5K,KAAK0K;0BACEQ;wBACFlL,KAAK2H;yBACJ3H,KAAK2H,oBAAsB3H,KAAK4H;wBACjC5H,KAAKmH;uBACNnH,KAAK0L;2BACD1L,KAAK0L,WAAa,OAAS;8BACxB,SAASd;;qBAElB5K,KAAK2L;qBACL3L,KAAK4L;;YAEd5L,KAAK8J,aAAe9J,KAAK4H,SACvBwD,CAAI;;8BAEYpL,KAAK2H;;;;gCAIH3H,KAAK2I,aAAa9J;2BACvBmB,KAAK6L;;;uBAGTC,EAAUC;;;gBAInBX,CAAI;oCACkBpL,KAAK2H,mBACrB,cACA;;yBAEK3H,KAAK2L;mBACXG,EAAUE;;;;UAInBhM,KAAK0H,QACH0D,CAAI;mBACGH;;8BAEWjL,KAAK2H;2BACR3H,KAAKuL;uBACTvL,KAAKuL;;gBAEZvL,KAAK0H;oBAET;UACF1H,KAAKiM,wBAAwBxB,EAASE;;MAKtC,uBAAAsB,CAAwBxB,EAAiBE,GAC/C,OAAI3K,KAAK2H,mBAA2B,KAEhC3H,KAAKkM,aAAgBlM,KAAK0L,YAAc1L,KAAKuI,eACxC6C,CAAI;aACJX;;;gBAGGzK,KAAKkI,YAAc;qBACdlI,KAAKuL;iBACTvL,KAAKuL;;;;;uBAKCvL,KAAKiI,gBAAkB;aACjC6D,EAAUK;WACZnM,KAAKkM,aACRlM,KAAKoM,wBACLpM,KAAKkH;cAILlH,KAAKqH,SACA+D,CAAI;aACJT;;;qBAGQ3K,KAAKmI,kBAAoB;gBAC9BnI,KAAKoI,cAAgB;qBAChBpI,KAAKuL;iBACTvL,KAAKuL;;mBAEFc,IACI,UAAVA,EAAEC,KAA6B,MAAVD,EAAEC,MACzBD,EAAEE,iBACFvM,KAAKuL,qBAAqBc;;UAI5BrM,KAAKqH;cAIJ,KAGT,oBAAAiE,GACE,MAAO,CACL,eAAe,EACf,2BAA4BtL,KAAKsI,YACjC,+BAA8C,aAAdtI,KAAKyH,KACrC,wBAAyBzH,KAAK2H,oBAIzB,kBAAM6E,CAAaC,GAE1B,GADAnD,MAAMkD,aAAaC,IACdzM,KAAKoG,eACRsG,EAAsBC,EAAsB5B,YAC5C/K,KAAKoG,cAAe,QACdpG,KAAK4M,eACX5M,KAAK6M,cAED7M,KAAK6I,wBAA0B7I,KAAKiH,aAAa,CACnD,MAAM6F,EAAiB9M,KAAK+M,oBAAoB/M,KAAKiH,aACjD6F,GAAkBA,EAAe5C,OAAS,IAC1B,aAAdlK,KAAKyH,KACPzH,KAAKqB,MAAQ,IAAIyL,GAEjB9M,KAAKqB,MAAQyL,EAAe,KAO9B,mBAAAC,CACN9F,GAEA,IAAKA,EAAa,MAAO,GAEzB,MAEM+F,GAFShD,MAAMC,QAAQhD,GAAeA,EAAc,CAACA,IAE7BgG,QAC3BC,GACCA,SAEM,KAANA,KACe,iBAANA,GAA+B,KAAbA,EAAEC,UAGjC,GAA8B,IAA1BH,EAAe9C,OAAc,MAAO,GAExC,MAAMkD,EAAMpN,KAAK8H,QACb9H,KAAKqN,gBAAgBrN,KAAK8H,SAC1B,KACEwF,EAAMtN,KAAK+H,QACb/H,KAAKqN,gBAAgBrN,KAAK+H,SAC1B,KAEEwF,EAASP,EAAeQ,KAAKC,GAC7BA,aAAaC,KAAaD,EACb,iBAANA,EAAuBzN,KAAKqN,gBAAgBI,GAChD,OAGHE,EAAQJ,EAAON,QAClBQ,GACCA,aAAaC,OACZE,MAAMH,EAAEI,cACPT,GAAOK,GAAKL,MACZE,GAAOG,GAAKH,KASlB,OANIK,EAAMzD,SAAWqD,EAAOrD,SAC1B4D,QAAQC,MAAM,0CAA2CJ,GACzD3N,KAAKkM,YAAclM,KAAK2I,aAAa3J,sBACrCgB,KAAKiH,YAAc,MAGd0G,EAGA,OAAAK,CAAQvB,SAOf,GANAnD,MAAM0E,QAAQvB,GAEVA,EAAkBwB,IAAI,iBACxBjO,KAAK2I,aAAe,IAAKhK,KAAwBqB,KAAK0I,cAGpD+D,EAAkBwB,IAAI,WAAajO,KAAKyI,YAAa,CACvD,MAAMyF,EAAMlO,KAAKqB,MAGjB,IAFuB,OAAR6M,GAAiBlE,MAAMC,QAAQiE,IAAuB,IAAfA,EAAIhE,SAE5ClK,KAAK0G,kBAAmB,CACpC1G,KAAKyI,aAAc,EACnB,IACEzI,KAAK0G,kBAAkByH,QACvBnO,KAAKwI,SAASnH,MAAQ,WAEtBrB,KAAKyI,aAAc,QAEhB,GAAIzI,KAAK0G,mBAA4B,MAAPwH,EAAa,CAChD,MAAME,EAAgBpE,MAAMC,QAAQiE,GAChCA,EAAIjB,QAAQQ,GAAiBA,aAAaC,OAC1CQ,aAAeR,KACf,CAACQ,GACD,GAEAE,EAAMlE,OAAS,GACjBlK,KAAK0G,kBAAkB2H,QAAQD,GAAO,GAI1CpO,KAAKsO,gBAGP,GAAI7B,EAAkBwB,IAAI,iBAAmBjO,KAAKyI,YAAa,CAC7D,MAAMqE,EAAiB9M,KAAK+M,oBAAoB/M,KAAKiH,aACjD6F,EAAe5C,OAAS,GAAKlK,KAAK0G,oBACpC1G,KAAKqB,MACW,aAAdrB,KAAKyH,KAAsB,IAAIqF,GAAkBA,EAAe,GAClE9M,KAAK0G,kBAAkB2H,QAAQvB,GAAgB,IAI/CL,EAAkBwB,IAAI,aACpBjE,MAAMC,QAAQjK,KAAKsH,SACrBtH,KAAKuH,uBAAyBvH,KAAKsH,QAAQkG,KAAKpD,IAC9C,GAAIA,aAAgBsD,KAAM,OAAOtD,EACjC,GAAoB,iBAATA,EAAmB,OAAO,IAAIsD,KAAKtD,GAC9C,GAAoB,iBAATA,EAAmB,CAC5B,MAAOmE,EAAGC,EAAGf,GAAKrD,EAAKqE,MAAM,KAAKjB,IAAIkB,QACtC,OAAQd,MAAMW,IAAOX,MAAMY,IAAOZ,MAAMH,GAEpCrD,EADA,IAAIsD,KAAKa,EAAGC,EAAI,EAAGf,GAGzB,OAAOrD,CAAI,IAGbpK,KAAKuH,uBAAyB,GAEhCvH,KAAK0G,mBAAqB1G,KAAKuG,oBAI/BkG,EAAkBwB,IAAI,eACtBxB,EAAkBwB,IAAI,YACtBxB,EAAkBwB,IAAI,YACtBxB,EAAkBwB,IAAI,WACtBxB,EAAkBwB,IAAI,2BAEtBjO,KAAKsI,YAAcqG,EAAiB3O,KAAKgH,YACrChH,KAAK0G,mBAAqB1G,KAAKoG,eAAiBpG,KAAKyI,aACvDzI,KAAKuG,oBAKNkG,EAAkBwB,IAAI,uBACrBjO,KAAK2H,oBACN8E,EAAkBwB,IAAI,aAAejO,KAAK4H,YAErB,QAAtBmC,EAAA/J,KAAK0G,yBAAiB,IAAAqD,GAAAA,EAAE6E,SAGtBnC,EAAkBwB,IAAI,qBACxBjO,KAAK6O,iBAID,cAAAA,GACD7O,KAAK0G,oBACV1G,KAAK0G,kBAAkB3G,IAAI,aAAcC,KAAKgI,kBACzChI,KAAK4H,WACR5H,KAAKwI,SAASsG,UAAY9O,KAAKgI,mBAI3B,iBAAM6E,GACZ,GAAK7M,KAAKwI,SAIV,UACQxI,KAAK2G,sBACX,MAAOoH,GACPD,QAAQC,MAAM,8BAA+BA,IAIzC,kBAAMlC,CAAakD,SAIzB,GAHAA,EAAMxC,iBACNwC,EAAMC,kBAEDhP,KAAK0G,kBAAV,CAKA1G,KAAKyI,aAAc,EAEnB,IACEzI,KAAKqB,MAAsB,aAAdrB,KAAKyH,KAAsB,GAAK,KAC7CzH,KAAKiH,YAAc,WAEbgI,EAAoBjP,KAAK0G,kBAAmB1G,KAAKwI,UAAU,KAC/DxI,KAAKqK,iBAAiB,IAGxB6E,EAAUlP,KAAM,YAAa,CAC3BoO,MAAOpO,KAAKqB,MACZ8N,mBAAYpF,EAAC/J,KAAKwI,+BAA+BnH,MACjD+N,OAAQ,UAGVpP,KAAKqP,WAAU,GAAM,SACfrP,KAAK4M,qBACL5M,KAAK2G,sBACX3G,KAAKsO,gBACL,MAAOP,GACPD,QAAQC,MAAM,6BAA8BA,WAE5C/N,KAAKyI,aAAc,QA3BnBqF,QAAQwB,KAAK,kDA+BjB,yBAAM3I,GACJ,IAAI3G,KAAKsG,aAIT,GAAKtG,KAAKwI,UAAaxI,KAAKwI,SAAS+G,YAOrC,IAiCE,GAhCIvP,KAAK0G,mBACP1G,KAAK0G,kBAAkBkD,UAGzB5J,KAAK0G,wBAA0B8I,EAAgC,CAC7DC,QAASzP,KAAKwI,SACdkH,oBAAqB,IAAM1P,KAAK2P,+BAChCC,sBAAwBC,IACtB,IACE,MACMC,EADYC,EAAkB/P,QACJgQ,SAASC,KAErCJ,EAASK,mBAAqBJ,IAChCD,EAASK,kBAAkBC,UAAUC,IAAI,mBACzCP,EAASK,kBAAkBC,UAAUE,OAAO,sBAG9CT,EAAsBC,EAAUC,GAE5BD,EAASK,mBACXL,EAASK,kBAAkBI,aACzB,aACA,eAGJ,MAAOvC,GACPD,QAAQC,MAAM,qCAAsCA,KAGxDwC,gBAAiBvQ,KAAKuQ,gBAAgBC,KAAKxQ,SAGxCA,KAAK0G,kBACR,MAAM,IAAI+J,MAAM,2CAGlBC,IACA1Q,KAAKqP,WAAU,GAAO,GACtB,MAAOtB,GACPD,QAAQC,MAAM,gCAAiCA,GAC3CA,aAAiB0C,OACnB3C,QAAQC,MAAM,iBAAkBA,EAAM4C,cAhDxC7C,QAAQwB,KACN,oFAoDN,4BAAMsB,GACC5Q,KAAK0G,wBAIJ1G,KAAKuG,kBAHTuH,QAAQwB,KAAK,2DAMT,eAAAjC,CAAgBwD,GACtB,IAAKA,EAAQ1D,OAAQ,OAAO,KAE5B,GAAI0D,EAAQC,SAAS,KACnB,IACE,MAAM1G,EAAO,IAAIsD,KAAKmD,GACtB,OAAOjD,MAAMxD,EAAKyD,WAAa,KAAOzD,EACtC,MAAOiC,GACPyB,QAAQwB,KAAK,iCAAkCjD,GAInD,MAAM0E,EACJ,4DAA4DC,KAAKH,GACnE,GAAIE,EAAS,CACX,MAAMxC,EAAIG,OAAOqC,EAAQ,IACnBE,EAAKvC,OAAOqC,EAAQ,IACpBG,EAAKxC,OAAOqC,EAAQ,IACpBI,EAAKzC,OAAOqC,EAAQ,IACpBK,EAAK1C,OAAOqC,EAAQ,IACpBM,OAAoBxH,IAAfkH,EAAQ,GAAmBrC,OAAOqC,EAAQ,IAAM,EACrDO,EAAK,IAAI5D,KAAKa,EAAG0C,EAAK,EAAGC,EAAIC,EAAIC,EAAIC,GAC3C,OAAOzD,MAAM0D,EAAGzD,WAAa,KAAOyD,EAGtC,MAAMC,EAAY,4BAA4BP,KAAKH,GACnD,GAAIU,EAAW,CACb,MAAM,CAAGhD,EAAG0C,EAAIC,GAAMK,EAAU/D,IAAIkB,QAC9B4C,EAAK,IAAI5D,KAAKa,EAAG0C,EAAK,EAAGC,GAC/B,OAAOtD,MAAM0D,EAAGzD,WAAa,KAAOyD,EAGtC,OAAO,KAGT,eAAAf,GACE,GAAKvQ,KAAK0G,kBAIV,IACE,MAAM8K,EAAYxR,KAAKiH,aAAejH,KAAKqB,MAC3C,IAAKmQ,EAAW,OAEhB,GAAIxH,MAAMC,QAAQuH,GAAY,CAC5B,MAAMC,EAAaD,EAChBhE,KAAKpD,GACAA,aAAgBsD,KAAatD,EACb,iBAATA,EAA0BpK,KAAKqN,gBAAgBjD,GACnD,OAER6C,QACE7C,GAAgC,OAATA,IAAkBwD,MAAMxD,EAAKyD,aAEtDZ,QAAQQ,IACP,MAAML,EAAMpN,KAAK8H,QACb9H,KAAKqN,gBAAgBrN,KAAK8H,SAC1B,KACEwF,EAAMtN,KAAK+H,QACb/H,KAAKqN,gBAAgBrN,KAAK+H,SAC1B,KACJ,QAASqF,GAAOK,GAAKL,MAAUE,GAAOG,GAAKH,EAAI,IAG/CmE,EAAWvH,OAAS,IACtBlK,KAAK0G,kBAAkB2H,QAAQoD,GAAY,IAG1B,OAAfzR,KAAKqB,OACJ2I,MAAMC,QAAQjK,KAAKqB,QAAgC,IAAtBrB,KAAKqB,MAAM6I,UAEvB,aAAdlK,KAAKyH,KACPzH,KAAKqB,MAAQ,IAAIoQ,GAEjBzR,KAAKqB,MAAQoQ,EAAW,UAIzB,GAAyB,iBAAdD,EAAwB,CACxC,MAAME,EAAa1R,KAAKqN,gBAAgBmE,GACpCE,IACF1R,KAAK0G,kBAAkB2H,QAAQqD,GAAY,GAExB,OAAf1R,KAAKqB,QACPrB,KAAKqB,MAAQqQ,SAGRF,aAAqB9D,OAC9B1N,KAAK0G,kBAAkB2H,QAAQmD,GAAW,GAEvB,OAAfxR,KAAKqB,QACPrB,KAAKqB,MAAQmQ,IAGjB,MAAOzD,GACPD,QAAQwB,KAAK,+BAAgCvB,IAIjD,kCAAM4B,SACJ,MAAMgC,EAAY5B,EAAkB/P,MAC9B4R,QAAgBlC,EAAoB,CACxC3I,OAAQ/G,KAAK+G,OACbC,WAAYhH,KAAKgH,WACjBC,YAAajH,KAAKiH,YAAcjH,KAAKiH,iBAAc4C,EACnDgI,WAAY7R,KAAKsI,YACjBT,6BAAsBkC,EAAA/J,KAAK6H,yCAAwBgC,EACnD4F,QAASzP,KAAKwI,SACdV,QAAS9H,KAAK8H,QACdC,QAAS/H,KAAK+H,QACdP,OAAQxH,KAAKwH,OACbF,QAAStH,KAAKuH,uBACdE,KAAMzH,KAAKyH,KACXqK,WAAY9R,KAAKgI,iBACjB+J,gBAA+B,aAAd/R,KAAKyH,MAAuBzH,KAAKsI,aAClD0J,aACAC,OAAQjS,KAAKkS,WAAW1B,KAAKxQ,MAC7BmS,QAASnS,KAAKoS,YAAY5B,KAAKxQ,MAC/BqS,SAAUrS,KAAKsS,iBAAiB9B,KAAKxQ,MACrCuS,SAAUZ,EACVa,YAAY,EACZC,OAAQzS,KAAKqI,iBAOf,MAJkB,aAAdrI,KAAKyH,OACPmK,EAAQG,eAAgB,GAGnBH,EAGT,gBAAMM,aACJ,GAAIlS,KAAK4H,SAEP,YADsB,QAAtBmC,EAAA/J,KAAK0G,yBAAiB,IAAAqD,GAAAA,EAAE6E,SAI1B,IAAK5O,KAAK4I,qBAGR,OAFsB,QAAtB4C,EAAAxL,KAAK0G,yBAAiB,IAAA8E,GAAAA,EAAEoD,aACxB5O,KAAK4I,sBAAuB,GAIR,QAAtB6C,EAAAzL,KAAK0G,yBAAiB,IAAA+E,GAAAA,EAAEiH,OACxB1S,KAAK4I,sBAAuB,EAE5B,MAAM+J,EAAM3S,KAAK0G,kBAAmBkM,OACpC,GAAID,EAAI7K,SAAW6K,EAAI5K,QAAS,CAC9B,MAAM8K,EAAO,IAAInF,KAAKiF,EAAI7K,SAAgBgL,cACpCC,EAAO,IAAIrF,KAAKiF,EAAI5K,SAAgB+K,cAC1C9S,KAAK0G,kBAAmBwJ,kBAAkBC,UAAU6C,OAClD,cACAH,IAASE,GAIbrC,IAGF,iBAAM0B,GACJpS,KAAKqP,WAAU,GAAO,SAChBrP,KAAK4M,eAEN5M,KAAKqB,OAAUrB,KAAKiH,cACvBjH,KAAKuI,gBAAiB,GAI1B,sBAAM+J,CAAiBW,EAAuBpC,SAC5C,IAAI7Q,KAAKyI,YAAT,CAEAzI,KAAKuI,gBAAiB,EAEtB,IAIE,GAHqB0K,EAAchG,QAAQ7C,GACzCwD,MAAMxD,EAAKyD,aAEI3D,OAAS,EAGxB,OAFAlK,KAAKkM,YAAclM,KAAK2I,aAAa1J,uBACrCe,KAAKqP,WAAU,GAAM,GAUvB,IAAI6D,EANc,aAAdlT,KAAKyH,KACPzH,KAAKqB,MAAQ4R,EAAc/I,OAAS,EAAI,IAAI+I,GAAiB,GAE7DjT,KAAKqB,MAAQ4R,EAAc/I,OAAS,EAAI+I,EAAc,GAAK,KAI7D,MAAME,EAA2B,aAAdnT,KAAKyH,KAEtByL,EADEC,EACeF,EAAczF,KAAKpD,GAASA,EAAKgJ,gBACzCH,EAAc/I,OAAS,EACf+I,EAAc,GAAGG,cAEjBD,EAAa,GAAK,KAGrCjE,EAAUlP,KAAM,YAAa,CAC3BoO,MAAO8E,EACP/D,YAA+C,QAAnCpF,EAAC/J,KAAKwI,gBAA6B,IAAAuB,OAAA,EAAAA,EAAE1I,QAASwP,EAC1DzB,OAAiC,IAAzB6D,EAAc/I,OAAe,aAAUL,IAG7C7J,KAAKkM,cACPlM,KAAKkM,YAAc,IAGrBlM,KAAKqP,WAAU,GAAM,SACfrP,KAAK4M,eACX5M,KAAKsO,gBACL,MAAOP,GACPD,QAAQC,MAAM,8BAA+BA,GAC7C/N,KAAKkM,YAAclM,KAAK2I,aAAazJ,gBACrCc,KAAKqP,WAAU,GAAM,GA9CD,EAkDhB,sBAAAgE,CAAuBhS,GAC7BrB,KAAK4I,qBAAuBvH,EAGtB,cAAAiS,SACgB,QAAtBvJ,EAAA/J,KAAK0G,yBAAiB,IAAAqD,GAAAA,EAAE6E,QAGlB,oBAAArD,CAAqBwD,GAC3BxD,EAAqBwD,EAAO/O,KAAKqT,uBAAuB7C,KAAKxQ,OAGvD,qBAAA2L,GACN4H,EAAiBvT,KAAKqT,uBAAuB7C,KAAKxQ,OAG5C,qBAAA4L,GACN4H,EACExT,KAAK4I,qBACL5I,KAAKsT,eAAe9C,KAAKxQ,MACzBA,KAAKqT,uBAAuB7C,KAAKxQ,OAI7B,SAAAqP,CAAUoE,EAAqBC,GACrC,KAAK1T,KAAKwI,UAAcxI,KAAKwI,oBAAoBmL,kBAAmB,OAEpE,GAAI3T,KAAK2H,mBAIP,OAHA3H,KAAKsK,WAAWsJ,YAAY,CAAA,EAAI,GAAI5T,KAAKwI,UACzCxI,KAAK0L,YAAa,OAClB1L,KAAKoM,uBAAyB,IAI5BqH,IACFzT,KAAKuI,gBAAiB,GAGxB,MAAMsL,EACiB,OAArB7T,KAAKiH,cACyB,iBAArBjH,KAAKiH,aACgB,KAA5BjH,KAAKiH,YAAYkG,QAChBnD,MAAMC,QAAQjK,KAAKiH,cAClBjH,KAAKiH,YAAYiD,OAAS,GAC1BlK,KAAKiH,YAAY6M,MAAM1J,GAASA,GAAiB,KAATA,KAExC2J,GAAW/T,KAAKwI,SAASnH,MAAM8L,SAAW0G,EAC1CG,EAAahU,KAAKmH,SAExB,IAAI8M,EAAWjU,KAAKwI,SAASyL,SACzBC,EAAoBlU,KAAKwI,SAAS0L,kBAEtC,IACGlU,KAAKuI,iBACLkL,GACDzT,KAAKsI,eACH0L,IAAcD,GAKhB,OAHA/T,KAAKsK,WAAWsJ,YAAY,CAAA,EAAI,GAAI5T,KAAKwI,UACzCxI,KAAK0L,YAAa,OAClB1L,KAAKoM,uBAAyB,IAIhC,GAAI4H,GAAcD,EAehB,OAdAE,EAAW,IAAKA,EAAUE,cAAc,GACxCD,EACElU,KAAKkH,qBAAuBlH,KAAK2I,aAAa7J,iBAEhDkB,KAAKsK,WAAWsJ,YAAYK,EAAUC,EAAmBlU,KAAKwI,UAE9DxI,KAAK0L,WAAa1L,KAAKuI,gBAAkBkL,EACzCzT,KAAKoM,uBAAyB8H,EAE1BR,GACF1T,KAAKsK,WAAW8J,sBAGlBpU,KAAKsO,gBAIW,aAAdtO,KAAKyH,MAAsD,KAA/BzH,KAAKwI,SAASnH,MAAM8L,QAC9CnN,KAAKkM,cACPlM,KAAKkM,YAAc,IAInBlM,KAAKkM,cACP+H,EAAW,IAAKA,EAAUI,aAAa,GACvCH,EAAoBlU,KAAKkM,aAG3B,MAAMoI,GAAWL,EAASE,eAAiBF,EAASI,YAE/CC,GAAYJ,IACfA,EAAoBlU,KAAK2I,aAAa3J,uBAGxCgB,KAAKsK,WAAWsJ,YAAYK,EAAUC,EAAmBlU,KAAKwI,UAE9DxI,KAAK0L,YACF4I,IACAtU,KAAKuI,gBAAuC,KAArBvI,KAAKkM,aAAsBuH,GACrDzT,KAAKoM,uBAAyB8H,EAE1BR,GACF1T,KAAKsK,WAAW8J,iBAGlBpU,KAAKsO,gBAGC,SAAA9E,GACNxJ,KAAKqP,WAAU,GAAM,GAGf,gBAAA5F,GACNzJ,KAAKqB,MAAQ,KACTrB,KAAK0G,mBACP1G,KAAK0G,kBAAkByH,QAEzBnO,KAAKuI,gBAAiB,EAGjB,QAAAgM,GACL,OAAOvU,KAAKqB,MAGP,QAAAmT,CAASC,GACdzU,KAAKqB,MAAQoT,EACbzU,KAAKsO,woBAz/BNoG,GAAA,CAAAC,EAAS,CAAEC,KAAMC,UAIjBC,GAAA,CAAAH,EAAS,CAAEC,KAAMC,UAIjBE,GAAA,CAAAJ,EAAS,CAAEC,KAAMC,UAIjBG,GAAA,CAAAL,EAAS,CAAEC,KAAM5K,SAIjBiL,GAAA,CAAAN,EAAS,CAAEC,KAAMC,UAIjBK,GAAA,CAAAP,EAAS,CAAEC,KAAMO,WAIjBC,GAAA,CAAAT,EAAS,CAAEC,KAAMC,UAejBQ,GAAA,CAAAV,EAAS,CAAEC,KAAMC,UAIjBS,GAAA,CAAAX,EAAS,CAAEC,KAAM5K,SAIjBuL,GAAA,CAAAC,KAIAC,GAAA,CAAAd,EAAS,CAAEC,KAAM5K,SAIjB0L,GAAA,CAAAf,EAAS,CAAEC,KAAMC,UAIjBc,GAAA,CAAAhB,EAAS,CAAEC,KAAMC,UAIjBe,GAAA,CAAAjB,EAAS,CAAEC,KAAMO,WAIjBU,GAAA,CAAAlB,EAAS,CAAEC,KAAMO,WAMjBW,GAAA,CAAAnB,EAAS,CAAEC,KAAMO,WAIjBY,GAAA,CAAApB,EAAS,CAAEC,KAAMC,UAIjBmB,GAAA,CAAArB,EAAS,CAAEC,KAAMC,UAIjBoB,GAAA,CAAAtB,EAAS,CAAEC,KAAMO,WAIjBe,GAAA,CAAAvB,EAAS,CAAEC,KAAMC,UAIjBsB,GAAA,CAAAxB,EAAS,CAAEC,KAAMC,UAIjBuB,GAAA,CAAAzB,EAAS,CAAEC,KAAMC,UAIjBwB,GAAA,CAAA1B,EAAS,CAAEC,KAAMC,UAIjByB,GAAA,CAAA3B,EAAS,CAAEC,KAAMO,WAMjBoB,GAAA,CAAAf,KAOAgB,GAAA,CAAAhB,KAMAiB,GAAA,CAAAjB,SAOAkB,EAAM,UAMNC,GAAA,CAAAnB,KAIAoB,GAAA,CAAAjC,EAAS,CAAEC,KAAMiC,UAMjBC,GAAA,CAAAtB,KAMAuB,GAAA,CAAAvB,KAIAwB,GAAA,CAAAxB,KA5JDyB,EAAArX,GAAA,KAAA8U,GAAA,CAAAwC,KAAA,WAAAxM,KAAA,QAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,UAAAA,EAAAC,IAAAD,GAAAA,EAASzQ,MAAK7G,IAAA,CAAAsX,EAAAhW,KAAAgW,EAALzQ,MAAKvF,CAAA,GAAAkW,SAAAC,GAAAtX,GAAAE,IAId6W,EAAArX,GAAA,KAAAkV,GAAA,CAAAoC,KAAA,WAAAxM,KAAA,SAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAAStQ,OAAMhH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAANtQ,OAAM1F,CAAA,GAAAkW,SAAAC,GAAAnX,GAAAE,IAIf0W,EAAArX,GAAA,KAAAmV,GAAA,CAAAmC,KAAA,WAAAxM,KAAA,aAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAASrQ,WAAUjH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAVrQ,WAAU3F,CAAA,GAAAkW,SAAAC,GAAAhX,GAAAE,IAInBuW,EAAArX,GAAA,KAAAoV,GAAA,CAAAkC,KAAA,WAAAxM,KAAA,cAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAASpQ,YAAWlH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAXpQ,YAAW5F,CAAA,GAAAkW,SAAAC,GAAA7W,GAAAE,IAIpBoW,EAAArX,GAAA,KAAAqV,GAAA,CAAAiC,KAAA,WAAAxM,KAAA,sBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,wBAAAA,EAAAC,IAAAD,GAAAA,EAASnQ,oBAAmBnH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAnBnQ,oBAAmB7F,CAAA,GAAAkW,SAAAC,GAAA1W,GAAAE,IAI5BiW,EAAArX,GAAA,KAAAsV,GAAA,CAAAgC,KAAA,WAAAxM,KAAA,WAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASlQ,SAAQpH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAARlQ,SAAQ9F,CAAA,GAAAkW,SAAAC,GAAAvW,GAAAE,IAIjB8V,EAAArX,GAAA,KAAAwV,GAAA,CAAA8B,KAAA,WAAAxM,KAAA,OAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAASjQ,KAAIrH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAJjQ,KAAI/F,CAAA,GAAAkW,SAAAC,GAAApW,GAAAE,IAeb2V,EAAArX,GAAA,KAAAyV,GAAA,CAAA6B,KAAA,WAAAxM,KAAA,WAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAShQ,SAAQtH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAARhQ,SAAQhG,CAAA,GAAAkW,SAAAC,GAAAhW,GAAAE,IAIjBuV,EAAArX,GAAA,KAAA0V,GAAA,CAAA4B,KAAA,WAAAxM,KAAA,UAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAAS/P,QAAOvH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAP/P,QAAOjG,CAAA,GAAAkW,SAAAC,GAAA7V,GAAAE,IAIhBoV,EAAArX,GAAA,KAAA2V,GAAA,CAAA2B,KAAA,WAAAxM,KAAA,yBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,2BAAAA,EAAAC,IAAAD,GAAAA,EAAiB9P,uBAAsBxH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAtB9P,uBAAsBlG,CAAA,GAAAkW,SAAAC,GAAA1V,GAAAE,IAIvCiV,EAAArX,GAAA,KAAA6V,GAAA,CAAAyB,KAAA,WAAAxM,KAAA,SAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,WAAAA,EAAAC,IAAAD,GAAAA,EAAS7P,OAAMzH,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAN7P,OAAMnG,CAAA,GAAAkW,SAAAC,GAAAvV,GAAAE,IAIf8U,EAAArX,GAAA,KAAA8V,GAAA,CAAAwB,KAAA,WAAAxM,KAAA,OAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,SAAAA,EAAAC,IAAAD,GAAAA,EAAS5P,KAAI1H,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAJ5P,KAAIpG,CAAA,GAAAkW,SAAAC,GAAApV,GAAAE,IAIb2U,EAAArX,GAAA,KAAA+V,GAAA,CAAAuB,KAAA,WAAAxM,KAAA,UAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAAS3P,QAAO3H,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAP3P,QAAOrG,CAAA,GAAAkW,SAAAC,GAAAjV,GAAAE,IAIhBwU,EAAArX,GAAA,KAAAgW,GAAA,CAAAsB,KAAA,WAAAxM,KAAA,qBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,uBAAAA,EAAAC,IAAAD,GAAAA,EAAS1P,mBAAkB5H,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAlB1P,mBAAkBtG,CAAA,GAAAkW,SAAAC,GAAA9U,GAAAE,IAI3BqU,EAAArX,GAAA,KAAAiW,GAAA,CAAAqB,KAAA,WAAAxM,KAAA,WAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAASzP,SAAQ7H,IAAA,CAAAsX,EAAAhW,KAAAgW,EAARzP,SAAQvG,CAAA,GAAAkW,SAAAC,GAAA3U,GAAAE,IAMjBkU,EAAArX,GAAA,KAAAkW,GAAA,CAAAoB,KAAA,WAAAxM,KAAA,uBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,yBAAAA,EAAAC,IAAAD,GAAAA,EAASxP,qBAAoB9H,IAAA,CAAAsX,EAAAhW,KAAAgW,EAApBxP,qBAAoBxG,CAAA,GAAAkW,SAAAC,GAAAxU,GAAAE,IAI7B+T,EAAArX,GAAA,KAAAmW,GAAA,CAAAmB,KAAA,WAAAxM,KAAA,UAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAASvP,QAAO/H,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAPvP,QAAOzG,CAAA,GAAAkW,SAAAC,GAAArU,GAAAE,IAIhB4T,EAAArX,GAAA,KAAAoW,GAAA,CAAAkB,KAAA,WAAAxM,KAAA,UAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,YAAAA,EAAAC,IAAAD,GAAAA,EAAStP,QAAOhI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAPtP,QAAO1G,CAAA,GAAAkW,SAAAC,GAAAlU,GAAAE,IAIhByT,EAAArX,GAAA,KAAAqW,GAAA,CAAAiB,KAAA,WAAAxM,KAAA,mBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,qBAAAA,EAAAC,IAAAD,GAAAA,EAASrP,iBAAgBjI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAhBrP,iBAAgB3G,CAAA,GAAAkW,SAAAC,GAAA/T,GAAAE,IAIzBsT,EAAArX,GAAA,KAAAsW,GAAA,CAAAgB,KAAA,WAAAxM,KAAA,iBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAASpP,eAAclI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAdpP,eAAc5G,CAAA,GAAAkW,SAAAC,GAAA5T,GAAAE,IAIvBmT,EAAArX,GAAA,KAAAuW,GAAA,CAAAe,KAAA,WAAAxM,KAAA,aAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,eAAAA,EAAAC,IAAAD,GAAAA,EAASnP,WAAUnI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAVnP,WAAU7G,CAAA,GAAAkW,SAAAC,GAAAzT,GAAAE,IAInBgT,EAAArX,GAAA,KAAAwW,GAAA,CAAAc,KAAA,WAAAxM,KAAA,mBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,qBAAAA,EAAAC,IAAAD,GAAAA,EAASlP,iBAAgBpI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAhBlP,iBAAgB9G,CAAA,GAAAkW,SAAAC,GAAAtT,GAAAE,IAIzB6S,EAAArX,GAAA,KAAAyW,GAAA,CAAAa,KAAA,WAAAxM,KAAA,eAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAASjP,aAAYrI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAZjP,aAAY/G,CAAA,GAAAkW,SAAAC,GAAAnT,GAAAE,IAIrB0S,EAAArX,GAAA,KAAA0W,GAAA,CAAAY,KAAA,WAAAxM,KAAA,iBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAAShP,eAActI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAdhP,eAAchH,CAAA,GAAAkW,SAAAC,GAAAhT,GAAAE,IAMvBuS,EAAArX,GAAA,KAAA2W,GAAA,CAAAW,KAAA,WAAAxM,KAAA,cAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAAiB/O,YAAWvI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAX/O,YAAWjH,CAAA,GAAAkW,SAAAC,GAAA7S,GAAAE,IAO5BoS,EAAArX,GAAA,KAAA4W,GAAA,CAAAU,KAAA,WAAAxM,KAAA,iBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,mBAAAA,EAAAC,IAAAD,GAAAA,EAAiB9O,eAAcxI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAd9O,eAAclH,CAAA,GAAAkW,SAAAC,GAAA1S,GAAAE,IAM/BiS,EAAArX,GAAA,KAAA6W,GAAA,CAAAS,KAAA,WAAAxM,KAAA,oBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,sBAAAA,EAAAC,IAAAD,GAAAA,EAAiB3Q,kBAAiB3G,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAjB3Q,kBAAiBrF,CAAA,GAAAkW,SAAAC,GAAAvS,GAAAE,IAOlC8R,EAAArX,GAAA,KAAA6X,GAAA,CAAAP,KAAA,WAAAxM,KAAA,WAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,aAAAA,EAAAC,IAAAD,GAAAA,EAAiB7O,SAAQzI,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAR7O,SAAQnH,CAAA,GAAAkW,SAAAC,GAAApS,GAAAE,IAMzB2R,EAAArX,GAAA,KAAA+W,GAAA,CAAAO,KAAA,WAAAxM,KAAA,cAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAAiB5O,YAAW1I,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAX5O,YAAWpH,CAAA,GAAAkW,SAAAC,GAAAjS,GAAAE,IAI5BwR,EAAArX,GAAA,KAAAgX,GAAA,CAAAM,KAAA,WAAAxM,KAAA,cAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,gBAAAA,EAAAC,IAAAD,GAAAA,EAAS3O,YAAW3I,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAX3O,YAAWrH,CAAA,GAAAkW,SAAAC,GAAA9R,GAAAE,IAMpBqR,EAAArX,GAAA,KAAAkX,GAAA,CAAAI,KAAA,WAAAxM,KAAA,eAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,iBAAAA,EAAAC,IAAAD,GAAAA,EAAS1O,aAAY5I,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAZ1O,aAAYtH,CAAA,GAAAkW,SAAAC,GAAA3R,GAAAE,IAMrBkR,EAAArX,GAAA,KAAAmX,GAAA,CAAAG,KAAA,WAAAxM,KAAA,uBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,yBAAAA,EAAAC,IAAAD,GAAAA,EAAiBzO,qBAAoB7I,IAAA,CAAAsX,EAAAhW,KAAAgW,EAApBzO,qBAAoBvH,CAAA,GAAAkW,SAAAC,GAAAxR,GAAAE,IAIrC+Q,EAAArX,GAAA,KAAAoX,GAAA,CAAAE,KAAA,WAAAxM,KAAA,yBAAA+H,QAAA,EAAA0E,SAAA,EAAAC,OAAA,CAAAnJ,IAAAoJ,GAAA,2BAAAA,EAAAC,IAAAD,GAAAA,EAAiBxO,uBAAsB9I,IAAA,CAAAsX,EAAAhW,KAAAgW,EAAtBxO,uBAAsBxH,CAAA,GAAAkW,SAAAC,GAAArR,GAAAE,IArKzC4Q,EAAA,KAAAS,GAAA,CAAArW,MAAAzB,IAAA+X,GAAA,CAAAT,KAAA,QAAAxM,KAAA9K,GAAA8K,KAAA6M,SAAAC,GAAA,KAAAI,qHACkBhY,GAAAiY,OAAS,CACvBC,EAAUC,GACVD,EAAUnL,IAHD1M,EAAAL,GAAAgY,QAAU"}
@@ -7,7 +7,7 @@ type SupportedLocale = (typeof langsArray)[number];
7
7
  declare const DateRangePicker_base: (new (...args: any[]) => import("../../../common/mixins/form-input").FormMixinInterface) & typeof LitElement;
8
8
  /**
9
9
  * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`
10
- * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dataString: string,dates:[],source:string}`
10
+ * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dateString: string,dates:[],source:string}`
11
11
  * @slot tooltip - Slot for tooltip.
12
12
  * @attr {string} [name=''] - The name of the input, used for form submission.
13
13
  * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.
@@ -1 +1 @@
1
- {"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport { DateRangeEditableMode } from '../../../common/helpers/flatpickr';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n updateEnableTime,\n hideEmptyYear,\n getModalContainer,\n applyDateRangeEditingRestrictions,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport { BaseOptions } from 'flatpickr/dist/types/options';\nimport type { Instance } from 'flatpickr/dist/types/instance';\n\nimport DateRangePickerStyles from './daterangepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n pleaseSelectValidDate: 'Please select a valid date',\n pleaseSelectBothDates: 'Please select a start and end date.',\n dateRange: 'Date range',\n noDateSelected: 'No dates selected',\n startDateSelected: 'Start date selected: {0}. Please select end date.',\n invalidDateRange:\n 'Invalid date range: End date cannot be earlier than start date',\n dateRangeSelected: 'Selected date range: {0} to {1}',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dataString: string,dates:[],source:string}`\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DateRangePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For range mode, provide an array of date strings matching dateFormat (e.g. [\"2024-01-01\", \"2024-01-07\"]). */\n @property({ type: Array })\n accessor defaultDate: string[] | null = null;\n\n /** Controls which parts of the date range are editable.\n * Possible values:\n * - \"both\" (default): Both start and end dates can be edited\n * - \"start\": Only the start date can be edited, end date is locked once set\n * - \"end\": Only the end date can be edited, start date is locked once set\n * - \"none\": Neither date can be edited once set (similar to readonly)\n */\n @property({ type: String })\n accessor rangeEditMode: DateRangeEditableMode = DateRangeEditableMode.BOTH;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /**\n * Sets the date/time value for the component.\n *\n * For controlled usage patterns, this property allows parent components to directly control the selected date.\n * When used together with defaultDate, value takes precedence if both are provided.\n *\n * In uncontrolled usage, this is populated automatically based on defaultDate and user selections.\n * @internal\n */\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets date range picker form input value to required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor dateRangePickerDisabled = false;\n\n /** Sets entire date range picker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24-hour formatting true/false.\n * Defaults to 12H for all `en-` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: Instance | undefined;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | any;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected\n * @internal\n */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Store submit event listener reference for cleanup\n * @internal\n */\n private _submitListener: ((e: Event) => void) | null = null;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.warn('DateRangePicker update info:', error.message);\n }\n }\n }, 100);\n\n private handleResize = this.debounce(async () => {\n if (this.flatpickrInstance) {\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.debug('DateRangePicker resize info:', error.message);\n }\n }\n }\n }, 250);\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n window.addEventListener('resize', this.handleResize);\n\n if (this._internals.form) {\n this._submitListener = (e: Event) => {\n this._validate(true, true);\n if (!this._internals.checkValidity()) {\n e.preventDefault();\n }\n };\n this._internals.form.addEventListener('submit', this._submitListener);\n }\n\n if (\n (!this.value ||\n (Array.isArray(this.value) &&\n this.value.every((date) => date === null))) &&\n this.defaultDate\n ) {\n this._hasInitialDefaultDate = true;\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n }\n }\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n\n if (this._internals.form && this._submitListener) {\n this._internals.form.removeEventListener('submit', this._submitListener);\n this._submitListener = null;\n }\n\n this.flatpickrInstance?.destroy();\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value && Array.isArray(this.value) && this.value.length === 2) {\n return this.value[0] !== null || this.value[1] !== null;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue() {\n if (this._internals && this._inputEl) {\n if (this.value[0] && this.value[1]) {\n const formattedValue = [\n this.value[0].toISOString(),\n this.value[1].toISOString(),\n ].join(',');\n this._internals.setFormValue(formattedValue);\n\n if (this.name) {\n this._inputEl.setAttribute('value', formattedValue);\n }\n } else {\n this._internals.setFormValue('');\n }\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? `${this.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-range-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n const showClearButton =\n this.hasValue() &&\n !this.readonly &&\n this.rangeEditMode !== DateRangeEditableMode.START &&\n this.rangeEditMode !== DateRangeEditableMode.END &&\n this.rangeEditMode !== DateRangeEditableMode.NONE;\n\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n ?readonly=${this.readonly}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings.requiredText}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?readonly=${!this.dateRangePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${showClearButton\n ? html`<kyn-button\n ?disabled=${this.dateRangePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>`\n : html`<span\n class=\"input-icon ${this.dateRangePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >${unsafeSVG(calendarIcon)}</span\n >`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.dateRangePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`\n <div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >\n ${unsafeSVG(errorIcon)}\n </span>\n ${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>\n `;\n }\n\n if (this.warnText) {\n return html`\n <div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>\n `;\n }\n\n return null;\n }\n\n private getDateRangePickerClasses() {\n return {\n 'date-range-picker': true,\n 'date-range-picker__enable-time': this._enableTime,\n 'date-range-picker__disabled': this.dateRangePickerDisabled,\n };\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr || !dateStr.trim()) return null;\n dateStr = dateStr.trim();\n\n const dateFormat = this.dateFormat || 'Y-m-d';\n\n if (dateStr.includes('T')) {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n }\n\n if (dateStr.includes(' ')) {\n const parts = dateStr.split(/\\s+/);\n const datePart = parts[0];\n const timePart = parts[1] || '';\n let ampm = parts[2] ? parts[2].toUpperCase() : undefined;\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n if (!year || !month || !day) return null;\n\n let hours = 0,\n minutes = 0,\n seconds = 0;\n if (timePart) {\n const timeComponents = timePart.split(':');\n hours = parseInt(timeComponents[0], 10);\n if (timeComponents.length > 1) {\n if (timeComponents[1].includes(' ')) {\n const [mins, token] = timeComponents[1].split(' ');\n minutes = parseInt(mins, 10);\n ampm = token ? token.toUpperCase() : ampm;\n } else {\n minutes = parseInt(timeComponents[1], 10);\n }\n }\n if (timeComponents.length > 2) {\n seconds = parseInt(timeComponents[2], 10);\n }\n if (ampm) {\n if (ampm === 'PM' && hours < 12) {\n hours += 12;\n } else if (ampm === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n }\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n return isNaN(date.getTime()) ? null : date;\n }\n\n const formats: { [key: string]: RegExp } = {\n 'Y-m-d': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'm-d-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'd-m-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'Y-m-d h:i K': /^\\d{4}-\\d{2}-\\d{2}( \\d{1,2}:\\d{2} [AP]M)?$/,\n };\n const pattern = formats[dateFormat];\n if (!pattern || !pattern.test(dateStr)) return null;\n\n const datePart = dateStr.split(' ')[0];\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n if (!year || !month || !day) return null;\n const date = new Date(year, month - 1, day);\n return isNaN(date.getTime()) ? null : date;\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n\n this._enableTime = updateEnableTime(this.dateFormat);\n\n await this.updateComplete;\n this.setupAnchor();\n\n const valueEmpty =\n !this.value ||\n (Array.isArray(this.value) &&\n this.value.length === 2 &&\n this.value[0] === null &&\n this.value[1] === null);\n\n if (valueEmpty && this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (processedDates.length === 1) {\n this.value = [processedDates[0], null];\n this._hasInteracted = true;\n } else if (processedDates.length >= 2) {\n this.value = [processedDates[0], processedDates[1]];\n }\n\n if (this.value[0] !== null || this.value[1] !== null) {\n this.updateFormValue();\n }\n\n this._validate(true, false);\n }\n }\n\n setTimeout(() => {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n this._validate(true, false);\n } else if (\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n ((this.value[0] !== null && this.value[1] === null) ||\n (this.value[0] === null && this.value[1] !== null))\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }, 0);\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n\n if (\n this.flatpickrInstance &&\n this.rangeEditMode !== DateRangeEditableMode.BOTH\n ) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n if (this.dateRangePickerDisabled || this.readonly) {\n this.flatpickrInstance?.close();\n return;\n } else if (this.value[0] && this.value[1]) {\n this.setInitialDates();\n }\n }\n\n if (changedProperties.has('rangeEditMode') && this.flatpickrInstance) {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[1]]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[0]]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.flatpickrInstance.destroy();\n setTimeout(() => {\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }, 0);\n }\n\n if (\n changedProperties.has('value') &&\n !this.dateRangePickerDisabled &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n const newValue = this.value;\n if (Array.isArray(newValue) && newValue.every((v) => v === null)) {\n this._isClearing = true;\n this.flatpickrInstance.clear();\n this._isClearing = false;\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n } else {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (\n currentDates.length !== 2 ||\n !currentDates[0] ||\n !currentDates[1] ||\n currentDates[0].getTime() !== newValue[0]?.getTime() ||\n currentDates[1].getTime() !== newValue[1]?.getTime()\n ) {\n this.setInitialDates();\n }\n\n if (\n (newValue[0] !== null && newValue[1] === null) ||\n (newValue[0] === null && newValue[1] !== null)\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }\n }\n\n if (changedProperties.has('defaultDate')) {\n if (\n this.defaultDate &&\n (!this.value || this.value.every((v) => v === null))\n ) {\n const dates = this.processDefaultDates(this.defaultDate);\n this.value =\n dates.length === 2\n ? ([dates[0], dates[1]] as [Date, Date])\n : dates.length === 1\n ? ([dates[0], null] as [Date, null])\n : ([null, null] as [null, null]);\n\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[1],\n ]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[0],\n ]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.updateFormValue();\n this.requestUpdate();\n }\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')) &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n this.updateFlatpickrOptions();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ) {\n if (this.rangeEditMode === DateRangeEditableMode.NONE) {\n return;\n }\n\n const newValue: [Date | null, Date | null] = [null, null];\n const preservedDateExists = false;\n\n this.value = newValue;\n this.defaultDate = null;\n\n if (preservedDateExists) {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n\n const datesToSet = newValue.filter(\n (date): date is Date => date !== null\n );\n if (datesToSet.length > 0) {\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n }\n\n this.updateFormValue();\n } else {\n await clearFlatpickrInput(this.flatpickrInstance, this._inputEl, () => {\n this.updateFormValue();\n });\n }\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: this._inputEl?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n public async handleClose() {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n public async initializeFlatpickr() {\n if (!this._inputEl) {\n console.warn('Cannot initialize Flatpickr: input element not available');\n return;\n }\n\n if (!this.dateFormat) {\n console.warn('Date format not set, using default Y-m-d');\n this.dateFormat = 'Y-m-d';\n }\n\n try {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n if (!instance?.calendarContainer) {\n throw new Error('Calendar container not available');\n }\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: () => this.setInitialDates(),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n public async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n public async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale || 'en',\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 'range',\n closeOnSelect: false,\n allowInput: this.allowManualInput,\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n const origOnOpen = options.onOpen;\n options.onOpen = (selectedDates, dateStr, instance) => {\n if (typeof origOnOpen === 'function') {\n origOnOpen(selectedDates, dateStr, instance);\n } else if (Array.isArray(origOnOpen)) {\n origOnOpen.forEach((fn) => fn(selectedDates, dateStr, instance));\n }\n setTimeout(() => {\n const firstDay = instance.calendarContainer.querySelector<HTMLElement>(\n '.flatpickr-day:not(.flatpickr-disabled)'\n );\n if (firstDay) firstDay.focus();\n }, 0);\n };\n\n const origOnReady = options.onReady;\n options.onReady = (_sel, _str, instance) => {\n if (typeof origOnReady === 'function') {\n origOnReady(_sel, _str, instance);\n } else if (Array.isArray(origOnReady)) {\n origOnReady.forEach((fn) => fn(_sel, _str, instance));\n }\n const handler = (e: KeyboardEvent) => {\n if (e.key !== 'Enter') return;\n const target = e.target as HTMLElement & { dateObj: Date };\n if (\n !target.classList.contains('flatpickr-day') ||\n target.classList.contains('flatpickr-disabled')\n ) {\n return;\n }\n e.preventDefault();\n const sel = instance.selectedDates;\n if (sel.length === 0) {\n instance.setDate([target.dateObj], true);\n } else if (sel.length === 1) {\n instance.setDate([sel[0], target.dateObj], true);\n instance.close();\n }\n };\n instance.calendarContainer.addEventListener('keydown', handler);\n };\n\n if (this.rangeEditMode !== DateRangeEditableMode.BOTH) {\n return applyDateRangeEditingRestrictions(\n options,\n this.rangeEditMode,\n this.value,\n {\n lockedStartDate: this._textStrings.lockedStartDate,\n lockedEndDate: this._textStrings.lockedEndDate,\n dateLocked: this._textStrings.dateLocked,\n dateNotAvailable: this._textStrings.dateNotAvailable,\n dateInSelectedRange: this._textStrings.dateInSelectedRange,\n }\n );\n }\n\n return options;\n }\n\n public setInitialDates() {\n if (!this.flatpickrInstance) return;\n\n try {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const hasValidValue =\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n (this.value[0] !== null || this.value[1] !== null);\n\n if (!hasValidValue && this.defaultDate) {\n const validDates = this.processDefaultDates(this.defaultDate);\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this.value = validDates as [Date, Date];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n } else if (validDates.length === 1) {\n this.flatpickrInstance.setDate([validDates[0]], true);\n this.flatpickrInstance.redraw();\n this.value = [validDates[0], null];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n this._validate(true, false);\n }\n return;\n }\n\n if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = (this.value as (string | Date)[])\n .map((d) => (d instanceof Date ? d : this.parseDateString(d)))\n .filter((d): d is Date => d !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n }\n }\n } catch (e) {\n console.error('Error in setInitialDates:', (e as Error).message);\n }\n }\n\n public handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n this._shouldFlatpickrOpen = true;\n\n this._isInvalid = false;\n this.requestUpdate();\n }\n\n public async handleDateChange(selectedDates: Date[], dateStr: string) {\n this._hasInteracted = true;\n\n if (this._isClearing) return;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n emitValue(this, 'on-change', { dates: this.value, source: 'clear' });\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n\n if (this._inputEl) {\n this._inputEl.value = dateStr;\n this.updateFormValue();\n }\n\n emitValue(this, 'on-change', {\n dates: [selectedDates[0].toISOString()],\n dateString: dateStr,\n source: 'date-selection',\n });\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n const iso = selectedDates.map((d) => d.toISOString());\n const display = this.flatpickrInstance!.input.value;\n emitValue(this, 'on-change', {\n dates: iso,\n dateString: display,\n source: 'date-selection',\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n }\n\n private updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (!this._inputEl) return;\n const announcer = this.shadowRoot?.getElementById(\n `${this._inputEl.id}-announcer`\n );\n\n if (!announcer) return;\n\n let announcement = '';\n\n if (selectedDates.length === 0) {\n announcement = this._textStrings.noDateSelected;\n } else if (selectedDates.length === 1) {\n announcement = this._textStrings.startDateSelected.replace(\n '{0}',\n selectedDates[0].toLocaleDateString(this.locale)\n );\n } else {\n announcement = this._textStrings.dateRangeSelected\n .replace('{0}', selectedDates[0].toLocaleDateString(this.locale))\n .replace('{1}', selectedDates[1].toLocaleDateString(this.locale));\n }\n\n announcer.textContent = announcement;\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input click event:', e);\n }\n }\n\n private handleInputFocusEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input focus event:', e);\n }\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const rawValues = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const parsed = rawValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const validDates = parsed.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n if (validDates.length === 2 && validDates[1] < validDates[0]) {\n console.error(\n 'Invalid date range: End date cannot be earlier than start date'\n );\n this.invalidText = this._textStrings.invalidDateRange;\n return [validDates[0]];\n }\n\n const min = this.minDate\n ? this.parseDateString(this.minDate as string)\n : null;\n const max = this.maxDate\n ? this.parseDateString(this.maxDate as string)\n : null;\n\n const inRange = validDates.filter((d) => {\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (inRange.length !== validDates.length) {\n console.error('Invalid date(s) provided in defaultDate', inRange);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return inRange;\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.dateRangePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const shouldShowValidationErrors =\n this._hasInteracted || report || !!this.invalidText;\n\n const selectedCount = [this.value[0], this.value[1]].filter(\n (d) => d !== null\n ).length;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (this.flatpickrInstance?.isOpen) {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n } else if (selectedCount === 1) {\n validity = { ...validity, customError: true };\n validationMessage = this._textStrings.pleaseSelectBothDates;\n } else if (this.required && selectedCount === 0) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n } else {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = !isValid && shouldShowValidationErrors;\n this._internalValidationMsg = validationMessage;\n\n if (report) this._internals.reportValidity();\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n this.flatpickrInstance?.clear();\n this._hasInteracted = false;\n this._validate(false, false);\n }\n\n public getValue(): [Date | null, Date | null] {\n return this.value;\n }\n\n public setValue(newValue: [Date | null, Date | null]): void {\n this.value = newValue;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","pleaseSelectBothDates","dateRange","noDateSelected","startDateSelected","invalidDateRange","dateRangeSelected","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DateRangePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DateRangePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DateRangePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DateRangePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DateRangePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DateRangePicker_rangeEditMode_accessor_storage","_defaultDate_extraInitializers","_rangeEditMode_initializers","DateRangeEditableMode","BOTH","_DateRangePicker_defaultErrorMessage_accessor_storage","_rangeEditMode_extraInitializers","_defaultErrorMessage_initializers","value","_DateRangePicker_warnText_accessor_storage","_warnText_initializers","_DateRangePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DateRangePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DateRangePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DateRangePicker_caption_accessor_storage","_enable_extraInitializers","_caption_initializers","_DateRangePicker_required_accessor_storage","_caption_extraInitializers","_required_initializers","_DateRangePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","_DateRangePicker_dateRangePickerDisabled_accessor_storage","_size_extraInitializers","_dateRangePickerDisabled_initializers","_DateRangePicker_readonly_accessor_storage","_dateRangePickerDisabled_extraInitializers","_readonly_initializers","_DateRangePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DateRangePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DateRangePicker_allowManualInput_accessor_storage","_minDate_extraInitializers","_allowManualInput_initializers","_DateRangePicker_maxDate_accessor_storage","_allowManualInput_extraInitializers","_maxDate_initializers","_DateRangePicker_errorAriaLabel_accessor_storage","_maxDate_extraInitializers","_errorAriaLabel_initializers","_DateRangePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DateRangePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DateRangePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DateRangePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DateRangePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DateRangePicker_flatpickrInstance_accessor_storage","__enableTime_extraInitializers","_flatpickrInstance_initializers","_DateRangePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DateRangePicker__hasInteracted_accessor_storage","__inputEl_extraInitializers","__hasInteracted_initializers","_DateRangePicker_textStrings_accessor_storage","__hasInteracted_extraInitializers","_textStrings_initializers","_DateRangePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DateRangePicker__isClearing_accessor_storage","__textStrings_extraInitializers","__isClearing_initializers","_DateRangePicker__shouldFlatpickrOpen_accessor_storage","__isClearing_extraInitializers","__shouldFlatpickrOpen_initializers","_DateRangePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_submitListener","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","process","env","NODE_ENV","Error","message","includes","console","warn","handleResize","debug","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","rangeEditMode","defaultErrorMessage","warnText","disable","_processedDisableDates","enable","caption","required","size","dateRangePickerDisabled","readonly","twentyFourHourFormat","minDate","allowManualInput","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_inputEl","_hasInteracted","textStrings","_textStrings","_isClearing","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","apply","connectedCallback","super","addEventListener","_onChange","_handleFormReset","_internals","form","e","_validate","checkValidity","preventDefault","Array","isArray","every","date","length","disconnectedCallback","removeEventListener","_a","destroy","hasValue","updateFormValue","formattedValue","toISOString","join","setFormValue","name","setAttribute","render","errorId","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","showClearButton","START","END","NONE","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","key","errorIcon","_internalValidationMsg","parseDateString","dateStr","trim","Date","isNaN","getTime","parts","split","datePart","timePart","ampm","toUpperCase","undefined","dateTokens","map","Number","year","month","day","hours","minutes","seconds","timeComponents","parseInt","mins","token","pattern","test","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateEnableTime","updateComplete","setupAnchor","processedDates","processDefaultDates","updated","has","updateFlatpickrOptions","close","setInitialDates","processedDate","then","input","redraw","newValue","v","clear","currentDates","selectedDates","_b","_c","dates","requestUpdate","syncAllowInput","readOnly","_clearInput","options","reinitFlatpickr","clearFlatpickrInput","emitValue","dateString","source","event","stopPropagation","handleClose","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","container","getModalContainer","document","body","hideEmptyYear","enableTime","mode","closeOnSelect","allowInput","loadLocale","onOpen","handleOpen","bind","onClose","onChange","handleDateChange","appendTo","noCalendar","static","origOnOpen","forEach","fn","firstDay","querySelector","focus","origOnReady","onReady","_sel","_str","target","classList","contains","sel","setDate","dateObj","applyDateRangeEditingRestrictions","validDates","d","filter","iso","display","updateSelectedDateRangeAria","announcer","shadowRoot","getElementById","id","announcement","replace","toLocaleDateString","textContent","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","isOpen","open","handleInputFocus","min","max","inRange","interacted","report","HTMLInputElement","setValidity","shouldShowValidationErrors","selectedCount","validity","validationMessage","valueMissing","customError","isValid","reportValidity","getValue","setValue","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_rangeEditMode_decorators","_defaultErrorMessage_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_caption_decorators","_required_decorators","Boolean","_size_decorators","_dateRangePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_allowManualInput_decorators","_maxDate_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","_flatpickrInstance_decorators","query","__hasInteracted_decorators","_textStrings_decorators","Object","__textStrings_decorators","__isClearing_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","_defaultErrorMessage_extraInitializers","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DateRangePickerStyles"],"mappings":"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"}
1
+ {"version":3,"file":"daterangepicker.js","sources":["../../../../src/components/reusable/daterangepicker/daterangepicker.ts"],"sourcesContent":["import { html, LitElement, PropertyValues, unsafeCSS } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { FormMixin } from '../../../common/mixins/form-input';\nimport { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';\nimport { langsArray } from '../../../common/flatpickrLangs';\nimport { DateRangeEditableMode } from '../../../common/helpers/flatpickr';\nimport {\n injectFlatpickrStyles,\n initializeSingleAnchorFlatpickr,\n getFlatpickrOptions,\n getPlaceholder,\n preventFlatpickrOpen,\n handleInputClick,\n handleInputFocus,\n setCalendarAttributes,\n loadLocale,\n emitValue,\n updateEnableTime,\n hideEmptyYear,\n getModalContainer,\n applyDateRangeEditingRestrictions,\n clearFlatpickrInput,\n} from '../../../common/helpers/flatpickr';\nimport '../../reusable/button';\n\nimport { BaseOptions } from 'flatpickr/dist/types/options';\nimport type { Instance } from 'flatpickr/dist/types/instance';\n\nimport DateRangePickerStyles from './daterangepicker.scss?inline';\nimport ShidokaFlatpickrTheme from '../../../common/scss/shidoka-flatpickr-theme.scss?inline';\n\nimport errorIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-filled.svg';\nimport calendarIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/24/calendar.svg';\nimport clearIcon from '@kyndryl-design-system/shidoka-icons/svg/monochrome/16/close-simple.svg';\n\ntype SupportedLocale = (typeof langsArray)[number];\n\nconst _defaultTextStrings = {\n requiredText: 'Required',\n clearAll: 'Clear',\n pleaseSelectDate: 'Please select a date',\n pleaseSelectValidDate: 'Please select a valid date',\n pleaseSelectBothDates: 'Please select a start and end date.',\n dateRange: 'Date range',\n noDateSelected: 'No dates selected',\n startDateSelected: 'Start date selected: {0}. Please select end date.',\n invalidDateRange:\n 'Invalid date range: End date cannot be earlier than start date',\n dateRangeSelected: 'Selected date range: {0} to {1}',\n\n lockedStartDate: 'Start date is locked',\n lockedEndDate: 'End date is locked',\n dateLocked: 'Date is locked',\n dateNotAvailable: 'Date is not available',\n dateInSelectedRange: 'Date is in selected range',\n};\n\n/**\n * Date Range Picker: uses Flatpickr library, range picker implementation -- `https://flatpickr.js.org/examples/#range-calendar`\n * @fires on-change - Captures the input event and emits the selected value and original event details. `detail:{ dateString: string,dates:[],source:string}`\n * @slot tooltip - Slot for tooltip.\n * @attr {string} [name=''] - The name of the input, used for form submission.\n * @attr {string} [invalidText=''] - The custom validation message when the input is invalid.\n */\n@customElement('kyn-date-range-picker')\nexport class DateRangePicker extends FormMixin(LitElement) {\n static override styles = [\n unsafeCSS(DateRangePickerStyles),\n unsafeCSS(ShidokaFlatpickrTheme),\n ];\n\n /** Label text. */\n @property({ type: String })\n accessor label = '';\n\n /** Sets and dynamically imports specific l10n calendar localization. */\n @property({ type: String })\n accessor locale: SupportedLocale | string = 'en';\n\n /** Sets flatpickr value to define how the date will be displayed in the input box (ex: `Y-m-d H:i`). */\n @property({ type: String })\n accessor dateFormat = 'Y-m-d';\n\n /** Sets the initial selected date(s). For range mode, provide an array of date strings matching dateFormat (e.g. [\"2024-01-01\", \"2024-01-07\"]). */\n @property({ type: Array })\n accessor defaultDate: string[] | null = null;\n\n /** Controls which parts of the date range are editable.\n * Possible values:\n * - \"both\" (default): Both start and end dates can be edited\n * - \"start\": Only the start date can be edited, end date is locked once set\n * - \"end\": Only the end date can be edited, start date is locked once set\n * - \"none\": Neither date can be edited once set (similar to readonly)\n */\n @property({ type: String })\n accessor rangeEditMode: DateRangeEditableMode = DateRangeEditableMode.BOTH;\n\n /** Sets default error message. */\n @property({ type: String })\n accessor defaultErrorMessage = '';\n\n /**\n * Sets the date/time value for the component.\n *\n * For controlled usage patterns, this property allows parent components to directly control the selected date.\n * When used together with defaultDate, value takes precedence if both are provided.\n *\n * In uncontrolled usage, this is populated automatically based on defaultDate and user selections.\n * @internal\n */\n override value: [Date | null, Date | null] = [null, null];\n\n /** Sets validation warning messaging. */\n @property({ type: String })\n accessor warnText = '';\n\n /** Sets flatpickr options setting to disable specific dates. Accepts array of dates in Y-m-d format, timestamps, or Date objects. */\n @property({ type: Array })\n accessor disable: (string | number | Date)[] = [];\n\n /** Internal storage for processed disable dates */\n @state()\n private accessor _processedDisableDates: (string | number | Date)[] = [];\n\n /** Sets flatpickr options setting to enable specific dates. */\n @property({ type: Array })\n accessor enable: (string | number | Date)[] = [];\n\n /** Sets caption to be displayed under primary date picker elements. */\n @property({ type: String })\n accessor caption = '';\n\n /** Sets date range picker form input value to required. */\n @property({ type: Boolean })\n accessor required = false;\n\n /** Input size. \"sm\", \"md\", or \"lg\". */\n @property({ type: String })\n accessor size = 'md';\n\n /** Sets entire date range picker form element to enabled/disabled. */\n @property({ type: Boolean })\n accessor dateRangePickerDisabled = false;\n\n /** Sets entire date range picker form element to readonly. */\n @property({ type: Boolean })\n accessor readonly = false;\n\n /** Sets 24-hour formatting true/false.\n * Defaults to 12H for all `en-` locales and 24H for all other locales.\n */\n @property({ type: Boolean })\n accessor twentyFourHourFormat: boolean | null = null;\n\n /** Sets lower boundary of date range picker date selection. */\n @property({ type: String })\n accessor minDate: string | number | Date = '';\n\n /** Allows manual input of date/time string that matches dateFormat when true. */\n @property({ type: Boolean })\n accessor allowManualInput = false;\n\n /** Sets upper boundary of date range picker date selection. */\n @property({ type: String })\n accessor maxDate: string | number | Date = '';\n\n /** Sets aria label attribute for error message. */\n @property({ type: String })\n accessor errorAriaLabel = '';\n\n /** Sets title attribute for error message. */\n @property({ type: String })\n accessor errorTitle = '';\n\n /** Sets aria label attribute for warning message. */\n @property({ type: String })\n accessor warningAriaLabel = '';\n\n /** Sets title attribute for warning message. */\n @property({ type: String })\n accessor warningTitle = '';\n\n /** Sets whether the Flatpickr calendar UI should use static positioning. */\n @property({ type: Boolean })\n accessor staticPosition = false;\n\n /** Sets flatpickr enableTime value based on detected dateFormat.\n * @internal\n */\n @state()\n private accessor _enableTime = false;\n\n /** Flatpickr instantiation.\n * @internal\n */\n @state()\n private accessor flatpickrInstance: Instance | undefined;\n\n /**\n * Queries the input DOM element.\n * @internal\n */\n @query('input')\n private accessor _inputEl: HTMLInputElement | any;\n\n /**\n * Sets whether user has interacted with datepicker for error handling.\n * @internal\n */\n @state()\n private accessor _hasInteracted = false;\n\n /** Customizable text strings. */\n @property({ type: Object })\n accessor textStrings = _defaultTextStrings;\n\n /** Internal text strings.\n * @internal\n */\n @state()\n accessor _textStrings = { ..._defaultTextStrings };\n\n /** Tracks if we're in a clear operation to prevent duplicate events\n * @internal\n */\n @state()\n private accessor _isClearing = false;\n\n /** Control flag to prevent Flatpickr from opening when clicking caption, error, label, or warning elements.\n * @internal\n */\n @state()\n private accessor _shouldFlatpickrOpen = false;\n\n /** Track if we initially had a defaultDate when the component was first connected\n * @internal\n */\n @state()\n private accessor _hasInitialDefaultDate = false;\n\n /** Track initialization state\n * @internal\n */\n private _initialized = false;\n\n /** Store submit event listener reference for cleanup\n * @internal\n */\n private _submitListener: ((e: Event) => void) | null = null;\n\n private debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeout !== null) {\n window.clearTimeout(timeout);\n }\n\n timeout = window.setTimeout(() => {\n func.apply(this, args);\n timeout = null;\n }, wait);\n };\n }\n\n private debouncedUpdate = this.debounce(async () => {\n if (!this.flatpickrInstance) return;\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.warn('DateRangePicker update info:', error.message);\n }\n }\n }, 100);\n\n private handleResize = this.debounce(async () => {\n if (this.flatpickrInstance) {\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n if (\n process.env.NODE_ENV === 'development' &&\n error instanceof Error &&\n !error.message.includes('calendarContainer') &&\n !error.message.includes('selectedDates')\n ) {\n console.debug('DateRangePicker resize info:', error.message);\n }\n }\n }\n }, 250);\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('change', this._onChange);\n this.addEventListener('reset', this._handleFormReset);\n window.addEventListener('resize', this.handleResize);\n\n if (this._internals.form) {\n this._submitListener = (e: Event) => {\n this._validate(true, true);\n if (!this._internals.checkValidity()) {\n e.preventDefault();\n }\n };\n this._internals.form.addEventListener('submit', this._submitListener);\n }\n\n if (\n (!this.value ||\n (Array.isArray(this.value) &&\n this.value.every((date) => date === null))) &&\n this.defaultDate\n ) {\n this._hasInitialDefaultDate = true;\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n }\n }\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('change', this._onChange);\n this.removeEventListener('reset', this._handleFormReset);\n window.removeEventListener('resize', this.handleResize);\n\n if (this._internals.form && this._submitListener) {\n this._internals.form.removeEventListener('submit', this._submitListener);\n this._submitListener = null;\n }\n\n this.flatpickrInstance?.destroy();\n }\n\n private hasValue(): boolean {\n if (this._inputEl?.value) return true;\n if (this.value && Array.isArray(this.value) && this.value.length === 2) {\n return this.value[0] !== null || this.value[1] !== null;\n }\n if (this.defaultDate) {\n if (Array.isArray(this.defaultDate)) {\n return (\n this.defaultDate.length > 0 &&\n !this.defaultDate.every((date) => !date || date === '')\n );\n }\n return !!this.defaultDate;\n }\n return false;\n }\n\n private updateFormValue() {\n if (this._internals && this._inputEl) {\n if (this.value[0] && this.value[1]) {\n const formattedValue = [\n this.value[0].toISOString(),\n this.value[1].toISOString(),\n ].join(',');\n this._internals.setFormValue(formattedValue);\n\n if (this.name) {\n this._inputEl.setAttribute('value', formattedValue);\n }\n } else {\n this._internals.setFormValue('');\n }\n }\n }\n\n override render() {\n const errorId = `${this.name}-error-message`;\n const warningId = `${this.name}-warning-message`;\n const anchorId = this.name\n ? `${this.name}-${Math.random().toString(36).slice(2, 11)}`\n : `date-range-picker-${Math.random().toString(36).slice(2, 11)}`;\n const descriptionId = this.name ?? '';\n const placeholder = getPlaceholder(this.dateFormat, true);\n\n const showClearButton =\n this.hasValue() &&\n !this.readonly &&\n this.rangeEditMode !== DateRangeEditableMode.START &&\n this.rangeEditMode !== DateRangeEditableMode.END &&\n this.rangeEditMode !== DateRangeEditableMode.NONE;\n\n return html`\n <div class=${classMap(this.getDateRangePickerClasses())}>\n <div\n class=\"label-text\"\n ?readonly=${this.readonly}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n id=${`label-${anchorId}`}\n >\n ${this.required\n ? html`<abbr\n class=\"required\"\n title=${this._textStrings.requiredText}\n role=\"img\"\n aria-label=${this._textStrings.requiredText}\n >*</abbr\n >`\n : null}\n ${this.label}\n <slot name=\"tooltip\"></slot>\n </div>\n\n <div class=\"input-wrapper\">\n <input\n class=\"${classMap({\n [`size--${this.size}`]: true,\n 'input-custom': true,\n 'is-readonly': this.readonly,\n })}\"\n type=\"text\"\n id=${anchorId}\n name=${this.name}\n placeholder=${placeholder}\n ?disabled=${this.dateRangePickerDisabled}\n ?readonly=${!this.dateRangePickerDisabled && this.readonly}\n ?required=${this.required}\n ?invalid=${this._isInvalid}\n aria-invalid=${this._isInvalid ? 'true' : 'false'}\n aria-labelledby=${`label-${anchorId}`}\n @click=${this.handleInputClickEvent}\n @focus=${this.handleInputFocusEvent}\n />\n ${showClearButton\n ? html`<kyn-button\n ?disabled=${this.dateRangePickerDisabled}\n class=\"clear-button\"\n kind=\"ghost\"\n size=\"small\"\n description=${this._textStrings.clearAll}\n @click=${this._handleClear}\n >\n <span style=\"display:flex;\" slot=\"icon\"\n >${unsafeSVG(clearIcon)}</span\n >\n </kyn-button>`\n : html`<span\n class=\"input-icon ${this.dateRangePickerDisabled\n ? 'is-disabled'\n : ''}\"\n aria-hidden=\"true\"\n @click=${this.handleInputClickEvent}\n >${unsafeSVG(calendarIcon)}</span\n >`}\n </div>\n\n ${this.caption\n ? html`<div\n id=${descriptionId}\n class=\"caption\"\n aria-disabled=${this.dateRangePickerDisabled ? 'true' : 'false'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n >\n ${this.caption}\n </div>`\n : ''}\n ${this.renderValidationMessage(errorId, warningId)}\n </div>\n `;\n }\n\n private renderValidationMessage(errorId: string, warningId: string) {\n if (this.dateRangePickerDisabled) return null;\n\n if (this.invalidText || (this._isInvalid && this._hasInteracted)) {\n return html`\n <div\n id=${errorId}\n class=\"error error-text\"\n role=\"alert\"\n title=${this.errorTitle || 'Error'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n <span\n class=\"error-icon\"\n role=\"img\"\n aria-label=${this.errorAriaLabel || 'Error message icon'}\n >\n ${unsafeSVG(errorIcon)}\n </span>\n ${this.invalidText ||\n this._internalValidationMsg ||\n this.defaultErrorMessage}\n </div>\n `;\n }\n\n if (this.warnText) {\n return html`\n <div\n id=${warningId}\n class=\"warn warn-text\"\n role=\"alert\"\n aria-label=${this.warningAriaLabel || 'Warning message'}\n title=${this.warningTitle || 'Warning'}\n @mousedown=${this.preventFlatpickrOpen}\n @click=${this.preventFlatpickrOpen}\n tabindex=\"0\"\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.preventFlatpickrOpen(e);\n }\n }}\n >\n ${this.warnText}\n </div>\n `;\n }\n\n return null;\n }\n\n private getDateRangePickerClasses() {\n return {\n 'date-range-picker': true,\n 'date-range-picker__enable-time': this._enableTime,\n 'date-range-picker__disabled': this.dateRangePickerDisabled,\n };\n }\n\n private parseDateString(dateStr: string): Date | null {\n if (!dateStr || !dateStr.trim()) return null;\n dateStr = dateStr.trim();\n\n const dateFormat = this.dateFormat || 'Y-m-d';\n\n if (dateStr.includes('T')) {\n const date = new Date(dateStr);\n return isNaN(date.getTime()) ? null : date;\n }\n\n if (dateStr.includes(' ')) {\n const parts = dateStr.split(/\\s+/);\n const datePart = parts[0];\n const timePart = parts[1] || '';\n let ampm = parts[2] ? parts[2].toUpperCase() : undefined;\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n if (!year || !month || !day) return null;\n\n let hours = 0,\n minutes = 0,\n seconds = 0;\n if (timePart) {\n const timeComponents = timePart.split(':');\n hours = parseInt(timeComponents[0], 10);\n if (timeComponents.length > 1) {\n if (timeComponents[1].includes(' ')) {\n const [mins, token] = timeComponents[1].split(' ');\n minutes = parseInt(mins, 10);\n ampm = token ? token.toUpperCase() : ampm;\n } else {\n minutes = parseInt(timeComponents[1], 10);\n }\n }\n if (timeComponents.length > 2) {\n seconds = parseInt(timeComponents[2], 10);\n }\n if (ampm) {\n if (ampm === 'PM' && hours < 12) {\n hours += 12;\n } else if (ampm === 'AM' && hours === 12) {\n hours = 0;\n }\n }\n }\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n return isNaN(date.getTime()) ? null : date;\n }\n\n const formats: { [key: string]: RegExp } = {\n 'Y-m-d': /^\\d{4}-\\d{2}-\\d{2}$/,\n 'm-d-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'd-m-Y': /^\\d{2}-\\d{2}-\\d{4}$/,\n 'Y-m-d h:i K': /^\\d{4}-\\d{2}-\\d{2}( \\d{1,2}:\\d{2} [AP]M)?$/,\n };\n const pattern = formats[dateFormat];\n if (!pattern || !pattern.test(dateStr)) return null;\n\n const datePart = dateStr.split(' ')[0];\n const dateTokens = datePart.split('-').map(Number);\n let year: number, month: number, day: number;\n switch (dateFormat) {\n case 'Y-m-d':\n [year, month, day] = dateTokens;\n break;\n case 'm-d-Y':\n [month, day, year] = dateTokens;\n break;\n case 'd-m-Y':\n [day, month, year] = dateTokens;\n break;\n default:\n [year, month, day] = dateTokens;\n }\n if (!year || !month || !day) return null;\n const date = new Date(year, month - 1, day);\n return isNaN(date.getTime()) ? null : date;\n }\n\n override async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n if (!this._initialized) {\n injectFlatpickrStyles(ShidokaFlatpickrTheme.toString());\n this._initialized = true;\n\n this._enableTime = updateEnableTime(this.dateFormat);\n\n await this.updateComplete;\n this.setupAnchor();\n\n const valueEmpty =\n !this.value ||\n (Array.isArray(this.value) &&\n this.value.length === 2 &&\n this.value[0] === null &&\n this.value[1] === null);\n\n if (valueEmpty && this._hasInitialDefaultDate && this.defaultDate) {\n const processedDates = this.processDefaultDates(this.defaultDate);\n if (processedDates && processedDates.length > 0) {\n if (processedDates.length === 1) {\n this.value = [processedDates[0], null];\n this._hasInteracted = true;\n } else if (processedDates.length >= 2) {\n this.value = [processedDates[0], processedDates[1]];\n }\n\n if (this.value[0] !== null || this.value[1] !== null) {\n this.updateFormValue();\n }\n\n this._validate(true, false);\n }\n }\n\n setTimeout(() => {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 1) {\n this._hasInteracted = true;\n this._validate(true, false);\n } else if (\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n ((this.value[0] !== null && this.value[1] === null) ||\n (this.value[0] === null && this.value[1] !== null))\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }, 0);\n }\n }\n\n override updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n if (changedProperties.has('textStrings')) {\n this._textStrings = { ..._defaultTextStrings, ...this.textStrings };\n\n if (\n this.flatpickrInstance &&\n this.rangeEditMode !== DateRangeEditableMode.BOTH\n ) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateRangePickerDisabled') &&\n this.dateRangePickerDisabled) ||\n (changedProperties.has('readonly') && this.readonly)\n ) {\n if (this.dateRangePickerDisabled || this.readonly) {\n this.flatpickrInstance?.close();\n return;\n } else if (this.value[0] && this.value[1]) {\n this.setInitialDates();\n }\n }\n\n if (changedProperties.has('rangeEditMode') && this.flatpickrInstance) {\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[1]]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([this.defaultDate[0]]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.flatpickrInstance.destroy();\n setTimeout(() => {\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }, 0);\n }\n\n if (\n changedProperties.has('value') &&\n !this.dateRangePickerDisabled &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n const newValue = this.value;\n if (Array.isArray(newValue) && newValue.every((v) => v === null)) {\n this._isClearing = true;\n this.flatpickrInstance.clear();\n this._isClearing = false;\n if (this._inputEl) {\n this._inputEl.value = '';\n this.updateFormValue();\n }\n } else {\n const currentDates = this.flatpickrInstance.selectedDates;\n if (\n currentDates.length !== 2 ||\n !currentDates[0] ||\n !currentDates[1] ||\n currentDates[0].getTime() !== newValue[0]?.getTime() ||\n currentDates[1].getTime() !== newValue[1]?.getTime()\n ) {\n this.setInitialDates();\n }\n\n if (\n (newValue[0] !== null && newValue[1] === null) ||\n (newValue[0] === null && newValue[1] !== null)\n ) {\n this._hasInteracted = true;\n this._validate(true, false);\n }\n }\n }\n\n if (changedProperties.has('defaultDate')) {\n if (\n this.defaultDate &&\n (!this.value || this.value.every((v) => v === null))\n ) {\n const dates = this.processDefaultDates(this.defaultDate);\n this.value =\n dates.length === 2\n ? ([dates[0], dates[1]] as [Date, Date])\n : dates.length === 1\n ? ([dates[0], null] as [Date, null])\n : ([null, null] as [null, null]);\n\n if (Array.isArray(this.defaultDate) && this.defaultDate.length === 2) {\n if (\n this.rangeEditMode === DateRangeEditableMode.START &&\n !this.defaultDate[0] &&\n this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[1],\n ]);\n if (processedDate.length === 1) {\n this.value = [null, processedDate[0]];\n }\n } else if (\n this.rangeEditMode === DateRangeEditableMode.END &&\n this.defaultDate[0] &&\n !this.defaultDate[1]\n ) {\n const processedDate = this.processDefaultDates([\n this.defaultDate[0],\n ]);\n if (processedDate.length === 1) {\n this.value = [processedDate[0], null];\n }\n }\n }\n\n this.updateFormValue();\n this.requestUpdate();\n }\n\n if (this.flatpickrInstance) {\n this.flatpickrInstance.destroy();\n this.initializeFlatpickr().then(() => {\n if (this._inputEl && this.flatpickrInstance) {\n this._inputEl.value = this.flatpickrInstance.input.value;\n this.flatpickrInstance.redraw();\n this.updateFormValue();\n }\n });\n }\n }\n\n if (changedProperties.has('disable')) {\n if (Array.isArray(this.disable)) {\n this._processedDisableDates = this.disable.map((date) => {\n if (date instanceof Date) return date;\n if (typeof date === 'number') return new Date(date);\n if (typeof date === 'string') {\n const [year, month, day] = date.split('-').map(Number);\n if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n return new Date(year, month - 1, day);\n }\n }\n return date;\n });\n } else {\n this._processedDisableDates = [];\n }\n if (this.flatpickrInstance) {\n this.updateFlatpickrOptions();\n }\n }\n\n if (\n (changedProperties.has('dateFormat') ||\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate') ||\n changedProperties.has('locale') ||\n changedProperties.has('twentyFourHourFormat')) &&\n this.flatpickrInstance &&\n !this._isClearing\n ) {\n this._enableTime = updateEnableTime(this.dateFormat);\n this.updateFlatpickrOptions();\n }\n\n if (changedProperties.has('allowManualInput')) {\n this.syncAllowInput();\n }\n }\n\n private syncAllowInput(): void {\n if (!this.flatpickrInstance) return;\n this.flatpickrInstance.set('allowInput', this.allowManualInput);\n if (!this.readonly) {\n this._inputEl.readOnly = !this.allowManualInput;\n }\n }\n\n private async setupAnchor() {\n if (!this._inputEl) {\n return;\n }\n\n try {\n await this.initializeFlatpickr();\n } catch (error) {\n console.error('Error setting up flatpickr:', error);\n }\n }\n\n private async _clearInput(\n options: { reinitFlatpickr?: boolean } = { reinitFlatpickr: true }\n ) {\n if (this.rangeEditMode === DateRangeEditableMode.NONE) {\n return;\n }\n\n const newValue: [Date | null, Date | null] = [null, null];\n const preservedDateExists = false;\n\n this.value = newValue;\n this.defaultDate = null;\n\n if (preservedDateExists) {\n if (this.flatpickrInstance) {\n this.flatpickrInstance.clear();\n\n const datesToSet = newValue.filter(\n (date): date is Date => date !== null\n );\n if (datesToSet.length > 0) {\n this.flatpickrInstance.setDate(datesToSet, true);\n }\n }\n\n this.updateFormValue();\n } else {\n await clearFlatpickrInput(this.flatpickrInstance, this._inputEl, () => {\n this.updateFormValue();\n });\n }\n\n emitValue(this, 'on-change', {\n dates: this.value,\n dateString: this._inputEl?.value,\n source: 'clear',\n });\n\n this._validate(true, false);\n await this.updateComplete;\n\n if (options.reinitFlatpickr) {\n await this.initializeFlatpickr();\n this.requestUpdate();\n }\n }\n\n private async _handleClear(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this._isClearing = true;\n try {\n await this._clearInput();\n } finally {\n this._isClearing = false;\n }\n }\n\n public async handleClose() {\n this._hasInteracted = true;\n this._validate(true, false);\n await this.updateComplete;\n }\n\n public async initializeFlatpickr() {\n if (!this._inputEl) {\n console.warn('Cannot initialize Flatpickr: input element not available');\n return;\n }\n\n if (!this.dateFormat) {\n console.warn('Date format not set, using default Y-m-d');\n this.dateFormat = 'Y-m-d';\n }\n\n try {\n this.flatpickrInstance?.destroy();\n this.flatpickrInstance = await initializeSingleAnchorFlatpickr({\n inputEl: this._inputEl,\n getFlatpickrOptions: () => this.getComponentFlatpickrOptions(),\n setCalendarAttributes: (instance) => {\n try {\n if (!instance?.calendarContainer) {\n throw new Error('Calendar container not available');\n }\n const container = getModalContainer(this);\n setCalendarAttributes(instance, container !== document.body);\n instance.calendarContainer.setAttribute(\n 'aria-label',\n 'Date range calendar'\n );\n } catch (error) {\n console.warn('Error setting calendar attributes:', error);\n }\n },\n setInitialDates: () => this.setInitialDates(),\n });\n\n if (!this.flatpickrInstance) {\n throw new Error('Failed to initialize Flatpickr instance');\n }\n\n hideEmptyYear();\n this._validate(false, false);\n } catch (error) {\n console.error('Error initializing Flatpickr:', error);\n\n if (error instanceof Error) {\n console.error('Error details:', error.message);\n }\n }\n }\n\n public async updateFlatpickrOptions() {\n if (!this.flatpickrInstance) {\n console.warn('Cannot update options: Flatpickr instance not available');\n return;\n }\n await this.debouncedUpdate();\n }\n\n public async getComponentFlatpickrOptions(): Promise<Partial<BaseOptions>> {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const container = getModalContainer(this);\n const options = await getFlatpickrOptions({\n locale: this.locale || 'en',\n dateFormat: this.dateFormat,\n defaultDate: this.defaultDate ?? undefined,\n enableTime: this._enableTime,\n twentyFourHourFormat: this.twentyFourHourFormat ?? undefined,\n inputEl: this._inputEl!,\n minDate: this.minDate,\n maxDate: this.maxDate,\n enable: this.enable,\n disable: this._processedDisableDates,\n mode: 'range',\n closeOnSelect: false,\n allowInput: this.allowManualInput,\n loadLocale,\n onOpen: this.handleOpen.bind(this),\n onClose: this.handleClose.bind(this),\n onChange: this.handleDateChange.bind(this),\n appendTo: container,\n noCalendar: false,\n static: this.staticPosition,\n });\n\n const origOnOpen = options.onOpen;\n options.onOpen = (selectedDates, dateStr, instance) => {\n if (typeof origOnOpen === 'function') {\n origOnOpen(selectedDates, dateStr, instance);\n } else if (Array.isArray(origOnOpen)) {\n origOnOpen.forEach((fn) => fn(selectedDates, dateStr, instance));\n }\n setTimeout(() => {\n const firstDay = instance.calendarContainer.querySelector<HTMLElement>(\n '.flatpickr-day:not(.flatpickr-disabled)'\n );\n if (firstDay) firstDay.focus();\n }, 0);\n };\n\n const origOnReady = options.onReady;\n options.onReady = (_sel, _str, instance) => {\n if (typeof origOnReady === 'function') {\n origOnReady(_sel, _str, instance);\n } else if (Array.isArray(origOnReady)) {\n origOnReady.forEach((fn) => fn(_sel, _str, instance));\n }\n const handler = (e: KeyboardEvent) => {\n if (e.key !== 'Enter') return;\n const target = e.target as HTMLElement & { dateObj: Date };\n if (\n !target.classList.contains('flatpickr-day') ||\n target.classList.contains('flatpickr-disabled')\n ) {\n return;\n }\n e.preventDefault();\n const sel = instance.selectedDates;\n if (sel.length === 0) {\n instance.setDate([target.dateObj], true);\n } else if (sel.length === 1) {\n instance.setDate([sel[0], target.dateObj], true);\n instance.close();\n }\n };\n instance.calendarContainer.addEventListener('keydown', handler);\n };\n\n if (this.rangeEditMode !== DateRangeEditableMode.BOTH) {\n return applyDateRangeEditingRestrictions(\n options,\n this.rangeEditMode,\n this.value,\n {\n lockedStartDate: this._textStrings.lockedStartDate,\n lockedEndDate: this._textStrings.lockedEndDate,\n dateLocked: this._textStrings.dateLocked,\n dateNotAvailable: this._textStrings.dateNotAvailable,\n dateInSelectedRange: this._textStrings.dateInSelectedRange,\n }\n );\n }\n\n return options;\n }\n\n public setInitialDates() {\n if (!this.flatpickrInstance) return;\n\n try {\n if (!this.dateFormat) {\n this.dateFormat = 'Y-m-d';\n }\n\n const hasValidValue =\n Array.isArray(this.value) &&\n this.value.length === 2 &&\n (this.value[0] !== null || this.value[1] !== null);\n\n if (!hasValidValue && this.defaultDate) {\n const validDates = this.processDefaultDates(this.defaultDate);\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this.value = validDates as [Date, Date];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n } else if (validDates.length === 1) {\n this.flatpickrInstance.setDate([validDates[0]], true);\n this.flatpickrInstance.redraw();\n this.value = [validDates[0], null];\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n this._validate(true, false);\n }\n return;\n }\n\n if (Array.isArray(this.value) && this.value.length === 2) {\n const validDates = (this.value as (string | Date)[])\n .map((d) => (d instanceof Date ? d : this.parseDateString(d)))\n .filter((d): d is Date => d !== null);\n\n if (validDates.length === 2) {\n this.flatpickrInstance.setDate(validDates, true);\n this.flatpickrInstance.redraw();\n this._inputEl!.value = this.flatpickrInstance.input.value;\n this.updateFormValue();\n }\n }\n } catch (e) {\n console.error('Error in setInitialDates:', (e as Error).message);\n }\n }\n\n public handleOpen() {\n if (this.readonly) {\n this.flatpickrInstance?.close();\n return;\n }\n\n this._shouldFlatpickrOpen = true;\n\n this._isInvalid = false;\n this.requestUpdate();\n }\n\n public async handleDateChange(selectedDates: Date[], dateStr: string) {\n this._hasInteracted = true;\n\n if (this._isClearing) return;\n\n if (selectedDates.length === 0) {\n this.value = [null, null];\n emitValue(this, 'on-change', { dates: this.value, source: 'clear' });\n } else if (selectedDates.length === 1) {\n this.value = [selectedDates[0], null];\n\n if (this._inputEl) {\n this._inputEl.value = dateStr;\n this.updateFormValue();\n }\n\n emitValue(this, 'on-change', {\n dates: [selectedDates[0].toISOString()],\n dateString: dateStr,\n source: 'date-selection',\n });\n } else {\n this.value = [selectedDates[0], selectedDates[1]];\n const iso = selectedDates.map((d) => d.toISOString());\n const display = this.flatpickrInstance!.input.value;\n emitValue(this, 'on-change', {\n dates: iso,\n dateString: display,\n source: 'date-selection',\n });\n }\n\n this.updateSelectedDateRangeAria(selectedDates);\n this._validate(true, false);\n }\n\n private updateSelectedDateRangeAria(selectedDates: Date[]) {\n if (!this._inputEl) return;\n const announcer = this.shadowRoot?.getElementById(\n `${this._inputEl.id}-announcer`\n );\n\n if (!announcer) return;\n\n let announcement = '';\n\n if (selectedDates.length === 0) {\n announcement = this._textStrings.noDateSelected;\n } else if (selectedDates.length === 1) {\n announcement = this._textStrings.startDateSelected.replace(\n '{0}',\n selectedDates[0].toLocaleDateString(this.locale)\n );\n } else {\n announcement = this._textStrings.dateRangeSelected\n .replace('{0}', selectedDates[0].toLocaleDateString(this.locale))\n .replace('{1}', selectedDates[1].toLocaleDateString(this.locale));\n }\n\n announcer.textContent = announcement;\n }\n\n private setShouldFlatpickrOpen(value: boolean) {\n this._shouldFlatpickrOpen = value;\n }\n\n private closeFlatpickr() {\n this.flatpickrInstance?.close();\n }\n\n private preventFlatpickrOpen(event: Event) {\n preventFlatpickrOpen(event, this.setShouldFlatpickrOpen.bind(this));\n }\n\n private handleInputClickEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputClick(this.setShouldFlatpickrOpen.bind(this));\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input click event:', e);\n }\n }\n\n private handleInputFocusEvent() {\n try {\n this._shouldFlatpickrOpen = true;\n\n handleInputFocus(\n this._shouldFlatpickrOpen,\n this.closeFlatpickr.bind(this),\n this.setShouldFlatpickrOpen.bind(this)\n );\n\n if (\n this.flatpickrInstance &&\n !this.flatpickrInstance.isOpen &&\n !this.readonly &&\n !this.dateRangePickerDisabled\n ) {\n setTimeout(() => {\n if (this.flatpickrInstance && !this.flatpickrInstance.isOpen) {\n this.flatpickrInstance.open();\n }\n }, 0);\n }\n } catch (e) {\n console.warn('Error handling input focus event:', e);\n }\n }\n\n private processDefaultDates(\n defaultDate: string | string[] | Date | Date[] | null\n ): Date[] {\n if (!defaultDate) return [];\n\n const rawValues = Array.isArray(defaultDate) ? defaultDate : [defaultDate];\n\n const parsed = rawValues.map((d) => {\n if (d instanceof Date) return d;\n if (typeof d === 'string') return this.parseDateString(d);\n return null;\n });\n\n const validDates = parsed.filter(\n (date): date is Date => date instanceof Date && !isNaN(date.getTime())\n );\n if (validDates.length === 2 && validDates[1] < validDates[0]) {\n console.error(\n 'Invalid date range: End date cannot be earlier than start date'\n );\n this.invalidText = this._textStrings.invalidDateRange;\n return [validDates[0]];\n }\n\n const min = this.minDate\n ? this.parseDateString(this.minDate as string)\n : null;\n const max = this.maxDate\n ? this.parseDateString(this.maxDate as string)\n : null;\n\n const inRange = validDates.filter((d) => {\n return (!min || d >= min) && (!max || d <= max);\n });\n\n if (inRange.length !== validDates.length) {\n console.error('Invalid date(s) provided in defaultDate', inRange);\n this.invalidText = this._textStrings.pleaseSelectValidDate;\n this.defaultDate = null;\n }\n\n return inRange;\n }\n\n private _validate(interacted: boolean, report: boolean) {\n if (!this._inputEl || !(this._inputEl instanceof HTMLInputElement)) return;\n\n if (this.dateRangePickerDisabled) {\n this._internals.setValidity({}, '', this._inputEl);\n this._isInvalid = false;\n this._internalValidationMsg = '';\n return;\n }\n\n if (interacted) {\n this._hasInteracted = true;\n }\n\n const shouldShowValidationErrors =\n this._hasInteracted || report || !!this.invalidText;\n\n const selectedCount = [this.value[0], this.value[1]].filter(\n (d) => d !== null\n ).length;\n let validity = this._inputEl.validity;\n let validationMessage = this._inputEl.validationMessage;\n\n if (this.flatpickrInstance?.isOpen) {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n } else if (selectedCount === 1) {\n validity = { ...validity, customError: true };\n validationMessage = this._textStrings.pleaseSelectBothDates;\n } else if (this.required && selectedCount === 0) {\n validity = { ...validity, valueMissing: true };\n validationMessage =\n this.defaultErrorMessage || this._textStrings.pleaseSelectDate;\n } else {\n validity = { ...validity, valueMissing: false, customError: false };\n validationMessage = '';\n }\n\n if (this.invalidText) {\n validity = { ...validity, customError: true };\n validationMessage = this.invalidText;\n }\n\n const isValid = !validity.valueMissing && !validity.customError;\n if (!isValid && !validationMessage) {\n validationMessage = this._textStrings.pleaseSelectValidDate;\n }\n\n this._internals.setValidity(validity, validationMessage, this._inputEl);\n\n this._isInvalid = !isValid && shouldShowValidationErrors;\n this._internalValidationMsg = validationMessage;\n\n if (report) this._internals.reportValidity();\n this.requestUpdate();\n }\n\n private _onChange() {\n this._validate(true, false);\n }\n\n private _handleFormReset() {\n this.value = [null, null];\n this.flatpickrInstance?.clear();\n this._hasInteracted = false;\n this._validate(false, false);\n }\n\n public getValue(): [Date | null, Date | null] {\n return this.value;\n }\n\n public setValue(newValue: [Date | null, Date | null]): void {\n this.value = newValue;\n this.requestUpdate();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kyn-date-range-picker': DateRangePicker;\n }\n}\n"],"names":["_defaultTextStrings","requiredText","clearAll","pleaseSelectDate","pleaseSelectValidDate","pleaseSelectBothDates","dateRange","noDateSelected","startDateSelected","invalidDateRange","dateRangeSelected","lockedStartDate","lockedEndDate","dateLocked","dateNotAvailable","dateInSelectedRange","DateRangePicker","customElement","FormMixin","LitElement","_classThis","_classSuper","_DateRangePicker_label_accessor_storage","set","this","__runInitializers","_label_initializers","_DateRangePicker_locale_accessor_storage","_label_extraInitializers","_locale_initializers","_DateRangePicker_dateFormat_accessor_storage","_locale_extraInitializers","_dateFormat_initializers","_DateRangePicker_defaultDate_accessor_storage","_dateFormat_extraInitializers","_defaultDate_initializers","_DateRangePicker_rangeEditMode_accessor_storage","_defaultDate_extraInitializers","_rangeEditMode_initializers","DateRangeEditableMode","BOTH","_DateRangePicker_defaultErrorMessage_accessor_storage","_rangeEditMode_extraInitializers","_defaultErrorMessage_initializers","value","_DateRangePicker_warnText_accessor_storage","_warnText_initializers","_DateRangePicker_disable_accessor_storage","_warnText_extraInitializers","_disable_initializers","_DateRangePicker__processedDisableDates_accessor_storage","_disable_extraInitializers","__processedDisableDates_initializers","_DateRangePicker_enable_accessor_storage","__processedDisableDates_extraInitializers","_enable_initializers","_DateRangePicker_caption_accessor_storage","_enable_extraInitializers","_caption_initializers","_DateRangePicker_required_accessor_storage","_caption_extraInitializers","_required_initializers","_DateRangePicker_size_accessor_storage","_required_extraInitializers","_size_initializers","_DateRangePicker_dateRangePickerDisabled_accessor_storage","_size_extraInitializers","_dateRangePickerDisabled_initializers","_DateRangePicker_readonly_accessor_storage","_dateRangePickerDisabled_extraInitializers","_readonly_initializers","_DateRangePicker_twentyFourHourFormat_accessor_storage","_readonly_extraInitializers","_twentyFourHourFormat_initializers","_DateRangePicker_minDate_accessor_storage","_twentyFourHourFormat_extraInitializers","_minDate_initializers","_DateRangePicker_allowManualInput_accessor_storage","_minDate_extraInitializers","_allowManualInput_initializers","_DateRangePicker_maxDate_accessor_storage","_allowManualInput_extraInitializers","_maxDate_initializers","_DateRangePicker_errorAriaLabel_accessor_storage","_maxDate_extraInitializers","_errorAriaLabel_initializers","_DateRangePicker_errorTitle_accessor_storage","_errorAriaLabel_extraInitializers","_errorTitle_initializers","_DateRangePicker_warningAriaLabel_accessor_storage","_errorTitle_extraInitializers","_warningAriaLabel_initializers","_DateRangePicker_warningTitle_accessor_storage","_warningAriaLabel_extraInitializers","_warningTitle_initializers","_DateRangePicker_staticPosition_accessor_storage","_warningTitle_extraInitializers","_staticPosition_initializers","_DateRangePicker__enableTime_accessor_storage","_staticPosition_extraInitializers","__enableTime_initializers","_DateRangePicker_flatpickrInstance_accessor_storage","__enableTime_extraInitializers","_flatpickrInstance_initializers","_DateRangePicker__inputEl_accessor_storage","_flatpickrInstance_extraInitializers","__inputEl_initializers","_DateRangePicker__hasInteracted_accessor_storage","__inputEl_extraInitializers","__hasInteracted_initializers","_DateRangePicker_textStrings_accessor_storage","__hasInteracted_extraInitializers","_textStrings_initializers","_DateRangePicker__textStrings_accessor_storage","_textStrings_extraInitializers","__textStrings_initializers","_DateRangePicker__isClearing_accessor_storage","__textStrings_extraInitializers","__isClearing_initializers","_DateRangePicker__shouldFlatpickrOpen_accessor_storage","__isClearing_extraInitializers","__shouldFlatpickrOpen_initializers","_DateRangePicker__hasInitialDefaultDate_accessor_storage","__shouldFlatpickrOpen_extraInitializers","__hasInitialDefaultDate_initializers","_initialized","__hasInitialDefaultDate_extraInitializers","_submitListener","debouncedUpdate","debounce","async","flatpickrInstance","initializeFlatpickr","error","process","env","NODE_ENV","Error","message","includes","console","warn","handleResize","debug","label","__classPrivateFieldGet","__classPrivateFieldSet","locale","dateFormat","defaultDate","rangeEditMode","defaultErrorMessage","warnText","disable","_processedDisableDates","enable","caption","required","size","dateRangePickerDisabled","readonly","twentyFourHourFormat","minDate","allowManualInput","maxDate","errorAriaLabel","errorTitle","warningAriaLabel","warningTitle","staticPosition","_enableTime","_inputEl","_hasInteracted","textStrings","_textStrings","_isClearing","_shouldFlatpickrOpen","_hasInitialDefaultDate","func","wait","timeout","args","window","clearTimeout","setTimeout","apply","connectedCallback","super","addEventListener","_onChange","_handleFormReset","_internals","form","e","_validate","checkValidity","preventDefault","Array","isArray","every","date","length","disconnectedCallback","removeEventListener","_a","destroy","hasValue","updateFormValue","formattedValue","toISOString","join","setFormValue","name","setAttribute","render","errorId","warningId","anchorId","Math","random","toString","slice","descriptionId","placeholder","getPlaceholder","showClearButton","START","END","NONE","html","classMap","getDateRangePickerClasses","preventFlatpickrOpen","_isInvalid","handleInputClickEvent","handleInputFocusEvent","_handleClear","unsafeSVG","clearIcon","calendarIcon","renderValidationMessage","invalidText","key","errorIcon","_internalValidationMsg","parseDateString","dateStr","trim","Date","isNaN","getTime","parts","split","datePart","timePart","ampm","toUpperCase","undefined","dateTokens","map","Number","year","month","day","hours","minutes","seconds","timeComponents","parseInt","mins","token","pattern","test","firstUpdated","changedProperties","injectFlatpickrStyles","ShidokaFlatpickrTheme","updateEnableTime","updateComplete","setupAnchor","processedDates","processDefaultDates","updated","has","updateFlatpickrOptions","close","setInitialDates","processedDate","then","input","redraw","newValue","v","clear","currentDates","selectedDates","_b","_c","dates","requestUpdate","syncAllowInput","readOnly","_clearInput","options","reinitFlatpickr","clearFlatpickrInput","emitValue","dateString","source","event","stopPropagation","handleClose","initializeSingleAnchorFlatpickr","inputEl","getFlatpickrOptions","getComponentFlatpickrOptions","setCalendarAttributes","instance","calendarContainer","container","getModalContainer","document","body","hideEmptyYear","enableTime","mode","closeOnSelect","allowInput","loadLocale","onOpen","handleOpen","bind","onClose","onChange","handleDateChange","appendTo","noCalendar","static","origOnOpen","forEach","fn","firstDay","querySelector","focus","origOnReady","onReady","_sel","_str","target","classList","contains","sel","setDate","dateObj","applyDateRangeEditingRestrictions","validDates","d","filter","iso","display","updateSelectedDateRangeAria","announcer","shadowRoot","getElementById","id","announcement","replace","toLocaleDateString","textContent","setShouldFlatpickrOpen","closeFlatpickr","handleInputClick","isOpen","open","handleInputFocus","min","max","inRange","interacted","report","HTMLInputElement","setValidity","shouldShowValidationErrors","selectedCount","validity","validationMessage","valueMissing","customError","isValid","reportValidity","getValue","setValue","_label_decorators","property","type","String","_locale_decorators","_dateFormat_decorators","_defaultDate_decorators","_rangeEditMode_decorators","_defaultErrorMessage_decorators","_warnText_decorators","_disable_decorators","__processedDisableDates_decorators","state","_enable_decorators","_caption_decorators","_required_decorators","Boolean","_size_decorators","_dateRangePickerDisabled_decorators","_readonly_decorators","_twentyFourHourFormat_decorators","_minDate_decorators","_allowManualInput_decorators","_maxDate_decorators","_errorAriaLabel_decorators","_errorTitle_decorators","_warningAriaLabel_decorators","_warningTitle_decorators","_staticPosition_decorators","__enableTime_decorators","_flatpickrInstance_decorators","query","__hasInteracted_decorators","_textStrings_decorators","Object","__textStrings_decorators","__isClearing_decorators","__shouldFlatpickrOpen_decorators","__hasInitialDefaultDate_decorators","__esDecorate","kind","private","access","obj","get","metadata","_metadata","_defaultErrorMessage_extraInitializers","__inputEl_decorators","_classDescriptor","_classDecorators","_classExtraInitializers","styles","unsafeCSS","DateRangePickerStyles"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kyndryl-design-system/shidoka-applications",
3
- "version": "2.67.0",
3
+ "version": "2.67.1",
4
4
  "description": "Shidoka Web Components for Applications",
5
5
  "license": "MIT",
6
6
  "main": "index.js",