@acorex/components 19.12.0-next.2 → 19.12.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/calendar/lib/calendar-range.component.d.ts +4 -1
  2. package/calendar/lib/calendar.class.d.ts +8 -0
  3. package/calendar/lib/calendar.component.d.ts +2 -0
  4. package/datetime-box/lib/datetime-box.component.d.ts +11 -13
  5. package/datetime-input/lib/datetime-input.component.d.ts +21 -84
  6. package/datetime-picker/lib/datetime-picker.component.d.ts +13 -31
  7. package/fesm2022/acorex-components-calendar.mjs +65 -37
  8. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  9. package/fesm2022/acorex-components-datetime-box.mjs +28 -26
  10. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  11. package/fesm2022/acorex-components-datetime-input.mjs +113 -181
  12. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  13. package/fesm2022/acorex-components-datetime-picker.mjs +79 -81
  14. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  15. package/fesm2022/{acorex-components-modal-acorex-components-modal-Bs1CnBt8.mjs → acorex-components-modal-acorex-components-modal-BzlZIwq8.mjs} +116 -26
  16. package/fesm2022/acorex-components-modal-acorex-components-modal-BzlZIwq8.mjs.map +1 -0
  17. package/fesm2022/acorex-components-modal-modal-content.component-zmFWBaiD.mjs +187 -0
  18. package/fesm2022/acorex-components-modal-modal-content.component-zmFWBaiD.mjs.map +1 -0
  19. package/fesm2022/acorex-components-modal.mjs +1 -1
  20. package/fesm2022/acorex-components-query-builder.mjs +1 -1
  21. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  22. package/fesm2022/acorex-components-scheduler.mjs +63 -30
  23. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  24. package/modal/lib/modal-content/modal-content.component.d.ts +11 -8
  25. package/modal/lib/modal-state.service.d.ts +8 -7
  26. package/modal/lib/modal.component.d.ts +2 -0
  27. package/modal/lib/modal.service.d.ts +4 -2
  28. package/modal/lib/modal.types.d.ts +15 -1
  29. package/package.json +1 -1
  30. package/scheduler/lib/scheduler.component.d.ts +8 -4
  31. package/scheduler/lib/scheduler.service.d.ts +3 -2
  32. package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +2 -1
  33. package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +4 -2
  34. package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +2 -1
  35. package/fesm2022/acorex-components-modal-acorex-components-modal-Bs1CnBt8.mjs.map +0 -1
  36. package/fesm2022/acorex-components-modal-modal-content.component-DhpujG4d.mjs +0 -181
  37. package/fesm2022/acorex-components-modal-modal-content.component-DhpujG4d.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../../../../libs/components/datetime-picker/src/lib/datetime-picker.config.ts","../../../../libs/components/datetime-picker/src/lib/datetime-picker.component.ts","../../../../libs/components/datetime-picker/src/lib/datetime-picker.component.html","../../../../libs/components/datetime-picker/src/lib/datetime-picker.module.ts","../../../../libs/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 { AXButtonComponent } from '@acorex/components/button';\nimport { AXCalendarComponent, AXCalendarNavigateEvent, MXCalendarBaseComponent } from '@acorex/components/calendar';\nimport {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXValueComponent,\n} from '@acorex/components/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXCalendarService, AXDateTime, AXDateTimeParts, AXDateTimePipe, TimeUnit } from '@acorex/core/date-time';\nimport { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n forwardRef,\n inject,\n model,\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.scss'],\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 AXDateTimePipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXDateTimePickerComponent\n extends classes(MXCalendarBaseComponent, MXValueComponent<Date>)\n implements OnInit\n{\n buttonText = '';\n\n private defaultConfig: AXDateTimePickerConfig = inject(AX_DATETIME_PICKER_CONFIG);\n\n isRtl = model(false);\n\n #init = afterNextRender(() => {\n this.isRtl.set(AXHtmlUtil.isRtl(this.getHostElement()));\n });\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 private _calendarService: AXCalendarService = inject(AXCalendarService);\n private _tranlationService = inject(AXTranslationService);\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: () => this.editingDateObj.format(this._parts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () => this.editingDateObj.format(this._parts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'dddd', 'DDDD'],\n enabled: false,\n default: 1,\n realValue: () => this.editingDateObj.format(this._parts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () => this.editingDateObj.format(this._parts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () => this.editingDateObj.format(this._parts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () => this.editingDateObj.format(this._parts.second.placeholder),\n },\n };\n\n /**\n * @ignore\n */\n protected _activePart: '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 private _editingDateObj: AXDateTime = this._calendarService.now(this.type);\n protected get editingDateObj(): AXDateTime {\n return this._editingDateObj;\n }\n\n /**\n * Emits an event when the format changes.\n *\n * @event\n */\n @Output()\n formatChange = new EventEmitter<string>();\n\n /**\n * @ignore\n */\n private _format = this.calendarService.calendar.formats.dateTimeDisplay;\n\n /**\n * Gets or sets the format for the datetime input.\n */\n @Input()\n public get format(): string {\n return this._format;\n }\n\n /**\n * Sets the format for the datetime input and updates internal parts.\n *\n * @param v - The new format string to be set.\n */\n public set format(v: string) {\n this.setOption({\n name: 'format',\n value: v,\n afterCallback: (o, n) => {\n this._detectParts();\n },\n });\n }\n\n /**\n * @ignore\n */\n override async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n this.detectButtonText();\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.isDate(value)) {\n this._editingDateObj = this._calendarService.create(value);\n } else {\n throw new Error();\n }\n } catch {\n this._editingDateObj = this._calendarService.now(this.type);\n }\n }\n\n /**\n * @ignore\n */\n protected detectButtonText() {\n this.buttonText = this._activePart === 'date' ? 'dateTime.today' : 'dateTime.now';\n }\n\n /**\n * @ignore\n */\n protected _handleViewChanged(e: AXTabStripChangedEvent) {\n this._activePart = e.tab.key as 'date' | 'time';\n this.detectButtonText();\n this.cdr.detectChanges();\n }\n\n /**\n * @ignore\n */\n protected _handlePickerOnValueChanged(e: AXValueChangedEvent<Date>, part: string) {\n if (e.isUserInteraction) {\n this._editingDateObj = this._editingDateObj.set(part as TimeUnit, Number(e.value['id']));\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.type);\n const currentValue = this.calendarService\n .create(e.value, this.type)\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n\n this._editingDateObj = currentValue;\n if (this._hasTimePart) {\n this._activePart = '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 }\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._activePart = this._hasDatePart ? 'date' : 'time';\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleSetClick() {\n this.commitValue(this.editingDateObj.date, true);\n }\n\n /**\n * @ignore\n */\n protected _handleNowClick() {\n this._editingDateObj = this._calendarService.now(this.type);\n this.commitValue(this.editingDateObj.date, true);\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) return null;\n const v = this.calendarService.convert(value);\n const isDisabled = this.isDisabled(v);\n if (isDisabled) return null;\n else 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 [text]=\"'dateTime.date' | translate | async\" [key]=\"'date'\" [disabled]=\"disabled\"></ax-tab-item>\n <ax-tab-item [text]=\"'dateTime.time' | translate | async\" [key]=\"'time'\" [disabled]=\"disabled\"></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 [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]=\"type\"\n >\n </ax-calendar>\n </div>\n }\n\n @if (_activePart === 'time') {\n <div class=\"ax-picker-part\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <div class=\"ax-picker-time-container\">\n @if (isRtl()) {\n @if (_parts.second.enabled) {\n <ng-container [ngTemplateOutlet]=\"secondRef\"> </ng-container>\n }\n\n @if (_parts.minute.enabled) {\n <ng-container [ngTemplateOutlet]=\"minuteRef\"> </ng-container>\n }\n\n @if (_parts.hour.enabled) {\n <ng-container [ngTemplateOutlet]=\"hourRef\"> </ng-container>\n }\n } @else {\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 }\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 [text]=\"buttonText | translate | async\" class=\"ax-sm\" (onClick)=\"_handleNowClick()\" [disabled]=\"isTodayDisabled()\"></ax-button>\n }\n </div>\n <div>\n @if (_hasTimePart) {\n <ax-button color=\"primary\" [text]=\"'dateTime.set' | translate | async\" class=\"ax-sm\" (onClick)=\"_handleSetClick()\"></ax-button>\n }\n </div>\n </div>\n}\n\n<ng-template #hourRef>\n <ax-picker-container>\n <ax-picker-title>\n <ax-text>{{ 'dateTime.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 ></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>{{ 'dateTime.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 ></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>{{ 'dateTime.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 ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCalendarModule } from '@acorex/components/calendar';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPickerModule } from '@acorex/components/picker';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\n\nconst COMPONENT = [AXDateTimePickerComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXTabsModule,\n AXDateTimeModule,\n AXButtonModule,\n AXCalendarModule,\n AXPickerModule,\n AXTranslationModule,\n AXDecoratorModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\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":["../../../../libs/components/datetime-picker/src/lib/datetime-picker.config.ts","../../../../libs/components/datetime-picker/src/lib/datetime-picker.component.ts","../../../../libs/components/datetime-picker/src/lib/datetime-picker.component.html","../../../../libs/components/datetime-picker/src/lib/datetime-picker.module.ts","../../../../libs/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 { AXButtonComponent } from '@acorex/components/button';\nimport {\n AXCalendarComponent,\n AXCalendarNavigateEvent,\n AXDateTimePickerType,\n MXCalendarBaseComponent,\n} from '@acorex/components/calendar';\nimport {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n AXValueChangedEvent,\n MXValueComponent,\n} from '@acorex/components/common';\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 { AXHtmlUtil } from '@acorex/core/utils';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n linkedSignal,\n model,\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.scss'],\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 protected buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'));\n\n private defaultConfig: AXDateTimePickerConfig = inject(AX_DATETIME_PICKER_CONFIG);\n\n isRtl = model(false);\n\n #init = afterNextRender(() => {\n this.isRtl.set(AXHtmlUtil.isRtl(this.getHostElement()));\n });\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: () =>\n 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 protected _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._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\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 }\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 }\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 }\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 }\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) return null;\n const v = this.calendarService.convert(value);\n const isDisabled = this.isDisabled(v);\n if (isDisabled) return null;\n else 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 [text]=\"'dateTime.date' | translate | async\" [key]=\"'date'\" [disabled]=\"disabled\"></ax-tab-item>\n <ax-tab-item [text]=\"'dateTime.time' | translate | async\" [key]=\"'time'\" [disabled]=\"disabled\"></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 [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 {{ _editingDateObj() | format: picker() : 'short' | async }}\n </div>\n <div class=\"ax-picker-time-container\">\n @if (isRtl()) {\n @if (_parts.second.enabled) {\n <ng-container [ngTemplateOutlet]=\"secondRef\"> </ng-container>\n }\n\n @if (_parts.minute.enabled) {\n <ng-container [ngTemplateOutlet]=\"minuteRef\"> </ng-container>\n }\n\n @if (_parts.hour.enabled) {\n <ng-container [ngTemplateOutlet]=\"hourRef\"> </ng-container>\n }\n } @else {\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 }\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]=\"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]=\"'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>{{ 'dateTime.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 ></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>{{ 'dateTime.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 ></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>{{ 'dateTime.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 ></ax-picker-items>\n </ax-picker-container>\n</ng-template>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCalendarModule } from '@acorex/components/calendar';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPickerModule } from '@acorex/components/picker';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\n\nconst COMPONENT = [AXDateTimePickerComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXTabsModule,\n AXDateTimeModule,\n AXButtonModule,\n AXCalendarModule,\n AXPickerModule,\n AXTranslationModule,\n AXDecoratorModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\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,7 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ChangeDetectionStrategy, ViewEncapsulation, Component, signal, inject, ComponentRef, Injectable, viewChild, TemplateRef, NgModule } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, signal, ComponentRef, Injectable, viewChild, TemplateRef, NgModule, Input, Directive } from '@angular/core';
3
3
  import { NXComponent } from '@acorex/components/common';
4
4
  import { AXOverlayService } from '@acorex/cdk/overlay';
5
+ import { cloneDeep, set } from 'lodash-es';
6
+ import { Subject } from 'rxjs';
5
7
 
6
8
  class AXModalFooterComponent {
7
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -14,26 +16,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
14
16
 
15
17
  class AXModalStateService {
16
18
  constructor() {
17
- this.modalOption = signal(null);
18
19
  this.modalList = new Map();
19
20
  this.overlayService = inject(AXOverlayService);
21
+ this.modalOption = signal(null);
20
22
  }
21
23
  async open(content, options) {
22
24
  this.modalOption.set(options);
23
25
  const randomId = Math.floor(Math.random() * 100000000000);
24
- const modalContentComp = (await import('./acorex-components-modal-modal-content.component-DhpujG4d.mjs')).AXModalContentComponent;
25
- const ref = await this.overlayService.create(modalContentComp, {
26
- position: options?.position,
27
- backdrop: options?.backdrop,
28
- inputs: {
29
- __content__: content,
30
- inputs: { ...options?.inputs },
31
- id: randomId,
32
- },
33
- });
34
- this.modalList.set(randomId, ref);
35
- return {
36
- id: randomId,
26
+ const modalContentComp = (await import('./acorex-components-modal-modal-content.component-zmFWBaiD.mjs')).AXModalContentComponent;
27
+ const onClose = new Subject();
28
+ const returnRef = {
37
29
  close: (data) => {
38
30
  this.close(randomId, data);
39
31
  },
@@ -43,40 +35,95 @@ class AXModalStateService {
43
35
  minimize: () => {
44
36
  this.minimize(randomId);
45
37
  },
38
+ maximize: () => {
39
+ this.maximize(randomId);
40
+ },
41
+ restore: () => {
42
+ this.restore(randomId);
43
+ },
44
+ onClose,
46
45
  };
46
+ const finalInputs = { ...(cloneDeep(options?.inputs) ?? {}), ...{ __modal__: returnRef } };
47
+ const finalOptions = set(cloneDeep(options) ?? {}, 'inputs', finalInputs);
48
+ const ref = await this.overlayService.create(modalContentComp, {
49
+ position: options?.position,
50
+ backdrop: options?.backdrop,
51
+ inputs: {
52
+ __content__: content,
53
+ inputs: {
54
+ ...finalOptions?.inputs,
55
+ },
56
+ id: randomId,
57
+ },
58
+ });
59
+ this.modalList.set(randomId, { overlay: ref, modal: returnRef });
60
+ return returnRef;
47
61
  }
48
62
  async close(id, data) {
49
63
  const ref = this.modalList.get(id);
50
64
  if (!ref)
51
65
  return;
52
- ref.instance.destroy();
66
+ ref.modal.onClose.next(data);
67
+ ref.overlay.instance.destroy();
53
68
  this.modalList.delete(id);
54
69
  }
55
70
  async setInputs(id, values) {
56
- const ref = this.modalList.get(id);
71
+ const ref = this.modalList.get(id).overlay.instance;
57
72
  if (!ref)
58
73
  return;
59
- if (ref.instance instanceof ComponentRef) {
60
- const comRef = ref.instance;
74
+ if (ref instanceof ComponentRef) {
75
+ const comRef = ref;
61
76
  Object.entries(values).forEach((v) => {
62
77
  comRef.setInput(v[0], v[1]);
63
78
  });
64
79
  }
65
80
  else {
66
- ref.instance.context.inputs.set(values);
81
+ ref.context.inputs.set(values);
67
82
  }
68
83
  }
69
84
  async minimize(id) {
70
- const ref = this.modalList.get(id);
85
+ const ref = this.modalList.get(id).overlay.instance;
86
+ if (!ref)
87
+ return;
88
+ if (ref instanceof ComponentRef) {
89
+ ref.instance.minimize();
90
+ }
91
+ else {
92
+ ref.context.minimize();
93
+ }
94
+ }
95
+ async maximize(id) {
96
+ const ref = this.modalList.get(id).overlay.instance;
71
97
  if (!ref)
72
98
  return;
73
- if (ref.instance instanceof ComponentRef) {
74
- ref.instance.instance.modalSizeHandler();
99
+ if (ref instanceof ComponentRef) {
100
+ ref.instance.maximize();
75
101
  }
76
102
  else {
77
- ref.instance.context.modalSizeHandler();
103
+ ref.context.maximize();
78
104
  }
79
105
  }
106
+ async restore(id) {
107
+ const ref = this.modalList.get(id).overlay.instance;
108
+ if (!ref)
109
+ return;
110
+ if (ref instanceof ComponentRef) {
111
+ ref.instance.restore();
112
+ }
113
+ else {
114
+ ref.context.restore();
115
+ }
116
+ }
117
+ getMapIndexOf(targetKey) {
118
+ let index = 0;
119
+ for (const key of this.modalList.keys()) {
120
+ if (key === targetKey) {
121
+ return index;
122
+ }
123
+ index++;
124
+ }
125
+ return -1;
126
+ }
80
127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
81
128
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalStateService, providedIn: 'root' }); }
82
129
  }
@@ -115,6 +162,16 @@ class AXModalComponent extends NXComponent {
115
162
  return;
116
163
  this.ref().minimize();
117
164
  }
165
+ async maximize() {
166
+ if (!this.ref())
167
+ return;
168
+ this.ref().maximize();
169
+ }
170
+ async restore() {
171
+ if (!this.ref())
172
+ return;
173
+ this.ref().restore();
174
+ }
118
175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
119
176
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.5", type: AXModalComponent, isStandalone: true, selector: "ax-modal", viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
120
177
  <ng-template #contentTemplate>
@@ -144,6 +201,7 @@ class AXModalService {
144
201
  async open(content, options) {
145
202
  const ref = await this.stateService.open(content, options);
146
203
  this.ref.set(ref);
204
+ return ref;
147
205
  }
148
206
  async close() {
149
207
  if (!this.ref())
@@ -161,6 +219,16 @@ class AXModalService {
161
219
  return;
162
220
  this.ref().minimize();
163
221
  }
222
+ async maximize() {
223
+ if (!this.ref())
224
+ return;
225
+ this.ref().maximize();
226
+ }
227
+ async restore() {
228
+ if (!this.ref())
229
+ return;
230
+ this.ref().restore();
231
+ }
164
232
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
165
233
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalService }); }
166
234
  }
@@ -184,9 +252,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
184
252
  }]
