@acorex/modules 19.2.17 → 19.2.20

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 (134) hide show
  1. package/common/lib/features/widget-wrapper/dashboard-widget-wrapper.d.ts +4 -3
  2. package/document-management/lib/document-management.module.d.ts +2 -1
  3. package/document-management/lib/entities/document/document.service.d.ts +0 -5
  4. package/document-management/lib/entities/document/document.types.d.ts +2 -0
  5. package/document-management/lib/entities/document-type/document-type.service.d.ts +2 -2
  6. package/document-management/lib/entities/document-type/document-type.types.d.ts +1 -0
  7. package/document-management/lib/entities/folder/folder.types.d.ts +4 -4
  8. package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +141 -16
  9. package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +66 -6
  10. package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +119 -0
  11. package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +119 -0
  12. package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +119 -0
  13. package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +119 -0
  14. package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +119 -0
  15. package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +119 -0
  16. package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +119 -0
  17. package/document-management/lib/features/drive/drive.component.d.ts +97 -71
  18. package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +72 -7
  19. package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.d.ts +1 -0
  20. package/document-management/lib/features/shared/components/choose-document-type/choose-document-type.component.d.ts +21 -0
  21. package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +180 -0
  22. package/document-management/lib/features/shared/components/index.d.ts +3 -2
  23. package/document-management/lib/features/shared/document-manager.service.d.ts +32 -12
  24. package/document-management/lib/features/shared/document-manager.types.d.ts +7 -3
  25. package/document-management/lib/features/shared/index.d.ts +1 -0
  26. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +64 -5
  27. package/document-management/lib/features/workflow/upload/upload.workflow.d.ts +17 -0
  28. package/fesm2022/{acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs.map → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs.map} +1 -1
  30. package/fesm2022/acorex-modules-application-management.mjs +2 -2
  31. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  32. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs} +12 -12
  33. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs.map → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs.map → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-auth-login.module-CfO1IwH9.mjs → acorex-modules-auth-login.module-DFCB1l7W.mjs} +4 -4
  37. package/fesm2022/{acorex-modules-auth-login.module-CfO1IwH9.mjs.map → acorex-modules-auth-login.module-DFCB1l7W.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-auth-master.layout-hLuHDgvl.mjs → acorex-modules-auth-master.layout-CuKXvY0o.mjs} +2 -2
  39. package/fesm2022/{acorex-modules-auth-master.layout-hLuHDgvl.mjs.map → acorex-modules-auth-master.layout-CuKXvY0o.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-auth-password.component-CTVBARbz.mjs → acorex-modules-auth-password.component-5gwz30CZ.mjs} +3 -3
  41. package/fesm2022/{acorex-modules-auth-password.component-CTVBARbz.mjs.map → acorex-modules-auth-password.component-5gwz30CZ.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-auth-password.component-BztZ3DJd.mjs → acorex-modules-auth-password.component-DacOjakT.mjs} +3 -3
  43. package/fesm2022/{acorex-modules-auth-password.component-BztZ3DJd.mjs.map → acorex-modules-auth-password.component-DacOjakT.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-auth-routes-CJz0CRlp.mjs → acorex-modules-auth-routes-D018Lg-b.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-auth-routes-CJz0CRlp.mjs.map → acorex-modules-auth-routes-D018Lg-b.mjs.map} +1 -1
  46. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs} +2 -2
  47. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs.map → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs.map} +1 -1
  48. package/fesm2022/{acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs} +2 -2
  49. package/fesm2022/{acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs.map → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs.map} +1 -1
  50. package/fesm2022/{acorex-modules-auth-two-factor.module-BQfrnrd0.mjs → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs} +3 -3
  51. package/fesm2022/{acorex-modules-auth-two-factor.module-BQfrnrd0.mjs.map → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs.map} +1 -1
  52. package/fesm2022/acorex-modules-auth.mjs +1 -1
  53. package/fesm2022/acorex-modules-common-index-D90SN6SH.mjs +507 -0
  54. package/fesm2022/acorex-modules-common-index-D90SN6SH.mjs.map +1 -0
  55. package/fesm2022/acorex-modules-common.mjs +1 -1
  56. package/fesm2022/acorex-modules-conversation.mjs +5 -5
  57. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  58. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs → acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs} +823 -421
  59. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs.map +1 -0
  60. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs → acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs} +7 -6
  61. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs.map +1 -0
  62. package/fesm2022/acorex-modules-document-management-details-view.component-BHcu_gYH.mjs +24 -0
  63. package/fesm2022/acorex-modules-document-management-details-view.component-BHcu_gYH.mjs.map +1 -0
  64. package/fesm2022/acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs +163 -0
  65. package/fesm2022/acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs.map +1 -0
  66. package/fesm2022/acorex-modules-document-management-drive.component-B3BCzdVv.mjs +305 -0
  67. package/fesm2022/acorex-modules-document-management-drive.component-B3BCzdVv.mjs.map +1 -0
  68. package/fesm2022/acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs +20 -0
  69. package/fesm2022/acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs.map +1 -0
  70. package/fesm2022/acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs +24 -0
  71. package/fesm2022/acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs.map +1 -0
  72. package/fesm2022/acorex-modules-document-management-list-view.component-B6J6Tokv.mjs +20 -0
  73. package/fesm2022/acorex-modules-document-management-list-view.component-B6J6Tokv.mjs.map +1 -0
  74. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs → acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs} +6 -6
  75. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs.map +1 -0
  76. package/fesm2022/acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs +20 -0
  77. package/fesm2022/acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs.map +1 -0
  78. package/fesm2022/acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs +24 -0
  79. package/fesm2022/acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs.map +1 -0
  80. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  81. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-Qnh16t3Q.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CJYrDtq6.mjs} +8 -8
  82. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-Qnh16t3Q.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-CJYrDtq6.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-form-template-management-category.entity-BjmyIav9.mjs → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-form-template-management-category.entity-BjmyIav9.mjs.map → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs.map → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs} +2 -2
  88. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs.map → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CSShokqz.mjs → acorex-modules-form-template-management-template-widget-edit.component-BkJ3ieIg.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CSShokqz.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BkJ3ieIg.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-form-template-management-template.entity-_yMAqh35.mjs → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-form-template-management-template.entity-_yMAqh35.mjs.map → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.mjs → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs} +3 -3
  94. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs.map} +1 -1
  95. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  96. package/fesm2022/acorex-modules-notification-management.mjs +2 -2
  97. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  98. package/fesm2022/{acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs} +2 -2
  99. package/fesm2022/{acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs.map → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs.map} +1 -1
  100. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs → acorex-modules-organization-management-org-chart-configuration.page-JKQwYEPq.mjs} +3 -3
  101. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-JKQwYEPq.mjs.map} +1 -1
  102. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs → acorex-modules-organization-management-org-chart.page-C2ZtUVKI.mjs} +4 -4
  103. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs.map → acorex-modules-organization-management-org-chart.page-C2ZtUVKI.mjs.map} +1 -1
  104. package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs} +2 -2
  105. package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs.map → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs.map} +1 -1
  106. package/fesm2022/acorex-modules-organization-management.mjs +4 -4
  107. package/fesm2022/{acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs → acorex-modules-platform-management-list-version.component-C9764yzu.mjs} +2 -2
  108. package/fesm2022/{acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs.map → acorex-modules-platform-management-list-version.component-C9764yzu.mjs.map} +1 -1
  109. package/fesm2022/acorex-modules-platform-management.mjs +368 -15
  110. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  111. package/package.json +1 -1
  112. package/platform-management/lib/const.d.ts +6 -0
  113. package/platform-management/lib/entities/index.d.ts +1 -0
  114. package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts +1 -0
  115. package/platform-management/lib/entities/meta-data-definition-category/category.entity.d.ts +3 -0
  116. package/platform-management/lib/entities/meta-data-definition-category/category.service.d.ts +10 -0
  117. package/platform-management/lib/entities/meta-data-definition-category/category.types.d.ts +5 -0
  118. package/platform-management/lib/entities/meta-data-definition-category/index.d.ts +3 -0
  119. package/document-management/lib/features/shared/components/file-viewer-popup/index.d.ts +0 -1
  120. package/document-management/lib/features/shared/components/tree-folder-popup/index.d.ts +0 -1
  121. package/document-management/lib/features/shared/components/tree-folder-popup/tree-folder-popup.component.d.ts +0 -20
  122. package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs +0 -472
  123. package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs.map +0 -1
  124. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs.map +0 -1
  125. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs.map +0 -1
  126. package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs +0 -152
  127. package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs.map +0 -1
  128. package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs +0 -164
  129. package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs.map +0 -1
  130. package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs +0 -24
  131. package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs.map +0 -1
  132. package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs +0 -69
  133. package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs.map +0 -1
  134. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/modules",
