@veloceapps/sdk 7.0.2-2 → 7.0.2-21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. package/cms/cms.actions.d.ts +7 -1
  2. package/cms/components/element-children/element-children.component.d.ts +3 -1
  3. package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +14 -0
  4. package/cms/components/preview/preview.module.d.ts +2 -1
  5. package/cms/components/preview/preview.types.d.ts +4 -0
  6. package/cms/injection-tokens.d.ts +1 -3
  7. package/cms/modules/runtime/services/compilation.service.d.ts +2 -1
  8. package/cms/modules/runtime/services/runtime-editor.service.d.ts +6 -4
  9. package/cms/modules/runtime/types/runtime.actions.d.ts +5 -2
  10. package/cms/plugins/element-hover.plugin.d.ts +32 -0
  11. package/cms/plugins/script.plugin.d.ts +0 -3
  12. package/cms/types/common.types.d.ts +11 -1
  13. package/cms/types/index.d.ts +2 -0
  14. package/cms/types/layouts.types.d.ts +28 -2
  15. package/cms/types/pages.types.d.ts +1 -0
  16. package/cms/utils/elements-resolver.d.ts +5 -1
  17. package/cms/utils/script.utils.d.ts +2 -0
  18. package/cms/vendor-map.d.ts +7 -5
  19. package/core/modules/configuration/services/configuration.service.d.ts +3 -3
  20. package/core/types/ui-definition.types.d.ts +7 -2
  21. package/core/utils/line-item.utils.d.ts +4 -2
  22. package/core/utils/line-item.worker.d.ts +2 -2
  23. package/esm2020/cms/cms.actions.mjs +11 -2
  24. package/esm2020/cms/cms.elements.mjs +14 -3
  25. package/esm2020/cms/cms.layouts.mjs +39 -1
  26. package/esm2020/cms/components/element-children/element-children.component.mjs +11 -6
  27. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +2 -2
  28. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +35 -0
  29. package/esm2020/cms/components/preview/preview.module.mjs +22 -4
  30. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  31. package/esm2020/cms/injection-tokens.mjs +1 -2
  32. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
  33. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +5 -3
  34. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +2 -2
  35. package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +1 -1
  36. package/esm2020/cms/plugins/element-hover.plugin.mjs +112 -0
  37. package/esm2020/cms/plugins/script.plugin.mjs +6 -40
  38. package/esm2020/cms/services/integration.state.mjs +3 -6
  39. package/esm2020/cms/services/io-provider.service.mjs +7 -5
  40. package/esm2020/cms/types/common.types.mjs +1 -1
  41. package/esm2020/cms/types/index.mjs +3 -1
  42. package/esm2020/cms/types/layouts.types.mjs +70 -1
  43. package/esm2020/cms/types/pages.types.mjs +2 -0
  44. package/esm2020/cms/utils/elements-resolver.mjs +22 -8
  45. package/esm2020/cms/utils/script.utils.mjs +42 -0
  46. package/esm2020/cms/vendor-map.mjs +3 -2
  47. package/esm2020/core/modules/configuration/services/configuration.service.mjs +6 -5
  48. package/esm2020/core/types/ui-definition.types.mjs +1 -1
  49. package/esm2020/core/utils/line-item.utils.mjs +35 -16
  50. package/esm2020/core/utils/line-item.worker.mjs +5 -5
  51. package/esm2020/src/components/header/header.component.mjs +15 -3
  52. package/esm2020/src/flow-routing.module.mjs +1 -1
  53. package/fesm2015/veloceapps-sdk-cms.mjs +343 -108
  54. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  55. package/fesm2015/veloceapps-sdk-core.mjs +46 -24
  56. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  57. package/fesm2015/veloceapps-sdk.mjs +15 -2
  58. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  59. package/fesm2020/veloceapps-sdk-cms.mjs +424 -122
  60. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  61. package/fesm2020/veloceapps-sdk-core.mjs +46 -24
  62. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  63. package/fesm2020/veloceapps-sdk.mjs +14 -2
  64. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  65. package/package.json +1 -1
@@ -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
  }
