@acorex/platform 18.1.1 → 18.1.3

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 (94) hide show
  1. package/esm2022/common/lib/schema/widgets/rich-text/rich-text-widget-edit.component.mjs +1 -2
  2. package/esm2022/layout/builder/lib/builder/widget-catalog.mjs +2 -1
  3. package/esm2022/layout/builder/lib/builder/widget.types.mjs +64 -2
  4. package/esm2022/layout/designer/lib/designer/index.mjs +5 -4
  5. package/esm2022/layout/entity/lib/entity.module.mjs +4 -3
  6. package/esm2022/layout/entity/lib/widgets/widget-selector/index.mjs +4 -0
  7. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.mjs +130 -0
  8. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.mjs +18 -0
  9. package/esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.mjs +19 -0
  10. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +2 -2
  11. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.mjs +3 -3
  12. package/esm2022/themes/default/lib/layouts/entity-layouts/index.mjs +2 -2
  13. package/esm2022/themes/shared/acorex-platform-themes-shared.mjs +5 -0
  14. package/esm2022/themes/shared/index.mjs +6 -0
  15. package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +397 -0
  16. package/esm2022/themes/shared/lib/comments/comment-lookup-popup.component.mjs +56 -0
  17. package/esm2022/themes/shared/lib/comments/comments.service.mjs +3 -0
  18. package/esm2022/themes/shared/lib/comments/comments.type.mjs +2 -0
  19. package/esm2022/themes/shared/lib/shared.module.mjs +16 -0
  20. package/esm2022/widgets/lib/properties/editors.props.mjs +102 -308
  21. package/esm2022/widgets/lib/properties/general.props.mjs +4 -13
  22. package/esm2022/widgets/lib/widgets/actions/button/button-widget-designer.component.mjs +1 -2
  23. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-edit.component.mjs +9 -4
  24. package/esm2022/widgets/lib/widgets/advance/map/map-box-widget-view.component.mjs +4 -4
  25. package/esm2022/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.mjs +4 -4
  26. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +31 -22
  27. package/esm2022/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.mjs +3 -3
  28. package/esm2022/widgets/lib/widgets/layout/block/block-widget-designer.component.mjs +3 -7
  29. package/esm2022/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.mjs +1 -3
  30. package/esm2022/widgets/lib/widgets/layout/grid/grid-widget-view.component.mjs +1 -3
  31. package/esm2022/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.mjs +1 -5
  32. package/esm2022/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.mjs +1 -3
  33. package/esm2022/widgets/lib/widgets/layout/page/page-widget-view.component.mjs +1 -3
  34. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.mjs +94 -19
  35. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.mjs +119 -8
  36. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.mjs +3 -2
  37. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.mjs +14 -22
  38. package/esm2022/widgets/lib/widgets/layout/repeater/repeater-widget.config.mjs +16 -3
  39. package/fesm2022/{acorex-platform-common-rich-text-widget-edit.component-CnH3MjYz.mjs → acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs} +1 -2
  40. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-Do3YcmKg.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-common.mjs +1 -1
  42. package/fesm2022/acorex-platform-layout-builder.mjs +98 -36
  43. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  44. package/fesm2022/acorex-platform-layout-designer.mjs +190 -100
  45. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-layout-entity.mjs +157 -5
  47. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CWXJxLS0.mjs → acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs} +6 -6
  49. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CWXJxLS0.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs.map} +1 -1
  50. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs +145 -0
  51. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map +1 -0
  52. package/fesm2022/acorex-platform-themes-default.mjs +128 -8
  53. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  54. package/fesm2022/acorex-platform-themes-shared.mjs +469 -0
  55. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-Oxpdaz9P.mjs → acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs} +1 -2
  57. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-B9bfVuC4.mjs.map +1 -0
  58. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs → acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs} +4 -4
  59. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DzGg-uFi.mjs.map +1 -0
  60. package/fesm2022/acorex-platform-widgets.mjs +378 -410
  61. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  62. package/layout/builder/lib/builder/widget.types.d.ts +31 -1
  63. package/layout/designer/lib/designer/index.d.ts +4 -3
  64. package/layout/entity/lib/widgets/widget-selector/index.d.ts +3 -0
  65. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +25 -0
  66. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +6 -0
  67. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.d.ts +7 -0
  68. package/package.json +19 -13
  69. package/themes/default/lib/layouts/entity-layouts/index.d.ts +1 -1
  70. package/themes/shared/README.md +4 -0
  71. package/themes/shared/index.d.ts +5 -0
  72. package/themes/shared/lib/comments/comment-list-view.component.d.ts +60 -0
  73. package/themes/shared/lib/comments/comment-lookup-popup.component.d.ts +10 -0
  74. package/themes/shared/lib/comments/comments.service.d.ts +8 -0
  75. package/themes/shared/lib/comments/comments.type.d.ts +70 -0
  76. package/themes/shared/lib/shared.module.d.ts +6 -0
  77. package/widgets/lib/properties/editors.props.d.ts +3 -3
  78. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +1 -0
  79. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +4 -1
  80. package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +4 -3
  81. package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +10 -2
  82. package/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.d.ts +1 -1
  83. package/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.d.ts +2 -4
  84. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.mjs +0 -123
  85. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.mjs +0 -3
  86. package/fesm2022/acorex-platform-common-rich-text-widget-edit.component-CnH3MjYz.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs +0 -100
  88. package/fesm2022/acorex-platform-layout-designer-widget-picker.component-BZryrCyh.mjs.map +0 -1
  89. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs +0 -357
  90. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs.map +0 -1
  91. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-Oxpdaz9P.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-DAGbdSTk.mjs.map +0 -1
  93. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comment-list-view.component.d.ts +0 -33
  94. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/comments/comments.service.d.ts +0 -11
