@acorex/components 19.10.10 → 19.10.11

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 (153) hide show
  1. package/autocomplete/README.md +3 -0
  2. package/autocomplete/index.d.ts +2 -0
  3. package/autocomplete/lib/autocomplete.component.d.ts +113 -0
  4. package/autocomplete/lib/autocomplete.module.d.ts +7 -0
  5. package/common/lib/classes/components.class.d.ts +14 -1
  6. package/common/lib/classes/datasource.class.d.ts +2 -2
  7. package/data-table/lib/columns/row-select-column.component.d.ts +8 -7
  8. package/dropdown/lib/dropdown-box.component.d.ts +2 -1
  9. package/dropdown/lib/dropdown-panel.component.d.ts +3 -1
  10. package/dropdown-button/lib/dropdown-button.component.d.ts +2 -1
  11. package/fesm2022/acorex-components-action-sheet.mjs +11 -11
  12. package/fesm2022/acorex-components-alert.mjs +8 -8
  13. package/fesm2022/acorex-components-audio-wave.mjs +8 -8
  14. package/fesm2022/acorex-components-autocomplete.mjs +317 -0
  15. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -0
  16. package/fesm2022/acorex-components-avatar.mjs +11 -11
  17. package/fesm2022/acorex-components-badge.mjs +8 -8
  18. package/fesm2022/acorex-components-bottom-navigation.mjs +11 -11
  19. package/fesm2022/acorex-components-breadcrumbs.mjs +11 -11
  20. package/fesm2022/acorex-components-button-group.mjs +11 -11
  21. package/fesm2022/acorex-components-button.mjs +15 -15
  22. package/fesm2022/acorex-components-calendar.mjs +15 -15
  23. package/fesm2022/acorex-components-check-box.mjs +11 -11
  24. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  25. package/fesm2022/acorex-components-chips.mjs +8 -8
  26. package/fesm2022/acorex-components-circular-progress.mjs +8 -8
  27. package/fesm2022/acorex-components-collapse.mjs +12 -12
  28. package/fesm2022/acorex-components-color-box.mjs +10 -10
  29. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  30. package/fesm2022/acorex-components-color-palette.mjs +26 -26
  31. package/fesm2022/acorex-components-comment.mjs +29 -29
  32. package/fesm2022/acorex-components-common.mjs +736 -696
  33. package/fesm2022/acorex-components-common.mjs.map +1 -1
  34. package/fesm2022/acorex-components-conversation.mjs +52 -52
  35. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  36. package/fesm2022/acorex-components-cron-job.mjs +47 -47
  37. package/fesm2022/acorex-components-data-pager.mjs +44 -47
  38. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  39. package/fesm2022/acorex-components-data-table.mjs +91 -68
  40. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  41. package/fesm2022/acorex-components-datetime-box.mjs +10 -10
  42. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  43. package/fesm2022/acorex-components-datetime-input.mjs +9 -9
  44. package/fesm2022/acorex-components-datetime-picker.mjs +9 -9
  45. package/fesm2022/acorex-components-decorators.mjs +26 -26
  46. package/fesm2022/acorex-components-dialog.mjs +12 -12
  47. package/fesm2022/acorex-components-drawer.mjs +14 -14
  48. package/fesm2022/acorex-components-dropdown-button.mjs +16 -10
  49. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  50. package/fesm2022/acorex-components-dropdown.mjs +23 -15
  51. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  52. package/fesm2022/acorex-components-file-explorer.mjs +27 -27
  53. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  54. package/fesm2022/acorex-components-form.mjs +17 -17
  55. package/fesm2022/acorex-components-grid-layout-builder.mjs +149 -598
  56. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  57. package/fesm2022/acorex-components-image-editor.mjs +311 -180
  58. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  59. package/fesm2022/acorex-components-image.mjs +8 -8
  60. package/fesm2022/acorex-components-json-viewer.mjs +8 -8
  61. package/fesm2022/acorex-components-kbd.mjs +11 -11
  62. package/fesm2022/acorex-components-label.mjs +8 -8
  63. package/fesm2022/acorex-components-list.mjs +9 -9
  64. package/fesm2022/acorex-components-loading-dialog.mjs +11 -11
  65. package/fesm2022/acorex-components-loading.mjs +18 -18
  66. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  67. package/fesm2022/acorex-components-map.mjs +17 -27
  68. package/fesm2022/acorex-components-map.mjs.map +1 -1
  69. package/fesm2022/acorex-components-media-viewer.mjs +36 -36
  70. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  71. package/fesm2022/acorex-components-menu.mjs +17 -17
  72. package/fesm2022/acorex-components-navbar.mjs +8 -8
  73. package/fesm2022/acorex-components-notification.mjs +11 -11
  74. package/fesm2022/acorex-components-number-box.mjs +9 -9
  75. package/fesm2022/acorex-components-otp.mjs +9 -9
  76. package/fesm2022/acorex-components-page.mjs +11 -11
  77. package/fesm2022/acorex-components-paint.mjs +20 -20
  78. package/fesm2022/acorex-components-password-box.mjs +12 -12
  79. package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
  80. package/fesm2022/acorex-components-phone-box.mjs +9 -9
  81. package/fesm2022/acorex-components-picker.mjs +14 -14
  82. package/fesm2022/acorex-components-popover.mjs +8 -8
  83. package/fesm2022/acorex-components-popup.mjs +11 -11
  84. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  85. package/fesm2022/acorex-components-qrcode.mjs +8 -8
  86. package/fesm2022/acorex-components-query-builder.mjs +25 -14
  87. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  88. package/fesm2022/acorex-components-radio.mjs +9 -9
  89. package/fesm2022/acorex-components-rail-navigation.mjs +14 -14
  90. package/fesm2022/acorex-components-range-slider.mjs +8 -8
  91. package/fesm2022/acorex-components-rate-picker.mjs +8 -8
  92. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  93. package/fesm2022/acorex-components-result.mjs +8 -8
  94. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  95. package/fesm2022/acorex-components-scheduler.mjs +14 -14
  96. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  97. package/fesm2022/acorex-components-scss.mjs +4 -4
  98. package/fesm2022/acorex-components-search-box.mjs +10 -10
  99. package/fesm2022/acorex-components-select-box.mjs +10 -10
  100. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  101. package/fesm2022/acorex-components-selection-list.mjs +9 -9
  102. package/fesm2022/acorex-components-side-menu.mjs +15 -15
  103. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  104. package/fesm2022/acorex-components-slider.mjs +9 -9
  105. package/fesm2022/acorex-components-sliding-item.mjs +14 -14
  106. package/fesm2022/acorex-components-step-wizard.mjs +14 -14
  107. package/fesm2022/acorex-components-switch.mjs +11 -11
  108. package/fesm2022/acorex-components-tabs.mjs +14 -14
  109. package/fesm2022/acorex-components-tag-box.mjs +121 -0
  110. package/fesm2022/acorex-components-tag-box.mjs.map +1 -0
  111. package/fesm2022/acorex-components-tag.mjs +9 -9
  112. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  113. package/fesm2022/acorex-components-text-area.mjs +9 -9
  114. package/fesm2022/acorex-components-text-box.mjs +14 -14
  115. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  116. package/fesm2022/acorex-components-time-line.mjs +12 -12
  117. package/fesm2022/acorex-components-toast.mjs +11 -11
  118. package/fesm2022/acorex-components-toolbar.mjs +8 -8
  119. package/fesm2022/acorex-components-tooltip.mjs +11 -11
  120. package/fesm2022/acorex-components-tree-view.mjs +31 -27
  121. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  122. package/fesm2022/acorex-components-uploader.mjs +32 -27
  123. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  124. package/fesm2022/acorex-components-video-player.mjs +8 -8
  125. package/fesm2022/acorex-components-wysiwyg.mjs +32 -32
  126. package/grid-layout-builder/index.d.ts +0 -1
  127. package/grid-layout-builder/lib/grid-layout-builder.module.d.ts +1 -2
  128. package/grid-layout-builder/lib/grid-layout-container.component.d.ts +37 -235
  129. package/grid-layout-builder/lib/grid-layout-widget.component.d.ts +6 -86
  130. package/grid-layout-builder/lib/types.d.ts +8 -12
  131. package/image-editor/index.d.ts +7 -2
  132. package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +4 -1
  133. package/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.d.ts +3 -8
  134. package/image-editor/lib/image-editor-tools/image-editor-header/image-editor-header.component.d.ts +12 -0
  135. package/image-editor/lib/image-editor-tools/image-editor-highlight/image-editor-highlight.component.d.ts +18 -0
  136. package/image-editor/lib/image-editor-tools/image-editor-history/image-editor-history.component.d.ts +13 -0
  137. package/image-editor/lib/image-editor-tools/image-editor-pen/image-editor-pen.component.d.ts +18 -0
  138. package/image-editor/lib/image-editor-tools/image-editor-rotate/image-editor-rotate.component.d.ts +16 -0
  139. package/image-editor/lib/image-editor-tools/image-editor-tool-selector/image-editor-tool-selector.component.d.ts +12 -0
  140. package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +7 -1
  141. package/image-editor/lib/image-editor.module.d.ts +10 -6
  142. package/image-editor/lib/image-editor.service.d.ts +6 -10
  143. package/package.json +13 -5
  144. package/query-builder/lib/query-builder.component.d.ts +5 -2
  145. package/tag-box/README.md +3 -0
  146. package/tag-box/index.d.ts +2 -0
  147. package/tag-box/lib/tag-box.component.d.ts +30 -0
  148. package/tag-box/lib/tag-box.module.d.ts +7 -0
  149. package/tree-view/lib/tree-view-item.component.d.ts +3 -2
  150. package/tree-view/lib/tree-view.component.d.ts +6 -7
  151. package/grid-layout-builder/lib/grid-layout-widget.directive.d.ts +0 -106
  152. package/image-editor/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.d.ts +0 -17
  153. package/image-editor/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.d.ts +0 -34