3
- "version": "19.2.17",
3
+ "version": "19.2.20",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=19.0.0",
6
6
  "@angular/core": ">=19.0.0",
@@ -49,6 +49,12 @@ export declare const RootConfig: {
49
49
  titlePlural: string;
50
50
  icon: string;
51
51
  };
52
+ metaDataDefinitionCategory: {
53
+ name: string;
54
+ title: string;
55
+ titlePlural: string;
56
+ icon: string;
57
+ };
52
58
  metaDataDefinition: {
53
59
  name: string;
54
60
  title: string;
@@ -4,4 +4,5 @@ export * from './check-version';
4
4
  export * from './data-source';
5
5
  export * from './global-variable';
6
6
  export * from './meta-data-definition';
7
+ export * from './meta-data-definition-category';
7
8
  export * from './promotion';
@@ -1,4 +1,5 @@
1
1
  import { AXPMetaDataDefinition } from '@acorex/platform/layout/builder';
2
2
  import { AXPEntityModel } from '@acorex/platform/layout/entity';
3
3
  export interface AXMPlatformManagementMetaDataDefinitionEntityModel extends AXPEntityModel<string>, AXPMetaDataDefinition {
4
+ categoryId: string;
4
5
  }
@@ -0,0 +1,3 @@
1
+ import { AXPEntity } from '@acorex/platform/common';
2
+ import { Injector } from '@angular/core';
3
+ export declare function metaDataDefinitionCategoryEntityFactory(injector: Injector): Promise<AXPEntity | null>;
@@ -0,0 +1,10 @@
1
+ import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
2
+ import { AXMMetaDataDefinitionCategoryEntityModel } from './category.types';
3
+ import * as i0 from "@angular/core";
4
+ export declare abstract class AXMMetaDataDefinitionCategoryService extends AXMEntityCrudServiceImpl<string, AXMMetaDataDefinitionCategoryEntityModel> {
5
+ }
6
+ export declare class AXMMetaDataDefinitionCategoryServiceImpl extends AXMMetaDataDefinitionCategoryService {
7
+ constructor();
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMMetaDataDefinitionCategoryServiceImpl, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMMetaDataDefinitionCategoryServiceImpl>;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { AXPEntityModel } from '@acorex/platform/layout/entity';
2
+ export interface AXMMetaDataDefinitionCategoryEntityModel extends AXPEntityModel<string> {
3
+ title: string;
4
+ parentId?: string | undefined;
5
+ }
@@ -0,0 +1,3 @@
1
+ export * from './category.entity';
2
+ export * from './category.service';
3
+ export * from './category.types';
@@ -1 +0,0 @@
1
- export * from './file-viewer-popup.component';
@@ -1 +0,0 @@
1
- export * from './tree-folder-popup.component';
@@ -1,20 +0,0 @@
1
- import { AXBasePageComponent } from '@acorex/components/page';
2
- import { AXMDocumentManagerService } from '../../document-manager.service';
3
- import * as i0 from "@angular/core";
4
- export declare class AXMTreeFolderPopupComponent extends AXBasePageComponent {
5
- onCloseDiscard(): void;
6
- onClose(): void;
7
- protected driveService: AXMDocumentManagerService;
8
- protected treeViewData: import("@angular/core").WritableSignal<unknown[]>;
9
- protected selectedNodeId?: string;
10
- ngOnInit(): void;
11
- /**
12
- * Maps document explorer nodes to tree view schema format
13
- * Only includes items where type is 'folder'
14
- */
15
- private mapToTreeViewSchema;
16
- provideLazyTreeView: any;
17
- handleTreeViewClick(event: any): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<AXMTreeFolderPopupComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<AXMTreeFolderPopupComponent, "ng-component", never, {}, {}, never, never, true, never>;
20
- }
@@ -1,472 +0,0 @@
1
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
2
- import * as i2 from '@acorex/components/button';
3
- import { AXButtonModule } from '@acorex/components/button';
4
- import * as i5 from '@acorex/components/decorators';
5
- import { AXDecoratorModule } from '@acorex/components/decorators';
6
- import * as i3 from '@acorex/components/dropdown';
7
- import { AXDropdownModule } from '@acorex/components/dropdown';
8
- import * as i4$1 from '@acorex/components/dropdown-button';
9
- import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
10
- import * as i3$2 from '@acorex/components/grid-layout-builder';
11
- import { AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';
12
- import { AXTranslationService, AXTranslatorDirective } from '@acorex/core/translation';
13
- import * as i1$1 from '@acorex/platform/layout/builder';
14
- import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
15
- import { AXPDesignerService } from '@acorex/platform/layout/designer';
16
- import { AXPSimplePageLayout } from '@acorex/platform/themes/default';
17
- import { AXPLayoutThemeService, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent } from '@acorex/platform/themes/shared';
18
- import { AsyncPipe } from '@angular/common';
19
- import * as i0 from '@angular/core';
20
- import { output, ChangeDetectionStrategy, Component, model, afterNextRender, inject, Injectable, computed, signal } from '@angular/core';
21
- import { ActivatedRoute } from '@angular/router';
22
- import { RootConfig } from './acorex-modules-common.mjs';
23
- import { AXDialogService } from '@acorex/components/dialog';
24
- import { AXPDataGenerator } from '@acorex/platform/core';
25
- import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
26
- import { AXPopupService } from '@acorex/components/popup';
27
- import * as i4 from '@acorex/components/label';
28
- import { AXLabelModule } from '@acorex/components/label';
29
- import { AXBasePageComponent } from '@acorex/components/page';
30
- import * as i3$1 from '@acorex/components/text-box';
31
- import { AXTextBoxModule } from '@acorex/components/text-box';
32
- import * as i1 from '@angular/forms';
33
- import { FormsModule } from '@angular/forms';
34
-
35
- class AXPDashboardWidgetWrapperComponent {
36
- constructor() {
37
- this.onDelete = output();
38
- }
39
- handleOnItemClick(event) {
40
- console.log(event);
41
- switch (event.item.data) {
42
- case 'delete':
43
- this.onDelete.emit();
44
- break;
45
- default:
46
- break;
47
- }
48
- }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPDashboardWidgetWrapperComponent, isStandalone: true, selector: "axm-dashboard-widget-wrapper", outputs: { onDelete: "onDelete" }, ngImport: i0, template: "<section class=\"ax-relative ax-size-full ax-flex ax-justify-center ax-items-center ax-group\">\n <div class=\"ax-p-1 ax-absolute ax-top-0 ax-left-0 ax-z-[9999] ax-invisible group-hover:ax-visible\">\n <ax-button color=\"secondary\" class=\"ax-sm\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-h\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ng-container>\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n <ax-button-item [data]=\"'delete'\" text=\"Delete\" color=\"danger\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <ng-content></ng-content>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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: AXDropdownModule }, { kind: "component", type: i3.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardWidgetWrapperComponent, decorators: [{
53
- type: Component,
54
- args: [{ selector: 'axm-dashboard-widget-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXDropdownModule], standalone: true, template: "<section class=\"ax-relative ax-size-full ax-flex ax-justify-center ax-items-center ax-group\">\n <div class=\"ax-p-1 ax-absolute ax-top-0 ax-left-0 ax-z-[9999] ax-invisible group-hover:ax-visible\">\n <ax-button color=\"secondary\" class=\"ax-sm\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-h\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ng-container>\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n <ax-button-item [data]=\"'delete'\" text=\"Delete\" color=\"danger\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n <ng-content></ng-content>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
55
- }] });
56
-
57
- class AXCAddDashboardPopup extends AXBasePageComponent {
58
- constructor() {
59
- super(...arguments);
60
- this.title = model();
61
- this.description = model();
62
- this.#init = afterNextRender(() => {
63
- this.title.set(this.data.title || '');
64
- this.description.set(this.data.description || '');
65
- });
66
- }
67
- #init;
68
- async handleClose(isCanceled = false) {
69
- this.close({
70
- title: this.title(),
71
- description: this.description(),
72
- isCanceled,
73
- });
74
- }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXCAddDashboardPopup, isStandalone: true, selector: "ng-component", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "titleChange", description: "descriptionChange" }, usesInheritance: true, ngImport: i0, template: `
77
- <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
78
- <ax-label>Title</ax-label>
79
- <ax-text-box [(ngModel)]="title" name="title"></ax-text-box>
80
-
81
- <ax-label>Description</ax-label>
82
- <ax-text-box [(ngModel)]="description" name="description"></ax-text-box>
83
- </div>
84
-
85
- <ax-footer>
86
- <ax-prefix></ax-prefix>
87
- <ax-suffix>
88
- <ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"></ax-button>
89
- <ax-button text="Save" look="solid" color="primary" (onClick)="handleClose()">
90
- <ax-icon class="fa-solid fa-save"></ax-icon>
91
- </ax-button>
92
- </ax-suffix>
93
- </ax-footer>
94
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i3$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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" }] }); }
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAddDashboardPopup, decorators: [{
97
- type: Component,
98
- args: [{
99
- template: `
100
- <div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
101
- <ax-label>Title</ax-label>
102
- <ax-text-box [(ngModel)]="title" name="title"></ax-text-box>
103
-
104
- <ax-label>Description</ax-label>
105
- <ax-text-box [(ngModel)]="description" name="description"></ax-text-box>
106
- </div>
107
-
108
- <ax-footer>
109
- <ax-prefix></ax-prefix>
110
- <ax-suffix>
111
- <ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"></ax-button>
112
- <ax-button text="Save" look="solid" color="primary" (onClick)="handleClose()">
113
- <ax-icon class="fa-solid fa-save"></ax-icon>
114
- </ax-button>
115
- </ax-suffix>
116
- </ax-footer>
117
- `,
118
- imports: [FormsModule, AXButtonModule, AXTextBoxModule, AXLabelModule, AXButtonModule, AXDecoratorModule],
119
- }]
120
- }] });
121
-
122
- class AXPDashboardPopupService {
123
- constructor() {
124
- this.popupService = inject(AXPopupService);
125
- }
126
- async generateDashboardLayout(data) {
127
- const result = await this.popupService.open(AXCAddDashboardPopup, {
128
- header: true,
129
- size: 'fit',
130
- draggable: true,
131
- hasBackdrop: true,
132
- title: 'Dashboard Layout Details',
133
- data: { data },
134
- });
135
- const { isCanceled, ...rest } = result.data;
136
- if (isCanceled) {
137
- throw new Error('Process is Canceled by User!');
138
- }
139
- else {
140
- return rest;
141
- }
142
- }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
144
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardPopupService, providedIn: 'root' }); }
145
- }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardPopupService, decorators: [{
147
- type: Injectable,
148
- args: [{ providedIn: 'root' }]
149
- }] });
150
-
151
- // Initial state
152
- const initialDashboards = [
153
- {
154
- id: 'widget1',
155
- title: 'Home',
156
- widget: [
157
- {
158
- config: {
159
- id: '1',
160
- height: 5,
161
- width: 6,
162
- },
163
- node: {
164
- name: 'bar-chart',
165
- path: 'bar-chart',
166
- type: 'bar-chart',
167
- defaultValue: {
168
- data: [
169
- { label: 'Category A', value: 30, color: 'green' },
170
- { label: 'Category B', value: 80 },
171
- { label: 'Category C', value: 45 },
172
- ],
173
- options: { width: 600, height: 400, color: ['red', 'yellow', 'blue'] },
174
- },
175
- },
176
- },
177
- {
178
- config: {
179
- id: '5',
180
- height: 5,
181
- width: 6,
182
- },
183
- node: {
184
- name: 'map',
185
- path: 'map',
186
- type: 'map',
187
- options: {
188
- hasDraw: true,
189
- zoomLevel: 5,
190
- latitude: 32,
191
- longitude: 53,
192
- fitToDraw: true,
193
- limitDraw: [
194
- {
195
- points: [
196
- {
197
- latitude: 33.8339199536547,
198
- longitude: 51.16056693933671,
199
- },
200
- {
201
- latitude: 32.37996146435729,
202
- longitude: 50.017223524232904,
203
- },
204
- {
205
- latitude: 31.034108344903512,
206
- longitude: 51.402428046377885,
207
- },
208
- {
209
- latitude: 31.690781806136822,
210
- longitude: 53.24936740923793,
211
- },
212
- {
213
- latitude: 33.211116472416855,
214
- longitude: 53.18340528913575,
215
- },
216
- ],
217
- color: 'blue',
218
- },
219
- ],
220
- },
221
- },
222
- },
223
- ],
224
- },
225
- {
226
- id: 'widget2',
227
- title: 'Work',
228
- widget: [
229
- {
230
- config: {
231
- id: '2',
232
- height: 5,
233
- width: 6,
234
- },
235
- node: {
236
- name: 'sticky-note',
237
- path: 'sticky-note',
238
- type: 'sticky-note',
239
- defaultValue: `test`,
240
- },
241
- },
242
- {
243
- config: { id: '3', height: 5, width: 6 },
244
- node: {
245
- name: 'donut-chart',
246
- path: 'donut-chart',
247
- type: 'donut-chart',
248
- defaultValue: {
249
- data: [
250
- { id: 'a', name: 'Apples', value: 40, color: '#E57373' },
251
- { id: 'b', name: 'Bananas', value: 30, color: '#FFF176' },
252
- { id: 'c', name: 'ta', value: 20, color: '#F06292' },
253
- { id: 'd', name: 'Dates', value: 10, color: '#9575CD' },
254
- ],
255
- options: { width: 250, height: 250 },
256
- },
257
- },
258
- },
259
- ],
260
- },
261
- ];
262
- // Create the SignalStore
263
- const AXCDashboardStore = signalStore({},
264
- // Define the state
265
- withState({
266
- dashboards: initialDashboards,
267
- currentDashboardId: initialDashboards[0].id,
268
- dashboardsOption: { float: true, cellHeight: 100, gap: 20, minRow: 7, column: 12 },
269
- }),
270
- // Define computed properties
271
- withComputed((state) => ({
272
- currentDashboard: computed(() => {
273
- return state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId()) || null;
274
- }),
275
- })),
276
- // Define methods
277
- withMethods((state, dashboardPopup = inject(AXPDashboardPopupService), dialogService = inject(AXDialogService), translationService = inject(AXTranslationService), designerService = inject(AXPDesignerService)) => ({
278
- // Set current dashboard
279
- setCurrentDashboard(dashboardId) {
280
- patchState(state, { currentDashboardId: dashboardId });
281
- },
282
- // Add a new dashboard
283
- async addDashboard() {
284
- try {
285
- const newDashboard = await dashboardPopup.generateDashboardLayout({});
286
- newDashboard.id = AXPDataGenerator.uuid();
287
- newDashboard.widget = [];
288
- // newDashboard.widget = [
289
- // {
290
- // config: {
291
- // h: 1,
292
- // w: 1,
293
- // id: AXPDataGenerator.uuid(),
294
- // },
295
- // },
296
- // ];
297
- const updatedDashboards = [...state.dashboards(), newDashboard];
298
- patchState(state, {
299
- dashboards: updatedDashboards,
300
- currentDashboardId: newDashboard.id,
301
- });
302
- }
303
- catch (error) {
304
- console.error('Error adding dashboard:', error);
305
- }
306
- },
307
- // Add a widget to the current dashboard
308
- async addWidget() {
309
- if (!state.currentDashboardId()) {
310
- console.warn('No current dashboard selected');
311
- return;
312
- }
313
- try {
314
- // Step 1: Show the picker and get the selected widgets
315
- const widgets = await designerService.showPicker({
316
- name: 'page-layout',
317
- type: 'page-layout',
318
- children: [],
319
- });
320
- // Step 2: Convert the selected widgets into AXPDashboardWidgetData format
321
- const convertedWidgets = widgets.map((widget) => ({
322
- config: { height: 2, width: 2, id: AXPDataGenerator.uuid() },
323
- node: widget,
324
- }));
325
- // Step 3: Update the dashboards
326
- const updatedDashboards = state.dashboards().map((dashboard) => {
327
- if (dashboard.id === state.currentDashboardId()) {
328
- return {
329
- ...dashboard,
330
- widget: [...dashboard.widget, ...convertedWidgets],
331
- };
332
- }
333
- return dashboard;
334
- });
335
- patchState(state, { dashboards: updatedDashboards });
336
- }
337
- catch (error) {
338
- console.error('Error adding widget:', error);
339
- }
340
- },
341
- // Remove a dashboard
342
- async removeDashboard(id) {
343
- if (!id) {
344
- console.warn('No dashboard ID provided for removal');
345
- return;
346
- }
347
- try {
348
- const dialogResult = await dialogService.confirm(await translationService.translateAsync('workflow.warning'), await translationService.translateAsync('workflow.confirm-delete'), 'danger', 'horizontal');
349
- if (dialogResult.result) {
350
- // Remove the dashboard
351
- const updatedDashboards = state.dashboards().filter((dashboard) => dashboard.id !== id);
352
- // Update state
353
- patchState(state, {
354
- dashboards: updatedDashboards,
355
- currentDashboardId: id === state.currentDashboardId()
356
- ? updatedDashboards.length > 0
357
- ? updatedDashboards[0].id
358
- : null
359
- : state.currentDashboardId(),
360
- });
361
- }
362
- }
363
- catch (error) {
364
- console.error('Error removing dashboard:', error);
365
- }
366
- },
367
- // Remove a widget from a dashboard
368
- removeWidget(dashboardId, widgetId) {
369
- const updatedDashboards = state.dashboards().map((dashboard) => {
370
- if (dashboard.id === dashboardId) {
371
- return {
372
- ...dashboard,
373
- widget: dashboard.widget.filter((widget) => widget.config.id !== widgetId),
374
- };
375
- }
376
- return dashboard;
377
- });
378
- patchState(state, { dashboards: updatedDashboards });
379
- },
380
- // Handle configuration changes
381
- handleConfigChange(dashboard) {
382
- const updatedDashboards = state.dashboards().map((d) => (d.id === dashboard.id ? dashboard : d));
383
- patchState(state, {
384
- dashboards: updatedDashboards,
385
- currentDashboardId: dashboard.id,
386
- });
387
- },
388
- // Handle grid layout changes
389
- onGridChange(event) {
390
- if (!state.currentDashboard()) {
391
- console.warn('No current dashboard for grid change');
392
- return;
393
- }
394
- // Extract nodes from the event and remove the `element` property
395
- const nodes = event.nodes.map(({ element, ...rest }) => rest);
396
- // Update the current dashboard
397
- const currentDashboard = state.currentDashboard();
398
- const updatedWidgets = currentDashboard.widget.map((widget) => {
399
- const updatedNode = nodes.find((node) => node.id === widget.config.id);
400
- if (updatedNode) {
401
- return {
402
- ...widget,
403
- config: updatedNode,
404
- };
405
- }
406
- return widget;
407
- });
408
- const updatedDashboard = {
409
- ...currentDashboard,
410
- widget: updatedWidgets,
411
- };
412
- // Update the dashboards
413
- const updatedDashboards = state
414
- .dashboards()
415
- .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
416
- patchState(state, { dashboards: updatedDashboards });
417
- },
418
- })));
419
-
420
- class AXPDashboardHomeComponent {
421
- constructor() {
422
- this.activatedRoute = inject(ActivatedRoute);
423
- this.layout = inject(AXPLayoutThemeService);
424
- this.store = inject(AXCDashboardStore);
425
- this.rootConfig = RootConfig;
426
- this.isEdited = signal(false);
427
- this.context = signal({});
428
- }
429
- toggleEdit() {
430
- //(window as any).d = this.activatedRoute;
431
- this.isEdited.update((i) => !i);
432
- }
433
- getGridBackground() {
434
- if (!this.isEdited()) {
435
- return null;
436
- }
437
- const gap = this.store.dashboardsOption().gap ?? 0; // Get the gap value, default to 0 if not provided
438
- const columnWidth = `calc((100% - ${gap}px) / ${this.store.dashboardsOption().column ?? 12})`;
439
- const cellHeight = this.store.dashboardsOption().cellHeight;
440
- // Adjust the vertical lines to start at the gap value and end before the gap
441
- const verticalLines = `linear-gradient(to right, #0000001c 1px, transparent 1px) ${gap}px 0 / ${columnWidth} 100%`;
442
- // Adjust the horizontal lines to start at the gap value and end before the gap
443
- const horizontalLines = `linear-gradient(to bottom, #0000001c 1px, transparent 1px) 0 ${gap}px / 100% ${cellHeight}px`;
444
- return `${verticalLines}, ${horizontalLines}`;
445
- }
446
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardHomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
447
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPDashboardHomeComponent, isStandalone: true, selector: "ng-component", providers: [AXPDesignerService, AXCDashboardStore], ngImport: i0, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-header>\n <axp-layout-title> {{ store.currentDashboard()?.title }} </axp-layout-title>\n\n <axp-layout-description> {{ store.currentDashboard()?.description }} </axp-layout-description>\n 1\n <axp-layout-breadcrumbs>\n <!-- <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\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\"> {{ b.title}} </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs> -->\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-button [text]=\"t('create-new', { scope: rootConfig.config.i18n }) | async\" [color]=\"'primary'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"store.addDashboard()\"\n [text]=\" (t('dashboard.dashboard', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-folder-plus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n <ax-button-item\n (onClick)=\"store.addWidget()\"\n [text]=\" (t('dashboard.widget', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-dropdown-button [text]=\"store.currentDashboard()?.title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (dashboard of store.dashboards(); track dashboard.id) {\n <ax-button-item\n [text]=\"dashboard.title\"\n [selected]=\"dashboard.id === store.currentDashboard()?.id\"\n (onClick)=\"store.handleConfigChange(dashboard)\"\n >\n </ax-button-item>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-screen ax-bg-gray-50 ax-p-4\">\n <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Dashboards Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any dashboards yet. Create one to get started!\n </p>\n </div>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n <axp-layout-actions-secondary>\n <ax-button-item\n [disabled]=\"store.dashboards().length<=1\"\n [text]=\"(t('dashboard.delete-current-dashboard', { scope: rootConfig.config.i18n }) | async)!\"\n (onClick)=\"store.removeDashboard(store.currentDashboard()?.id!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-trash\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-layout-actions-secondary>\n </axp-layout-actions>\n </axp-layout-header>\n\n <axp-layout-content class=\"ax-relative\">\n <ax-grid-layout-container\n [style.background]=\"getGridBackground()\"\n #grid\n [options]=\"store.dashboardsOption()\"\n (onChange)=\"store.onGridChange($event)\"\n >\n @for(widget of store.currentDashboard()?.widget ; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <!-- <div class=\"ax-absolute ax-top-0 ax-size-3 ax-handler ax-bg-blue-500 ax-z-[999]\"></div> -->\n <axm-dashboard-widget-wrapper (onDelete)=\"store.removeWidget(store.currentDashboard()?.id!,widget.config.id!)\">\n @if(widget.node){\n <axp-widgets-container [context]=\"context()\">\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n }\n </axm-dashboard-widget-wrapper>\n </ax-grid-layout-widget>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-bg-gray-50 ax-p-4\">\n <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Widget Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any Widget yet. Create one to get started!\n </p>\n </div>\n }\n </ax-grid-layout-container>\n <div class=\"ax-p-4 ax-absolute ax-bottom-0 ax-right-0\">\n <ax-button\n [color]=\"'primary'\"\n class=\"ax-xl ax-rounded-full\"\n [disabled]=\"!store.currentDashboard()?.widget?.length\"\n (onClick)=\"toggleEdit()\"\n >\n <ax-prefix> <ax-icon class=\"fa-solid fa-pen\"> </ax-icon></ax-prefix>\n </ax-button>\n </div>\n </axp-layout-content>\n</axp-layout-simple-page>\n", styles: ["::ng-deep .placeholder-content{position:absolute}\n"], dependencies: [{ kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i3$2.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "isLayoutRendered", "isEmptyChange"] }, { kind: "component", type: i3$2.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "component", type: 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: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-layout-actions-primary" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i4$1.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: AXPDashboardWidgetWrapperComponent, selector: "axm-dashboard-widget-wrapper", outputs: ["onDelete"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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: AXDropdownModule }, { kind: "component", type: i3.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type: AXPThemeLayoutPageSecondaryActionsComponent, selector: "axp-layout-actions-secondary" }, { kind: "ngmodule", type: AXBreadcrumbsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
448
- }
449
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardHomeComponent, decorators: [{
450
- type: Component,
451
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPDesignerService, AXCDashboardStore], imports: [
452
- AXPLayoutBuilderModule,
453
- AXButtonModule,
454
- AXGridLayoutBuilderModule,
455
- AXPSimplePageLayout,
456
- AXPThemeLayoutBlockComponent,
457
- AXPThemeLayoutHeaderComponent,
458
- AXPThemeLayoutActionsComponent,
459
- AXPThemeLayoutPagePrimaryActionsComponent,
460
- AXDropdownButtonModule,
461
- AXPDashboardWidgetWrapperComponent,
462
- AXDecoratorModule,
463
- AXDropdownModule,
464
- AsyncPipe,
465
- AXTranslatorDirective,
466
- AXPThemeLayoutPageSecondaryActionsComponent,
467
- AXBreadcrumbsModule,
468
- ], standalone: true, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-header>\n <axp-layout-title> {{ store.currentDashboard()?.title }} </axp-layout-title>\n\n <axp-layout-description> {{ store.currentDashboard()?.description }} </axp-layout-description>\n 1\n <axp-layout-breadcrumbs>\n <!-- <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\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\"> {{ b.title}} </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs> -->\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-button [text]=\"t('create-new', { scope: rootConfig.config.i18n }) | async\" [color]=\"'primary'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"store.addDashboard()\"\n [text]=\" (t('dashboard.dashboard', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-folder-plus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n <ax-button-item\n (onClick)=\"store.addWidget()\"\n [text]=\" (t('dashboard.widget', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-dropdown-button [text]=\"store.currentDashboard()?.title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (dashboard of store.dashboards(); track dashboard.id) {\n <ax-button-item\n [text]=\"dashboard.title\"\n [selected]=\"dashboard.id === store.currentDashboard()?.id\"\n (onClick)=\"store.handleConfigChange(dashboard)\"\n >\n </ax-button-item>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-screen ax-bg-gray-50 ax-p-4\">\n <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Dashboards Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any dashboards yet. Create one to get started!\n </p>\n </div>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n <axp-layout-actions-secondary>\n <ax-button-item\n [disabled]=\"store.dashboards().length<=1\"\n [text]=\"(t('dashboard.delete-current-dashboard', { scope: rootConfig.config.i18n }) | async)!\"\n (onClick)=\"store.removeDashboard(store.currentDashboard()?.id!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-trash\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-layout-actions-secondary>\n </axp-layout-actions>\n </axp-layout-header>\n\n <axp-layout-content class=\"ax-relative\">\n <ax-grid-layout-container\n [style.background]=\"getGridBackground()\"\n #grid\n [options]=\"store.dashboardsOption()\"\n (onChange)=\"store.onGridChange($event)\"\n >\n @for(widget of store.currentDashboard()?.widget ; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <!-- <div class=\"ax-absolute ax-top-0 ax-size-3 ax-handler ax-bg-blue-500 ax-z-[999]\"></div> -->\n <axm-dashboard-widget-wrapper (onDelete)=\"store.removeWidget(store.currentDashboard()?.id!,widget.config.id!)\">\n @if(widget.node){\n <axp-widgets-container [context]=\"context()\">\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n }\n </axm-dashboard-widget-wrapper>\n </ax-grid-layout-widget>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-bg-gray-50 ax-p-4\">\n <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Widget Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any Widget yet. Create one to get started!\n </p>\n </div>\n }\n </ax-grid-layout-container>\n <div class=\"ax-p-4 ax-absolute ax-bottom-0 ax-right-0\">\n <ax-button\n [color]=\"'primary'\"\n class=\"ax-xl ax-rounded-full\"\n [disabled]=\"!store.currentDashboard()?.widget?.length\"\n (onClick)=\"toggleEdit()\"\n >\n <ax-prefix> <ax-icon class=\"fa-solid fa-pen\"> </ax-icon></ax-prefix>\n </ax-button>\n </div>\n </axp-layout-content>\n</axp-layout-simple-page>\n", styles: ["::ng-deep .placeholder-content{position:absolute}\n"] }]
469
- }] });
470
-
471
- export { AXPDashboardHomeComponent };
472
- //# sourceMappingURL=acorex-modules-common-index-BAt02rnb.mjs.map