@acorex/components 21.0.1-next.16 → 21.0.1-next.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../../../../packages/components/datetime-picker/src/lib/datetime-picker.config.ts","../../../../packages/components/datetime-picker/src/lib/datetime-picker.component.ts","../../../../packages/components/datetime-picker/src/lib/datetime-picker.component.html","../../../../packages/components/datetime-picker/src/lib/datetime-picker.module.ts","../../../../packages/components/datetime-picker/src/acorex-components-datetime-picker.ts"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXDateTimePickerConfig {\n currentTimeButton: boolean;\n}\n\nexport const AX_DATETIME_PICKER_CONFIG = new InjectionToken<AXDateTimePickerConfig>('AX_DATETIME_PICKER_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'datetime-picker', AX_DATETIME_PICKER_CONFIG);\n return AXDateTimePickerDefaultConfig;\n },\n});\n\nexport const AXDateTimePickerDefaultConfig: AXDateTimePickerConfig = {\n currentTimeButton: true,\n};\n\nexport type PartialDateTimePickerConfig = Partial<AXDateTimePickerConfig>;\n\nexport function dateTimePickerConfig(config: PartialDateTimePickerConfig = {}): AXDateTimePickerConfig {\n const result = {\n ...AXDateTimePickerDefaultConfig,\n ...config,\n };\n return result;\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport {\n AXCalendarComponent,\n AXCalendarNavigateEvent,\n AXDateTimePickerType,\n MXCalendarBaseComponent,\n} from '@acorex/components/calendar';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXDateTime, AXDateTimeParts, TimeUnit } from '@acorex/core/date-time';\nimport { AXFormatPipe, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXDateTimePickerConfig, AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';\n\n/**\n * allows users to select a date and time from a calendar and time picker interface.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-datetime-picker',\n templateUrl: './datetime-picker.component.html',\n styleUrls: ['./datetime-picker.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n 'depth',\n 'activeView',\n 'minValue',\n 'maxValue',\n 'disabledDates',\n 'holidayDates',\n 'type',\n 'cellTemplate',\n 'cellClass',\n 'showNavigation',\n ],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n 'depthChange',\n 'typeChange',\n 'activeViewChange',\n 'disabledDatesChange',\n 'holidayDatesChange',\n 'onNavigate',\n 'onSlotClick',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ],\n imports: [\n AXTabsComponent,\n AXTabItemComponent,\n AXCalendarComponent,\n FormsModule,\n NgTemplateOutlet,\n AXButtonComponent,\n AXPickerContainerComponent,\n AXPickerTitleComponent,\n AXDecoratorGenericComponent,\n AXPickerItemsComponent,\n AsyncPipe,\n AXFormatPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXDateTimePickerComponent\n extends classes(MXCalendarBaseComponent, MXValueComponent<Date>)\n implements OnInit\n{\n private formatService = inject(AXFormatService);\n\n weekend = input<number[]>([]);\n weekdays = input<number[]>([]);\n\n protected buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'));\n\n private defaultConfig: AXDateTimePickerConfig = inject(AX_DATETIME_PICKER_CONFIG);\n\n protected pickerHoursMinValue = signal<number>(null);\n protected pickerHoursMaxValue = signal<number>(null);\n protected pickerMinuteMinValue = signal<number>(null);\n protected pickerMinuteMaxValue = signal<number>(null);\n protected pickerSecondMinValue = signal<number>(null);\n protected pickerSecondMaxValue = signal<number>(null);\n\n /**\n * @ignore\n */\n private _currentTimeButton: boolean = this.defaultConfig.currentTimeButton;\n\n /**\n * Determines whether a button for selecting the current time is displayed.\n */\n @Input()\n public get currentTimeButton(): boolean {\n return this._currentTimeButton;\n }\n\n /**\n * Sets whether the button for selecting the current time is displayed.\n */\n public set currentTimeButton(v: boolean) {\n this.setOption({\n name: 'currentTimeButton',\n value: v,\n });\n }\n\n /**\n * @ignore\n */\n @ViewChild(AXTabsComponent)\n protected tabs: AXTabsComponent;\n\n /**\n * @ignore\n */\n protected hours: any[] = Array(24)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n minutes: any[] = Array(60)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n\n /**\n * @ignore\n */\n protected _parts: AXDateTimeParts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.year.placeholder as any),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.month.placeholder as any),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'E', 'dddd'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.day.placeholder as any),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.hour.placeholder as any),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.minute.placeholder as any),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.second.placeholder as any),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.AMPM.placeholder as any),\n },\n };\n\n /**\n * @ignore\n */\n protected _activePart = signal<'date' | 'time'>('date');\n\n /**\n * @ignore\n */\n protected get _hasDatePart(): boolean {\n return ['year', 'month', 'day'].some((k) => this._parts[k].enabled);\n }\n\n /**\n * @ignore\n */\n protected get _hasTimePart(): boolean {\n return ['hour', 'minute', 'second'].some((k) => this._parts[k].enabled);\n }\n\n // /**\n // * @ignore\n // */\n editingDateObj = linkedSignal<AXDateTime>(() => this.calendarService.now(this.calendar()));\n\n /**\n * @description The calendar type to use for the datetime input.\n */\n calendar = input<string | null>(null);\n\n protected _calendarSystem = linkedSignal<string | null>(() => this.calendar() ?? this.type);\n\n picker = input<AXDateTimePickerType>('datetime');\n\n #effectPicker = effect(() => {\n if (this.picker() === 'time') {\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n this._activePart.set('time');\n } else if (this.picker() === 'date') {\n this._activePart.set('date');\n }\n });\n\n private _format = linkedSignal<string>(\n () => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '',\n );\n\n /**\n * @deprecated use locale & mode instead\n */\n format = input<string | null>();\n\n #effect = effect(() => {\n const profile = this.localeService.activeProfile();\n //\n if (!this.format()) {\n this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');\n }\n //\n if (!this.calendar()) {\n this._calendarSystem.set(profile.calendar.system);\n }\n //\n this.type = this._calendarSystem();\n //\n this._detectParts();\n });\n\n /**\n * @ignore\n */\n override async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n\n this.minValueChange.subscribe(() => {\n this.checkSelectedMinValue(this.editingDateObj());\n });\n\n this.maxValueChange.subscribe(() => {\n this.checkSelectedMaxValue(this.editingDateObj());\n });\n }\n\n /**\n * Handles changes to the internal value of the component.\n * @param value - The new date value. If not provided, defaults to the current date.\n */\n override internalValueChanged(value?: Date): void {\n try {\n if (this.calendarService.isValidDate(value)) {\n this.editingDateObj.set(this.calendarService.create(value, this.calendar()));\n } else {\n throw new Error();\n }\n } catch {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n }\n }\n\n /**\n * @ignore\n */\n protected _handleViewChanged(e: AXTabStripChangedEvent) {\n this._activePart.set(e.tab.key as 'date' | 'time');\n }\n\n /**\n * @ignore\n */\n protected _handlePickerOnValueChanged(e: AXValueChangedEvent<Date>, part: string) {\n if (e.isUserInteraction) {\n this.editingDateObj.set(this.editingDateObj().set(part as TimeUnit, Number(e.value['id'])));\n\n if (this.minValue) {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n // Only apply minute restrictions if we're on the same day and same hour\n if (this.editingDateObj().isAfter(this.minValue, 'day') || this.editingDateObj().hour > minv.hour) {\n this.pickerMinuteMinValue.set(null);\n } else {\n this.pickerMinuteMinValue.set(minv.minute);\n }\n }\n\n if (this.maxValue) {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n // Only apply minute restrictions if we're on the same day and same hour\n if (this.editingDateObj().isBefore(this.maxValue, 'day') || this.editingDateObj().hour < maxv.hour) {\n this.pickerMinuteMaxValue.set(null);\n } else {\n this.pickerMinuteMaxValue.set(maxv.minute);\n }\n }\n }\n }\n\n /**\n * @ignore\n */\n protected _handleCalendarOnNavigate(e: AXCalendarNavigateEvent) {\n this.onNavigate.emit(e);\n }\n\n /**\n * @ignore\n */\n protected _handleCalendarOnValueChanged(e: AXValueChangedEvent<Date>) {\n if (e.isUserInteraction) {\n const selectedValue = this.calendarService.create(e.value, this.calendar());\n const currentValue = this.calendarService\n .create(e.value, this.calendar())\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n\n this.editingDateObj.set(currentValue);\n if (this._hasTimePart) {\n this._activePart.set('time');\n if (this.tabs && this._hasDatePart && this._hasTimePart) {\n this.tabs.select(1);\n } else {\n this.commitValue(this.editingDateObj().date, true);\n }\n } else {\n this.commitValue(this.editingDateObj().date, true);\n }\n\n this.checkSelectedMinValue(selectedValue);\n this.checkSelectedMaxValue(selectedValue);\n }\n }\n\n private checkSelectedMinValue(selectedValue: AXDateTime) {\n if (!this.minValue) return;\n if (!this.calendarService.isValidDate(this.minValue)) return;\n\n if (selectedValue.isAfter(this.minValue, 'day')) {\n this.pickerHoursMinValue.set(null);\n this.pickerMinuteMinValue.set(null);\n this.pickerSecondMinValue.set(null);\n } else {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n this.pickerHoursMinValue.set(minv.hour);\n this.pickerMinuteMinValue.set(minv.minute);\n this.pickerSecondMinValue.set(minv.second);\n }\n }\n\n private checkSelectedMaxValue(selectedValue: AXDateTime) {\n if (!this.maxValue) return;\n if (!this.calendarService.isValidDate(this.maxValue)) return;\n\n if (selectedValue.isBefore(this.maxValue, 'day')) {\n this.pickerHoursMaxValue.set(null);\n this.pickerMinuteMaxValue.set(null);\n this.pickerSecondMaxValue.set(null);\n } else {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n this.pickerHoursMaxValue.set(maxv.hour);\n this.pickerMinuteMaxValue.set(maxv.minute);\n this.pickerSecondMaxValue.set(maxv.second);\n }\n }\n\n /**\n * @ignore\n */\n private _detectParts() {\n Object.values(this._parts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._format().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._parts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n //this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleSetClick() {\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n\n /**\n * @ignore\n */\n protected _handleNowClick() {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n\n /**\n * @ignore\n */\n protected isDisabled(date: AXDateTime): boolean {\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n return this.disabledDates.some((d) => date.equal(d, 'day'));\n } else if (typeof this.disabledDates == 'function') {\n return this.disabledDates(date.date);\n }\n return false;\n }\n\n /**\n * @ignore\n */\n protected override internalSetValue(value: Date): Date | null {\n if (!value || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n this.checkSelectedMinValue(this.calendarService.convert(v, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(v, this.calendar()));\n\n if (this.isDisabled(v)) {\n return null;\n }\n\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n\n return v.date;\n }\n\n protected isTodayDisabled(): boolean {\n const disabledDates = this.disabledDates;\n\n if (!disabledDates || !Array.isArray(disabledDates)) {\n return false;\n }\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n return disabledDates.some((disabledDate: Date) => {\n const disabled = new Date(disabledDate);\n disabled.setHours(0, 0, 0, 0);\n return today.getTime() === disabled.getTime();\n });\n }\n}\n","@if (_hasDatePart && _hasTimePart) {\n <div class=\"ax-header\">\n <ax-tabs [look]=\"'default'\" [fitParent]=\"true\" [location]=\"'top'\" (onActiveTabChanged)=\"_handleViewChanged($event)\">\n <ax-tab-item\n [text]=\"'@acorex:dateTime.date' | translate | async\"\n [key]=\"'date'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n <ax-tab-item\n [text]=\"'@acorex:dateTime.time' | translate | async\"\n [key]=\"'time'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n </ax-tabs>\n </div>\n}\n<div class=\"ax-content\">\n @if (_activePart() === 'date') {\n <div class=\"ax-calendar-part\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [weekend]=\"weekend()\"\n [weekdays]=\"weekdays()\"\n [ngModel]=\"editingDateObj().date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"_calendarSystem()\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart() === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n @if (picker() === 'datetime') {\n {{ editingDateObj() | format: 'time' : 'medium' | async }}\n {{ editingDateObj() | format: 'date' : 'medium' | async }}\n } @else {\n {{ editingDateObj() | format: picker() : 'medium' | async }}\n }\n </div>\n <div dir=\"ltr\" class=\"ax-picker-time-container\">\n @if (_parts.hour.enabled) {\n <ng-container [ngTemplateOutlet]=\"hourRef\"> </ng-container>\n }\n\n @if (_parts.minute.enabled) {\n <ng-container [ngTemplateOutlet]=\"minuteRef\"> </ng-container>\n }\n\n @if (_parts.second.enabled) {\n <ng-container [ngTemplateOutlet]=\"secondRef\"> </ng-container>\n }\n </div>\n </div>\n }\n</div>\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\n <div class=\"ax-footer\">\n <div>\n @if (currentTimeButton) {\n <ax-button\n [text]=\"`@acorex:${buttonText()}` | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n [disabled]=\"isTodayDisabled()\"\n ></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button\n color=\"primary\"\n [text]=\"'@acorex:dateTime.set' | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n }\n </div>\n </div>\n}\n\n<ng-template #hourRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\n </ax-picker-title>\n <ax-picker-items\n [items]=\"hours\"\n [ngModel]=\"editingDateObj().hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [minValue]=\"pickerHoursMinValue()\"\n [maxValue]=\"pickerHoursMaxValue()\"\n ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n\n<ng-template #minuteRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\n </ax-picker-title>\n <ax-picker-items\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj().minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [minValue]=\"pickerMinuteMinValue()\"\n [maxValue]=\"pickerMinuteMaxValue()\"\n ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n\n<ng-template #secondRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\n </ax-picker-title>\n <ax-picker-items\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj().second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [minValue]=\"pickerSecondMinValue()\"\n [maxValue]=\"pickerSecondMaxValue()\"\n ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\n\n@NgModule({\n imports: [AXDateTimePickerComponent],\n exports: [AXDateTimePickerComponent],\n})\nexport class AXDateTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../../../../packages/components/datetime-picker/src/lib/datetime-picker.config.ts","../../../../packages/components/datetime-picker/src/lib/datetime-picker.component.ts","../../../../packages/components/datetime-picker/src/lib/datetime-picker.component.html","../../../../packages/components/datetime-picker/src/lib/datetime-picker.module.ts","../../../../packages/components/datetime-picker/src/acorex-components-datetime-picker.ts"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXDateTimePickerConfig {\n currentTimeButton: boolean;\n}\n\nexport const AX_DATETIME_PICKER_CONFIG = new InjectionToken<AXDateTimePickerConfig>('AX_DATETIME_PICKER_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'datetime-picker', AX_DATETIME_PICKER_CONFIG);\n return AXDateTimePickerDefaultConfig;\n },\n});\n\nexport const AXDateTimePickerDefaultConfig: AXDateTimePickerConfig = {\n currentTimeButton: true,\n};\n\nexport type PartialDateTimePickerConfig = Partial<AXDateTimePickerConfig>;\n\nexport function dateTimePickerConfig(config: PartialDateTimePickerConfig = {}): AXDateTimePickerConfig {\n const result = {\n ...AXDateTimePickerDefaultConfig,\n ...config,\n };\n return result;\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXValueComponent,\n} from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport {\n AXCalendarComponent,\n AXCalendarNavigateEvent,\n AXDateTimePickerType,\n MXCalendarBaseComponent,\n} from '@acorex/components/calendar';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXDateTime, AXDateTimeParts, TimeUnit } from '@acorex/core/date-time';\nimport { AXFormatPipe, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n signal,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXDateTimePickerConfig, AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';\n\n/**\n * allows users to select a date and time from a calendar and time picker interface.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-datetime-picker',\n templateUrl: './datetime-picker.component.html',\n styleUrls: ['./datetime-picker.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n 'depth',\n 'activeView',\n 'minValue',\n 'maxValue',\n 'disabledDates',\n 'holidayDates',\n 'type',\n 'cellTemplate',\n 'cellClass',\n 'showNavigation',\n ],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n 'depthChange',\n 'typeChange',\n 'activeViewChange',\n 'disabledDatesChange',\n 'holidayDatesChange',\n 'onNavigate',\n 'onSlotClick',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ],\n imports: [\n AXTabsComponent,\n AXTabItemComponent,\n AXCalendarComponent,\n FormsModule,\n NgTemplateOutlet,\n AXButtonComponent,\n AXPickerContainerComponent,\n AXPickerTitleComponent,\n AXDecoratorGenericComponent,\n AXPickerItemsComponent,\n AsyncPipe,\n AXFormatPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXDateTimePickerComponent\n extends classes(MXCalendarBaseComponent, MXValueComponent<Date>)\n implements OnInit\n{\n private formatService = inject(AXFormatService);\n\n weekend = input<number[]>([]);\n weekdays = input<number[]>([]);\n\n protected buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'));\n\n private defaultConfig: AXDateTimePickerConfig = inject(AX_DATETIME_PICKER_CONFIG);\n\n protected pickerHoursMinValue = signal<number>(null);\n protected pickerHoursMaxValue = signal<number>(null);\n protected pickerMinuteMinValue = signal<number>(null);\n protected pickerMinuteMaxValue = signal<number>(null);\n protected pickerSecondMinValue = signal<number>(null);\n protected pickerSecondMaxValue = signal<number>(null);\n\n /**\n * @ignore\n */\n private _currentTimeButton: boolean = this.defaultConfig.currentTimeButton;\n\n /**\n * Determines whether a button for selecting the current time is displayed.\n */\n @Input()\n public get currentTimeButton(): boolean {\n return this._currentTimeButton;\n }\n\n /**\n * Sets whether the button for selecting the current time is displayed.\n */\n public set currentTimeButton(v: boolean) {\n this.setOption({\n name: 'currentTimeButton',\n value: v,\n });\n }\n\n /**\n * @ignore\n */\n @ViewChild(AXTabsComponent)\n protected tabs: AXTabsComponent;\n\n /**\n * @ignore\n */\n protected hours: any[] = Array(24)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n minutes: any[] = Array(60)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n\n /**\n * @ignore\n */\n protected _parts: AXDateTimeParts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.year.placeholder as any),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.month.placeholder as any),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'E', 'dddd'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.day.placeholder as any),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.hour.placeholder as any),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.minute.placeholder as any),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.second.placeholder as any),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () =>\n this.formatService.format(this.editingDateObj(), 'datetime', this._parts.AMPM.placeholder as any),\n },\n };\n\n /**\n * @ignore\n */\n protected _activePart = signal<'date' | 'time'>('date');\n\n /**\n * @ignore\n */\n protected get _hasDatePart(): boolean {\n return ['year', 'month', 'day'].some((k) => this._parts[k].enabled);\n }\n\n /**\n * @ignore\n */\n protected get _hasTimePart(): boolean {\n return ['hour', 'minute', 'second'].some((k) => this._parts[k].enabled);\n }\n\n // /**\n // * @ignore\n // */\n editingDateObj = linkedSignal<AXDateTime>(() => this.calendarService.now(this.calendar()));\n\n /**\n * @description The calendar type to use for the datetime input.\n */\n calendar = input<string | null>(null);\n\n protected _calendarSystem = linkedSignal<string | null>(() => this.calendar() ?? this.type);\n\n picker = input<AXDateTimePickerType>('datetime');\n\n #effectPicker = effect(() => {\n if (this.picker() === 'time') {\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n this._activePart.set('time');\n } else if (this.picker() === 'date') {\n this._activePart.set('date');\n }\n });\n\n private _format = linkedSignal<string>(\n () => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '',\n );\n\n /**\n * @deprecated use locale & mode instead\n */\n format = input<string | null>();\n\n #effect = effect(() => {\n const profile = this.localeService.activeProfile();\n //\n if (!this.format()) {\n this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');\n }\n //\n if (!this.calendar()) {\n this._calendarSystem.set(profile.calendar.system);\n }\n //\n this.type = this._calendarSystem();\n //\n this._detectParts();\n });\n\n /**\n * @ignore\n */\n override async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n\n this.minValueChange.subscribe(() => {\n this.checkSelectedMinValue(this.editingDateObj());\n });\n\n this.maxValueChange.subscribe(() => {\n this.checkSelectedMaxValue(this.editingDateObj());\n });\n }\n\n /**\n * Handles changes to the internal value of the component.\n * @param value - The new date value. If not provided, defaults to the current date.\n */\n override internalValueChanged(value?: Date): void {\n try {\n if (this.calendarService.isValidDate(value)) {\n this.editingDateObj.set(this.calendarService.create(value, this.calendar()));\n } else {\n throw new Error();\n }\n } catch {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n }\n }\n\n /**\n * @ignore\n */\n protected _handleViewChanged(e: AXTabStripChangedEvent) {\n this._activePart.set(e.tab.key as 'date' | 'time');\n }\n\n /**\n * @ignore\n */\n protected _handlePickerOnValueChanged(e: AXValueChangedEvent<Date>, part: string) {\n if (e.isUserInteraction) {\n this.editingDateObj.set(this.editingDateObj().set(part as TimeUnit, Number(e.value['id'])));\n\n if (this.minValue) {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n // Only apply minute restrictions if we're on the same day and same hour\n if (this.editingDateObj().isAfter(this.minValue, 'day') || this.editingDateObj().hour > minv.hour) {\n this.pickerMinuteMinValue.set(null);\n } else {\n this.pickerMinuteMinValue.set(minv.minute);\n }\n }\n\n if (this.maxValue) {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n // Only apply minute restrictions if we're on the same day and same hour\n if (this.editingDateObj().isBefore(this.maxValue, 'day') || this.editingDateObj().hour < maxv.hour) {\n this.pickerMinuteMaxValue.set(null);\n } else {\n this.pickerMinuteMaxValue.set(maxv.minute);\n }\n }\n }\n }\n\n /**\n * @ignore\n */\n protected _handleCalendarOnNavigate(e: AXCalendarNavigateEvent) {\n this.onNavigate.emit(e);\n }\n\n /**\n * @ignore\n */\n protected _handleCalendarOnValueChanged(e: AXValueChangedEvent<Date>) {\n if (e.isUserInteraction) {\n const selectedValue = this.calendarService.create(e.value, this.calendar());\n const currentValue = this.calendarService\n .create(e.value, this.calendar())\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n\n this.editingDateObj.set(currentValue);\n if (this._hasTimePart) {\n this._activePart.set('time');\n if (this.tabs && this._hasDatePart && this._hasTimePart) {\n this.tabs.select(1);\n } else {\n this.commitValue(this.editingDateObj().date, true);\n }\n } else {\n this.commitValue(this.editingDateObj().date, true);\n }\n\n this.checkSelectedMinValue(selectedValue);\n this.checkSelectedMaxValue(selectedValue);\n }\n }\n\n private checkSelectedMinValue(selectedValue: AXDateTime) {\n if (!this.minValue) return;\n if (!this.calendarService.isValidDate(this.minValue)) return;\n\n if (selectedValue.isAfter(this.minValue, 'day')) {\n this.pickerHoursMinValue.set(null);\n this.pickerMinuteMinValue.set(null);\n this.pickerSecondMinValue.set(null);\n } else {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n this.pickerHoursMinValue.set(minv.hour);\n this.pickerMinuteMinValue.set(minv.minute);\n this.pickerSecondMinValue.set(minv.second);\n }\n }\n\n private checkSelectedMaxValue(selectedValue: AXDateTime) {\n if (!this.maxValue) return;\n if (!this.calendarService.isValidDate(this.maxValue)) return;\n\n if (selectedValue.isBefore(this.maxValue, 'day')) {\n this.pickerHoursMaxValue.set(null);\n this.pickerMinuteMaxValue.set(null);\n this.pickerSecondMaxValue.set(null);\n } else {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n this.pickerHoursMaxValue.set(maxv.hour);\n this.pickerMinuteMaxValue.set(maxv.minute);\n this.pickerSecondMaxValue.set(maxv.second);\n }\n }\n\n /**\n * @ignore\n */\n private _detectParts() {\n Object.values(this._parts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._format().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._parts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n //this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleSetClick() {\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n\n /**\n * @ignore\n */\n protected _handleNowClick() {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n\n /**\n * @ignore\n */\n protected isDisabled(date: AXDateTime): boolean {\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n return this.disabledDates.some((d) => date.equal(d, 'day'));\n } else if (typeof this.disabledDates == 'function') {\n return this.disabledDates(date.date);\n }\n return false;\n }\n\n /**\n * @ignore\n */\n protected override internalSetValue(value: Date): Date | null {\n if (!value || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n this.checkSelectedMinValue(this.calendarService.convert(v, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(v, this.calendar()));\n\n if (this.isDisabled(v)) {\n return null;\n }\n\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n\n return v.date;\n }\n\n protected isTodayDisabled(): boolean {\n const disabledDates = this.disabledDates;\n\n if (!disabledDates || !Array.isArray(disabledDates)) {\n return false;\n }\n\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n return disabledDates.some((disabledDate: Date) => {\n const disabled = new Date(disabledDate);\n disabled.setHours(0, 0, 0, 0);\n return today.getTime() === disabled.getTime();\n });\n }\n}\n","@if (_hasDatePart && _hasTimePart) {\n <div class=\"ax-header\">\n <ax-tabs [look]=\"'default'\" [fitParent]=\"true\" [location]=\"'top'\" (onActiveTabChanged)=\"_handleViewChanged($event)\">\n <ax-tab-item\n [text]=\"'@acorex:dateTime.date' | translate | async\"\n [key]=\"'date'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n <ax-tab-item\n [text]=\"'@acorex:dateTime.time' | translate | async\"\n [key]=\"'time'\"\n [disabled]=\"disabled\"\n ></ax-tab-item>\n </ax-tabs>\n </div>\n}\n<div class=\"ax-content\">\n @if (_activePart() === 'date') {\n <div class=\"ax-calendar-part\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [weekend]=\"weekend()\"\n [weekdays]=\"weekdays()\"\n [ngModel]=\"editingDateObj().date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"_calendarSystem()\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart() === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n @if (picker() === 'datetime') {\n {{ editingDateObj() | format: 'time' : 'short' | async }}\n {{ editingDateObj() | format: 'date' : 'short' | async }}\n } @else {\n {{ editingDateObj() | format: picker() : 'medium' | async }}\n }\n </div>\n <div dir=\"ltr\" class=\"ax-picker-time-container\">\n @if (_parts.hour.enabled) {\n <ng-container [ngTemplateOutlet]=\"hourRef\"> </ng-container>\n }\n\n @if (_parts.minute.enabled) {\n <ng-container [ngTemplateOutlet]=\"minuteRef\"> </ng-container>\n }\n\n @if (_parts.second.enabled) {\n <ng-container [ngTemplateOutlet]=\"secondRef\"> </ng-container>\n }\n </div>\n </div>\n }\n</div>\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\n <div class=\"ax-footer\">\n <div>\n @if (currentTimeButton) {\n <ax-button\n [text]=\"`@acorex:${buttonText()}` | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n [disabled]=\"isTodayDisabled()\"\n ></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button\n color=\"primary\"\n [text]=\"'@acorex:dateTime.set' | translate | async\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n }\n </div>\n </div>\n}\n\n<ng-template #hourRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\n </ax-picker-title>\n <ax-picker-items\n [items]=\"hours\"\n [ngModel]=\"editingDateObj().hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [minValue]=\"pickerHoursMinValue()\"\n [maxValue]=\"pickerHoursMaxValue()\"\n ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n\n<ng-template #minuteRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\n </ax-picker-title>\n <ax-picker-items\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj().minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [minValue]=\"pickerMinuteMinValue()\"\n [maxValue]=\"pickerMinuteMaxValue()\"\n ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n\n<ng-template #secondRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\n </ax-picker-title>\n <ax-picker-items\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj().second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [minValue]=\"pickerSecondMinValue()\"\n [maxValue]=\"pickerSecondMaxValue()\"\n ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\n\n@NgModule({\n imports: [AXDateTimePickerComponent],\n exports: [AXDateTimePickerComponent],\n})\nexport class AXDateTimePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -455,7 +455,7 @@ class AXDropdownPanelComponent extends MXInteractiveComponent {
455
455
  useExisting: AXDropdownPanelComponent,
