@eui/ecl 19.3.3-snapshot-1754655052849 → 19.3.3-snapshot-1754912586607
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.
- package/components/ecl-date-picker/ecl-date-picker.directive.d.ts.map +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +0 -1
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
- package/package.json +1 -1
package/docs/properties.html
CHANGED
|
@@ -232,7 +232,6 @@ class EclDatePickerDirective extends ECLBaseDirective {
|
|
|
232
232
|
// Extend picker size on mobile
|
|
233
233
|
const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
|
|
234
234
|
const inputParentElRect = this.hostWrapperEl.getBoundingClientRect();
|
|
235
|
-
element.style.top = `${inputParentElRect.bottom}px`;
|
|
236
235
|
//mobile_mode
|
|
237
236
|
if (vw < this.MOBILE_BREAKPOINT) {
|
|
238
237
|
element.style.right = `${vw - inputParentElRect.right}px`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-date-picker.mjs","sources":["../../components/ecl-date-picker/events/ecl-date-picker-date-picked.event.ts","../../components/ecl-date-picker/ecl-date-picker.directive.ts","../../components/ecl-date-picker/ecl-date-picker.module.ts","../../components/ecl-date-picker/index.ts","../../components/ecl-date-picker/eui-ecl-components-ecl-date-picker.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Custom event emitted by the ECL date picker when a date is selected.\n */\nexport class EclDatePickerDatePickedEvent extends EclBaseEvent {\n\tconstructor(public date: Date) {\n\t\tsuper();\n\t}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n Provider,\n Renderer2,\n ViewContainerRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport type Pikaday from 'pikaday';\nimport { Subject, debounceTime, fromEvent, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { EclDatePickerDatePickedEvent } from './events/ecl-date-picker-date-picked.event';\nimport { EclRtlService } from '@eui/ecl/core';\n\n/**\n * Default i18n values for the Pikaday calendar component.\n */\nconst pikadayDefaultI18n = {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n};\n\n/**\n * Value accessor provider for Angular reactive and template-driven forms.\n */\nexport const ECL_DATE_PICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclDatePickerDirective),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty */\n};\n\n/**\n * Directive that enhances a native input element with an ECL-compliant date picker.\n * Integrates Pikaday with support for localization (i18n), RTL layout, and responsive behavior.\n */\n@Directive({\n selector: 'input[eclDatePicker]',\n providers: [ECL_DATE_PICKER_VALUE_ACCESSOR],\n})\nexport class EclDatePickerDirective extends ECLBaseDirective implements OnInit, ControlValueAccessor, OnDestroy {\n /**\n * Number of years to show in the year dropdown.\n */\n @Input() yearRange = 40;\n\n /**\n * Date format string used to display and parse dates.\n * Follows the format syntax supported by Pikaday.\n */\n @Input() format = 'DD-MM-YYYY';\n\n /**\n * Sets the type attribute of the host input element to 'text'.\n */\n @HostBinding('attr.type') type = 'text';\n\n /**\n * Binds base ECL CSS classes to the host input element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-datepicker__field')].join(' ').trim();\n }\n\n /**\n * Emits an event when a date is selected.\n */\n @Output() datePicked = new EventEmitter<EclDatePickerDatePickedEvent>();\n\n /**\n * Binds the 'disabled' attribute to the host element.\n * Accepts `null` or an empty string.\n */\n @HostBinding('attr.disabled')\n isDisabled = null;\n\n private picker: Pikaday;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n private onTouched: () => void = noop;\n\n private hostEl: HTMLInputElement;\n private hostParentEl: HTMLElement;\n private hostWrapperEl: HTMLElement;\n private eclIconComponentEl: HTMLElement;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private value: any;\n private isRtl = false;\n private readonly DEBOUNCE_TIME = 100;\n private readonly MOBILE_BREAKPOINT = 768;\n\n constructor(\n private el: ElementRef,\n private viewContainerRef: ViewContainerRef,\n protected translateService: TranslateService,\n private eclRtlService: EclRtlService,\n private renderer: Renderer2,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\n super();\n if (isPlatformBrowser(this.platformId)) {\n this.handlei18nEvents();\n this.handleRtlChangeState();\n this.handleResize();\n }\n }\n\n /**\n * Initializes the Pikaday instance and applies markup when running in browser.\n */\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.initPikaday().then(() => {\n this.handleMarkup();\n });\n }\n }\n\n /**\n * Cleans up subscriptions and event handlers on destroy.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Marks the input as touched when clicked.\n */\n @HostListener('click')\n onClick(): void {\n this.onTouched();\n }\n\n /**\n * On blur, checks input value and emits appropriate change.\n */\n @HostListener('blur')\n onBlur(): void {\n const textFieldValue: string = this.hostEl.value;\n\n if (textFieldValue) {\n this.onChange(this.picker?.getDate());\n } else {\n this.onChange(null);\n }\n }\n\n /**\n * Writes a new value from the form model into the view or (if needed) DOM property.\n * Required by ControlValueAccessor interface.\n * \n * @param value - The value to be written into the input.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.value = value;\n if (this.picker) {\n this.picker.setDate(value);\n }\n }\n\n /**\n * Sets the disabled state of the component.\n * Called by Angular forms when the control status changes.\n * \n * @param isDisabled - Boolean indicating whether the input should be disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled || null;\n }\n\n /**\n * Registers a callback function that should be called when the control's value changes in the UI.\n * Required by ControlValueAccessor interface.\n * \n * @param fn - The callback function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * Registers a callback function that should be called when the control is touched.\n * Required by ControlValueAccessor interface.\n * \n * @param fn - The callback function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private async initPikaday(): Promise<void> {\n const i18nKey = 'ecl.date-picker.PIKADAY';\n let i18nTranslation = this.translateService.instant(i18nKey);\n const isRTL = this.isRtl;\n const position = isRTL ? 'bottom right' : 'bottom left';\n\n if (!i18nTranslation || i18nTranslation === i18nKey) {\n i18nTranslation = pikadayDefaultI18n;\n }\n\n // Dynamically import Pikaday when the component initializes\n try {\n const { default: Pikaday } = await import('pikaday');\n\n // Initialize Pikaday after it is imported\n this.picker = new Pikaday({\n field: this.el.nativeElement,\n format: this.format,\n theme: 'ecl-datepicker-theme',\n yearRange: this.yearRange,\n reposition: false,\n i18n: i18nTranslation,\n isRTL,\n position,\n showDaysInNextAndPreviousMonths: true,\n enableSelectionDaysInNextAndPreviousMonths: true,\n onSelect: this.onSelectDate.bind(this),\n onOpen: (): void => this.setPikadayElementStyles(this.picker.el),\n });\n this.picker.setDate(this.value);\n } catch (error) {\n console.error('Error importing Pikaday', error);\n }\n }\n\n private handlei18nEvents(): void {\n this.translateService.onLangChange.pipe(takeUntil(this.destroy$))\n .subscribe((langChangeEvent: LangChangeEvent) => {\n this.value = this.picker.getDate();\n this.destroyPikaday();\n this.initPikaday().then();\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n if (this.picker) {\n this.value = this.picker.getDate();\n this.destroyPikaday();\n this.initPikaday().then();\n }\n });\n }\n\n private handleResize(): void {\n fromEvent(window, 'resize')\n .pipe(debounceTime(this.DEBOUNCE_TIME), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setPikadayElementStyles(this.picker.el);\n })\n }\n\n private setPikadayElementStyles(element: HTMLElement): void {\n // Extend picker size on mobile\n const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n const inputParentElRect = this.hostWrapperEl.getBoundingClientRect();\n element.style.top = `${inputParentElRect.bottom}px`;\n //mobile_mode\n if (vw < this.MOBILE_BREAKPOINT) {\n element.style.right = `${vw - inputParentElRect.right}px`;\n element.style.left = `${inputParentElRect.left}px`;\n } else if ( this.isRtl) {\n element.style.right = `${vw - inputParentElRect.right}px`;\n element.style.left = 'auto';\n } else {\n element.style.right = 'auto';\n element.style.left = `${inputParentElRect.left}px`;\n }\n }\n\n private onSelectDate(date: Date): void {\n this.datePicked.next(new EclDatePickerDatePickedEvent(date));\n this.onChange(date);\n }\n\n private handleMarkup(): void {\n this.hostEl = this.getHostElement();\n this.hostParentEl = this.getHostParentElement(this.hostEl);\n this.hostWrapperEl = this.createHostWrapperContainer();\n this.eclIconComponentEl = this.createIconComponent();\n\n if (this.hostParentEl != null) {\n this.hostParentEl.replaceChild(this.hostWrapperEl, this.hostEl);\n this.renderer.appendChild(this.hostWrapperEl, this.hostEl);\n this.renderer.appendChild(this.hostWrapperEl, this.eclIconComponentEl);\n }\n }\n\n private getHostElement(): HTMLInputElement {\n return this.el.nativeElement;\n }\n\n private getHostParentElement(hostEl: HTMLInputElement): HTMLElement {\n return this.renderer.parentNode(hostEl);\n }\n\n private createHostWrapperContainer(): HTMLElement {\n const wrapperContainer = this.renderer.createElement('div');\n this.renderer.addClass(wrapperContainer, 'ecl-datepicker');\n\n return wrapperContainer;\n }\n\n private createIconComponent(): HTMLElement {\n const eclIconComponent = this.viewContainerRef.createComponent(EclIconComponent);\n eclIconComponent.instance.size = 'xs';\n eclIconComponent.instance.icon = 'calendar';\n eclIconComponent.instance.baseDirective.class = 'ecl-datepicker__icon';\n\n return eclIconComponent.location.nativeElement;\n }\n\n private destroyPikaday(): void {\n if (this.picker) {\n this.picker.destroy();\n this.picker = undefined;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EclDatePickerDirective } from './ecl-date-picker.directive';\n\n/**\n * Module that provides the EclDatePicker directive.\n *\n * @deprecated Use {@link EUI_ECL_DATE_PICKER} instead.\n */\n@NgModule({\n imports: [EclDatePickerDirective],\n exports: [EclDatePickerDirective],\n})\nexport class EclDatePickerModule {}\n","import { EclDatePickerDirective } from './ecl-date-picker.directive';\n\nexport * from './ecl-date-picker.module';\nexport * from './ecl-date-picker.directive';\nexport * from './events/ecl-date-picker-date-picked.event';\n\nexport const EUI_ECL_DATE_PICKER = [\n EclDatePickerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-date-picker.mjs","sources":["../../components/ecl-date-picker/events/ecl-date-picker-date-picked.event.ts","../../components/ecl-date-picker/ecl-date-picker.directive.ts","../../components/ecl-date-picker/ecl-date-picker.module.ts","../../components/ecl-date-picker/index.ts","../../components/ecl-date-picker/eui-ecl-components-ecl-date-picker.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Custom event emitted by the ECL date picker when a date is selected.\n */\nexport class EclDatePickerDatePickedEvent extends EclBaseEvent {\n\tconstructor(public date: Date) {\n\t\tsuper();\n\t}\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n Provider,\n Renderer2,\n ViewContainerRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport type Pikaday from 'pikaday';\nimport { Subject, debounceTime, fromEvent, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { EclDatePickerDatePickedEvent } from './events/ecl-date-picker-date-picked.event';\nimport { EclRtlService } from '@eui/ecl/core';\n\n/**\n * Default i18n values for the Pikaday calendar component.\n */\nconst pikadayDefaultI18n = {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n};\n\n/**\n * Value accessor provider for Angular reactive and template-driven forms.\n */\nexport const ECL_DATE_PICKER_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclDatePickerDirective),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty */\n};\n\n/**\n * Directive that enhances a native input element with an ECL-compliant date picker.\n * Integrates Pikaday with support for localization (i18n), RTL layout, and responsive behavior.\n */\n@Directive({\n selector: 'input[eclDatePicker]',\n providers: [ECL_DATE_PICKER_VALUE_ACCESSOR],\n})\nexport class EclDatePickerDirective extends ECLBaseDirective implements OnInit, ControlValueAccessor, OnDestroy {\n /**\n * Number of years to show in the year dropdown.\n */\n @Input() yearRange = 40;\n\n /**\n * Date format string used to display and parse dates.\n * Follows the format syntax supported by Pikaday.\n */\n @Input() format = 'DD-MM-YYYY';\n\n /**\n * Sets the type attribute of the host input element to 'text'.\n */\n @HostBinding('attr.type') type = 'text';\n\n /**\n * Binds base ECL CSS classes to the host input element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-datepicker__field')].join(' ').trim();\n }\n\n /**\n * Emits an event when a date is selected.\n */\n @Output() datePicked = new EventEmitter<EclDatePickerDatePickedEvent>();\n\n /**\n * Binds the 'disabled' attribute to the host element.\n * Accepts `null` or an empty string.\n */\n @HostBinding('attr.disabled')\n isDisabled = null;\n\n private picker: Pikaday;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n private onTouched: () => void = noop;\n\n private hostEl: HTMLInputElement;\n private hostParentEl: HTMLElement;\n private hostWrapperEl: HTMLElement;\n private eclIconComponentEl: HTMLElement;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private value: any;\n private isRtl = false;\n private readonly DEBOUNCE_TIME = 100;\n private readonly MOBILE_BREAKPOINT = 768;\n\n constructor(\n private el: ElementRef,\n private viewContainerRef: ViewContainerRef,\n protected translateService: TranslateService,\n private eclRtlService: EclRtlService,\n private renderer: Renderer2,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\n super();\n if (isPlatformBrowser(this.platformId)) {\n this.handlei18nEvents();\n this.handleRtlChangeState();\n this.handleResize();\n }\n }\n\n /**\n * Initializes the Pikaday instance and applies markup when running in browser.\n */\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.initPikaday().then(() => {\n this.handleMarkup();\n });\n }\n }\n\n /**\n * Cleans up subscriptions and event handlers on destroy.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Marks the input as touched when clicked.\n */\n @HostListener('click')\n onClick(): void {\n this.onTouched();\n }\n\n /**\n * On blur, checks input value and emits appropriate change.\n */\n @HostListener('blur')\n onBlur(): void {\n const textFieldValue: string = this.hostEl.value;\n\n if (textFieldValue) {\n this.onChange(this.picker?.getDate());\n } else {\n this.onChange(null);\n }\n }\n\n /**\n * Writes a new value from the form model into the view or (if needed) DOM property.\n * Required by ControlValueAccessor interface.\n * \n * @param value - The value to be written into the input.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.value = value;\n if (this.picker) {\n this.picker.setDate(value);\n }\n }\n\n /**\n * Sets the disabled state of the component.\n * Called by Angular forms when the control status changes.\n * \n * @param isDisabled - Boolean indicating whether the input should be disabled.\n */\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled || null;\n }\n\n /**\n * Registers a callback function that should be called when the control's value changes in the UI.\n * Required by ControlValueAccessor interface.\n * \n * @param fn - The callback function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * Registers a callback function that should be called when the control is touched.\n * Required by ControlValueAccessor interface.\n * \n * @param fn - The callback function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private async initPikaday(): Promise<void> {\n const i18nKey = 'ecl.date-picker.PIKADAY';\n let i18nTranslation = this.translateService.instant(i18nKey);\n const isRTL = this.isRtl;\n const position = isRTL ? 'bottom right' : 'bottom left';\n\n if (!i18nTranslation || i18nTranslation === i18nKey) {\n i18nTranslation = pikadayDefaultI18n;\n }\n\n // Dynamically import Pikaday when the component initializes\n try {\n const { default: Pikaday } = await import('pikaday');\n\n // Initialize Pikaday after it is imported\n this.picker = new Pikaday({\n field: this.el.nativeElement,\n format: this.format,\n theme: 'ecl-datepicker-theme',\n yearRange: this.yearRange,\n reposition: false,\n i18n: i18nTranslation,\n isRTL,\n position,\n showDaysInNextAndPreviousMonths: true,\n enableSelectionDaysInNextAndPreviousMonths: true,\n onSelect: this.onSelectDate.bind(this),\n onOpen: (): void => this.setPikadayElementStyles(this.picker.el),\n });\n this.picker.setDate(this.value);\n } catch (error) {\n console.error('Error importing Pikaday', error);\n }\n }\n\n private handlei18nEvents(): void {\n this.translateService.onLangChange.pipe(takeUntil(this.destroy$))\n .subscribe((langChangeEvent: LangChangeEvent) => {\n this.value = this.picker.getDate();\n this.destroyPikaday();\n this.initPikaday().then();\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n if (this.picker) {\n this.value = this.picker.getDate();\n this.destroyPikaday();\n this.initPikaday().then();\n }\n });\n }\n\n private handleResize(): void {\n fromEvent(window, 'resize')\n .pipe(debounceTime(this.DEBOUNCE_TIME), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setPikadayElementStyles(this.picker.el);\n })\n }\n\n private setPikadayElementStyles(element: HTMLElement): void {\n // Extend picker size on mobile\n const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n const inputParentElRect = this.hostWrapperEl.getBoundingClientRect();\n //mobile_mode\n if (vw < this.MOBILE_BREAKPOINT) {\n element.style.right = `${vw - inputParentElRect.right}px`;\n element.style.left = `${inputParentElRect.left}px`;\n } else if ( this.isRtl) {\n element.style.right = `${vw - inputParentElRect.right}px`;\n element.style.left = 'auto';\n } else {\n element.style.right = 'auto';\n element.style.left = `${inputParentElRect.left}px`;\n }\n }\n\n private onSelectDate(date: Date): void {\n this.datePicked.next(new EclDatePickerDatePickedEvent(date));\n this.onChange(date);\n }\n\n private handleMarkup(): void {\n this.hostEl = this.getHostElement();\n this.hostParentEl = this.getHostParentElement(this.hostEl);\n this.hostWrapperEl = this.createHostWrapperContainer();\n this.eclIconComponentEl = this.createIconComponent();\n\n if (this.hostParentEl != null) {\n this.hostParentEl.replaceChild(this.hostWrapperEl, this.hostEl);\n this.renderer.appendChild(this.hostWrapperEl, this.hostEl);\n this.renderer.appendChild(this.hostWrapperEl, this.eclIconComponentEl);\n }\n }\n\n private getHostElement(): HTMLInputElement {\n return this.el.nativeElement;\n }\n\n private getHostParentElement(hostEl: HTMLInputElement): HTMLElement {\n return this.renderer.parentNode(hostEl);\n }\n\n private createHostWrapperContainer(): HTMLElement {\n const wrapperContainer = this.renderer.createElement('div');\n this.renderer.addClass(wrapperContainer, 'ecl-datepicker');\n\n return wrapperContainer;\n }\n\n private createIconComponent(): HTMLElement {\n const eclIconComponent = this.viewContainerRef.createComponent(EclIconComponent);\n eclIconComponent.instance.size = 'xs';\n eclIconComponent.instance.icon = 'calendar';\n eclIconComponent.instance.baseDirective.class = 'ecl-datepicker__icon';\n\n return eclIconComponent.location.nativeElement;\n }\n\n private destroyPikaday(): void {\n if (this.picker) {\n this.picker.destroy();\n this.picker = undefined;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EclDatePickerDirective } from './ecl-date-picker.directive';\n\n/**\n * Module that provides the EclDatePicker directive.\n *\n * @deprecated Use {@link EUI_ECL_DATE_PICKER} instead.\n */\n@NgModule({\n imports: [EclDatePickerDirective],\n exports: [EclDatePickerDirective],\n})\nexport class EclDatePickerModule {}\n","import { EclDatePickerDirective } from './ecl-date-picker.directive';\n\nexport * from './ecl-date-picker.module';\nexport * from './ecl-date-picker.directive';\nexport * from './events/ecl-date-picker-date-picked.event';\n\nexport const EUI_ECL_DATE_PICKER = [\n EclDatePickerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAEA;;AAEG;AACG,MAAO,4BAA6B,SAAQ,YAAY,CAAA;AAC7D,IAAA,WAAA,CAAmB,IAAU,EAAA;AAC5B,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,IAAI,GAAJ,IAAI;IAEvB;AACA;;ACTD;AA4BA;;AAEG;AACH,MAAM,kBAAkB,GAAG;AACvB,IAAA,aAAa,EAAE,gBAAgB;AAC/B,IAAA,SAAS,EAAE,YAAY;IACvB,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;AAClI,IAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;AACxF,IAAA,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;CACnE;AAED;;AAEG;AACI,MAAM,8BAA8B,GAAa;AACpD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,IAAA,KAAK,EAAE,IAAI;;AAGf,MAAM,IAAI,GAAG,MAAW;;AAExB,CAAC;AAED;;;AAGG;AAKG,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAiBxD;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC1E;IA+BA,WAAA,CACY,EAAc,EACd,gBAAkC,EAChC,gBAAkC,EACpC,aAA4B,EAC5B,QAAmB,EACE,UAAkB,EAAA;AAE/C,QAAA,KAAK,EAAE;QAPC,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QACd,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAClB,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACa,IAAA,CAAA,UAAU,GAAV,UAAU;AA3D3C;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,EAAE;AAEvB;;;AAGG;QACM,IAAA,CAAA,MAAM,GAAG,YAAY;AAE9B;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,MAAM;AAUvC;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAgC;AAEvE;;;AAGG;QAEH,IAAA,CAAA,UAAU,GAAG,IAAI;AAGT,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;;QAGnD,IAAA,CAAA,QAAQ,GAAqB,IAAI;QACjC,IAAA,CAAA,SAAS,GAAe,IAAI;QAQ5B,IAAA,CAAA,KAAK,GAAG,KAAK;QACJ,IAAA,CAAA,aAAa,GAAG,GAAG;QACnB,IAAA,CAAA,iBAAiB,GAAG,GAAG;AAWpC,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,YAAY,EAAE;QACvB;IACJ;AAEA;;AAEG;IACH,QAAQ,GAAA;AACJ,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,MAAK;gBACzB,IAAI,CAAC,YAAY,EAAE;AACvB,YAAA,CAAC,CAAC;QACN;IACJ;AAEA;;AAEG;IACH,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA;;AAEG;IAEH,OAAO,GAAA;QACH,IAAI,CAAC,SAAS,EAAE;IACpB;AAEA;;AAEG;IAEH,MAAM,GAAA;AACF,QAAA,MAAM,cAAc,GAAW,IAAI,CAAC,MAAM,CAAC,KAAK;QAEhD,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QACzC;aAAO;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvB;IACJ;AAEC;;;;;AAKE;;AAEH,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9B;IACJ;AAEA;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI;IACxC;AAEA;;;;;AAKG;;AAEH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACtB;AAEA;;;;;AAKG;;AAEH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACvB;AAEQ,IAAA,MAAM,WAAW,GAAA;QACrB,MAAM,OAAO,GAAG,yBAAyB;QACzC,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,MAAM,QAAQ,GAAG,KAAK,GAAG,cAAc,GAAG,aAAa;AAEvD,QAAA,IAAI,CAAC,eAAe,IAAI,eAAe,KAAK,OAAO,EAAE;YACjD,eAAe,GAAG,kBAAkB;QACxC;;AAGA,QAAA,IAAI;YACA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,SAAS,CAAC;;AAGpD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC;AACtB,gBAAA,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,KAAK,EAAE,sBAAsB;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,IAAI,EAAE,eAAe;gBACrB,KAAK;gBACL,QAAQ;AACR,gBAAA,+BAA+B,EAAE,IAAI;AACrC,gBAAA,0CAA0C,EAAE,IAAI;gBAChD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,gBAAA,MAAM,EAAE,MAAY,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnE,aAAA,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC;QAAE,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;QACnD;IACJ;IAEQ,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3D,aAAA,SAAS,CAAC,CAAC,eAAgC,KAAI;YAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAClC,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;AAC7B,QAAA,CAAC,CAAC;IACN;IAEQ,oBAAoB,GAAA;QACxB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtF,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACrB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBAClC,IAAI,CAAC,cAAc,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC7B;AACJ,QAAA,CAAC,CAAC;IACN;IAEQ,YAAY,GAAA;AAChB,QAAA,SAAS,CAAC,MAAM,EAAE,QAAQ;AACvB,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC/D,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAChD,QAAA,CAAC,CAAC;IACR;AAEQ,IAAA,uBAAuB,CAAC,OAAoB,EAAA;;QAEhD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;QACtF,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;;AAEpE,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC7B,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAA,EAAA,CAAI;YACzD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAA,EAAA,CAAI;QACtD;AAAO,aAAA,IAAK,IAAI,CAAC,KAAK,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAI,CAAA,EAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAA,EAAA,CAAI;AAC1D,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;QAC/B;aAAO;AACH,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,GAAI,MAAM;YAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAA,EAAA,CAAI;QACtD;IACJ;AAEQ,IAAA,YAAY,CAAC,IAAU,EAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IACvB;IAEQ,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,0BAA0B,EAAE;AACtD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAEpD,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC;AAC/D,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC;AAC1D,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC;QAC1E;IACJ;IAEQ,cAAc,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa;IAChC;AAEQ,IAAA,oBAAoB,CAAC,MAAwB,EAAA;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IAC3C;IAEQ,0BAA0B,GAAA;QAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;AAE1D,QAAA,OAAO,gBAAgB;IAC3B;IAEQ,mBAAmB,GAAA;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC;AAChF,QAAA,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI;AACrC,QAAA,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU;QAC3C,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,sBAAsB;AAEtE,QAAA,OAAO,gBAAgB,CAAC,QAAQ,CAAC,aAAa;IAClD;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;QAC3B;IACJ;AA5RS,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kKA4DnB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGA5Dd,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,8BAA8B,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAElC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,8BAA8B,CAAC;AAC9C,iBAAA;;0BA6DQ,MAAM;2BAAC,WAAW;yCAxDd,SAAS,EAAA,CAAA;sBAAjB;gBAMQ,MAAM,EAAA,CAAA;sBAAd;gBAKyB,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;gBAMpB,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAQV,UAAU,EAAA,CAAA;sBAAnB;gBAOD,UAAU,EAAA,CAAA;sBADT,WAAW;uBAAC,eAAe;gBA2D5B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO;gBASrB,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM;;;AC7JxB;;;;AAIG;MAKU,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHlB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACtB,sBAAsB,CAAA,EAAA,CAAA,CAAA;gHAEvB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA;;;ACLM,MAAM,mBAAmB,GAAG;IAC/B,sBAAsB;;;ACP1B;;AAEG;;;;"}
|