@@ -0,0 +1,145 @@
1
+ import { AXActionSheetModule } from '@acorex/components/action-sheet';
2
+ import * as i8$1 from '@acorex/components/breadcrumbs';
3
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
4
+ import * as i4 from '@acorex/components/button';
5
+ import { AXButtonModule } from '@acorex/components/button';
6
+ import * as i3 from '@acorex/components/decorators';
7
+ import { AXDecoratorModule } from '@acorex/components/decorators';
8
+ import { AXDialogModule } from '@acorex/components/dialog';
9
+ import * as i4$1 from '@acorex/components/drawer';
10
+ import { AXDrawerModule } from '@acorex/components/drawer';
11
+ import * as i8 from '@acorex/components/dropdown';
12
+ import { AXDropdownModule } from '@acorex/components/dropdown';
13
+ import * as i2 from '@acorex/components/form';
14
+ import { AXFormModule } from '@acorex/components/form';
15
+ import { AXLoadingModule } from '@acorex/components/loading';
16
+ import { AXPopoverModule } from '@acorex/components/popover';
17
+ import * as i3$1 from '@acorex/components/tabs';
18
+ import { AXTabsModule } from '@acorex/components/tabs';
19
+ import * as i9 from '@acorex/core/translation';
20
+ import { AXTranslationModule } from '@acorex/core/translation';
21
+ import { AXPGridLayoutDirective, AXPStickyDirective, isSmallScreen, getChildDrawer } from '@acorex/platform/common';
22
+ import * as i5 from '@acorex/platform/layout/builder';
23
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
24
+ import { AXPCommentListViewComponent } from '@acorex/platform/themes/shared';
25
+ import { AXPWidgetsModule } from '@acorex/platform/widgets';
26
+ import * as i1 from '@angular/common';
27
+ import { CommonModule } from '@angular/common';
28
+ import * as i0 from '@angular/core';
29
+ import { inject, signal, Component, ChangeDetectionStrategy } from '@angular/core';
30
+ import * as i2$1 from '@angular/router';
31
+ import { ActivatedRoute, RouterModule } from '@angular/router';
32
+ import { Store } from '@ngrx/store';
33
+ import { AXPEntityDetailListViewComponent } from './acorex-platform-themes-default.mjs';
34
+ import '@acorex/core/utils';
35
+ import '@acorex/components/side-menu';
36
+ import '@acorex/platform/auth';
37
+ import '@acorex/components/avatar';
38
+ import '@acorex/components/badge';
39
+ import '@acorex/components/image';
40
+ import '@acorex/platform/layout/entity';
41
+ import '@acorex/components/data-table';
42
+ import '@acorex/components/search-box';
43
+ import '@acorex/components/tooltip';
44
+ import '@acorex/core/platform';
45
+ import '@acorex/platform/layouts';
46
+ import '@acorex/platform/workflow';
47
+ import '@angular/forms';
48
+ import 'rxjs';
49
+
50
+ class AXPEntitySingleOverviewComponent {
51
+ constructor() {
52
+ this.activeRoute = inject(ActivatedRoute);
53
+ this.vm = this.activeRoute.snapshot.data['vm'];
54
+ this.selectedRelatedIEntityTabIndex = signal(0);
55
+ }
56
+ handleActiveRelatedEntityChanged(e) {
57
+ this.selectedRelatedIEntityTabIndex.set(e.index);
58
+ }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntitySingleOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntitySingleOverviewComponent, isStandalone: true, selector: "axp-entity-single-overview", ngImport: i0, template: "<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'classic'\"\n class=\"ax-mt-4 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n</ax-tabs>\n@for(e of vm.relatedEntities();track $index;let index= $index){\n<div [class.ax-hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n</div>\n} }\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i3$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i3$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
61
+ //
62
+ AXPLayoutBuilderModule }, { kind: "component", type: i5.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i5.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "component", type: AXPEntityDetailListViewComponent, selector: "axp-entity-detail-list-view", inputs: ["viewModel"] }, { kind: "ngmodule", type:
63
+ //
64
+ AXTranslationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntitySingleOverviewComponent, decorators: [{
67
+ type: Component,
68
+ args: [{ selector: 'axp-entity-single-overview', imports: [
69
+ CommonModule,
70
+ RouterModule,
71
+ AXDecoratorModule,
72
+ AXDropdownModule,
73
+ AXPopoverModule,
74
+ AXFormModule,
75
+ AXActionSheetModule,
76
+ AXDrawerModule,
77
+ AXDialogModule,
78
+ AXLoadingModule,
79
+ AXTabsModule,
80
+ AXButtonModule,
81
+ AXBreadcrumbsModule,
82
+ //
83
+ AXPLayoutBuilderModule,
84
+ AXPWidgetsModule,
85
+ AXPStickyDirective,
86
+ AXPGridLayoutDirective,
87
+ AXPEntityDetailListViewComponent,
88
+ //
89
+ AXTranslationModule,
90
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'classic'\"\n class=\"ax-mt-4 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n</ax-tabs>\n@for(e of vm.relatedEntities();track $index;let index= $index){\n<div [class.ax-hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n</div>\n} }\n" }]
91
+ }] });
92
+
93
+ class AXPEntityMasterSingleViewComponent {
94
+ constructor() {
95
+ this.activeRoute = inject(ActivatedRoute);
96
+ this.vm = this.activeRoute.snapshot.data['vm'];
97
+ //
98
+ this.store = inject((Store));
99
+ this.isSM = this.store.select(isSmallScreen());
100
+ this.isOpen = this.store.select(getChildDrawer());
101
+ this.selectedDetailTabIndex = signal(0);
102
+ }
103
+ handleActiveDetailTabChanged(e) {
104
+ this.selectedDetailTabIndex.set(e.index);
105
+ }
106
+ ngOnDestroy() {
107
+ this.vm.destroy();
108
+ }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityMasterSingleViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntityMasterSingleViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content.getHostElement()\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\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) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ 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-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Sections -->\n <ax-tabs\n (onActiveTabChanged)=\"handleActiveDetailTabChanged($event)\"\n [look]=\"'classic'\"\n class=\"ax-mt-4 ax-font-semibold\"\n [class.ax-hidden]=\"sticky.isSticky\"\n >\n <ax-tab-item id=\"overview\" [text]=\"('overview' | translate | async) ?? 'Overview'\"> </ax-tab-item>\n <ax-tab-item id=\"history\" [text]=\"('history' | translate | async) ?? 'History'\"> </ax-tab-item>\n <ax-tab-item id=\"comments\" [text]=\"('comments' | translate | async) ?? 'Comments'\"> </ax-tab-item>\n </ax-tabs>\n </div>\n\n @switch (selectedDetailTabIndex()) { @case(1){\n <div></div>\n } @case(2){\n <axp-comment-list-view vm=\"vm\"></axp-comment-list-view>\n } @default {\n <axp-entity-single-overview></axp-entity-single-overview>\n } }\n <!-- Finish Sections -->\n </div>\n </ax-content>\n</ax-drawer-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { 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-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i8.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i4$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i3$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i3$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "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: AXBreadcrumbsModule }, { kind: "component", type: i8$1.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i8$1.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
111
+ //
112
+ AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXPEntitySingleOverviewComponent, selector: "axp-entity-single-overview" }, { kind: "component", type: AXPCommentListViewComponent, selector: "axp-comment-list-view" }, { kind: "ngmodule", type:
113
+ //
114
+ AXTranslationModule }, { kind: "pipe", type: i9.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityMasterSingleViewComponent, decorators: [{
117
+ type: Component,
118
+ args: [{ imports: [
119
+ CommonModule,
120
+ RouterModule,
121
+ AXDecoratorModule,
122
+ AXDropdownModule,
123
+ AXPopoverModule,
124
+ AXFormModule,
125
+ AXActionSheetModule,
126
+ AXDrawerModule,
127
+ AXDialogModule,
128
+ AXLoadingModule,
129
+ AXTabsModule,
130
+ AXButtonModule,
131
+ AXBreadcrumbsModule,
132
+ //
133
+ AXPLayoutBuilderModule,
134
+ AXPWidgetsModule,
135
+ AXPStickyDirective,
136
+ AXPGridLayoutDirective,
137
+ AXPEntitySingleOverviewComponent,
138
+ AXPCommentListViewComponent,
139
+ //
140
+ AXTranslationModule,
141
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content.getHostElement()\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\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) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ 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-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Sections -->\n <ax-tabs\n (onActiveTabChanged)=\"handleActiveDetailTabChanged($event)\"\n [look]=\"'classic'\"\n class=\"ax-mt-4 ax-font-semibold\"\n [class.ax-hidden]=\"sticky.isSticky\"\n >\n <ax-tab-item id=\"overview\" [text]=\"('overview' | translate | async) ?? 'Overview'\"> </ax-tab-item>\n <ax-tab-item id=\"history\" [text]=\"('history' | translate | async) ?? 'History'\"> </ax-tab-item>\n <ax-tab-item id=\"comments\" [text]=\"('comments' | translate | async) ?? 'Comments'\"> </ax-tab-item>\n </ax-tabs>\n </div>\n\n @switch (selectedDetailTabIndex()) { @case(1){\n <div></div>\n } @case(2){\n <axp-comment-list-view vm=\"vm\"></axp-comment-list-view>\n } @default {\n <axp-entity-single-overview></axp-entity-single-overview>\n } }\n <!-- Finish Sections -->\n </div>\n </ax-content>\n</ax-drawer-container>\n" }]
142
+ }] });
143
+
144
+ export { AXPEntityMasterSingleViewComponent };
145
+ //# sourceMappingURL=acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.html"],"sourcesContent":["import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPGridLayoutDirective, AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterSingleViewModel } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { AXPEntityDetailListViewComponent } from '../../entity-detail-list-view/entity-detail-list-view.component';\n\n@Component({\n templateUrl: './entity-single-overview.component.html',\n selector: 'axp-entity-single-overview',\n imports: [\n CommonModule,\n RouterModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXButtonModule,\n AXBreadcrumbsModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPStickyDirective,\n AXPGridLayoutDirective,\n AXPEntityDetailListViewComponent,\n\n //\n AXTranslationModule,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPEntitySingleOverviewComponent {\n private activeRoute = inject(ActivatedRoute);\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterSingleViewModel;\n\n protected selectedRelatedIEntityTabIndex = signal(0);\n\n handleActiveRelatedEntityChanged(e: AXTabStripChangedEvent) {\n this.selectedRelatedIEntityTabIndex.set(e.index);\n }\n}\n","<div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-2\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n</div>\n\n@if(vm.relatedEntities().length) {\n<ax-tabs\n [look]=\"'classic'\"\n class=\"ax-mt-4 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n</ax-tabs>\n@for(e of vm.relatedEntities();track $index;let index= $index){\n<div [class.ax-hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n</div>\n} }\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport {\n AXPAdminLayoutState,\n AXPGridLayoutDirective,\n AXPStickyDirective,\n getChildDrawer,\n isSmallScreen,\n} from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterSingleViewModel } from '@acorex/platform/layout/entity';\nimport { AXPCommentListViewComponent } from '@acorex/platform/themes/shared';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { AXPEntitySingleOverviewComponent } from './overview/entity-single-overview.component';\n\n@Component({\n templateUrl: './entity-master-single-view.component.html',\n imports: [\n CommonModule,\n RouterModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXButtonModule,\n AXBreadcrumbsModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPStickyDirective,\n AXPGridLayoutDirective,\n AXPEntitySingleOverviewComponent,\n AXPCommentListViewComponent,\n //\n AXTranslationModule,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPEntityMasterSingleViewComponent {\n private activeRoute = inject(ActivatedRoute);\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterSingleViewModel;\n //\n private store = inject(Store<AXPAdminLayoutState>);\n protected isSM = this.store.select(isSmallScreen());\n protected isOpen = this.store.select(getChildDrawer());\n\n protected selectedDetailTabIndex = signal(0);\n\n handleActiveDetailTabChanged(e: AXTabStripChangedEvent) {\n this.selectedDetailTabIndex.set(e.index);\n }\n\n ngOnDestroy(): void {\n this.vm.destroy();\n }\n}\n","<ax-drawer-container>\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\n <ax-tabs look=\"with-line\" location=\"start\">\n @for(tab of (loader.sections$ | async); track tab.name)\n {\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\n [disabled]=\"editForm.context\">\n </ax-tab-item>\n }\n </ax-tabs>\n </ax-content>\n </ax-drawer> -->\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n >\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content.getHostElement()\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\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) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ 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-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Sections -->\n <ax-tabs\n (onActiveTabChanged)=\"handleActiveDetailTabChanged($event)\"\n [look]=\"'classic'\"\n class=\"ax-mt-4 ax-font-semibold\"\n [class.ax-hidden]=\"sticky.isSticky\"\n >\n <ax-tab-item id=\"overview\" [text]=\"('overview' | translate | async) ?? 'Overview'\"> </ax-tab-item>\n <ax-tab-item id=\"history\" [text]=\"('history' | translate | async) ?? 'History'\"> </ax-tab-item>\n <ax-tab-item id=\"comments\" [text]=\"('comments' | translate | async) ?? 'Comments'\"> </ax-tab-item>\n </ax-tabs>\n </div>\n\n @switch (selectedDetailTabIndex()) { @case(1){\n <div></div>\n } @case(2){\n <axp-comment-list-view vm=\"vm\"></axp-comment-list-view>\n } @default {\n <axp-entity-single-overview></axp-entity-single-overview>\n } }\n <!-- Finish Sections -->\n </div>\n </ax-content>\n</ax-drawer-container>\n"],"names":["i1","i3","i2","i4","i5","i6","i7","i8"],"mappings":"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"}
@@ -1,14 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, inject, signal, ViewChild, NgModule } from '@angular/core';
2
+ import { Component, ViewEncapsulation, inject, signal, ViewChild, NgModule, computed, ChangeDetectionStrategy, Input } from '@angular/core';
3
3
  import * as i2 from '@angular/router';
