@acorex/platform 19.2.17-next.0 → 19.2.19

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 (140) hide show
  1. package/common/lib/file-storage/file-storage.types.d.ts +4 -0
  2. package/common/lib/layout/menu/menu.types.d.ts +2 -1
  3. package/common/lib/search/search-definition.builder.d.ts +0 -1
  4. package/common/lib/search/search.types.d.ts +12 -0
  5. package/common/lib/utils/filter-cleaner.d.ts +2 -0
  6. package/common/lib/utils/index.d.ts +1 -0
  7. package/core/lib/directives/dbl-click.directive.d.ts +11 -0
  8. package/core/lib/directives/index.d.ts +1 -0
  9. package/core/lib/types.d.ts +8 -0
  10. package/fesm2022/acorex-platform-auth.mjs +1 -1
  11. package/fesm2022/acorex-platform-common.mjs +45 -10
  12. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-core.mjs +41 -2
  14. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +9 -9
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity.mjs +112 -100
  19. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-search.mjs +34 -12
  21. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  22. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Bvwr0PVk.mjs → acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs} +5 -5
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Bvwr0PVk.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs.map} +1 -1
  24. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs +400 -0
  25. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map +1 -0
  26. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BAU_s90_.mjs → acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs} +5 -5
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BAU_s90_.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs.map} +1 -1
  28. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs +135 -0
  29. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs.map +1 -0
  30. package/fesm2022/{acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs → acorex-platform-themes-default-error-401.component-Ycz5LYvk.mjs} +2 -2
  31. package/fesm2022/{acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs.map → acorex-platform-themes-default-error-401.component-Ycz5LYvk.mjs.map} +1 -1
  32. package/fesm2022/{acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs → acorex-platform-themes-default-error-404.component-DvVSMoRS.mjs} +2 -2
  33. package/fesm2022/{acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs.map → acorex-platform-themes-default-error-404.component-DvVSMoRS.mjs.map} +1 -1
  34. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs → acorex-platform-themes-default-error-offline.component-DU6dstng.mjs} +2 -2
  35. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs.map → acorex-platform-themes-default-error-offline.component-DU6dstng.mjs.map} +1 -1
  36. package/fesm2022/acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs +128 -0
  37. package/fesm2022/acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs +74 -0
  39. package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-themes-default-setting-view.component-fuHM7W6Y.mjs → acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs} +9 -7
  41. package/fesm2022/acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs.map +1 -0
  42. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs +146 -0
  43. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default.mjs +288 -143
  45. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-themes-shared.mjs +282 -187
  47. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BWhqDxGH.mjs → acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs} +3 -3
  49. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BWhqDxGH.mjs.map → acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-C8NRF4BO.mjs → acorex-platform-widgets-checkbox-widget-column.component-BfVyjSLL.mjs} +2 -2
  51. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-C8NRF4BO.mjs.map → acorex-platform-widgets-checkbox-widget-column.component-BfVyjSLL.mjs.map} +1 -1
  52. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-D8KErkus.mjs → acorex-platform-widgets-checkbox-widget-designer.component-CrdfTgeq.mjs} +2 -2
  53. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-D8KErkus.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-CrdfTgeq.mjs.map} +1 -1
  54. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-bf272Wuo.mjs → acorex-platform-widgets-checkbox-widget-view.component-DfSoF52n.mjs} +2 -2
  55. package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-bf272Wuo.mjs.map → acorex-platform-widgets-checkbox-widget-view.component-DfSoF52n.mjs.map} +1 -1
  56. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-CG3HEOUD.mjs → acorex-platform-widgets-color-box-widget-designer.component-BM1G-WaN.mjs} +2 -2
  57. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-CG3HEOUD.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-BM1G-WaN.mjs.map} +1 -1
  58. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-B1HiCGC6.mjs → acorex-platform-widgets-contact-widget-filter.component-B1cKV-TM.mjs} +2 -2
  59. package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-B1HiCGC6.mjs.map → acorex-platform-widgets-contact-widget-filter.component-B1cKV-TM.mjs.map} +1 -1
  60. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-CITselce.mjs → acorex-platform-widgets-page-widget-designer.component-DtwyOnuO.mjs} +2 -2
  61. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-CITselce.mjs.map → acorex-platform-widgets-page-widget-designer.component-DtwyOnuO.mjs.map} +1 -1
  62. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DYExfz5U.mjs → acorex-platform-widgets-rich-text-popup.component-CXLjPrFq.mjs} +3 -3
  63. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DYExfz5U.mjs.map → acorex-platform-widgets-rich-text-popup.component-CXLjPrFq.mjs.map} +1 -1
  64. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Emh145xN.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs} +3 -3
  65. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Emh145xN.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs.map} +1 -1
  66. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-Ca6Cwzez.mjs → acorex-platform-widgets-tabular-data-view-popup.component-BiO5M_eY.mjs} +3 -3
  67. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-Ca6Cwzez.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-BiO5M_eY.mjs.map} +1 -1
  68. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-BToPbMjj.mjs → acorex-platform-widgets-text-block-widget-designer.component-C3H0Zldz.mjs} +2 -2
  69. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-BToPbMjj.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-C3H0Zldz.mjs.map} +1 -1
  70. package/fesm2022/acorex-platform-widgets.mjs +1191 -291
  71. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +1 -1
  73. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -2
  74. package/layout/entity/lib/entity-storage-service.d.ts +4 -0
  75. package/layout/entity/lib/entity.config.d.ts +1 -1
  76. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -0
  77. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +2 -1
  78. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +3 -1
  79. package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +4 -0
  80. package/layout/search/lib/search.viewmodel.d.ts +2 -0
  81. package/layout/setting/lib/setting.viewmodel.d.ts +4 -0
  82. package/package.json +1 -1
  83. package/themes/default/lib/layouts/base/base-page.component.d.ts +83 -0
  84. package/themes/default/lib/layouts/base/base-page.types.d.ts +9 -0
  85. package/themes/default/lib/layouts/base/index.d.ts +3 -1
  86. package/themes/default/lib/layouts/base/simple-page/index.d.ts +1 -0
  87. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +16 -5
  88. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +4 -0
  89. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +12 -2
  90. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -3
  91. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +0 -3
  92. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +4 -0
  93. package/themes/default/lib/layouts/root-layout/components/footer/footer.component.d.ts +1 -1
  94. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +5 -1
  95. package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +86 -0
  96. package/themes/default/lib/layouts/root-layout/components/{menu/root-menu.component.d.ts → side-menu/side-menu.component.d.ts} +1 -2
  97. package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +79 -0
  98. package/themes/default/lib/layouts/root-layout/index.d.ts +3 -2
  99. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +26 -19
  100. package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +79 -0
  101. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +2 -1
  102. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +1 -1
  103. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +4 -0
  104. package/themes/default/lib/pages/theme-palette-preview/theme-palette-preview.page.d.ts +5 -1
  105. package/themes/shared/index.d.ts +1 -0
  106. package/themes/shared/lib/components/drawer/drawer.directive.d.ts +22 -0
  107. package/themes/shared/lib/components/drawer/index.d.ts +1 -0
  108. package/themes/shared/lib/components/layout-elements/index.d.ts +4 -4
  109. package/themes/shared/lib/components/layout-elements/layout-actions.component.d.ts +1 -1
  110. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
  111. package/themes/shared/lib/components/layout-elements/layout-footer.component.d.ts +1 -1
  112. package/themes/shared/lib/components/layout-elements/layout-header.component.d.ts +7 -3
  113. package/themes/shared/lib/components/layout-elements/layout-section.component.d.ts +3 -7
  114. package/themes/shared/lib/components/layout-elements/layout-side.component.d.ts +6 -13
  115. package/themes/shared/lib/components/slots/theme-slot.component.d.ts +4 -0
  116. package/themes/shared/lib/setting.keys.d.ts +2 -1
  117. package/themes/shared/lib/theme.service.d.ts +5 -1
  118. package/themes/shared/lib/theme.types.d.ts +4 -0
  119. package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +13 -0
  120. package/widgets/lib/widgets/advance/gallery/index.d.ts +2 -1
  121. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +5 -0
  122. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget-edit.component.d.ts +32 -2
  123. package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +15 -0
  124. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget-edit.component.d.ts +16 -3
  125. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +1 -1
  126. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget-edit.component.d.ts +2 -2
  127. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
  128. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLM2kf7R.mjs +0 -405
  129. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BLM2kf7R.mjs.map +0 -1
  130. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BmBPyfQY.mjs +0 -130
  131. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BmBPyfQY.mjs.map +0 -1
  132. package/fesm2022/acorex-platform-themes-default-search-popup.component-DfeNmpS9.mjs +0 -129
  133. package/fesm2022/acorex-platform-themes-default-search-popup.component-DfeNmpS9.mjs.map +0 -1
  134. package/fesm2022/acorex-platform-themes-default-setting-page.component-DtJmPSFo.mjs +0 -75
  135. package/fesm2022/acorex-platform-themes-default-setting-page.component-DtJmPSFo.mjs.map +0 -1
  136. package/fesm2022/acorex-platform-themes-default-setting-view.component-fuHM7W6Y.mjs.map +0 -1
  137. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DkjAgWLn.mjs +0 -138
  138. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DkjAgWLn.mjs.map +0 -1
  139. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.d.ts +0 -14
  140. package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +0 -27
