@acorex/components 19.10.0-next.9 → 19.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. package/common/lib/classes/styles.class.d.ts +1 -0
  2. package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +1 -1
  3. package/decorators/lib/components/heading/heading.component.d.ts +10 -2
  4. package/decorators/lib/components/icon/icon.component.d.ts +1 -1
  5. package/fesm2022/acorex-components-action-sheet.mjs +2 -2
  6. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  7. package/fesm2022/acorex-components-button.mjs +4 -4
  8. package/fesm2022/acorex-components-button.mjs.map +1 -1
  9. package/fesm2022/acorex-components-check-box.mjs +2 -2
  10. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  11. package/fesm2022/acorex-components-collapse.mjs +4 -4
  12. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  13. package/fesm2022/acorex-components-color-palette.mjs +2 -2
  14. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  15. package/fesm2022/acorex-components-comment.mjs +2 -2
  16. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  17. package/fesm2022/acorex-components-common.mjs.map +1 -1
  18. package/fesm2022/acorex-components-conversation.mjs +2 -2
  19. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  20. package/fesm2022/acorex-components-cron-job.mjs +20 -18
  21. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  22. package/fesm2022/acorex-components-data-pager.mjs +14 -75
  23. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  24. package/fesm2022/acorex-components-data-table.mjs +4 -4
  25. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  26. package/fesm2022/acorex-components-decorators.mjs +23 -9
  27. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  28. package/fesm2022/acorex-components-drawer.mjs +2 -2
  29. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  30. package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
  31. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  32. package/fesm2022/acorex-components-file-explorer.mjs +5 -6
  33. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  34. package/fesm2022/acorex-components-form.mjs +9 -3
  35. package/fesm2022/acorex-components-form.mjs.map +1 -1
  36. package/fesm2022/acorex-components-image-editor.mjs +4 -4
  37. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  38. package/fesm2022/acorex-components-kbd.mjs +2 -2
  39. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  40. package/fesm2022/acorex-components-list.mjs +2 -2
  41. package/fesm2022/acorex-components-list.mjs.map +1 -1
  42. package/fesm2022/acorex-components-menu.mjs +4 -4
  43. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  44. package/fesm2022/acorex-components-number-box.mjs +6 -16
  45. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  46. package/fesm2022/acorex-components-otp.mjs +2 -2
  47. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  48. package/fesm2022/acorex-components-paint.mjs +6 -6
  49. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  50. package/fesm2022/acorex-components-password-box.mjs +4 -4
  51. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  52. package/fesm2022/acorex-components-phone-box.mjs +2 -2
  53. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  54. package/fesm2022/acorex-components-picker.mjs +2 -2
  55. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  56. package/fesm2022/acorex-components-popup.mjs +4 -2
  57. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  58. package/fesm2022/acorex-components-progress-bar.mjs +2 -2
  59. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  60. package/fesm2022/acorex-components-query-builder.mjs +2 -2
  61. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  62. package/fesm2022/acorex-components-range-slider.mjs +2 -2
  63. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  64. package/fesm2022/acorex-components-select-box.mjs +2 -2
  65. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  66. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  67. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  68. package/fesm2022/acorex-components-slider.mjs +2 -2
  69. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  70. package/fesm2022/acorex-components-sliding-item.mjs +8 -0
  71. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  72. package/fesm2022/acorex-components-tabs.mjs +2 -2
  73. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  74. package/fesm2022/acorex-components-text-area.mjs +2 -2
  75. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  76. package/fesm2022/acorex-components-text-box.mjs +2 -2
  77. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  78. package/fesm2022/acorex-components-tree-view.mjs +2 -2
  79. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  80. package/fesm2022/acorex-components-uploader.mjs +6 -6
  81. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  82. package/fesm2022/acorex-components-wysiwyg.mjs +4 -4
  83. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  84. package/number-box/lib/number-box.component.d.ts +1 -1
  85. package/package.json +1 -1
  86. package/popup/lib/popup.interface.d.ts +1 -0
  87. package/tabs/lib/tabs.class.d.ts +1 -1
@@ -9,3 +9,4 @@ export type AXSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
9
9
  export type AXStyleSizeType = `ax-${AXSizeType}`;
10
10
  export type AXLocation = 'bottom-start' | 'bottom-center' | 'bottom-end' | 'top-start' | 'top-center' | 'top-end' | 'center-end' | 'center-start';
11
11
  export declare const AX_LOCATIONS: AXLocation[];
