@acorex/platform 18.0.1 → 18.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/esm2022/themes/default/acorex-platform-themes-default.mjs +5 -0
  2. package/esm2022/themes/default/index.mjs +3 -0
  3. package/esm2022/themes/default/lib/default.module.mjs +74 -0
  4. package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +21 -0
  5. package/esm2022/themes/default/lib/layout.routes.mjs +20 -0
  6. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +114 -0
  7. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +93 -0
  8. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-list-view.component.mjs +157 -0
  9. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +64 -0
  10. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +61 -0
  11. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +82 -0
  12. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +77 -0
  13. package/esm2022/themes/default/lib/layouts/root-layout/components/footer/footer.component.mjs +14 -0
  14. package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +29 -0
  15. package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +5 -0
  16. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +78 -0
  17. package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +91 -0
  18. package/esm2022/themes/default/lib/pages/errors/error-401/error-401.component.mjs +28 -0
  19. package/esm2022/themes/default/lib/pages/errors/error-404/error-404.component.mjs +22 -0
  20. package/esm2022/themes/default/lib/pages/errors/error-offline/error-offline.component.mjs +16 -0
  21. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs +96 -0
  22. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs +85 -0
  24. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs +31 -0
  26. package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs +25 -0
  28. package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs +19 -0
  30. package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-default.mjs +681 -0
  32. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -0
  33. package/package.json +7 -1
  34. package/themes/default/README.md +3 -0
  35. package/themes/default/index.d.ts +2 -0
  36. package/themes/default/lib/default.module.d.ts +8 -0
  37. package/themes/default/lib/entity-reuse.strategy.d.ts +8 -0
  38. package/themes/default/lib/layout.routes.d.ts +2 -0
  39. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +24 -0
  40. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +17 -0
  41. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-list-view.component.d.ts +29 -0
  42. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +18 -0
  43. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +16 -0
  44. package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +16 -0
  45. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +13 -0
  46. package/themes/default/lib/layouts/root-layout/components/footer/footer.component.d.ts +5 -0
  47. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +10 -0
  48. package/themes/default/lib/layouts/root-layout/index.d.ts +4 -0
  49. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +32 -0
  50. package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +24 -0
  51. package/themes/default/lib/pages/errors/error-401/error-401.component.d.ts +10 -0
  52. package/themes/default/lib/pages/errors/error-404/error-404.component.d.ts +8 -0
  53. package/themes/default/lib/pages/errors/error-offline/error-offline.component.d.ts +9 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLXRoZW1lcy1kZWZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvYWNvcmV4LXBsYXRmb3JtLXRoZW1lcy1kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './lib/layouts/root-layout';
