@veloceapps/sdk 7.0.2-17 → 7.0.2-19
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/cms.actions.d.ts +7 -1
- package/cms/components/element-children/element-children.component.d.ts +3 -1
- package/cms/components/preview/preview.types.d.ts +4 -0
- package/cms/injection-tokens.d.ts +1 -3
- package/cms/modules/runtime/services/compilation.service.d.ts +2 -1
- package/cms/plugins/script.plugin.d.ts +0 -3
- package/cms/types/common.types.d.ts +2 -2
- package/cms/utils/elements-resolver.d.ts +5 -1
- package/cms/utils/script.utils.d.ts +2 -0
- package/cms/vendor-map.d.ts +1 -2
- package/core/types/ui-definition.types.d.ts +7 -2
- package/esm2020/cms/cms.actions.mjs +11 -2
- package/esm2020/cms/cms.elements.mjs +5 -5
- package/esm2020/cms/components/element-children/element-children.component.mjs +11 -6
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +2 -2
- package/esm2020/cms/components/preview/preview.types.mjs +1 -1
- package/esm2020/cms/injection-tokens.mjs +1 -2
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +2 -2
- package/esm2020/cms/plugins/script.plugin.mjs +6 -40
- package/esm2020/cms/services/integration.state.mjs +3 -6
- package/esm2020/cms/types/common.types.mjs +1 -1
- package/esm2020/cms/utils/elements-resolver.mjs +22 -8
- package/esm2020/cms/utils/script.utils.mjs +42 -0
- package/esm2020/core/types/ui-definition.types.mjs +1 -1
- package/esm2020/src/flow-routing.module.mjs +1 -2
- package/fesm2015/veloceapps-sdk-cms.mjs +134 -105
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +0 -1
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +147 -117
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +0 -1
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
package/cms/cms.actions.d.ts
CHANGED
@@ -26,11 +26,17 @@ export declare const SwitchObjectAction: (payload: {
|
|
26
26
|
}) => IntegrationAction;
|
27
27
|
export declare namespace CmsAction {
|
28
28
|
const GO_TO_PAGE = "[CMS]_GO_TO_PAGE";
|
29
|
+
const UPDATE_CUSTOMIZATION = "[CMS]_UPDATE_CUSTOMIZATION";
|
29
30
|
/**
|
30
31
|
* Navigate UI definition to a specific page
|
31
32
|
*
|
32
33
|
* @param pageName name of the page
|
33
|
-
* @returns void
|
34
34
|
*/
|
35
35
|
const GoToPage: (pageName: string) => IntegrationAction;
|
36
|
+
/**
|
37
|
+
* Update UI definition customization state
|
38
|
+
*
|
39
|
+
* @param pageName name of the page
|
40
|
+
*/
|
41
|
+
const UpdateCustomization: (value: any) => IntegrationAction;
|
36
42
|
}
|
@@ -10,11 +10,13 @@ export declare class ElementChildrenComponent implements OnDestroy {
|
|
10
10
|
private runtimeService;
|
11
11
|
private runtimeEditorService;
|
12
12
|
private cdr;
|
13
|
+
filter?: (elements: ElementMetadata[]) => ElementMetadata[];
|
13
14
|
metadata$: Observable<ElementMetadata | undefined>;
|
14
15
|
dragMode$: Observable<boolean>;
|
15
16
|
private destroyed$;
|
16
17
|
constructor(elementContext: ElementContextService, runtimeService: RuntimeService, runtimeEditorService: RuntimeEditorService, cdr: ChangeDetectorRef);
|
17
18
|
ngOnDestroy(): void;
|
19
|
+
getFilteredChildren(elements: ElementMetadata[]): ElementMetadata[];
|
18
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<ElementChildrenComponent, never>;
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ElementChildrenComponent, "element-children", never, {}, {}, never, never, false, never>;
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ElementChildrenComponent, "element-children", never, { "filter": "filter"; }, {}, never, never, false, never>;
|
20
22
|
}
|
@@ -1,11 +1,9 @@
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
2
2
|
import { UIDefinitionMetadata } from '@veloceapps/sdk/core';
|
3
|
-
import { Dictionary } from 'lodash';
|
4
3
|
import { Plugin } from './engine/models/plugin';
|
5
4
|
import { ElementConfig, ElementMetadata } from './types/common.types';
|
6
5
|
export declare const DEFAULT_PLUGINS_TOKEN: InjectionToken<(typeof Plugin)[]>;
|
7
6
|
export declare const UI_DEFINITION_METADATA: InjectionToken<UIDefinitionMetadata>;
|
8
7
|
export declare const ELEMENT_METADATA: InjectionToken<ElementMetadata>;
|
9
|
-
export declare const SHARED_ELEMENT_METADATA: InjectionToken<ElementMetadata>;
|
8
|
+
export declare const SHARED_ELEMENT_METADATA: InjectionToken<ElementMetadata | undefined>;
|
10
9
|
export declare const ELEMENT_CONFIG: InjectionToken<ElementConfig>;
|
11
|
-
export declare const VENDOR_MAP: InjectionToken<Dictionary<any>>;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Injector } from '@angular/core';
|
2
2
|
import { UIDefinition } from '@veloceapps/sdk/core';
|
3
3
|
import { Observable } from 'rxjs';
|
4
|
+
import { CMSPreviewConfig } from '../../../components/preview';
|
4
5
|
import { CompilationResult } from '../../../modules/runtime/types/compilation.types';
|
5
6
|
import { ElementMetadata } from '../../../types/common.types';
|
6
7
|
import * as i0 from "@angular/core";
|
@@ -9,7 +10,7 @@ export declare class CompilationService {
|
|
9
10
|
private uiDefinitionMeta?;
|
10
11
|
private elementsResolver?;
|
11
12
|
constructor(injector: Injector);
|
12
|
-
compileUIDefinition$(uiDefinition: UIDefinition): Observable<CompilationResult>;
|
13
|
+
compileUIDefinition$(uiDefinition: UIDefinition, config?: CMSPreviewConfig): Observable<CompilationResult>;
|
13
14
|
compileElement$(element: ElementMetadata): Observable<CompilationResult>;
|
14
15
|
clear(): void;
|
15
16
|
private getModule;
|
@@ -3,11 +3,8 @@ import { PluginComponent } from '../components/plugin.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare class ScriptPlugin implements PluginComponent {
|
5
5
|
host: ElementComponent;
|
6
|
-
private document;
|
7
|
-
private vendorMap;
|
8
6
|
constructor(host: ElementComponent);
|
9
7
|
private addScript;
|
10
|
-
private normalizeImports;
|
11
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScriptPlugin, never>;
|
12
9
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ScriptPlugin, never, never, {}, {}, never, never, false, never>;
|
13
10
|
}
|
@@ -3,7 +3,7 @@ import { Entity } from '../engine/models/entity';
|
|
3
3
|
import { Plugin } from '../engine/models/plugin';
|
4
4
|
import { PageLayout } from './layouts.types';
|
5
5
|
import { PageType } from './pages.types';
|
6
|
-
export type ELEMENT_TYPE = 'CUSTOM' | 'CONTAINER' | 'SERVICE' | 'REFERENCE' | 'PAGE' | 'REGION';
|
6
|
+
export type ELEMENT_TYPE = 'CUSTOMIZATION_PAGE' | 'CUSTOM' | 'CONTAINER' | 'SERVICE' | 'REFERENCE' | 'PAGE' | 'REGION';
|
7
7
|
export type ElementStyleDeclaration = Partial<CSSStyleDeclaration>;
|
8
8
|
export interface ElementConfig {
|
9
9
|
component: typeof Entity;
|
@@ -11,7 +11,7 @@ export interface ElementConfig {
|
|
11
11
|
defaultTemplate?: string;
|
12
12
|
suppressTemplate?: boolean;
|
13
13
|
suppressStyles?: boolean;
|
14
|
-
builder
|
14
|
+
builder?: {
|
15
15
|
suppressRemovable?: boolean;
|
16
16
|
};
|
17
17
|
}
|
@@ -1,13 +1,16 @@
|
|
1
1
|
import { Type } from '@angular/core';
|
2
2
|
import { UIDefinitionMetadata } from '@veloceapps/sdk/core';
|
3
|
+
import { CMSPreviewConfig } from '../components/preview';
|
3
4
|
import { Entity } from '../engine/models/entity';
|
4
5
|
import { ElementMetadata } from '../types';
|
5
6
|
export declare class ElementsResolver {
|
6
7
|
private uiDef;
|
8
|
+
private config?;
|
7
9
|
elements: ElementMetadata[];
|
8
10
|
private renderableElements;
|
9
11
|
private sharedElements;
|
10
|
-
|
12
|
+
private uiDefMetadata;
|
13
|
+
constructor(uiDef: UIDefinitionMetadata, elements: ElementMetadata[], sharedElements?: ElementMetadata[], config?: CMSPreviewConfig | undefined);
|
11
14
|
addElement(element: ElementMetadata): void;
|
12
15
|
getNgComponents(): Record<string, Type<Entity>>;
|
13
16
|
private transpile;
|
@@ -23,4 +26,5 @@ export declare class ElementsResolver {
|
|
23
26
|
private resolveElement;
|
24
27
|
private getElementStyles;
|
25
28
|
private convertInlineStylesToCSS;
|
29
|
+
private getDefaultCustomizationState;
|
26
30
|
}
|
package/cms/vendor-map.d.ts
CHANGED
@@ -102,9 +102,8 @@ export declare const vendorMap: {
|
|
102
102
|
DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
|
103
103
|
UI_DEFINITION_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/core").UIDefinitionMetadata>;
|
104
104
|
ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata>;
|
105
|
-
SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata>;
|
105
|
+
SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata | undefined>;
|
106
106
|
ELEMENT_CONFIG: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementConfig>;
|
107
|
-
VENDOR_MAP: angularCore.InjectionToken<lodash.Dictionary<any>>;
|
108
107
|
};
|
109
108
|
};
|
110
109
|
export type VendorMap = typeof vendorMap;
|
@@ -3,6 +3,10 @@ export declare const UI_DEFINITION_VERSION = 3;
|
|
3
3
|
export type UIExternalsType = Record<string, string | number | boolean>;
|
4
4
|
export interface UIDefinitionProps {
|
5
5
|
suppressToastMessages?: boolean;
|
6
|
+
/**
|
7
|
+
* When 'true', the Structure module in UI Builder is hidden
|
8
|
+
*/
|
9
|
+
simplifiedEditorMode?: boolean;
|
6
10
|
rootType?: string;
|
7
11
|
pricingEnabled?: boolean;
|
8
12
|
priceList?: string;
|
@@ -11,11 +15,12 @@ export interface UIDefinitionProps {
|
|
11
15
|
export interface UIDefinitionMetadata {
|
12
16
|
name: string;
|
13
17
|
type: UIDefinitionType;
|
14
|
-
properties?: UIDefinitionProps;
|
15
18
|
primary: boolean;
|
19
|
+
version: number;
|
16
20
|
createdTimestamp: number;
|
21
|
+
properties?: UIDefinitionProps;
|
17
22
|
externals?: UIExternalsType;
|
18
|
-
|
23
|
+
customization?: any;
|
19
24
|
}
|
20
25
|
export interface UIDefinition extends UIDefinitionMetadata {
|
21
26
|
/**
|
@@ -42,15 +42,24 @@ export const SwitchObjectAction = (payload) => ({
|
|
42
42
|
export var CmsAction;
|
43
43
|
(function (CmsAction) {
|
44
44
|
CmsAction.GO_TO_PAGE = '[CMS]_GO_TO_PAGE';
|
45
|
+
CmsAction.UPDATE_CUSTOMIZATION = '[CMS]_UPDATE_CUSTOMIZATION';
|
45
46
|
/**
|
46
47
|
* Navigate UI definition to a specific page
|
47
48
|
*
|
48
49
|
* @param pageName name of the page
|
49
|
-
* @returns void
|
50
50
|
*/
|
51
51
|
CmsAction.GoToPage = (pageName) => ({
|
52
52
|
type: CmsAction.GO_TO_PAGE,
|
53
53
|
payload: { pageName },
|
54
54
|
});
|
55
|
+
/**
|
56
|
+
* Update UI definition customization state
|
57
|
+
*
|
58
|
+
* @param pageName name of the page
|
59
|
+
*/
|
60
|
+
CmsAction.UpdateCustomization = (value) => ({
|
61
|
+
type: CmsAction.UPDATE_CUSTOMIZATION,
|
62
|
+
payload: { value },
|
63
|
+
});
|
55
64
|
})(CmsAction || (CmsAction = {}));
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFOLElBQVksVUFVWDtBQVZELFdBQVksVUFBVTtJQUNwQiwrREFBaUQsQ0FBQTtJQUNqRCx1REFBeUMsQ0FBQTtJQUN6QyxtRUFBcUQsQ0FBQTtJQUNyRCxtRkFBcUUsQ0FBQTtJQUNyRSxxREFBdUMsQ0FBQTtJQUN2Qyx1REFBeUMsQ0FBQTtJQUN6Qyx1REFBeUMsQ0FBQTtJQUN6QywyQ0FBNkIsQ0FBQTtJQUM3Qiw2Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBVlcsVUFBVSxLQUFWLFVBQVUsUUFVckI7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7SUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7SUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtDQUNuQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLEVBQUUsVUFBVSxDQUFDLHdCQUF3QjtDQUMxQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN2RSxJQUFJLEVBQUUsVUFBVSxDQUFDLGdDQUFnQztDQUNsRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN4RCxJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQjtDQUNuQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7Q0FDOUIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBc0IsRUFBRSxDQUFDLENBQUM7SUFDMUQsSUFBSSxFQUFFLFVBQVUsQ0FBQyxhQUFhO0NBQy9CLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBdUIsRUFBcUIsRUFBRSxDQUFDLENBQUM7SUFDakYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0I7SUFDbkMsT0FBTztDQUNSLENBQUMsQ0FBQztBQUVILE1BQU0sS0FBVyxTQUFTLENBdUJ6QjtBQXZCRCxXQUFpQixTQUFTO0lBQ1gsb0JBQVUsR0FBRyxrQkFBa0IsQ0FBQztJQUNoQyw4QkFBb0IsR0FBRyw0QkFBNEIsQ0FBQztJQUVqRTs7OztPQUlHO0lBQ1Usa0JBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksRUFBRSxVQUFBLFVBQVU7UUFDaEIsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQ3RCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDVSw2QkFBbUIsR0FBRyxDQUFDLEtBQVUsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxFQUFFLFVBQUEsb0JBQW9CO1FBQzFCLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRTtLQUNuQixDQUFDLENBQUM7QUFDTCxDQUFDLEVBdkJnQixTQUFTLEtBQVQsU0FBUyxRQXVCekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG5pbXBvcnQgeyBJbnRlZ3JhdGlvbkFjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZW51bSBGbG93QWN0aW9uIHtcbiAgRkxPV19DT05GSUdVUkVfUFJPRFVDVCA9ICdGTE9XX0NPTkZJR1VSRV9QUk9EVUNUJyxcbiAgRkxPV19OQVZJR0FURV9CQUNLID0gJ0ZMT1dfTkFWSUdBVEVfQkFDSycsXG4gIEZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyA9ICdGTE9XX05BVklHQVRFX1RPX0NBVEFMT0cnLFxuICBGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTiA9ICdGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTicsXG4gIEZMT1dfT1BFTl9ET0NfR0VOID0gJ0ZMT1dfT1BFTl9ET0NfR0VOJyxcbiAgRkxPV19DTE9TRV9ET0NfR0VOID0gJ0ZMT1dfQ0xPU0VfRE9DX0dFTicsXG4gIEZMT1dfU1dJVENIX09CSkVDVCA9ICdGTE9XX1NXSVRDSF9PQkpFQ1QnLFxuICBSRU1PVEVfQVBQTFkgPSAnUkVNT1RFX0FQUExZJyxcbiAgUkVNT1RFX0NBTkNFTCA9ICdSRU1PVEVfQ0FOQ0VMJyxcbn1cblxuZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSAoe1xuICBsaW5lSXRlbUlkLFxuICBwcm9kdWN0SWQsXG59OiB7XG4gIGxpbmVJdGVtSWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbn0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ09ORklHVVJFX1BST0RVQ1QsXG4gIHBheWxvYWQ6IHsgbGluZUl0ZW1JZCwgcHJvZHVjdElkIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IE5hdmlnYXRlQmFja0FjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfQkFDSyxcbn0pO1xuXG5leHBvcnQgY29uc3QgTmF2aWdhdGVUb0NhdGFsb2dBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG59KTtcblxuZXhwb3J0IGNvbnN0IEFwcGx5UHJvZHVjdENvbmZpZ3VyYXRpb25BY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbn0pO1xuXG5leHBvcnQgY29uc3QgT3BlbkRvY0dlbkFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfT1BFTl9ET0NfR0VOLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDbG9zZURvY0dlbkFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ0xPU0VfRE9DX0dFTixcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVtb3RlQXBwbHlBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFksXG59KTtcblxuZXhwb3J0IGNvbnN0IFJlbW90ZUNhbmNlbEFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN3aXRjaE9iamVjdEFjdGlvbiA9IChwYXlsb2FkOiB7IGlkOiBzdHJpbmcgfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICBwYXlsb2FkLFxufSk7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ21zQWN0aW9uIHtcbiAgZXhwb3J0IGNvbnN0IEdPX1RPX1BBR0UgPSAnW0NNU11fR09fVE9fUEFHRSc7XG4gIGV4cG9ydCBjb25zdCBVUERBVEVfQ1VTVE9NSVpBVElPTiA9ICdbQ01TXV9VUERBVEVfQ1VTVE9NSVpBVElPTic7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xufVxuIl19
|
@@ -7,29 +7,29 @@ import { ScriptPlugin } from './plugins/script.plugin';
|
|
7
7
|
* ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.
|
8
8
|
*/
|
9
9
|
export const CONFIG = {
|
10
|
+
CUSTOMIZATION_PAGE: {
|
11
|
+
component: ElementComponent,
|
12
|
+
plugins: [IOPlugin, ScriptPlugin],
|
13
|
+
},
|
10
14
|
CUSTOM: {
|
11
15
|
component: ElementComponent,
|
12
16
|
plugins: [IOPlugin, ElementHoverPlugin, ScriptPlugin],
|
13
|
-
builder: {},
|
14
17
|
},
|
15
18
|
CONTAINER: {
|
16
19
|
component: ElementComponent,
|
17
20
|
defaultTemplate: '<element-children></element-children>',
|
18
21
|
plugins: [ScriptPlugin],
|
19
|
-
builder: {},
|
20
22
|
},
|
21
23
|
SERVICE: {
|
22
24
|
component: ElementComponent,
|
23
25
|
plugins: [IOPlugin, ScriptPlugin],
|
24
26
|
suppressTemplate: true,
|
25
27
|
suppressStyles: true,
|
26
|
-
builder: {},
|
27
28
|
},
|
28
29
|
REFERENCE: {
|
29
30
|
component: ElementComponent,
|
30
31
|
plugins: [IOPlugin, ScriptPlugin],
|
31
32
|
suppressTemplate: true,
|
32
|
-
builder: {},
|
33
33
|
},
|
34
34
|
PAGE: {
|
35
35
|
component: ElementComponent,
|
@@ -48,4 +48,4 @@ export const CONFIG = {
|
|
48
48
|
},
|
49
49
|
},
|
50
50
|
};
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2Ntcy5lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RDs7R0FFRztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBNkM7SUFDOUQsa0JBQWtCLEVBQUU7UUFDbEIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO0tBQ2xDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDO0tBQ3REO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixlQUFlLEVBQUUsdUNBQXVDO1FBQ3hELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNqQyxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRSxJQUFJO0tBQ3JCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ2pDLGdCQUFnQixFQUFFLElBQUk7S0FDdkI7SUFDRCxJQUFJLEVBQUU7UUFDSixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNqQyxPQUFPLEVBQUU7WUFDUCxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLENBQUM7UUFDbkUsT0FBTyxFQUFFO1lBQ1AsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxlbWVudEhvdmVyUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2VsZW1lbnQtaG92ZXIucGx1Z2luJztcbmltcG9ydCB7IElPUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2lvLnBsdWdpbic7XG5pbXBvcnQgeyBSZWdpb25QbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvcmVnaW9uLnBsdWdpbic7XG5pbXBvcnQgeyBTY3JpcHRQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvc2NyaXB0LnBsdWdpbic7XG5pbXBvcnQgeyBFTEVNRU5UX1RZUEUsIEVsZW1lbnRDb25maWcgfSBmcm9tICcuL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbi8qXG4gKiBTY3JpcHRQbHVnaW4gbXVzdCBhbHdheXMgYmUgdGhlIGxhc3QgcGx1Z2luIGluIHRoZSBsaXN0IHRvIG1ha2Ugc3VyZSB1c2VyIGNvZGUgaXMgcnVubmluZyBhZnRlciBhbGwgcHJlLWluaXRpYWxpemVycy5cbiAqL1xuXG5leHBvcnQgY29uc3QgQ09ORklHOiB7IFtrZXkgaW4gRUxFTUVOVF9UWVBFXTogRWxlbWVudENvbmZpZyB9ID0ge1xuICBDVVNUT01JWkFUSU9OX1BBR0U6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICB9LFxuICBDVVNUT006IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBFbGVtZW50SG92ZXJQbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIENPTlRBSU5FUjoge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBkZWZhdWx0VGVtcGxhdGU6ICc8ZWxlbWVudC1jaGlsZHJlbj48L2VsZW1lbnQtY2hpbGRyZW4+JyxcbiAgICBwbHVnaW5zOiBbU2NyaXB0UGx1Z2luXSxcbiAgfSxcbiAgU0VSVklDRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gICAgc3VwcHJlc3NUZW1wbGF0ZTogdHJ1ZSxcbiAgICBzdXBwcmVzc1N0eWxlczogdHJ1ZSxcbiAgfSxcbiAgUkVGRVJFTkNFOiB7XG4gICAgY29tcG9uZW50OiBFbGVtZW50Q29tcG9uZW50LFxuICAgIHBsdWdpbnM6IFtJT1BsdWdpbiwgU2NyaXB0UGx1Z2luXSxcbiAgICBzdXBwcmVzc1RlbXBsYXRlOiB0cnVlLFxuICB9LFxuICBQQUdFOiB7XG4gICAgY29tcG9uZW50OiBFbGVtZW50Q29tcG9uZW50LFxuICAgIGRlZmF1bHRUZW1wbGF0ZTogJzxlbGVtZW50LWNoaWxkcmVuPjwvZWxlbWVudC1jaGlsZHJlbj4nLFxuICAgIHBsdWdpbnM6IFtJT1BsdWdpbiwgU2NyaXB0UGx1Z2luXSxcbiAgICBidWlsZGVyOiB7XG4gICAgICBzdXBwcmVzc1JlbW92YWJsZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICBSRUdJT046IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgZGVmYXVsdFRlbXBsYXRlOiAnPGVsZW1lbnQtY2hpbGRyZW4+PC9lbGVtZW50LWNoaWxkcmVuPicsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBSZWdpb25QbHVnaW4sIEVsZW1lbnRIb3ZlclBsdWdpbiwgU2NyaXB0UGx1Z2luXSxcbiAgICBidWlsZGVyOiB7XG4gICAgICBzdXBwcmVzc1JlbW92YWJsZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';
|
2
|
-
import { combineLatest, map, of,
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';
|
2
|
+
import { Subject, combineLatest, map, of, takeUntil } from 'rxjs';
|
3
3
|
import { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';
|
4
4
|
import { RuntimeService } from '../../modules/runtime/services/runtime.service';
|
5
5
|
import { ElementContextService } from '../../services/element-context.service';
|
@@ -26,11 +26,16 @@ export class ElementChildrenComponent {
|
|
26
26
|
this.destroyed$.next();
|
27
27
|
this.destroyed$.complete();
|
28
28
|
}
|
29
|
+
getFilteredChildren(elements) {
|
30
|
+
return this.filter ? this.filter(elements) : elements;
|
31
|
+
}
|
29
32
|
}
|
30
33
|
ElementChildrenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenComponent, deps: [{ token: i1.ElementContextService }, { token: i2.RuntimeService }, { token: i3.RuntimeEditorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
31
|
-
ElementChildrenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ElementChildrenComponent, selector: "element-children", ngImport: i0, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }, { kind: "component", type: i6.ElementDropHandleComponent, selector: "vl-element-drop-handle", inputs: ["index", "parentPath"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
34
|
+
ElementChildrenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ElementChildrenComponent, selector: "element-children", inputs: { filter: "filter" }, ngImport: i0, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of getFilteredChildren(metadata.children); let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ElementRendererComponent, selector: "vl-cms-element-renderer", inputs: ["meta"] }, { kind: "component", type: i6.ElementDropHandleComponent, selector: "vl-element-drop-handle", inputs: ["index", "parentPath"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
32
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementChildrenComponent, decorators: [{
|
33
36
|
type: Component,
|
34
|
-
args: [{ selector: 'element-children', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"] }]
|
35
|
-
}], ctorParameters: function () { return [{ type: i1.ElementContextService }, { type: i2.RuntimeService }, { type: i3.RuntimeEditorService }, { type: i0.ChangeDetectorRef }]; }
|
36
|
-
|
37
|
+
args: [{ selector: 'element-children', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of getFilteredChildren(metadata.children); let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n", styles: [":host{display:contents}\n"] }]
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.ElementContextService }, { type: i2.RuntimeService }, { type: i3.RuntimeEditorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filter: [{
|
39
|
+
type: Input
|
40
|
+
}] } });
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LWNoaWxkcmVuL2VsZW1lbnQtY2hpbGRyZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1jaGlsZHJlbi9lbGVtZW50LWNoaWxkcmVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFVL0UsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNVLGNBQXFDLEVBQ3JDLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxHQUFzQjtRQUh0QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFOeEIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFRdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0csR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNuQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsUUFBMkI7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDeEQsQ0FBQzs7cUhBOUJVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHNGQ2RyQyxxaUJBV0E7MkZER2Esd0JBQXdCO2tCQVBwQyxTQUFTOytCQUVFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNOzRNQUcvQixNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgb2YsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUnVudGltZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBSdW50aW1lU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZWxlbWVudC1jaGlsZHJlbicsXG4gIHRlbXBsYXRlVXJsOiAnZWxlbWVudC1jaGlsZHJlbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZW1lbnQtY2hpbGRyZW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRDaGlsZHJlbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXI/OiAoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKSA9PiBFbGVtZW50TWV0YWRhdGFbXTtcblxuICBwdWJsaWMgbWV0YWRhdGEkOiBPYnNlcnZhYmxlPEVsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZD47XG4gIHB1YmxpYyBkcmFnTW9kZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRDb250ZXh0OiBFbGVtZW50Q29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBydW50aW1lRWRpdG9yU2VydmljZTogUnVudGltZUVkaXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5lbGVtZW50Q29udGV4dD8ubWV0YWRhdGE/LnBhdGg7XG4gICAgdGhpcy5tZXRhZGF0YSQgPSBwYXRoID8gdGhpcy5ydW50aW1lU2VydmljZS5nZXRDb21waWxlZEVsZW1lbnQkKHBhdGgpIDogb2YodW5kZWZpbmVkKTtcblxuICAgIHRoaXMuZHJhZ01vZGUkID0gY29tYmluZUxhdGVzdChbdGhpcy5ydW50aW1lRWRpdG9yU2VydmljZS5lZGl0b3JNb2RlJCwgdGhpcy5ydW50aW1lRWRpdG9yU2VydmljZS5kcmFnTW9kZSRdKS5waXBlKFxuICAgICAgbWFwKGZsYWdzID0+IGZsYWdzLmV2ZXJ5KEJvb2xlYW4pKSxcbiAgICApO1xuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlZCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWx0ZXJlZENoaWxkcmVuKGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSk6IEVsZW1lbnRNZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIgPyB0aGlzLmZpbHRlcihlbGVtZW50cykgOiBlbGVtZW50cztcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGFkYXRhJCB8IGFzeW5jIGFzIG1ldGFkYXRhXCI+XG4gIDx2bC1lbGVtZW50LWRyb3AtaGFuZGxlICpuZ0lmPVwiZHJhZ01vZGUkIHwgYXN5bmNcIiBbaW5kZXhdPVwiMFwiIFtwYXJlbnRQYXRoXT1cIm1ldGFkYXRhLnBhdGhcIj48L3ZsLWVsZW1lbnQtZHJvcC1oYW5kbGU+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGdldEZpbHRlcmVkQ2hpbGRyZW4obWV0YWRhdGEuY2hpbGRyZW4pOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIFttZXRhXT1cImNoaWxkXCI+PC92bC1jbXMtZWxlbWVudC1yZW5kZXJlcj5cbiAgICA8dmwtZWxlbWVudC1kcm9wLWhhbmRsZVxuICAgICAgKm5nSWY9XCJkcmFnTW9kZSQgfCBhc3luY1wiXG4gICAgICBbaW5kZXhdPVwiaSArIDFcIlxuICAgICAgW3BhcmVudFBhdGhdPVwibWV0YWRhdGEucGF0aFwiXG4gICAgPjwvdmwtZWxlbWVudC1kcm9wLWhhbmRsZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|