12
+ export type AXSurfaceType = 'lightest' | 'lighter' | 'light' | 'surface' | 'dark' | 'darker' | 'darkest';
@@ -17,12 +17,12 @@ export declare class AXCronJobContainerComponent extends MXInputBaseValueCompone
17
17
  protected yearService: YearService;
18
18
  protected tabComponent: import("@angular/core").Signal<AXTabsComponent>;
19
19
  protected activeTab: import("@angular/core").WritableSignal<string>;
20
+ private onGetModelFired;
20
21
  protected options: import("@angular/core").WritableSignal<{
21
22
  fit: boolean;
22
23
  look: AXTabLook;
23
24
  location: AXTabLocation;
24
25
  }>;
25
- onGetModelFired: import("@angular/core").WritableSignal<boolean>;
26
26
  onGetModel(): void;
27
27
  protected internalValueChanged(cronExpressionPattern: string): void;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<AXCronJobContainerComponent, never>;
@@ -1,11 +1,19 @@
1
- import { MXBaseComponent } from '@acorex/components/common';
1
+ import { AXSurfaceType, MXBaseComponent } from '@acorex/components/common';
2
2
  import * as i0 from "@angular/core";
3
+ type AXHeadingSize = '2xl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';
4
+ type AXHeadingWeight = 'regular' | 'medium' | 'semibold' | 'bold';
3
5
  /**
4
6
  * A button component that displays a close icon and triggers an action when clicked.
5
7
  *
6
8
  * @category Components
7
9
  */
8
10
  export declare class AXDecoratorHeadingComponent extends MXBaseComponent {
11
+ darkMode: import("@angular/core").InputSignal<boolean>;
12
+ size: import("@angular/core").InputSignal<AXHeadingSize>;
13
+ color: import("@angular/core").InputSignal<AXSurfaceType>;
14
+ weight: import("@angular/core").InputSignal<AXHeadingWeight>;
15
+ private get __hostClass();
9
16
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDecoratorHeadingComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDecoratorHeadingComponent, "ax-heading", never, {}, {}, never, ["ax-title, ax-subtitle"], false, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDecoratorHeadingComponent, "ax-heading", never, { "darkMode": { "alias": "darkMode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "weight": { "alias": "weight"; "required": false; "isSignal": true; }; }, {}, never, ["ax-title, ax-subtitle"], false, never>;
11
18
  }
19
+ export {};
@@ -16,5 +16,5 @@ export declare class AXDecoratorIconComponent extends MXBaseComponent {
16
16
  */
17
17
  private get __iconClass();
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDecoratorIconComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDecoratorIconComponent, "ax-icon", never, { "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["i,span,svg,img"], false, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDecoratorIconComponent, "ax-icon", never, { "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["*"], false, never>;
20
20
  }
@@ -306,7 +306,7 @@ class AXActionSheetComponent extends MXBaseComponent {
306
306
  provide: AXFocusableComponent,
307
307
  useExisting: AXActionSheetComponent,
308
308
  },
309
- ], usesInheritance: true, ngImport: i0, template: "@if (data.draggable) {\n <div\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchDown($event)\"\n class=\"ax-drag-handle-container\"\n >\n <div class=\"ax-drag-handle\"></div>\n </div>\n}\n@if (data.header) {\n <ax-header\n [class.draggable-header]=\"data.draggable\"\n (mousedown)=\"data.draggable ? handleMouseDown($event) : null\"\n (touchstart)=\"data.draggable ? handleTouchDown($event) : null\"\n >\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-subtitle>\n {{ data.subTitle }}\n </ax-subtitle>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-{{ item.color || 'ghost' }}\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet .ax-action-item.ax-primary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-primary-surface)}ax-action-sheet .ax-action-item.ax-secondary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-secondary-surface)}ax-action-sheet .ax-action-item.ax-success{--ax-comp-action-sheet-text-color: var(--ax-sys-color-success-surface)}ax-action-sheet .ax-action-item.ax-warning{--ax-comp-action-sheet-text-color: var(--ax-sys-color-warning-surface)}ax-action-sheet .ax-action-item.ax-danger{--ax-comp-action-sheet-text-color: var(--ax-sys-color-danger-surface)}ax-action-sheet{display:block;width:100vw;position:relative;transition-property:height;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function);background-color:rgba(var(--ax-sys-color-lightest-surface))}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-drag-handle-container{padding-top:.5rem}ax-action-sheet .ax-drag-handle-container .ax-drag-handle{height:.375rem;width:3rem;margin:auto;border-radius:.5rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header.draggable-header{padding-top:0;-webkit-user-select:none;user-select:none}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important;color:rgba(var(--ax-comp-action-sheet-text-color))}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "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" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
309
+ ], usesInheritance: true, ngImport: i0, template: "@if (data.draggable) {\n <div (mousedown)=\"handleMouseDown($event)\" (touchstart)=\"handleTouchDown($event)\" class=\"ax-drag-handle-container\">\n <div class=\"ax-drag-handle\"></div>\n </div>\n}\n@if (data.header) {\n <ax-header\n [class.draggable-header]=\"data.draggable\"\n (mousedown)=\"data.draggable ? handleMouseDown($event) : null\"\n (touchstart)=\"data.draggable ? handleTouchDown($event) : null\"\n >\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-subtitle>\n {{ data.subTitle }}\n </ax-subtitle>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div class=\"ax-action-item ax-{{ item.color || 'default' }}\" [class.ax-state-disabled]=\"item.disabled\" [tabindex]=\"i\" (click)=\"onItemClick(item)\">\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{--ax-comp-action-sheet-bg-color: var(--ax-sys-color-lightest-surface)}ax-action-sheet .ax-action-item.ax-primary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-primary-surface)}ax-action-sheet .ax-action-item.ax-secondary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-secondary-surface)}ax-action-sheet .ax-action-item.ax-success{--ax-comp-action-sheet-text-color: var(--ax-sys-color-success-surface)}ax-action-sheet .ax-action-item.ax-warning{--ax-comp-action-sheet-text-color: var(--ax-sys-color-warning-surface)}ax-action-sheet .ax-action-item.ax-danger{--ax-comp-action-sheet-text-color: var(--ax-sys-color-danger-surface)}ax-action-sheet{display:block;width:100vw;position:relative;transition-property:height;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function);background-color:rgba(var(--ax-comp-action-sheet-bg-color))}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-drag-handle-container{padding-top:.5rem}ax-action-sheet .ax-drag-handle-container .ax-drag-handle{height:.375rem;width:3rem;margin:auto;border-radius:.5rem;background-color:rgba(var(--ax-sys-color-surface))}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header.draggable-header{padding-top:0;-webkit-user-select:none;user-select:none}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important;color:rgba(var(--ax-comp-action-sheet-text-color))}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}.ax-dark ax-action-sheet{--ax-comp-action-sheet-bg-color: var(--ax-sys-color-darker-surface)}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "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" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
310
310
  }
