@veloceapps/sdk 6.0.0-36 → 6.0.0-38

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 (30) hide show
  1. package/bundles/veloceapps-sdk-cms.umd.js +103 -19
  2. package/bundles/veloceapps-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloceapps-sdk-core.umd.js +12 -0
  4. package/bundles/veloceapps-sdk-core.umd.js.map +1 -1
  5. package/cms/index.d.ts +1 -0
  6. package/cms/modules/migrations/index.d.ts +2 -0
  7. package/cms/modules/migrations/migrations.d.ts +2 -0
  8. package/cms/modules/migrations/migrations.module.d.ts +6 -0
  9. package/cms/modules/migrations/services/migrations.service.d.ts +10 -0
  10. package/cms/modules/migrations/types/migrations.types.d.ts +2 -0
  11. package/cms/utils/elements-resolver.d.ts +1 -1
  12. package/core/types/ui-definition.types.d.ts +19 -4
  13. package/core/utils/index.d.ts +1 -0
  14. package/core/utils/ui-definition.utils.d.ts +2 -0
  15. package/esm2015/cms/index.js +2 -1
  16. package/esm2015/cms/modules/migrations/index.js +3 -0
  17. package/esm2015/cms/modules/migrations/migrations.js +11 -0
  18. package/esm2015/cms/modules/migrations/migrations.module.js +15 -0
  19. package/esm2015/cms/modules/migrations/services/migrations.service.js +43 -0
  20. package/esm2015/cms/modules/migrations/types/migrations.types.js +2 -0
  21. package/esm2015/cms/modules/runtime/services/compilation.service.js +9 -6
  22. package/esm2015/cms/utils/elements-resolver.js +6 -3
  23. package/esm2015/core/types/ui-definition.types.js +2 -2
  24. package/esm2015/core/utils/index.js +2 -1
  25. package/esm2015/core/utils/ui-definition.utils.js +9 -0
  26. package/fesm2015/veloceapps-sdk-cms.js +79 -13
  27. package/fesm2015/veloceapps-sdk-cms.js.map +1 -1
  28. package/fesm2015/veloceapps-sdk-core.js +12 -2
  29. package/fesm2015/veloceapps-sdk-core.js.map +1 -1
  30. package/package.json +1 -1
package/cms/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './decorators';
5
5
  export * from './injection-tokens';
6
6
  export * from './launcher.module';
7
7
  export * from './modules/federated/export';
8
+ export * from './modules/migrations';
8
9
  export * from './modules/runtime';
9
10
  export * from './services';
10
11
  export * from './types';
