@acorex/components 21.0.1-next.3 → 21.0.1-next.4

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 (49) hide show
  1. package/action-sheet/index.d.ts +41 -19
  2. package/datetime-picker/index.d.ts +1 -1
  3. package/dialog/index.d.ts +18 -14
  4. package/dropdown/index.d.ts +3 -4
  5. package/fesm2022/acorex-components-action-sheet.mjs +141 -93
  6. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  7. package/fesm2022/acorex-components-conversation2.mjs +2 -2
  8. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  9. package/fesm2022/acorex-components-datetime-box.mjs +1 -0
  10. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  11. package/fesm2022/acorex-components-datetime-picker.mjs +25 -25
  12. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  13. package/fesm2022/acorex-components-dialog.mjs +66 -45
  14. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  15. package/fesm2022/acorex-components-dropdown.mjs +5 -10
  16. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  17. package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
  18. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  19. package/fesm2022/acorex-components-loading-dialog.mjs +73 -36
  20. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  21. package/fesm2022/acorex-components-menu.mjs +26 -5
  22. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  23. package/fesm2022/{acorex-components-modal-acorex-components-modal-CXXcFToK.mjs → acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs} +27 -3
  24. package/fesm2022/acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs.map +1 -0
  25. package/fesm2022/{acorex-components-modal-modal-content.component-B4rhHeEz.mjs → acorex-components-modal-modal-content.component-CSJU1vRi.mjs} +2 -2
  26. package/fesm2022/{acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map → acorex-components-modal-modal-content.component-CSJU1vRi.mjs.map} +1 -1
  27. package/fesm2022/acorex-components-modal.mjs +1 -1
  28. package/fesm2022/acorex-components-notification.mjs +374 -257
  29. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  30. package/fesm2022/acorex-components-popover.mjs +136 -175
  31. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  32. package/fesm2022/acorex-components-popup.mjs +308 -105
  33. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  34. package/fesm2022/acorex-components-routing-progress.mjs +2 -2
  35. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  36. package/fesm2022/acorex-components-toast.mjs +231 -123
  37. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  38. package/fesm2022/acorex-components-tooltip.mjs +2 -3
  39. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  40. package/loading-dialog/index.d.ts +31 -15
  41. package/menu/index.d.ts +4 -0
  42. package/modal/index.d.ts +7 -0
  43. package/notification/index.d.ts +47 -32
  44. package/package.json +3 -3
  45. package/popover/index.d.ts +20 -27
  46. package/popup/index.d.ts +103 -27
  47. package/toast/index.d.ts +24 -18
  48. package/tooltip/index.d.ts +1 -2
  49. package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +0 -1
@@ -3,12 +3,12 @@ import { AXButtonComponent, AXButtonModule } from '@acorex/components/button';
3
3
  import { AXDecoratorGenericComponent, AXDecoratorModule } from '@acorex/components/decorators';
4
4
  import { AXLoadingComponent, AXLoadingModule } from '@acorex/components/loading';
5
5
  import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
6
- import { DIALOG_DATA, DialogRef, Dialog, DialogModule } from '@angular/cdk/dialog';
7
6
  import { CdkDrag, CdkDragHandle, DragDropModule } from '@angular/cdk/drag-drop';
8
7
  import { AsyncPipe, CommonModule } from '@angular/common';
9
8
  import * as i0 from '@angular/core';
10
- import { inject, HostBinding, ViewEncapsulation, ChangeDetectionStrategy, Component, InjectionToken, Injectable, NgModule } from '@angular/core';
9
+ import { input, ViewEncapsulation, ChangeDetectionStrategy, Component, InjectionToken, inject, Injectable, NgModule } from '@angular/core';
11
10
  import { A11yModule } from '@angular/cdk/a11y';
11
+ import { AXOverlayService } from '@acorex/cdk/overlay';
12
12
  import { AXHtmlUtil } from '@acorex/core/utils';
13
13
  import { AX_GLOBAL_CONFIG } from '@acorex/core/config';
14
14
  import { set } from 'lodash-es';
