@acorex/modules 18.1.2 → 18.1.4
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/application-management/lib/layouts/index.d.ts +0 -1
- package/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +1 -2
- package/application-management/lib/workflows/index.d.ts +0 -1
- package/backend/lib/data/api/comment.mock.service.d.ts +62 -0
- package/backend/lib/data/index.d.ts +1 -0
- package/esm2022/application-management/lib/application-management.module.mjs +2 -6
- package/esm2022/application-management/lib/entities/property.entity.mjs +10 -12
- package/esm2022/application-management/lib/layouts/index.mjs +1 -2
- package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +3 -17
- package/esm2022/application-management/lib/workflows/index.mjs +1 -2
- package/esm2022/auth/lib/account/profile/profile-slot.component.mjs +3 -11
- package/esm2022/backend/lib/backend.module.mjs +2 -2
- package/esm2022/backend/lib/data/api/comment.mock.service.mjs +142 -0
- package/esm2022/backend/lib/data/index.mjs +2 -1
- package/esm2022/notification-management/acorex-modules-notification-management.mjs +5 -0
- package/esm2022/notification-management/index.mjs +4 -0
- package/esm2022/notification-management/lib/entities/notification-channel.entity.mjs +329 -0
- package/esm2022/notification-management/lib/entities/notification-template.entity.mjs +298 -0
- package/esm2022/notification-management/lib/notification-management-mock-data.mjs +20 -0
- package/esm2022/notification-management/lib/notification-management.module.mjs +44 -0
- package/esm2022/notification-management/lib/notification-management.service.mjs +30 -0
- package/esm2022/template-management/acorex-modules-template-management.mjs +5 -0
- package/esm2022/template-management/index.mjs +4 -0
- package/esm2022/template-management/lib/entities/global-template.entity.mjs +298 -0
- package/esm2022/template-management/lib/entities/template-variable.entity.mjs +304 -0
- package/esm2022/template-management/lib/template-management-mock-data.mjs +11 -0
- package/esm2022/template-management/lib/template-management.module.mjs +45 -0
- package/esm2022/template-management/lib/template-management.service.mjs +24 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs → acorex-modules-application-management-module-designer.component-C-lY0Apl.mjs} +1 -4
- package/fesm2022/{acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs.map → acorex-modules-application-management-module-designer.component-C-lY0Apl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +14 -145
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CS3UFdX0.mjs → acorex-modules-auth-acorex-modules-auth-4OzzidjS.mjs} +10 -18
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-4OzzidjS.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-BlJbIMKi.mjs → acorex-modules-auth-app-chooser.component-CHTEeWgx.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-BlJbIMKi.mjs.map → acorex-modules-auth-app-chooser.component-CHTEeWgx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-DGBKGxI3.mjs → acorex-modules-auth-login.module-DMit4yw0.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-DGBKGxI3.mjs.map → acorex-modules-auth-login.module-DMit4yw0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-B_8Sfw0M.mjs → acorex-modules-auth-master.layout-BCYIjTB0.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-B_8Sfw0M.mjs.map → acorex-modules-auth-master.layout-BCYIjTB0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BfDjRRN_.mjs → acorex-modules-auth-password.component-D16ms36y.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-BfDjRRN_.mjs.map → acorex-modules-auth-password.component-D16ms36y.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DZJ1qwfa.mjs → acorex-modules-auth-password.component-WA-CA0Ln.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-DZJ1qwfa.mjs.map → acorex-modules-auth-password.component-WA-CA0Ln.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-Bw7nXDvx.mjs → acorex-modules-auth-routes-C3ye31RS.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-Bw7nXDvx.mjs.map → acorex-modules-auth-routes-C3ye31RS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-DKStBo1V.mjs → acorex-modules-auth-two-factor.module-CkZCBo0B.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-DKStBo1V.mjs.map → acorex-modules-auth-two-factor.module-CkZCBo0B.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-backend.mjs +142 -3
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +728 -0
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-template-management.mjs +690 -0
- package/fesm2022/acorex-modules-template-management.mjs.map +1 -0
- package/notification-management/README.md +3 -0
- package/notification-management/index.d.ts +3 -0
- package/notification-management/lib/entities/notification-channel.entity.d.ts +3 -0
- package/notification-management/lib/entities/notification-template.entity.d.ts +3 -0
- package/notification-management/lib/notification-management-mock-data.d.ts +13 -0
- package/notification-management/lib/notification-management.module.d.ts +12 -0
- package/notification-management/lib/notification-management.service.d.ts +11 -0
- package/package.json +13 -1
- package/template-management/README.md +3 -0
- package/template-management/index.d.ts +3 -0
- package/template-management/lib/entities/global-template.entity.d.ts +3 -0
- package/template-management/lib/entities/template-variable.entity.d.ts +3 -0
- package/template-management/lib/template-management-mock-data.d.ts +7 -0
- package/template-management/lib/template-management.module.d.ts +12 -0
- package/template-management/lib/template-management.service.d.ts +9 -0
- package/application-management/lib/layouts/property-detail-view/modify-property-interface.component.d.ts +0 -5
- package/application-management/lib/workflows/modify-property-interface.workflow.d.ts +0 -26
- package/esm2022/application-management/lib/layouts/property-detail-view/modify-property-interface.component.mjs +0 -55
- package/esm2022/application-management/lib/workflows/modify-property-interface.workflow.mjs +0 -79
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-CS3UFdX0.mjs.map +0 -1
@@ -0,0 +1,11 @@
|
|
1
|
+
import { AXPDataGenerator } from '@acorex/platform/common';
|
2
|
+
export const GLOBAL_TEMPLATES = Array.from({ length: 5 }).map((_, i) => {
|
3
|
+
const name = AXPDataGenerator.string;
|
4
|
+
return {
|
5
|
+
id: AXPDataGenerator.uuid(),
|
6
|
+
name: name,
|
7
|
+
title: name,
|
8
|
+
content: AXPDataGenerator.string(200),
|
9
|
+
};
|
10
|
+
});
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlbWVudC1tb2NrLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvdGVtcGxhdGUtbWFuYWdlbWVudC9zcmMvbGliL3RlbXBsYXRlLW1hbmFnZW1lbnQtbW9jay1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDckUsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3JDLE9BQU87UUFDTCxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1FBQzNCLElBQUksRUFBRSxJQUFJO1FBQ1YsS0FBSyxFQUFFLElBQUk7UUFDWCxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUN0QyxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBEYXRhR2VuZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgR0xPQkFMX1RFTVBMQVRFUyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDUgfSkubWFwKChfLCBpKSA9PiB7XG4gIGNvbnN0IG5hbWUgPSBBWFBEYXRhR2VuZXJhdG9yLnN0cmluZztcbiAgcmV0dXJuIHtcbiAgICBpZDogQVhQRGF0YUdlbmVyYXRvci51dWlkKCksXG4gICAgbmFtZTogbmFtZSxcbiAgICB0aXRsZTogbmFtZSxcbiAgICBjb250ZW50OiBBWFBEYXRhR2VuZXJhdG9yLnN0cmluZygyMDApLFxuICB9O1xufSk7XG4iXX0=
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';
|
2
|
+
import { Inject, Injector, NgModule, Optional } from '@angular/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class TemplateManagementModule {
|
5
|
+
static forRoot() {
|
6
|
+
return {
|
7
|
+
ngModule: TemplateManagementModule,
|
8
|
+
providers: [
|
9
|
+
{
|
10
|
+
provide: 'AXP_REGISTER_TEMPLATE_GLOBAL',
|
11
|
+
useFactory: async (entityRegistry, injector) => {
|
12
|
+
const globalTemplateEntity = await (await import('./entities/global-template.entity')).globalTemplateEntityFactory(injector);
|
13
|
+
entityRegistry.register(globalTemplateEntity);
|
14
|
+
//
|
15
|
+
const variableEntity = await (await import('./entities/template-variable.entity')).templateVariableEntityFactory(injector);
|
16
|
+
entityRegistry.register(variableEntity);
|
17
|
+
//
|
18
|
+
},
|
19
|
+
deps: [AXPEntityDefinitionRegistryService, Injector], // Add any dependencies if needed
|
20
|
+
},
|
21
|
+
],
|
22
|
+
};
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* @ignore
|
26
|
+
*/
|
27
|
+
constructor(instances) { }
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementModule, deps: [{ token: 'AXP_REGISTER_TEMPLATE_GLOBAL', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
29
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementModule }); }
|
30
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementModule }); }
|
31
|
+
}
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementModule, decorators: [{
|
33
|
+
type: NgModule,
|
34
|
+
args: [{
|
35
|
+
imports: [],
|
36
|
+
exports: [],
|
37
|
+
declarations: [],
|
38
|
+
}]
|
39
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
40
|
+
type: Optional
|
41
|
+
}, {
|
42
|
+
type: Inject,
|
43
|
+
args: ['AXP_REGISTER_TEMPLATE_GLOBAL']
|
44
|
+
}] }] });
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvdGVtcGxhdGUtbWFuYWdlbWVudC9zcmMvbGliL3RlbXBsYXRlLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8xRixNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSw4QkFBOEI7b0JBQ3ZDLFVBQVUsRUFBRSxLQUFLLEVBQUUsY0FBa0QsRUFBRSxRQUFrQixFQUFFLEVBQUU7d0JBQzNGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUNqQyxNQUFNLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUNsRCxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUN4QyxjQUFjLENBQUMsUUFBUSxDQUFDLG9CQUEyQixDQUFDLENBQUM7d0JBQ3JELEVBQUU7d0JBRUYsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUMzQixNQUFNLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUNwRCxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMxQyxjQUFjLENBQUMsUUFBUSxDQUFDLGNBQXFCLENBQUMsQ0FBQzt3QkFDL0MsRUFBRTtvQkFDSixDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLGtDQUFrQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLGlDQUFpQztpQkFDeEY7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFnRSxTQUFnQixJQUFHLENBQUM7OEdBN0J6RSx3QkFBd0Isa0JBNkJILDhCQUE4QjsrR0E3Qm5ELHdCQUF3QjsrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUxwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO2lCQUNqQjs7MEJBOEJjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZU1hbmFnZW1lbnRNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRlbXBsYXRlTWFuYWdlbWVudE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVGVtcGxhdGVNYW5hZ2VtZW50TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhQX1JFR0lTVEVSX1RFTVBMQVRFX0dMT0JBTCcsXG4gICAgICAgICAgdXNlRmFjdG9yeTogYXN5bmMgKGVudGl0eVJlZ2lzdHJ5OiBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdsb2JhbFRlbXBsYXRlRW50aXR5ID0gYXdhaXQgKFxuICAgICAgICAgICAgICBhd2FpdCBpbXBvcnQoJy4vZW50aXRpZXMvZ2xvYmFsLXRlbXBsYXRlLmVudGl0eScpXG4gICAgICAgICAgICApLmdsb2JhbFRlbXBsYXRlRW50aXR5RmFjdG9yeShpbmplY3Rvcik7XG4gICAgICAgICAgICBlbnRpdHlSZWdpc3RyeS5yZWdpc3RlcihnbG9iYWxUZW1wbGF0ZUVudGl0eSBhcyBhbnkpO1xuICAgICAgICAgICAgLy9cblxuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVFbnRpdHkgPSBhd2FpdCAoXG4gICAgICAgICAgICAgIGF3YWl0IGltcG9ydCgnLi9lbnRpdGllcy90ZW1wbGF0ZS12YXJpYWJsZS5lbnRpdHknKVxuICAgICAgICAgICAgKS50ZW1wbGF0ZVZhcmlhYmxlRW50aXR5RmFjdG9yeShpbmplY3Rvcik7XG4gICAgICAgICAgICBlbnRpdHlSZWdpc3RyeS5yZWdpc3Rlcih2YXJpYWJsZUVudGl0eSBhcyBhbnkpO1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlLCBJbmplY3Rvcl0sIC8vIEFkZCBhbnkgZGVwZW5kZW5jaWVzIGlmIG5lZWRlZFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoJ0FYUF9SRUdJU1RFUl9URU1QTEFURV9HTE9CQUwnKSBpbnN0YW5jZXM6IGFueVtdKSB7fVxufVxuIl19
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { AXPEntityDataProviderImpl, AXPStorageService } from '@acorex/platform/common';
|
2
|
+
import { Injectable, Injector } from '@angular/core';
|
3
|
+
import { GLOBAL_TEMPLATES } from './template-management-mock-data';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class TemplateManagementService {
|
6
|
+
constructor(injector) {
|
7
|
+
const storageService = injector.get(AXPStorageService);
|
8
|
+
//
|
9
|
+
this._globalTemplateDataProvider = new AXPEntityDataProviderImpl(storageService, 'globalTemplate');
|
10
|
+
this._globalTemplateDataProvider.initial(GLOBAL_TEMPLATES);
|
11
|
+
}
|
12
|
+
get globalTemplateDataProvider() {
|
13
|
+
return this._globalTemplateDataProvider;
|
14
|
+
}
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
16
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementService, providedIn: 'root' }); }
|
17
|
+
}
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TemplateManagementService, decorators: [{
|
19
|
+
type: Injectable,
|
20
|
+
args: [{
|
21
|
+
providedIn: 'root',
|
22
|
+
}]
|
23
|
+
}], ctorParameters: () => [{ type: i0.Injector }] });
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3RlbXBsYXRlLW1hbmFnZW1lbnQvc3JjL2xpYi90ZW1wbGF0ZS1tYW5hZ2VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBS25FLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFBWSxRQUFrQjtRQUM1QixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsRUFBRTtRQUNGLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLHlCQUF5QixDQUFNLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDMUMsQ0FBQzs4R0FaVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbCwgQVhQU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR0xPQkFMX1RFTVBMQVRFUyB9IGZyb20gJy4vdGVtcGxhdGUtbWFuYWdlbWVudC1tb2NrLWRhdGEnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNYW5hZ2VtZW50U2VydmljZSB7XG4gIHByb3RlY3RlZCBfZ2xvYmFsVGVtcGxhdGVEYXRhUHJvdmlkZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBzdG9yYWdlU2VydmljZSA9IGluamVjdG9yLmdldChBWFBTdG9yYWdlU2VydmljZSk7XG4gICAgLy9cbiAgICB0aGlzLl9nbG9iYWxUZW1wbGF0ZURhdGFQcm92aWRlciA9IG5ldyBBWFBFbnRpdHlEYXRhUHJvdmlkZXJJbXBsPGFueT4oc3RvcmFnZVNlcnZpY2UsICdnbG9iYWxUZW1wbGF0ZScpO1xuICAgIHRoaXMuX2dsb2JhbFRlbXBsYXRlRGF0YVByb3ZpZGVyLmluaXRpYWwoR0xPQkFMX1RFTVBMQVRFUyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdsb2JhbFRlbXBsYXRlRGF0YVByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9nbG9iYWxUZW1wbGF0ZURhdGFQcm92aWRlcjtcbiAgfVxufVxuIl19
|
@@ -39,9 +39,6 @@ import '@acorex/platform/common';
|
|
39
39
|
import '@acorex/platform/layout/builder';
|
40
40
|
import '@acorex/platform/widgets';
|
41
41
|
import '@ngrx/store';
|
42
|
-
import '@acorex/platform/layout/designer';
|
43
|
-
import '@acorex/components/popup';
|
44
|
-
import '@acorex/core/platform';
|
45
42
|
import '@acorex/platform/core';
|
46
43
|
|
47
44
|
class AXMModuleDesignerContextMenuService {
|
@@ -329,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
329
326
|
}], ctorParameters: () => [] });
|
330
327
|
|
331
328
|
export { AXMModuleDesignerComponent };
|
332
|
-
//# sourceMappingURL=acorex-modules-application-management-module-designer.component-
|
329
|
+
//# sourceMappingURL=acorex-modules-application-management-module-designer.component-C-lY0Apl.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs","sources":["../../../../libs/modules/application-management/src/lib/services/context-menu.service.ts","../../../../libs/modules/application-management/src/lib/module-designer/module-designer.component.ts","../../../../libs/modules/application-management/src/lib/module-designer/module-designer.component.html"],"sourcesContent":["import { AXContextMenuItemsClickEvent, AXContextMenuOpeningEvent, AXMenuItem } from '@acorex/components/menu';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXMModuleItem } from '../module-designer/module-designer.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMModuleDesignerContextMenuService {\n private workflow = inject(AXPWorkflowService);\n protected copiedRecord = signal<{ type: AXMModuleItem; record: any } | null>(null);\n protected elementData = signal<{ entityType: AXMModuleItem; record: any; moduleId: string } | null>(null);\n\n private menuItems: AXMenuItem[] = [\n {\n name: 'create',\n text: 'Create',\n icon: 'fas fa-plus',\n color: 'primary',\n },\n {\n name: 'delete',\n text: 'Delete',\n icon: 'fas fa-trash',\n color: 'danger',\n },\n {\n name: 'details',\n text: 'Details',\n icon: 'fas fa-eye',\n color: 'ghost',\n },\n {\n name: 'copy',\n text: 'Copy',\n icon: 'fas fa-copy',\n color: 'ghost',\n },\n {\n name: 'paste',\n text: 'Paste',\n icon: 'fas fa-paste',\n color: 'ghost',\n disabled: false,\n },\n ];\n\n open(e: AXContextMenuOpeningEvent) {\n const target = e.targetElement;\n const elementType = target?.getAttribute('data-elementType');\n\n const { data } = target as any;\n\n if (elementType == 'module' || elementType == 'subModule') {\n const moduleId = target?.getAttribute('data-moduleId');\n const entityType = target?.getAttribute('data-entityType') as AXMModuleItem;\n if (elementType == 'module') {\n this.elementData.set({\n entityType,\n moduleId: moduleId as string,\n record: {\n id: moduleId,\n },\n });\n e.items = this.getMenuItems(['details', 'delete']);\n } else {\n this.elementData.set({\n entityType,\n moduleId: moduleId as string,\n record: undefined,\n });\n const items = this.getMenuItems(['create', 'paste']);\n const customMenuItems = items.map((i) =>\n i.name == 'paste' ? { ...i, disabled: entityType == this.copiedRecord()?.type ? false : true } : i\n );\n e.items = customMenuItems;\n }\n } else if (elementType == 'subModuleItem') {\n this.elementData.set(data);\n e.items = this.getMenuItems(['delete', 'copy', 'details']);\n } else {\n e.items = [];\n e.canceled = true;\n }\n }\n\n itemClick(e: AXContextMenuItemsClickEvent) {\n if (this.elementData()) {\n switch (e.item.name) {\n case 'create':\n this.createEntity(this.elementData()?.entityType as AXMModuleItem, this.elementData()?.moduleId);\n break;\n\n case 'details':\n this.showDetails(this.elementData()?.entityType as AXMModuleItem | 'module', this.elementData()?.record.id);\n break;\n\n case 'delete':\n this.deleteEntity(\n this.elementData()?.entityType as AXMModuleItem | 'module',\n this.elementData()?.record.id,\n this.elementData()?.moduleId\n );\n break;\n\n case 'copy':\n this.copyRecord(this.elementData()?.entityType as AXMModuleItem, this.elementData()?.record);\n break;\n\n case 'paste':\n this.pasteRecord(this.elementData()?.moduleId as string);\n break;\n\n default:\n break;\n }\n }\n }\n\n async createEntity(entityType: 'module' | AXMModuleItem, moduleId?: string) {\n await this.workflow.execute('create-module-entity', {\n entity: `application-management.${entityType}`,\n data: {\n moduleId,\n },\n meta: {\n type: entityType,\n moduleId,\n },\n });\n }\n\n async showDetails(entityType: 'module' | AXMModuleItem, id: string) {\n await this.workflow.execute('show-module-entity-details', {\n entity: `application-management.${entityType}`,\n data: {\n id,\n },\n });\n }\n\n private copyRecord(entityType: AXMModuleItem, record: any) {\n const newRecord = { ...record, moduleId: undefined, id: undefined };\n this.copiedRecord.set({ type: entityType, record: newRecord });\n }\n\n private async pasteRecord(moduleId: string) {\n if (this.copiedRecord()) {\n await this.workflow.execute('create-module-entity', {\n entity: `application-management.${this.copiedRecord()?.type}`,\n data: {\n ...this.copiedRecord()?.record,\n moduleId,\n },\n meta: {\n type: this.copiedRecord()?.type,\n moduleId,\n },\n });\n }\n }\n\n private async deleteEntity(entityType: 'module' | AXMModuleItem, id: string[] | string, moduleId?: string) {\n await this.workflow.execute('delete-entity', {\n entity: `application-management.${entityType}`,\n data: {\n id,\n },\n meta: {\n moduleId,\n type: entityType,\n },\n });\n }\n\n private getMenuItems(includeItems: string[]) {\n return this.menuItems.filter((i) => includeItems.includes(i.name as string));\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCollapseClickEvent, AXCollapseModule } from '@acorex/components/collapse';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuModule,\n} from '@acorex/components/menu';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXSideMenuModule } from '@acorex/components/side-menu';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityCreateEvent, AXPEntityDeletedEvent } from '@acorex/platform/layouts';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n OnInit,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXMModuleDesignerContextMenuService } from '../services/context-menu.service';\nimport { AXPModuleDesignerService } from './module-designer.service';\nimport { AXMModuleItem } from './module-designer.type';\n\n@Component({\n templateUrl: './module-designer.component.html',\n styleUrls: ['./module-designer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n CommonModule,\n AXDrawerModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXSideMenuModule,\n AXCollapseModule,\n AXPopoverModule,\n AXSelectionListModule,\n AXBadgeModule,\n AXMenuModule,\n RouterModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMModuleDesignerComponent implements OnInit {\n protected cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n protected contextMenu = viewChild<AXContextMenuComponent>('contextMenu');\n\n protected dataProvider = inject(AXPModuleDesignerService);\n private workflow = inject(AXPWorkflowService);\n protected contextMenuService = inject(AXMModuleDesignerContextMenuService);\n\n protected modules = signal<any[]>([]);\n\n protected moduleDataCache = new Map<string, any[]>();\n\n private readonly destroyed = new Subject<void>();\n\n constructor() {\n this.subscribeActionEvents();\n }\n\n ngOnInit() {\n this.loadModules();\n }\n\n protected subscribeActionEvents() {\n this.workflow.events$\n .pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n const { meta } = event.payload;\n if (meta.type === 'module') {\n this.loadModules();\n } else {\n this.loadModuleData(meta.moduleId, meta.type, true);\n }\n this.cdr.markForCheck();\n });\n }\n\n protected async loadModules() {\n try {\n const modules = await this.dataProvider.getModules();\n this.modules.set(modules.items);\n this.refreshContextMenu();\n } catch (error) {\n console.error('Error loading modules:', error);\n }\n }\n\n protected async handleCollapseItemClick(moduleId: string, e: AXCollapseClickEvent, dataType: AXMModuleItem) {\n if (e.component.isCollapsed) {\n e.handled = true;\n e.component.isLoading = true;\n\n await this.loadModuleData(moduleId, dataType);\n\n e.component.toggle();\n e.component.isLoading = false;\n e.component['cdr'].markForCheck();\n this.refreshContextMenu();\n }\n }\n\n protected refreshContextMenu() {\n setTimeout(() => {\n this.contextMenu()?.refresh();\n }, 0);\n }\n\n protected async loadModuleData(moduleId: string, dataType: AXMModuleItem, hardReload = false) {\n const cacheKey = `${moduleId}-${dataType}`;\n\n let dataItems = this.moduleDataCache.get(cacheKey);\n // if (!dataItems || hardReload) {\n try {\n const methodMap = {\n entity: this.dataProvider.getEntities,\n permission: this.dataProvider.getPermissions,\n feature: this.dataProvider.getFeatures,\n };\n const data = await methodMap[dataType].call(this.dataProvider, moduleId);\n\n dataItems = data.items as any[];\n this.moduleDataCache.set(cacheKey, dataItems);\n } catch (error) {\n console.error(`Error loading ${dataType}:`, error);\n }\n // }\n }\n\n protected getEntities(moduleId: string) {\n return this.moduleDataCache.get(`${moduleId}-entity`) || [];\n }\n\n protected getPermissions(moduleId: string) {\n return this.moduleDataCache.get(`${moduleId}-permission`) || [];\n }\n\n protected getFeatures(moduleId: string) {\n return this.moduleDataCache.get(`${moduleId}-feature`) || [];\n }\n\n protected openingContextMenu(e: AXContextMenuOpeningEvent) {\n this.contextMenuService.open(e);\n }\n\n protected handleActionClick(e: AXContextMenuItemsClickEvent) {\n this.contextMenuService.itemClick(e);\n }\n\n protected createModule() {\n this.contextMenuService.createEntity('module');\n }\n\n protected destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n protected assignData(target: HTMLElement, data: any): void {\n set(target, 'data', data);\n }\n}\n","<ax-drawer-container class=\"ax-overflow-hidden\">\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-w-80 ax-relative ax-border-e ax-px-4 ax-py-2\">\n <div class=\"ax-overflow-auto ax-h-[calc(100vh-180px)]\">\n <span class=\"ax-font-bold ax-text-xl\">{{ 'designer.modules' | translate | async }}</span>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n @if(modules().length){\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n @for(m of modules();track $index){\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-folder ax-text-warning\"\n [isCollapsed]=\"true\"\n [caption]=\"m.title\"\n look=\"none\"\n data-elementType=\"module\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"module\"\n >\n <div class=\"ax-mx-3\">\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-box ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'entity')\"\n [caption]=\"('designer.entities' | translate | async) ?? 'Entities'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"entity\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'entity', items: getEntities(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-star ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'feature')\"\n [caption]=\"('designer.features' | translate | async) ?? 'Features'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"feature\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'feature', items: getFeatures(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-key ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'permission')\"\n [caption]=\"('designer.permissions' | translate | async) ?? 'Permissions'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"permission\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'permission', items: getPermissions(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n </ax-collapse-group>\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n } @else {\n <div class=\"ax-h-full ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-neutral-500 ax-text-sm\">{{ 'designer.emptyModulesText' | translate | async }}</span>\n </div>\n }\n </div>\n <ax-button\n class=\"ax-absolute ax-bottom-4 ax-w-72\"\n [text]=\"('designer.createModule' | translate | async) ?? 'Create New Module'\"\n (onClick)=\"createModule()\"\n look=\"solid\"\n color=\"primary\"\n >\n <ax-icon class=\"fas fa-plus\"> </ax-icon>\n </ax-button>\n </div>\n </ax-content>\n\n <ng-template #childTemplate let-child>\n <div class=\"ax-flex ax-flex-col ax-cursor-pointer ax-select-none ax-border-s ax-ms-[14px] ax-ps-2\">\n @for (item of child.items; track $index) {\n\n <div\n #d\n (click)=\"contextMenuService.showDetails(child.type, item.id)\"\n class=\"ctx ax-px-2 ax-py-1 ax-flex ax-items-center ax-justify-between hover:ax-bg-neutral-100 dark:hover:ax-bg-neutral-700 hover:ax-rounded-md\"\n data-elementType=\"subModuleItem\"\n >\n {{ assignData(d, { record: item, entityType: child.type, moduleId: child.moduleId }) }}\n <span>{{ item.title }}</span>\n <ax-badge\n [look]=\"'twotone'\"\n [color]=\"item.isArchived ? 'danger' : 'success'\"\n [text]=\"item.isArchived ? 'Off' : 'On'\"\n >\n </ax-badge>\n </div>\n }\n </div>\n </ng-template>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n\n<ax-context-menu\n #contextMenu\n (onItemClick)=\"handleActionClick($event)\"\n [items]=\"[]\"\n [target]=\"'.ctx'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onOpening)=\"openingContextMenu($event)\"\n>\n</ax-context-menu>\n"],"names":["i3","i4","i7","i9"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-modules-application-management-module-designer.component-C-lY0Apl.mjs","sources":["../../../../libs/modules/application-management/src/lib/services/context-menu.service.ts","../../../../libs/modules/application-management/src/lib/module-designer/module-designer.component.ts","../../../../libs/modules/application-management/src/lib/module-designer/module-designer.component.html"],"sourcesContent":["import { AXContextMenuItemsClickEvent, AXContextMenuOpeningEvent, AXMenuItem } from '@acorex/components/menu';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXMModuleItem } from '../module-designer/module-designer.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMModuleDesignerContextMenuService {\n private workflow = inject(AXPWorkflowService);\n protected copiedRecord = signal<{ type: AXMModuleItem; record: any } | null>(null);\n protected elementData = signal<{ entityType: AXMModuleItem; record: any; moduleId: string } | null>(null);\n\n private menuItems: AXMenuItem[] = [\n {\n name: 'create',\n text: 'Create',\n icon: 'fas fa-plus',\n color: 'primary',\n },\n {\n name: 'delete',\n text: 'Delete',\n icon: 'fas fa-trash',\n color: 'danger',\n },\n {\n name: 'details',\n text: 'Details',\n icon: 'fas fa-eye',\n color: 'ghost',\n },\n {\n name: 'copy',\n text: 'Copy',\n icon: 'fas fa-copy',\n color: 'ghost',\n },\n {\n name: 'paste',\n text: 'Paste',\n icon: 'fas fa-paste',\n color: 'ghost',\n disabled: false,\n },\n ];\n\n open(e: AXContextMenuOpeningEvent) {\n const target = e.targetElement;\n const elementType = target?.getAttribute('data-elementType');\n\n const { data } = target as any;\n\n if (elementType == 'module' || elementType == 'subModule') {\n const moduleId = target?.getAttribute('data-moduleId');\n const entityType = target?.getAttribute('data-entityType') as AXMModuleItem;\n if (elementType == 'module') {\n this.elementData.set({\n entityType,\n moduleId: moduleId as string,\n record: {\n id: moduleId,\n },\n });\n e.items = this.getMenuItems(['details', 'delete']);\n } else {\n this.elementData.set({\n entityType,\n moduleId: moduleId as string,\n record: undefined,\n });\n const items = this.getMenuItems(['create', 'paste']);\n const customMenuItems = items.map((i) =>\n i.name == 'paste' ? { ...i, disabled: entityType == this.copiedRecord()?.type ? false : true } : i\n );\n e.items = customMenuItems;\n }\n } else if (elementType == 'subModuleItem') {\n this.elementData.set(data);\n e.items = this.getMenuItems(['delete', 'copy', 'details']);\n } else {\n e.items = [];\n e.canceled = true;\n }\n }\n\n itemClick(e: AXContextMenuItemsClickEvent) {\n if (this.elementData()) {\n switch (e.item.name) {\n case 'create':\n this.createEntity(this.elementData()?.entityType as AXMModuleItem, this.elementData()?.moduleId);\n break;\n\n case 'details':\n this.showDetails(this.elementData()?.entityType as AXMModuleItem | 'module', this.elementData()?.record.id);\n break;\n\n case 'delete':\n this.deleteEntity(\n this.elementData()?.entityType as AXMModuleItem | 'module',\n this.elementData()?.record.id,\n this.elementData()?.moduleId\n );\n break;\n\n case 'copy':\n this.copyRecord(this.elementData()?.entityType as AXMModuleItem, this.elementData()?.record);\n break;\n\n case 'paste':\n this.pasteRecord(this.elementData()?.moduleId as string);\n break;\n\n default:\n break;\n }\n }\n }\n\n async createEntity(entityType: 'module' | AXMModuleItem, moduleId?: string) {\n await this.workflow.execute('create-module-entity', {\n entity: `application-management.${entityType}`,\n data: {\n moduleId,\n },\n meta: {\n type: entityType,\n moduleId,\n },\n });\n }\n\n async showDetails(entityType: 'module' | AXMModuleItem, id: string) {\n await this.workflow.execute('show-module-entity-details', {\n entity: `application-management.${entityType}`,\n data: {\n id,\n },\n });\n }\n\n private copyRecord(entityType: AXMModuleItem, record: any) {\n const newRecord = { ...record, moduleId: undefined, id: undefined };\n this.copiedRecord.set({ type: entityType, record: newRecord });\n }\n\n private async pasteRecord(moduleId: string) {\n if (this.copiedRecord()) {\n await this.workflow.execute('create-module-entity', {\n entity: `application-management.${this.copiedRecord()?.type}`,\n data: {\n ...this.copiedRecord()?.record,\n moduleId,\n },\n meta: {\n type: this.copiedRecord()?.type,\n moduleId,\n },\n });\n }\n }\n\n private async deleteEntity(entityType: 'module' | AXMModuleItem, id: string[] | string, moduleId?: string) {\n await this.workflow.execute('delete-entity', {\n entity: `application-management.${entityType}`,\n data: {\n id,\n },\n meta: {\n moduleId,\n type: entityType,\n },\n });\n }\n\n private getMenuItems(includeItems: string[]) {\n return this.menuItems.filter((i) => includeItems.includes(i.name as string));\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCollapseClickEvent, AXCollapseModule } from '@acorex/components/collapse';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuModule,\n} from '@acorex/components/menu';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXSideMenuModule } from '@acorex/components/side-menu';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityCreateEvent, AXPEntityDeletedEvent } from '@acorex/platform/layouts';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n OnInit,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXMModuleDesignerContextMenuService } from '../services/context-menu.service';\nimport { AXPModuleDesignerService } from './module-designer.service';\nimport { AXMModuleItem } from './module-designer.type';\n\n@Component({\n templateUrl: './module-designer.component.html',\n styleUrls: ['./module-designer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n CommonModule,\n AXDrawerModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXSideMenuModule,\n AXCollapseModule,\n AXPopoverModule,\n AXSelectionListModule,\n AXBadgeModule,\n AXMenuModule,\n RouterModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMModuleDesignerComponent implements OnInit {\n protected cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n protected contextMenu = viewChild<AXContextMenuComponent>('contextMenu');\n\n protected dataProvider = inject(AXPModuleDesignerService);\n private workflow = inject(AXPWorkflowService);\n protected contextMenuService = inject(AXMModuleDesignerContextMenuService);\n\n protected modules = signal<any[]>([]);\n\n protected moduleDataCache = new Map<string, any[]>();\n\n private readonly destroyed = new Subject<void>();\n\n constructor() {\n this.subscribeActionEvents();\n }\n\n ngOnInit() {\n this.loadModules();\n }\n\n protected subscribeActionEvents() {\n this.workflow.events$\n .pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n const { meta } = event.payload;\n if (meta.type === 'module') {\n this.loadModules();\n } else {\n this.loadModuleData(meta.moduleId, meta.type, true);\n }\n this.cdr.markForCheck();\n });\n }\n\n protected async loadModules() {\n try {\n const modules = await this.dataProvider.getModules();\n this.modules.set(modules.items);\n this.refreshContextMenu();\n } catch (error) {\n console.error('Error loading modules:', error);\n }\n }\n\n protected async handleCollapseItemClick(moduleId: string, e: AXCollapseClickEvent, dataType: AXMModuleItem) {\n if (e.component.isCollapsed) {\n e.handled = true;\n e.component.isLoading = true;\n\n await this.loadModuleData(moduleId, dataType);\n\n e.component.toggle();\n e.component.isLoading = false;\n e.component['cdr'].markForCheck();\n this.refreshContextMenu();\n }\n }\n\n protected refreshContextMenu() {\n setTimeout(() => {\n this.contextMenu()?.refresh();\n }, 0);\n }\n\n protected async loadModuleData(moduleId: string, dataType: AXMModuleItem, hardReload = false) {\n const cacheKey = `${moduleId}-${dataType}`;\n\n let dataItems = this.moduleDataCache.get(cacheKey);\n // if (!dataItems || hardReload) {\n try {\n const methodMap = {\n entity: this.dataProvider.getEntities,\n permission: this.dataProvider.getPermissions,\n feature: this.dataProvider.getFeatures,\n };\n const data = await methodMap[dataType].call(this.dataProvider, moduleId);\n\n dataItems = data.items as any[];\n this.moduleDataCache.set(cacheKey, dataItems);\n } catch (error) {\n console.error(`Error loading ${dataType}:`, error);\n }\n // }\n }\n\n protected getEntities(moduleId: string) {\n return this.moduleDataCache.get(`${moduleId}-entity`) || [];\n }\n\n protected getPermissions(moduleId: string) {\n return this.moduleDataCache.get(`${moduleId}-permission`) || [];\n }\n\n protected getFeatures(moduleId: string) {\n return this.moduleDataCache.get(`${moduleId}-feature`) || [];\n }\n\n protected openingContextMenu(e: AXContextMenuOpeningEvent) {\n this.contextMenuService.open(e);\n }\n\n protected handleActionClick(e: AXContextMenuItemsClickEvent) {\n this.contextMenuService.itemClick(e);\n }\n\n protected createModule() {\n this.contextMenuService.createEntity('module');\n }\n\n protected destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n protected assignData(target: HTMLElement, data: any): void {\n set(target, 'data', data);\n }\n}\n","<ax-drawer-container class=\"ax-overflow-hidden\">\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-w-80 ax-relative ax-border-e ax-px-4 ax-py-2\">\n <div class=\"ax-overflow-auto ax-h-[calc(100vh-180px)]\">\n <span class=\"ax-font-bold ax-text-xl\">{{ 'designer.modules' | translate | async }}</span>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n @if(modules().length){\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n @for(m of modules();track $index){\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-folder ax-text-warning\"\n [isCollapsed]=\"true\"\n [caption]=\"m.title\"\n look=\"none\"\n data-elementType=\"module\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"module\"\n >\n <div class=\"ax-mx-3\">\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-box ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'entity')\"\n [caption]=\"('designer.entities' | translate | async) ?? 'Entities'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"entity\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'entity', items: getEntities(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-star ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'feature')\"\n [caption]=\"('designer.features' | translate | async) ?? 'Features'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"feature\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'feature', items: getFeatures(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-key ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'permission')\"\n [caption]=\"('designer.permissions' | translate | async) ?? 'Permissions'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"permission\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'permission', items: getPermissions(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n </ax-collapse-group>\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n } @else {\n <div class=\"ax-h-full ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-neutral-500 ax-text-sm\">{{ 'designer.emptyModulesText' | translate | async }}</span>\n </div>\n }\n </div>\n <ax-button\n class=\"ax-absolute ax-bottom-4 ax-w-72\"\n [text]=\"('designer.createModule' | translate | async) ?? 'Create New Module'\"\n (onClick)=\"createModule()\"\n look=\"solid\"\n color=\"primary\"\n >\n <ax-icon class=\"fas fa-plus\"> </ax-icon>\n </ax-button>\n </div>\n </ax-content>\n\n <ng-template #childTemplate let-child>\n <div class=\"ax-flex ax-flex-col ax-cursor-pointer ax-select-none ax-border-s ax-ms-[14px] ax-ps-2\">\n @for (item of child.items; track $index) {\n\n <div\n #d\n (click)=\"contextMenuService.showDetails(child.type, item.id)\"\n class=\"ctx ax-px-2 ax-py-1 ax-flex ax-items-center ax-justify-between hover:ax-bg-neutral-100 dark:hover:ax-bg-neutral-700 hover:ax-rounded-md\"\n data-elementType=\"subModuleItem\"\n >\n {{ assignData(d, { record: item, entityType: child.type, moduleId: child.moduleId }) }}\n <span>{{ item.title }}</span>\n <ax-badge\n [look]=\"'twotone'\"\n [color]=\"item.isArchived ? 'danger' : 'success'\"\n [text]=\"item.isArchived ? 'Off' : 'On'\"\n >\n </ax-badge>\n </div>\n }\n </div>\n </ng-template>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n\n<ax-context-menu\n #contextMenu\n (onItemClick)=\"handleActionClick($event)\"\n [items]=\"[]\"\n [target]=\"'.ctx'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onOpening)=\"openingContextMenu($event)\"\n>\n</ax-context-menu>\n"],"names":["i3","i4","i7","i9"],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import {
|
1
|
+
import { AXPEntityDetailViewModelResolver, AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';
|
2
2
|
import { AXPEntityDetailListViewComponent, AXPRootLayoutComponent } from '@acorex/platform/themes/default';
|
3
3
|
import * as i1$1 from '@acorex/platform/workflow';
|
4
|
-
import { AXPWorkflowService, AXPWorkflowAction,
|
4
|
+
import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
5
5
|
import * as i0 from '@angular/core';
|
6
6
|
import { inject, signal, Component, ChangeDetectionStrategy, Injectable, Injector, NgModule, Optional, Inject } from '@angular/core';
|
7
7
|
import * as i2 from '@angular/router';
|
@@ -31,10 +31,6 @@ import { AXPWidgetsModule } from '@acorex/platform/widgets';
|
|
31
31
|
import * as i1 from '@angular/common';
|
32
32
|
import { CommonModule } from '@angular/common';
|
33
33
|
import { Store } from '@ngrx/store';
|
34
|
-
import { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';
|
35
|
-
import { AXPopupService } from '@acorex/components/popup';
|
36
|
-
import { AXPlatform } from '@acorex/core/platform';
|
37
|
-
import { cloneDeep } from 'lodash-es';
|
38
34
|
import { applySortArray, applyFilterArray } from '@acorex/platform/core';
|
39
35
|
|
40
36
|
class AXPModuleEntityDetailViewComponent {
|
@@ -56,25 +52,11 @@ class AXPModuleEntityDetailViewComponent {
|
|
56
52
|
handleActiveDetailTabChanged(e) {
|
57
53
|
this.selectedDetailTabIndex.set(e.index);
|
58
54
|
}
|
59
|
-
handleEditSection(section) {
|
60
|
-
if (section.group.id === 'interface') {
|
61
|
-
this.workflow.execute('modify-property-interface', {
|
62
|
-
entity: 'application.property',
|
63
|
-
data: {
|
64
|
-
id: this.vm.context().id,
|
65
|
-
properties: section.editableProps().map((m) => m.name()),
|
66
|
-
},
|
67
|
-
});
|
68
|
-
}
|
69
|
-
else {
|
70
|
-
this.vm.executeCommand('modify-entity-section', section);
|
71
|
-
}
|
72
|
-
}
|
73
55
|
ngOnDestroy() {
|
74
56
|
this.vm.destroy();
|
75
57
|
}
|
76
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModuleEntityDetailViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPModuleEntityDetailViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPModuleEntityDetailViewComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i5.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i7.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i7.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i7.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i8.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i8.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type:
|
78
60
|
//
|
79
61
|
AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "component", type: i9.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node", "mode", "parentNode", "index"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "ngmodule", type:
|
80
62
|
//
|
@@ -104,42 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
104
86
|
//
|
105
87
|
AXTranslationModule,
|
106
88
|
AXPEntityDetailListViewComponent,
|
107
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"
|
108
|
-
}] });
|
109
|
-
|
110
|
-
class AXPModifyPropertyInterfaceComponent {
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModifyPropertyInterfaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPModifyPropertyInterfaceComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "MODIFY\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
|
113
|
-
//
|
114
|
-
AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type:
|
115
|
-
//
|
116
|
-
AXTranslationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
117
|
-
}
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPModifyPropertyInterfaceComponent, decorators: [{
|
119
|
-
type: Component,
|
120
|
-
args: [{ imports: [
|
121
|
-
CommonModule,
|
122
|
-
RouterModule,
|
123
|
-
AXDecoratorModule,
|
124
|
-
AXDropdownModule,
|
125
|
-
AXPopoverModule,
|
126
|
-
AXFormModule,
|
127
|
-
AXActionSheetModule,
|
128
|
-
AXDrawerModule,
|
129
|
-
AXDialogModule,
|
130
|
-
AXLoadingModule,
|
131
|
-
AXTabsModule,
|
132
|
-
AXButtonModule,
|
133
|
-
AXBreadcrumbsModule,
|
134
|
-
//
|
135
|
-
AXPLayoutBuilderModule,
|
136
|
-
AXPWidgetsModule,
|
137
|
-
AXPStickyDirective,
|
138
|
-
AXPGridLayoutDirective,
|
139
|
-
AXPWidgetPropertyViewerComponent,
|
140
|
-
//
|
141
|
-
AXTranslationModule,
|
142
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "MODIFY\n" }]
|
89
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\"\n>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n >\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title() }}</div>\n @if(vm.description()) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description() }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"b.url\"\n >\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"tr.title\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n <!-- Start Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-card ax-mt-4\" [gridLayout]=\"section.layout()\">\n <ax-form #form>\n <axp-widgets-container [context]=\"vm.context()\">\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\n <p>\n <span class=\"!ax-text-lg ax-font-semibold\">{{ section.title() }}</span>\n <br />\n @if(section.description()) {\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description() }}</span>\n }\n </p>\n @if(section.editable()) {\n <ax-button\n class=\"ax-xs\"\n color=\"ghost\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.props(); track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\n <div>\n <div>\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\n </div>\n </div>\n <div class=\"ax-text-neutral-500\">\n <axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'view'\"> </axp-widget-renderer>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n @if(vm.relatedEntities().length) {\n <ax-tabs\n [look]=\"'with-line'\"\n class=\"ax-mt-2 ax-font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\"> </ax-tab-item>\n }\n </ax-tabs>\n @for(e of vm.relatedEntities();track $index;let index= $index){\n <div [class.ax-hidden]=\"$index !== selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\n </div>\n } }\n </div>\n</div>\n" }]
|
143
90
|
}] });
|
144
91
|
|
145
92
|
class AXPShowModuleEntityDetailViewAction extends AXPWorkflowAction {
|
@@ -204,78 +151,6 @@ const AXPCreateModuleEntityWorkflow = {
|
|
204
151
|
},
|
205
152
|
};
|
206
153
|
|
207
|
-
const AXPEntityModifyEvent = createWorkFlowEvent('[Entity] Modified');
|
208
|
-
class AXPEntityModifyPropertyInterfacePopupAction extends AXPWorkflowAction {
|
209
|
-
constructor() {
|
210
|
-
super(...arguments);
|
211
|
-
this.popupService = inject(AXPopupService);
|
212
|
-
this.platform = inject(AXPlatform);
|
213
|
-
this.entityRegistery = inject(AXPEntityDefinitionRegistryService);
|
214
|
-
this.config = inject(AXP_ENTITY_CONFIG_TOKEN);
|
215
|
-
this.factory = inject(AXPEntityMasterUpdateViewModelFactory);
|
216
|
-
}
|
217
|
-
async execute(context) {
|
218
|
-
const [moduleName, entityName] = context.getVariable('entity').split('.');
|
219
|
-
const { properties, id, title } = context.getVariable('data');
|
220
|
-
const entityRef = await this.entityRegistery.resolve(moduleName, entityName);
|
221
|
-
const vm = await this.factory.create(moduleName, entityName, id, properties);
|
222
|
-
const com = await this.config.viewers.master.modify();
|
223
|
-
const popup = await this.popupService.open(com, {
|
224
|
-
title: title ?? `Modify ${entityRef.formats.individual}`,
|
225
|
-
size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
|
226
|
-
data: {
|
227
|
-
vm,
|
228
|
-
properties,
|
229
|
-
entity: entityRef,
|
230
|
-
},
|
231
|
-
});
|
232
|
-
context.setOutput('result', false);
|
233
|
-
if (popup.data?.result == true) {
|
234
|
-
context.setOutput('result', true);
|
235
|
-
context.setVariable('data', cloneDeep(popup.data.context));
|
236
|
-
}
|
237
|
-
}
|
238
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
239
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction }); }
|
240
|
-
}
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction, decorators: [{
|
242
|
-
type: Injectable
|
243
|
-
}] });
|
244
|
-
const AXPModifyPropertyInterfaceWorkflow = {
|
245
|
-
startStepId: 'modifyPopup',
|
246
|
-
steps: {
|
247
|
-
modifyPopup: {
|
248
|
-
id: 'modifyPopup',
|
249
|
-
action: 'AXPEntityModifyPropertyInterfacePopupAction',
|
250
|
-
nextSteps: [
|
251
|
-
{
|
252
|
-
conditions: [{ type: 'SINGLE', expression: 'context.getOutput("result") == true' }],
|
253
|
-
nextStepId: 'successToast',
|
254
|
-
},
|
255
|
-
],
|
256
|
-
},
|
257
|
-
successToast: {
|
258
|
-
id: 'successToast',
|
259
|
-
action: 'AXPToastAction',
|
260
|
-
input: {
|
261
|
-
color: 'success',
|
262
|
-
title: 'Entity Modified',
|
263
|
-
content: 'Record has been successfully updated.',
|
264
|
-
},
|
265
|
-
nextSteps: [
|
266
|
-
{
|
267
|
-
conditions: [],
|
268
|
-
nextStepId: 'modifyConfirmed',
|
269
|
-
},
|
270
|
-
],
|
271
|
-
},
|
272
|
-
modifyConfirmed: {
|
273
|
-
id: 'modifyConfirmed',
|
274
|
-
action: 'AXPEntityModifyConfirmedAction',
|
275
|
-
},
|
276
|
-
},
|
277
|
-
};
|
278
|
-
|
279
154
|
const AXPShowModuleEntityDetailsViewWorkflow = {
|
280
155
|
startStepId: 'showDetailView',
|
281
156
|
steps: {
|
@@ -292,7 +167,7 @@ const routes = [
|
|
292
167
|
children: [
|
293
168
|
{
|
294
169
|
path: 'module-designer',
|
295
|
-
loadComponent: () => import('./acorex-modules-application-management-module-designer.component-
|
170
|
+
loadComponent: () => import('./acorex-modules-application-management-module-designer.component-C-lY0Apl.mjs').then((c) => c.AXMModuleDesignerComponent),
|
296
171
|
children: [
|
297
172
|
{
|
298
173
|
path: 'm/:module',
|
@@ -344,12 +219,10 @@ class AXMApplicationManagementModule {
|
|
344
219
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMApplicationManagementModule, imports: [AXPWorkflowModule.forChild({
|
345
220
|
actions: {
|
346
221
|
AXPShowModuleEntityDetailViewAction,
|
347
|
-
AXPEntityModifyPropertyInterfacePopupAction,
|
348
222
|
},
|
349
223
|
workflows: {
|
350
224
|
'create-module-entity': AXPCreateModuleEntityWorkflow,
|
351
225
|
'show-module-entity-details': AXPShowModuleEntityDetailsViewWorkflow,
|
352
|
-
'modify-property-interface': AXPModifyPropertyInterfaceWorkflow,
|
353
226
|
},
|
354
227
|
}),
|
355
228
|
RouterModule.forChild(routes)] }); }
|
@@ -361,12 +234,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
361
234
|
AXPWorkflowModule.forChild({
|
362
235
|
actions: {
|
363
236
|
AXPShowModuleEntityDetailViewAction,
|
364
|
-
AXPEntityModifyPropertyInterfacePopupAction,
|
365
237
|
},
|
366
238
|
workflows: {
|
367
239
|
'create-module-entity': AXPCreateModuleEntityWorkflow,
|
368
240
|
'show-module-entity-details': AXPShowModuleEntityDetailsViewWorkflow,
|
369
|
-
'modify-property-interface': AXPModifyPropertyInterfaceWorkflow,
|
370
241
|
},
|
371
242
|
}),
|
372
243
|
RouterModule.forChild(routes),
|
@@ -2699,16 +2570,14 @@ async function propertyEntityFactory(injector) {
|
|
2699
2570
|
},
|
2700
2571
|
},
|
2701
2572
|
{
|
2702
|
-
name: 'schema.interface
|
2703
|
-
title: '
|
2573
|
+
name: 'schema.interface',
|
2574
|
+
title: 'Interface',
|
2704
2575
|
groupId: 'interface',
|
2705
2576
|
schema: {
|
2706
|
-
dataType: '
|
2577
|
+
dataType: 'object',
|
2707
2578
|
interface: {
|
2708
|
-
type: AXPWidgetsCatalog.
|
2709
|
-
options: {
|
2710
|
-
dataSource: Object.values(AXPWidgetsCatalog),
|
2711
|
-
},
|
2579
|
+
type: AXPWidgetsCatalog.widgetSelector,
|
2580
|
+
options: {},
|
2712
2581
|
},
|
2713
2582
|
},
|
2714
2583
|
},
|
@@ -2721,7 +2590,6 @@ async function propertyEntityFactory(injector) {
|
|
2721
2590
|
{ name: 'schema.defaultValue' },
|
2722
2591
|
{ name: 'schema.defaultValue' },
|
2723
2592
|
{ name: 'schema.nullable' },
|
2724
|
-
{ name: 'schema.interface.type' },
|
2725
2593
|
],
|
2726
2594
|
commands: {
|
2727
2595
|
create: {
|
@@ -2739,6 +2607,7 @@ async function propertyEntityFactory(injector) {
|
|
2739
2607
|
},
|
2740
2608
|
update: {
|
2741
2609
|
execute: async (data) => {
|
2610
|
+
debugger;
|
2742
2611
|
return new Promise((resolve) => {
|
2743
2612
|
setTimeout(async () => {
|
2744
2613
|
await dataService.propertyDataProvider.updateOne(data.id, data);
|
@@ -2839,7 +2708,7 @@ async function propertyEntityFactory(injector) {
|
|
2839
2708
|
},
|
2840
2709
|
},
|
2841
2710
|
{
|
2842
|
-
name: 'schema.interface
|
2711
|
+
name: 'schema.interface',
|
2843
2712
|
layout: {
|
2844
2713
|
positions: {
|
2845
2714
|
lg: {
|
@@ -2914,7 +2783,7 @@ async function propertyEntityFactory(injector) {
|
|
2914
2783
|
},
|
2915
2784
|
},
|
2916
2785
|
{
|
2917
|
-
name: 'schema.interface
|
2786
|
+
name: 'schema.interface',
|
2918
2787
|
layout: {
|
2919
2788
|
positions: {
|
2920
2789
|
lg: {
|
@@ -2990,7 +2859,7 @@ async function propertyEntityFactory(injector) {
|
|
2990
2859
|
},
|
2991
2860
|
},
|
2992
2861
|
{
|
2993
|
-
name: 'schema.interface
|
2862
|
+
name: 'schema.interface',
|
2994
2863
|
layout: {
|
2995
2864
|
positions: {
|
2996
2865
|
lg: {
|