@@ -0,0 +1,2 @@
1
+ export * from './migrations.module';
2
+ export * from './services/migrations.service';
@@ -0,0 +1,2 @@
1
+ import { UIDefinitionMigrationFn } from './types/migrations.types';
2
+ export declare const migrations: Record<number, UIDefinitionMigrationFn>;
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class MigrationsModule {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<MigrationsModule, never>;
4
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MigrationsModule, never, never, never>;
5
+ static ɵinj: i0.ɵɵInjectorDeclaration<MigrationsModule>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { ToastService } from '@veloceapps/components';
2
+ import { UIDefinition } from '@veloceapps/sdk/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class MigrationsService {
5
+ private toastService;
6
+ constructor(toastService: ToastService);
7
+ migrateUIDefinition(uiDef: UIDefinition): UIDefinition | undefined;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<MigrationsService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<MigrationsService>;
10
+ }
@@ -0,0 +1,2 @@
1
+ import { UIDefinition } from '@veloceapps/sdk/core';
2
+ export declare type UIDefinitionMigrationFn = (uiDef: UIDefinition) => UIDefinition;
@@ -6,7 +6,7 @@ export declare class ElementsResolver {
6
6
  elements: ElementMetadata[];
7
7
  private renderableElements;
8
8
  private sharedElements;
9
- constructor(uiDef: UIDefinitionMetadata, elements: ElementMetadata[]);
9
+ constructor(uiDef: UIDefinitionMetadata, elements: ElementMetadata[], sharedElements?: ElementMetadata[]);
10
10
  addElement(element: ElementMetadata): void;
11
11
  getNgComponents(): Type<any>[];
12
12
  private transpile;
@@ -1,5 +1,5 @@
1
1
  export declare type UIDefinitionType = 'DEFAULT' | 'CONFIGURATION';
2
- export declare type UIDefinitionMetadata = Omit<UIDefinition, 'children'>;
2
+ export declare const UI_DEFINITION_VERSION = 3;
3
3
  export declare type UIExternalsType = Record<string, string | number | boolean>;
4
4
  export interface UIDefinitionProps {
5
5
  suppressToastMessages?: boolean;
@@ -8,15 +8,30 @@ export interface UIDefinitionProps {
8
8
  priceList?: string;
9
9
  productId?: string;
10
10
  }
11
- export interface UIDefinition {
11
+ export interface UIDefinitionMetadata {
12
12
  name: string;
13
13
  type: UIDefinitionType;
14
- children: UIElement[];
15
14
  properties?: UIDefinitionProps;
16
15
  primary: boolean;
17
- version: number;
18
16
  createdTimestamp: number;
19
17
  externals?: UIExternalsType;
18
+ version: number;
19
+ }
20
+ export interface UIDefinition extends UIDefinitionMetadata {
21
+ /**
22
+ * `children` is for simple previews only.
23
+ * For applications use `pages` property instead
24
+ */
25
+ children?: UIElement[];
26
+ /**
27
+ * The page is an Element with `type: 'PAGE'`
28
+ */
29
+ pages?: UIElement[];
30
+ /**
31
+ * Shared components
32
+ * These are not rendered on the screen, and only used by REFERENCE type elements
33
+ */
34
+ components?: UIElement[];
20
35
  }
21
36
  export interface UIElement {
22
37
  children: UIElement[];
@@ -1,2 +1,3 @@
1
1
  export * from './line-item.utils';
2
2
  export * from './line-item.worker';
3
+ export * from './ui-definition.utils';
@@ -0,0 +1,2 @@
1
+ import { UIDefinition, UIDefinitionMetadata } from '../types';
2
+ export declare function extractMetadata(uiDefinition: UIDefinition): UIDefinitionMetadata;
@@ -5,8 +5,9 @@ export * from './decorators';
5
5
  export * from './injection-tokens';
6
6
  export * from './launcher.module';
7
7
  export * from './modules/federated/export';
8
+ export * from './modules/migrations';
8
9
  export * from './modules/runtime';
9
10
  export * from './services';
10
11
  export * from './types';
11
12
  export * from './utils';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbXMuYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ByZXZpZXcnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vaW5qZWN0aW9uLXRva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xhdW5jaGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZmVkZXJhdGVkL2V4cG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvcnVudGltZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBWZW5kb3JNYXAgfSBmcm9tICcuL3ZlbmRvci1tYXAnO1xuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ntcy5hY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcHJldmlldyc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3Rpb24tdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGF1bmNoZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9mZWRlcmF0ZWQvZXhwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9taWdyYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9ydW50aW1lJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IFZlbmRvck1hcCB9IGZyb20gJy4vdmVuZG9yLW1hcCc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './migrations.module';
2
+ export * from './services/migrations.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWlncmF0aW9ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9taWdyYXRpb25zLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,11 @@
1
+ export const migrations = {
2
+ 2: () => {
3
+ throw 'Migration from Legacy UI definition is not possible';
4
+ },
5
+ 3: uiDef => {
6
+ var _a;
7
+ const children = (_a = uiDef.children) !== null && _a !== void 0 ? _a : [];
8
+ return Object.assign(Object.assign({}, uiDef), { children: undefined, pages: children, version: 3 });
9
+ },
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL21pZ3JhdGlvbnMvbWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQTRDO0lBQ2pFLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDTixNQUFNLHFEQUFxRCxDQUFDO0lBQzlELENBQUM7SUFDRCxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7O1FBQ1QsTUFBTSxRQUFRLEdBQUcsTUFBQSxLQUFLLENBQUMsUUFBUSxtQ0FBSSxFQUFFLENBQUM7UUFFdEMsdUNBQ0ssS0FBSyxLQUNSLFFBQVEsRUFBRSxTQUFTLEVBQ25CLEtBQUssRUFBRSxRQUFRLEVBQ2YsT0FBTyxFQUFFLENBQUMsSUFDVjtJQUNKLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlEZWZpbml0aW9uTWlncmF0aW9uRm4gfSBmcm9tICcuL3R5cGVzL21pZ3JhdGlvbnMudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgbWlncmF0aW9uczogUmVjb3JkPG51bWJlciwgVUlEZWZpbml0aW9uTWlncmF0aW9uRm4+ID0ge1xuICAyOiAoKSA9PiB7XG4gICAgdGhyb3cgJ01pZ3JhdGlvbiBmcm9tIExlZ2FjeSBVSSBkZWZpbml0aW9uIGlzIG5vdCBwb3NzaWJsZSc7XG4gIH0sXG4gIDM6IHVpRGVmID0+IHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHVpRGVmLmNoaWxkcmVuID8/IFtdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnVpRGVmLFxuICAgICAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgICAgIHBhZ2VzOiBjaGlsZHJlbixcbiAgICAgIHZlcnNpb246IDMsXG4gICAgfTtcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MigrationsService } from './services/migrations.service';
3
+ import * as i0 from "@angular/core";
4
+ export class MigrationsModule {
5
+ }
6
+ MigrationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ MigrationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule });
8
+ MigrationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule, providers: [MigrationsService] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ providers: [MigrationsService],
13
+ }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9taWdyYXRpb25zL21pZ3JhdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS2xFLE1BQU0sT0FBTyxnQkFBZ0I7OzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGFBRmhCLENBQUMsaUJBQWlCLENBQUM7NEZBRW5CLGdCQUFnQjtrQkFINUIsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWlncmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21pZ3JhdGlvbnMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW01pZ3JhdGlvbnNTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uc01vZHVsZSB7fVxuIl19
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ToastType } from '@veloceapps/components';
3
+ import { UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';
4
+ import { cloneDeep } from 'lodash';
5
+ import { migrations } from '../migrations';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@veloceapps/components";
8
+ export class MigrationsService {
9
+ constructor(toastService) {
10
+ this.toastService = toastService;
11
+ }
12
+ migrateUIDefinition(uiDef) {
13
+ const currentVersion = uiDef.version;
14
+ const targetVersion = UI_DEFINITION_VERSION;
15
+ const migrateVersions = Object.keys(migrations)
16
+ .reduce((acc, version) => {
17
+ const v = Number(version);
18
+ if (v > currentVersion && v <= targetVersion) {
19
+ acc.push(v);
20
+ }
21
+ return acc;
22
+ }, [])
23
+ .sort();
24
+ try {
25
+ let result = cloneDeep(uiDef);
26
+ for (const version of migrateVersions) {
27
+ result = migrations[version](result);
28
+ }
29
+ return result;
30
+ }
31
+ catch (e) {
32
+ this.toastService.add({ summary: String(e), severity: ToastType.error });
33
+ return;
34
+ }
35
+ }
36
+ }
37
+ MigrationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsService, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ MigrationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsService, decorators: [{
40
+ type: Injectable,
41
+ args: [{ providedIn: 'root' }]
42
+ }], ctorParameters: function () { return [{ type: i1.ToastService }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvbWlncmF0aW9ucy9zZXJ2aWNlcy9taWdyYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUcsQ0FBQztJQUUzQyxtQkFBbUIsQ0FBQyxLQUFtQjtRQUM1QyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDO1FBRTVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQzVDLE1BQU0sQ0FBQyxDQUFDLEdBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsY0FBYyxJQUFJLENBQUMsSUFBSSxhQUFhLEVBQUU7Z0JBQzVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYjtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUNMLElBQUksRUFBRSxDQUFDO1FBRVYsSUFBSTtZQUNGLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU5QixLQUFLLE1BQU0sT0FBTyxJQUFJLGVBQWUsRUFBRTtnQkFDckMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QztZQUVELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDekUsT0FBTztTQUNSO0lBQ0gsQ0FBQzs7K0dBOUJVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBREosTUFBTTs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSwgVG9hc3RUeXBlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBVSURlZmluaXRpb24sIFVJX0RFRklOSVRJT05fVkVSU0lPTiB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBtaWdyYXRpb25zIH0gZnJvbSAnLi4vbWlncmF0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBtaWdyYXRlVUlEZWZpbml0aW9uKHVpRGVmOiBVSURlZmluaXRpb24pOiBVSURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gdWlEZWYudmVyc2lvbjtcbiAgICBjb25zdCB0YXJnZXRWZXJzaW9uID0gVUlfREVGSU5JVElPTl9WRVJTSU9OO1xuXG4gICAgY29uc3QgbWlncmF0ZVZlcnNpb25zID0gT2JqZWN0LmtleXMobWlncmF0aW9ucylcbiAgICAgIC5yZWR1Y2UoKGFjYzogbnVtYmVyW10sIHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgdiA9IE51bWJlcih2ZXJzaW9uKTtcbiAgICAgICAgaWYgKHYgPiBjdXJyZW50VmVyc2lvbiAmJiB2IDw9IHRhcmdldFZlcnNpb24pIHtcbiAgICAgICAgICBhY2MucHVzaCh2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSlcbiAgICAgIC5zb3J0KCk7XG5cbiAgICB0cnkge1xuICAgICAgbGV0IHJlc3VsdCA9IGNsb25lRGVlcCh1aURlZik7XG5cbiAgICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBtaWdyYXRlVmVyc2lvbnMpIHtcbiAgICAgICAgcmVzdWx0ID0gbWlncmF0aW9uc1t2ZXJzaW9uXShyZXN1bHQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmFkZCh7IHN1bW1hcnk6IFN0cmluZyhlKSwgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL21pZ3JhdGlvbnMvdHlwZXMvbWlncmF0aW9ucy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBVSURlZmluaXRpb25NaWdyYXRpb25GbiA9ICh1aURlZjogVUlEZWZpbml0aW9uKSA9PiBVSURlZmluaXRpb247XG4iXX0=
@@ -1,10 +1,9 @@
1
- import { __decorate } from "tslib";
1
+ import { __decorate, __rest } from "tslib";
2
2
  import { DragDropModule } from '@angular/cdk/drag-drop';
3
3
  import { ScrollingModule } from '@angular/cdk/scrolling';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { Injectable, NgModule } from '@angular/core';
6
6
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import { omit } from 'lodash';
8
7
  import { DndModule } from 'ngx-drag-drop';
9
8
  import { combineLatest, from, map, of, switchMap } from 'rxjs';
10
9
  import { ElementChildrenComponent } from '../../../components/element-children/element-children.component';
@@ -19,10 +18,14 @@ export class CompilationService {
19
18
  this.compiler = compiler;
20
19
  }
21
20
  compileUIDefinition$(uiDefinition) {
22
- this.uiDefinitionMeta = omit(uiDefinition, 'children');
23
21
  return of([]).pipe(switchMap(() => {
24
- const metadata = uiDefinition.children.map(element => elementToMetadata(element));
25
- this.elementsResolver = new ElementsResolver(uiDefinition, metadata);
22
+ const { children, pages, components } = uiDefinition, uiDefinitionMeta = __rest(uiDefinition, ["children", "pages", "components"]);
23
+ this.uiDefinitionMeta = uiDefinitionMeta;
24
+ const elements = [...(children !== null && children !== void 0 ? children : []), ...(pages !== null && pages !== void 0 ? pages : [])];
25
+ const sharedElements = components !== null && components !== void 0 ? components : [];
26
+ const metadata = elements.map(element => elementToMetadata(element));
27
+ const sharedMetadata = sharedElements.map(element => elementToMetadata(element));
28
+ this.elementsResolver = new ElementsResolver(uiDefinition, metadata, sharedMetadata);
26
29
  const module = this.getModule(this.elementsResolver.getNgComponents());
27
30
  return combineLatest([
28
31
  from(this.compiler.compileModuleAndAllComponentsAsync(module)),
@@ -78,4 +81,4 @@ CompilationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", v
78
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CompilationService, decorators: [{
79
82
  type: Injectable
80
83
  }], ctorParameters: function () { return [{ type: i0.Compiler }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvY29tcGlsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFZLFVBQVUsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBR25FLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFFbkMsb0JBQW9CLENBQUMsWUFBMEI7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFdkQsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBRXZFLE9BQU8sYUFBYSxDQUFDO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDOUQsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzthQUMxQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQ3ZGLENBQUM7SUFDSixDQUFDO0lBRU0sZUFBZSxDQUFDLE9BQXdCO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSwwQkFBMEIsQ0FBQztTQUNsQztRQUVELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDbkMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFOztZQUN2QixNQUFNLGdCQUFnQixHQUFHLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixtQ0FBSSxJQUFJLGdCQUFnQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RixnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBRWxFLE9BQU8sYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0NBQWtDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQXlCO1FBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxVQUF1QjtRQUN2QyxNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsMEJBQTBCO1lBQzFCLHVCQUF1QjtTQUN4QixDQUFDO1FBZUYsSUFBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtTQUFHLENBQUE7UUFBaEIsYUFBYTtZQWJsQixRQUFRLENBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGVBQWU7b0JBQ2YsY0FBYztvQkFDZCxTQUFTO29CQUNULGVBQWU7aUJBQ2hCO2dCQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxVQUFVLENBQUM7Z0JBQ2xELEdBQUcsRUFBRSxJQUFJO2FBQ1YsQ0FBQztXQUNJLGFBQWEsQ0FBRztRQUV0QixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOztnSEF0RVUsa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21waWxlciwgSW5qZWN0YWJsZSwgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVUlEZWZpbml0aW9uLCBVSURlZmluaXRpb25NZXRhZGF0YSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IG9taXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRG5kTW9kdWxlIH0gZnJvbSAnbmd4LWRyYWctZHJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRDaGlsZHJlbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZWxlbWVudC1jaGlsZHJlbi9lbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50RHJvcEhhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZWxlbWVudC1kcm9wLWhhbmRsZS9lbGVtZW50LWRyb3AtaGFuZGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2VsZW1lbnQtcmVuZGVyZXIvZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2N1c3RvbS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tcGlsYXRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL3J1bnRpbWUvdHlwZXMvY29tcGlsYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29tbW9uLnR5cGVzJztcbmltcG9ydCB7IEVsZW1lbnRzUmVzb2x2ZXIsIGVsZW1lbnRUb01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmVkZXJhdGVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vZmVkZXJhdGVkL2ZlZGVyYXRlZC5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tcGlsYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1aURlZmluaXRpb25NZXRhPzogVUlEZWZpbml0aW9uTWV0YWRhdGE7XG4gIHByaXZhdGUgZWxlbWVudHNSZXNvbHZlcj86IEVsZW1lbnRzUmVzb2x2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIpIHt9XG5cbiAgcHVibGljIGNvbXBpbGVVSURlZmluaXRpb24kKHVpRGVmaW5pdGlvbjogVUlEZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxDb21waWxhdGlvblJlc3VsdD4ge1xuICAgIHRoaXMudWlEZWZpbml0aW9uTWV0YSA9IG9taXQodWlEZWZpbml0aW9uLCAnY2hpbGRyZW4nKTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0gdWlEZWZpbml0aW9uLmNoaWxkcmVuLm1hcChlbGVtZW50ID0+IGVsZW1lbnRUb01ldGFkYXRhKGVsZW1lbnQpKTtcbiAgICAgICAgdGhpcy5lbGVtZW50c1Jlc29sdmVyID0gbmV3IEVsZW1lbnRzUmVzb2x2ZXIodWlEZWZpbml0aW9uLCBtZXRhZGF0YSk7XG4gICAgICAgIGNvbnN0IG1vZHVsZSA9IHRoaXMuZ2V0TW9kdWxlKHRoaXMuZWxlbWVudHNSZXNvbHZlci5nZXROZ0NvbXBvbmVudHMoKSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIGZyb20odGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKG1vZHVsZSkpLFxuICAgICAgICAgIG9mKHRoaXMuZWxlbWVudHNSZXNvbHZlciksXG4gICAgICAgIF0pO1xuICAgICAgfSksXG4gICAgICBtYXAoKFttb2R1bGUsIGVsZW1lbnRzUmVzb2x2ZXJdKSA9PiAoeyBtb2R1bGUsIGVsZW1lbnRzOiBlbGVtZW50c1Jlc29sdmVyLmVsZW1lbnRzIH0pKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbXBpbGVFbGVtZW50JChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBPYnNlcnZhYmxlPENvbXBpbGF0aW9uUmVzdWx0PiB7XG4gICAgaWYgKCF0aGlzLnVpRGVmaW5pdGlvbk1ldGEpIHtcbiAgICAgIHRocm93ICdObyBVSSBEZWZpbml0aW9uIGNvbnRleHQnO1xuICAgIH1cblxuICAgIHJldHVybiBvZih0aGlzLnVpRGVmaW5pdGlvbk1ldGEpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAodWlEZWZpbml0aW9uID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNSZXNvbHZlciA9IHRoaXMuZWxlbWVudHNSZXNvbHZlciA/PyBuZXcgRWxlbWVudHNSZXNvbHZlcih1aURlZmluaXRpb24sIFtdKTtcbiAgICAgICAgZWxlbWVudHNSZXNvbHZlci5hZGRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLmdldE1vZHVsZShlbGVtZW50c1Jlc29sdmVyLmdldE5nQ29tcG9uZW50cygpKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZnJvbSh0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzQXN5bmMobW9kdWxlKSksIG9mKGVsZW1lbnRzUmVzb2x2ZXIpXSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoW21vZHVsZSwgZWxlbWVudHNSZXNvbHZlcl0pID0+ICh7IG1vZHVsZSwgZWxlbWVudHM6IGVsZW1lbnRzUmVzb2x2ZXIuZWxlbWVudHMgfSkpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJNb2R1bGVDYWNoZShtb2R1bGVzOiBUeXBlPE5nTW9kdWxlPltdKTogdm9pZCB7XG4gICAgbW9kdWxlcy5mb3JFYWNoKG1vZHVsZSA9PiB0aGlzLmNvbXBpbGVyLmNsZWFyQ2FjaGVGb3IobW9kdWxlKSk7XG4gICAgdGhpcy51aURlZmluaXRpb25NZXRhID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGUoY29tcG9uZW50czogVHlwZTxhbnk+W10pOiBUeXBlPE5nTW9kdWxlPiB7XG4gICAgY29uc3Qgc3RhdGljQ29tcG9uZW50cyA9IFtcbiAgICAgIEVsZW1lbnRDaGlsZHJlbkNvbXBvbmVudCxcbiAgICAgIEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCxcbiAgICAgIEVsZW1lbnREcm9wSGFuZGxlQ29tcG9uZW50LFxuICAgICAgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgXTtcblxuICAgIEBOZ01vZHVsZSh7XG4gICAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEZlZGVyYXRlZE1vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgICAgIERuZE1vZHVsZSxcbiAgICAgICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgICAgXSxcbiAgICAgIGRlY2xhcmF0aW9uczogWy4uLnN0YXRpY0NvbXBvbmVudHMsIC4uLmNvbXBvbmVudHNdLFxuICAgICAgaml0OiB0cnVlLFxuICAgIH0pXG4gICAgY2xhc3MgRHluYW1pY01vZHVsZSB7fVxuXG4gICAgcmV0dXJuIER5bmFtaWNNb2R1bGU7XG4gIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvY29tcGlsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFZLFVBQVUsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDM0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDM0csT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFHeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUduRSxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lB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QUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sU0FBUyxDQUFDLFVBQXVCO1FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsd0JBQXdCO1lBQ3hCLHdCQUF3QjtZQUN4QiwwQkFBMEI7WUFDMUIsdUJBQXVCO1NBQ3hCLENBQUM7UUFlRixJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO1NBQUcsQ0FBQTtRQUFoQixhQUFhO1lBYmxCLFFBQVEsQ0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsZUFBZTtvQkFDZixjQUFjO29CQUNkLFNBQVM7b0JBQ1QsZUFBZTtpQkFDaEI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLFVBQVUsQ0FBQztnQkFDbEQsR0FBRyxFQUFFLElBQUk7YUFDVixDQUFDO1dBQ0ksYUFBYSxDQUFHO1FBRXRCLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7O2dIQTVFVSxrQkFBa0I7b0hBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBpbGVyLCBJbmplY3RhYmxlLCBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVSURlZmluaXRpb24sIFVJRGVmaW5pdGlvbk1ldGFkYXRhIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgRG5kTW9kdWxlIH0gZnJvbSAnbmd4LWRyYWctZHJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRDaGlsZHJlbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZWxlbWVudC1jaGlsZHJlbi9lbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50RHJvcEhhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZWxlbWVudC1kcm9wLWhhbmRsZS9lbGVtZW50LWRyb3AtaGFuZGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGVtZW50UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2VsZW1lbnQtcmVuZGVyZXIvZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2N1c3RvbS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tcGlsYXRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL3J1bnRpbWUvdHlwZXMvY29tcGlsYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29tbW9uLnR5cGVzJztcbmltcG9ydCB7IEVsZW1lbnRzUmVzb2x2ZXIsIGVsZW1lbnRUb01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmVkZXJhdGVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vZmVkZXJhdGVkL2ZlZGVyYXRlZC5tb2R1bGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tcGlsYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1aURlZmluaXRpb25NZXRhPzogVUlEZWZpbml0aW9uTWV0YWRhdGE7XG4gIHByaXZhdGUgZWxlbWVudHNSZXNvbHZlcj86IEVsZW1lbnRzUmVzb2x2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIpIHt9XG5cbiAgcHVibGljIGNvbXBpbGVVSURlZmluaXRpb24kKHVpRGVmaW5pdGlvbjogVUlEZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxDb21waWxhdGlvblJlc3VsdD4ge1xuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VzLCBjb21wb25lbnRzLCAuLi51aURlZmluaXRpb25NZXRhIH0gPSB1aURlZmluaXRpb247XG4gICAgICAgIHRoaXMudWlEZWZpbml0aW9uTWV0YSA9IHVpRGVmaW5pdGlvbk1ldGE7XG5cbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbLi4uKGNoaWxkcmVuID8/IFtdKSwgLi4uKHBhZ2VzID8/IFtdKV07XG4gICAgICAgIGNvbnN0IHNoYXJlZEVsZW1lbnRzID0gY29tcG9uZW50cyA/PyBbXTtcblxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGVsZW1lbnRzLm1hcChlbGVtZW50ID0+IGVsZW1lbnRUb01ldGFkYXRhKGVsZW1lbnQpKTtcbiAgICAgICAgY29uc3Qgc2hhcmVkTWV0YWRhdGEgPSBzaGFyZWRFbGVtZW50cy5tYXAoZWxlbWVudCA9PiBlbGVtZW50VG9NZXRhZGF0YShlbGVtZW50KSk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50c1Jlc29sdmVyID0gbmV3IEVsZW1lbnRzUmVzb2x2ZXIodWlEZWZpbml0aW9uLCBtZXRhZGF0YSwgc2hhcmVkTWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLmdldE1vZHVsZSh0aGlzLmVsZW1lbnRzUmVzb2x2ZXIuZ2V0TmdDb21wb25lbnRzKCkpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICBmcm9tKHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNBc3luYyhtb2R1bGUpKSxcbiAgICAgICAgICBvZih0aGlzLmVsZW1lbnRzUmVzb2x2ZXIpLFxuICAgICAgICBdKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChbbW9kdWxlLCBlbGVtZW50c1Jlc29sdmVyXSkgPT4gKHsgbW9kdWxlLCBlbGVtZW50czogZWxlbWVudHNSZXNvbHZlci5lbGVtZW50cyB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21waWxlRWxlbWVudCQoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogT2JzZXJ2YWJsZTxDb21waWxhdGlvblJlc3VsdD4ge1xuICAgIGlmICghdGhpcy51aURlZmluaXRpb25NZXRhKSB7XG4gICAgICB0aHJvdyAnTm8gVUkgRGVmaW5pdGlvbiBjb250ZXh0JztcbiAgICB9XG5cbiAgICByZXR1cm4gb2YodGhpcy51aURlZmluaXRpb25NZXRhKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHVpRGVmaW5pdGlvbiA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzUmVzb2x2ZXIgPSB0aGlzLmVsZW1lbnRzUmVzb2x2ZXIgPz8gbmV3IEVsZW1lbnRzUmVzb2x2ZXIodWlEZWZpbml0aW9uLCBbXSk7XG4gICAgICAgIGVsZW1lbnRzUmVzb2x2ZXIuYWRkRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgbW9kdWxlID0gdGhpcy5nZXRNb2R1bGUoZWxlbWVudHNSZXNvbHZlci5nZXROZ0NvbXBvbmVudHMoKSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2Zyb20odGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKG1vZHVsZSkpLCBvZihlbGVtZW50c1Jlc29sdmVyKV0pO1xuICAgICAgfSksXG4gICAgICBtYXAoKFttb2R1bGUsIGVsZW1lbnRzUmVzb2x2ZXJdKSA9PiAoeyBtb2R1bGUsIGVsZW1lbnRzOiBlbGVtZW50c1Jlc29sdmVyLmVsZW1lbnRzIH0pKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsZWFyTW9kdWxlQ2FjaGUobW9kdWxlczogVHlwZTxOZ01vZHVsZT5bXSk6IHZvaWQge1xuICAgIG1vZHVsZXMuZm9yRWFjaChtb2R1bGUgPT4gdGhpcy5jb21waWxlci5jbGVhckNhY2hlRm9yKG1vZHVsZSkpO1xuICAgIHRoaXMudWlEZWZpbml0aW9uTWV0YSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlKGNvbXBvbmVudHM6IFR5cGU8YW55PltdKTogVHlwZTxOZ01vZHVsZT4ge1xuICAgIGNvbnN0IHN0YXRpY0NvbXBvbmVudHMgPSBbXG4gICAgICBFbGVtZW50Q2hpbGRyZW5Db21wb25lbnQsXG4gICAgICBFbGVtZW50UmVuZGVyZXJDb21wb25lbnQsXG4gICAgICBFbGVtZW50RHJvcEhhbmRsZUNvbXBvbmVudCxcbiAgICAgIEN1c3RvbVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIF07XG5cbiAgICBATmdNb2R1bGUoe1xuICAgICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBGZWRlcmF0ZWRNb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlLFxuICAgICAgICBEbmRNb2R1bGUsXG4gICAgICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICAgIF0sXG4gICAgICBkZWNsYXJhdGlvbnM6IFsuLi5zdGF0aWNDb21wb25lbnRzLCAuLi5jb21wb25lbnRzXSxcbiAgICAgIGppdDogdHJ1ZSxcbiAgICB9KVxuICAgIGNsYXNzIER5bmFtaWNNb2R1bGUge31cblxuICAgIHJldHVybiBEeW5hbWljTW9kdWxlO1xuICB9XG59XG4iXX0=
@@ -7,12 +7,15 @@ import { CONFIG } from '../cms.elements';
7
7
  import { DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, SHARED_ELEMENT_METADATA, UI_DEFINITION_METADATA, VENDOR_MAP, } from '../injection-tokens';
8
8
  import { vendorMap } from '../vendor-map';
9
9
  export class ElementsResolver {
10
- constructor(uiDef, elements) {
10
+ constructor(uiDef, elements, sharedElements = []) {
11
11
  this.uiDef = uiDef;
12
12
  this.renderableElements = [];
13
13
  this.sharedElements = [];
14
14
  const transpiledElements = this.transpileScripts(elements);
15
- this.sharedElements = this.flattenElements(transpiledElements).filter(el => this.isSharedElement(el));
15
+ const transpiledSharedElements = this.transpileScripts(sharedElements);
16
+ this.sharedElements = this.flattenElements(transpiledElements)
17
+ .filter(el => this.isSharedElement(el))
18
+ .concat(transpiledSharedElements);
16
19
  this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);
17
20
  this.renderableElements = this.getRenderableElements(this.elements);
18
21
  }
@@ -151,4 +154,4 @@ export class ElementsResolver {
151
154
  return result;
152
155
  }
153
156
  }
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvZWxlbWVudHMtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUFvQixLQUEyQixFQUFFLFFBQTJCO1FBQXhELFVBQUssR0FBTCxLQUFLLENBQXNCO1FBSHZDLHVCQUFrQixHQUFzQixFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBRzdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FB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LEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLE1BQU0sR0FBRyxXQUFXLENBQUM7UUFFekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDakMsTUFBTSxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUVoQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ0BiYWJlbC9zdGFuZGFsb25lJztcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgVUlEZWZpbml0aW9uTWV0YWRhdGEgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBmbGF0dGVuLCBrZWJhYkNhc2UsIHNldCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBERUZBVUxUX1BMVUdJTlMgfSBmcm9tICcuLi9jbXMuZGVmYXVsdCc7XG5pbXBvcnQgeyBDT05GSUcgfSBmcm9tICcuLi9jbXMuZWxlbWVudHMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9QTFVHSU5TX1RPS0VOLFxuICBFTEVNRU5UX0NPTkZJRyxcbiAgRUxFTUVOVF9NRVRBREFUQSxcbiAgU0hBUkVEX0VMRU1FTlRfTUVUQURBVEEsXG4gIFVJX0RFRklOSVRJT05fTUVUQURBVEEsXG4gIFZFTkRPUl9NQVAsXG59IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhLCBFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHZlbmRvck1hcCB9IGZyb20gJy4uL3ZlbmRvci1tYXAnO1xuXG5leHBvcnQgY2xhc3MgRWxlbWVudHNSZXNvbHZlciB7XG4gIHB1YmxpYyBlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW107XG5cbiAgcHJpdmF0ZSByZW5kZXJhYmxlRWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG4gIHByaXZhdGUgc2hhcmVkRWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1aURlZjogVUlEZWZpbml0aW9uTWV0YWRhdGEsIGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSkge1xuICAgIGNvbnN0IHRyYW5zcGlsZWRFbGVtZW50cyA9IHRoaXMudHJhbnNwaWxlU2NyaXB0cyhlbGVtZW50cyk7XG5cbiAgICB0aGlzLnNoYXJlZEVsZW1lbnRzID0gdGhpcy5mbGF0dGVuRWxlbWVudHModHJhbnNwaWxlZEVsZW1lbnRzKS5maWx0ZXIoZWwgPT4gdGhpcy5pc1NoYXJlZEVsZW1lbnQoZWwpKTtcblxuICAgIHRoaXMuZWxlbWVudHMgPSB0cmFuc3BpbGVkRWxlbWVudHMubWFwKGVsID0+IHRoaXMucHJvY2Vzc0VsZW1lbnRNZXRhZGF0YShlbCkpLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gICAgdGhpcy5yZW5kZXJhYmxlRWxlbWVudHMgPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IHZvaWQge1xuICAgIGlmIChlbGVtZW50LmlzU2hhcmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNwaWxlZEVsZW1lbnRzID0gdGhpcy50cmFuc3BpbGVTY3JpcHRzKFtlbGVtZW50XSk7XG4gICAgdGhpcy5lbGVtZW50cyA9IHRyYW5zcGlsZWRFbGVtZW50cy5tYXAoZWwgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGVsKSkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gICAgdGhpcy5yZW5kZXJhYmxlRWxlbWVudHMgPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZ0NvbXBvbmVudHMoKTogVHlwZTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLnJlbmRlcmFibGVFbGVtZW50cy5tYXAoZWwgPT4gdGhpcy5yZXNvbHZlRWxlbWVudChlbCkpLmZpbHRlcihpc0RlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc3BpbGUoZWw6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFlbC5zY3JpcHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IHRyYW5zZm9ybShlbC5zY3JpcHQsIHtcbiAgICAgIGZpbGVuYW1lOiBlbC5uYW1lICsgJy50cycsXG4gICAgICBwcmVzZXRzOiBbJ3R5cGVzY3JpcHQnXSxcbiAgICAgIHNvdXJjZU1hcHM6ICdpbmxpbmUnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkLmNvZGUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc3BpbGVTY3JpcHRzKGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSk6IEVsZW1lbnRNZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gZWxlbWVudHMubWFwKGVsID0+ICh7XG4gICAgICAuLi5lbCxcbiAgICAgIHNjcmlwdDogdGhpcy50cmFuc3BpbGUoZWwpLFxuICAgICAgY2hpbGRyZW46IHRoaXMudHJhbnNwaWxlU2NyaXB0cyhlbC5jaGlsZHJlbiksXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmbGF0dGVuRWxlbWVudHMoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICAgIHJldHVybiBmbGF0dGVuKGVsZW1lbnRzLm1hcChlbCA9PiBbZWwsIC4uLnRoaXMuZmxhdHRlbkVsZW1lbnRzKGVsLmNoaWxkcmVuKV0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaGFyZWRFbGVtZW50KGVsOiBFbGVtZW50TWV0YWRhdGEpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbihlbC5pc1NoYXJlZCkgJiYgZWwudHlwZSAhPT0gJ1JFRkVSRU5DRSc7XG4gIH1cblxuICBwcml2YXRlIGdldFJlbmRlcmFibGVFbGVtZW50cyhlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10pOiBFbGVtZW50TWV0YWRhdGFbXSB7XG4gICAgY29uc3QgcmVuZGVyYWJsZTogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgIGlmICghdGhpcy5pc1NoYXJlZEVsZW1lbnQoZWwpKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gZWwuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+ICF0aGlzLmlzU2hhcmVkRWxlbWVudChjaGlsZCkpO1xuICAgICAgICBjb25zdCByZW5kZXJhYmxlQ2hpbGRyZW4gPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyhjaGlsZHJlbik7XG4gICAgICAgIHJlbmRlcmFibGUucHVzaCh7IC4uLmVsLCBjaGlsZHJlbiB9LCAuLi5yZW5kZXJhYmxlQ2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaGFyZWRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IEVsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFlbGVtZW50LnJlZmVyZW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNoYXJlZEVsZW1lbnRzLmZpbmQoZWwgPT4gZWxlbWVudC5yZWZlcmVuY2UgPT09IGVsLm5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRWxlbWVudFRlbXBsYXRlKGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0gQ09ORklHW2VsZW1lbnQudHlwZV07XG4gICAgY29uc3QgdGVtcGxhdGUgPSAhY29uZmlnLnN1cHByZXNzVGVtcGxhdGUgPyBlbGVtZW50LnRlbXBsYXRlIDogJyc7XG5cbiAgICByZXR1cm4gdGVtcGxhdGUgfHwgY29uZmlnLmRlZmF1bHRUZW1wbGF0ZSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUVsZW1lbnRTdHlsZXMoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25maWcgPSBDT05GSUdbZWxlbWVudC50eXBlXTtcbiAgICByZXR1cm4gIWNvbmZpZy5zdXBwcmVzc1N0eWxlcyA/IGVsZW1lbnQuc3R5bGVzID8/ICcnIDogJyc7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NFbGVtZW50TWV0YWRhdGEoc291cmNlRWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogRWxlbWVudE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgZmluYWxFbGVtZW50OiBFbGVtZW50TWV0YWRhdGE7XG5cbiAgICBpZiAoc291cmNlRWxlbWVudC50eXBlID09PSAnUkVGRVJFTkNFJykge1xuICAgICAgY29uc3Qgc2hhcmVkRWxlbWVudCA9IHRoaXMuZ2V0U2hhcmVkRWxlbWVudChzb3VyY2VFbGVtZW50KTtcblxuICAgICAgaWYgKCFzaGFyZWRFbGVtZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgU2hhcmVkIGVsZW1lbnQgXCIke3NvdXJjZUVsZW1lbnQucmVmZXJlbmNlfVwiIG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZpbmFsRWxlbWVudCA9IHtcbiAgICAgICAgLi4uc291cmNlRWxlbWVudCxcbiAgICAgICAgY2hpbGRyZW46IHRoaXMuZ2V0U2hhcmVkQ2hpbGRyZW4oc2hhcmVkRWxlbWVudC5jaGlsZHJlbiwgc291cmNlRWxlbWVudC5wYXRoKSxcbiAgICAgICAgdHlwZTogc2hhcmVkRWxlbWVudC50eXBlLFxuICAgICAgICB0ZW1wbGF0ZTogc2hhcmVkRWxlbWVudC50ZW1wbGF0ZSxcbiAgICAgICAgc3R5bGVzOiAoc2hhcmVkRWxlbWVudC5zdHlsZXMgPz8gJycpICsgJ1xcbicgKyAoc291cmNlRWxlbWVudC5zdHlsZXMgPz8gJycpLFxuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAuLi5zaGFyZWRFbGVtZW50LmlucHV0cyxcbiAgICAgICAgICAuLi5zb3VyY2VFbGVtZW50LmlucHV0cyxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czoge1xuICAgICAgICAgIC4uLnNoYXJlZEVsZW1lbnQub3V0cHV0cyxcbiAgICAgICAgICAuLi5zb3VyY2VFbGVtZW50Lm91dHB1dHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbEVsZW1lbnQgPSBzb3VyY2VFbGVtZW50O1xuICAgICAgZGVsZXRlIHNvdXJjZUVsZW1lbnQucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIGZpbmFsRWxlbWVudC50ZW1wbGF0ZSA9IHRoaXMucmVzb2x2ZUVsZW1lbnRUZW1wbGF0ZShmaW5hbEVsZW1lbnQpO1xuICAgIGZpbmFsRWxlbWVudC5zdHlsZXMgPSB0aGlzLnJlc29sdmVFbGVtZW50U3R5bGVzKGZpbmFsRWxlbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmluYWxFbGVtZW50LFxuICAgICAgY2hpbGRyZW46IGZpbmFsRWxlbWVudC5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGNoaWxkKSkuZmlsdGVyKGlzRGVmaW5lZCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hhcmVkQ2hpbGRyZW4oY2hpbGRyZW46IEVsZW1lbnRNZXRhZGF0YVtdLCBwYXJlbnRQYXRoPzogc3RyaW5nKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICAgIHJldHVybiBjaGlsZHJlbi5tYXAoYyA9PiB7XG4gICAgICBpZiAoIWMucGF0aCkge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2VsTmFtZV0gPSBjLnBhdGguc3BsaXQoJy8nKS5yZXZlcnNlKCk7XG4gICAgICBjb25zdCBwYXRoID0gcGFyZW50UGF0aCArICcvJyArIGVsTmFtZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYyxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgY2hpbGRyZW46IHRoaXMuZ2V0U2hhcmVkQ2hpbGRyZW4oYy5jaGlsZHJlbiwgcGF0aCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRWxlbWVudChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBUeXBlPGFueT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IENPTkZJR1tlbGVtZW50LnR5cGVdO1xuICAgIGNvbnN0IGRlZmF1bHRQbHVnaW5zID0gREVGQVVMVF9QTFVHSU5TW3RoaXMudWlEZWYudHlwZV0gPz8gW107XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGVsZW1lbnQgdHlwZSBcIiR7ZWxlbWVudC50eXBlfVwiYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy5nZXRFbGVtZW50U3R5bGVzKGVsZW1lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50OiBDb21wb25lbnQgPSB7XG4gICAgICBzZWxlY3RvcjogJ3ZsLWVsZW1lbnQnLFxuICAgICAgdGVtcGxhdGU6IGVsZW1lbnQudGVtcGxhdGUsXG4gICAgICAuLi4oc3R5bGVzID8geyBzdHlsZXM6IFtzdHlsZXNdIH0gOiB7fSksXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBERUZBVUxUX1BMVUdJTlNfVE9LRU4sIHVzZVZhbHVlOiBkZWZhdWx0UGx1Z2lucyB9LFxuICAgICAgICB7IHByb3ZpZGU6IFVJX0RFRklOSVRJT05fTUVUQURBVEEsIHVzZVZhbHVlOiB0aGlzLnVpRGVmIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRUxFTUVOVF9NRVRBREFUQSwgdXNlVmFsdWU6IGVsZW1lbnQgfSxcbiAgICAgICAgeyBwcm92aWRlOiBTSEFSRURfRUxFTUVOVF9NRVRBREFUQSwgdXNlVmFsdWU6IHRoaXMuZ2V0U2hhcmVkRWxlbWVudChlbGVtZW50KSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEVMRU1FTlRfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVkVORE9SX01BUCwgdXNlVmFsdWU6IHZlbmRvck1hcCB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgY21wID0gQ29tcG9uZW50KGNvbXBvbmVudCkoY2xhc3MgQyBleHRlbmRzIGNvbmZpZy5jb21wb25lbnQge30pO1xuXG4gICAgc2V0KGNtcCwgJ3BhdGgnLCBlbGVtZW50LnBhdGgpO1xuXG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudFN0eWxlcyhlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQgPSAnJztcblxuICAgIGNvbnN0IGNvbmZpZ3VyZWRTdHlsZXMgPSB0aGlzLmNvbnZlcnRJbmxpbmVTdHlsZXNUb0NTUyhlbGVtZW50LmNvbmZpZ3VyZWRTdHlsZXMpO1xuICAgIGlmIChjb25maWd1cmVkU3R5bGVzKSB7XG4gICAgICAvLyBvcmRlciBpcyBpbXBvcnRhbnQ6IHN0eWxlcyB3cml0dGVuIGJ5IHVzZXIgaW4gQ1NTIGNvZGUgc2hvdWxkIGhhcyBoaWdoZXIgcHJpb3JpdHlcbiAgICAgIHJlc3VsdCArPSBjb25maWd1cmVkU3R5bGVzO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnN0eWxlcykge1xuICAgICAgcmVzdWx0ICs9IGVsZW1lbnQuc3R5bGVzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQgfHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0SW5saW5lU3R5bGVzVG9DU1Moc3R5bGVzPzogRWxlbWVudFN0eWxlRGVjbGFyYXRpb24pOiBzdHJpbmcge1xuICAgIGlmICghc3R5bGVzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHN0eWxlcyk7XG4gICAgbGV0IHJlc3VsdCA9ICc6aG9zdCB7XFxuJztcblxuICAgIGVudHJpZXMuZm9yRWFjaCgoW3N0eWxlLCB2YWx1ZV0pID0+IHtcbiAgICAgIHJlc3VsdCArPSBgICAke2tlYmFiQ2FzZShzdHlsZSl9OiR7dmFsdWV9O1xcbmA7XG4gICAgfSk7XG5cbiAgICByZXN1bHQgKz0gJ31cXG4nO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvZWxlbWVudHMtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsY0FBYyxFQUNkLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLFVBQVUsR0FDWCxNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQixZQUNVLEtBQTJCLEVBQ25DLFFBQTJCLEVBQzNCLGlCQUFvQyxFQUFFO1FBRjlCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBSjdCLHVCQUFrQixHQUFzQixFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBTzdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0Is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QztTQUMxQjtRQUVELE9BQU8sTUFBTSxJQUFJLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRU8sd0JBQXdCLENBQUMsTUFBZ0M7UUFDL0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQztRQUV6QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksS0FBSyxDQUFDO1FBRWhCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnQGJhYmVsL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBVSURlZmluaXRpb25NZXRhZGF0YSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IGZsYXR0ZW4sIGtlYmFiQ2FzZSwgc2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERFRkFVTFRfUExVR0lOUyB9IGZyb20gJy4uL2Ntcy5kZWZhdWx0JztcbmltcG9ydCB7IENPTkZJRyB9IGZyb20gJy4uL2Ntcy5lbGVtZW50cyc7XG5pbXBvcnQge1xuICBERUZBVUxUX1BMVUdJTlNfVE9LRU4sXG4gIEVMRU1FTlRfQ09ORklHLFxuICBFTEVNRU5UX01FVEFEQVRBLFxuICBTSEFSRURfRUxFTUVOVF9NRVRBREFUQSxcbiAgVUlfREVGSU5JVElPTl9NRVRBREFUQSxcbiAgVkVORE9SX01BUCxcbn0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEsIEVsZW1lbnRTdHlsZURlY2xhcmF0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgdmVuZG9yTWFwIH0gZnJvbSAnLi4vdmVuZG9yLW1hcCc7XG5cbmV4cG9ydCBjbGFzcyBFbGVtZW50c1Jlc29sdmVyIHtcbiAgcHVibGljIGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXTtcblxuICBwcml2YXRlIHJlbmRlcmFibGVFbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcbiAgcHJpdmF0ZSBzaGFyZWRFbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVpRGVmOiBVSURlZmluaXRpb25NZXRhZGF0YSxcbiAgICBlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10sXG4gICAgc2hhcmVkRWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdID0gW10sXG4gICkge1xuICAgIGNvbnN0IHRyYW5zcGlsZWRFbGVtZW50cyA9IHRoaXMudHJhbnNwaWxlU2NyaXB0cyhlbGVtZW50cyk7XG4gICAgY29uc3QgdHJhbnNwaWxlZFNoYXJlZEVsZW1lbnRzID0gdGhpcy50cmFuc3BpbGVTY3JpcHRzKHNoYXJlZEVsZW1lbnRzKTtcblxuICAgIHRoaXMuc2hhcmVkRWxlbWVudHMgPSB0aGlzLmZsYXR0ZW5FbGVtZW50cyh0cmFuc3BpbGVkRWxlbWVudHMpXG4gICAgICAuZmlsdGVyKGVsID0+IHRoaXMuaXNTaGFyZWRFbGVtZW50KGVsKSlcbiAgICAgIC5jb25jYXQodHJhbnNwaWxlZFNoYXJlZEVsZW1lbnRzKTtcblxuICAgIHRoaXMuZWxlbWVudHMgPSB0cmFuc3BpbGVkRWxlbWVudHMubWFwKGVsID0+IHRoaXMucHJvY2Vzc0VsZW1lbnRNZXRhZGF0YShlbCkpLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gICAgdGhpcy5yZW5kZXJhYmxlRWxlbWVudHMgPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IHZvaWQge1xuICAgIGlmIChlbGVtZW50LmlzU2hhcmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNwaWxlZEVsZW1lbnRzID0gdGhpcy50cmFuc3BpbGVTY3JpcHRzKFtlbGVtZW50XSk7XG4gICAgdGhpcy5lbGVtZW50cyA9IHRyYW5zcGlsZWRFbGVtZW50cy5tYXAoZWwgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGVsKSkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gICAgdGhpcy5yZW5kZXJhYmxlRWxlbWVudHMgPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZ0NvbXBvbmVudHMoKTogVHlwZTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLnJlbmRlcmFibGVFbGVtZW50cy5tYXAoZWwgPT4gdGhpcy5yZXNvbHZlRWxlbWVudChlbCkpLmZpbHRlcihpc0RlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc3BpbGUoZWw6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFlbC5zY3JpcHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IHRyYW5zZm9ybShlbC5zY3JpcHQsIHtcbiAgICAgIGZpbGVuYW1lOiBlbC5uYW1lICsgJy50cycsXG4gICAgICBwcmVzZXRzOiBbJ3R5cGVzY3JpcHQnXSxcbiAgICAgIHNvdXJjZU1hcHM6ICdpbmxpbmUnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkLmNvZGUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc3BpbGVTY3JpcHRzKGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSk6IEVsZW1lbnRNZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gZWxlbWVudHMubWFwKGVsID0+ICh7XG4gICAgICAuLi5lbCxcbiAgICAgIHNjcmlwdDogdGhpcy50cmFuc3BpbGUoZWwpLFxuICAgICAgY2hpbGRyZW46IHRoaXMudHJhbnNwaWxlU2NyaXB0cyhlbC5jaGlsZHJlbiksXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmbGF0dGVuRWxlbWVudHMoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICAgIHJldHVybiBmbGF0dGVuKGVsZW1lbnRzLm1hcChlbCA9PiBbZWwsIC4uLnRoaXMuZmxhdHRlbkVsZW1lbnRzKGVsLmNoaWxkcmVuKV0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaGFyZWRFbGVtZW50KGVsOiBFbGVtZW50TWV0YWRhdGEpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQm9vbGVhbihlbC5pc1NoYXJlZCkgJiYgZWwudHlwZSAhPT0gJ1JFRkVSRU5DRSc7XG4gIH1cblxuICBwcml2YXRlIGdldFJlbmRlcmFibGVFbGVtZW50cyhlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10pOiBFbGVtZW50TWV0YWRhdGFbXSB7XG4gICAgY29uc3QgcmVuZGVyYWJsZTogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgIGlmICghdGhpcy5pc1NoYXJlZEVsZW1lbnQoZWwpKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gZWwuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+ICF0aGlzLmlzU2hhcmVkRWxlbWVudChjaGlsZCkpO1xuICAgICAgICBjb25zdCByZW5kZXJhYmxlQ2hpbGRyZW4gPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyhjaGlsZHJlbik7XG4gICAgICAgIHJlbmRlcmFibGUucHVzaCh7IC4uLmVsLCBjaGlsZHJlbiB9LCAuLi5yZW5kZXJhYmxlQ2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaGFyZWRFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IEVsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFlbGVtZW50LnJlZmVyZW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNoYXJlZEVsZW1lbnRzLmZpbmQoZWwgPT4gZWxlbWVudC5yZWZlcmVuY2UgPT09IGVsLm5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRWxlbWVudFRlbXBsYXRlKGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0gQ09ORklHW2VsZW1lbnQudHlwZV07XG4gICAgY29uc3QgdGVtcGxhdGUgPSAhY29uZmlnLnN1cHByZXNzVGVtcGxhdGUgPyBlbGVtZW50LnRlbXBsYXRlIDogJyc7XG5cbiAgICByZXR1cm4gdGVtcGxhdGUgfHwgY29uZmlnLmRlZmF1bHRUZW1wbGF0ZSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUVsZW1lbnRTdHlsZXMoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25maWcgPSBDT05GSUdbZWxlbWVudC50eXBlXTtcbiAgICByZXR1cm4gIWNvbmZpZy5zdXBwcmVzc1N0eWxlcyA/IGVsZW1lbnQuc3R5bGVzID8/ICcnIDogJyc7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NFbGVtZW50TWV0YWRhdGEoc291cmNlRWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogRWxlbWVudE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgZmluYWxFbGVtZW50OiBFbGVtZW50TWV0YWRhdGE7XG5cbiAgICBpZiAoc291cmNlRWxlbWVudC50eXBlID09PSAnUkVGRVJFTkNFJykge1xuICAgICAgY29uc3Qgc2hhcmVkRWxlbWVudCA9IHRoaXMuZ2V0U2hhcmVkRWxlbWVudChzb3VyY2VFbGVtZW50KTtcblxuICAgICAgaWYgKCFzaGFyZWRFbGVtZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgU2hhcmVkIGVsZW1lbnQgXCIke3NvdXJjZUVsZW1lbnQucmVmZXJlbmNlfVwiIG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZpbmFsRWxlbWVudCA9IHtcbiAgICAgICAgLi4uc291cmNlRWxlbWVudCxcbiAgICAgICAgY2hpbGRyZW46IHRoaXMuZ2V0U2hhcmVkQ2hpbGRyZW4oc2hhcmVkRWxlbWVudC5jaGlsZHJlbiwgc291cmNlRWxlbWVudC5wYXRoKSxcbiAgICAgICAgdHlwZTogc2hhcmVkRWxlbWVudC50eXBlLFxuICAgICAgICB0ZW1wbGF0ZTogc2hhcmVkRWxlbWVudC50ZW1wbGF0ZSxcbiAgICAgICAgc3R5bGVzOiAoc2hhcmVkRWxlbWVudC5zdHlsZXMgPz8gJycpICsgJ1xcbicgKyAoc291cmNlRWxlbWVudC5zdHlsZXMgPz8gJycpLFxuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAuLi5zaGFyZWRFbGVtZW50LmlucHV0cyxcbiAgICAgICAgICAuLi5zb3VyY2VFbGVtZW50LmlucHV0cyxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czoge1xuICAgICAgICAgIC4uLnNoYXJlZEVsZW1lbnQub3V0cHV0cyxcbiAgICAgICAgICAuLi5zb3VyY2VFbGVtZW50Lm91dHB1dHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbEVsZW1lbnQgPSBzb3VyY2VFbGVtZW50O1xuICAgICAgZGVsZXRlIHNvdXJjZUVsZW1lbnQucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIGZpbmFsRWxlbWVudC50ZW1wbGF0ZSA9IHRoaXMucmVzb2x2ZUVsZW1lbnRUZW1wbGF0ZShmaW5hbEVsZW1lbnQpO1xuICAgIGZpbmFsRWxlbWVudC5zdHlsZXMgPSB0aGlzLnJlc29sdmVFbGVtZW50U3R5bGVzKGZpbmFsRWxlbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmluYWxFbGVtZW50LFxuICAgICAgY2hpbGRyZW46IGZpbmFsRWxlbWVudC5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGNoaWxkKSkuZmlsdGVyKGlzRGVmaW5lZCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hhcmVkQ2hpbGRyZW4oY2hpbGRyZW46IEVsZW1lbnRNZXRhZGF0YVtdLCBwYXJlbnRQYXRoPzogc3RyaW5nKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICAgIHJldHVybiBjaGlsZHJlbi5tYXAoYyA9PiB7XG4gICAgICBpZiAoIWMucGF0aCkge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2VsTmFtZV0gPSBjLnBhdGguc3BsaXQoJy8nKS5yZXZlcnNlKCk7XG4gICAgICBjb25zdCBwYXRoID0gcGFyZW50UGF0aCArICcvJyArIGVsTmFtZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYyxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgY2hpbGRyZW46IHRoaXMuZ2V0U2hhcmVkQ2hpbGRyZW4oYy5jaGlsZHJlbiwgcGF0aCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRWxlbWVudChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBUeXBlPGFueT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IENPTkZJR1tlbGVtZW50LnR5cGVdO1xuICAgIGNvbnN0IGRlZmF1bHRQbHVnaW5zID0gREVGQVVMVF9QTFVHSU5TW3RoaXMudWlEZWYudHlwZV0gPz8gW107XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGVsZW1lbnQgdHlwZSBcIiR7ZWxlbWVudC50eXBlfVwiYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy5nZXRFbGVtZW50U3R5bGVzKGVsZW1lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50OiBDb21wb25lbnQgPSB7XG4gICAgICBzZWxlY3RvcjogJ3ZsLWVsZW1lbnQnLFxuICAgICAgdGVtcGxhdGU6IGVsZW1lbnQudGVtcGxhdGUsXG4gICAgICAuLi4oc3R5bGVzID8geyBzdHlsZXM6IFtzdHlsZXNdIH0gOiB7fSksXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBERUZBVUxUX1BMVUdJTlNfVE9LRU4sIHVzZVZhbHVlOiBkZWZhdWx0UGx1Z2lucyB9LFxuICAgICAgICB7IHByb3ZpZGU6IFVJX0RFRklOSVRJT05fTUVUQURBVEEsIHVzZVZhbHVlOiB0aGlzLnVpRGVmIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRUxFTUVOVF9NRVRBREFUQSwgdXNlVmFsdWU6IGVsZW1lbnQgfSxcbiAgICAgICAgeyBwcm92aWRlOiBTSEFSRURfRUxFTUVOVF9NRVRBREFUQSwgdXNlVmFsdWU6IHRoaXMuZ2V0U2hhcmVkRWxlbWVudChlbGVtZW50KSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEVMRU1FTlRfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVkVORE9SX01BUCwgdXNlVmFsdWU6IHZlbmRvck1hcCB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgY21wID0gQ29tcG9uZW50KGNvbXBvbmVudCkoY2xhc3MgQyBleHRlbmRzIGNvbmZpZy5jb21wb25lbnQge30pO1xuXG4gICAgc2V0KGNtcCwgJ3BhdGgnLCBlbGVtZW50LnBhdGgpO1xuXG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudFN0eWxlcyhlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQgPSAnJztcblxuICAgIGNvbnN0IGNvbmZpZ3VyZWRTdHlsZXMgPSB0aGlzLmNvbnZlcnRJbmxpbmVTdHlsZXNUb0NTUyhlbGVtZW50LmNvbmZpZ3VyZWRTdHlsZXMpO1xuICAgIGlmIChjb25maWd1cmVkU3R5bGVzKSB7XG4gICAgICAvLyBvcmRlciBpcyBpbXBvcnRhbnQ6IHN0eWxlcyB3cml0dGVuIGJ5IHVzZXIgaW4gQ1NTIGNvZGUgc2hvdWxkIGhhcyBoaWdoZXIgcHJpb3JpdHlcbiAgICAgIHJlc3VsdCArPSBjb25maWd1cmVkU3R5bGVzO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnN0eWxlcykge1xuICAgICAgcmVzdWx0ICs9IGVsZW1lbnQuc3R5bGVzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQgfHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0SW5saW5lU3R5bGVzVG9DU1Moc3R5bGVzPzogRWxlbWVudFN0eWxlRGVjbGFyYXRpb24pOiBzdHJpbmcge1xuICAgIGlmICghc3R5bGVzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHN0eWxlcyk7XG4gICAgbGV0IHJlc3VsdCA9ICc6aG9zdCB7XFxuJztcblxuICAgIGVudHJpZXMuZm9yRWFjaCgoW3N0eWxlLCB2YWx1ZV0pID0+IHtcbiAgICAgIHJlc3VsdCArPSBgICAke2tlYmFiQ2FzZShzdHlsZSl9OiR7dmFsdWV9O1xcbmA7XG4gICAgfSk7XG5cbiAgICByZXN1bHQgKz0gJ31cXG4nO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGVmaW5pdGlvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvdWktZGVmaW5pdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVUlEZWZpbml0aW9uVHlwZSA9ICdERUZBVUxUJyB8ICdDT05GSUdVUkFUSU9OJztcblxuZXhwb3J0IHR5cGUgVUlEZWZpbml0aW9uTWV0YWRhdGEgPSBPbWl0PFVJRGVmaW5pdGlvbiwgJ2NoaWxkcmVuJz47XG5cbmV4cG9ydCB0eXBlIFVJRXh0ZXJuYWxzVHlwZSA9IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFVJRGVmaW5pdGlvblByb3BzIHtcbiAgLy8gR0VORVJBTFxuICBzdXBwcmVzc1RvYXN0TWVzc2FnZXM/OiBib29sZWFuO1xuXG4gIC8vIENPTkZJR1VSQVRJT05cbiAgcm9vdFR5cGU/OiBzdHJpbmc7XG4gIHByaWNpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgcHJpY2VMaXN0Pzogc3RyaW5nO1xuICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlEZWZpbml0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBVSURlZmluaXRpb25UeXBlO1xuICBjaGlsZHJlbjogVUlFbGVtZW50W107XG4gIHByb3BlcnRpZXM/OiBVSURlZmluaXRpb25Qcm9wcztcbiAgcHJpbWFyeTogYm9vbGVhbjtcbiAgdmVyc2lvbjogbnVtYmVyO1xuICBjcmVhdGVkVGltZXN0YW1wOiBudW1iZXI7XG4gIGV4dGVybmFscz86IFVJRXh0ZXJuYWxzVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVSUVsZW1lbnQge1xuICBjaGlsZHJlbjogVUlFbGVtZW50W107XG4gIHRlbXBsYXRlPzogc3RyaW5nO1xuICBzY3JpcHQ/OiBzdHJpbmc7XG4gIHN0eWxlcz86IHN0cmluZztcbn1cbiJdfQ==
1
+ export const UI_DEFINITION_VERSION = 3;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGVmaW5pdGlvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvdWktZGVmaW5pdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBVSURlZmluaXRpb25UeXBlID0gJ0RFRkFVTFQnIHwgJ0NPTkZJR1VSQVRJT04nO1xuXG5leHBvcnQgY29uc3QgVUlfREVGSU5JVElPTl9WRVJTSU9OID0gMztcblxuZXhwb3J0IHR5cGUgVUlFeHRlcm5hbHNUeXBlID0gUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlEZWZpbml0aW9uUHJvcHMge1xuICAvLyBHRU5FUkFMXG4gIHN1cHByZXNzVG9hc3RNZXNzYWdlcz86IGJvb2xlYW47XG5cbiAgLy8gQ09ORklHVVJBVElPTlxuICByb290VHlwZT86IHN0cmluZztcbiAgcHJpY2luZ0VuYWJsZWQ/OiBib29sZWFuO1xuICBwcmljZUxpc3Q/OiBzdHJpbmc7XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVSURlZmluaXRpb25NZXRhZGF0YSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogVUlEZWZpbml0aW9uVHlwZTtcbiAgcHJvcGVydGllcz86IFVJRGVmaW5pdGlvblByb3BzO1xuICBwcmltYXJ5OiBib29sZWFuO1xuICBjcmVhdGVkVGltZXN0YW1wOiBudW1iZXI7XG4gIGV4dGVybmFscz86IFVJRXh0ZXJuYWxzVHlwZTtcbiAgdmVyc2lvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVJRGVmaW5pdGlvbiBleHRlbmRzIFVJRGVmaW5pdGlvbk1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIGBjaGlsZHJlbmAgaXMgZm9yIHNpbXBsZSBwcmV2aWV3cyBvbmx5LlxuICAgKiBGb3IgYXBwbGljYXRpb25zIHVzZSBgcGFnZXNgIHByb3BlcnR5IGluc3RlYWRcbiAgICovXG4gIGNoaWxkcmVuPzogVUlFbGVtZW50W107XG5cbiAgLyoqXG4gICAqIFRoZSBwYWdlIGlzIGFuIEVsZW1lbnQgd2l0aCBgdHlwZTogJ1BBR0UnYFxuICAgKi9cbiAgcGFnZXM/OiBVSUVsZW1lbnRbXTtcblxuICAvKipcbiAgICogU2hhcmVkIGNvbXBvbmVudHNcbiAgICogVGhlc2UgYXJlIG5vdCByZW5kZXJlZCBvbiB0aGUgc2NyZWVuLCBhbmQgb25seSB1c2VkIGJ5IFJFRkVSRU5DRSB0eXBlIGVsZW1lbnRzXG4gICAqL1xuICBjb21wb25lbnRzPzogVUlFbGVtZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlFbGVtZW50IHtcbiAgY2hpbGRyZW46IFVJRWxlbWVudFtdO1xuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgc2NyaXB0Pzogc3RyaW5nO1xuICBzdHlsZXM/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './line-item.utils';
2
2
  export * from './line-item.worker';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGluZS1pdGVtLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGluZS1pdGVtLndvcmtlcic7XG4iXX0=
3
+ export * from './ui-definition.utils';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saW5lLWl0ZW0udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWl0ZW0ud29ya2VyJztcbmV4cG9ydCAqIGZyb20gJy4vdWktZGVmaW5pdGlvbi51dGlscyc7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { omit } from 'lodash';
2
+ export function extractMetadata(uiDefinition) {
3
+ return omit(uiDefinition, [
4
+ 'children',
5
+ 'pages',
6
+ 'components',
7
+ ]);
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGVmaW5pdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdXRpbHMvdWktZGVmaW5pdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzlCLE1BQU0sVUFBVSxlQUFlLENBQUMsWUFBMEI7SUFDeEQsT0FBTyxJQUFJLENBQXFFLFlBQVksRUFBRTtRQUM1RixVQUFVO1FBQ1YsT0FBTztRQUNQLFlBQVk7S0FDYixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBVSURlZmluaXRpb24sIFVJRGVmaW5pdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE1ldGFkYXRhKHVpRGVmaW5pdGlvbjogVUlEZWZpbml0aW9uKTogVUlEZWZpbml0aW9uTWV0YWRhdGEge1xuICByZXR1cm4gb21pdDxVSURlZmluaXRpb24sIGtleW9mIE9taXQ8VUlEZWZpbml0aW9uLCBrZXlvZiBVSURlZmluaXRpb25NZXRhZGF0YT4+KHVpRGVmaW5pdGlvbiwgW1xuICAgICdjaGlsZHJlbicsXG4gICAgJ3BhZ2VzJyxcbiAgICAnY29tcG9uZW50cycsXG4gIF0pO1xufVxuIl19
@@ -1,16 +1,16 @@
1
- import { __decorate, __param, __awaiter } from 'tslib';
1
+ import { __decorate, __param, __awaiter, __rest } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, Component, ChangeDetectionStrategy, Inject, Injector, Injectable, ViewContainerRef, SkipSelf, ViewChild, Input, ViewEncapsulation, NgModule, Directive, ElementRef } from '@angular/core';
4
4
  import * as rxjs from 'rxjs';
5
5
  import { BehaviorSubject, Subject, of, map, tap, switchMap, startWith, distinctUntilChanged, filter, takeUntil, forkJoin, catchError, ReplaySubject, combineLatest, from } from 'rxjs';
6
6
  import * as lodash from 'lodash';
7
- import { compact, isArray, pull, merge, flatten, set, kebabCase, omit } from 'lodash';
7
+ import { compact, isArray, pull, merge, flatten, set, kebabCase, cloneDeep } from 'lodash';
8
8
  import { applyPatch } from 'rfc6902';
9
9
  import * as i2 from '@veloceapps/sdk/core';
10
- import { ConfigurationService, LineItemWorker, generateLineItem, getAttributeValue, QuoteDraftService, FlowConfigurationService, ProductImagesService, ContextService, lineItemUtils, SdkCoreModule } from '@veloceapps/sdk/core';
10
+ import { ConfigurationService, LineItemWorker, generateLineItem, getAttributeValue, QuoteDraftService, FlowConfigurationService, ProductImagesService, ContextService, lineItemUtils, SdkCoreModule, UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';
11
11
  import * as i3 from 'primeng/api';
12
- import * as i5 from '@veloceapps/components';
13
- import { LetDirectiveModule, LoaderModule, ToastService } from '@veloceapps/components';
12
+ import * as i1 from '@veloceapps/components';
13
+ import { LetDirectiveModule, LoaderModule, ToastService, ToastType } from '@veloceapps/components';
14
14
  import { UUID, isDefined, CoreModule } from '@veloceapps/core';
15
15
  import * as i7 from '@angular/common';
16
16
  import { CommonModule, DOCUMENT } from '@angular/common';
@@ -703,7 +703,7 @@ class PreviewComponent {
703
703
  }
704
704
  }
705
705
  PreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PreviewComponent, deps: [{ token: RuntimeService }, { token: i2.ConfigurationService }, { token: i3.MessageService }, { token: i2.ConfigurationRuntimeService }, { token: IntegrationState }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
706
- PreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PreviewComponent, selector: "vl-cms-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition", config: "config" }, providers: [IOProviderService, TemplatesService], ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{flex-grow:1;display:flex;flex-direction:column;height:100%}\n"], components: [{ type: i5.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom });
706
+ PreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PreviewComponent, selector: "vl-cms-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition", config: "config" }, providers: [IOProviderService, TemplatesService], ngImport: i0, template: "<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{flex-grow:1;display:flex;flex-direction:column;height:100%}\n"], components: [{ type: i1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom });
707
707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PreviewComponent, decorators: [{
708
708
  type: Component,
709
709
  args: [{
@@ -1461,12 +1461,15 @@ const VELOCE_LIBS_BACKWARDS_COMPATIBLE = Object.entries(VELOCE_LIBS).reduce((tru
1461
1461
  const vendorMap = Object.assign(Object.assign(Object.assign({}, VELOCE_LIBS), VELOCE_LIBS_BACKWARDS_COMPATIBLE), { '@angular/core': i0, '@angular/forms': angularForms, rxjs: rxjs, 'rxjs/operators': rxjsOperators, lodash: lodash });
1462
1462
 
1463
1463
  class ElementsResolver {
1464
- constructor(uiDef, elements) {
1464
+ constructor(uiDef, elements, sharedElements = []) {
1465
1465
  this.uiDef = uiDef;
1466
1466
  this.renderableElements = [];
1467
1467
  this.sharedElements = [];
1468
1468
  const transpiledElements = this.transpileScripts(elements);
1469
- this.sharedElements = this.flattenElements(transpiledElements).filter(el => this.isSharedElement(el));
1469
+ const transpiledSharedElements = this.transpileScripts(sharedElements);
1470
+ this.sharedElements = this.flattenElements(transpiledElements)
1471
+ .filter(el => this.isSharedElement(el))
1472
+ .concat(transpiledSharedElements);
1470
1473
  this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);
1471
1474
  this.renderableElements = this.getRenderableElements(this.elements);
1472
1475
  }
@@ -1697,7 +1700,7 @@ class FederatedComponent {
1697
1700
  }
1698
1701
  }
1699
1702
  FederatedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FederatedComponent, deps: [{ token: i0.Injector }, { token: i0.Compiler }, { token: i0.ApplicationRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1700
- FederatedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FederatedComponent, selector: "veloce-host-federated", inputs: { remoteEntry: "remoteEntry", remoteName: "remoteName", exposedModule: "exposedModule", data: "data", options: "options" }, viewQueries: [{ propertyName: "moduleHostRef", first: true, predicate: ["moduleHost"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #moduleHost></div>\n\n<vl-loader *ngIf=\"!suppressLoading && (isLoading$ | async)\" [label]=\"loadingLabel\"></vl-loader>\n", styles: [":host{display:block}div{height:100%}\n"], components: [{ type: i5.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1703
+ FederatedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FederatedComponent, selector: "veloce-host-federated", inputs: { remoteEntry: "remoteEntry", remoteName: "remoteName", exposedModule: "exposedModule", data: "data", options: "options" }, viewQueries: [{ propertyName: "moduleHostRef", first: true, predicate: ["moduleHost"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #moduleHost></div>\n\n<vl-loader *ngIf=\"!suppressLoading && (isLoading$ | async)\" [label]=\"loadingLabel\"></vl-loader>\n", styles: [":host{display:block}div{height:100%}\n"], components: [{ type: i1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1701
1704
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FederatedComponent, decorators: [{
1702
1705
  type: Component,
1703
1706
  args: [{
@@ -1741,10 +1744,14 @@ class CompilationService {
1741
1744
  this.compiler = compiler;
1742
1745
  }
1743
1746
  compileUIDefinition$(uiDefinition) {
1744
- this.uiDefinitionMeta = omit(uiDefinition, 'children');
1745
1747
  return of([]).pipe(switchMap(() => {
1746
- const metadata = uiDefinition.children.map(element => elementToMetadata(element));
1747
- this.elementsResolver = new ElementsResolver(uiDefinition, metadata);
1748
+ const { children, pages, components } = uiDefinition, uiDefinitionMeta = __rest(uiDefinition, ["children", "pages", "components"]);
1749
+ this.uiDefinitionMeta = uiDefinitionMeta;
1750
+ const elements = [...(children !== null && children !== void 0 ? children : []), ...(pages !== null && pages !== void 0 ? pages : [])];
1751
+ const sharedElements = components !== null && components !== void 0 ? components : [];
1752
+ const metadata = elements.map(element => elementToMetadata(element));
1753
+ const sharedMetadata = sharedElements.map(element => elementToMetadata(element));
1754
+ this.elementsResolver = new ElementsResolver(uiDefinition, metadata, sharedMetadata);
1748
1755
  const module = this.getModule(this.elementsResolver.getNgComponents());
1749
1756
  return combineLatest([
1750
1757
  from(this.compiler.compileModuleAndAllComponentsAsync(module)),
@@ -1838,9 +1845,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1838
1845
  }]
1839
1846
  }] });
1840
1847
 
1848
+ const migrations = {
1849
+ 2: () => {
1850
+ throw 'Migration from Legacy UI definition is not possible';
1851
+ },
1852
+ 3: uiDef => {
1853
+ var _a;
1854
+ const children = (_a = uiDef.children) !== null && _a !== void 0 ? _a : [];
1855
+ return Object.assign(Object.assign({}, uiDef), { children: undefined, pages: children, version: 3 });
1856
+ },
1857
+ };
1858
+
1859
+ class MigrationsService {
1860
+ constructor(toastService) {
1861
+ this.toastService = toastService;
1862
+ }
1863
+ migrateUIDefinition(uiDef) {
1864
+ const currentVersion = uiDef.version;
1865
+ const targetVersion = UI_DEFINITION_VERSION;
1866
+ const migrateVersions = Object.keys(migrations)
1867
+ .reduce((acc, version) => {
1868
+ const v = Number(version);
1869
+ if (v > currentVersion && v <= targetVersion) {
1870
+ acc.push(v);
1871
+ }
1872
+ return acc;
1873
+ }, [])
1874
+ .sort();
1875
+ try {
1876
+ let result = cloneDeep(uiDef);
1877
+ for (const version of migrateVersions) {
1878
+ result = migrations[version](result);
1879
+ }
1880
+ return result;
1881
+ }
1882
+ catch (e) {
1883
+ this.toastService.add({ summary: String(e), severity: ToastType.error });
1884
+ return;
1885
+ }
1886
+ }
1887
+ }
1888
+ MigrationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsService, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
1889
+ MigrationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsService, providedIn: 'root' });
1890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsService, decorators: [{
1891
+ type: Injectable,
1892
+ args: [{ providedIn: 'root' }]
1893
+ }], ctorParameters: function () { return [{ type: i1.ToastService }]; } });
1894
+
1895
+ class MigrationsModule {
1896
+ }
1897
+ MigrationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1898
+ MigrationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule });
1899
+ MigrationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule, providers: [MigrationsService] });
1900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MigrationsModule, decorators: [{
1901
+ type: NgModule,
1902
+ args: [{
1903
+ providers: [MigrationsService],
1904
+ }]
1905
+ }] });
1906
+
1841
1907
  /**
1842
1908
  * Generated bundle index. Do not edit.
1843
1909
  */
1844
1910
 
1845
- export { ApplyProductConfigurationAction, CloseDocGenAction, ConfigureProductAction, DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, ElementComponent, ElementDefinition, ElementsResolver, FlowAction, IntegrationState, LauncherModule, NavigateBackAction, NavigateToCatalogAction, OpenDocGenAction, PreviewComponent, PreviewModule, RemoteApplyAction, RemoteCancelAction, RuntimeEditorService, RuntimeModule, SHARED_ELEMENT_METADATA, SetDefaultMetrics, SwitchObjectAction, TemplatesService, UI_DEFINITION_METADATA, UiBuildError, VENDOR_MAP, doesElementSupportIO, elementToMetadata, extendElementMetadata, extractElementMetadata, findElementByModule, findElementByPath, flattenElements, getAbsolutePath, getElementConfig, getElementUniqueName, insertElement, isSharedElement, isValidScript, metadataToElement, normalizeElementMetadata, parseBoundPath, parsePath, removeElement, stringifyElementMetadata };
1911
+ export { ApplyProductConfigurationAction, CloseDocGenAction, ConfigureProductAction, DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, ElementComponent, ElementDefinition, ElementsResolver, FlowAction, IntegrationState, LauncherModule, MigrationsModule, MigrationsService, NavigateBackAction, NavigateToCatalogAction, OpenDocGenAction, PreviewComponent, PreviewModule, RemoteApplyAction, RemoteCancelAction, RuntimeEditorService, RuntimeModule, SHARED_ELEMENT_METADATA, SetDefaultMetrics, SwitchObjectAction, TemplatesService, UI_DEFINITION_METADATA, UiBuildError, VENDOR_MAP, doesElementSupportIO, elementToMetadata, extendElementMetadata, extractElementMetadata, findElementByModule, findElementByPath, flattenElements, getAbsolutePath, getElementConfig, getElementUniqueName, insertElement, isSharedElement, isValidScript, metadataToElement, normalizeElementMetadata, parseBoundPath, parsePath, removeElement, stringifyElementMetadata };
1846
1912
  //# sourceMappingURL=veloceapps-sdk-cms.js.map