@@ -0,0 +1,14 @@
1
+ import { RuntimeEditorService } from '../../modules/runtime';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ElementToolsPanelComponent {
4
+ private readonly metadata;
5
+ private readonly config;
6
+ private readonly elementRef;
7
+ runtimeEditorService?: RuntimeEditorService;
8
+ showDeleteButton: boolean;
9
+ constructor();
10
+ deleteHandler(): void;
11
+ showSettingsHandler(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElementToolsPanelComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElementToolsPanelComponent, "ng-component", never, {}, {}, never, never, true, never>;
14
+ }
@@ -5,8 +5,9 @@ import * as i3 from "@veloceapps/components";
5
5
  import * as i4 from "../element-renderer/element-renderer.module";
6
6
  import * as i5 from "../element-children/element-children.module";
7
7
  import * as i6 from "../element-drop-handle/element-drop-handle.module";
8
+ import * as i7 from "../element-tools-panel/element-tools-panel.component";
8
9
  export declare class PreviewModule {
9
10
  static ɵfac: i0.ɵɵFactoryDeclaration<PreviewModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<PreviewModule, [typeof i1.PreviewComponent], [typeof i2.CommonModule, typeof i3.LoaderModule, typeof i4.ElementRendererModule, typeof i5.ElementChildrenModule, typeof i6.ElementDropHandleModule], [typeof i1.PreviewComponent]>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PreviewModule, [typeof i1.PreviewComponent], [typeof i2.CommonModule, typeof i3.LoaderModule, typeof i4.ElementRendererModule, typeof i5.ElementChildrenModule, typeof i6.ElementDropHandleModule, typeof i7.ElementToolsPanelComponent], [typeof i1.PreviewComponent]>;
11
12
  static ɵinj: i0.ɵɵInjectorDeclaration<PreviewModule>;
12
13
  }
@@ -8,4 +8,8 @@ export interface CMSPreviewConfig {
8
8
  * (like element hover/selection or Drag&Drop zones)
9
9
  */
10
10
  uiBuilderMode?: boolean;
11
+ /**
12
+ * When `true`, preview renders settings page (element with `type: CUSTOMIZATION_PAGE`)
13
+ */
14
+ customizationMode?: boolean;
11
15
  }
@@ -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;
@@ -1,15 +1,17 @@
1
1
  import { Patch } from 'rfc6902';
2
2
  import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';
3
- import { RuntimeElementDeleted, RuntimeElementDropped } from '../types/runtime.actions';
3
+ import { RuntimeElementDeleteEvent, RuntimeElementDropEvent, RuntimeShowSettingsEvent } from '../types/runtime.actions';
4
4
  import { RuntimeService } from './runtime.service';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class RuntimeEditorService {
7
7
  private runtimeService;
8
8
  private editorModeSubj$;
9
- dragMode$: BehaviorSubject<boolean>;
10
- elementDropped$: ReplaySubject<RuntimeElementDropped>;
11
- elementDeleted$: ReplaySubject<RuntimeElementDeleted>;
9
+ onElementDropped$: ReplaySubject<RuntimeElementDropEvent>;
10
+ onElementDeleted$: ReplaySubject<RuntimeElementDeleteEvent>;
11
+ onElementSettingsToggled$: ReplaySubject<RuntimeShowSettingsEvent>;
12
12
  editorMode$: Observable<boolean>;
13
+ dragMode$: BehaviorSubject<boolean>;
14
+ selectedElementPath$: BehaviorSubject<string | null>;
13
15
  constructor(runtimeService: RuntimeService);
14
16
  applyPatch$(patch: Patch): Observable<void>;
15
17
  toggleEditorMode(): void;
@@ -1,9 +1,12 @@
1
1
  import { ElementMetadata } from '../../../types';
2
- export interface RuntimeElementDropped {
2
+ export interface RuntimeElementDropEvent {
3
3
  element: ElementMetadata;
4
4
  path: string;
5
5
  index: number;
6
6
  }
7
- export interface RuntimeElementDeleted {
7
+ export interface RuntimeElementDeleteEvent {
8
+ path: string;
9
+ }
10
+ export interface RuntimeShowSettingsEvent {
8
11
  path: string;
9
12
  }
@@ -0,0 +1,32 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { ElementComponent } from '../components/element.component';
3
+ import { PluginComponent } from '../components/plugin.component';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ElementHoverPlugin implements PluginComponent, OnDestroy {
6
+ host: ElementComponent;
7
+ private readonly hoverClassName;
8
+ private readonly metadata;
9
+ private readonly appRef;
10
+ private readonly el;
11
+ private readonly document;
12
+ private readonly runtimeEditorService;
13
+ private overlayEl?;
14
+ private isHovered$;
15
+ private isSelected$;
16
+ private destroyed$;
17
+ private mouseOverListenerBound;
18
+ private mouseLeaveListenerBound;
19
+ private clickListenerBound;
20
+ constructor(host: ElementComponent);
21
+ ngOnDestroy(): void;
22
+ private attachListeners;
23
+ private detachListeners;
24
+ private mouseOverListener;
25
+ private clickListener;
26
+ private mouseLeaveListener;
27
+ private addHighlight;
28
+ private removeHighlight;
29
+ private updateHighlight;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElementHoverPlugin, never>;
31
+ static ɵprov: i0.ɵɵInjectableDeclaration<ElementHoverPlugin>;
32
+ }
@@ -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
  }
@@ -2,7 +2,8 @@ import { Dictionary } from 'lodash';
2
2
  import { Entity } from '../engine/models/entity';
3
3
  import { Plugin } from '../engine/models/plugin';
4
4
  import { PageLayout } from './layouts.types';
5
- export type ELEMENT_TYPE = 'CUSTOM' | 'CONTAINER' | 'SERVICE' | 'REFERENCE' | 'PAGE' | 'REGION';
5
+ import { PageType } from './pages.types';
6
+ export type ELEMENT_TYPE = 'CUSTOMIZATION_PAGE' | 'CUSTOM' | 'CONTAINER' | 'SERVICE' | 'REFERENCE' | 'PAGE' | 'REGION';
6
7
  export type ElementStyleDeclaration = Partial<CSSStyleDeclaration>;
7
8
  export interface ElementConfig {
8
9
  component: typeof Entity;
@@ -10,6 +11,9 @@ export interface ElementConfig {
10
11
  defaultTemplate?: string;
11
12
  suppressTemplate?: boolean;
12
13
  suppressStyles?: boolean;
14
+ builder?: {
15
+ suppressRemovable?: boolean;
16
+ };
13
17
  }
14
18
  export interface ElementModel {
15
19
  /**
@@ -104,6 +108,12 @@ export interface ElementDefaultMetadata {
104
108
  * Used only when `type === PAGE`
105
109
  */
106
110
  layout?: PageLayout;
111
+ /**
112
+ * Page Type
113
+ *
114
+ * Used only when `type === PAGE`
115
+ */
116
+ pageType?: PageType;
107
117
  }
108
118
  export interface ElementMetadata extends Omit<ElementDefaultMetadata, 'children'> {
109
119
  path: string;
@@ -3,4 +3,6 @@ export * from './common.types';
3
3
  export * from './configuration.types';
4
4
  export * from './elements.types';
5
5
  export * from './integration.types';
6
+ export * from './layouts.types';
7
+ export * from './pages.types';
6
8
  export * from './path.types';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * List of available layouts:
2
+ * List of available layouts for Full Page Type:
3
3
  *
4
4
  LAYOUT_1
5
5
  +-------------------------+
@@ -66,9 +66,35 @@
66
66
  | |
67
67
  | |
68
68
  +-------------------------+
69
+ */
70
+ /**
71
+ * List of available layouts for Sidepanel Page Type:
72
+ *
73
+ LAYOUT_7
74
+ +-------------------------+
75
+ | | |
76
+ | | |
77
+ | LEFT | DISABLED |
78
+ | SIDE | PAGE |
79
+ | PANEL | |
80
+ | | |
81
+ | | |
82
+ +-------------------------+
69
83
 
84
+ LAYOUT_8
85
+ +-------------------------+
86
+ | | |
87
+ | | |
88
+ | DISABLED | RIGHT |
89
+ | PAGE | SIDE |
90
+ | | PANEL |
91
+ | | |
92
+ | | |
93
+ +-------------------------+
70
94
  */
71
- export type PageLayout = 'LAYOUT_1' | 'LAYOUT_2' | 'LAYOUT_3' | 'LAYOUT_4' | 'LAYOUT_5' | 'LAYOUT_6';
95
+ export type FullPageLayout = 'LAYOUT_1' | 'LAYOUT_2' | 'LAYOUT_3' | 'LAYOUT_4' | 'LAYOUT_5' | 'LAYOUT_6';
96
+ export type SidepanelPageLayout = 'LAYOUT_7' | 'LAYOUT_8';
97
+ export type PageLayout = FullPageLayout | SidepanelPageLayout;
72
98
  export interface PageLayoutConfig {
73
99
  styles?: string;
74
100
  }
@@ -0,0 +1 @@
1
+ export type PageType = 'FULL_PAGE' | 'SIDEPANEL';
@@ -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
- constructor(uiDef: UIDefinitionMetadata, elements: ElementMetadata[], sharedElements?: ElementMetadata[]);
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
  }
@@ -0,0 +1,2 @@
1
+ import { ElementMetadata } from '../types';
2
+ export declare const getScriptClass: (metadata?: ElementMetadata) => object | undefined;
@@ -1,7 +1,7 @@
1
1
  import * as angularCore from '@angular/core';
2
2
  import * as angularForms from '@angular/forms';
3
3
  import { CatalogApiService, ConfigurationSettingsApiService, DeltaApiService, DocumentAttachmentApiService, DocumentTemplatesApiService, GuidedSellingApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService, ShoppingCartSettingsApiService } from '@veloceapps/api';
4
- import { ToastService } from '@veloceapps/components';
4
+ import { ToastService, ToastType } from '@veloceapps/components';
5
5
  import { Operator, Predicate, parseJsonSafely } from '@veloceapps/core';
6
6
  import { ConfigurationService, ContextService, FlowConfigurationService, LineItemWorker, ProductImagesService, QuoteDraftService } from '@veloceapps/sdk/core';
7
7
  import lodash from 'lodash';
@@ -25,6 +25,7 @@ export declare const vendorMap: {
25
25
  };
26
26
  '@veloceapps/components': {
27
27
  ToastService: typeof ToastService;
28
+ ToastType: typeof ToastType;
28
29
  };
29
30
  '@veloceapps/api': {
30
31
  SalesforceApiService: typeof SalesforceApiService;
@@ -45,7 +46,7 @@ export declare const vendorMap: {
45
46
  findLineItemWithComparator: (lineItems: import("@veloceapps/core").LineItem[], comparator: (li: import("@veloceapps/core").LineItem) => boolean) => import("@veloceapps/core").LineItem | undefined;
46
47
  insertLineItem: (lineItem: import("@veloceapps/core").LineItem, parentId: string, toInsert: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
47
48
  removeLineItem: (lineItem: import("@veloceapps/core").LineItem, idToRemove: string) => import("@veloceapps/core").LineItem;
48
- replaceLineItem: (lineItem: import("@veloceapps/core").LineItem, replaceTo: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
49
+ replaceLineItem: (lineItem: import("@veloceapps/core").LineItem, replaceTo: import("@veloceapps/core").LineItem, skipCardinalityCalculation?: boolean | undefined) => import("@veloceapps/core").LineItem;
49
50
  calculateCardinalityVariables: (lineItems: import("@veloceapps/core").LineItem[]) => Map<string, number>;
50
51
  recalculateCardinalityVariables: (original: import("@veloceapps/core").LineItem, updated: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
51
52
  mapAttributes: (attributes: import("@veloceapps/core").Attribute[]) => lodash.Dictionary<any>;
@@ -57,7 +58,7 @@ export declare const vendorMap: {
57
58
  patchAttributes: (rootLineItem: import("@veloceapps/core").LineItem, id: string, attrs: {
58
59
  name: string;
59
60
  value: any;
60
- }[]) => import("@veloceapps/core").LineItem;
61
+ }[], skipCardinalityCalculation?: boolean | undefined) => import("@veloceapps/core").LineItem;
61
62
  getAttributeValue: (attributes: import("@veloceapps/core").Attribute[], name: string) => any;
62
63
  generateLineItem: (port: string, type: string, parentId: string, attributes?: {
63
64
  name: string;
@@ -68,6 +69,8 @@ export declare const vendorMap: {
68
69
  list: number;
69
70
  };
70
71
  generateModifiedAssetsMap: (lineItems: import("@veloceapps/core").LineItem[]) => Record<string, boolean>;
72
+ getOriginParent: (lineItems: import("@veloceapps/core").LineItem[], currentLineItem: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem | undefined;
73
+ isLineItemModified: <T_1 extends Pick<import("@veloceapps/core").LineItem, "actionCode" | "status">>(lineItem: T_1) => boolean;
71
74
  multiplyLineItems: (lineItem: import("@veloceapps/core").LineItem, qty: number, split: boolean) => import("@veloceapps/core").LineItem[];
72
75
  ConfigurationService: typeof ConfigurationService;
73
76
  QuoteDraftService: typeof QuoteDraftService;
@@ -99,9 +102,8 @@ export declare const vendorMap: {
99
102
  DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
100
103
  UI_DEFINITION_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/core").UIDefinitionMetadata>;
101
104
  ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata>;
102
- SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata>;
105
+ SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata | undefined>;
103
106
  ELEMENT_CONFIG: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementConfig>;
104
- VENDOR_MAP: angularCore.InjectionToken<lodash.Dictionary<any>>;
105
107
  };
106
108
  };
107
109
  export type VendorMap = typeof vendorMap;
@@ -1,5 +1,5 @@
1
1
  import { ConfigurationApiService } from '@veloceapps/api';
2
- import { Charge, CompiledPricePlan, ConfigurationContext, LineItem, RuntimeModel } from '@veloceapps/core';
2
+ import { Charge, CompiledPricePlan, ConfigurationContext, LineItem, PatchLineItemOptions, RuntimeModel } from '@veloceapps/core';
3
3
  import { Dictionary } from 'lodash';
4
4
  import { MessageService } from 'primeng/api';
5
5
  import { DialogService } from 'primeng/dynamicdialog';
@@ -24,8 +24,8 @@ export declare class ConfigurationService {
24
24
  hasUnsavedChanges: boolean;
25
25
  constructor(quoteDraftService: QuoteDraftService, runtimeService: ConfigurationRuntimeService, contextService: ContextService, configurationApiService: ConfigurationApiService, messageService: MessageService, dialogService: DialogService);
26
26
  reset(): void;
27
- patch$(lineItem: LineItem): Observable<LineItem>;
28
- patch(lineItem: LineItem): void;
27
+ patch$(lineItem: LineItem, options?: PatchLineItemOptions): Observable<LineItem>;
28
+ patch(lineItem: LineItem, options?: PatchLineItemOptions): void;
29
29
  setConfigurableRamp(lineItem: LineItem): void;
30
30
  get(): Observable<LineItem | undefined>;
31
31
  getSnapshot(): LineItem | undefined;
@@ -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
- version: number;
23
+ customization?: any;
19
24
  }
20
25
  export interface UIDefinition extends UIDefinitionMetadata {
21
26
  /**
@@ -4,7 +4,7 @@ export declare const findLineItem: (id: string, lineItems: LineItem[]) => LineIt
4
4
  export declare const findLineItemWithComparator: (lineItems: LineItem[], comparator: (li: LineItem) => boolean) => LineItem | undefined;
5
5
  export declare const insertLineItem: (lineItem: LineItem, parentId: string, toInsert: LineItem) => LineItem;
6
6
  export declare const removeLineItem: (lineItem: LineItem, idToRemove: string) => LineItem;
7
- export declare const replaceLineItem: (lineItem: LineItem, replaceTo: LineItem) => LineItem;
7
+ export declare const replaceLineItem: (lineItem: LineItem, replaceTo: LineItem, skipCardinalityCalculation?: boolean) => LineItem;
8
8
  export declare const calculateCardinalityVariables: (lineItems: LineItem[]) => Map<string, number>;
9
9
  export declare const recalculateCardinalityVariables: (original: LineItem, updated: LineItem) => LineItem;
10
10
  export declare const mapAttributes: (attributes: Attribute[]) => Dictionary<any>;
@@ -16,7 +16,7 @@ export declare const upsertAttributes: (originalAttributes: Attribute[], attribu
16
16
  export declare const patchAttributes: (rootLineItem: LineItem, id: string, attrs: {
17
17
  name: string;
18
18
  value: any;
19
- }[]) => LineItem;
19
+ }[], skipCardinalityCalculation?: boolean) => LineItem;
20
20
  export declare const getAttributeValue: (attributes: Attribute[], name: string) => any;
21
21
  export declare const generateLineItem: (port: string, type: string, parentId: string, attributes?: {
22
22
  name: string;
@@ -27,4 +27,6 @@ export declare const getRecommendedPrices: (portDomain: PortDomain, type: string
27
27
  list: number;
28
28
  };
29
29
  export declare const generateModifiedAssetsMap: (lineItems: LineItem[]) => Record<string, boolean>;
30
+ export declare const getOriginParent: (lineItems: LineItem[], currentLineItem: LineItem) => LineItem | undefined;
31
+ export declare const isLineItemModified: <T extends Pick<LineItem, "actionCode" | "status">>(lineItem: T) => boolean;
30
32
  export declare const multiplyLineItems: (lineItem: LineItem, qty: number, split: boolean) => LineItem[];
@@ -4,9 +4,9 @@ export declare class LineItemWorker {
4
4
  constructor(src: LineItem);
5
5
  insert(parentId: string, toInsert: LineItem): LineItemWorker;
6
6
  remove(id: string): LineItemWorker;
7
- replace(toReplace: LineItem): LineItemWorker;
7
+ replace(toReplace: LineItem, skipCardinalityCalculation?: boolean): LineItemWorker;
8
8
  patchAttribute(attrs: {
9
9
  name: string;
10
10
  value: any;
11
- }[], id?: string): LineItemWorker;
11
+ }[], id?: string, skipCardinalityCalculation?: boolean): LineItemWorker;
12
12
  }
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFOLElBQVksVUFVWDtBQVZELFdBQVksVUFBVTtJQUNwQiwrREFBaUQsQ0FBQTtJQUNqRCx1REFBeUMsQ0FBQTtJQUN6QyxtRUFBcUQsQ0FBQTtJQUNyRCxtRkFBcUUsQ0FBQTtJQUNyRSxxREFBdUMsQ0FBQTtJQUN2Qyx1REFBeUMsQ0FBQTtJQUN6Qyx1REFBeUMsQ0FBQTtJQUN6QywyQ0FBNkIsQ0FBQTtJQUM3Qiw2Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBVlcsVUFBVSxLQUFWLFVBQVUsUUFVckI7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7SUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7SUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtDQUNuQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLEVBQUUsVUFBVSxDQUFDLHdCQUF3QjtDQUMxQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN2RSxJQUFJLEVBQUUsVUFBVSxDQUFDLGdDQUFnQztDQUNsRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN4RCxJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQjtDQUNuQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7Q0FDOUIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBc0IsRUFBRSxDQUFDLENBQUM7SUFDMUQsSUFBSSxFQUFFLFVBQVUsQ0FBQyxhQUFhO0NBQy9CLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBdUIsRUFBcUIsRUFBRSxDQUFDLENBQUM7SUFDakYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0I7SUFDbkMsT0FBTztDQUNSLENBQUMsQ0FBQztBQUVILE1BQU0sS0FBVyxTQUFTLENBYXpCO0FBYkQsV0FBaUIsU0FBUztJQUNYLG9CQUFVLEdBQUcsa0JBQWtCLENBQUM7SUFFN0M7Ozs7O09BS0c7SUFDVSxrQkFBUSxHQUFHLENBQUMsUUFBZ0IsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSSxFQUFFLFVBQUEsVUFBVTtRQUNoQixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUU7S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxFQWJnQixTQUFTLEtBQVQsU0FBUyxRQWF6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2UgKi9cbmltcG9ydCB7IEludGVncmF0aW9uQWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBlbnVtIEZsb3dBY3Rpb24ge1xuICBGTE9XX0NPTkZJR1VSRV9QUk9EVUNUID0gJ0ZMT1dfQ09ORklHVVJFX1BST0RVQ1QnLFxuICBGTE9XX05BVklHQVRFX0JBQ0sgPSAnRkxPV19OQVZJR0FURV9CQUNLJyxcbiAgRkxPV19OQVZJR0FURV9UT19DQVRBTE9HID0gJ0ZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRycsXG4gIEZMT1dfQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OID0gJ0ZMT1dfQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OJyxcbiAgRkxPV19PUEVOX0RPQ19HRU4gPSAnRkxPV19PUEVOX0RPQ19HRU4nLFxuICBGTE9XX0NMT1NFX0RPQ19HRU4gPSAnRkxPV19DTE9TRV9ET0NfR0VOJyxcbiAgRkxPV19TV0lUQ0hfT0JKRUNUID0gJ0ZMT1dfU1dJVENIX09CSkVDVCcsXG4gIFJFTU9URV9BUFBMWSA9ICdSRU1PVEVfQVBQTFknLFxuICBSRU1PVEVfQ0FOQ0VMID0gJ1JFTU9URV9DQU5DRUwnLFxufVxuXG5leHBvcnQgY29uc3QgQ29uZmlndXJlUHJvZHVjdEFjdGlvbiA9ICh7XG4gIGxpbmVJdGVtSWQsXG4gIHByb2R1Y3RJZCxcbn06IHtcbiAgbGluZUl0ZW1JZD86IHN0cmluZztcbiAgcHJvZHVjdElkPzogc3RyaW5nO1xufSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19DT05GSUdVUkVfUFJPRFVDVCxcbiAgcGF5bG9hZDogeyBsaW5lSXRlbUlkLCBwcm9kdWN0SWQgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTmF2aWdhdGVCYWNrQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19OQVZJR0FURV9CQUNLLFxufSk7XG5cbmV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQ2F0YWxvZ0FjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyxcbn0pO1xuXG5leHBvcnQgY29uc3QgQXBwbHlQcm9kdWN0Q29uZmlndXJhdGlvbkFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OLFxufSk7XG5cbmV4cG9ydCBjb25zdCBPcGVuRG9jR2VuQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19PUEVOX0RPQ19HRU4sXG59KTtcblxuZXhwb3J0IGNvbnN0IENsb3NlRG9jR2VuQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19DTE9TRV9ET0NfR0VOLFxufSk7XG5cbmV4cG9ydCBjb25zdCBSZW1vdGVBcHBseUFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9BUFBMWSxcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVtb3RlQ2FuY2VsQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uUkVNT1RFX0NBTkNFTCxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3dpdGNoT2JqZWN0QWN0aW9uID0gKHBheWxvYWQ6IHsgaWQ6IHN0cmluZyB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX1NXSVRDSF9PQkpFQ1QsXG4gIHBheWxvYWQsXG59KTtcblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcblxuICAvKipcbiAgICogTmF2aWdhdGUgVUkgZGVmaW5pdGlvbiB0byBhIHNwZWNpZmljIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIHBhZ2VOYW1lIG5hbWUgb2YgdGhlIHBhZ2VcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IEdvVG9QYWdlID0gKHBhZ2VOYW1lOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEdPX1RPX1BBR0UsXG4gICAgcGF5bG9hZDogeyBwYWdlTmFtZSB9LFxuICB9KTtcbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFOLElBQVksVUFVWDtBQVZELFdBQVksVUFBVTtJQUNwQiwrREFBaUQsQ0FBQTtJQUNqRCx1REFBeUMsQ0FBQTtJQUN6QyxtRUFBcUQsQ0FBQTtJQUNyRCxtRkFBcUUsQ0FBQTtJQUNyRSxxREFBdUMsQ0FBQTtJQUN2Qyx1REFBeUMsQ0FBQTtJQUN6Qyx1REFBeUMsQ0FBQTtJQUN6QywyQ0FBNkIsQ0FBQTtJQUM3Qiw2Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBVlcsVUFBVSxLQUFWLFVBQVUsUUFVckI7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7SUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7SUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtDQUNuQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLEVBQUUsVUFBVSxDQUFDLHdCQUF3QjtDQUMxQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN2RSxJQUFJLEVBQUUsVUFBVSxDQUFDLGdDQUFnQztDQUNsRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN4RCxJQUFJLEVBQUUsVUFBVSxDQUFDLGlCQUFpQjtDQUNuQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtDQUNwQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7Q0FDOUIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBc0IsRUFBRSxDQUFDLENBQUM7SUFDMUQsSUFBSSxFQUFFLFVBQVUsQ0FBQyxhQUFhO0NBQy9CLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBdUIsRUFBcUIsRUFBRSxDQUFDLENBQUM7SUFDakYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0I7SUFDbkMsT0FBTztDQUNSLENBQUMsQ0FBQztBQUVILE1BQU0sS0FBVyxTQUFTLENBdUJ6QjtBQXZCRCxXQUFpQixTQUFTO0lBQ1gsb0JBQVUsR0FBRyxrQkFBa0IsQ0FBQztJQUNoQyw4QkFBb0IsR0FBRyw0QkFBNEIsQ0FBQztJQUVqRTs7OztPQUlHO0lBQ1Usa0JBQVEsR0FBRyxDQUFDLFFBQWdCLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksRUFBRSxVQUFBLFVBQVU7UUFDaEIsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQ3RCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDVSw2QkFBbUIsR0FBRyxDQUFDLEtBQVUsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxFQUFFLFVBQUEsb0JBQW9CO1FBQzFCLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRTtLQUNuQixDQUFDLENBQUM7QUFDTCxDQUFDLEVBdkJnQixTQUFTLEtBQVQsU0FBUyxRQXVCekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG5pbXBvcnQgeyBJbnRlZ3JhdGlvbkFjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZW51bSBGbG93QWN0aW9uIHtcbiAgRkxPV19DT05GSUdVUkVfUFJPRFVDVCA9ICdGTE9XX0NPTkZJR1VSRV9QUk9EVUNUJyxcbiAgRkxPV19OQVZJR0FURV9CQUNLID0gJ0ZMT1dfTkFWSUdBVEVfQkFDSycsXG4gIEZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyA9ICdGTE9XX05BVklHQVRFX1RPX0NBVEFMT0cnLFxuICBGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTiA9ICdGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTicsXG4gIEZMT1dfT1BFTl9ET0NfR0VOID0gJ0ZMT1dfT1BFTl9ET0NfR0VOJyxcbiAgRkxPV19DTE9TRV9ET0NfR0VOID0gJ0ZMT1dfQ0xPU0VfRE9DX0dFTicsXG4gIEZMT1dfU1dJVENIX09CSkVDVCA9ICdGTE9XX1NXSVRDSF9PQkpFQ1QnLFxuICBSRU1PVEVfQVBQTFkgPSAnUkVNT1RFX0FQUExZJyxcbiAgUkVNT1RFX0NBTkNFTCA9ICdSRU1PVEVfQ0FOQ0VMJyxcbn1cblxuZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSAoe1xuICBsaW5lSXRlbUlkLFxuICBwcm9kdWN0SWQsXG59OiB7XG4gIGxpbmVJdGVtSWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbn0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ09ORklHVVJFX1BST0RVQ1QsXG4gIHBheWxvYWQ6IHsgbGluZUl0ZW1JZCwgcHJvZHVjdElkIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IE5hdmlnYXRlQmFja0FjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfQkFDSyxcbn0pO1xuXG5leHBvcnQgY29uc3QgTmF2aWdhdGVUb0NhdGFsb2dBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG59KTtcblxuZXhwb3J0IGNvbnN0IEFwcGx5UHJvZHVjdENvbmZpZ3VyYXRpb25BY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbn0pO1xuXG5leHBvcnQgY29uc3QgT3BlbkRvY0dlbkFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfT1BFTl9ET0NfR0VOLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDbG9zZURvY0dlbkFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ0xPU0VfRE9DX0dFTixcbn0pO1xuXG5leHBvcnQgY29uc3QgUmVtb3RlQXBwbHlBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFksXG59KTtcblxuZXhwb3J0IGNvbnN0IFJlbW90ZUNhbmNlbEFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN3aXRjaE9iamVjdEFjdGlvbiA9IChwYXlsb2FkOiB7IGlkOiBzdHJpbmcgfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICBwYXlsb2FkLFxufSk7XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ21zQWN0aW9uIHtcbiAgZXhwb3J0IGNvbnN0IEdPX1RPX1BBR0UgPSAnW0NNU11fR09fVE9fUEFHRSc7XG4gIGV4cG9ydCBjb25zdCBVUERBVEVfQ1VTVE9NSVpBVElPTiA9ICdbQ01TXV9VUERBVEVfQ1VTVE9NSVpBVElPTic7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xufVxuIl19
@@ -1,4 +1,5 @@
1
1
  import { ElementComponent } from './components/element.component';
2
+ import { ElementHoverPlugin } from './plugins/element-hover.plugin';
2
3
  import { IOPlugin } from './plugins/io.plugin';
3
4
  import { RegionPlugin } from './plugins/region.plugin';
4
5
  import { ScriptPlugin } from './plugins/script.plugin';
@@ -6,10 +7,14 @@ import { ScriptPlugin } from './plugins/script.plugin';
6
7
  * ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.
7
8
  */
8
9
  export const CONFIG = {
9
- CUSTOM: {
10
+ CUSTOMIZATION_PAGE: {
10
11
  component: ElementComponent,
11
12
  plugins: [IOPlugin, ScriptPlugin],
12
13
  },
14
+ CUSTOM: {
15
+ component: ElementComponent,
16
+ plugins: [IOPlugin, ElementHoverPlugin, ScriptPlugin],
17
+ },
13
18
  CONTAINER: {
14
19
  component: ElementComponent,
15
20
  defaultTemplate: '<element-children></element-children>',
@@ -30,11 +35,17 @@ export const CONFIG = {
30
35
  component: ElementComponent,
31
36
  defaultTemplate: '<element-children></element-children>',
32
37
  plugins: [IOPlugin, ScriptPlugin],
38
+ builder: {
39
+ suppressRemovable: true,
40
+ },
33
41
  },
34
42
  REGION: {
35
43
  component: ElementComponent,
36
44
  defaultTemplate: '<element-children></element-children>',
37
- plugins: [IOPlugin, ScriptPlugin, RegionPlugin],
45
+ plugins: [IOPlugin, RegionPlugin, ElementHoverPlugin, ScriptPlugin],
46
+ builder: {
47
+ suppressRemovable: true,
48
+ },
38
49
  },
39
50
  };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2Ntcy5lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RDs7R0FFRztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBNkM7SUFDOUQsTUFBTSxFQUFFO1FBQ04sU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO0tBQ2xDO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixlQUFlLEVBQUUsdUNBQXVDO1FBQ3hELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNqQyxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRSxJQUFJO0tBQ3JCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ2pDLGdCQUFnQixFQUFFLElBQUk7S0FDdkI7SUFDRCxJQUFJLEVBQUU7UUFDSixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztLQUNsQztJQUNELE1BQU0sRUFBRTtRQUNOLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsZUFBZSxFQUFFLHVDQUF1QztRQUN4RCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztLQUNoRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElPUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2lvLnBsdWdpbic7XG5pbXBvcnQgeyBSZWdpb25QbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvcmVnaW9uLnBsdWdpbic7XG5pbXBvcnQgeyBTY3JpcHRQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvc2NyaXB0LnBsdWdpbic7XG5pbXBvcnQgeyBFTEVNRU5UX1RZUEUsIEVsZW1lbnRDb25maWcgfSBmcm9tICcuL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbi8qXG4gKiBTY3JpcHRQbHVnaW4gbXVzdCBhbHdheXMgYmUgdGhlIGxhc3QgcGx1Z2luIGluIHRoZSBsaXN0IHRvIG1ha2Ugc3VyZSB1c2VyIGNvZGUgaXMgcnVubmluZyBhZnRlciBhbGwgcHJlLWluaXRpYWxpemVycy5cbiAqL1xuXG5leHBvcnQgY29uc3QgQ09ORklHOiB7IFtrZXkgaW4gRUxFTUVOVF9UWVBFXTogRWxlbWVudENvbmZpZyB9ID0ge1xuICBDVVNUT006IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICB9LFxuICBDT05UQUlORVI6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgZGVmYXVsdFRlbXBsYXRlOiAnPGVsZW1lbnQtY2hpbGRyZW4+PC9lbGVtZW50LWNoaWxkcmVuPicsXG4gICAgcGx1Z2luczogW1NjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIFNFUlZJQ0U6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICAgIHN1cHByZXNzVGVtcGxhdGU6IHRydWUsXG4gICAgc3VwcHJlc3NTdHlsZXM6IHRydWUsXG4gIH0sXG4gIFJFRkVSRU5DRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gICAgc3VwcHJlc3NUZW1wbGF0ZTogdHJ1ZSxcbiAgfSxcbiAgUEFHRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBkZWZhdWx0VGVtcGxhdGU6ICc8ZWxlbWVudC1jaGlsZHJlbj48L2VsZW1lbnQtY2hpbGRyZW4+JyxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIFJFR0lPTjoge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBkZWZhdWx0VGVtcGxhdGU6ICc8ZWxlbWVudC1jaGlsZHJlbj48L2VsZW1lbnQtY2hpbGRyZW4+JyxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbiwgUmVnaW9uUGx1Z2luXSxcbiAgfSxcbn07XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2Ntcy5lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RDs7R0FFRztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBNkM7SUFDOUQsa0JBQWtCLEVBQUU7UUFDbEIsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO0tBQ2xDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDO0tBQ3REO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixlQUFlLEVBQUUsdUNBQXVDO1FBQ3hELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNqQyxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRSxJQUFJO0tBQ3JCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ2pDLGdCQUFnQixFQUFFLElBQUk7S0FDdkI7SUFDRCxJQUFJLEVBQUU7UUFDSixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNqQyxPQUFPLEVBQUU7WUFDUCxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLENBQUM7UUFDbkUsT0FBTyxFQUFFO1lBQ1AsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxlbWVudEhvdmVyUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2VsZW1lbnQtaG92ZXIucGx1Z2luJztcbmltcG9ydCB7IElPUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2lvLnBsdWdpbic7XG5pbXBvcnQgeyBSZWdpb25QbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvcmVnaW9uLnBsdWdpbic7XG5pbXBvcnQgeyBTY3JpcHRQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvc2NyaXB0LnBsdWdpbic7XG5pbXBvcnQgeyBFTEVNRU5UX1RZUEUsIEVsZW1lbnRDb25maWcgfSBmcm9tICcuL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbi8qXG4gKiBTY3JpcHRQbHVnaW4gbXVzdCBhbHdheXMgYmUgdGhlIGxhc3QgcGx1Z2luIGluIHRoZSBsaXN0IHRvIG1ha2Ugc3VyZSB1c2VyIGNvZGUgaXMgcnVubmluZyBhZnRlciBhbGwgcHJlLWluaXRpYWxpemVycy5cbiAqL1xuXG5leHBvcnQgY29uc3QgQ09ORklHOiB7IFtrZXkgaW4gRUxFTUVOVF9UWVBFXTogRWxlbWVudENvbmZpZyB9ID0ge1xuICBDVVNUT01JWkFUSU9OX1BBR0U6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICB9LFxuICBDVVNUT006IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBFbGVtZW50SG92ZXJQbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIENPTlRBSU5FUjoge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBkZWZhdWx0VGVtcGxhdGU6ICc8ZWxlbWVudC1jaGlsZHJlbj48L2VsZW1lbnQtY2hpbGRyZW4+JyxcbiAgICBwbHVnaW5zOiBbU2NyaXB0UGx1Z2luXSxcbiAgfSxcbiAgU0VSVklDRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gICAgc3VwcHJlc3NUZW1wbGF0ZTogdHJ1ZSxcbiAgICBzdXBwcmVzc1N0eWxlczogdHJ1ZSxcbiAgfSxcbiAgUkVGRVJFTkNFOiB7XG4gICAgY29tcG9uZW50OiBFbGVtZW50Q29tcG9uZW50LFxuICAgIHBsdWdpbnM6IFtJT1BsdWdpbiwgU2NyaXB0UGx1Z2luXSxcbiAgICBzdXBwcmVzc1RlbXBsYXRlOiB0cnVlLFxuICB9LFxuICBQQUdFOiB7XG4gICAgY29tcG9uZW50OiBFbGVtZW50Q29tcG9uZW50LFxuICAgIGRlZmF1bHRUZW1wbGF0ZTogJzxlbGVtZW50LWNoaWxkcmVuPjwvZWxlbWVudC1jaGlsZHJlbj4nLFxuICAgIHBsdWdpbnM6IFtJT1BsdWdpbiwgU2NyaXB0UGx1Z2luXSxcbiAgICBidWlsZGVyOiB7XG4gICAgICBzdXBwcmVzc1JlbW92YWJsZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICBSRUdJT046IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgZGVmYXVsdFRlbXBsYXRlOiAnPGVsZW1lbnQtY2hpbGRyZW4+PC9lbGVtZW50LWNoaWxkcmVuPicsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBSZWdpb25QbHVnaW4sIEVsZW1lbnRIb3ZlclBsdWdpbiwgU2NyaXB0UGx1Z2luXSxcbiAgICBidWlsZGVyOiB7XG4gICAgICBzdXBwcmVzc1JlbW92YWJsZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
@@ -173,7 +173,45 @@ export const LAYOUT = {
173
173
  }
174
174
  }
175
175
  /* end of LAYOUT_6 styles */
176
+ `,
177
+ },
178
+ LAYOUT_7: {
179
+ styles: `
180
+ /* start of LAYOUT_7 styles */
181
+ :host {
182
+ height: 100%;
183
+ display: grid;
184
+ grid: "left" 1fr / 0.3fr;
185
+ gap: 10px;
186
+ padding: 10px;
187
+ justify-content: start;
188
+ }
189
+ :host ::ng-deep element-children > vl-cms-element-renderer {
190
+ &:nth-child(1) > vl-element {
191
+ grid-area: left;
192
+ }
193
+ }
194
+ /* end of LAYOUT_7 styles */
195
+ `,
196
+ },
197
+ LAYOUT_8: {
198
+ styles: `
199
+ /* start of LAYOUT_8 styles */
200
+ :host {
201
+ height: 100%;
202
+ display: grid;
203
+ grid: "right" 1fr / 0.3fr;
204
+ gap: 10px;
205
+ padding: 10px;
206
+ justify-content: end;
207
+ }
208
+ :host ::ng-deep element-children > vl-cms-element-renderer {
209
+ &:nth-child(1) > vl-element {
210
+ grid-area: right;
211
+ }
212
+ }
213
+ /* end of LAYOUT_8 styles */
176
214
  `,
177
215
  },
178
216
  };
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmxheW91dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmxheW91dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUE4QztJQUMvRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0NYO0tBQ0U7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEJYO0tBQ0U7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQlg7S0FDRTtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlTGF5b3V0LCBQYWdlTGF5b3V0Q29uZmlnIH0gZnJvbSAnLi90eXBlcy9sYXlvdXRzLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IExBWU9VVDogeyBba2V5IGluIFBhZ2VMYXlvdXRdOiBQYWdlTGF5b3V0Q29uZmlnIH0gPSB7XG4gIExBWU9VVF8xOiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfMSBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwiaGVhZGVyXCIgYXV0b1xuICAgIFwibWFpblwiIDFmclxuICAgIFwiZm9vdGVyXCIgYXV0b1xuICAgIC8gMWZyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbjpob3N0IDo6bmctZGVlcCBlbGVtZW50LWNoaWxkcmVuID4gdmwtY21zLWVsZW1lbnQtcmVuZGVyZXIge1xuICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBoZWFkZXI7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogbWFpbjtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDMpID4gdmwtZWxlbWVudCB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBncmlkLWFyZWE6IGZvb3RlcjtcbiAgfVxufVxuLyogZW5kIG9mIExBWU9VVF8xIHN0eWxlcyAqL1xuYCxcbiAgfSxcbiAgTEFZT1VUXzI6IHtcbiAgICBzdHlsZXM6IGBcbi8qIHN0YXJ0IG9mIExBWU9VVF8yIHN0eWxlcyAqL1xuOmhvc3Qge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQ6XG4gICAgXCJoZWFkZXIgaGVhZGVyXCIgYXV0b1xuICAgIFwibGVmdCByaWdodFwiIDFmclxuICAgIFwiZm9vdGVyIGZvb3RlclwiIGF1dG9cbiAgICAvIDFmciAxZnI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICY6bnRoLWNoaWxkKDEpID4gdmwtZWxlbWVudCB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBncmlkLWFyZWE6IGhlYWRlcjtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDIpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiBsZWZ0O1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMykgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IHJpZ2h0O1xuICB9XG5cbiAgJjpudGgtY2hpbGQoNCkgPiB2bC1lbGVtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIGdyaWQtYXJlYTogZm9vdGVyO1xuICB9XG59XG4vKiBlbmQgb2YgTEFZT1VUXzIgc3R5bGVzICovXG5gLFxuICB9LFxuICBMQVlPVVRfMzoge1xuICAgIHN0eWxlczogYFxuLyogc3RhcnQgb2YgTEFZT1VUXzMgc3R5bGVzICovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZDpcbiAgICBcIm1haW5cIiAxZnJcbiAgICBcImZvb3RlclwiIGF1dG9cbiAgICAvIDFmcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgZWxlbWVudC1jaGlsZHJlbiA+IHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIHtcbiAgJjpudGgtY2hpbGQoMSkgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IG1haW47XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBmb290ZXI7XG4gIH1cbn1cbi8qIGVuZCBvZiBMQVlPVVRfMyBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF80OiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfNCBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwibGVmdCByaWdodFwiIDFmclxuICAgIFwiZm9vdGVyIGZvb3RlclwiIGF1dG9cbiAgICAvIGF1dG8gYXV0bztcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgZWxlbWVudC1jaGlsZHJlbiA+IHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIHtcbiAgJjpudGgtY2hpbGQoMSkgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IGxlZnQ7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogcmlnaHQ7XG4gIH1cblxuICAmOm50aC1jaGlsZCgzKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBmb290ZXI7XG4gIH1cbn1cbi8qIGVuZCBvZiBMQVlPVVRfNCBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF81OiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfNSBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwiaGVhZGVyXCIgYXV0b1xuICAgIFwibWFpblwiIDFmclxuICAgIC8gMWZyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbjpob3N0IDo6bmctZGVlcCBlbGVtZW50LWNoaWxkcmVuID4gdmwtY21zLWVsZW1lbnQtcmVuZGVyZXIge1xuICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBoZWFkZXI7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogbWFpbjtcbiAgfVxufVxuLyogZW5kIG9mIExBWU9VVF81IHN0eWxlcyAqL1xuYCxcbiAgfSxcbiAgTEFZT1VUXzY6IHtcbiAgICBzdHlsZXM6IGBcbi8qIHN0YXJ0IG9mIExBWU9VVF82IHN0eWxlcyAqL1xuOmhvc3Qge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQ6XG4gICAgXCJtYWluXCIgMWZyXG4gICAgLyAxZnI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICY6bnRoLWNoaWxkKDEpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiBtYWluO1xuICB9XG59XG4vKiBlbmQgb2YgTEFZT1VUXzYgc3R5bGVzICovXG5gLFxuICB9LFxufTtcbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmxheW91dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmxheW91dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUE4QztJQUMvRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0NYO0tBQ0U7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEJYO0tBQ0U7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQlg7S0FDRTtJQUNELFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztDQWdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JYO0tBQ0U7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZUxheW91dCwgUGFnZUxheW91dENvbmZpZyB9IGZyb20gJy4vdHlwZXMvbGF5b3V0cy50eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBMQVlPVVQ6IHsgW2tleSBpbiBQYWdlTGF5b3V0XTogUGFnZUxheW91dENvbmZpZyB9ID0ge1xuICBMQVlPVVRfMToge1xuICAgIHN0eWxlczogYFxuLyogc3RhcnQgb2YgTEFZT1VUXzEgc3R5bGVzICovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZDpcbiAgICBcImhlYWRlclwiIGF1dG9cbiAgICBcIm1haW5cIiAxZnJcbiAgICBcImZvb3RlclwiIGF1dG9cbiAgICAvIDFmcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgZWxlbWVudC1jaGlsZHJlbiA+IHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIHtcbiAgJjpudGgtY2hpbGQoMSkgPiB2bC1lbGVtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIGdyaWQtYXJlYTogaGVhZGVyO1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMikgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IG1haW47XG4gIH1cblxuICAmOm50aC1jaGlsZCgzKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBmb290ZXI7XG4gIH1cbn1cbi8qIGVuZCBvZiBMQVlPVVRfMSBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF8yOiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfMiBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwiaGVhZGVyIGhlYWRlclwiIGF1dG9cbiAgICBcImxlZnQgcmlnaHRcIiAxZnJcbiAgICBcImZvb3RlciBmb290ZXJcIiBhdXRvXG4gICAgLyAxZnIgMWZyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbjpob3N0IDo6bmctZGVlcCBlbGVtZW50LWNoaWxkcmVuID4gdmwtY21zLWVsZW1lbnQtcmVuZGVyZXIge1xuICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBoZWFkZXI7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogbGVmdDtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDMpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiByaWdodDtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDQpID4gdmwtZWxlbWVudCB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBncmlkLWFyZWE6IGZvb3RlcjtcbiAgfVxufVxuLyogZW5kIG9mIExBWU9VVF8yIHN0eWxlcyAqL1xuYCxcbiAgfSxcbiAgTEFZT1VUXzM6IHtcbiAgICBzdHlsZXM6IGBcbi8qIHN0YXJ0IG9mIExBWU9VVF8zIHN0eWxlcyAqL1xuOmhvc3Qge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQ6XG4gICAgXCJtYWluXCIgMWZyXG4gICAgXCJmb290ZXJcIiBhdXRvXG4gICAgLyAxZnI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICY6bnRoLWNoaWxkKDEpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiBtYWluO1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMikgPiB2bC1lbGVtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIGdyaWQtYXJlYTogZm9vdGVyO1xuICB9XG59XG4vKiBlbmQgb2YgTEFZT1VUXzMgc3R5bGVzICovXG5gLFxuICB9LFxuICBMQVlPVVRfNDoge1xuICAgIHN0eWxlczogYFxuLyogc3RhcnQgb2YgTEFZT1VUXzQgc3R5bGVzICovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZDpcbiAgICBcImxlZnQgcmlnaHRcIiAxZnJcbiAgICBcImZvb3RlciBmb290ZXJcIiBhdXRvXG4gICAgLyBhdXRvIGF1dG87XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICY6bnRoLWNoaWxkKDEpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiBsZWZ0O1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMikgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IHJpZ2h0O1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMykgPiB2bC1lbGVtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIGdyaWQtYXJlYTogZm9vdGVyO1xuICB9XG59XG4vKiBlbmQgb2YgTEFZT1VUXzQgc3R5bGVzICovXG5gLFxuICB9LFxuICBMQVlPVVRfNToge1xuICAgIHN0eWxlczogYFxuLyogc3RhcnQgb2YgTEFZT1VUXzUgc3R5bGVzICovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZDpcbiAgICBcImhlYWRlclwiIGF1dG9cbiAgICBcIm1haW5cIiAxZnJcbiAgICAvIDFmcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgZWxlbWVudC1jaGlsZHJlbiA+IHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIHtcbiAgJjpudGgtY2hpbGQoMSkgPiB2bC1lbGVtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIGdyaWQtYXJlYTogaGVhZGVyO1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMikgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IG1haW47XG4gIH1cbn1cbi8qIGVuZCBvZiBMQVlPVVRfNSBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF82OiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfNiBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwibWFpblwiIDFmclxuICAgIC8gMWZyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbjpob3N0IDo6bmctZGVlcCBlbGVtZW50LWNoaWxkcmVuID4gdmwtY21zLWVsZW1lbnQtcmVuZGVyZXIge1xuICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogbWFpbjtcbiAgfVxufVxuLyogZW5kIG9mIExBWU9VVF82IHN0eWxlcyAqL1xuYCxcbiAgfSxcbiAgTEFZT1VUXzc6IHtcbiAgICBzdHlsZXM6IGBcbiAgICAvKiBzdGFydCBvZiBMQVlPVVRfNyBzdHlsZXMgKi9cbiAgICA6aG9zdCB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZDogXCJsZWZ0XCIgMWZyIC8gMC4zZnI7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICB9XG4gICAgOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICAgICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgICAgICBncmlkLWFyZWE6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIGVuZCBvZiBMQVlPVVRfNyBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF84OiB7XG4gICAgc3R5bGVzOiBgXG4gICAgLyogc3RhcnQgb2YgTEFZT1VUXzggc3R5bGVzICovXG4gICAgOmhvc3Qge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQ6IFwicmlnaHRcIiAxZnIgLyAwLjNmcjtcbiAgICAgIGdhcDogMTBweDtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICB9XG4gICAgOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICAgICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgICAgICBncmlkLWFyZWE6IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgICAvKiBlbmQgb2YgTEFZT1VUXzggc3R5bGVzICovXG5gLFxuICB9LFxufTtcbiJdfQ==