4
4
  import { Router, RouterModule, RouteReuseStrategy } from '@angular/router';
5
5
  import * as i1 from '@acorex/platform/common';
6
- import { getRootDrawer, AXPLayoutRootDrawerToggle, AXP_MENU_LOADER, AXP_PLATFORM_CONFIG_TOKEN, AXPLayoutService, AXPRouteUtilityService, isSmallScreen, AXPNavigateAction, AXPLayoutRootDrawerClose, AXPLogoComponent, AXPComponentSlotModule, AXPCommonModule } from '@acorex/platform/common';
6
+ import { getRootDrawer, AXPLayoutRootDrawerToggle, AXP_MENU_LOADER, AXP_PLATFORM_CONFIG_TOKEN, AXPLayoutService, AXPRouteUtilityService, isSmallScreen, AXPNavigateAction, AXPLayoutRootDrawerClose, AXPLogoComponent, AXPComponentSlotModule, AXPCommonModule, AXPStickyDirective, AXPGridLayoutDirective } from '@acorex/platform/common';
7
+ import * as i4$1 from '@ngrx/store';
7
8
  import { Store } from '@ngrx/store';
8
9
  import * as i1$1 from '@angular/common';
9
10
  import { CommonModule } from '@angular/common';
10
11
  import * as i4 from '@acorex/components/drawer';
