@acorex/components 19.14.0-next.3 → 19.14.0

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 (169) hide show
  1. package/calendar/lib/calendar.component.d.ts +4 -0
  2. package/common/index.d.ts +1 -0
  3. package/common/lib/classes/components.class.d.ts +1 -0
  4. package/common/lib/components/value-component.class.d.ts +1 -1
  5. package/common/lib/directives/copy-clipboard.directive.d.ts +40 -0
  6. package/datetime-box/lib/datetime-box.component.d.ts +4 -3
  7. package/fesm2022/acorex-components-action-sheet.mjs +32 -5
  8. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  9. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  10. package/fesm2022/acorex-components-audio-wave.mjs +19 -3
  11. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  12. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  13. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  14. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  15. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  16. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  17. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  18. package/fesm2022/acorex-components-button.mjs +14 -2
  19. package/fesm2022/acorex-components-button.mjs.map +1 -1
  20. package/fesm2022/acorex-components-calendar.mjs +11 -1
  21. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  22. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  23. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  24. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  25. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  26. package/fesm2022/acorex-components-color-box.mjs +18 -3
  27. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  28. package/fesm2022/acorex-components-color-palette.mjs +7 -1
  29. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  30. package/fesm2022/acorex-components-comment.mjs +16 -2
  31. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  32. package/fesm2022/acorex-components-common.mjs +110 -15
  33. package/fesm2022/acorex-components-common.mjs.map +1 -1
  34. package/fesm2022/acorex-components-conversation.mjs +8 -1
  35. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  36. package/fesm2022/acorex-components-cron-job.mjs +15 -17
  37. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  38. package/fesm2022/acorex-components-data-pager.mjs +101 -20
  39. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  40. package/fesm2022/acorex-components-data-table.mjs +68 -15
  41. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  42. package/fesm2022/acorex-components-datetime-box.mjs +26 -7
  43. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  44. package/fesm2022/acorex-components-datetime-input.mjs +0 -1
  45. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  46. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  47. package/fesm2022/acorex-components-decorators.mjs +14 -4
  48. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  49. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  50. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  51. package/fesm2022/acorex-components-dropdown-button.mjs +29 -4
  52. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  53. package/fesm2022/acorex-components-dropdown.mjs +26 -3
  54. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  55. package/fesm2022/acorex-components-file-explorer.mjs +26 -3
  56. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  57. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  58. package/fesm2022/acorex-components-form.mjs +43 -24
  59. package/fesm2022/acorex-components-form.mjs.map +1 -1
  60. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  61. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  62. package/fesm2022/acorex-components-image.mjs.map +1 -1
  63. package/fesm2022/acorex-components-json-viewer.mjs +5 -1
  64. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  65. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  66. package/fesm2022/acorex-components-label.mjs.map +1 -1
  67. package/fesm2022/acorex-components-list.mjs +14 -3
  68. package/fesm2022/acorex-components-list.mjs.map +1 -1
  69. package/fesm2022/acorex-components-loading-dialog.mjs +23 -3
  70. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  71. package/fesm2022/acorex-components-loading.mjs +14 -2
  72. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  73. package/fesm2022/acorex-components-map.mjs.map +1 -1
  74. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  75. package/fesm2022/acorex-components-menu.mjs +23 -18
  76. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  77. package/fesm2022/{acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs → acorex-components-modal-acorex-components-modal-Ckn70-o5.mjs} +2 -2
  78. package/fesm2022/acorex-components-modal-acorex-components-modal-Ckn70-o5.mjs.map +1 -0
  79. package/fesm2022/acorex-components-modal-modal-content.component-DzRhA-Nt.mjs +216 -0
  80. package/fesm2022/acorex-components-modal-modal-content.component-DzRhA-Nt.mjs.map +1 -0
  81. package/fesm2022/acorex-components-modal.mjs +1 -1
  82. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  83. package/fesm2022/acorex-components-notification.mjs +30 -5
  84. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  85. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  86. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  87. package/fesm2022/acorex-components-page.mjs +6 -6
  88. package/fesm2022/acorex-components-page.mjs.map +1 -1
  89. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  90. package/fesm2022/acorex-components-password-box.mjs +28 -3
  91. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  92. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  93. package/fesm2022/acorex-components-phone-box.mjs +53 -4
  94. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  95. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  96. package/fesm2022/acorex-components-popover.mjs +18 -4
  97. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  98. package/fesm2022/acorex-components-popup.mjs +18 -2
  99. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  100. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  101. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  102. package/fesm2022/acorex-components-query-builder.mjs +13 -2
  103. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  104. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  105. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  106. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  107. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  108. package/fesm2022/acorex-components-rest-api-generator.mjs +33 -3
  109. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  110. package/fesm2022/acorex-components-result.mjs.map +1 -1
  111. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  112. package/fesm2022/acorex-components-scheduler.mjs +757 -367
  113. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  114. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  115. package/fesm2022/acorex-components-search-box.mjs +42 -5
  116. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  117. package/fesm2022/acorex-components-select-box.mjs +2 -2
  118. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  119. package/fesm2022/acorex-components-selection-list.mjs +41 -5
  120. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  121. package/fesm2022/acorex-components-side-menu.mjs +44 -6
  122. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  123. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  124. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  125. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  126. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  127. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  128. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  129. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  130. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  131. package/fesm2022/acorex-components-text-area.mjs +12 -1
  132. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  133. package/fesm2022/acorex-components-text-box.mjs +48 -4
  134. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  135. package/fesm2022/acorex-components-time-duration.mjs +45 -60
  136. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  137. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  138. package/fesm2022/acorex-components-toast.mjs +6 -2
  139. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  140. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  141. package/fesm2022/acorex-components-tooltip.mjs +1 -1
  142. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  143. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  144. package/fesm2022/acorex-components-uploader.mjs +3 -1
  145. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  146. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  147. package/fesm2022/acorex-components-wysiwyg.mjs +24 -3
  148. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  149. package/fesm2022/acorex-components.mjs.map +1 -1
  150. package/form/lib/validation-rule.directive.d.ts +10 -9
  151. package/menu/index.d.ts +2 -2
  152. package/menu/lib/menu.service.d.ts +1 -1
  153. package/modal/lib/modal-content/modal-content.component.d.ts +4 -3
  154. package/package.json +1 -1
  155. package/page/lib/page.component.d.ts +6 -6
  156. package/scheduler/lib/scheduler.class.d.ts +10 -3
  157. package/scheduler/lib/scheduler.service.d.ts +18 -6
  158. package/scheduler/lib/views/agenda/scheduler-agenda-view.component.d.ts +17 -7
  159. package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +3 -2
  160. package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +16 -9
  161. package/scheduler/lib/views/timeline-day/scheduler-timeline-day-view.component.d.ts +7 -3
  162. package/scheduler/lib/views/timeline-month/scheduler-timeline-month-view.component.d.ts +16 -11
  163. package/scheduler/lib/views/timeline-multi-day/scheduler-timeline-multi-day-view.component.d.ts +16 -3
  164. package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +30 -8
  165. package/time-duration/lib/time-duration.component.d.ts +11 -1
  166. package/time-duration/lib/time-duration.type.d.ts +1 -1
  167. package/fesm2022/acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs.map +0 -1
  168. package/fesm2022/acorex-components-modal-modal-content.component-YrM5Oi9b.mjs +0 -191
  169. package/fesm2022/acorex-components-modal-modal-content.component-YrM5Oi9b.mjs.map +0 -1