185
253
  }] });
186
254
 
255
+ class AXModalComponentBase {
256
+ close(data = null) {
257
+ this.__modal__.close(data);
258
+ }
259
+ minimize() {
260
+ this.__modal__.minimize();
261
+ }
262
+ restore() {
263
+ this.__modal__.restore();
264
+ }
265
+ maximize() {
266
+ this.__modal__.maximize();
267
+ }
268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
269
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: AXModalComponentBase, isStandalone: true, inputs: { __modal__: "__modal__" }, ngImport: i0 }); }
270
+ }
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AXModalComponentBase, decorators: [{
272
+ type: Directive
273
+ }], propDecorators: { __modal__: [{
274
+ type: Input
275
+ }] } });
276
+
187
277
  /**
188
278
  * Generated bundle index. Do not edit.
189
279
  */
190
280
 
191
- export { AXModalStateService as A, AXModalFooterComponent as a, AXModalComponent as b, AXModalModule as c, AXModalService as d };
192
- //# sourceMappingURL=acorex-components-modal-acorex-components-modal-Bs1CnBt8.mjs.map
281
+ export { AXModalStateService as A, AXModalFooterComponent as a, AXModalComponent as b, AXModalModule as c, AXModalService as d, AXModalComponentBase as e };
282
+ //# sourceMappingURL=acorex-components-modal-acorex-components-modal-BzlZIwq8.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-modal-acorex-components-modal-BzlZIwq8.mjs","sources":["../../../../libs/components/modal/src/lib/modal-footer/modal-footer.component.ts","../../../../libs/components/modal/src/lib/modal-footer/modal-footer.component.html","../../../../libs/components/modal/src/lib/modal-state.service.ts","../../../../libs/components/modal/src/lib/modal.component.ts","../../../../libs/components/modal/src/lib/modal.service.ts","../../../../libs/components/modal/src/lib/modal.module.ts","../../../../libs/components/modal/src/lib/modal.types.ts","../../../../libs/components/modal/src/acorex-components-modal.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrl: './modal-footer.component.scss',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXModalFooterComponent {}\n","<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n","import { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXModalContentComponent } from './modal-content/modal-content.component';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalStateService {\n private modalList = new Map<number, { overlay: AXOverlayRef<AXModalContentComponent>; modal: AXModalRef }>();\n private overlayService = inject(AXOverlayService);\n modalOption = signal<AXModalOptions>(null);\n\n async open<TResult = any>(content: AXComponentContent, options?: AXModalOptions): Promise<AXModalRef<TResult>> {\n this.modalOption.set(options);\n const randomId = Math.floor(Math.random() * 100000000000);\n const modalContentComp = (await import('./modal-content/modal-content.component')).AXModalContentComponent;\n const onClose = new Subject<TResult>();\n\n const returnRef: AXModalRef = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n onClose,\n };\n\n const finalInputs = { ...(cloneDeep(options?.inputs) ?? {}), ...{ __modal__: returnRef } };\n const finalOptions = set(cloneDeep(options) ?? {}, 'inputs', finalInputs);\n\n const ref = await this.overlayService.create(modalContentComp, {\n position: options?.position,\n backdrop: options?.backdrop,\n inputs: {\n __content__: content,\n inputs: {\n ...finalOptions?.inputs,\n },\n id: randomId,\n },\n });\n\n this.modalList.set(randomId, { overlay: ref, modal: returnRef });\n\n return returnRef;\n }\n\n async close<TResult = any>(id: number, data?: TResult) {\n const ref = this.modalList.get(id);\n if (!ref) return;\n ref.modal.onClose.next(data);\n ref.overlay.instance.destroy();\n this.modalList.delete(id);\n }\n\n async setInputs(id: number, values: AXComponentInputs) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const comRef = ref as ComponentRef<any>;\n Object.entries(values).forEach((v) => {\n comRef.setInput(v[0], v[1]);\n });\n } else {\n ref.context.inputs.set(values);\n }\n }\n\n async minimize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.minimize();\n } else {\n ref.context.minimize();\n }\n }\n\n async maximize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.maximize();\n } else {\n ref.context.maximize();\n }\n }\n\n async restore(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.restore();\n } else {\n ref.context.restore();\n }\n }\n\n getMapIndexOf(targetKey: any) {\n let index = 0;\n for (const key of this.modalList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n}\n","import { NXComponent } from '@acorex/components/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Component({\n selector: 'ax-modal',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXModalComponent extends NXComponent {\n private service = inject(AXModalStateService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXModalRef<any>>(null);\n\n async open(options?: AXModalOptions) {\n const ref = await this.service.open(this.template(), options);\n this.ref.set(ref);\n return ref;\n }\n\n async close() {\n if (this.ref()) return;\n this.ref().close();\n }\n\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n}\n","import { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable()\nexport class AXModalService {\n private stateService = inject(AXModalStateService);\n private ref = signal<AXModalRef<any>>(null);\n\n async open(content: AXComponentContent, options?: AXModalOptions): Promise<AXModalRef> {\n const ref = await this.stateService.open(content, options);\n this.ref.set(ref);\n return ref;\n }\n\n async close() {\n if (!this.ref()) return;\n this.ref().close();\n }\n\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXModalFooterComponent } from './modal-footer/modal-footer.component';\nimport { AXModalComponent } from './modal.component';\nimport { AXModalService } from './modal.service';\n\nconst COMPONENT = [AXModalComponent, AXModalFooterComponent];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXModalService],\n})\nexport class AXModalModule {}\n","import { AXOverlayOptions } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Directive, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface AXModalOptions extends AXOverlayOptions {\n title?: string;\n buttons?: {\n minimize?: {\n enable: boolean;\n position: 'bottom-right' | 'bottom-left';\n };\n maximize?: boolean;\n close?: boolean;\n };\n draggable?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'full' | 'fit';\n}\n\nexport interface AXModalRef<TResult = any> {\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n onClose: Subject<TResult>;\n}\n\n@Directive()\nexport abstract class AXModalComponentBase {\n @Input()\n private __modal__: AXModalRef;\n\n public close(data: any = null) {\n this.__modal__.close(data);\n }\n\n public minimize() {\n this.__modal__.minimize();\n }\n\n public restore() {\n this.__modal__.restore();\n }\n\n public maximize() {\n this.__modal__.maximize();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}