11
12
  import { AXDrawerModule } from '@acorex/components/drawer';
13
+ import * as i2$1 from '@acorex/core/utils';
12
14
  import { AXUnsubscriber } from '@acorex/core/utils';
13
15
  import * as i3 from '@acorex/components/decorators';
14
16
  import { AXDecoratorModule } from '@acorex/components/decorators';
@@ -20,12 +22,33 @@ import * as i8 from '@acorex/platform/auth';
20
22
  import { AXPAuthModule } from '@acorex/platform/auth';
21
23
  import { AXAvatarModule } from '@acorex/components/avatar';
22
24
  import { AXBadgeModule } from '@acorex/components/badge';
25
+ import * as i4$2 from '@acorex/components/button';
23
26
  import { AXButtonModule } from '@acorex/components/button';
27
+ import * as i8$1 from '@acorex/components/dropdown';
24
28
  import { AXDropdownModule } from '@acorex/components/dropdown';
25
29
  import { AXImageModule } from '@acorex/components/image';
26
30
  import { AXPopoverModule } from '@acorex/components/popover';
27
31
  import { AXTabsModule } from '@acorex/components/tabs';
28
32
  import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
33
+ import * as i1$2 from '@acorex/components/action-sheet';
34
+ import { AXActionSheetModule } from '@acorex/components/action-sheet';
35
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
36
+ import * as i9 from '@acorex/components/data-table';
37
+ import { AXDataTableModule } from '@acorex/components/data-table';
38
+ import { AXDialogModule } from '@acorex/components/dialog';
39
+ import { AXFormModule } from '@acorex/components/form';
40
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
41
+ import { AXTooltipModule } from '@acorex/components/tooltip';
42
+ import * as i3$1 from '@acorex/core/platform';
43
+ import * as i9$1 from '@acorex/core/translation';
44
+ import { AXTranslationModule } from '@acorex/core/translation';
45
+ import * as i5$2 from '@acorex/platform/layout/builder';
46
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
47
+ import { AXPEntityDeletedEvent, AXPEntityCreateEvent } from '@acorex/platform/layouts';
48
+ import { AXPWidgetsModule } from '@acorex/platform/widgets';
49
+ import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
50
+ import { FormsModule } from '@angular/forms';
51
+ import { Subject, takeUntil } from 'rxjs';
29
52
 
