@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.
- package/common/lib/features/widget-wrapper/dashboard-widget-wrapper.d.ts +4 -3
- package/document-management/lib/document-management.module.d.ts +2 -1
- package/document-management/lib/entities/document/document.service.d.ts +0 -5
- package/document-management/lib/entities/document/document.types.d.ts +2 -0
- package/document-management/lib/entities/document-type/document-type.service.d.ts +2 -2
- package/document-management/lib/entities/document-type/document-type.types.d.ts +1 -0
- package/document-management/lib/entities/folder/folder.types.d.ts +4 -4
- package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +141 -16
- package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +66 -6
- package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +119 -0
- package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +119 -0
- package/document-management/lib/features/drive/drive.component.d.ts +97 -71
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +72 -7
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.d.ts +1 -0
- package/document-management/lib/features/shared/components/choose-document-type/choose-document-type.component.d.ts +21 -0
- package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +180 -0
- package/document-management/lib/features/shared/components/index.d.ts +3 -2
- package/document-management/lib/features/shared/document-manager.service.d.ts +32 -12
- package/document-management/lib/features/shared/document-manager.types.d.ts +7 -3
- package/document-management/lib/features/shared/index.d.ts +1 -0
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +64 -5
- package/document-management/lib/features/workflow/upload/upload.workflow.d.ts +17 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-BSGSZi9T.mjs → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs} +2 -2
- 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
- package/fesm2022/acorex-modules-application-management.mjs +2 -2
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs} +12 -12
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-Xcs9ViQv.mjs.map → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-0L9y_yn_.mjs.map → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-CfO1IwH9.mjs → acorex-modules-auth-login.module-DFCB1l7W.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-CfO1IwH9.mjs.map → acorex-modules-auth-login.module-DFCB1l7W.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-hLuHDgvl.mjs → acorex-modules-auth-master.layout-CuKXvY0o.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-hLuHDgvl.mjs.map → acorex-modules-auth-master.layout-CuKXvY0o.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-CTVBARbz.mjs → acorex-modules-auth-password.component-5gwz30CZ.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-CTVBARbz.mjs.map → acorex-modules-auth-password.component-5gwz30CZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BztZ3DJd.mjs → acorex-modules-auth-password.component-DacOjakT.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-BztZ3DJd.mjs.map → acorex-modules-auth-password.component-DacOjakT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-CJz0CRlp.mjs → acorex-modules-auth-routes-D018Lg-b.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-CJz0CRlp.mjs.map → acorex-modules-auth-routes-D018Lg-b.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-kVFAR9t1.mjs.map → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-_VYT-h-9.mjs → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-auth-two-factor.module-BQfrnrd0.mjs → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-BQfrnrd0.mjs.map → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-common-index-D90SN6SH.mjs +507 -0
- package/fesm2022/acorex-modules-common-index-D90SN6SH.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +5 -5
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs → acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs} +823 -421
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-_BOVaDOq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs → acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs} +7 -6
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-D66KoQNb.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-BHcu_gYH.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-BHcu_gYH.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs +163 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-WoZfDyLK.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-B3BCzdVv.mjs +305 -0
- package/fesm2022/acorex-modules-document-management-drive.component-B3BCzdVv.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-DvriE0YR.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-ByWrKvZe.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-B6J6Tokv.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-B6J6Tokv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs → acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs} +6 -6
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-Dae6RWb8.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-TrYeB22e.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-DDKdWg8I.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- 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
- 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
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjmyIav9.mjs → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjmyIav9.mjs.map → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-hkwaOGfL.mjs.map → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-gdMTnjl-.mjs → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs} +2 -2
- 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
- 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
- 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
- package/fesm2022/{acorex-modules-form-template-management-template.entity-_yMAqh35.mjs → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-_yMAqh35.mjs.map → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CbcSFEis.mjs → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs} +3 -3
- 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
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +2 -2
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Bsae9u-e.mjs → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-aMPR3Oyw.mjs → acorex-modules-organization-management-org-chart-configuration.page-JKQwYEPq.mjs} +3 -3
- 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
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs → acorex-modules-organization-management-org-chart.page-C2ZtUVKI.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CAgSSVON.mjs.map → acorex-modules-organization-management-org-chart.page-C2ZtUVKI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs.map → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +4 -4
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs → acorex-modules-platform-management-list-version.component-C9764yzu.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DI1wKhRv.mjs.map → acorex-modules-platform-management-list-version.component-C9764yzu.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +368 -15
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/package.json +1 -1
- package/platform-management/lib/const.d.ts +6 -0
- package/platform-management/lib/entities/index.d.ts +1 -0
- package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts +1 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.entity.d.ts +3 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.service.d.ts +10 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.types.d.ts +5 -0
- package/platform-management/lib/entities/meta-data-definition-category/index.d.ts +3 -0
- package/document-management/lib/features/shared/components/file-viewer-popup/index.d.ts +0 -1
- package/document-management/lib/features/shared/components/tree-folder-popup/index.d.ts +0 -1
- package/document-management/lib/features/shared/components/tree-folder-popup/tree-folder-popup.component.d.ts +0 -20
- package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs +0 -472
- package/fesm2022/acorex-modules-common-index-BAt02rnb.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BmLGtKDq.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-DqoWmtm7.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs +0 -152
- package/fesm2022/acorex-modules-document-management-drive-choose.component-CkS8s7zm.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs +0 -164
- package/fesm2022/acorex-modules-document-management-drive.component-B6az6-_w.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs +0 -24
- package/fesm2022/acorex-modules-document-management-file-viewer-popup.component-CaSagveT.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs +0 -69
- package/fesm2022/acorex-modules-document-management-index-9l8D5iEE.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-BoODbM0H.mjs.map +0 -1
package/package.json
CHANGED
@@ -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;
|
package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts
CHANGED
@@ -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,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
|
+
}
|
@@ -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
|