456
456
  },
457
457
  { provide: AXComponent, useExisting: AXDropdownPanelComponent },
458
- ], viewQueries: [{ propertyName: "_popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"adaptivityEnabled\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n>\n <div class=\"ax-overlay-pane\">\n <ng-content> </ng-content>\n </div>\n</ax-popover>\n", styles: ["@layer components{.ax-actionsheet-base .ax-overlay-pane{width:100%}.ax-overlay-pane:has(ax-menu){--tw-border-style:none;border-style:none}.ax-overlay-pane:has(ax-menu) .ax-menu-container{visibility:visible;opacity:1}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item{height:calc(var(--spacing,.25rem)*9);cursor:pointer;width:100%;padding-inline:calc(var(--spacing,.25rem)*3);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));justify-content:space-between;align-items:center;display:flex;border-radius:0!important}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-prefix,.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-suffix{opacity:1}}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
458
+ ], viewQueries: [{ propertyName: "_popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"adaptivityEnabled\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n>\n <div class=\"ax-overlay-pane\">\n <ng-content> </ng-content>\n </div>\n</ax-popover>\n", styles: ["@layer components{.ax-actionsheet-base .ax-overlay-pane{width:100%}:scope.ax-overlay-actionsheet{background-color:var(--color-lightest,rgba(var(--ax-sys-color-lightest-surface)));width:100vw;height:auto;max-height:85vh}.ax-overlay-pane:has(ax-menu){--tw-border-style:none;border-style:none}.ax-overlay-pane:has(ax-menu) .ax-menu-container{visibility:visible;opacity:1}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item{height:calc(var(--spacing,.25rem)*9);cursor:pointer;width:100%;padding-inline:calc(var(--spacing,.25rem)*3);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));justify-content:space-between;align-items:center;display:flex;border-radius:0!important}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-prefix,.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-suffix{opacity:1}}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
459
459
  }
460
460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXDropdownPanelComponent, decorators: [{
461
461
  type: Component,
@@ -465,7 +465,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
465
465
  useExisting: AXDropdownPanelComponent,
466
466
  },
467
467
  { provide: AXComponent, useExisting: AXDropdownPanelComponent },
468
- ], host: { ngSkipHydration: 'true' }, imports: [AXPopoverComponent], template: "<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"adaptivityEnabled\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n>\n <div class=\"ax-overlay-pane\">\n <ng-content> </ng-content>\n </div>\n</ax-popover>\n", styles: ["@layer components{.ax-actionsheet-base .ax-overlay-pane{width:100%}.ax-overlay-pane:has(ax-menu){--tw-border-style:none;border-style:none}.ax-overlay-pane:has(ax-menu) .ax-menu-container{visibility:visible;opacity:1}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item{height:calc(var(--spacing,.25rem)*9);cursor:pointer;width:100%;padding-inline:calc(var(--spacing,.25rem)*3);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));justify-content:space-between;align-items:center;display:flex;border-radius:0!important}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-prefix,.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-suffix{opacity:1}}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"] }]
468
+ ], host: { ngSkipHydration: 'true' }, imports: [AXPopoverComponent], template: "<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"adaptivityEnabled\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n>\n <div class=\"ax-overlay-pane\">\n <ng-content> </ng-content>\n </div>\n</ax-popover>\n", styles: ["@layer components{.ax-actionsheet-base .ax-overlay-pane{width:100%}:scope.ax-overlay-actionsheet{background-color:var(--color-lightest,rgba(var(--ax-sys-color-lightest-surface)));width:100vw;height:auto;max-height:85vh}.ax-overlay-pane:has(ax-menu){--tw-border-style:none;border-style:none}.ax-overlay-pane:has(ax-menu) .ax-menu-container{visibility:visible;opacity:1}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item{height:calc(var(--spacing,.25rem)*9);cursor:pointer;width:100%;padding-inline:calc(var(--spacing,.25rem)*3);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));justify-content:space-between;align-items:center;display:flex;border-radius:0!important}.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-prefix,.ax-overlay-pane:has(ax-menu) .ax-menu-container .ax-action-item:hover>.ax-action-item-suffix{opacity:1}}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"] }]
469
469
  }], ctorParameters: () => [], propDecorators: { placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], _target: [{
470
470
  type: Input
471
471
  }], _popover: [{
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-dropdown.mjs","sources":["../../../../packages/components/dropdown/src/lib/dropdown-box.class.ts","../../../../packages/components/dropdown/src/lib/dropdown-box.component.ts","../../../../packages/components/dropdown/src/lib/dropdown-box.component.html","../../../../packages/components/dropdown/src/lib/dropdown-panel.component.ts","../../../../packages/components/dropdown/src/lib/dropdown-panel.component.html","../../../../packages/components/dropdown/src/lib/dropdown.module.ts","../../../../packages/components/dropdown/src/acorex-components-dropdown.ts"],"sourcesContent":["import { AXEvent, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AXDropdownBoxComponent } from './dropdown-box.component';\n\n@Injectable()\n/**\n * Base behavior for components that manage a dropdown/popup via an internal `AXDropdownBoxComponent`.\n *\n * Extends MXInteractiveComponent to inherit interactive features (focus, blur, disabled, tabIndex)\n * and exposes a consistent API to open/close/toggle the dropdown as well as events for open/close lifecycle.\n */\nexport abstract class MXDropdownBoxBaseComponent extends MXInteractiveComponent {\n /**\n * Emitted when the dropdown/popup is opened.\n *\n * @event\n */\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits the `onOpened` event with component context.\n * @ignore\n */\n protected emitOnOpenedEvent(): void {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Emitted when the dropdown/popup is closed.\n *\n * @event\n */\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits the `onClosed` event with component context.\n * @ignore\n */\n protected emitOnClosedEvent(): void {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Reference to the underlying dropdown controller.\n */\n protected abstract dropdown: AXDropdownBoxComponent;\n\n /**\n * Toggles the dropdown if the component is not disabled.\n *\n * @returns void - No return value. Switches between open and closed states.\n */\n toggle() {\n if (this.disabled !== true) {\n this.dropdown.toggle();\n }\n }\n\n /**\n * Closes the dropdown if it is open and the component is not disabled, then focuses the host.\n *\n * @returns void - No return value. Dropdown is closed and focus returns to the host.\n */\n close() {\n if (!this.isOpen || this.disabled) {\n return;\n }\n this.dropdown.close();\n this.focus();\n }\n\n /**\n * Opens the dropdown if it is not already open and the component is not disabled, then focuses the dropdown.\n *\n * @returns void - No return value. Dropdown becomes open and receives focus.\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this.dropdown.open();\n this.dropdown.focus();\n }\n\n /**\n * Indicates whether the dropdown is currently open.\n *\n * @returns boolean - True if open; otherwise false.\n */\n get isOpen(): boolean {\n return this.dropdown?.isOpen;\n }\n}\n","import { AXComponent, AXEvent, MXInteractiveComponent, MXLookComponent, convertToPlacement } from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXPlatform } from '@acorex/core/platform';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n OnInit,\n Output,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport { classes } from 'polytype';\nimport { startWith } from 'rxjs';\n\n@Component({\n selector: 'ax-dropdown-box',\n templateUrl: 'dropdown-box.component.html',\n inputs: ['disabled', 'look'],\n outputs: ['disabledChange', 'onBlur', 'onFocus', 'onClick'],\n host: { ngSkipHydration: 'true' },\n imports: [AXPopoverComponent],\n providers: [{ provide: AXComponent, useExisting: AXDropdownBoxComponent }],\n})\nexport class AXDropdownBoxComponent extends classes(MXInteractiveComponent, MXLookComponent) implements OnInit {\n readonly hasInput = input(true);\n\n readonly popoverWidth = input<string>('auto');\n\n private _platform: AXPlatform = inject(AXPlatform);\n /**\n * @ignore\n */\n protected _isMobile = false;\n\n /**\n * @ignore\n */\n protected _target: HTMLDivElement;\n\n /**\n * @ignore\n */\n protected _popoverTitle: string;\n\n /**\n * @ignore\n */\n protected _popoverWidth = '180px';\n\n /**\n * @ignore\n */\n protected _placement = convertToPlacement('bottom-start');\n\n /**\n * @ignore\n */\n @ViewChild(AXPopoverComponent, { static: true })\n protected _popover: AXPopoverComponent;\n\n /**\n * Emitted when the drawer is opened.\n *\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emitted when the drawer is closed.\n *\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._target = this.getHostElement();\n this._platform.resize.pipe(startWith()).subscribe(() => {\n this._isMobile = this._platform.is('SM');\n if (!this.isActionsheetStyle) this.close();\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnOpened(e: AXEvent) {\n this._popover?.focus();\n this.onOpened.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnClosed(e: AXEvent) {\n this.focus();\n this.onClosed.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown', ['$event'])\n protected _handleKeydown(e: KeyboardEvent) {\n if (e.code === 'Enter') {\n e.preventDefault();\n this.open();\n }\n if (e.ctrlKey && e.code === 'ArrowDown') {\n e.preventDefault();\n this.open();\n }\n if (e.code === 'Escape') {\n e.preventDefault();\n this.close();\n }\n }\n\n /**\n * Updates the position of the popover.\n * @ignore\n */\n updatePosition() {\n this._popover?.updatePosition();\n }\n\n /**\n * Toggles the popover open or closed, if not disabled.\n * @ignore\n */\n toggle() {\n if (this.disabled !== true) {\n this._popover.toggle();\n }\n }\n\n /**\n * Closes the popover if it's open and not disabled, then focuses the element.\n * @ignore\n */\n close() {\n if (!this.isOpen || this.disabled) {\n return;\n }\n this._popover.close();\n this.focus();\n }\n\n /**\n * Opens the popover if it's not already open and not disabled, then focuses the popover.\n * @ignore\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this._popover.open();\n this._popover.focus();\n }\n\n /**\n * Indicates if the popover is currently open.\n * @ignore\n */\n get isOpen(): boolean {\n return this._popover?.isOpen;\n }\n\n /**\n * Indicates if the popover is styled as an actionsheet.\n */\n get isActionsheetStyle(): boolean {\n return this._popover?.isActionsheetStyle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return this.hasInput()\n ? `ax-editor-container ax-default ${this.look} ${this.disabled ? 'ax-state-disabled' : ''}`\n : '';\n }\n}\n","<ng-content select=\"[input]\"> </ng-content>\n<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n [width]=\"popoverWidth()\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n #popover\n>\n <div\n class=\"ax-overlay-pane\"\n [class.ax-w-full]=\"_isMobile\"\n aria-modal=\"true\"\n (keydown)=\"_handleKeydown($event)\"\n [class.ax-overlay-actionsheet]=\"popover.isActionsheetStyle\"\n >\n <ng-content select=\"[panel]\"> </ng-content>\n </div>\n</ax-popover>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n AXClosableComponent,\n AXComponent,\n AXEvent,\n MXInteractiveComponent,\n convertToPlacement,\n} from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXPlatform, isBrowser } from '@acorex/core/platform';\nimport { Subscription, startWith } from 'rxjs';\n\n/**\n * A panel for displaying dropdown content with configurable width and positioning.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-dropdown-panel',\n templateUrl: './dropdown-panel.component.html',\n styleUrls: ['./dropdown-panel.component.compiled.css'],\n inputs: ['isOpen', 'fitParent', 'dropdownWidth', 'position'],\n outputs: ['onOpened', 'onClosed'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXClosableComponent,\n useExisting: AXDropdownPanelComponent,\n },\n { provide: AXComponent, useExisting: AXDropdownPanelComponent },\n ],\n host: { ngSkipHydration: 'true' },\n imports: [AXPopoverComponent],\n})\nexport class AXDropdownPanelComponent extends MXInteractiveComponent implements OnDestroy {\n private _platform: AXPlatform = inject(AXPlatform);\n\n /**\n * @ignore\n */\n protected _isMobile = false;\n\n /**\n * @ignore\n */\n protected _popoverTitle: string;\n\n /**\n * @ignore\n */\n protected _placement = convertToPlacement('bottom-start');\n\n readonly placement = input<'bottom-start' | 'bottom-end'>('bottom-start');\n\n #effect = effect(() => {\n if (!this.placement()) return;\n this._placement = convertToPlacement(this.placement());\n });\n\n /**\n * @ignore\n */\n _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n private __target: HTMLDivElement;\n\n /**\n * Gets the target HTML element for the dropdown panel.\n */\n @Input()\n public get _target(): HTMLDivElement {\n return this.__target;\n }\n\n /**\n * Sets the target HTML element for the dropdown panel.\n */\n public set _target(v: HTMLDivElement) {\n this.__target = v;\n }\n\n /**\n * @ignore\n */\n @ViewChild(AXPopoverComponent)\n protected _popover: AXPopoverComponent;\n\n /**\n * Emitted when the dropdown panel is opened.\n *\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emitted when the dropdown panel is closed.\n *\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Determines if adaptivity is enabled for the component.\n *\n * @defaultValue false\n */\n @Input()\n adaptivityEnabled = false;\n\n // what the hell ???\n // constructor() {\n // super();\n // afterNextRender(() => {\n // this._target = this.getHostElement()?.parentElement as HTMLDivElement;\n // this._platform.resize.pipe(startWith(null)).subscribe(() => {\n // this._isMobile = this._platform.is('SM');\n // this._popover?.close();\n // });\n // [this._target, this.getHostElement()].forEach((el) => {\n // el.addEventListener('keydown', (e) => {\n // if (e.code == 'Escape' && this.isOpen) {\n // e.stopPropagation();\n // this.close();\n // }\n // });\n // });\n // });\n // }\n\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n\n /**\n * @ignore\n */\n override ngOnInit() {\n if (isBrowser()) {\n super.ngOnInit();\n if (!this._target) {\n this._target = this.getHostElement()?.parentElement as HTMLDivElement;\n }\n this._platform.resize.pipe(startWith(null)).subscribe(() => {\n this._isMobile = this._platform.is('SM');\n this._popover?.close();\n });\n }\n }\n\n /**\n * @ignore\n */\n ngAfterViewInit(): void {\n [this._target, this.getHostElement()].forEach((el) => {\n el?.addEventListener('keydown', (e) => {\n if (e.code == 'Escape' && this.isOpen) {\n e.stopPropagation();\n this.close();\n }\n });\n });\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this._subs.forEach((s) => {\n s?.unsubscribe();\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnOpened(e: AXEvent) {\n this._popover?.focus();\n this.onOpened.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnClosed(e: AXEvent) {\n this._target.focus();\n this.onClosed.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * Toggles the popover open or closed, if not disabled.\n * @ignore\n */\n toggle() {\n if (this.disabled !== true) {\n this._popover.toggle();\n }\n }\n\n /**\n * Closes the popover if it is open and not disabled.\n * @ignore\n */\n close() {\n if (!this.isOpen || this.disabled) {\n return;\n }\n this._popover.close();\n this.focus();\n }\n\n /**\n * Opens the popover if it is not already open and not disabled.\n * @ignore\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this._popover.open();\n this._popover.focus();\n }\n\n /**\n * Gets whether the popover is currently open.\n * @ignore\n */\n get isOpen(): boolean {\n return this._popover?.isOpen;\n }\n\n /**\n * Gets whether the popover is styled as an actionsheet.\n * @ignore\n */\n get isActionsheetStyle(): boolean {\n return this._popover?.isActionsheetStyle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return ['ax-dropdown-panel'];\n }\n}\n","<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"adaptivityEnabled\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n>\n <div class=\"ax-overlay-pane\">\n <ng-content> </ng-content>\n </div>\n</ax-popover>\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXDropdownBoxComponent } from './dropdown-box.component';\nimport { AXDropdownPanelComponent } from './dropdown-panel.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXCommonModule,\n A11yModule,\n AXDecoratorModule,\n AXPopoverModule,\n AXDropdownPanelComponent,\n AXDropdownBoxComponent,\n ],\n exports: [AXDropdownPanelComponent, AXDropdownBoxComponent],\n providers: [],\n})\nexport class AXDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-dropdown.mjs","sources":["../../../../packages/components/dropdown/src/lib/dropdown-box.class.ts","../../../../packages/components/dropdown/src/lib/dropdown-box.component.ts","../../../../packages/components/dropdown/src/lib/dropdown-box.component.html","../../../../packages/components/dropdown/src/lib/dropdown-panel.component.ts","../../../../packages/components/dropdown/src/lib/dropdown-panel.component.html","../../../../packages/components/dropdown/src/lib/dropdown.module.ts","../../../../packages/components/dropdown/src/acorex-components-dropdown.ts"],"sourcesContent":["import { AXEvent, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AXDropdownBoxComponent } from './dropdown-box.component';\n\n@Injectable()\n/**\n * Base behavior for components that manage a dropdown/popup via an internal `AXDropdownBoxComponent`.\n *\n * Extends MXInteractiveComponent to inherit interactive features (focus, blur, disabled, tabIndex)\n * and exposes a consistent API to open/close/toggle the dropdown as well as events for open/close lifecycle.\n */\nexport abstract class MXDropdownBoxBaseComponent extends MXInteractiveComponent {\n /**\n * Emitted when the dropdown/popup is opened.\n *\n * @event\n */\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits the `onOpened` event with component context.\n * @ignore\n */\n protected emitOnOpenedEvent(): void {\n this.onOpened.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Emitted when the dropdown/popup is closed.\n *\n * @event\n */\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emits the `onClosed` event with component context.\n * @ignore\n */\n protected emitOnClosedEvent(): void {\n this.onClosed.emit({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Reference to the underlying dropdown controller.\n */\n protected abstract dropdown: AXDropdownBoxComponent;\n\n /**\n * Toggles the dropdown if the component is not disabled.\n *\n * @returns void - No return value. Switches between open and closed states.\n */\n toggle() {\n if (this.disabled !== true) {\n this.dropdown.toggle();\n }\n }\n\n /**\n * Closes the dropdown if it is open and the component is not disabled, then focuses the host.\n *\n * @returns void - No return value. Dropdown is closed and focus returns to the host.\n */\n close() {\n if (!this.isOpen || this.disabled) {\n return;\n }\n this.dropdown.close();\n this.focus();\n }\n\n /**\n * Opens the dropdown if it is not already open and the component is not disabled, then focuses the dropdown.\n *\n * @returns void - No return value. Dropdown becomes open and receives focus.\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this.dropdown.open();\n this.dropdown.focus();\n }\n\n /**\n * Indicates whether the dropdown is currently open.\n *\n * @returns boolean - True if open; otherwise false.\n */\n get isOpen(): boolean {\n return this.dropdown?.isOpen;\n }\n}\n","import { AXComponent, AXEvent, MXInteractiveComponent, MXLookComponent, convertToPlacement } from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXPlatform } from '@acorex/core/platform';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n OnInit,\n Output,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport { classes } from 'polytype';\nimport { startWith } from 'rxjs';\n\n@Component({\n selector: 'ax-dropdown-box',\n templateUrl: 'dropdown-box.component.html',\n inputs: ['disabled', 'look'],\n outputs: ['disabledChange', 'onBlur', 'onFocus', 'onClick'],\n host: { ngSkipHydration: 'true' },\n imports: [AXPopoverComponent],\n providers: [{ provide: AXComponent, useExisting: AXDropdownBoxComponent }],\n})\nexport class AXDropdownBoxComponent extends classes(MXInteractiveComponent, MXLookComponent) implements OnInit {\n readonly hasInput = input(true);\n\n readonly popoverWidth = input<string>('auto');\n\n private _platform: AXPlatform = inject(AXPlatform);\n /**\n * @ignore\n */\n protected _isMobile = false;\n\n /**\n * @ignore\n */\n protected _target: HTMLDivElement;\n\n /**\n * @ignore\n */\n protected _popoverTitle: string;\n\n /**\n * @ignore\n */\n protected _popoverWidth = '180px';\n\n /**\n * @ignore\n */\n protected _placement = convertToPlacement('bottom-start');\n\n /**\n * @ignore\n */\n @ViewChild(AXPopoverComponent, { static: true })\n protected _popover: AXPopoverComponent;\n\n /**\n * Emitted when the drawer is opened.\n *\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emitted when the drawer is closed.\n *\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._target = this.getHostElement();\n this._platform.resize.pipe(startWith()).subscribe(() => {\n this._isMobile = this._platform.is('SM');\n if (!this.isActionsheetStyle) this.close();\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnOpened(e: AXEvent) {\n this._popover?.focus();\n this.onOpened.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnClosed(e: AXEvent) {\n this.focus();\n this.onClosed.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown', ['$event'])\n protected _handleKeydown(e: KeyboardEvent) {\n if (e.code === 'Enter') {\n e.preventDefault();\n this.open();\n }\n if (e.ctrlKey && e.code === 'ArrowDown') {\n e.preventDefault();\n this.open();\n }\n if (e.code === 'Escape') {\n e.preventDefault();\n this.close();\n }\n }\n\n /**\n * Updates the position of the popover.\n * @ignore\n */\n updatePosition() {\n this._popover?.updatePosition();\n }\n\n /**\n * Toggles the popover open or closed, if not disabled.\n * @ignore\n */\n toggle() {\n if (this.disabled !== true) {\n this._popover.toggle();\n }\n }\n\n /**\n * Closes the popover if it's open and not disabled, then focuses the element.\n * @ignore\n */\n close() {\n if (!this.isOpen || this.disabled) {\n return;\n }\n this._popover.close();\n this.focus();\n }\n\n /**\n * Opens the popover if it's not already open and not disabled, then focuses the popover.\n * @ignore\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this._popover.open();\n this._popover.focus();\n }\n\n /**\n * Indicates if the popover is currently open.\n * @ignore\n */\n get isOpen(): boolean {\n return this._popover?.isOpen;\n }\n\n /**\n * Indicates if the popover is styled as an actionsheet.\n */\n get isActionsheetStyle(): boolean {\n return this._popover?.isActionsheetStyle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return this.hasInput()\n ? `ax-editor-container ax-default ${this.look} ${this.disabled ? 'ax-state-disabled' : ''}`\n : '';\n }\n}\n","<ng-content select=\"[input]\"> </ng-content>\n<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n [width]=\"popoverWidth()\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n #popover\n>\n <div\n class=\"ax-overlay-pane\"\n [class.ax-w-full]=\"_isMobile\"\n aria-modal=\"true\"\n (keydown)=\"_handleKeydown($event)\"\n [class.ax-overlay-actionsheet]=\"popover.isActionsheetStyle\"\n >\n <ng-content select=\"[panel]\"> </ng-content>\n </div>\n</ax-popover>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n ViewEncapsulation,\n effect,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n AXClosableComponent,\n AXComponent,\n AXEvent,\n MXInteractiveComponent,\n convertToPlacement,\n} from '@acorex/cdk/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXPlatform, isBrowser } from '@acorex/core/platform';\nimport { Subscription, startWith } from 'rxjs';\n\n/**\n * A panel for displaying dropdown content with configurable width and positioning.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-dropdown-panel',\n templateUrl: './dropdown-panel.component.html',\n styleUrls: ['./dropdown-panel.component.compiled.css'],\n inputs: ['isOpen', 'fitParent', 'dropdownWidth', 'position'],\n outputs: ['onOpened', 'onClosed'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXClosableComponent,\n useExisting: AXDropdownPanelComponent,\n },\n { provide: AXComponent, useExisting: AXDropdownPanelComponent },\n ],\n host: { ngSkipHydration: 'true' },\n imports: [AXPopoverComponent],\n})\nexport class AXDropdownPanelComponent extends MXInteractiveComponent implements OnDestroy {\n private _platform: AXPlatform = inject(AXPlatform);\n\n /**\n * @ignore\n */\n protected _isMobile = false;\n\n /**\n * @ignore\n */\n protected _popoverTitle: string;\n\n /**\n * @ignore\n */\n protected _placement = convertToPlacement('bottom-start');\n\n readonly placement = input<'bottom-start' | 'bottom-end'>('bottom-start');\n\n #effect = effect(() => {\n if (!this.placement()) return;\n this._placement = convertToPlacement(this.placement());\n });\n\n /**\n * @ignore\n */\n _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n private __target: HTMLDivElement;\n\n /**\n * Gets the target HTML element for the dropdown panel.\n */\n @Input()\n public get _target(): HTMLDivElement {\n return this.__target;\n }\n\n /**\n * Sets the target HTML element for the dropdown panel.\n */\n public set _target(v: HTMLDivElement) {\n this.__target = v;\n }\n\n /**\n * @ignore\n */\n @ViewChild(AXPopoverComponent)\n protected _popover: AXPopoverComponent;\n\n /**\n * Emitted when the dropdown panel is opened.\n *\n * @event\n */\n @Output()\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Emitted when the dropdown panel is closed.\n *\n * @event\n */\n @Output()\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\n\n /**\n * Determines if adaptivity is enabled for the component.\n *\n * @defaultValue false\n */\n @Input()\n adaptivityEnabled = false;\n\n // what the hell ???\n // constructor() {\n // super();\n // afterNextRender(() => {\n // this._target = this.getHostElement()?.parentElement as HTMLDivElement;\n // this._platform.resize.pipe(startWith(null)).subscribe(() => {\n // this._isMobile = this._platform.is('SM');\n // this._popover?.close();\n // });\n // [this._target, this.getHostElement()].forEach((el) => {\n // el.addEventListener('keydown', (e) => {\n // if (e.code == 'Escape' && this.isOpen) {\n // e.stopPropagation();\n // this.close();\n // }\n // });\n // });\n // });\n // }\n\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n\n /**\n * @ignore\n */\n override ngOnInit() {\n if (isBrowser()) {\n super.ngOnInit();\n if (!this._target) {\n this._target = this.getHostElement()?.parentElement as HTMLDivElement;\n }\n this._platform.resize.pipe(startWith(null)).subscribe(() => {\n this._isMobile = this._platform.is('SM');\n this._popover?.close();\n });\n }\n }\n\n /**\n * @ignore\n */\n ngAfterViewInit(): void {\n [this._target, this.getHostElement()].forEach((el) => {\n el?.addEventListener('keydown', (e) => {\n if (e.code == 'Escape' && this.isOpen) {\n e.stopPropagation();\n this.close();\n }\n });\n });\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this._subs.forEach((s) => {\n s?.unsubscribe();\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnOpened(e: AXEvent) {\n this._popover?.focus();\n this.onOpened.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * @ignore\n */\n protected _handlePopupOnClosed(e: AXEvent) {\n this._target.focus();\n this.onClosed.emit({\n component: this,\n isUserInteraction: e.isUserInteraction,\n });\n }\n\n /**\n * Toggles the popover open or closed, if not disabled.\n * @ignore\n */\n toggle() {\n if (this.disabled !== true) {\n this._popover.toggle();\n }\n }\n\n /**\n * Closes the popover if it is open and not disabled.\n * @ignore\n */\n close() {\n if (!this.isOpen || this.disabled) {\n return;\n }\n this._popover.close();\n this.focus();\n }\n\n /**\n * Opens the popover if it is not already open and not disabled.\n * @ignore\n */\n open() {\n if (this.isOpen || this.disabled) {\n return;\n }\n this._popover.open();\n this._popover.focus();\n }\n\n /**\n * Gets whether the popover is currently open.\n * @ignore\n */\n get isOpen(): boolean {\n return this._popover?.isOpen;\n }\n\n /**\n * Gets whether the popover is styled as an actionsheet.\n * @ignore\n */\n get isActionsheetStyle(): boolean {\n return this._popover?.isActionsheetStyle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return ['ax-dropdown-panel'];\n }\n}\n","<ax-popover\n [target]=\"_target\"\n [placement]=\"_placement\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"adaptivityEnabled\"\n (onOpened)=\"_handlePopupOnOpened($event)\"\n (onClosed)=\"_handlePopupOnClosed($event)\"\n>\n <div class=\"ax-overlay-pane\">\n <ng-content> </ng-content>\n </div>\n</ax-popover>\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXDropdownBoxComponent } from './dropdown-box.component';\nimport { AXDropdownPanelComponent } from './dropdown-panel.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXCommonModule,\n A11yModule,\n AXDecoratorModule,\n AXPopoverModule,\n AXDropdownPanelComponent,\n AXDropdownBoxComponent,\n ],\n exports: [AXDropdownPanelComponent, AXDropdownBoxComponent],\n providers: [],\n})\nexport class AXDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}