@@ -20,8 +20,10 @@ import { set } from 'lodash-es';
20
20
  class AXDialogComponent extends MXBaseComponent {
21
21
  constructor() {
22
22
  super(...arguments);
23
- this.data = inject(DIALOG_DATA);
24
- this.dialogRef = inject(DialogRef);
23
+ /** Dialog configuration data */
24
+ this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
25
+ /** @internal Callback function to close the dialog */
26
+ this.onClose = input(...(ngDevMode ? [undefined, { debugName: "onClose" }] : []));
25
27
  }
26
28
  /**
27
29
  * @ignore
@@ -35,14 +37,15 @@ class AXDialogComponent extends MXBaseComponent {
35
37
  * @ignore
36
38
  */
37
39
  _hasAutoFocus(button) {
38
- const autoFocusItem = this.data.buttons.find((item) => item.autofocus === true);
40
+ const buttons = this.data().buttons;
41
+ const autoFocusItem = buttons.find((item) => item.autofocus === true);
39
42
  if (autoFocusItem && autoFocusItem.text === button.text) {
40
43
  return true;
41
44
  }
42
45
  if (!autoFocusItem) {
43
- if (this.data.buttons.length > 0) {
44
- this.data.buttons[0].autofocus = true;
45
- return this.data.buttons[0].text === button.text;
46
+ if (buttons.length > 0) {
47
+ buttons[0].autofocus = true;
48
+ return buttons[0].text === button.text;
46
49
  }
47
50
  }
48
51
  return false;
@@ -53,20 +56,13 @@ class AXDialogComponent extends MXBaseComponent {
53
56
  * @returns void - No return value. The dialog is closed and removed from the DOM.
54
57
  */
55
58
  close() {
56
- this.dialogRef.close();
57
- }
58
- /**
59
- * @ignore
60
- */
61
- get tabIndex() {
62
- return '-1';
63
- }
64
- /** @ignore */
65
- get __hostClass() {
66
- return `ax-${this.data.type}`;
59
+ const closeCallback = this.onClose();
60
+ if (closeCallback) {
61
+ closeCallback();
62
+ }
67
63
  }
68
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXDialogComponent, isStandalone: true, selector: "ax-dialog", host: { properties: { "attr.tabIndex": "this.tabIndex", "class": "this.__hostClass" } }, providers: [
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXDialogComponent, isStandalone: true, selector: "ax-dialog", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, onClose: { classPropertyName: "onClose", publicName: "onClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabIndex": "\"-1\"", "class": "\"ax-\" + data().type" } }, providers: [
70
66
  {
71
67
  provide: AXClosableComponent,
72
68
  useExisting: AXDialogComponent,
@@ -75,11 +71,14 @@ class AXDialogComponent extends MXBaseComponent {
75
71
  provide: AXComponent,
76
72
  useExisting: AXDialogComponent,
77
73
  },
78
- ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-dialog ax-orientation-{{ data.orientation }}\"\n tabindex=\"-1\"\n cdkDrag\n cdkDragHandle\n [cdkDragDisabled]=\"!data.draggable\"\n>\n <div class=\"ax-dialog-content-wrapper\">\n @if (data.icon !== 'none') {\n <div class=\"ax-dialog-icon-side\">\n <i class=\"ax-dialog-icon {{ data.icon }}\"></i>\n </div>\n }\n <div class=\"ax-dialog-content-side\">\n <div class=\"ax-dialog-title\">{{ data.title | translate | async }}</div>\n <div class=\"ax-dialog-content\">{{ data.content | translate | async }}</div>\n </div>\n <div class=\"ax-dialog-dismiss-icon\">\n @if (data.closeButton) {\n <i class=\"ax-icon ax-icon-close\"></i>\n }\n </div>\n </div>\n\n <ax-footer>\n @for (button of data.buttons; let i = $index; track i) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"i\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </ax-footer>\n</div>\n", styles: ["ax-dialog.ax-primary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-primary-surface)}ax-dialog.ax-secondary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-secondary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-secondary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-secondary-surface)}ax-dialog.ax-success{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-success-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-success-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-success-surface)}ax-dialog.ax-warning{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-warning-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-warning-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-warning-surface)}ax-dialog.ax-danger{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-danger-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-danger-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-danger-surface)}ax-dialog.ax-accent1{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent1-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent1-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent1-surface)}ax-dialog.ax-accent2{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent2-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent2-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent2-surface)}ax-dialog.ax-accent3{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent3-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent3-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent3-surface)}ax-dialog.ax-accent4{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent4-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent4-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent4-surface)}ax-dialog.ax-accent5{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent5-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent5-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent5-surface)}ax-dialog.ax-accent6{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent6-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent6-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent6-surface)}ax-dialog.ax-accent7{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent7-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent7-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent7-surface)}.ax-dialog{position:relative;display:flex;width:93vw;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));outline:2px solid transparent;outline-offset:2px}@media (min-width: 768px){.ax-dialog{width:75vw}}@media (min-width: 1024px){.ax-dialog{width:50vw}}@media (min-width: 1280px){.ax-dialog{width:35vw}}@media (min-width: 1536px){.ax-dialog{width:25vw}}.ax-dialog.ax-orientation-horizontal .ax-dialog-content-wrapper{flex-direction:row}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper{flex-direction:column;align-items:center}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-icon-side{margin-bottom:1rem}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-content-side{margin:0;text-align:center}.ax-dialog.ax-orientation-vertical ax-footer ax-button{flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper{display:flex;gap:.5rem;padding:1.5rem 1.5rem 1rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-icon-side .ax-dialog-icon{background-color:rgba(var(--ax-comp-dialog-icon-bg-color));color:rgba(var(--ax-comp-dialog-icon-text-color));border-width:1px;border-color:rgba(var(--ax-comp-dialog-border-color));border-style:solid;display:flex;height:3rem;width:3rem;cursor:move;align-items:center;justify-content:center;border-radius:9999px;font-size:1.5rem;line-height:2rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side{margin-inline-start:1rem;flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.5rem;font-weight:500}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-content{font-size:.875rem;line-height:1.25rem}.ax-dialog ax-footer{justify-content:flex-end;padding:.75rem 1.5rem}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: 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" }, { 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: "directive", type: AXHotkeyDirective, selector: "[axHotkey]", inputs: ["axHotkey"] }, { kind: "directive", type: AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
74
+ ], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-dialog ax-orientation-{{ data().orientation }}\"\n tabindex=\"-1\"\n cdkDrag\n cdkDragHandle\n [cdkDragDisabled]=\"!data().draggable\"\n>\n <div class=\"ax-dialog-content-wrapper\">\n @if (data().icon !== 'none') {\n <div class=\"ax-dialog-icon-side\">\n <i class=\"ax-dialog-icon {{ data().icon }}\"></i>\n </div>\n }\n <div class=\"ax-dialog-content-side\">\n <div class=\"ax-dialog-title\">{{ data().title | translate | async }}</div>\n <div class=\"ax-dialog-content\">{{ data().content | translate | async }}</div>\n </div>\n <div class=\"ax-dialog-dismiss-icon\">\n @if (data().closeButton) {\n <i class=\"ax-icon ax-icon-close\"></i>\n }\n </div>\n </div>\n\n <ax-footer>\n @for (button of data().buttons; let i = $index; track i) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"i\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </ax-footer>\n</div>\n", styles: ["ax-dialog.ax-primary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-primary-surface)}ax-dialog.ax-secondary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-secondary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-secondary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-secondary-surface)}ax-dialog.ax-success{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-success-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-success-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-success-surface)}ax-dialog.ax-warning{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-warning-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-warning-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-warning-surface)}ax-dialog.ax-danger{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-danger-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-danger-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-danger-surface)}ax-dialog.ax-accent1{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent1-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent1-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent1-surface)}ax-dialog.ax-accent2{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent2-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent2-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent2-surface)}ax-dialog.ax-accent3{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent3-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent3-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent3-surface)}ax-dialog.ax-accent4{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent4-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent4-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent4-surface)}ax-dialog.ax-accent5{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent5-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent5-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent5-surface)}ax-dialog.ax-accent6{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent6-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent6-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent6-surface)}ax-dialog.ax-accent7{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent7-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent7-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent7-surface)}.ax-dialog{position:relative;display:flex;width:93vw;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));outline:2px solid transparent;outline-offset:2px}@media (min-width: 768px){.ax-dialog{width:75vw}}@media (min-width: 1024px){.ax-dialog{width:50vw}}@media (min-width: 1280px){.ax-dialog{width:35vw}}@media (min-width: 1536px){.ax-dialog{width:25vw}}.ax-dialog.ax-orientation-horizontal .ax-dialog-content-wrapper{flex-direction:row}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper{flex-direction:column;align-items:center}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-icon-side{margin-bottom:1rem}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-content-side{margin:0;text-align:center}.ax-dialog.ax-orientation-vertical ax-footer ax-button{flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper{display:flex;gap:.5rem;padding:1.5rem 1.5rem 1rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-icon-side .ax-dialog-icon{background-color:rgba(var(--ax-comp-dialog-icon-bg-color));color:rgba(var(--ax-comp-dialog-icon-text-color));border-width:1px;border-color:rgba(var(--ax-comp-dialog-border-color));border-style:solid;display:flex;height:3rem;width:3rem;cursor:move;align-items:center;justify-content:center;border-radius:9999px;font-size:1.5rem;line-height:2rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side{margin-inline-start:1rem;flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.5rem;font-weight:500}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-content{font-size:.875rem;line-height:1.25rem}.ax-dialog ax-footer{justify-content:flex-end;padding:.75rem 1.5rem}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: 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" }, { 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: "directive", type: AXHotkeyDirective, selector: "[axHotkey]", inputs: ["axHotkey"] }, { kind: "directive", type: AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
79
75
  }
80
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXDialogComponent, decorators: [{
81
77
  type: Component,
82
- args: [{ selector: 'ax-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
78
+ args: [{ selector: 'ax-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
79
+ '[attr.tabIndex]': '"-1"',
80
+ '[class]': '"ax-" + data().type',
81
+ }, providers: [
83
82
  {
84
83
  provide: AXClosableComponent,
85
84
  useExisting: AXDialogComponent,
@@ -98,14 +97,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
98
97
  AXLoadingComponent,
99
98
  AsyncPipe,
100
99
  AXTranslatorPipe,
101
- ], template: "<div\n class=\"ax-dialog ax-orientation-{{ data.orientation }}\"\n tabindex=\"-1\"\n cdkDrag\n cdkDragHandle\n [cdkDragDisabled]=\"!data.draggable\"\n>\n <div class=\"ax-dialog-content-wrapper\">\n @if (data.icon !== 'none') {\n <div class=\"ax-dialog-icon-side\">\n <i class=\"ax-dialog-icon {{ data.icon }}\"></i>\n </div>\n }\n <div class=\"ax-dialog-content-side\">\n <div class=\"ax-dialog-title\">{{ data.title | translate | async }}</div>\n <div class=\"ax-dialog-content\">{{ data.content | translate | async }}</div>\n </div>\n <div class=\"ax-dialog-dismiss-icon\">\n @if (data.closeButton) {\n <i class=\"ax-icon ax-icon-close\"></i>\n }\n </div>\n </div>\n\n <ax-footer>\n @for (button of data.buttons; let i = $index; track i) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"i\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </ax-footer>\n</div>\n", styles: ["ax-dialog.ax-primary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-primary-surface)}ax-dialog.ax-secondary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-secondary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-secondary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-secondary-surface)}ax-dialog.ax-success{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-success-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-success-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-success-surface)}ax-dialog.ax-warning{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-warning-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-warning-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-warning-surface)}ax-dialog.ax-danger{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-danger-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-danger-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-danger-surface)}ax-dialog.ax-accent1{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent1-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent1-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent1-surface)}ax-dialog.ax-accent2{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent2-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent2-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent2-surface)}ax-dialog.ax-accent3{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent3-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent3-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent3-surface)}ax-dialog.ax-accent4{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent4-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent4-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent4-surface)}ax-dialog.ax-accent5{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent5-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent5-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent5-surface)}ax-dialog.ax-accent6{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent6-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent6-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent6-surface)}ax-dialog.ax-accent7{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent7-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent7-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent7-surface)}.ax-dialog{position:relative;display:flex;width:93vw;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));outline:2px solid transparent;outline-offset:2px}@media (min-width: 768px){.ax-dialog{width:75vw}}@media (min-width: 1024px){.ax-dialog{width:50vw}}@media (min-width: 1280px){.ax-dialog{width:35vw}}@media (min-width: 1536px){.ax-dialog{width:25vw}}.ax-dialog.ax-orientation-horizontal .ax-dialog-content-wrapper{flex-direction:row}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper{flex-direction:column;align-items:center}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-icon-side{margin-bottom:1rem}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-content-side{margin:0;text-align:center}.ax-dialog.ax-orientation-vertical ax-footer ax-button{flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper{display:flex;gap:.5rem;padding:1.5rem 1.5rem 1rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-icon-side .ax-dialog-icon{background-color:rgba(var(--ax-comp-dialog-icon-bg-color));color:rgba(var(--ax-comp-dialog-icon-text-color));border-width:1px;border-color:rgba(var(--ax-comp-dialog-border-color));border-style:solid;display:flex;height:3rem;width:3rem;cursor:move;align-items:center;justify-content:center;border-radius:9999px;font-size:1.5rem;line-height:2rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side{margin-inline-start:1rem;flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.5rem;font-weight:500}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-content{font-size:.875rem;line-height:1.25rem}.ax-dialog ax-footer{justify-content:flex-end;padding:.75rem 1.5rem}\n"] }]
102
- }], propDecorators: { tabIndex: [{
103
- type: HostBinding,
104
- args: ['attr.tabIndex']
105
- }], __hostClass: [{
106
- type: HostBinding,
107
- args: ['class']
108
- }] } });
100
+ ], template: "<div\n class=\"ax-dialog ax-orientation-{{ data().orientation }}\"\n tabindex=\"-1\"\n cdkDrag\n cdkDragHandle\n [cdkDragDisabled]=\"!data().draggable\"\n>\n <div class=\"ax-dialog-content-wrapper\">\n @if (data().icon !== 'none') {\n <div class=\"ax-dialog-icon-side\">\n <i class=\"ax-dialog-icon {{ data().icon }}\"></i>\n </div>\n }\n <div class=\"ax-dialog-content-side\">\n <div class=\"ax-dialog-title\">{{ data().title | translate | async }}</div>\n <div class=\"ax-dialog-content\">{{ data().content | translate | async }}</div>\n </div>\n <div class=\"ax-dialog-dismiss-icon\">\n @if (data().closeButton) {\n <i class=\"ax-icon ax-icon-close\"></i>\n }\n </div>\n </div>\n\n <ax-footer>\n @for (button of data().buttons; let i = $index; track i) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"i\"\n [axHotkey]=\"button.hotkey\"\n [axAutoFocus]=\"_hasAutoFocus(button)\"\n (onClick)=\"_handleButtonClick(button)\"\n [look]=\"button.look\"\n [disabled]=\"button.disabled\"\n [color]=\"button.color\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </ax-footer>\n</div>\n", styles: ["ax-dialog.ax-primary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-primary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-primary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-primary-surface)}ax-dialog.ax-secondary{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-secondary-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-secondary-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-secondary-surface)}ax-dialog.ax-success{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-success-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-success-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-success-surface)}ax-dialog.ax-warning{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-warning-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-warning-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-warning-surface)}ax-dialog.ax-danger{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-danger-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-danger-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-danger-surface)}ax-dialog.ax-accent1{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent1-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent1-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent1-surface)}ax-dialog.ax-accent2{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent2-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent2-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent2-surface)}ax-dialog.ax-accent3{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent3-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent3-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent3-surface)}ax-dialog.ax-accent4{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent4-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent4-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent4-surface)}ax-dialog.ax-accent5{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent5-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent5-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent5-surface)}ax-dialog.ax-accent6{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent6-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent6-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent6-surface)}ax-dialog.ax-accent7{--ax-comp-dialog-icon-bg-color: var(--ax-sys-color-accent7-surface);--ax-comp-dialog-icon-text-color: var(--ax-sys-color-on-accent7-surface);--ax-comp-dialog-border-color: var(--ax-sys-color-border-accent7-surface)}.ax-dialog{position:relative;display:flex;width:93vw;flex-direction:column;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));color:rgba(var(--ax-sys-color-on-lightest-surface));outline:2px solid transparent;outline-offset:2px}@media (min-width: 768px){.ax-dialog{width:75vw}}@media (min-width: 1024px){.ax-dialog{width:50vw}}@media (min-width: 1280px){.ax-dialog{width:35vw}}@media (min-width: 1536px){.ax-dialog{width:25vw}}.ax-dialog.ax-orientation-horizontal .ax-dialog-content-wrapper{flex-direction:row}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper{flex-direction:column;align-items:center}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-icon-side{margin-bottom:1rem}.ax-dialog.ax-orientation-vertical .ax-dialog-content-wrapper .ax-dialog-content-side{margin:0;text-align:center}.ax-dialog.ax-orientation-vertical ax-footer ax-button{flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper{display:flex;gap:.5rem;padding:1.5rem 1.5rem 1rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-icon-side .ax-dialog-icon{background-color:rgba(var(--ax-comp-dialog-icon-bg-color));color:rgba(var(--ax-comp-dialog-icon-text-color));border-width:1px;border-color:rgba(var(--ax-comp-dialog-border-color));border-style:solid;display:flex;height:3rem;width:3rem;cursor:move;align-items:center;justify-content:center;border-radius:9999px;font-size:1.5rem;line-height:2rem}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side{margin-inline-start:1rem;flex:1 1 0%}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.5rem;font-weight:500}.ax-dialog .ax-dialog-content-wrapper .ax-dialog-content-side .ax-dialog-content{font-size:.875rem;line-height:1.25rem}.ax-dialog ax-footer{justify-content:flex-end;padding:.75rem 1.5rem}\n"] }]
101
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], onClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "onClose", required: false }] }] } });
109
102
 