@@ -1,27 +1,28 @@
1
1
  import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
2
2
  import { MXBaseComponent } from '@acorex/components/common';
3
3
  import { AXDateTime } from '@acorex/core/date-time';
4
- import { AXDayOfWeekName, AXSchedulerAppointmentEvent, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
4
+ import { AXDayOfWeekName, AXSchedulerAppointmentEvent, AXSchedulerAppointmentSegmentType, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
5
5
  import * as i0 from "@angular/core";
6
6
  export type AXSchedulerMonthDayCell = {
7
7
  date: AXDateTime;
8
8
  isCurrentMonth: boolean;
9
9
  isToday: boolean;
10
- appointments: AXSchedulerAppointmentType[];
11
- visibleAppointments: AXSchedulerAppointmentType[];
12
- hiddenAppointments: AXSchedulerAppointmentType[];
10
+ isHoliday: boolean;
11
+ holidayTitle?: string;
12
+ appointments: AXSchedulerAppointmentSegmentType[];
13
+ visibleAppointments: AXSchedulerAppointmentSegmentType[];
14
+ hiddenAppointments: AXSchedulerAppointmentSegmentType[];
13
15
  overflowCount: number;
14
16
  };
15
17
  export declare class AXSchedulerMonthViewComponent extends MXBaseComponent {
16
- private formatService;
17
18
  private calendarService;
18
19
  private schedulerService;
19
20
  readonly: import("@angular/core").InputSignal<boolean>;
20
21
  draggable: import("@angular/core").InputSignal<boolean>;
21
22
  calendar: import("@angular/core").InputSignal<string>;
22
23
  date: import("@angular/core").InputSignal<AXDateTime>;
23
- appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
24
24
  firstDayOfWeek: import("@angular/core").InputSignal<AXDayOfWeekName>;
25
+ appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
25
26
  readonly DAYS_IN_WEEK = 7;
26
27
  readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY = 2;
27
28
  slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
@@ -32,13 +33,19 @@ export declare class AXSchedulerMonthViewComponent extends MXBaseComponent {
32
33
  appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
33
34
  onAppointmentDropInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotDropEvent>;
34
35
  private readonly eventOutputMap;
35
- handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
36
+ handleAppointmentEvent(mouseEvent: MouseEvent, appointmentSegmentOrOriginal: AXSchedulerAppointmentType): void;
36
37
  handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
37
38
  handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
38
39
  monthStartDate: import("@angular/core").Signal<AXDateTime>;
39
40
  daysArray: import("@angular/core").Signal<AXDateTime[]>;
40
41
  calendarDaysInfo: import("@angular/core").Signal<{
41
- days: AXSchedulerMonthDayCell[];
42
+ days: {
43
+ date: AXDateTime;
44
+ isCurrentMonth: boolean;
45
+ isToday: boolean;
46
+ isHoliday: boolean;
47
+ holidayTitle?: string;
48
+ }[];
42
49
  weeksNeeded: number;
43
50
  }>;
44
51
  appointmentsGroupedByDay: import("@angular/core").Signal<Map<string, AXSchedulerAppointmentType[]>>;
@@ -46,5 +53,5 @@ export declare class AXSchedulerMonthViewComponent extends MXBaseComponent {
46
53
  gridTemplateRowsStyle: import("@angular/core").Signal<string>;
47
54
  get isReadonly(): boolean;
48
55
  static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerMonthViewComponent, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
50
57
  }
@@ -1,7 +1,7 @@
1
1
  import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
2
2
  import { MXBaseComponent } from '@acorex/components/common';
3
3
  import { AXDateTime } from '@acorex/core/date-time';
4
- import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentLayout, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
4
+ import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentLayout, AXSchedulerAppointmentSegmentType, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class AXSchedulerTimelineDayViewComponent extends MXBaseComponent {
7
7
  private schedulerService;
@@ -13,7 +13,11 @@ export declare class AXSchedulerTimelineDayViewComponent extends MXBaseComponent
13
13
  date: import("@angular/core").InputSignal<AXDateTime>;
14
14
  startHour: import("@angular/core").InputSignal<number>;
15
15
  appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
16
- singleDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
16
+ /**
17
+ * Processes original appointments to get segments relevant to this specific day and its viewable hours.
18
+ * Filters out original all-day events.
19
+ */
20
+ processedSegmentsForLayout: import("@angular/core").Signal<AXSchedulerAppointmentSegmentType[]>;
17
21
  slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
18
22
  slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
19
23
  slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
@@ -22,7 +26,7 @@ export declare class AXSchedulerTimelineDayViewComponent extends MXBaseComponent
22
26
  appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
23
27
  onAppointmentDropInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotDropEvent>;
24
28
  private readonly eventOutputMap;
25
- handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
29
+ handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointmentType): void;
26
30
  handleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime): void;
27
31
  handleDrop(e: AXDropZoneDropEvent, startDate: AXDateTime): void;
28
32
  hoursArray: import("@angular/core").Signal<AXDateTime[]>;
@@ -1,13 +1,17 @@
1
1
  import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
2
2
  import { MXBaseComponent } from '@acorex/components/common';
3
- import { AXDateTime } from '@acorex/core/date-time';
4
- import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
3
+ import { AXDateTime, AXHolidayDate } from '@acorex/core/date-time';
4
+ import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentSegmentType, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
5
5
  import * as i0 from "@angular/core";
6
- export interface MultiDayViewDayData {
6
+ export interface TimelineMonthViewDayData {
7
7
  date: AXDateTime;
8
- visibleAppointments: AXSchedulerAppointmentType[];
9
- hiddenAppointments: AXSchedulerAppointmentType[];
8
+ visibleAppointments: AXSchedulerAppointmentSegmentType[];
9
+ hiddenAppointments: AXSchedulerAppointmentSegmentType[];
10
10
  moreCount: number;
11
+ holiday?: {
12
+ state: 'holiday' | 'weekend' | 'none';
13
+ holiday?: AXHolidayDate;
14
+ };
11
15
  }
12
16
  export declare class AXSchedulerTimelineMonthViewComponent extends MXBaseComponent {
13
17
  private calendarService;
@@ -16,12 +20,9 @@ export declare class AXSchedulerTimelineMonthViewComponent extends MXBaseCompone
16
20
  readonly: import("@angular/core").InputSignal<boolean>;
17
21
  draggable: import("@angular/core").InputSignal<boolean>;
18
22
  calendar: import("@angular/core").InputSignal<string>;
19
- endHour: import("@angular/core").InputSignal<number>;
20
23
  date: import("@angular/core").InputSignal<AXDateTime>;
21
- startHour: import("@angular/core").InputSignal<number>;
22
24
  appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
23
- singleDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
24
- monthAppointments: import("@angular/core").Signal<MultiDayViewDayData[]>;
25
+ processedDayData: import("@angular/core").Signal<TimelineMonthViewDayData[]>;
25
26
  slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
26
27
  slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
27
28
  slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
@@ -30,11 +31,15 @@ export declare class AXSchedulerTimelineMonthViewComponent extends MXBaseCompone
30
31
  appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
31
32
  onAppointmentDropInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotDropEvent>;
32
33
  private readonly eventOutputMap;
33
- handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
34
+ handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointmentType): void;
34
35
  handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
35
36
  handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
36
37
  protected isToday(date: AXDateTime): boolean;
38
+ protected isHoliday(date: AXDateTime): {
39
+ state: 'holiday' | 'weekend' | 'none';
40
+ holiday?: AXHolidayDate;
41
+ };
37
42
  get isReadonly(): boolean;
38
43
  static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerTimelineMonthViewComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerTimelineMonthViewComponent, "ax-scheduler-timeline-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "endHour": { "alias": "endHour"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "startHour": { "alias": "startHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerTimelineMonthViewComponent, "ax-scheduler-timeline-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
40
45
  }
@@ -1,9 +1,18 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
- import { AXDateTime } from '@acorex/core/date-time';
3
- import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentType, AXSchedulerMultiDayViewAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
2
+ import { AXDateTime, AXHolidayDate } from '@acorex/core/date-time';
3
+ import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentType, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
4
4
  import * as i0 from "@angular/core";
5
+ export interface TimelineMultiDayDaySlot {
6
+ date: AXDateTime;
7
+ originalAppointmentsForThisDay: AXSchedulerAppointmentType[];
8
+ holiday?: {
9
+ state: 'holiday' | 'weekend' | 'none';
10
+ holiday?: AXHolidayDate;
11
+ };
12
+ }
5
13
  export declare class AXSchedulerTimelineMultiDayViewComponent extends MXBaseComponent {
6
14
  private calendarService;
15
+ private schedulerService;
7
16
  daysCount: import("@angular/core").InputSignal<number>;
8
17
  readonly: import("@angular/core").InputSignal<boolean>;
9
18
  draggable: import("@angular/core").InputSignal<boolean>;
@@ -12,7 +21,7 @@ export declare class AXSchedulerTimelineMultiDayViewComponent extends MXBaseComp
12
21
  date: import("@angular/core").InputSignal<AXDateTime>;
13
22
  startHour: import("@angular/core").InputSignal<number>;
14
23
  appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
15
- multiDayAppointments: import("@angular/core").Signal<AXSchedulerMultiDayViewAppointmentType[]>;
24
+ daysDataForTimelineViews: import("@angular/core").Signal<TimelineMultiDayDaySlot[]>;
16
25
  slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
17
26
  slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
18
27
  slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
@@ -21,6 +30,10 @@ export declare class AXSchedulerTimelineMultiDayViewComponent extends MXBaseComp
21
30
  appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
22
31
  onAppointmentDropInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotDropEvent>;
23
32
  protected isToday(date: AXDateTime): boolean;
33
+ protected isHoliday(date: AXDateTime): {
34
+ state: 'holiday' | 'weekend' | 'none';
35
+ holiday?: AXHolidayDate;
36
+ };
24
37
  static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerTimelineMultiDayViewComponent, never>;
25
38
  static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerTimelineMultiDayViewComponent, "ax-scheduler-timeline-multi-day-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "endHour": { "alias": "endHour"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "startHour": { "alias": "startHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
26
39
  }
@@ -1,10 +1,10 @@
1
1
  import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
2
2
  import { MXBaseComponent } from '@acorex/components/common';
3
- import { AXDateTime } from '@acorex/core/date-time';
4
- import { AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointmentEvent, AXSchedulerAppointmentLayout, AXSchedulerAppointmentsByStartBlock, AXSchedulerAppointmentType, AXSchedulerOverflowBadge, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
3
+ import { AXDateTime, AXHolidayDate } from '@acorex/core/date-time';
4
+ import { AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointmentEvent, AXSchedulerAppointmentLayout, AXSchedulerAppointmentSegmentType, AXSchedulerAppointmentType, AXSchedulerOverflowBadge, AXSchedulerSlotDropEvent, AXSchedulerSlotEvent } from '../../scheduler.class';
5
5
  import * as i0 from "@angular/core";
6
6
  type AXSchedulerGridBadgeInfo = AXSchedulerOverflowBadge & {
7
- hiddenAppointments: AXSchedulerAppointmentType[];
7
+ hiddenAppointments: AXSchedulerAppointmentSegmentType[];
8
8
  };
9
9
  export declare class AXSchedulerWeekViewComponent extends MXBaseComponent {
10
10
  private calendarService;
@@ -17,8 +17,17 @@ export declare class AXSchedulerWeekViewComponent extends MXBaseComponent {
17
17
  date: import("@angular/core").InputSignal<AXDateTime>;
18
18
  startHour: import("@angular/core").InputSignal<number>;
19
19
  appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
20
- allDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
21
- singleDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
20
+ /**
21
+ * Processes all original appointments and generates day-specific segments for the entire week.
22
+ * Each segment represents the visible part of an appointment on a particular day.
23
+ * The segment's 'allDay' flag indicates if it should be in the all-day slot or timed grid for that day.
24
+ */
25
+ processedAppointmentsForLayout: import("@angular/core").Signal<AXSchedulerAppointmentSegmentType[]>;
26
+ /**
27
+ * Segments that are to be displayed in the timed grid area of the week view.
28
+ * These are segments from processedAppointmentsForLayout where segment.allDay is false.
29
+ */
30
+ timedGridSegments: import("@angular/core").Signal<AXSchedulerAppointmentSegmentType[]>;
22
31
  slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
23
32
  slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
24
33
  slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
@@ -27,22 +36,35 @@ export declare class AXSchedulerWeekViewComponent extends MXBaseComponent {
27
36
  appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
28
37
  onAppointmentDropInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotDropEvent>;
29
38
  private readonly eventOutputMap;
30
- handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
39
+ handleAppointmentEvent(mouseEvent: MouseEvent, appointmentSegment: AXSchedulerAppointmentType): void;
31
40
  handleSingleSlotEvent(mouseEvent: MouseEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
32
41
  handleAllDaySlotEvent(mouseEvent: MouseEvent, day: AXDateTime): void;
33
42
  handleAllDayDrop(e: AXDropZoneDropEvent, day: AXDateTime): void;
34
43
  handleSingleDayDrop(e: AXDropZoneDropEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
35
44
  hoursArray: import("@angular/core").Signal<AXDateTime[]>;
36
- daysArray: import("@angular/core").Signal<AXDateTime[]>;
45
+ daysArray: import("@angular/core").Signal<{
46
+ date: AXDateTime;
47
+ holiday?: {
48
+ state: "holiday" | "weekend" | "none";
49
+ holiday?: AXHolidayDate;
50
+ };
51
+ }[]>;
37
52
  totalBlocksPerViewDay: import("@angular/core").Signal<number>;
38
- appointmentsByStartBlock: import("@angular/core").Signal<AXSchedulerAppointmentsByStartBlock>;
53
+ appointmentsByStartBlock: import("@angular/core").Signal<import("../../scheduler.class").AXSchedulerAppointmentsByStartBlock>;
39
54
  activeAppointmentsInBlock: import("@angular/core").Signal<AXSchedulerActiveAppointmentsInBlock>;
40
55
  visibleAppointmentsLayout: import("@angular/core").Signal<AXSchedulerAppointmentLayout[]>;
41
56
  visualOccupancyMap: import("@angular/core").Signal<Map<string, any>>;
42
57
  overflowBadges: import("@angular/core").Signal<AXSchedulerOverflowBadge[]>;
58
+ /**
59
+ * Structures all-day (or "becomes all-day") segments for rendering in the all-day slots for each day of the week.
60
+ */
43
61
  allDayAppointmentsPerDay: import("@angular/core").Signal<AXSchedulerAllDaySlotData[]>;
44
62
  overflowBadgesWithData: import("@angular/core").Signal<AXSchedulerGridBadgeInfo[]>;
45
63
  protected isToday(date: AXDateTime): boolean;
64
+ protected isHoliday(date: AXDateTime): {
65
+ state: 'holiday' | 'weekend' | 'none';
66
+ holiday?: AXHolidayDate;
67
+ };
46
68
  get isReadonly(): boolean;
47
69
  static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerWeekViewComponent, never>;
48
70
  static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "endHour": { "alias": "endHour"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "startHour": { "alias": "startHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
@@ -13,15 +13,25 @@ export declare class AXTimeDurationComponent extends AXTimeDurationComponent_bas
13
13
  readonly valueEnd: import("@angular/core").InputSignal<AXTimeDurationUnit>;
14
14
  protected maskOptions: import("@angular/core").WritableSignal<any>;
15
15
  private translationService;
16
+ private timeDurationFormatter;
16
17
  private onInputFire;
17
18
  private onInternalValueChangedFire;
19
+ private YEAR;
20
+ private MONTH;
21
+ private WEEK;
22
+ private DAY;
23
+ private HOUR;
24
+ private MINUTE;
25
+ private SECOND;
26
+ private MILLISECOND;
27
+ private isTranslationInit;
28
+ initTranslation(): Promise<void>;
18
29
  protected onInput(event: any): void;
19
30
  protected internalValueChanged(value: number): void;
20
31
  private maskToMilliseconds;
21
32
  private getNextLargerUnit;
22
33
  private convertToLargerUnit;
23
34
  private unitToMilliseconds;
24
- private millisecondsToMask;
25
35
  private updateMask;
26
36
  static ɵfac: i0.ɵɵFactoryDeclaration<AXTimeDurationComponent, never>;
27
37
  static ɵcmp: i0.ɵɵComponentDeclaration<AXTimeDurationComponent, "ax-time-duration", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "look": { "alias": "look"; "required": false; }; "valueStart": { "alias": "valueStart"; "required": false; "isSignal": true; }; "valueEnd": { "alias": "valueEnd"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
@@ -1 +1 @@
1
- export type AXTimeDurationUnit = 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond';
1
+ export type AXTimeDurationUnit = 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' | 'MILLISECOND';
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-components-modal-acorex-components-modal-C83n2Gqn.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>(\n content: AXComponentContent | HTMLElement,\n options?: AXModalOptions,\n ): 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 | HTMLElement, 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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"}
@@ -1,191 +0,0 @@
1
- import * as i1 from '@acorex/cdk/focus-trap';
2
- import { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';
3
- import { AXButtonComponent } from '@acorex/components/button';
4
- import { NXComponent } from '@acorex/components/common';
5
- import * as i3 from '@acorex/components/decorators';
6
- import { AXDecoratorModule } from '@acorex/components/decorators';
7
- import { trigger, transition, style, animate } from '@angular/animations';
8
- import * as i2 from '@angular/common';
9
- import { CommonModule } from '@angular/common';
10
- import * as i0 from '@angular/core';
11
- import { input, model, inject, viewChild, computed, TemplateRef, signal, afterNextRender, effect, HostBinding, HostListener, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
12
- import { DomSanitizer } from '@angular/platform-browser';
13
- import { A as AXModalStateService, a as AXModalFooterComponent } from './acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs';
14
-
15
- class AXModalContentComponent extends NXComponent {
16
- constructor() {
17
- super(...arguments);
18
- this.__content__ = input.required();
19
- this.id = input();
20
- this.inputs = model();
21
- this.serviceState = inject(AXModalStateService);
22
- this.sanitizer = inject(DomSanitizer);
23
- this.modalContainer = viewChild('c');
24
- this.footer = viewChild(AXModalFooterComponent);
25
- this.isTemplate = computed(() => this.__content__() instanceof TemplateRef);
26
- this.isHtmlElement = computed(() => this.__content__() instanceof HTMLElement);
27
- this.component = computed(() => this.__content__());
28
- this.template = computed(() => this.__content__());
29
- this.element = computed(() => this.__content__());
30
- this.modalSizeState = signal('normal');
31
- this.isMouseDown = signal(false);
32
- this.offsetX = signal(0);
33
- this.offsetY = signal(0);
34
- this.prevLeft = signal('');
35
- this.prevTop = signal('');
36
- this.backdropState = computed(() => this.serviceState.modalOption()?.backdrop?.enabled);
37
- this.closeHeaderButton = computed(() => this.serviceState.modalOption()?.buttons.close);
38
- this.backdropBackground = computed(() => this.serviceState.modalOption()?.backdrop?.background);
39
- this.backdropClass = computed(() => this.serviceState.modalOption()?.backdrop?.cssClass);
40
- this.backdropCloseOnClick = computed(() => this.serviceState.modalOption()?.backdrop?.closeOnClick);
41
- this.minimizePosition = computed(() => this.serviceState.modalOption()?.buttons.minimize.position);
42
- this.minimizeState = computed(() => this.serviceState.modalOption()?.buttons.minimize.enable);
43
- this.maximizeState = computed(() => this.serviceState.modalOption()?.buttons.maximize);
44
- this.modalSize = computed(() => this.serviceState.modalOption()?.size || 'fit');
45
- this.headerTitle = computed(() => this.serviceState.modalOption()?.title);
46
- this.draggable = computed(() => this.serviceState.modalOption()?.draggable);
47
- this.#init = afterNextRender(() => {
48
- const popFooter = this.nativeElement.querySelector('.ax-modal-footer');
49
- const footer = this.nativeElement.querySelector('.ax-modal-content ax-modal-footer');
50
- if (footer) {
51
- popFooter?.append(footer);
52
- }
53
- });
54
- this.fadeInOut = true;
55
- this.#eff = effect(() => {
56
- const host = this.nativeElement;
57
- if (this.draggable())
58
- host.classList.add('ax-draggable');
59
- if (!this.backdropState())
60
- return;
61
- host.classList.add('ax-backdrop');
62
- if (!this.backdropBackground())
63
- return;
64
- if (this.backdropClass()) {
65
- host.classList.add(this.backdropClass());
66
- }
67
- else {
68
- host.classList.add('ax-default-backdrop');
69
- }
70
- });
71
- }
72
- #init;
73
- closeHandler() {
74
- this.serviceState.close(this.id());
75
- }
76
- minimize() {
77
- const index = this.serviceState.getMapIndexOf(this.id());
78
- this.modalContainer().nativeElement.style.top = `auto`;
79
- this.modalContainer().nativeElement.style.bottom = `0`;
80
- if (this.backdropState())
81
- this.nativeElement.classList.remove('ax-backdrop');
82
- this.modalContainer().nativeElement.classList.remove('ax-normal-modal');
83
- this.modalContainer().nativeElement.classList.remove('ax-maximize-modal');
84
- this.modalContainer().nativeElement.classList.add(`ax-minimize-modal`);
85
- if (this.minimizePosition() === 'bottom-right') {
86
- this.modalContainer().nativeElement.style.left = `auto`;
87
- this.modalContainer().nativeElement.style.right = `${index * this.modalContainer().nativeElement.offsetWidth}px`;
88
- }
89
- else {
90
- this.modalContainer().nativeElement.style.right = `auto`;
91
- this.modalContainer().nativeElement.style.left = `${index * this.modalContainer().nativeElement.offsetWidth}px`;
92
- }
93
- this.modalSizeState.set('minimize');
94
- }
95
- maximize() {
96
- if (this.modalSizeState() === 'minimize')
97
- this.restore();
98
- this.modalContainer().nativeElement.style.top = `auto`;
99
- this.modalContainer().nativeElement.style.right = `auto`;
100
- this.modalContainer().nativeElement.style.left = `auto`;
101
- this.modalContainer().nativeElement.style.bottom = `auto`;
102
- this.modalContainer().nativeElement.classList.remove(`ax-minimize-modal`);
103
- this.modalContainer().nativeElement.classList.remove(`ax-normal-modal`);
104
- this.modalContainer().nativeElement.classList.add('ax-maximize-modal');
105
- this.modalSizeState.set('maximize');
106
- }
107
- restore() {
108
- this.modalContainer().nativeElement.style.bottom = `auto`;
109
- this.modalContainer().nativeElement.style.right = `auto`;
110
- this.modalContainer().nativeElement.style.left = this.prevLeft();
111
- this.modalContainer().nativeElement.style.top = this.prevTop();
112
- if (this.backdropState())
113
- this.nativeElement.classList.add('ax-backdrop');
114
- this.modalContainer().nativeElement.classList.remove(`ax-minimize-modal`);
115
- this.modalContainer().nativeElement.classList.remove(`ax-maximize-modal`);
116
- this.modalContainer().nativeElement.classList.add('ax-normal-modal');
117
- this.modalSizeState.set('normal');
118
- }
119
- pointerDownHandler(e) {
120
- if (!this.draggable() || this.modalSizeState() !== 'normal')
121
- return;
122
- this.isMouseDown.set(true);
123
- this.modalContainer().nativeElement.style.transition = 'none';
124
- this.offsetX.set(e.clientX - this.modalContainer().nativeElement.offsetLeft);
125
- this.offsetY.set(e.clientY - this.modalContainer().nativeElement.offsetTop);
126
- }
127
- pointerMoveHandler(e) {
128
- if (!this.draggable() || this.modalSizeState() !== 'normal')
129
- return;
130
- if (!this.isMouseDown())
131
- return;
132
- this.modalContainer().nativeElement.style.left = `${e.clientX - this.offsetX()}px`;
133
- this.modalContainer().nativeElement.style.top = `${e.clientY - this.offsetY()}px`;
134
- this.prevLeft.set(`${e.clientX - this.offsetX()}px`);
135
- this.prevTop.set(`${e.clientY - this.offsetY()}px`);
136
- }
137
- pointerUpHandler() {
138
- if (!this.draggable() || this.modalSizeState() !== 'normal')
139
- return;
140
- this.modalContainer().nativeElement.style.transition = '0.5s all ease';
141
- this.isMouseDown.set(false);
142
- }
143
- backdropCloseHandler(e) {
144
- if (!this.backdropCloseOnClick())
145
- return;
146
- if (e.target === e.currentTarget) {
147
- this.closeHandler();
148
- }
149
- }
150
- #eff;
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXModalContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXModalContentComponent, isStandalone: true, selector: "ax-modal-content", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inputs: "inputsChange" }, host: { listeners: { "pointermove": "pointerMoveHandler($event)", "pointerup": "pointerUpHandler($event)", "pointerleave": "pointerUpHandler($event)", "click": "backdropCloseHandler($event)" }, properties: { "@fadeInOut": "this.fadeInOut" } }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["c"], descendants: true, isSignal: true }, { propertyName: "footer", first: true, predicate: AXModalFooterComponent, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.AXFocusTrapDirective }], ngImport: i0, template: "<div #c class=\"ax-modal-container ax-{{ modalSizeState() }}-modal ax-modal-{{ modalSize() }}\">\n <div (pointerdown)=\"pointerDownHandler($event)\" class=\"ax-modal-header\">\n <ax-text>{{ headerTitle() }}</ax-text>\n\n <div>\n @if (minimizeState()) {\n <ax-button class=\"ax-sm\" (onClick)=\"minimize()\" look=\"blank\" color=\"primary\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"> </ax-icon>\n </ax-button>\n }\n\n @if (modalSizeState() !== 'normal') {\n <ax-button class=\"ax-sm\" (onClick)=\"restore()\" look=\"blank\" color=\"primary\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"> </ax-icon>\n </ax-button>\n }\n\n @if (maximizeState()) {\n <ax-button class=\"ax-sm\" (onClick)=\"maximize()\" look=\"blank\" color=\"primary\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"> </ax-icon>\n </ax-button>\n }\n\n @if (closeHeaderButton()) {\n <ax-button class=\"ax-sm\" look=\"blank\" (onClick)=\"closeHandler()\" color=\"danger\">\n <ax-icon class=\"ax-icon ax-icon-close\"> </ax-icon>\n </ax-button>\n }\n </div>\n </div>\n <div class=\"ax-modal-content\">\n @if (isTemplate()) {\n <ng-container [ngTemplateOutlet]=\"this.template()\" [ngTemplateOutletContext]=\"inputs()\"></ng-container>\n } @else if (isHtmlElement()) {\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(this.element().outerHTML)\"></div>\n } @else {\n <ng-container [ngComponentOutlet]=\"this.component()\" [ngComponentOutletInputs]=\"inputs()\"></ng-container>\n }\n </div>\n <div class=\"ax-modal-footer\"></div>\n</div>\n", styles: ["ax-modal-content{z-index:100;touch-action:none;-webkit-user-select:none;user-select:none}ax-modal-content.ax-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh}ax-modal-content.ax-default-backdrop{background-color:#00000080}ax-modal-content.ax-draggable .ax-modal-header:hover{cursor:move}ax-modal-content .ax-modal-container{position:fixed;z-index:110;background-color:rgba(var(--ax-sys-color-lightest-surface));display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--ax-sys-border-radius);border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));overflow:hidden;transition:.5s all ease;max-height:90vh;max-width:100vw}ax-modal-content .ax-modal-container.ax-modal-full{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-modal-fit{width:fit-content}@media (min-width: 320px) and (max-width: 640px){ax-modal-content .ax-modal-container.ax-modal-sm,ax-modal-content .ax-modal-container.ax-modal-md,ax-modal-content .ax-modal-container.ax-modal-lg,ax-modal-content .ax-modal-container.ax-modal-fit{width:93vw}}@media (min-width: 768px){ax-modal-content .ax-modal-container.ax-modal-sm{width:55vw}ax-modal-content .ax-modal-container.ax-modal-md{width:65vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:75vw}}@media (min-width: 1280px){ax-modal-content .ax-modal-container.ax-modal-sm{width:30vw}ax-modal-content .ax-modal-container.ax-modal-md{width:50vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:85vw}}@media (min-width: 1536px){ax-modal-content .ax-modal-container.ax-modal-sm{width:25vw}ax-modal-content .ax-modal-container.ax-modal-md{width:40vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:65vw}}ax-modal-content .ax-modal-container.ax-normal-modal{top:50%;left:50%;transform:translate(-50%,-50%)}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-content{display:none}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-footer{display:none}ax-modal-content .ax-modal-container.ax-maximize-modal{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-maximize-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-maximize-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer,ax-modal-content .ax-modal-container .ax-modal-content{padding:.5rem}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{height:fit-content}ax-modal-content .ax-modal-container .ax-modal-content{overflow:auto;border-block:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-grow:1}ax-modal-content .ax-modal-container .ax-modal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }], animations: [
153
- trigger('fadeInOut', [
154
- transition(':enter', [
155
- style({ opacity: 0, transform: 'scale(0.85)' }),
156
- animate('200ms ease-out', style({ opacity: 1, transform: 'scale(1)' })),
157
- ]),
158
- transition(':leave', [animate('200ms ease-in', style({ opacity: 0, transform: 'scale(0.85)' }))]),
159
- ]),
160
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
161
- }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXModalContentComponent, decorators: [{
163
- type: Component,
164
- args: [{ selector: 'ax-modal-content', imports: [CommonModule, AXButtonComponent, AXDecoratorModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [AXFocusTrapDirective], animations: [
165
- trigger('fadeInOut', [
166
- transition(':enter', [
167
- style({ opacity: 0, transform: 'scale(0.85)' }),
168
- animate('200ms ease-out', style({ opacity: 1, transform: 'scale(1)' })),
169
- ]),
170
- transition(':leave', [animate('200ms ease-in', style({ opacity: 0, transform: 'scale(0.85)' }))]),
171
- ]),
172
- ], template: "<div #c class=\"ax-modal-container ax-{{ modalSizeState() }}-modal ax-modal-{{ modalSize() }}\">\n <div (pointerdown)=\"pointerDownHandler($event)\" class=\"ax-modal-header\">\n <ax-text>{{ headerTitle() }}</ax-text>\n\n <div>\n @if (minimizeState()) {\n <ax-button class=\"ax-sm\" (onClick)=\"minimize()\" look=\"blank\" color=\"primary\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"> </ax-icon>\n </ax-button>\n }\n\n @if (modalSizeState() !== 'normal') {\n <ax-button class=\"ax-sm\" (onClick)=\"restore()\" look=\"blank\" color=\"primary\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"> </ax-icon>\n </ax-button>\n }\n\n @if (maximizeState()) {\n <ax-button class=\"ax-sm\" (onClick)=\"maximize()\" look=\"blank\" color=\"primary\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"> </ax-icon>\n </ax-button>\n }\n\n @if (closeHeaderButton()) {\n <ax-button class=\"ax-sm\" look=\"blank\" (onClick)=\"closeHandler()\" color=\"danger\">\n <ax-icon class=\"ax-icon ax-icon-close\"> </ax-icon>\n </ax-button>\n }\n </div>\n </div>\n <div class=\"ax-modal-content\">\n @if (isTemplate()) {\n <ng-container [ngTemplateOutlet]=\"this.template()\" [ngTemplateOutletContext]=\"inputs()\"></ng-container>\n } @else if (isHtmlElement()) {\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(this.element().outerHTML)\"></div>\n } @else {\n <ng-container [ngComponentOutlet]=\"this.component()\" [ngComponentOutletInputs]=\"inputs()\"></ng-container>\n }\n </div>\n <div class=\"ax-modal-footer\"></div>\n</div>\n", styles: ["ax-modal-content{z-index:100;touch-action:none;-webkit-user-select:none;user-select:none}ax-modal-content.ax-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh}ax-modal-content.ax-default-backdrop{background-color:#00000080}ax-modal-content.ax-draggable .ax-modal-header:hover{cursor:move}ax-modal-content .ax-modal-container{position:fixed;z-index:110;background-color:rgba(var(--ax-sys-color-lightest-surface));display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--ax-sys-border-radius);border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));overflow:hidden;transition:.5s all ease;max-height:90vh;max-width:100vw}ax-modal-content .ax-modal-container.ax-modal-full{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-modal-fit{width:fit-content}@media (min-width: 320px) and (max-width: 640px){ax-modal-content .ax-modal-container.ax-modal-sm,ax-modal-content .ax-modal-container.ax-modal-md,ax-modal-content .ax-modal-container.ax-modal-lg,ax-modal-content .ax-modal-container.ax-modal-fit{width:93vw}}@media (min-width: 768px){ax-modal-content .ax-modal-container.ax-modal-sm{width:55vw}ax-modal-content .ax-modal-container.ax-modal-md{width:65vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:75vw}}@media (min-width: 1280px){ax-modal-content .ax-modal-container.ax-modal-sm{width:30vw}ax-modal-content .ax-modal-container.ax-modal-md{width:50vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:85vw}}@media (min-width: 1536px){ax-modal-content .ax-modal-container.ax-modal-sm{width:25vw}ax-modal-content .ax-modal-container.ax-modal-md{width:40vw}ax-modal-content .ax-modal-container.ax-modal-lg{width:65vw}}ax-modal-content .ax-modal-container.ax-normal-modal{top:50%;left:50%;transform:translate(-50%,-50%)}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-normal-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-content{display:none}ax-modal-content .ax-modal-container.ax-minimize-modal .ax-modal-footer{display:none}ax-modal-content .ax-modal-container.ax-maximize-modal{max-height:100vh!important;width:100%;height:100%}ax-modal-content .ax-modal-container.ax-maximize-modal .ax-modal-content{display:block}ax-modal-content .ax-modal-container.ax-maximize-modal .ax-modal-footer{display:block}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer,ax-modal-content .ax-modal-container .ax-modal-content{padding:.5rem}ax-modal-content .ax-modal-container .ax-modal-header,ax-modal-content .ax-modal-container .ax-modal-footer{height:fit-content}ax-modal-content .ax-modal-container .ax-modal-content{overflow:auto;border-block:1px solid rgba(var(--ax-sys-color-border-lightest-surface));flex-grow:1}ax-modal-content .ax-modal-container .ax-modal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}\n"] }]
173
- }], propDecorators: { pointerMoveHandler: [{
174
- type: HostListener,
175
- args: ['pointermove', ['$event']]
176
- }], pointerUpHandler: [{
177
- type: HostListener,
178
- args: ['pointerup', ['$event']]
179
- }, {
180
- type: HostListener,
181
- args: ['pointerleave', ['$event']]
182
- }], backdropCloseHandler: [{
183
- type: HostListener,
184
- args: ['click', ['$event']]
185
- }], fadeInOut: [{
186
- type: HostBinding,
187
- args: ['@fadeInOut']
188
- }] } });
189
-
190
- export { AXModalContentComponent };
191
- //# sourceMappingURL=acorex-components-modal-modal-content.component-YrM5Oi9b.mjs.map