30
53
  const routes = [
31
54
  {
@@ -242,7 +265,7 @@ class AXPDefaultThemeModule {
242
265
  viewers: {
243
266
  root: () => AXPRootLayoutComponent,
244
267
  master: {
245
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs')
268
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs')
246
269
  .then(c => c.AXPEntityMasterSingleViewComponent),
247
270
  ///
248
271
  create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs')
@@ -251,7 +274,7 @@ class AXPDefaultThemeModule {
251
274
  modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs')
252
275
  .then(c => c.AXPEntityMasterModifyViewComponent),
253
276
  //
254
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CWXJxLS0.mjs')
277
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs')
255
278
  .then(c => c.AXPEntityMasterListViewComponent)
256
279
  }
257
280
  }
@@ -277,7 +300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
277
300
  viewers: {
278
301
  root: () => AXPRootLayoutComponent,
279
302
  master: {
280
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-B9lGgO_u.mjs')
303
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-Bnrabotu.mjs')
281
304
  .then(c => c.AXPEntityMasterSingleViewComponent),
282
305
  ///
283
306
  create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Q8eTfAVx.mjs')
@@ -286,7 +309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
286
309
  modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-BijYXMme.mjs')
287
310
  .then(c => c.AXPEntityMasterModifyViewComponent),
288
311
  //
289
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CWXJxLS0.mjs')
312
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-fZ6QEYcd.mjs')
290
313
  .then(c => c.AXPEntityMasterListViewComponent)
291
314
  }
292
315
  }
@@ -297,12 +320,109 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
297
320
  }]
298
321
  }] });