311
311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXActionSheetComponent, decorators: [{
312
312
  type: Component,
@@ -319,7 +319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
319
319
  provide: AXFocusableComponent,
320
320
  useExisting: AXActionSheetComponent,
321
321
  },
322
- ], standalone: false, template: "@if (data.draggable) {\n <div\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchDown($event)\"\n class=\"ax-drag-handle-container\"\n >\n <div class=\"ax-drag-handle\"></div>\n </div>\n}\n@if (data.header) {\n <ax-header\n [class.draggable-header]=\"data.draggable\"\n (mousedown)=\"data.draggable ? handleMouseDown($event) : null\"\n (touchstart)=\"data.draggable ? handleTouchDown($event) : null\"\n >\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-subtitle>\n {{ data.subTitle }}\n </ax-subtitle>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-{{ item.color || 'ghost' }}\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet .ax-action-item.ax-primary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-primary-surface)}ax-action-sheet .ax-action-item.ax-secondary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-secondary-surface)}ax-action-sheet .ax-action-item.ax-success{--ax-comp-action-sheet-text-color: var(--ax-sys-color-success-surface)}ax-action-sheet .ax-action-item.ax-warning{--ax-comp-action-sheet-text-color: var(--ax-sys-color-warning-surface)}ax-action-sheet .ax-action-item.ax-danger{--ax-comp-action-sheet-text-color: var(--ax-sys-color-danger-surface)}ax-action-sheet{display:block;width:100vw;position:relative;transition-property:height;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function);background-color:rgba(var(--ax-sys-color-lightest-surface))}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-drag-handle-container{padding-top:.5rem}ax-action-sheet .ax-drag-handle-container .ax-drag-handle{height:.375rem;width:3rem;margin:auto;border-radius:.5rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header.draggable-header{padding-top:0;-webkit-user-select:none;user-select:none}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important;color:rgba(var(--ax-comp-action-sheet-text-color))}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"] }]
322
+ ], standalone: false, template: "@if (data.draggable) {\n <div (mousedown)=\"handleMouseDown($event)\" (touchstart)=\"handleTouchDown($event)\" class=\"ax-drag-handle-container\">\n <div class=\"ax-drag-handle\"></div>\n </div>\n}\n@if (data.header) {\n <ax-header\n [class.draggable-header]=\"data.draggable\"\n (mousedown)=\"data.draggable ? handleMouseDown($event) : null\"\n (touchstart)=\"data.draggable ? handleTouchDown($event) : null\"\n >\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-subtitle>\n {{ data.subTitle }}\n </ax-subtitle>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div class=\"ax-action-item ax-{{ item.color || 'default' }}\" [class.ax-state-disabled]=\"item.disabled\" [tabindex]=\"i\" (click)=\"onItemClick(item)\">\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{--ax-comp-action-sheet-bg-color: var(--ax-sys-color-lightest-surface)}ax-action-sheet .ax-action-item.ax-primary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-primary-surface)}ax-action-sheet .ax-action-item.ax-secondary{--ax-comp-action-sheet-text-color: var(--ax-sys-color-secondary-surface)}ax-action-sheet .ax-action-item.ax-success{--ax-comp-action-sheet-text-color: var(--ax-sys-color-success-surface)}ax-action-sheet .ax-action-item.ax-warning{--ax-comp-action-sheet-text-color: var(--ax-sys-color-warning-surface)}ax-action-sheet .ax-action-item.ax-danger{--ax-comp-action-sheet-text-color: var(--ax-sys-color-danger-surface)}ax-action-sheet{display:block;width:100vw;position:relative;transition-property:height;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function);background-color:rgba(var(--ax-comp-action-sheet-bg-color))}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-drag-handle-container{padding-top:.5rem}ax-action-sheet .ax-drag-handle-container .ax-drag-handle{height:.375rem;width:3rem;margin:auto;border-radius:.5rem;background-color:rgba(var(--ax-sys-color-surface))}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header.draggable-header{padding-top:0;-webkit-user-select:none;user-select:none}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important;color:rgba(var(--ax-comp-action-sheet-text-color))}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}.ax-dark ax-action-sheet{--ax-comp-action-sheet-bg-color: var(--ax-sys-color-darker-surface)}\n"] }]
323
323
  }], ctorParameters: () => [{ type: undefined, decorators: [{
324
324
  type: Inject,
325
325
  args: [DIALOG_DATA]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-action-sheet.mjs","sources":["../../../../libs/components/action-sheet/src/lib/action-sheet.service.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.component.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.component.html","../../../../libs/components/action-sheet/src/lib/action-sheet.module.ts","../../../../libs/components/action-sheet/src/acorex-components-action-sheet.ts"],"sourcesContent":["import { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXActionSheetConfig, AXActionSheetEvent } from './action-sheet.class';\nimport { AXActionSheetComponent } from './action-sheet.component';\n\nexport interface AXActionSheetDialogRef {\n close: (e?) => void;\n closed: Subject<any>;\n}\n\n@Injectable()\nexport class AXActionSheetService {\n private dialog: Dialog = inject(Dialog);\n private readonly actionSheetEvent = new Subject<AXActionSheetEvent>();\n actionSheetEvent$ = this.actionSheetEvent.asObservable();\n\n open(config: AXActionSheetConfig, isUserInteraction = true): Promise<AXActionSheetDialogRef> {\n const defaultConfig: AXActionSheetConfig = {\n title: 'action-sheet.title',\n closeButton: true,\n closeOnBackdropClick: true,\n header: true,\n };\n config = Object.assign(defaultConfig, config);\n\n const dialogRef = this.dialog.open(AXActionSheetComponent, {\n data: config,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: true,\n panelClass: ['ax-action-sheet-panel'],\n disableClose: true,\n positionStrategy: new GlobalPositionStrategy().centerHorizontally().bottom(),\n });\n\n this.actionSheetEvent.next({\n dialogRef,\n data: { state: 'open' },\n isUserInteraction,\n });\n\n if (config.closeOnBackdropClick) {\n dialogRef.backdropClick.subscribe(() => {\n const componentInstance = dialogRef.componentInstance;\n if (componentInstance) {\n componentInstance.close();\n }\n });\n }\n const promise = new Promise<AXActionSheetDialogRef>((resolve) => {\n const closed = new BehaviorSubject<any>(null);\n const axDialogRef: AXActionSheetDialogRef = {\n close: (e) => {\n dialogRef.close(e);\n },\n closed,\n };\n dialogRef.closed.subscribe((c: any) => {\n if (c?.data) {\n closed.next({ data: c.data });\n } else {\n closed.next({});\n }\n });\n if (resolve) {\n resolve(axDialogRef);\n }\n });\n return promise;\n }\n\n setActionSheetEventState(event: AXActionSheetEvent) {\n this.actionSheetEvent.next(event);\n }\n}\n","import {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n AXFocusableComponent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n HostListener,\n inject,\n Inject,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXActionSheetConfig, AXActionSheetItem } from './action-sheet.class';\nimport { AXActionSheetService } from './action-sheet.service';\n\n/**\n * A component for displaying an action sheet, which is a menu that slides up from the bottom of the screen.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-action-sheet',\n templateUrl: './action-sheet.component.html',\n styleUrls: ['./action-sheet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXClosbaleComponent,\n useExisting: AXActionSheetComponent,\n },\n {\n provide: AXFocusableComponent,\n useExisting: AXActionSheetComponent,\n },\n ],\n standalone: false,\n})\nexport class AXActionSheetComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private renderer = inject(Renderer2);\n private actionSheetService = inject(AXActionSheetService);\n\n private onMouseMoveListenerFn = () => undefined;\n private onMouseUpListenerFn = () => undefined;\n private onTouchMoveListenerFn = () => undefined;\n private onTouchUpListenerFn = () => undefined;\n\n private isDragging = signal(false);\n private curserOffset = signal(0);\n private actionSheetHeight = signal(0);\n private isActionSheetHeightSet = signal(false);\n private transitionDuration = signal(300);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n private _componentRef: unknown;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n protected data: AXActionSheetConfig,\n private dialogRef: DialogRef<AXComponentCloseEvent>,\n ) {\n super();\n }\n\n /**\n * @ignore\n */\n override ngOnInit(): void {\n super.ngOnInit();\n if (this.data.content) {\n if (this.data.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(this.data.content, this.getViewContainer(), {\n $implicit: this.data,\n ref: this,\n });\n this.cdr.markForCheck();\n } else if (typeof this.data.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.data.content);\n this.cdr.markForCheck();\n }\n }\n if (isPlatformBrowser(this.platformID) && this.data.draggable) {\n this.onMouseMoveListenerFn = this.renderer.listen(this.document, 'mousemove', (e) => {\n if (this.isDragging()) {\n e.preventDefault();\n this.getHostElement().style.height = `${this.heightCalculator(e.clientY) + this.curserOffset()}px`;\n }\n });\n this.onTouchMoveListenerFn = this.renderer.listen(this.document, 'touchmove', (e) => {\n if (this.isDragging()) {\n e.preventDefault();\n this.getHostElement().style.height = `${this.heightCalculator(e.touches[0].clientY) + this.curserOffset()}px`;\n }\n });\n this.onMouseUpListenerFn = this.renderer.listen(this.document, 'mouseup', (e) => {\n if (this.isDragging()) {\n this.isDragging.set(false);\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragEnd' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleUp();\n }\n });\n this.onTouchUpListenerFn = this.renderer.listen(this.document, 'touchend', (e) => {\n if (this.isDragging()) {\n this.isDragging.set(false);\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragEnd' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleUp();\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.onMouseMoveListenerFn();\n this.onMouseUpListenerFn();\n this.onTouchMoveListenerFn();\n this.onTouchUpListenerFn();\n }\n\n protected handleMouseDown(e: MouseEvent) {\n if (!this.data.draggable || e.button !== 0) return;\n e.preventDefault();\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragStart' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleDown(e.clientY);\n }\n\n protected handleTouchDown(e: TouchEvent) {\n if (!this.data.draggable || (e.target as HTMLElement).className.includes('close')) return;\n e.preventDefault();\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragStart' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleDown(e.touches[0].clientY);\n }\n\n private handleDown(clientY: number) {\n this.isDragging.set(true);\n this.getHostElement().style.transitionDuration = '0ms';\n\n if (isPlatformBrowser(this.platformID)) {\n this.curserOffset.set(\n clientY - (this.document.documentElement.clientHeight - this.getHostElement().clientHeight),\n );\n }\n\n if (!this.isActionSheetHeightSet()) {\n this.actionSheetHeight.set(this.getHostElement().clientHeight);\n this.isActionSheetHeightSet.set(true);\n }\n }\n\n private handleUp() {\n this.getHostElement().style.transitionDuration = `${this.transitionDuration()}ms`;\n this.document.body.parentElement.style.overscrollBehaviorY = 'auto';\n\n if (this.getHostElement().clientHeight < this.actionSheetHeight() / 2) {\n this.close(null);\n return;\n }\n if (\n this.getHostElement().clientHeight >\n (this.document.documentElement.clientHeight + this.actionSheetHeight()) / 2 &&\n this.data.dragUp\n ) {\n this.getHostElement().style.height = '100vh';\n this.actionSheetService.setActionSheetEventState({\n data: { state: 'fullScreen' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.document.body.parentElement.style.overscrollBehaviorY = 'contain';\n return;\n }\n this.getHostElement().style.height = this.actionSheetHeight() + 'px';\n this.actionSheetService.setActionSheetEventState({\n data: { state: 'normalSize' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n return;\n }\n\n private heightCalculator(clientY: number): number {\n if (this.data.dragUp) {\n return this.document.documentElement.clientHeight - clientY;\n }\n if (clientY >= this.document.documentElement.clientHeight - this.actionSheetHeight()) {\n return this.document.documentElement.clientHeight - clientY;\n }\n return (\n this.actionSheetHeight() +\n (this.document.documentElement.clientHeight - clientY - this.actionSheetHeight()) / 10\n );\n }\n\n protected handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n this._componentRef = ref.instance;\n Object.assign(this._componentRef, this.data);\n Object.assign(this._componentRef, { _isPopup: true });\n if (ref.instance.onClosed) {\n ref.instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n this.close(e);\n });\n }\n }\n }\n\n onItemClick(item: AXActionSheetItem) {\n this.close(item);\n if (item?.onClick) item.onClick();\n }\n\n close(e = null, isUserInteraction = true) {\n this.getHostElement().style.height = `${this.getHostElement().clientHeight}px`;\n setTimeout(() => {\n this.getHostElement().style.height = '0vh';\n });\n setTimeout(() => {\n this.actionSheetService.setActionSheetEventState({\n data: { state: 'close' },\n isUserInteraction,\n dialogRef: this.dialogRef,\n });\n this.dialogRef.close({\n component: this._componentRef,\n htmlElement: this.getHostElement(),\n data: e,\n });\n }, this.transitionDuration());\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown.escape')\n protected onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.data.closeButton && focusedOrHasFocused) {\n this.close(null);\n }\n }\n}\n","@if (data.draggable) {\n <div\n (mousedown)=\"handleMouseDown($event)\"\n (touchstart)=\"handleTouchDown($event)\"\n class=\"ax-drag-handle-container\"\n >\n <div class=\"ax-drag-handle\"></div>\n </div>\n}\n@if (data.header) {\n <ax-header\n [class.draggable-header]=\"data.draggable\"\n (mousedown)=\"data.draggable ? handleMouseDown($event) : null\"\n (touchstart)=\"data.draggable ? handleTouchDown($event) : null\"\n >\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-subtitle>\n {{ data.subTitle }}\n </ax-subtitle>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-{{ item.color || 'ghost' }}\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { AsyncPipe } from '@angular/common';\nimport { AXActionSheetComponent } from './action-sheet.component';\nimport { AXActionSheetService } from './action-sheet.service';\n\nconst MODULES = [\n AXCommonModule,\n DragDropModule,\n A11yModule,\n AXButtonModule,\n PortalModule,\n AXDecoratorModule,\n AXTranslationModule,\n DialogModule,\n AsyncPipe,\n];\n\n@NgModule({\n declarations: [AXActionSheetComponent],\n imports: [...MODULES],\n exports: [AXActionSheetComponent],\n providers: [AXActionSheetService],\n})\nexport class AXActionSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-action-sheet.mjs","sources":["../../../../libs/components/action-sheet/src/lib/action-sheet.service.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.component.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.component.html","../../../../libs/components/action-sheet/src/lib/action-sheet.module.ts","../../../../libs/components/action-sheet/src/acorex-components-action-sheet.ts"],"sourcesContent":["import { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXActionSheetConfig, AXActionSheetEvent } from './action-sheet.class';\nimport { AXActionSheetComponent } from './action-sheet.component';\n\nexport interface AXActionSheetDialogRef {\n close: (e?) => void;\n closed: Subject<any>;\n}\n\n@Injectable()\nexport class AXActionSheetService {\n private dialog: Dialog = inject(Dialog);\n private readonly actionSheetEvent = new Subject<AXActionSheetEvent>();\n actionSheetEvent$ = this.actionSheetEvent.asObservable();\n\n open(config: AXActionSheetConfig, isUserInteraction = true): Promise<AXActionSheetDialogRef> {\n const defaultConfig: AXActionSheetConfig = {\n title: 'action-sheet.title',\n closeButton: true,\n closeOnBackdropClick: true,\n header: true,\n };\n config = Object.assign(defaultConfig, config);\n\n const dialogRef = this.dialog.open(AXActionSheetComponent, {\n data: config,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: true,\n panelClass: ['ax-action-sheet-panel'],\n disableClose: true,\n positionStrategy: new GlobalPositionStrategy().centerHorizontally().bottom(),\n });\n\n this.actionSheetEvent.next({\n dialogRef,\n data: { state: 'open' },\n isUserInteraction,\n });\n\n if (config.closeOnBackdropClick) {\n dialogRef.backdropClick.subscribe(() => {\n const componentInstance = dialogRef.componentInstance;\n if (componentInstance) {\n componentInstance.close();\n }\n });\n }\n const promise = new Promise<AXActionSheetDialogRef>((resolve) => {\n const closed = new BehaviorSubject<any>(null);\n const axDialogRef: AXActionSheetDialogRef = {\n close: (e) => {\n dialogRef.close(e);\n },\n closed,\n };\n dialogRef.closed.subscribe((c: any) => {\n if (c?.data) {\n closed.next({ data: c.data });\n } else {\n closed.next({});\n }\n });\n if (resolve) {\n resolve(axDialogRef);\n }\n });\n return promise;\n }\n\n setActionSheetEventState(event: AXActionSheetEvent) {\n this.actionSheetEvent.next(event);\n }\n}\n","import {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n AXFocusableComponent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n HostListener,\n inject,\n Inject,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXActionSheetConfig, AXActionSheetItem } from './action-sheet.class';\nimport { AXActionSheetService } from './action-sheet.service';\n\n/**\n * A component for displaying an action sheet, which is a menu that slides up from the bottom of the screen.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-action-sheet',\n templateUrl: './action-sheet.component.html',\n styleUrls: ['./action-sheet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXClosbaleComponent,\n useExisting: AXActionSheetComponent,\n },\n {\n provide: AXFocusableComponent,\n useExisting: AXActionSheetComponent,\n },\n ],\n standalone: false,\n})\nexport class AXActionSheetComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private renderer = inject(Renderer2);\n private actionSheetService = inject(AXActionSheetService);\n\n private onMouseMoveListenerFn = () => undefined;\n private onMouseUpListenerFn = () => undefined;\n private onTouchMoveListenerFn = () => undefined;\n private onTouchUpListenerFn = () => undefined;\n\n private isDragging = signal(false);\n private curserOffset = signal(0);\n private actionSheetHeight = signal(0);\n private isActionSheetHeightSet = signal(false);\n private transitionDuration = signal(300);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n private _componentRef: unknown;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n protected data: AXActionSheetConfig,\n private dialogRef: DialogRef<AXComponentCloseEvent>,\n ) {\n super();\n }\n\n /**\n * @ignore\n */\n override ngOnInit(): void {\n super.ngOnInit();\n if (this.data.content) {\n if (this.data.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(this.data.content, this.getViewContainer(), {\n $implicit: this.data,\n ref: this,\n });\n this.cdr.markForCheck();\n } else if (typeof this.data.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.data.content);\n this.cdr.markForCheck();\n }\n }\n if (isPlatformBrowser(this.platformID) && this.data.draggable) {\n this.onMouseMoveListenerFn = this.renderer.listen(this.document, 'mousemove', (e) => {\n if (this.isDragging()) {\n e.preventDefault();\n this.getHostElement().style.height = `${this.heightCalculator(e.clientY) + this.curserOffset()}px`;\n }\n });\n this.onTouchMoveListenerFn = this.renderer.listen(this.document, 'touchmove', (e) => {\n if (this.isDragging()) {\n e.preventDefault();\n this.getHostElement().style.height = `${this.heightCalculator(e.touches[0].clientY) + this.curserOffset()}px`;\n }\n });\n this.onMouseUpListenerFn = this.renderer.listen(this.document, 'mouseup', (e) => {\n if (this.isDragging()) {\n this.isDragging.set(false);\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragEnd' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleUp();\n }\n });\n this.onTouchUpListenerFn = this.renderer.listen(this.document, 'touchend', (e) => {\n if (this.isDragging()) {\n this.isDragging.set(false);\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragEnd' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleUp();\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.onMouseMoveListenerFn();\n this.onMouseUpListenerFn();\n this.onTouchMoveListenerFn();\n this.onTouchUpListenerFn();\n }\n\n protected handleMouseDown(e: MouseEvent) {\n if (!this.data.draggable || e.button !== 0) return;\n e.preventDefault();\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragStart' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleDown(e.clientY);\n }\n\n protected handleTouchDown(e: TouchEvent) {\n if (!this.data.draggable || (e.target as HTMLElement).className.includes('close')) return;\n e.preventDefault();\n this.actionSheetService.setActionSheetEventState({\n nativeEvent: e,\n data: { state: 'dragStart' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.handleDown(e.touches[0].clientY);\n }\n\n private handleDown(clientY: number) {\n this.isDragging.set(true);\n this.getHostElement().style.transitionDuration = '0ms';\n\n if (isPlatformBrowser(this.platformID)) {\n this.curserOffset.set(\n clientY - (this.document.documentElement.clientHeight - this.getHostElement().clientHeight),\n );\n }\n\n if (!this.isActionSheetHeightSet()) {\n this.actionSheetHeight.set(this.getHostElement().clientHeight);\n this.isActionSheetHeightSet.set(true);\n }\n }\n\n private handleUp() {\n this.getHostElement().style.transitionDuration = `${this.transitionDuration()}ms`;\n this.document.body.parentElement.style.overscrollBehaviorY = 'auto';\n\n if (this.getHostElement().clientHeight < this.actionSheetHeight() / 2) {\n this.close(null);\n return;\n }\n if (\n this.getHostElement().clientHeight >\n (this.document.documentElement.clientHeight + this.actionSheetHeight()) / 2 &&\n this.data.dragUp\n ) {\n this.getHostElement().style.height = '100vh';\n this.actionSheetService.setActionSheetEventState({\n data: { state: 'fullScreen' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n this.document.body.parentElement.style.overscrollBehaviorY = 'contain';\n return;\n }\n this.getHostElement().style.height = this.actionSheetHeight() + 'px';\n this.actionSheetService.setActionSheetEventState({\n data: { state: 'normalSize' },\n isUserInteraction: true,\n dialogRef: this.dialogRef,\n });\n return;\n }\n\n private heightCalculator(clientY: number): number {\n if (this.data.dragUp) {\n return this.document.documentElement.clientHeight - clientY;\n }\n if (clientY >= this.document.documentElement.clientHeight - this.actionSheetHeight()) {\n return this.document.documentElement.clientHeight - clientY;\n }\n return (\n this.actionSheetHeight() +\n (this.document.documentElement.clientHeight - clientY - this.actionSheetHeight()) / 10\n );\n }\n\n protected handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n this._componentRef = ref.instance;\n Object.assign(this._componentRef, this.data);\n Object.assign(this._componentRef, { _isPopup: true });\n if (ref.instance.onClosed) {\n ref.instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n this.close(e);\n });\n }\n }\n }\n\n onItemClick(item: AXActionSheetItem) {\n this.close(item);\n if (item?.onClick) item.onClick();\n }\n\n close(e = null, isUserInteraction = true) {\n this.getHostElement().style.height = `${this.getHostElement().clientHeight}px`;\n setTimeout(() => {\n this.getHostElement().style.height = '0vh';\n });\n setTimeout(() => {\n this.actionSheetService.setActionSheetEventState({\n data: { state: 'close' },\n isUserInteraction,\n dialogRef: this.dialogRef,\n });\n this.dialogRef.close({\n component: this._componentRef,\n htmlElement: this.getHostElement(),\n data: e,\n });\n }, this.transitionDuration());\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown.escape')\n protected onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.data.closeButton && focusedOrHasFocused) {\n this.close(null);\n }\n }\n}\n","@if (data.draggable) {\n <div (mousedown)=\"handleMouseDown($event)\" (touchstart)=\"handleTouchDown($event)\" class=\"ax-drag-handle-container\">\n <div class=\"ax-drag-handle\"></div>\n </div>\n}\n@if (data.header) {\n <ax-header\n [class.draggable-header]=\"data.draggable\"\n (mousedown)=\"data.draggable ? handleMouseDown($event) : null\"\n (touchstart)=\"data.draggable ? handleTouchDown($event) : null\"\n >\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-subtitle>\n {{ data.subTitle }}\n </ax-subtitle>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div class=\"ax-action-item ax-{{ item.color || 'default' }}\" [class.ax-state-disabled]=\"item.disabled\" [tabindex]=\"i\" (click)=\"onItemClick(item)\">\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { AsyncPipe } from '@angular/common';\nimport { AXActionSheetComponent } from './action-sheet.component';\nimport { AXActionSheetService } from './action-sheet.service';\n\nconst MODULES = [\n AXCommonModule,\n DragDropModule,\n A11yModule,\n AXButtonModule,\n PortalModule,\n AXDecoratorModule,\n AXTranslationModule,\n DialogModule,\n AsyncPipe,\n];\n\n@NgModule({\n declarations: [AXActionSheetComponent],\n imports: [...MODULES],\n exports: [AXActionSheetComponent],\n providers: [AXActionSheetService],\n})\nexport class AXActionSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}