@@ -1,9 +1,9 @@
1
1
  import { MXSelectionValueComponent, convertArrayToDataSource, AXListDataSource, AXComponent, AXFocusableComponent, AXValuableComponent, AX_SELECTION_DATA_TOKEN, MXSelectionBridgeService } from '@acorex/components/common';
2
2
  import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
3
- import { CdkVirtualScrollViewport, CdkVirtualScrollableElement, CdkFixedSizeVirtualScroll, CdkVirtualForOf, ScrollingModule } from '@angular/cdk/scrolling';
3
+ import { CdkVirtualScrollableElement, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, ScrollingModule } from '@angular/cdk/scrolling';
4
4
  import { isPlatformBrowser, NgIf, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, signal, forwardRef, Optional, SkipSelf, Component, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, ViewChild, HostListener, HostBinding, NgModule } from '@angular/core';
6
+ import { EventEmitter, signal, forwardRef, Optional, SkipSelf, HostBinding, HostListener, ViewChild, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
7
7
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
8
 
9
9
  /**
@@ -217,8 +217,8 @@ class AXListComponent extends MXSelectionValueComponent {
217
217
  const _class = `ax-default ${this.showEmptyTemplate() ? 'ax-state-empty' : ''}`;
218
218
  return this.itemTemplate ? '' : _class;
219
219
  }
220
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
221
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: AXListComponent, isStandalone: true, selector: "ax-list", inputs: { id: "id", name: "name", disabled: "disabled", readonly: "readonly", valueField: "valueField", textField: "textField", textTemplate: "textTemplate", disabledField: "disabledField", multiple: "multiple", selectionMode: "selectionMode", dataSource: "dataSource", itemHeight: "itemHeight", itemTemplate: "itemTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate", checkbox: "checkbox" }, outputs: { onValueChanged: "onValueChanged", disabledChange: "disabledChange", readOnlyChange: "readOnlyChange", onBlur: "onBlur", onFocus: "onFocus", onItemClick: "onItemClick", onScrolledIndexChanged: "onScrolledIndexChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
221
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: AXListComponent, isStandalone: true, selector: "ax-list", inputs: { id: "id", name: "name", disabled: "disabled", readonly: "readonly", valueField: "valueField", textField: "textField", textTemplate: "textTemplate", disabledField: "disabledField", multiple: "multiple", selectionMode: "selectionMode", dataSource: "dataSource", itemHeight: "itemHeight", itemTemplate: "itemTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate", checkbox: "checkbox" }, outputs: { onValueChanged: "onValueChanged", disabledChange: "disabledChange", readOnlyChange: "readOnlyChange", onBlur: "onBlur", onFocus: "onFocus", onItemClick: "onItemClick", onScrolledIndexChanged: "onScrolledIndexChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
222
222
  { provide: AXComponent, useExisting: AXListComponent },
223
223
  { provide: AXFocusableComponent, useExisting: AXListComponent },
224
224
  { provide: AXValuableComponent, useExisting: AXListComponent },
@@ -236,7 +236,7 @@ class AXListComponent extends MXSelectionValueComponent {
236
236
  },
237
237
  ], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeightSignal()\"\n [style.--item-height]=\"itemHeightSignal() + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: { data: item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item !== null && item !== undefined; else loadingTpl\">\n <div class=\"ax-label-container\">\n <input\n class=\"ax-checkbox\"\n *ngIf=\"multiple && checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{ getDisplayText(item) }}</span>\n </div>\n <!-- <i class=\"ax-icon ax-icon-check ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i> -->\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate; else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"> </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ 'loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n}\n", styles: ["ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-comp-list-item-height);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list.ax-state-empty{height:auto!important}\n"], dependencies: [{ kind: "directive", type: CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
238
238
  }
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXListComponent, decorators: [{
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXListComponent, decorators: [{
240
240
  type: Component,
241
241
  args: [{ selector: 'ax-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['id', 'name', 'disabled', 'readonly', 'valueField', 'textField', 'textTemplate', 'disabledField', 'multiple', 'selectionMode'], outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'], providers: [
242
242
  { provide: AXComponent, useExisting: AXListComponent },
@@ -294,11 +294,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
294
294
  const COMPONENT = [AXListComponent];
295
295
  const MODULES = [CommonModule, ScrollingModule, AXTranslationModule];
296
296
  class AXListModule {
297
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
298
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: AXListModule, imports: [CommonModule, ScrollingModule, AXTranslationModule, AXListComponent], exports: [AXListComponent] }); }
299
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXListModule, imports: [MODULES, COMPONENT] }); }
297
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
298
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.8", ngImport: i0, type: AXListModule, imports: [CommonModule, ScrollingModule, AXTranslationModule, AXListComponent], exports: [AXListComponent] }); }
299
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXListModule, imports: [MODULES, COMPONENT] }); }
300
300
  }
301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXListModule, decorators: [{
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXListModule, decorators: [{
302
302
  type: NgModule,
303
303
  args: [{
304
304
  imports: [...MODULES, ...COMPONENT],
@@ -8,7 +8,7 @@ import * as i1 from '@angular/cdk/dialog';
8
8
  import { DIALOG_DATA, Dialog } from '@angular/cdk/dialog';
9
9
  import { AsyncPipe } from '@angular/common';
10
10
  import * as i0 from '@angular/core';
11
- import { signal, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, inject, Injectable, NgModule } from '@angular/core';
11
+ import { signal, Inject, ViewEncapsulation, ChangeDetectionStrategy, Component, inject, Injectable, NgModule } from '@angular/core';
12
12
 
13
13
  /**
14
14
  * Represents a loading dialog component with custom styles and encapsulation.
@@ -85,10 +85,10 @@ class AXLoadingDialogComponent extends MXBaseComponent {
85
85
  const result = button.autofocus || this.data.buttons.length == 1 || !this.data.buttons.some((c) => c.autofocus);
86
86
  return result;
87
87
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogComponent, deps: [{ token: DIALOG_DATA }, { token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
89
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: AXLoadingDialogComponent, isStandalone: true, selector: "ax-loading-dialog", usesInheritance: true, ngImport: i0, template: "<ax-title>{{ dialogTitle() }}</ax-title>\n\n<ax-progress-bar\n [mode]=\"data.mode\"\n [progress]=\"this.progressValue()\"\n [color]=\"progressColor()\"\n></ax-progress-bar>\n<div class=\"progress-decorators\">\n <div>{{ progressText() }}</div>\n <div>{{ progressStatus() }}</div>\n</div>\n<ax-footer>\n @for (button of data.buttons; track $index) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"$index\"\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", styles: ["ax-loading-dialog{display:flex;flex-direction:column;gap:.5rem;width:33vw;background-color:rgba(var(--ax-sys-color-lightest-surface));padding:1rem;border-radius:var(--ax-sys-border-radius)}ax-loading-dialog ax-title{font-weight:500;font-size:1rem;margin-bottom:.5rem}@media (min-width: 320px) and (max-width: 640px){ax-loading-dialog{width:93vw!important}}@media (min-width: 768px){ax-loading-dialog{width:55vw!important}}@media (min-width: 1280px){ax-loading-dialog{width:30vw!important}}@media (min-width: 1536px){ax-loading-dialog{width:25vw!important}}ax-loading-dialog .progress-decorators{display:flex;justify-content:space-between;font-size:.875rem}ax-loading-dialog ax-footer{justify-content:flex-end;padding-top:.75rem}\n"], dependencies: [{ 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: AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "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: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogComponent, deps: [{ token: DIALOG_DATA }, { token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: AXLoadingDialogComponent, isStandalone: true, selector: "ax-loading-dialog", usesInheritance: true, ngImport: i0, template: "<ax-title>{{ dialogTitle() }}</ax-title>\n\n<ax-progress-bar\n [mode]=\"data.mode\"\n [progress]=\"this.progressValue()\"\n [color]=\"progressColor()\"\n></ax-progress-bar>\n<div class=\"progress-decorators\">\n <div>{{ progressText() }}</div>\n <div>{{ progressStatus() }}</div>\n</div>\n<ax-footer>\n @for (button of data.buttons; track $index) {\n <ax-button\n [text]=\"button.text | translate | async\"\n [tabindex]=\"$index\"\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", styles: ["ax-loading-dialog{display:flex;flex-direction:column;gap:.5rem;width:33vw;background-color:rgba(var(--ax-sys-color-lightest-surface));padding:1rem;border-radius:var(--ax-sys-border-radius)}ax-loading-dialog ax-title{font-weight:500;font-size:1rem;margin-bottom:.5rem}@media (min-width: 320px) and (max-width: 640px){ax-loading-dialog{width:93vw!important}}@media (min-width: 768px){ax-loading-dialog{width:55vw!important}}@media (min-width: 1280px){ax-loading-dialog{width:30vw!important}}@media (min-width: 1536px){ax-loading-dialog{width:25vw!important}}ax-loading-dialog .progress-decorators{display:flex;justify-content:space-between;font-size:.875rem}ax-loading-dialog ax-footer{justify-content:flex-end;padding-top:.75rem}\n"], dependencies: [{ 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: AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "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: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogComponent, decorators: [{
92
92
  type: Component,
93
93
  args: [{ selector: 'ax-loading-dialog', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
94
94
  AXDecoratorGenericComponent,
@@ -131,20 +131,20 @@ class AXLoadingDialogService {
131
131
  setProgressColor: (color) => dialogRef.componentInstance?.setProgressColor(color),
132
132
  };
133
133
  }
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
135
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogService }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
135
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogService }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogService, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogService, decorators: [{
138
138
  type: Injectable
139
139
  }] });
140
140
 
141
141
  const COMPONENT = [AXLoadingDialogComponent];
142
142
  class AXLoadingDialogModule {
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
144
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogModule, imports: [AXCommonModule, AXProgressBarModule, AXLoadingModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, AsyncPipe, AXLoadingDialogComponent], exports: [AXLoadingDialogComponent] }); }
145
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogModule, providers: [AXLoadingDialogService], imports: [AXCommonModule, AXProgressBarModule, AXLoadingModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, COMPONENT] }); }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
144
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogModule, imports: [AXCommonModule, AXProgressBarModule, AXLoadingModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, AsyncPipe, AXLoadingDialogComponent], exports: [AXLoadingDialogComponent] }); }
145
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogModule, providers: [AXLoadingDialogService], imports: [AXCommonModule, AXProgressBarModule, AXLoadingModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, COMPONENT] }); }
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDialogModule, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDialogModule, decorators: [{
148
148
  type: NgModule,
149
149
  args: [{
150
150
  imports: [AXCommonModule, AXProgressBarModule, AXLoadingModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, AsyncPipe, ...COMPONENT],
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, Input, HostBinding, InjectionToken, inject, EventEmitter, ChangeDetectionStrategy, Output, Injectable, Directive, NgModule } from '@angular/core';
2
+ import { HostBinding, Input, ViewEncapsulation, Component, InjectionToken, inject, EventEmitter, Output, ChangeDetectionStrategy, Injectable, Directive, NgModule } from '@angular/core';
3
3
  import { MXBaseComponent } from '@acorex/components/common';
4
4
  import { ComponentPortal, CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';
5
5
  import { Dialog, DialogModule } from '@angular/cdk/dialog';
@@ -36,15 +36,15 @@ class AXLoadingSpinnerComponent {
36
36
  get __hostClass() {
37
37
  return `ax-${this.color}`;
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: AXLoadingSpinnerComponent, isStandalone: true, selector: "ax-loading-spinner", inputs: { text: "text", color: "color", size: "size", stroke: "stroke" }, host: { properties: { "class": "this.__hostClass" } }, ngImport: i0, template: `
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: AXLoadingSpinnerComponent, isStandalone: true, selector: "ax-loading-spinner", inputs: { text: "text", color: "color", size: "size", stroke: "stroke" }, host: { properties: { "class": "this.__hostClass" } }, ngImport: i0, template: `
41
41
  <span class="ax-loader" [style.width.px]="size" [style.height.px]="size" [style.border-width.px]="stroke" [style.border-color]="color"></span>
42
42
  @if (text) {
43
43
  <span> {{ text }} </span>
44
44
  }
45
45
  `, isInline: true, styles: ["ax-loading-spinner{--ax-comp-loading-spinner-loader-height: 3rem;--ax-comp-loading-spinner-loader-width: 3rem;--ax-comp-loading-spinner-loader-border-width: 6px}ax-loading-spinner.ax-black{--ax-comp-loading-spinner-loader-border-color: 0, 0, 0}ax-loading-spinner.ax-white{--ax-comp-loading-spinner-loader-border-color: 255, 255, 255}ax-loading-spinner.ax-primary{--ax-comp-loading-spinner-loader-border-color: var(--ax-sys-color-primary-surface)}ax-loading-spinner.ax-secondary{--ax-comp-loading-spinner-loader-border-color: var(--ax-sys-color-secondary-surface)}ax-loading-spinner.ax-success{--ax-comp-loading-spinner-loader-border-color: var(--ax-sys-color-success-surface)}ax-loading-spinner.ax-warning{--ax-comp-loading-spinner-loader-border-color: var(--ax-sys-color-warning-surface)}ax-loading-spinner.ax-danger{--ax-comp-loading-spinner-loader-border-color: var(--ax-sys-color-danger-surface)}ax-loading-spinner .ax-loader{margin:auto;border-style:solid;display:inline-block;border-radius:9999px;box-sizing:border-box;animation:rotation .5s linear infinite;border-bottom-color:transparent!important;width:var(--ax-comp-loading-spinner-loader-width);height:var(--ax-comp-loading-spinner-loader-height);border-width:var(--ax-comp-loading-spinner-loader-border-width);border-color:rgba(var(--ax-comp-loading-spinner-loader-border-color))}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingSpinnerComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingSpinnerComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'ax-loading-spinner', template: `
50
50
  <span class="ax-loader" [style.width.px]="size" [style.height.px]="size" [style.border-width.px]="stroke" [style.border-color]="color"></span>
@@ -134,12 +134,12 @@ class AXLoadingComponent extends MXBaseComponent {
134
134
  Object.assign(ref.instance, this.context);
135
135
  }
136
136
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: AXLoadingComponent, isStandalone: true, selector: "ax-loading", inputs: { visible: "visible", type: "type", context: "context" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, isInline: true, styles: ["ax-loading{--ax-comp-loading-padding-x: .25rem;--ax-comp-loading-inner-scale: 0;--ax-comp-loading-pulse-scale: 1.05;--ax-comp-loading-animation-duration: 2s;--ax-comp-loading-spinner-gap: .75rem}.ax-loading-overlay-backdrop{--ax-comp-loading-overlay-opacity: .85}.ax-loading-pane{--ax-comp-loading-pane-outline-width: 2px;--ax-comp-loading-pane-outline-offset: 2px}ax-loading{position:relative;padding-left:var(--ax-comp-loading-padding-x);padding-right:var(--ax-comp-loading-padding-x)}ax-loading:before,ax-loading:after{content:\"\";top:50%;width:100%;height:100%;position:absolute;border-radius:9999px;inset-inline-start:50%;transform:translate(-50%,-50%) scale(var(--ax-comp-loading-inner-scale));background-color:transparent;animation:var(--ax-comp-loading-animation-duration) ease-in-out both ax-pulse;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale))}}ax-loading ax-loading-spinner{display:flex;gap:var(--ax-comp-loading-spinner-gap)}.ax-loading-overlay-backdrop{opacity:var(--ax-comp-loading-overlay-opacity)!important;background-color:rgba(var(--ax-comp-loading-overlay-bg-color, var(--ax-sys-color-surface)))}.ax-loading-pane{top:0;bottom:0;inset-inline-end:0px;inset-inline-start:0px;width:100%!important;height:100%!important}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline-style:solid;outline-color:transparent;outline-width:var(--ax-comp-loading-pane-outline-width);outline-offset:var(--ax-comp-loading-pane-outline-offset)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
137
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: AXLoadingComponent, isStandalone: true, selector: "ax-loading", inputs: { visible: "visible", type: "type", context: "context" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, isInline: true, styles: ["ax-loading{--ax-comp-loading-padding-x: .25rem;--ax-comp-loading-inner-scale: 0;--ax-comp-loading-pulse-scale: 1.05;--ax-comp-loading-animation-duration: 2s;--ax-comp-loading-spinner-gap: .75rem}.ax-loading-overlay-backdrop{--ax-comp-loading-overlay-opacity: .6}.ax-loading-pane{--ax-comp-loading-pane-outline-width: 2px;--ax-comp-loading-pane-outline-offset: 2px}ax-loading{position:relative;padding-left:var(--ax-comp-loading-padding-x);padding-right:var(--ax-comp-loading-padding-x)}ax-loading:before,ax-loading:after{content:\"\";top:50%;width:100%;height:100%;position:absolute;border-radius:9999px;inset-inline-start:50%;transform:translate(-50%,-50%) scale(var(--ax-comp-loading-inner-scale));background-color:transparent;animation:var(--ax-comp-loading-animation-duration) ease-in-out both ax-pulse;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale))}}ax-loading ax-loading-spinner{display:flex;gap:var(--ax-comp-loading-spinner-gap)}.ax-loading-overlay-backdrop{opacity:var(--ax-comp-loading-overlay-opacity);background-color:rgba(var(--ax-comp-loading-overlay-bg-color, var(--ax-sys-color-surface)))}.ax-loading-pane{top:0;bottom:0;inset-inline-end:0px;inset-inline-start:0px;width:100%!important;height:100%!important}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline-style:solid;outline-color:transparent;outline-width:var(--ax-comp-loading-pane-outline-width);outline-offset:var(--ax-comp-loading-pane-outline-offset)}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
139
139
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingComponent, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingComponent, decorators: [{
141
141
  type: Component,
142
- args: [{ selector: 'ax-loading', template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkPortalOutlet], styles: ["ax-loading{--ax-comp-loading-padding-x: .25rem;--ax-comp-loading-inner-scale: 0;--ax-comp-loading-pulse-scale: 1.05;--ax-comp-loading-animation-duration: 2s;--ax-comp-loading-spinner-gap: .75rem}.ax-loading-overlay-backdrop{--ax-comp-loading-overlay-opacity: .85}.ax-loading-pane{--ax-comp-loading-pane-outline-width: 2px;--ax-comp-loading-pane-outline-offset: 2px}ax-loading{position:relative;padding-left:var(--ax-comp-loading-padding-x);padding-right:var(--ax-comp-loading-padding-x)}ax-loading:before,ax-loading:after{content:\"\";top:50%;width:100%;height:100%;position:absolute;border-radius:9999px;inset-inline-start:50%;transform:translate(-50%,-50%) scale(var(--ax-comp-loading-inner-scale));background-color:transparent;animation:var(--ax-comp-loading-animation-duration) ease-in-out both ax-pulse;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale))}}ax-loading ax-loading-spinner{display:flex;gap:var(--ax-comp-loading-spinner-gap)}.ax-loading-overlay-backdrop{opacity:var(--ax-comp-loading-overlay-opacity)!important;background-color:rgba(var(--ax-comp-loading-overlay-bg-color, var(--ax-sys-color-surface)))}.ax-loading-pane{top:0;bottom:0;inset-inline-end:0px;inset-inline-start:0px;width:100%!important;height:100%!important}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline-style:solid;outline-color:transparent;outline-width:var(--ax-comp-loading-pane-outline-width);outline-offset:var(--ax-comp-loading-pane-outline-offset)}\n"] }]
142
+ args: [{ selector: 'ax-loading', template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkPortalOutlet], styles: ["ax-loading{--ax-comp-loading-padding-x: .25rem;--ax-comp-loading-inner-scale: 0;--ax-comp-loading-pulse-scale: 1.05;--ax-comp-loading-animation-duration: 2s;--ax-comp-loading-spinner-gap: .75rem}.ax-loading-overlay-backdrop{--ax-comp-loading-overlay-opacity: .6}.ax-loading-pane{--ax-comp-loading-pane-outline-width: 2px;--ax-comp-loading-pane-outline-offset: 2px}ax-loading{position:relative;padding-left:var(--ax-comp-loading-padding-x);padding-right:var(--ax-comp-loading-padding-x)}ax-loading:before,ax-loading:after{content:\"\";top:50%;width:100%;height:100%;position:absolute;border-radius:9999px;inset-inline-start:50%;transform:translate(-50%,-50%) scale(var(--ax-comp-loading-inner-scale));background-color:transparent;animation:var(--ax-comp-loading-animation-duration) ease-in-out both ax-pulse;animation-iteration-count:infinite}@keyframes ax-pulse{50%{transform:scale3d(var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale),var(--ax-comp-loading-pulse-scale))}}ax-loading ax-loading-spinner{display:flex;gap:var(--ax-comp-loading-spinner-gap)}.ax-loading-overlay-backdrop{opacity:var(--ax-comp-loading-overlay-opacity);background-color:rgba(var(--ax-comp-loading-overlay-bg-color, var(--ax-sys-color-surface)))}.ax-loading-pane{top:0;bottom:0;inset-inline-end:0px;inset-inline-start:0px;width:100%!important;height:100%!important}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline-style:solid;outline-color:transparent;outline-width:var(--ax-comp-loading-pane-outline-width);outline-offset:var(--ax-comp-loading-pane-outline-offset)}\n"] }]
143
143
  }], propDecorators: { visibleChange: [{
144
144
  type: Output
145
145
  }], visible: [{
@@ -260,10 +260,10 @@ class AXLoadingService {
260
260
  getLoaderId(loaderId) {
261
261
  return loaderId ?? DEFAULT_LOADER_ID;
262
262
  }
263
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
264
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingService }); }
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
264
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingService }); }
265
265
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingService, decorators: [{
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingService, decorators: [{
267
267
  type: Injectable
268
268
  }] });
269
269
 
@@ -289,10 +289,10 @@ class AXLoadingDirective {
289
289
  this.loadingService = loadingService;
290
290
  this._hostElement = this.elementRef.nativeElement;
291
291
  }
292
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDirective, deps: [{ token: i0.ElementRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Directive }); }
293
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.7", type: AXLoadingDirective, isStandalone: true, selector: "[axIsLoading]", inputs: { isLoading: ["axIsLoading", "isLoading"] }, ngImport: i0 }); }
292
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDirective, deps: [{ token: i0.ElementRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Directive }); }
293
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.8", type: AXLoadingDirective, isStandalone: true, selector: "[axIsLoading]", inputs: { isLoading: ["axIsLoading", "isLoading"] }, ngImport: i0 }); }
294
294
  }
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingDirective, decorators: [{
295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingDirective, decorators: [{
296
296
  type: Directive,
297
297
  args: [{ selector: '[axIsLoading]' }]
298
298
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: AXLoadingService }], propDecorators: { isLoading: [{
@@ -303,11 +303,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
303
303
  const COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];
304
304
  const MODULES = [CommonModule, OverlayModule, DialogModule, PortalModule];
305
305
  class AXLoadingModule {
306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
307
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingModule, imports: [CommonModule, OverlayModule, DialogModule, PortalModule, AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent], exports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent] }); }
308
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingModule, providers: [AXLoadingService], imports: [MODULES] }); }
306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
307
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingModule, imports: [CommonModule, OverlayModule, DialogModule, PortalModule, AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent], exports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent] }); }
308
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingModule, providers: [AXLoadingService], imports: [MODULES] }); }
309
309
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXLoadingModule, decorators: [{
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: AXLoadingModule, decorators: [{
311
311
  type: NgModule,
312
312
  args: [{
313
313
  imports: [...MODULES, ...COMPONENT],
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../libs/components/loading/src/lib/loading-spinner.component.ts","../../../../libs/components/loading/src/lib/loading.config.ts","../../../../libs/components/loading/src/lib/loading.component.ts","../../../../libs/components/loading/src/lib/loading.service.ts","../../../../libs/components/loading/src/lib/loading.directive.ts","../../../../libs/components/loading/src/lib/loading.module.ts","../../../../libs/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { AXStyleColorType } from '@acorex/components/common';\nimport { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A loading spinner component that displays a rotating spinner icon.\n * @category Components\n */\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <span class=\"ax-loader\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.border-width.px]=\"stroke\" [style.border-color]=\"color\"></span>\n @if (text) {\n <span> {{ text }} </span>\n }\n `,\n styleUrls: ['./loading-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXLoadingSpinnerComponent {\n /**\n * The text to display alongside the spinner.\n * @ignore\n */\n @Input()\n text: string;\n\n /**\n * Color of the spinner. Can be a predefined style color or a custom color.\n * @defaultValue 'default'\n */\n @Input()\n color: AXStyleColorType | 'white' | 'black' = 'default';\n\n /**\n * Size of the spinner, in pixels. This determines both the width and height of the spinner.\n * @defaultValue 16\n */\n @Input() size = 16;\n\n /**\n * Thickness of the spinner's border, in pixels. This affects the visual weight of the spinner's outline.\n * @defaultValue 3\n */\n @Input() stroke = 3;\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.color}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nexport interface AXLoadingConfig {\n spinner: unknown;\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>('AX_LOADING_CONFIG', {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n});\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent,\n};\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { CdkPortalOutlet, CdkPortalOutletAttachedRef, ComponentPortal, ComponentType, Portal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ComponentRef, EventEmitter, Input, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n/**\n * A component that displays a loading indicator.\n * @category Components\n */\n@Component({\n selector: 'ax-loading',\n template: ` <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template> `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n})\nexport class AXLoadingComponent extends MXBaseComponent implements OnInit {\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<unknown>;\n\n /**\n * Emits an event when the visibility state of the component changes.\n * @event\n */\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * @ignore\n */\n private _visible: boolean;\n\n /**\n * Determines whether the component is visible or not.\n */\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n /**\n * Sets the visibility of the component and emits a visibility change event.\n *\n * @param v - A boolean value indicating whether the component should be visible.\n */\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this.getHostElement().classList.remove('ax-hide') : this.getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n /**\n * Specifies the type of loading indicator to display.\n * @defaultValue 'spinner'\n */\n @Input()\n type = 'spinner';\n\n /**\n * Provides additional context or data that may be used by the component.\n */\n @Input()\n context?: unknown;\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n@Injectable()\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private dialog = inject(Dialog);\n\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? document.body) as HTMLDivElement;\n const dialogRef = this.dialog.open(AXLoadingComponent, {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-loading-pane', 'ax-animate-fadeIn'],\n backdropClass: ['ax-loading-overlay-backdrop', 'ax-animate-fadeIn'],\n });\n const id = new Date().getTime();\n dialogRef.componentInstance.visible = true;\n dialogRef.componentInstance.id = id.toString();\n if (ce != document.body) {\n const bg = dialogRef.overlayRef.backdropElement;\n const ov = dialogRef.overlayRef.overlayElement;\n ce.style.position = 'relative';\n ov.style.position = 'absolute';\n\n ce.appendChild(bg);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = 'absolute';\n });\n }\n return id;\n // TODO: diabled focus and click, maybe we need a service and directive for it\n }\n\n hide(id: number): void {\n const f = this.dialog.openDialogs.find((c) => c.componentInstance.id === id.toString());\n if (f) {\n f.close();\n }\n }\n\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId)),\n );\n }\n\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]),\n );\n }\n } else {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({ selector: '[axIsLoading]' })\nexport class AXLoadingDirective {\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({\n location: this._hostElement,\n });\n } else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly loadingService: AXLoadingService,\n ) {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { DialogModule } from '@angular/cdk/dialog';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingService } from './loading.service';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, DialogModule, PortalModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXLoadingService],\n})\nexport class AXLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXLoadingService"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../libs/components/loading/src/lib/loading-spinner.component.ts","../../../../libs/components/loading/src/lib/loading.config.ts","../../../../libs/components/loading/src/lib/loading.component.ts","../../../../libs/components/loading/src/lib/loading.service.ts","../../../../libs/components/loading/src/lib/loading.directive.ts","../../../../libs/components/loading/src/lib/loading.module.ts","../../../../libs/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { AXStyleColorType } from '@acorex/components/common';\nimport { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A loading spinner component that displays a rotating spinner icon.\n * @category Components\n */\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <span class=\"ax-loader\" [style.width.px]=\"size\" [style.height.px]=\"size\" [style.border-width.px]=\"stroke\" [style.border-color]=\"color\"></span>\n @if (text) {\n <span> {{ text }} </span>\n }\n `,\n styleUrls: ['./loading-spinner.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXLoadingSpinnerComponent {\n /**\n * The text to display alongside the spinner.\n * @ignore\n */\n @Input()\n text: string;\n\n /**\n * Color of the spinner. Can be a predefined style color or a custom color.\n * @defaultValue 'default'\n */\n @Input()\n color: AXStyleColorType | 'white' | 'black' = 'default';\n\n /**\n * Size of the spinner, in pixels. This determines both the width and height of the spinner.\n * @defaultValue 16\n */\n @Input() size = 16;\n\n /**\n * Thickness of the spinner's border, in pixels. This affects the visual weight of the spinner's outline.\n * @defaultValue 3\n */\n @Input() stroke = 3;\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.color}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nexport interface AXLoadingConfig {\n spinner: unknown;\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>('AX_LOADING_CONFIG', {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n});\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent,\n};\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { CdkPortalOutlet, CdkPortalOutletAttachedRef, ComponentPortal, ComponentType, Portal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ComponentRef, EventEmitter, Input, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n/**\n * A component that displays a loading indicator.\n * @category Components\n */\n@Component({\n selector: 'ax-loading',\n template: ` <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template> `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkPortalOutlet],\n})\nexport class AXLoadingComponent extends MXBaseComponent implements OnInit {\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<unknown>;\n\n /**\n * Emits an event when the visibility state of the component changes.\n * @event\n */\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * @ignore\n */\n private _visible: boolean;\n\n /**\n * Determines whether the component is visible or not.\n */\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n /**\n * Sets the visibility of the component and emits a visibility change event.\n *\n * @param v - A boolean value indicating whether the component should be visible.\n */\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this.getHostElement().classList.remove('ax-hide') : this.getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n /**\n * Specifies the type of loading indicator to display.\n * @defaultValue 'spinner'\n */\n @Input()\n type = 'spinner';\n\n /**\n * Provides additional context or data that may be used by the component.\n */\n @Input()\n context?: unknown;\n\n /**\n * @ignore\n */\n override ngOnInit() {\n super.ngOnInit();\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n protected _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, asyncScheduler } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n@Injectable()\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private dialog = inject(Dialog);\n\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? document.body) as HTMLDivElement;\n const dialogRef = this.dialog.open(AXLoadingComponent, {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-loading-pane', 'ax-animate-fadeIn'],\n backdropClass: ['ax-loading-overlay-backdrop', 'ax-animate-fadeIn'],\n });\n const id = new Date().getTime();\n dialogRef.componentInstance.visible = true;\n dialogRef.componentInstance.id = id.toString();\n if (ce != document.body) {\n const bg = dialogRef.overlayRef.backdropElement;\n const ov = dialogRef.overlayRef.overlayElement;\n ce.style.position = 'relative';\n ov.style.position = 'absolute';\n\n ce.appendChild(bg);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = 'absolute';\n });\n }\n return id;\n // TODO: diabled focus and click, maybe we need a service and directive for it\n }\n\n hide(id: number): void {\n const f = this.dialog.openDialogs.find((c) => c.componentInstance.id === id.toString());\n if (f) {\n f.close();\n }\n }\n\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId)),\n );\n }\n\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]),\n );\n }\n } else {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({ selector: '[axIsLoading]' })\nexport class AXLoadingDirective {\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({\n location: this._hostElement,\n });\n } else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly loadingService: AXLoadingService,\n ) {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { DialogModule } from '@angular/cdk/dialog';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingService } from './loading.service';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, DialogModule, PortalModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXLoadingService],\n})\nexport class AXLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXLoadingService"],"mappings":"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"}