@@ -0,0 +1,400 @@
1
+ import { AXActionSheetModule } from '@acorex/components/action-sheet';
2
+ import * as i8 from '@acorex/components/data-table';
3
+ import { AXDataTableModule } from '@acorex/components/data-table';
4
+ import { AXDrawerModule } from '@acorex/components/drawer';
5
+ import * as i1$1 from '@acorex/core/platform';
6
+ import * as i0 from '@angular/core';
7
+ import { inject, Injector, input, model, ChangeDetectionStrategy, Component, EventEmitter, effect, Output, Input, signal, viewChild, computed, ViewEncapsulation } from '@angular/core';
8
+ import * as i1$2 from '@angular/router';
9
+ import { ActivatedRoute, RouterModule } from '@angular/router';
10
+ import * as i6$3 from '@acorex/components/badge';
11
+ import { AXBadgeModule } from '@acorex/components/badge';
12
+ import * as i1$3 from '@acorex/components/breadcrumbs';
13
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
14
+ import * as i4 from '@acorex/components/button';
15
+ import { AXButtonModule } from '@acorex/components/button';
16
+ import * as i3 from '@acorex/components/decorators';
17
+ import { AXDecoratorModule } from '@acorex/components/decorators';
18
+ import { AXDialogModule } from '@acorex/components/dialog';
19
+ import * as i4$2 from '@acorex/components/dropdown';
20
+ import { AXDropdownModule } from '@acorex/components/dropdown';
21
+ import { AXFormModule } from '@acorex/components/form';
22
+ import { AXLoadingModule } from '@acorex/components/loading';
23
+ import * as i10 from '@acorex/components/popover';
24
+ import { AXPopoverModule } from '@acorex/components/popover';
25
+ import * as i7$1 from '@acorex/components/search-box';
26
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
27
+ import { AXTabsModule } from '@acorex/components/tabs';
28
+ import { AXTooltipModule } from '@acorex/components/tooltip';
29
+ import * as i6 from '@acorex/core/translation';
30
+ import { AXTranslationModule, translateSync } from '@acorex/core/translation';
31
+ import * as i5 from '@acorex/platform/auth';
32
+ import { AXPAuthModule } from '@acorex/platform/auth';
33
+ import { AXPSettingService, AXPStickyDirective } from '@acorex/platform/common';
34
+ import * as i6$1 from '@acorex/platform/layout/builder';
35
+ import { AXPLayoutBuilderModule, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
36
+ import { AXPLayoutThemeService, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutToolbarComponent, AXPThemeLayoutEndSideComponent } from '@acorex/platform/themes/shared';
37
+ import { AXPWidgetsModule } from '@acorex/platform/widgets';
38
+ import { CdkDropList, CdkDrag, CdkDragHandle, moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
39
+ import * as i1 from '@angular/common';
40
+ import { CommonModule } from '@angular/common';
41
+ import * as i2 from '@angular/forms';
42
+ import { FormsModule } from '@angular/forms';
43
+ import * as i7$2 from '@acorex/components/dropdown-button';
44
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
45
+ import { AXPBasePageComponent, AXPSimplePageLayout } from './acorex-platform-themes-default.mjs';
46
+ import * as i7 from '@acorex/components/image';
47
+ import { AXImageModule } from '@acorex/components/image';
48
+ import * as i6$2 from '@acorex/components/label';
49
+ import { AXLabelModule } from '@acorex/components/label';
50
+ import * as i9 from '@acorex/components/selection-list';
51
+ import { AXSelectionListModule } from '@acorex/components/selection-list';
52
+ import { AXPFiltersViewModel } from '@acorex/platform/layout/filters';
53
+ import * as i4$1 from '@acorex/components/switch';
54
+ import { AXSwitchModule } from '@acorex/components/switch';
55
+ import '@acorex/platform/layout/entity';
56
+ import { cloneDeep } from 'lodash-es';
57
+ import { AXSelectBoxModule } from '@acorex/components/select-box';
58
+
59
+ class AXPSimpleFiltersViewComponent {
60
+ constructor() {
61
+ this.vm = inject(AXPFiltersViewModel);
62
+ this.injector = inject(Injector);
63
+ this.availAbleFilters = input.required();
64
+ this.filters = model.required();
65
+ }
66
+ ngAfterViewInit() {
67
+ this.vm.setAvailableFilters(this.availAbleFilters());
68
+ this.vm.setFiltersModel(this.filters);
69
+ this.vm.initializeFilters();
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimpleFiltersViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSimpleFiltersViewComponent, isStandalone: true, selector: "axp-simple-filters-view", inputs: { availAbleFilters: { classPropertyName: "availAbleFilters", publicName: "availAbleFilters", isSignal: true, isRequired: true, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filters: "filtersChange" }, providers: [AXPLayoutBuilderService], ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!vm.activeFiltersCount()\">\n @if(!vm.activeFiltersCount()){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'filter.emptyTitle' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{\n 'filter.emptyDescription' | translate | async\n }}</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"vm.drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of vm.activeFilters(); track $index ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ item.title | translate | async }}</ax-label>\n <!-- @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n } -->\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"vm.context.set($event.data)\">\n <ng-container axp-widget-renderer [node]=\"item.widget\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"vm.removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(vm.activeFiltersCount()){\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"blank\"\n class=\"ax-sm ax-mx-2\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"outline\"\n class=\"ax-md ax-mx-2 ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover #fieldsPopover [target]=\"addField\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n (onOpened)=\"vm.resetFilterFields()\" [offsetX]=\"15\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">{{ 'filter.fields' | translate | async }}</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list [valueField]=\"'field'\" [textField]=\"'title'\" [ngModel]=\"vm.newFilters()\"\n (onValueChanged)=\"vm.onChoosingFiltersChange($event)\" [direction]=\"'vertical'\"\n [items]=\"vm.availableFilters()\" [multiple]=\"true\"></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"vm.onChoosingFiltersConfirm(); fieldsPopover.close()\" class=\"ax-sm\"\n [text]=\"'confirm' | translate | async\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i6$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i6$2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i9.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i10.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimpleFiltersViewComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'axp-simple-filters-view', providers: [AXPLayoutBuilderService], imports: [
77
+ FormsModule,
78
+ CommonModule,
79
+ AXDecoratorModule,
80
+ AXButtonModule,
81
+ AXTranslationModule,
82
+ AXPLayoutBuilderModule,
83
+ AXImageModule,
84
+ AXLabelModule,
85
+ AXBadgeModule,
86
+ AXSelectionListModule,
87
+ AXPopoverModule,
88
+ CdkDropList,
89
+ CdkDrag,
90
+ CdkDragHandle,
91
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!vm.activeFiltersCount()\">\n @if(!vm.activeFiltersCount()){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'filter.emptyTitle' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{\n 'filter.emptyDescription' | translate | async\n }}</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"vm.drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of vm.activeFilters(); track $index ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ item.title | translate | async }}</ax-label>\n <!-- @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n } -->\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"vm.context.set($event.data)\">\n <ng-container axp-widget-renderer [node]=\"item.widget\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"vm.removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(vm.activeFiltersCount()){\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"blank\"\n class=\"ax-sm ax-mx-2\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"outline\"\n class=\"ax-md ax-mx-2 ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover #fieldsPopover [target]=\"addField\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n (onOpened)=\"vm.resetFilterFields()\" [offsetX]=\"15\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">{{ 'filter.fields' | translate | async }}</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list [valueField]=\"'field'\" [textField]=\"'title'\" [ngModel]=\"vm.newFilters()\"\n (onValueChanged)=\"vm.onChoosingFiltersChange($event)\" [direction]=\"'vertical'\"\n [items]=\"vm.availableFilters()\" [multiple]=\"true\"></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"vm.onChoosingFiltersConfirm(); fieldsPopover.close()\" class=\"ax-sm\"\n [text]=\"'confirm' | translate | async\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>" }]
92
+ }] });
93
+
94
+ class AXPListViewOptionsColumnsComponent {
95
+ constructor() {
96
+ this.settings = inject(AXPSettingService);
97
+ this.onClosed = new EventEmitter();
98
+ this.columnsChanged = effect(() => {
99
+ this.vm.onColumnsChanged(this.vm.columns());
100
+ //.map((c) => ({ visible: c.visible, name: c.name }))
101
+ });
102
+ }
103
+ handleVisibilityChange(e, name) {
104
+ if (e.isUserInteraction) {
105
+ this.vm.columns.update((prev) => {
106
+ return prev.map((c) => {
107
+ return c.name === name ? { ...c, visible: e.value ?? true } : c;
108
+ });
109
+ });
110
+ }
111
+ }
112
+ drop(event) {
113
+ const columns = cloneDeep(this.vm.columns());
114
+ moveItemInArray(columns, event.previousIndex, event.currentIndex);
115
+ this.vm.columns.set(columns);
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionsColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPListViewOptionsColumnsComponent, isStandalone: true, selector: "axp-list-view-option-columns", inputs: { vm: ["viewModel", "vm"] }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.columns();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "component", type: i4$1.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }] }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionsColumnsComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'axp-list-view-option-columns', imports: [
123
+ CommonModule,
124
+ FormsModule,
125
+ CdkDropList,
126
+ CdkDrag,
127
+ CdkDragHandle,
128
+ AXButtonModule,
129
+ AXDecoratorModule,
130
+ AXSwitchModule,
131
+ AXTranslationModule,
132
+ ], template: "<div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.columns();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n }\n </div>\n</div>\n" }]
133
+ }], propDecorators: { vm: [{
134
+ type: Input,
135
+ args: ['viewModel']
136
+ }], onClosed: [{
137
+ type: Output
138
+ }] } });
139
+
140
+ class AXPListViewOptionSortingComponent {
141
+ constructor() {
142
+ this.isSM = false;
143
+ this.onClosed = new EventEmitter();
144
+ }
145
+ drop(event) {
146
+ moveItemInArray(this.vm.sortedFields(), event.previousIndex, event.currentIndex);
147
+ }
148
+ changeItemSort(item) {
149
+ const newDirection = item.dir === 'asc' ? 'desc' : item.dir === 'desc' ? undefined : 'asc';
150
+ this.vm.sortedFields.update((prev) => {
151
+ return prev.map((field) => {
152
+ if (field.name === item.name) {
153
+ return { ...field, dir: newDirection };
154
+ }
155
+ return field;
156
+ });
157
+ });
158
+ item.dir = newDirection;
159
+ }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionSortingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPListViewOptionSortingComponent, isStandalone: true, selector: "axp-list-view-option-sorting", inputs: { vm: ["viewModel", "vm"] }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\">\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXSelectBoxModule }] }); }
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionSortingComponent, decorators: [{
164
+ type: Component,
165
+ args: [{ selector: 'axp-list-view-option-sorting', imports: [
166
+ AXTranslationModule,
167
+ CommonModule,
168
+ FormsModule,
169
+ CdkDropList,
170
+ CdkDrag,
171
+ CdkDragHandle,
172
+ AXButtonModule,
173
+ AXImageModule,
174
+ AXDecoratorModule,
175
+ AXSwitchModule,
176
+ AXSelectBoxModule,
177
+ ], template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\">\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
178
+ }], propDecorators: { onClosed: [{
179
+ type: Output
180
+ }], vm: [{
181
+ type: Input,
182
+ args: ['viewModel']
183
+ }] } });
184
+
185
+ class AXPEntityMasterListViewComponent extends AXPBasePageComponent {
186
+ constructor(platform) {
187
+ super();
188
+ this.platform = platform;
189
+ this.activeRoute = inject(ActivatedRoute);
190
+ this.vm = this.activeRoute.snapshot.data['vm'];
191
+ //
192
+ this.store = inject(AXPLayoutThemeService);
193
+ //
194
+ this.searchBarShown = signal(true);
195
+ this.activeEndSideView = signal('column');
196
+ // @ViewChild('grid', { static: true}) grid: AXDataTableComponent;
197
+ this.grid = viewChild('grid');
198
+ this.commandRowItems = computed(() => {
199
+ return this.vm.primaryRowActions().map((c) => {
200
+ return {
201
+ icon: c.icon,
202
+ name: c.name,
203
+ text: translateSync(c.title),
204
+ color: c.color,
205
+ disabled: c.disabled,
206
+ };
207
+ });
208
+ });
209
+ this.getDropdownRowItems = (rowData) => {
210
+ return Promise.resolve(this.dropdownRowItems(rowData));
211
+ };
212
+ this.getCommandRowItems = () => {
213
+ return this.commandRowItems();
214
+ };
215
+ effect(() => {
216
+ if (this.grid()) {
217
+ this.grid().selectedRows = this.vm.selectedItems();
218
+ }
219
+ });
220
+ //
221
+ this.vm.events$.subscribe(async (e) => {
222
+ const refreshTargetId = e.meta?.refreshTargetId;
223
+ if (e.action == 'refresh') {
224
+ if (refreshTargetId) {
225
+ this.grid()?.refreshItemChildren(refreshTargetId);
226
+ }
227
+ else {
228
+ this.grid()?.refresh();
229
+ }
230
+ }
231
+ });
232
+ }
233
+ ngAfterViewInit() {
234
+ this.vm.setView();
235
+ }
236
+ closeFiltersDrawer(e, collapsed) {
237
+ if (collapsed) {
238
+ e.close();
239
+ this.vm.discardFilters();
240
+ }
241
+ }
242
+ handleChangeSearchValue(e) {
243
+ if (e.isUserInteraction) {
244
+ this.vm.applyInlineFilter(e.value);
245
+ }
246
+ }
247
+ onColumnSizeChanged(e) {
248
+ if (e.isUserInteraction && e.type === 'end') {
249
+ this.vm.saveSettings('columnSizes', e.data);
250
+ }
251
+ }
252
+ onPageChanged(e) {
253
+ if (e.isUserInteraction) {
254
+ const pageSizeChanged = e.take != this.vm.dataSource.pageSize;
255
+ if (pageSizeChanged) {
256
+ this.vm.saveSettings('pageSize', e.take);
257
+ }
258
+ }
259
+ }
260
+ async dropdownRowItems(rowData) {
261
+ return (await this.vm.secondaryRowActions(rowData)).map((c) => ({
262
+ icon: c.icon,
263
+ name: c.name,
264
+ text: translateSync(c.title),
265
+ color: c.color,
266
+ disabled: c.disabled,
267
+ }));
268
+ }
269
+ async handleRowDbClick(e) {
270
+ //TODO: find a way for default action
271
+ const item = [...this.commandRowItems(), ...(await this.dropdownRowItems(e.data))][0];
272
+ if (item) {
273
+ const d = {
274
+ component: e.component,
275
+ name: item.name,
276
+ data: e.data,
277
+ };
278
+ this.handleRowCommandClick(d);
279
+ }
280
+ }
281
+ async handleRowCommandClick(e) {
282
+ this.vm.executeCommand(e.name, e.data);
283
+ }
284
+ async handleSelectedRowsChange(rows) {
285
+ this.vm.selectedItems.set(rows);
286
+ }
287
+ makeResponsive(value) {
288
+ if (this.platform.is('Mobile') || this.platform.is('SM')) {
289
+ return '';
290
+ }
291
+ else {
292
+ return value;
293
+ }
294
+ }
295
+ toggleSideBar(sideBar) {
296
+ this.toggleEndSide();
297
+ if (sideBar) {
298
+ this.activeEndSideView.set(sideBar);
299
+ }
300
+ }
301
+ toggleSearchBar() {
302
+ this.searchBarShown.update((v) => !v);
303
+ }
304
+ handleResetClick(sideBar) {
305
+ switch (sideBar) {
306
+ case 'filter': {
307
+ this.vm.resetFilters();
308
+ break;
309
+ }
310
+ case 'sort': {
311
+ this.vm.resetSorts();
312
+ break;
313
+ }
314
+ case 'column': {
315
+ this.vm.resetColumns();
316
+ break;
317
+ }
318
+ }
319
+ }
320
+ handleDiscardClick(sideBar) {
321
+ switch (sideBar) {
322
+ case 'filter': {
323
+ this.vm.discardFilters();
324
+ break;
325
+ }
326
+ case 'sort': {
327
+ this.vm.resetSorts();
328
+ break;
329
+ }
330
+ case 'column': {
331
+ this.vm.resetColumns();
332
+ break;
333
+ }
334
+ }
335
+ }
336
+ handleApplyClick(sideBar) {
337
+ this.vm.applyFilterAndSort();
338
+ this.toggleEndSide();
339
+ }
340
+ ngOnDestroy() {
341
+ this.vm.destroy();
342
+ }
343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1$1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
344
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <!-- Breadcrumbs -->\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"store.isSmall()\" class=\"ax-opacity-50\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\">\n {{ t(b.title) | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <!-- Title & Description -->\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\n @if(vm.description()) {\n <axp-layout-description #sticky=\"axpSticky\" [axpSticky]=\"'ax-hidden'\">\n {{ t(vm.description()) | async }}\n </axp-layout-description>\n }\n\n <!-- Actions -->\n <axp-layout-actions>\n <!-- Primary Actions -->\n <axp-layout-actions-primary>\n @for(tr of vm.primaryActions();track $index) {\n <ax-button\n [disabled]=\"tr.disabled\"\n [text]=\"tr.title | translate | async\"\n [color]=\"tr.color\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-layout-actions-primary>\n\n <!-- Secondary Actions -->\n @if(vm.secondaryActions().length) {\n <axp-layout-actions-secondary>\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [color]=\"tr.color\"\n [disabled]=\"tr.disabled\"\n [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-actions-secondary>\n }\n </axp-layout-actions>\n\n <!-- Toolbar -->\n <axp-layout-toolbar>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-- Selection/View Section -->\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.clearSelection()\" class=\"ax-text-sm ax-text-primary-500 ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n } @else {\n <!-- View Selector -->\n <ax-button [text]=\"vm.view().title | translate | async\" #views [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of vm.views()\"\n [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\"\n (onClick)=\"vm.setView(v.name)\"\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- Inline Search -->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"(t('widget.lookup.search') | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n } }\n </div>\n\n <!-- View Actions -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" [color]=\"'default'\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon>\n </ax-button>\n }\n\n <ax-button\n [text]=\"makeResponsive('entity.columns' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('column')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n\n <ax-button\n [text]=\"makeResponsive('filter.title' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('filter')\"\n *feature=\"'axp-entity-list-advance-filter'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge\n [text]=\"makeResponsive(vm.simpleFilters().filters?.length?.toString() || '0')\"\n color=\"primary\"\n ></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button\n [text]=\"makeResponsive('entity.sort' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('sort')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n </axp-layout-toolbar>\n\n <!-- Mobile Search Bar -->\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box\n [class.collapsed-search-box]=\"searchBarShown()\"\n class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-page-header>\n\n <!-- Content -->\n <axp-layout-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-layout-page-content>\n\n <axp-layout-page-end-side class=\"!ax-min-w-80\">\n <axp-layout-header\n class=\"!ax-flex-row ax-justify-between ax-items-center ax-bg-light ax-border-light ax-border-b !ax-py-2\"\n >\n <axp-layout-suffix>\n <ax-button (onClick)=\"toggleEndSide()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n </axp-layout-suffix>\n <axp-layout-title class=\"ax-w-max\">\n {{ activeEndSideView() + '.title' | translate | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content class=\"ax-px-4 ax-py-2\">\n @switch (activeEndSideView()) { @case ('column') {\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n } @case ('filter') {\n\n <axp-simple-filters-view\n [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"\n ></axp-simple-filters-view>\n } @case ('sort') {\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n } }\n </axp-layout-content>\n <axp-layout-footer class=\"ax-flex ax-bg-light ax-gap-2 ax-py-2 ax-px-4\">\n <axp-layout-prefix>\n <ax-button\n [text]=\"'filter.apply' | translate | async\"\n color=\"primary\"\n (onClick)=\"handleApplyClick(activeEndSideView())\"\n ></ax-button>\n <ax-dropdown-button\n [color]=\"'default'\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick(activeEndSideView())\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick(activeEndSideView())\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-prefix>\n </axp-layout-footer>\n </axp-layout-page-end-side>\n</axp-layout-simple-page>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i6$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1$3.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i1$3.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i8.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "ngmodule", type:
345
+ //
346
+ AXPLayoutBuilderModule }, { kind: "component", type: i6$1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "directive", type: i5.AXPFeatureDirective, selector: "[feature]", inputs: ["feature", "featureElse"] }, { kind: "component", type:
347
+ //
348
+ AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: ["viewModel"], outputs: ["onClosed"] }, { kind: "component", type: AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: ["viewModel"], outputs: ["onClosed"] }, { kind: "component", type: AXPSimpleFiltersViewComponent, selector: "axp-simple-filters-view", inputs: ["availAbleFilters", "filters"], outputs: ["filtersChange"] }, { kind: "component", type:
349
+ //
350
+ AXPSimplePageLayout, selector: "axp-layout-simple-page" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-title-bar, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutFooterComponent, selector: "axp-layout-footer, axp-layout-page-footer" }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-layout-page-header" }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-layout-actions-primary" }, { kind: "component", type: AXPThemeLayoutPageSecondaryActionsComponent, selector: "axp-layout-actions-secondary" }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "component", type: AXPThemeLayoutEndSideComponent, selector: "axp-layout-page-end-side" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7$2.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
351
+ }
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMasterListViewComponent, decorators: [{
353
+ type: Component,
354
+ args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
355
+ CommonModule,
356
+ FormsModule,
357
+ RouterModule,
358
+ AXButtonModule,
359
+ AXDecoratorModule,
360
+ AXBadgeModule,
361
+ AXDropdownModule,
362
+ AXPopoverModule,
363
+ AXFormModule,
364
+ AXActionSheetModule,
365
+ AXDrawerModule,
366
+ AXDialogModule,
367
+ AXLoadingModule,
368
+ AXTabsModule,
369
+ AXTooltipModule,
370
+ AXBreadcrumbsModule,
371
+ AXSearchBoxModule,
372
+ AXDataTableModule,
373
+ AXTranslationModule,
374
+ DragDropModule,
375
+ //
376
+ AXPLayoutBuilderModule,
377
+ AXPWidgetsModule,
378
+ AXPStickyDirective,
379
+ AXPAuthModule,
380
+ //
381
+ AXPListViewOptionsColumnsComponent,
382
+ AXPListViewOptionSortingComponent,
383
+ AXPSimpleFiltersViewComponent,
384
+ //
385
+ AXPSimplePageLayout,
386
+ AXPThemeLayoutBlockComponent,
387
+ AXPThemeLayoutHeaderComponent,
388
+ AXPThemeLayoutFooterComponent,
389
+ AXPThemeLayoutPageHeaderComponent,
390
+ AXPThemeLayoutActionsComponent,
391
+ AXPThemeLayoutPagePrimaryActionsComponent,
392
+ AXPThemeLayoutPageSecondaryActionsComponent,
393
+ AXPThemeLayoutToolbarComponent,
394
+ AXPThemeLayoutEndSideComponent,
395
+ AXDropdownButtonModule,
396
+ ], template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <!-- Breadcrumbs -->\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"store.isSmall()\" class=\"ax-opacity-50\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\">\n {{ t(b.title) | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <!-- Title & Description -->\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\n @if(vm.description()) {\n <axp-layout-description #sticky=\"axpSticky\" [axpSticky]=\"'ax-hidden'\">\n {{ t(vm.description()) | async }}\n </axp-layout-description>\n }\n\n <!-- Actions -->\n <axp-layout-actions>\n <!-- Primary Actions -->\n <axp-layout-actions-primary>\n @for(tr of vm.primaryActions();track $index) {\n <ax-button\n [disabled]=\"tr.disabled\"\n [text]=\"tr.title | translate | async\"\n [color]=\"tr.color\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-layout-actions-primary>\n\n <!-- Secondary Actions -->\n @if(vm.secondaryActions().length) {\n <axp-layout-actions-secondary>\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [color]=\"tr.color\"\n [disabled]=\"tr.disabled\"\n [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-actions-secondary>\n }\n </axp-layout-actions>\n\n <!-- Toolbar -->\n <axp-layout-toolbar>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-- Selection/View Section -->\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.clearSelection()\" class=\"ax-text-sm ax-text-primary-500 ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n } @else {\n <!-- View Selector -->\n <ax-button [text]=\"vm.view().title | translate | async\" #views [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of vm.views()\"\n [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\"\n (onClick)=\"vm.setView(v.name)\"\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- Inline Search -->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"(t('widget.lookup.search') | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n } }\n </div>\n\n <!-- View Actions -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" [color]=\"'default'\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon>\n </ax-button>\n }\n\n <ax-button\n [text]=\"makeResponsive('entity.columns' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('column')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n\n <ax-button\n [text]=\"makeResponsive('filter.title' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('filter')\"\n *feature=\"'axp-entity-list-advance-filter'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge\n [text]=\"makeResponsive(vm.simpleFilters().filters?.length?.toString() || '0')\"\n color=\"primary\"\n ></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button\n [text]=\"makeResponsive('entity.sort' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('sort')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n </axp-layout-toolbar>\n\n <!-- Mobile Search Bar -->\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box\n [class.collapsed-search-box]=\"searchBarShown()\"\n class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-page-header>\n\n <!-- Content -->\n <axp-layout-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-layout-page-content>\n\n <axp-layout-page-end-side class=\"!ax-min-w-80\">\n <axp-layout-header\n class=\"!ax-flex-row ax-justify-between ax-items-center ax-bg-light ax-border-light ax-border-b !ax-py-2\"\n >\n <axp-layout-suffix>\n <ax-button (onClick)=\"toggleEndSide()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n </axp-layout-suffix>\n <axp-layout-title class=\"ax-w-max\">\n {{ activeEndSideView() + '.title' | translate | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content class=\"ax-px-4 ax-py-2\">\n @switch (activeEndSideView()) { @case ('column') {\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n } @case ('filter') {\n\n <axp-simple-filters-view\n [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"\n ></axp-simple-filters-view>\n } @case ('sort') {\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n } }\n </axp-layout-content>\n <axp-layout-footer class=\"ax-flex ax-bg-light ax-gap-2 ax-py-2 ax-px-4\">\n <axp-layout-prefix>\n <ax-button\n [text]=\"'filter.apply' | translate | async\"\n color=\"primary\"\n (onClick)=\"handleApplyClick(activeEndSideView())\"\n ></ax-button>\n <ax-dropdown-button\n [color]=\"'default'\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick(activeEndSideView())\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick(activeEndSideView())\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-prefix>\n </axp-layout-footer>\n </axp-layout-page-end-side>\n</axp-layout-simple-page>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\n"] }]
397
+ }], ctorParameters: () => [{ type: i1$1.AXPlatform }] });
398
+
399
+ export { AXPEntityMasterListViewComponent };
400
+ //# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map