2
+ export * from './lib/default.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0cy9yb290LWxheW91dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlZmF1bHQubW9kdWxlJztcclxuIl19
@@ -0,0 +1,74 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { RouteReuseStrategy, RouterModule } from "@angular/router";
3
+ import { routes } from "./layout.routes";
4
+ import { AXPCommonModule } from "@acorex/platform/common";
5
+ import { AXPRootLayoutComponent } from "./layouts/root-layout";
6
+ import { AXPEntityReuseStrategy } from "./entity-reuse.strategy";
7
+ import { AXP_ENTITY_CONFIG_TOKEN } from "@acorex/platform/layout/entity";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/router";
10
+ export class AXPDefaultThemeModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDefaultThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: AXPDefaultThemeModule, imports: [i1.RouterModule, AXPCommonModule] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDefaultThemeModule, providers: [
14
+ {
15
+ provide: AXP_ENTITY_CONFIG_TOKEN,
16
+ useValue: {
17
+ viewers: {
18
+ root: () => AXPRootLayoutComponent,
19
+ master: {
20
+ single: () => import('./layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component')
21
+ .then(c => c.AXPEntityMasterSingleViewComponent),
22
+ ///
23
+ create: () => import('./layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component')
24
+ .then(c => c.AXPEntityMasterCreateViewComponent),
25
+ ///
26
+ modify: () => import('./layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component')
27
+ .then(c => c.AXPEntityMasterModifyViewComponent),
28
+ //
29
+ list: () => import('./layouts/entity-layouts/entity-master-list-view/entity-list-view.component')
30
+ .then(c => c.AXPEntityMasterListViewComponent)
31
+ }
32
+ }
33
+ }
34
+ },
35
+ { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy }
36
+ ], imports: [RouterModule.forChild(routes),
37
+ AXPCommonModule] }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPDefaultThemeModule, decorators: [{
40
+ type: NgModule,
41
+ args: [{
42
+ imports: [
43
+ RouterModule.forChild(routes),
44
+ AXPCommonModule,
45
+ ],
46
+ exports: [],
47
+ declarations: [],
48
+ providers: [
49
+ {
50
+ provide: AXP_ENTITY_CONFIG_TOKEN,
51
+ useValue: {
52
+ viewers: {
53
+ root: () => AXPRootLayoutComponent,
54
+ master: {
55
+ single: () => import('./layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component')
56
+ .then(c => c.AXPEntityMasterSingleViewComponent),
57
+ ///
58
+ create: () => import('./layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component')
59
+ .then(c => c.AXPEntityMasterCreateViewComponent),
60
+ ///
61
+ modify: () => import('./layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component')
62
+ .then(c => c.AXPEntityMasterModifyViewComponent),
63
+ //
64
+ list: () => import('./layouts/entity-layouts/entity-master-list-view/entity-list-view.component')
65
+ .then(c => c.AXPEntityMasterListViewComponent)
66
+ }
67
+ }
68
+ }
69
+ },
70
+ { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy }
71
+ ]
72
+ }]
73
+ }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvZGVmYXVsdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQW9CLE1BQU0sZ0NBQWdDLENBQUM7OztBQWlDM0YsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCOytHQUFyQixxQkFBcUIsNkJBN0IxQixlQUFlOytHQTZCVixxQkFBcUIsYUF6Qm5CO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsUUFBUSxFQUFFO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsc0JBQXNCO3dCQUNsQyxNQUFNLEVBQUU7NEJBQ0osTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3RkFBd0YsQ0FBQztpQ0FDekcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDOzRCQUNwRCxHQUFHOzRCQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0ZBQXdGLENBQUM7aUNBQ3pHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQzs0QkFDcEQsR0FBRzs0QkFDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHdGQUF3RixDQUFDO2lDQUN6RyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUM7NEJBQ3BELEVBQUU7NEJBQ0YsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw2RUFBNkUsQ0FBQztpQ0FDNUYsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO3lCQUNyRDtxQkFDSjtpQkFDZ0I7YUFDeEI7WUFDRCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7U0FDcEUsWUE1QkcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDN0IsZUFBZTs7MkZBNkJWLHFCQUFxQjtrQkFoQ2pDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO3dCQUM3QixlQUFlO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFFBQVEsRUFBRTtnQ0FDTixPQUFPLEVBQUU7b0NBQ0wsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLHNCQUFzQjtvQ0FDbEMsTUFBTSxFQUFFO3dDQUNKLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsd0ZBQXdGLENBQUM7NkNBQ3pHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQzt3Q0FDcEQsR0FBRzt3Q0FDSCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHdGQUF3RixDQUFDOzZDQUN6RyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUM7d0NBQ3BELEdBQUc7d0NBQ0gsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3RkFBd0YsQ0FBQzs2Q0FDekcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDO3dDQUNwRCxFQUFFO3dDQUNGLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNkVBQTZFLENBQUM7NkNBQzVGLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztxQ0FDckQ7aUNBQ0o7NkJBQ2dCO3lCQUN4Qjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7cUJBQ3BFO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZVJldXNlU3RyYXRlZ3ksIFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSBcIi4vbGF5b3V0LnJvdXRlc1wiO1xyXG5pbXBvcnQgeyBBWFBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcclxuaW1wb3J0IHsgQVhQUm9vdExheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2xheW91dHMvcm9vdC1sYXlvdXRcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5UmV1c2VTdHJhdGVneSB9IGZyb20gXCIuL2VudGl0eS1yZXVzZS5zdHJhdGVneVwiO1xyXG5pbXBvcnQgeyBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiwgQVhQRW50aXR5Q29uZmlncyB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHlcIjtcclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcclxuICAgICAgICBBWFBDb21tb25Nb2R1bGUsXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW10sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfRU5USVRZX0NPTkZJR19UT0tFTixcclxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgIHZpZXdlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICByb290OiAoKSA9PiBBWFBSb290TGF5b3V0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIG1hc3Rlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGU6ICgpID0+IGltcG9ydCgnLi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1tYXN0ZXItc2luZ2xlLXZpZXcvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy5jb21wb25lbnQnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oYyA9PiBjLkFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdDb21wb25lbnQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLy9cclxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlOiAoKSA9PiBpbXBvcnQoJy4vbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3L2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGMgPT4gYy5BWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3Q29tcG9uZW50KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8vXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeTogKCkgPT4gaW1wb3J0KCcuL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1tb2RpZnktdmlldy9lbnRpdHktbWFzdGVyLW1vZGlmeS12aWV3LmNvbXBvbmVudCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihjID0+IGMuQVhQRW50aXR5TWFzdGVyTW9kaWZ5Vmlld0NvbXBvbmVudCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Q6ICgpID0+IGltcG9ydCgnLi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1tYXN0ZXItbGlzdC12aWV3L2VudGl0eS1saXN0LXZpZXcuY29tcG9uZW50JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGMgPT4gYy5BWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld0NvbXBvbmVudClcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gYXMgQVhQRW50aXR5Q29uZmlnc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksIHVzZUNsYXNzOiBBWFBFbnRpdHlSZXVzZVN0cmF0ZWd5IH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUERlZmF1bHRUaGVtZU1vZHVsZSB7XHJcbn1cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { AXPEntityMasterSingleViewComponent } from './layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component';
2
+ import { AXPEntityMasterListViewComponent } from './layouts/entity-layouts/entity-master-list-view/entity-list-view.component';
3
+ export class AXPEntityReuseStrategy {
4
+ shouldDetach(route) {
5
+ return false;
6
+ }
7
+ store(route, detachedTree) { }
8
+ shouldAttach(route) {
9
+ return false;
10
+ }
11
+ retrieve(route) {
12
+ return null;
13
+ }
14
+ shouldReuseRoute(future, curr) {
15
+ if (future.component === AXPEntityMasterListViewComponent || future.component === AXPEntityMasterSingleViewComponent) {
16
+ return false;
17
+ }
18
+ return future.routeConfig === curr.routeConfig;
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJldXNlLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2VudGl0eS1yZXVzZS5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx3RkFBd0YsQ0FBQztBQUM1SSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUcvSCxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQVksQ0FBQyxLQUE2QjtRQUN0QyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQTZCLEVBQUUsWUFBaUMsSUFBVSxDQUFDO0lBRWpGLFlBQVksQ0FBQyxLQUE2QjtRQUN0QyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQTZCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUE4QixFQUFFLElBQTRCO1FBQ3pFLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxnQ0FBZ0MsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLGtDQUFrQyxFQUFFLENBQUM7WUFDbkgsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlUmV1c2VTdHJhdGVneSwgRGV0YWNoZWRSb3V0ZUhhbmRsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1zaW5nbGUtdmlldy9lbnRpdHktbWFzdGVyLXNpbmdsZS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1tYXN0ZXItbGlzdC12aWV3L2VudGl0eS1saXN0LXZpZXcuY29tcG9uZW50JztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5UmV1c2VTdHJhdGVneSBpbXBsZW1lbnRzIFJvdXRlUmV1c2VTdHJhdGVneSB7XHJcblxyXG5cclxuICAgIHNob3VsZERldGFjaChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgZGV0YWNoZWRUcmVlOiBEZXRhY2hlZFJvdXRlSGFuZGxlKTogdm9pZCB7IH1cclxuXHJcbiAgICBzaG91bGRBdHRhY2gocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0cmlldmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBEZXRhY2hlZFJvdXRlSGFuZGxlIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGN1cnI6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoZnV0dXJlLmNvbXBvbmVudCA9PT0gQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdDb21wb25lbnQgfHwgZnV0dXJlLmNvbXBvbmVudCA9PT0gQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0NvbXBvbmVudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZnV0dXJlLnJvdXRlQ29uZmlnID09PSBjdXJyLnJvdXRlQ29uZmlnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ export const routes = [
2
+ {
3
+ path: 'error',
4
+ children: [
5
+ {
6
+ path: 'offline',
7
+ loadComponent: () => import('./pages/errors/error-offline/error-offline.component').then(c => c.AXPErrorOfflineComponent),
8
+ },
9
+ {
10
+ path: '404',
11
+ loadComponent: () => import('./pages/errors/error-404/error-404.component').then(c => c.AXPError404Component),
12
+ },
13
+ {
14
+ path: '401',
15
+ loadComponent: () => import('./pages/errors/error-401/error-401.component').then(c => c.AXPError401Component),
16
+ },
17
+ ]
18
+ },
19
+ ];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQvc3JjL2xpYi9sYXlvdXQucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBWTtJQUMzQjtRQUNJLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFO1lBQ047Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzREFBc0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQzthQUM1SDtZQUNEO2dCQUNJLElBQUksRUFBRSxLQUFLO2dCQUNYLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7YUFDaEg7WUFDRDtnQkFDSSxJQUFJLEVBQUUsS0FBSztnQkFDWCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDhDQUE4QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO2FBQ2hIO1NBQ0o7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmV4cG9ydCBjb25zdCByb3V0ZXM6IFJvdXRlW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgcGF0aDogJ2Vycm9yJyxcclxuICAgICAgICBjaGlsZHJlbjogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnb2ZmbGluZScsXHJcbiAgICAgICAgICAgICAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZXMvZXJyb3JzL2Vycm9yLW9mZmxpbmUvZXJyb3Itb2ZmbGluZS5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5BWFBFcnJvck9mZmxpbmVDb21wb25lbnQpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXRoOiAnNDA0JyxcclxuICAgICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlcy9lcnJvcnMvZXJyb3ItNDA0L2Vycm9yLTQwNC5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5BWFBFcnJvcjQwNENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhdGg6ICc0MDEnLFxyXG4gICAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL2Vycm9ycy9lcnJvci00MDEvZXJyb3ItNDAxLmNvbXBvbmVudCcpLnRoZW4oYyA9PiBjLkFYUEVycm9yNDAxQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdXHJcbiAgICB9LFxyXG5dO1xyXG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { AXActionSheetModule, AXActionSheetService } from '@acorex/components/action-sheet';
2
+ import { AXDataTableComponent, AXDataTableModule } from '@acorex/components/data-table';
3
+ import { AXDrawerModule } from '@acorex/components/drawer';
4
+ import { AXPlatform } from '@acorex/core/platform';
5
+ import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, inject } from '@angular/core';
6
+ import { RouterModule } from '@angular/router';
7
+ import { AXUnsubscriber } from '@acorex/core/utils';
8
+ import { AXPGridLayoutDirective, AXPLayoutService, AXPStickyDirective } from '@acorex/platform/common';
9
+ import { AXBadgeModule } from '@acorex/components/badge';
10
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
11
+ import { AXButtonModule } from '@acorex/components/button';
12
+ import { AXDecoratorModule } from '@acorex/components/decorators';
13
+ import { AXDialogModule } from '@acorex/components/dialog';
14
+ import { AXDropdownModule } from '@acorex/components/dropdown';
15
+ import { AXFormModule } from '@acorex/components/form';
16
+ import { AXLoadingModule } from '@acorex/components/loading';
17
+ import { AXPopoverModule } from '@acorex/components/popover';
18
+ import { AXTabsModule } from '@acorex/components/tabs';
19
+ import { AXTooltipModule } from '@acorex/components/tooltip';
20
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
21
+ import { AXPWidgetsModule } from '@acorex/platform/widgets';
22
+ import { CommonModule } from '@angular/common';
23
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
24
+ import { FormsModule } from '@angular/forms';
25
+ import { AXPAuthModule } from '@acorex/platform/auth';
26
+ import { AXPEntityDetailListViewModel } from '@acorex/platform/layout/entity';
27
+ import * as i0 from "@angular/core";
28
+ import * as i1 from "@acorex/components/action-sheet";
29
+ import * as i2 from "@acorex/core/utils";
30
+ import * as i3 from "@acorex/core/platform";
31
+ import * as i4 from "@acorex/components/data-table";
32
+ import * as i5 from "@acorex/platform/layout/builder";
33
+ export class AXPEntityDetailListViewComponent {
34
+ constructor(actionSheetService, unsubscriber, platform) {
35
+ this.actionSheetService = actionSheetService;
36
+ this.unsubscriber = unsubscriber;
37
+ this.platform = platform;
38
+ this.layout = inject(AXPLayoutService);
39
+ this.dropdownRowItems = [
40
+ {
41
+ text: 'Details',
42
+ icon: 'fa-solid fa-eye',
43
+ name: 'open-entity',
44
+ divided: true,
45
+ },
46
+ {
47
+ text: 'Delete',
48
+ icon: 'fa-solid fa-trash-can',
49
+ name: 'delete-entity',
50
+ color: 'danger',
51
+ disabled: true,
52
+ },
53
+ ];
54
+ this.getDropdownRowItems = (rowData) => {
55
+ return Promise.resolve(this.dropdownRowItems);
56
+ };
57
+ }
58
+ handleChangeSearchValue(e) {
59
+ if (e.isUserInteraction) {
60
+ this.vm.applyInlineFilter(e.value);
61
+ }
62
+ }
63
+ handleRowDbClick(e) {
64
+ const d = {
65
+ component: e.component,
66
+ name: this.dropdownRowItems[0].name,
67
+ data: e.data,
68
+ };
69
+ this.handleRowCommandClick(d);
70
+ }
71
+ async handleRowCommandClick(e) {
72
+ this.vm.executeCommand(e.name, e.data);
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1.AXActionSheetService }, { token: i2.AXUnsubscriber }, { token: i3.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityDetailListViewComponent, isStandalone: true, selector: "axp-entity-detail-list-view", inputs: { vm: ["viewModel", "vm"] }, providers: [AXUnsubscriber], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\r\n <div class=\"ax-flex ax-flex-1 ax-overflow-auto ax-h-48\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1 \" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\r\n (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n </ax-data-table>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXBadgeModule }, { 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: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i4.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i4.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i4.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
76
+ //
77
+ AXPLayoutBuilderModule }, { kind: "component", type: i5.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'axp-entity-detail-list-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], imports: [
82
+ CommonModule,
83
+ FormsModule,
84
+ RouterModule,
85
+ AXButtonModule,
86
+ AXDecoratorModule,
87
+ AXBadgeModule,
88
+ AXDropdownModule,
89
+ AXPopoverModule,
90
+ AXFormModule,
91
+ AXActionSheetModule,
92
+ AXDrawerModule,
93
+ AXDialogModule,
94
+ AXLoadingModule,
95
+ AXTabsModule,
96
+ AXTooltipModule,
97
+ AXBreadcrumbsModule,
98
+ AXSearchBoxModule,
99
+ AXDataTableModule,
100
+ //
101
+ AXPLayoutBuilderModule,
102
+ AXPWidgetsModule,
103
+ AXPStickyDirective,
104
+ AXPGridLayoutDirective,
105
+ AXPAuthModule,
106
+ ], standalone: true, template: "<div class=\"ax-flex ax-p-2\">\r\n <div class=\"ax-flex ax-flex-1 ax-overflow-auto ax-h-48\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1 \" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\r\n (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n </ax-data-table>\r\n </div>\r\n</div>" }]
107
+ }], ctorParameters: () => [{ type: i1.AXActionSheetService }, { type: i2.AXUnsubscriber }, { type: i3.AXPlatform }], propDecorators: { vm: [{
108
+ type: Input,
109
+ args: ['viewModel']
110
+ }], grid: [{
111
+ type: ViewChild,
112
+ args: ['grid']
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbC1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LWRldGFpbC1saXN0LXZpZXcvZW50aXR5LWRldGFpbC1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LWRldGFpbC1saXN0LXZpZXcvZW50aXR5LWRldGFpbC1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUF1RSxNQUFNLCtCQUErQixDQUFDO0FBQzdKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSww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TW9kdWxlLCBBWEFjdGlvblNoZWV0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hY3Rpb24tc2hlZXQnO1xyXG5pbXBvcnQgeyBBWERhdGFUYWJsZUNvbXBvbmVudCwgQVhEYXRhVGFibGVNb2R1bGUsIEFYRGF0YVRhYmxlUm93RGJDbGljaywgQVhSb3dDb21tYW5kSXRlbSwgQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZSc7XHJcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XHJcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcclxuaW1wb3J0IHsgQVhQR3JpZExheW91dERpcmVjdGl2ZSwgQVhQTGF5b3V0U2VydmljZSwgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xyXG5pbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcclxuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XHJcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xyXG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XHJcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcclxuaW1wb3J0IHsgQVhUYWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xyXG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XHJcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcclxuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVhQQXV0aE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XHJcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXhwLWVudGl0eS1kZXRhaWwtbGlzdC12aWV3JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnZW50aXR5LWRldGFpbC1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbQVhVbnN1YnNjcmliZXJdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGUsXHJcbiAgICAgICAgQVhCYWRnZU1vZHVsZSxcclxuICAgICAgICBBWERyb3Bkb3duTW9kdWxlLFxyXG4gICAgICAgIEFYUG9wb3Zlck1vZHVsZSxcclxuICAgICAgICBBWEZvcm1Nb2R1bGUsXHJcbiAgICAgICAgQVhBY3Rpb25TaGVldE1vZHVsZSxcclxuICAgICAgICBBWERyYXdlck1vZHVsZSxcclxuICAgICAgICBBWERpYWxvZ01vZHVsZSxcclxuICAgICAgICBBWExvYWRpbmdNb2R1bGUsXHJcbiAgICAgICAgQVhUYWJzTW9kdWxlLFxyXG4gICAgICAgIEFYVG9vbHRpcE1vZHVsZSxcclxuICAgICAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxyXG4gICAgICAgIEFYU2VhcmNoQm94TW9kdWxlLFxyXG4gICAgICAgIEFYRGF0YVRhYmxlTW9kdWxlLFxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcclxuICAgICAgICBBWFBXaWRnZXRzTW9kdWxlLFxyXG4gICAgICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcclxuICAgICAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgICAgIEFYUEF1dGhNb2R1bGUsXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbExpc3RWaWV3Q29tcG9uZW50IHtcclxuXHJcbiAgICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRTZXJ2aWNlKTtcclxuXHJcbiAgICBASW5wdXQoJ3ZpZXdNb2RlbCcpXHJcbiAgICB2bTogQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZm9jdXNlZFJvdzogYW55O1xyXG4gICAgLy9cclxuICAgIEBWaWV3Q2hpbGQoJ2dyaWQnKSBncmlkITogQVhEYXRhVGFibGVDb21wb25lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25TaGVldFNlcnZpY2U6IEFYQWN0aW9uU2hlZXRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdW5zdWJzY3JpYmVyOiBBWFVuc3Vic2NyaWJlcixcclxuICAgICAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IEFYUGxhdGZvcm0sXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xyXG4gICAgICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMudm0uYXBwbHlJbmxpbmVGaWx0ZXIoZS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZHJvcGRvd25Sb3dJdGVtczogQVhSb3dDb21tYW5kSXRlbVtdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ0RldGFpbHMnLFxyXG4gICAgICAgICAgICBpY29uOiAnZmEtc29saWQgZmEtZXllJyxcclxuICAgICAgICAgICAgbmFtZTogJ29wZW4tZW50aXR5JyxcclxuICAgICAgICAgICAgZGl2aWRlZDogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ0RlbGV0ZScsXHJcbiAgICAgICAgICAgIGljb246ICdmYS1zb2xpZCBmYS10cmFzaC1jYW4nLFxyXG4gICAgICAgICAgICBuYW1lOiAnZGVsZXRlLWVudGl0eScsXHJcbiAgICAgICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XHJcbiAgICAgICAgY29uc3QgZDogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgPSB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZS5jb21wb25lbnQsXHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuZHJvcGRvd25Sb3dJdGVtc1swXS5uYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmhhbmRsZVJvd0NvbW1hbmRDbGljayhkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RHJvcGRvd25Sb3dJdGVtcyA9IChyb3dEYXRhOiB1bmtub3duKTogUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+ID0+IHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZHJvcGRvd25Sb3dJdGVtcyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyBoYW5kbGVSb3dDb21tYW5kQ2xpY2soZTogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnZtLmV4ZWN1dGVDb21tYW5kKGUubmFtZSwgZS5kYXRhKTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtcC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtb3ZlcmZsb3ctYXV0byBheC1oLTQ4XCI+XHJcbiAgICAgICAgPGF4LWRhdGEtdGFibGUgI2dyaWQgW3Nob3dGb290ZXJdPVwiZmFsc2VcIiBjbGFzcz1cImF4LWZsZXgtMSBcIiBbcGFnaW5nXT1cInRydWVcIiBbZmV0Y2hEYXRhTW9kZV09XCInbWFudWFsJ1wiXHJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cInsgZW5hYmxlZDogdHJ1ZSwgYW5pbWF0aW9uOiB0cnVlIH1cIiBbZGF0YVNvdXJjZV09XCJ2bS5kYXRhU291cmNlXCJcclxuICAgICAgICAgICAgKG9uUm93RGJDbGljayk9XCJoYW5kbGVSb3dEYkNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGF4LXNlbGVjdC1jb2x1bW4gZml4ZWQ9XCJzdGFydFwiIFt3aWR0aF09XCInNTBweCdcIj48L2F4LXNlbGVjdC1jb2x1bW4+XHJcbiAgICAgICAgICAgIEBmb3IoY29sIG9mIHZtLmNvbHVtbnMoKTt0cmFjayBjb2wubmFtZSkge1xyXG4gICAgICAgICAgICBAaWYoY29sLnZpc2libGUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgPGF4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyIFtjYXB0aW9uXT1cImNvbC50aXRsZVwiIFtub2RlXT1cImNvbC5ub2RlKClcIj48L2F4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGF4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uIGZpeGVkPVwiZW5kXCIgW3dpZHRoXT1cIic2MHB4J1wiIFtpdGVtc109XCJnZXREcm9wZG93blJvd0l0ZW1zXCJcclxuICAgICAgICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVSb3dDb21tYW5kQ2xpY2soJGV2ZW50KVwiPjwvYXgtZHJvcGRvd24tY29tbWFuZC1jb2x1bW4+XHJcbiAgICAgICAgPC9heC1kYXRhLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,93 @@
1
+ import { AXButtonModule } from '@acorex/components/button';
2
+ import { AXDecoratorModule } from '@acorex/components/decorators';
3
+ import { AXDialogModule } from '@acorex/components/dialog';
4
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
5
+ import { AXFormModule } from '@acorex/components/form';
6
+ import { AXLabelModule } from '@acorex/components/label';
7
+ import { AXLoadingModule } from '@acorex/components/loading';
8
+ import { AXBasePageComponent } from '@acorex/components/page';
9
+ import { AXTabsModule } from '@acorex/components/tabs';
10
+ import { AXTooltipModule } from '@acorex/components/tooltip';
11
+ import { CommonModule } from '@angular/common';
12
+ import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
13
+ import { FormsModule } from '@angular/forms';
14
+ import { AXValidationModule } from '@acorex/core/validation';
15
+ import { AXDropdownModule } from '@acorex/components/dropdown';
16
+ import { AXPGridLayoutDirective, AXPStickyDirective } from '@acorex/platform/common';
17
+ import { AXPWorkflowService } from '@acorex/platform/workflow';
18
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
19
+ import { AXPWidgetsModule } from '@acorex/platform/widgets';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "@angular/common";
22
+ import * as i2 from "@acorex/components/form";
23
+ import * as i3 from "@acorex/components/decorators";
24
+ import * as i4 from "@acorex/components/button";
25
+ import * as i5 from "@acorex/components/loading";
26
+ import * as i6 from "@acorex/components/label";
27
+ import * as i7 from "@acorex/components/dropdown-button";
28
+ import * as i8 from "@acorex/platform/layout/builder";
29
+ export class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.workflow = inject(AXPWorkflowService);
33
+ }
34
+ handleCloseClick() {
35
+ this.close();
36
+ }
37
+ async handleBackClick() {
38
+ //await this.vm.executeCommand('back');
39
+ }
40
+ async handleNextClick(form) {
41
+ // const formResult = await form.validate();
42
+ // if (formResult.result) {
43
+ // await this.vm.executeCommand('next');
44
+ // }
45
+ }
46
+ async handleSaveClick(form) {
47
+ const formResult = await form.validate();
48
+ if (formResult.result) {
49
+ const record = await this.vm.save();
50
+ this.close({ save: true, recordId: record.id, redirect: true });
51
+ }
52
+ }
53
+ async handleSaveAndNewClick(form) {
54
+ const formResult = await form.validate();
55
+ if (formResult.result) {
56
+ const record = await this.vm.save();
57
+ this.close({ save: true, recordId: record.id, redirect: false });
58
+ await this.vm.createNewOne();
59
+ }
60
+ }
61
+ async handleContextChange(data) {
62
+ this.vm.context.set(data);
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div>\r\n <axp-widgets-container [context]=\"vm.context()\" (contextChange)=\"handleContextChange($event)\">\r\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-col-span-12\">\r\n <ax-form #form>\r\n <div class=\"ax-pb-4\">\r\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() }}</span>\r\n @if(section.description()) {\r\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.elements(); track $index) {\r\n <ax-form-field class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"attr.isRequired()\">{{ attr.title()\r\n }}</ax-label>\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </ax-form-field>\r\n }\r\n </div>\r\n\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n </ax-form>\r\n </axp-widgets-container>\r\n <ax-footer>\r\n <ax-suffix>\r\n <ax-button look=\"solid\" color=\"ghost\" text=\"Cancel\" (onClick)=\"handleCloseClick()\"> </ax-button>\r\n <ax-dropdown-button [disabled]=\"vm.isInProgress()\" color=\"primary\" text=\"Save\" look=\"solid\"\r\n (onClick)=\"handleSaveClick(form)\">\r\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Save & Create New\" (onClick)=\"handleSaveAndNewClick(form)\"> </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n </ax-suffix>\r\n </ax-footer>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { 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: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i6.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type:
66
+ //
67
+ AXPLayoutBuilderModule }, { kind: "component", type: i8.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["contextChange"] }, { kind: "component", type: i8.AXPWidgetRendererComponent, selector: "axp-widget-renderer", inputs: ["node"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ imports: [
72
+ CommonModule,
73
+ FormsModule,
74
+ AXFormModule,
75
+ AXDecoratorModule,
76
+ CommonModule,
77
+ AXButtonModule,
78
+ AXDialogModule,
79
+ AXLoadingModule,
80
+ AXTabsModule,
81
+ AXTooltipModule,
82
+ AXValidationModule,
83
+ AXLabelModule,
84
+ AXDropdownModule,
85
+ AXDropdownButtonModule,
86
+ //
87
+ AXPLayoutBuilderModule,
88
+ AXPWidgetsModule,
89
+ AXPStickyDirective,
90
+ AXPGridLayoutDirective
91
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\r\n <axp-widgets-container [context]=\"vm.context()\" (contextChange)=\"handleContextChange($event)\">\r\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-col-span-12\">\r\n <ax-form #form>\r\n <div class=\"ax-pb-4\">\r\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() }}</span>\r\n @if(section.description()) {\r\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.elements(); track $index) {\r\n <ax-form-field class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"attr.isRequired()\">{{ attr.title()\r\n }}</ax-label>\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </ax-form-field>\r\n }\r\n </div>\r\n\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n </ax-form>\r\n </axp-widgets-container>\r\n <ax-footer>\r\n <ax-suffix>\r\n <ax-button look=\"solid\" color=\"ghost\" text=\"Cancel\" (onClick)=\"handleCloseClick()\"> </ax-button>\r\n <ax-dropdown-button [disabled]=\"vm.isInProgress()\" color=\"primary\" text=\"Save\" look=\"solid\"\r\n (onClick)=\"handleSaveClick(form)\">\r\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\r\n <ax-button-item-list>\r\n <ax-button-item text=\"Save & Create New\" (onClick)=\"handleSaveAndNewClick(form)\"> </ax-button-item>\r\n </ax-button-item-list>\r\n </ax-dropdown-button>\r\n </ax-suffix>\r\n </ax-footer>\r\n</div>" }]
92
+ }] });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3L2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFp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LFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7cUJBQ3ZCLGNBQ1csSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcclxuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XHJcbmltcG9ydCB7IEFYTGFiZWxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWwnO1xyXG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XHJcbmltcG9ydCB7IEFYQmFzZVBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGFnZSc7XHJcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcclxuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XHJcblxyXG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgQVhQR3JpZExheW91dERpcmVjdGl2ZSwgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcclxuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xyXG5pbXBvcnQgeyBBWFBXaWRnZXRzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcclxuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEFYRm9ybU1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQVhCdXR0b25Nb2R1bGUsXHJcbiAgICBBWERpYWxvZ01vZHVsZSxcclxuICAgIEFYTG9hZGluZ01vZHVsZSxcclxuICAgIEFYVGFic01vZHVsZSxcclxuICAgIEFYVG9vbHRpcE1vZHVsZSxcclxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcclxuICAgIEFYTGFiZWxNb2R1bGUsXHJcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxyXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcclxuICAgIC8vXHJcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxyXG4gICAgQVhQV2lkZ2V0c01vZHVsZSxcclxuICAgIEFYUFN0aWNreURpcmVjdGl2ZSxcclxuICAgIEFYUEdyaWRMYXlvdXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XHJcbiAgcHJvdGVjdGVkIHZtITogQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsO1xyXG5cclxuICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUNsb3NlQ2xpY2soKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQmFja0NsaWNrKCkge1xyXG4gICAgLy9hd2FpdCB0aGlzLnZtLmV4ZWN1dGVDb21tYW5kKCdiYWNrJyk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlTmV4dENsaWNrKGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xyXG4gICAgLy8gY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcclxuICAgIC8vIGlmIChmb3JtUmVzdWx0LnJlc3VsdCkge1xyXG4gICAgLy8gICBhd2FpdCB0aGlzLnZtLmV4ZWN1dGVDb21tYW5kKCduZXh0Jyk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZUNsaWNrKGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xyXG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcclxuICAgIGlmIChmb3JtUmVzdWx0LnJlc3VsdCkge1xyXG4gICAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLnZtLnNhdmUoKTtcclxuICAgICAgdGhpcy5jbG9zZSh7IHNhdmU6IHRydWUsIHJlY29yZElkOiByZWNvcmQuaWQsIHJlZGlyZWN0OiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVBbmROZXdDbGljayhmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcclxuICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XHJcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcclxuICAgICAgY29uc3QgcmVjb3JkID0gYXdhaXQgdGhpcy52bS5zYXZlKCk7XHJcbiAgICAgIHRoaXMuY2xvc2UoeyBzYXZlOiB0cnVlLCByZWNvcmRJZDogcmVjb3JkLmlkLCByZWRpcmVjdDogZmFsc2UgfSk7XHJcbiAgICAgIGF3YWl0IHRoaXMudm0uY3JlYXRlTmV3T25lKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ29udGV4dENoYW5nZShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMudm0uY29udGV4dC5zZXQoZGF0YSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIiAoY29udGV4dENoYW5nZSk9XCJoYW5kbGVDb250ZXh0Q2hhbmdlKCRldmVudClcIj5cclxuICAgIDxheC1mb3JtIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNiBheC1wLTQgYXgtcGItOFwiICNmb3JtIFttZXNzYWdlU3R5bGVdPVwiJ2JvdHRvbSdcIiBbdXBkYXRlT25dPVwiJ2JsdXInXCI+XHJcbiAgICAgIDwhLS0gQmVnaW4gU2VjdGlvbnMgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkICBheC1ncmlkLWNvbHMtMTIgIGF4LWdhcC00XCI+XHJcbiAgICAgICAgQGZvcihzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZSgpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyXCI+XHJcbiAgICAgICAgICA8YXgtZm9ybSAjZm9ybT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXBiLTRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC10ZXh0LXhsXCI+e3sgc2VjdGlvbi50aXRsZSgpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIEBpZihzZWN0aW9uLmRlc2NyaXB0aW9uKCkpIHtcclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1ncmF5LTUwMFwiPnt7IHNlY3Rpb24uZGVzY3JpcHRpb24oKSB9fTwvcD5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZC1ib2R5ICFheC1ncmlkICAhYXgtZ3JpZC1jb2xzLTEyICAhYXgtZ2FwLTRcIj5cclxuICAgICAgICAgICAgICBAZm9yKGF0dHIgb2Ygc2VjdGlvbi5lbGVtZW50cygpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIiBbZ3JpZExheW91dF09XCJhdHRyLmxheW91dCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtbGFiZWwgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtc21cIiBbcmVxdWlyZWRdPVwiYXR0ci5pc1JlcXVpcmVkKClcIj57eyBhdHRyLnRpdGxlKClcclxuICAgICAgICAgICAgICAgICAgfX08L2F4LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGF4cC13aWRnZXQtcmVuZGVyZXIgW25vZGVdPVwiYXR0ci5ub2RlKClcIj4gPC9heHAtd2lkZ2V0LXJlbmRlcmVyPlxyXG4gICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvYXgtZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8IS0tIEZpbmlzaCBTZWN0aW9ucyAgLS0+XHJcbiAgICA8L2F4LWZvcm0+XHJcbiAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XHJcbiAgPGF4LWZvb3Rlcj5cclxuICAgIDxheC1zdWZmaXg+XHJcbiAgICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgY29sb3I9XCJnaG9zdFwiIHRleHQ9XCJDYW5jZWxcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZUNsaWNrKClcIj4gPC9heC1idXR0b24+XHJcbiAgICAgIDxheC1kcm9wZG93bi1idXR0b24gW2Rpc2FibGVkXT1cInZtLmlzSW5Qcm9ncmVzcygpXCIgY29sb3I9XCJwcmltYXJ5XCIgdGV4dD1cIlNhdmVcIiBsb29rPVwic29saWRcIlxyXG4gICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNhdmVDbGljayhmb3JtKVwiPlxyXG4gICAgICAgIDxheC1sb2FkaW5nICpuZ0lmPVwidm0uaXNJblByb2dyZXNzKClcIj48L2F4LWxvYWRpbmc+XHJcbiAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XHJcbiAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gdGV4dD1cIlNhdmUgJiBDcmVhdGUgTmV3XCIgKG9uQ2xpY2spPVwiaGFuZGxlU2F2ZUFuZE5ld0NsaWNrKGZvcm0pXCI+IDwvYXgtYnV0dG9uLWl0ZW0+XHJcbiAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxyXG4gICAgICA8L2F4LWRyb3Bkb3duLWJ1dHRvbj5cclxuICAgIDwvYXgtc3VmZml4PlxyXG4gIDwvYXgtZm9vdGVyPlxyXG48L2Rpdj4iXX0=