299
322
 
300
- class AXPCommentService {
323
+ class AXPEntityDetailListViewComponent {
324
+ constructor(actionSheetService, unsubscriber, platform, store) {
325
+ this.actionSheetService = actionSheetService;
326
+ this.unsubscriber = unsubscriber;
327
+ this.platform = platform;
328
+ this.store = store;
329
+ this.layout = inject(AXPLayoutService);
330
+ this.workflow = inject(AXPWorkflowService);
331
+ this.isSM = this.store.select(isSmallScreen());
332
+ this.destroyed = new Subject();
333
+ this.dropdownRowItems = computed(() => {
334
+ return this.vm.rowActions().map((c) => ({
335
+ icon: c.icon,
336
+ name: c.name,
337
+ text: c.title,
338
+ color: c.color,
339
+ }));
340
+ });
341
+ this.getDropdownRowItems = (rowData) => {
342
+ return Promise.resolve(this.dropdownRowItems());
343
+ };
344
+ this.subscribeActionEvents();
345
+ }
346
+ handleChangeSearchValue(e) {
347
+ if (e.isUserInteraction) {
348
+ this.vm.applyInlineFilter(e.value);
349
+ }
350
+ }
351
+ subscribeActionEvents() {
352
+ this.workflow.events$
353
+ .pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent))
354
+ .pipe(takeUntil(this.destroyed))
355
+ .subscribe((event) => {
356
+ console.log(event);
357
+ this.grid.refresh();
358
+ });
359
+ }
360
+ ngAfterViewInit() {
361
+ this.grid.refresh();
362
+ }
363
+ handleRowDbClick(e) {
364
+ const d = {
365
+ component: e.component,
366
+ name: this.dropdownRowItems()[0].name,
367
+ data: e.data,
368
+ };
369
+ this.handleRowCommandClick(d);
370
+ }
371
+ async handleRowCommandClick(e) {
372
+ this.vm.executeCommand(e.name, e.data);
373
+ }
374
+ destroy() {
375
+ this.destroyed.next();
376
+ this.destroyed.complete();
377
+ }
378
+ ngOnDestroy() {
379
+ this.destroy();
380
+ }
381
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1$2.AXActionSheetService }, { token: i2$1.AXUnsubscriber }, { token: i3$1.AXPlatform }, { token: i4$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
382
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPEntityDetailListViewComponent, isStandalone: true, selector: "axp-entity-detail-list-view", inputs: { vm: ["viewModel", "vm"] }, providers: [AXUnsubscriber], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-h-72\">\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : ('actions' | translate | async)\" color=\"ghost\">\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 [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ 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-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\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 </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$2.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.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i8$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_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: "ngmodule", type: AXSearchBoxModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i9.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i9.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i9.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
383
+ //
384
+ AXPLayoutBuilderModule }, { kind: "component", type: i5$2.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i9$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
301
385
  }
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
387
+ type: Component,
388
+ args: [{ selector: 'axp-entity-detail-list-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], imports: [
389
+ CommonModule,
390
+ FormsModule,
391
+ RouterModule,
392
+ AXButtonModule,
393
+ AXDecoratorModule,
394
+ AXBadgeModule,
395
+ AXDropdownModule,
396
+ AXPopoverModule,
397
+ AXFormModule,
398
+ AXActionSheetModule,
399
+ AXDrawerModule,
400
+ AXDialogModule,
401
+ AXLoadingModule,
402
+ AXTabsModule,
403
+ AXTooltipModule,
404
+ AXBreadcrumbsModule,
405
+ AXSearchBoxModule,
406
+ AXDataTableModule,
407
+ //
408
+ AXPLayoutBuilderModule,
409
+ AXPWidgetsModule,
410
+ AXPStickyDirective,
411
+ AXPGridLayoutDirective,
412
+ AXPAuthModule,
413
+ AXTranslationModule,
414
+ ], standalone: true, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-h-72\">\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : ('actions' | translate | async)\" color=\"ghost\">\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 [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ 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-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\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 </div>\n</div>\n" }]
415
+ }], ctorParameters: () => [{ type: i1$2.AXActionSheetService }, { type: i2$1.AXUnsubscriber }, { type: i3$1.AXPlatform }, { type: i4$1.Store }], propDecorators: { vm: [{
416
+ type: Input,
417
+ args: ['viewModel']
418
+ }], grid: [{
419
+ type: ViewChild,
420
+ args: ['grid']
421
+ }] } });
302
422
 
303
423
  /**
304
424
  * Generated bundle index. Do not edit.
305
425
  */
306
426
 
307
- export { AXPAdminRootLayoutModule, AXPCommentService, AXPDefaultThemeModule, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent };
427
+ export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent };
308
428
  //# sourceMappingURL=acorex-platform-themes-default.mjs.map