110
103
  const AX_DIALOG_CONFIG = new InjectionToken('AX_DIALOG_CONFIG', {
111
104
  providedIn: 'root',
@@ -133,7 +126,7 @@ function dialogConfig(config = {}) {
133
126
  */
134
127
  class AXDialogService {
135
128
  constructor() {
136
- this.dialog = inject(Dialog);
129
+ this.overlayService = inject(AXOverlayService);
137
130
  this.defaultConfig = inject(AX_DIALOG_CONFIG);
138
131
  }
139
132
  detectIcon(type) {
@@ -294,21 +287,51 @@ class AXDialogService {
294
287
  open(config) {
295
288
  config.orientation = config.orientation || 'horizontal';
296
289
  config.icon = config.icon ?? this.detectIcon(config.type);
297
- const dialogRef = this.dialog.open(AXDialogComponent, {
298
- data: config,
299
- role: 'alertdialog',
300
- ariaModal: true,
301
- restoreFocus: true,
302
- closeOnNavigation: true,
303
- closeOnDestroy: true,
304
- hasBackdrop: true,
305
- disableClose: true,
306
- panelClass: ['ax-animate-bounceIn', 'ax-animate-faster'],
307
- direction: config.direction ? config.direction : AXHtmlUtil.isRtl() ? 'rtl' : 'ltr',
290
+ const dialogData = {
291
+ title: config.title,
292
+ content: config.content,
293
+ type: config.type,
294
+ buttons: config.buttons,
295
+ closeButton: config.closeButton ?? false,
296
+ orientation: config.orientation,
297
+ icon: config.icon,
298
+ draggable: config.draggable,
299
+ };
300
+ let internalRef;
301
+ const closeDialog = () => {
302
+ if (internalRef) {
303
+ internalRef.overlayRef.dispose();
304
+ }
305
+ };
306
+ this.overlayService
307
+ .create(AXDialogComponent, {
308
+ inputs: {
309
+ data: dialogData,
310
+ onClose: closeDialog,
311
+ },
312
+ backdrop: {
313
+ enabled: true,
314
+ background: true,
315
+ closeOnClick: false, // disableClose: true equivalent
316
+ },
317
+ panelClass: ['ax-dialog-panel', 'ax-animate-bounceIn', 'ax-animate-faster'],
318
+ })
319
+ .then((overlayRef) => {
320
+ internalRef = {
321
+ overlayRef,
322
+ close: closeDialog,
323
+ };
324
+ // Apply direction if specified
325
+ if (config.direction || AXHtmlUtil.isRtl()) {
326
+ const dir = config.direction ? config.direction : AXHtmlUtil.isRtl() ? 'rtl' : 'ltr';
327
+ if (overlayRef.overlayElement) {
328
+ overlayRef.overlayElement.setAttribute('dir', dir);
329
+ }
330
+ }
308
331
  });
309
332
  return {
310
333
  close: () => {
311
- dialogRef.componentInstance?.close();
334
+ closeDialog();
312
335
  },
313
336
  };
314
337
  }
@@ -328,7 +351,6 @@ const MODULES = [
328
351
  AXButtonModule,
329
352
  AXDecoratorModule,
330
353
  AXLoadingModule,
331
- DialogModule,
332
354
  AXTranslationModule,
333
355
  ];
334
356
  class AXDialogModule {
@@ -340,7 +362,6 @@ class AXDialogModule {
340
362
  AXButtonModule,
341
363
  AXDecoratorModule,
342
364
  AXLoadingModule,
343
- DialogModule,
344
365
  AXTranslationModule, AXDialogComponent], exports: [AXDialogComponent] }); }
345
366
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXDialogModule, providers: [AXDialogService, AXHotkeysService], imports: [MODULES, COMPONENT] }); }
346
367
  }