@veloceapps/sdk 7.0.0-2 → 7.0.0-3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- import { ElementConfig, ELEMENT_TYPE } from './types/common.types';
1
+ import { ELEMENT_TYPE, ElementConfig } from './types/common.types';
2
2
  export declare const CONFIG: {
3
3
  [key in ELEMENT_TYPE]: ElementConfig;
4
4
  };
@@ -0,0 +1,4 @@
1
+ import { PageLayout, PageLayoutConfig } from './types/layouts.types';
2
+ export declare const LAYOUT: {
3
+ [key in PageLayout]: PageLayoutConfig;
4
+ };
@@ -0,0 +1,17 @@
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 RegionPlugin implements PluginComponent, OnDestroy {
6
+ host: ElementComponent;
7
+ private metadata;
8
+ private document;
9
+ private el;
10
+ private regionNameEl;
11
+ private destroy$;
12
+ constructor(host: ElementComponent);
13
+ ngOnDestroy(): void;
14
+ private addRegionName;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<RegionPlugin, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RegionPlugin, never, never, {}, {}, never>;
17
+ }
@@ -1,7 +1,8 @@
1
1
  import { Dictionary } from 'lodash';
2
2
  import { Entity } from '../engine/models/entity';
3
3
  import { Plugin } from '../engine/models/plugin';
4
- export declare type ELEMENT_TYPE = 'CUSTOM' | 'CONTAINER' | 'SERVICE' | 'REFERENCE';
4
+ import { PageLayout } from './layouts.types';
5
+ export declare type ELEMENT_TYPE = 'CUSTOM' | 'CONTAINER' | 'SERVICE' | 'REFERENCE' | 'PAGE' | 'REGION';
5
6
  export declare type ElementStyleDeclaration = Partial<CSSStyleDeclaration>;
6
7
  export interface ElementConfig {
7
8
  component: typeof Entity;
@@ -97,6 +98,12 @@ export interface ElementDefaultMetadata {
97
98
  * Contains styles configurable from UI builder
98
99
  */
99
100
  configuredStyles?: ElementStyleDeclaration;
101
+ /**
102
+ * Page layout
103
+ *
104
+ * Used only when `type === PAGE`
105
+ */
106
+ layout?: PageLayout;
100
107
  }
101
108
  export interface ElementMetadata extends Omit<ElementDefaultMetadata, 'children'> {
102
109
  path?: string;
@@ -3,5 +3,4 @@ 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 './metrics.types';
7
6
  export * from './path.types';
@@ -0,0 +1,74 @@
1
+ /**
2
+ * List of available layouts:
3
+ *
4
+ LAYOUT_1
5
+ +-------------------------+
6
+ | 1. HEADER |
7
+ |-------------------------|
8
+ | |
9
+ | 2. CONTAINER |
10
+ | |
11
+ |-------------------------|
12
+ | 3. FOOTER |
13
+ +-------------------------+
14
+
15
+ LAYOUT_2
16
+ +-------------------------+
17
+ | 1. HEADER |
18
+ |------------+------------|
19
+ | | |
20
+ | 2. LEFT | 3. RIGHT |
21
+ | | |
22
+ |------------+------------|
23
+ | 4. FOOTER |
24
+ +-------------------------+
25
+
26
+ LAYOUT_3
27
+ +-------------------------+
28
+ | |
29
+ | |
30
+ | 1. CONTAINER |
31
+ | |
32
+ | |
33
+ |-------------------------|
34
+ | 2. FOOTER |
35
+ +-------------------------+
36
+
37
+ LAYOUT_4
38
+ +-------------------------+
39
+ | | |
40
+ | | |
41
+ | 1. LEFT | 2. RIGHT |
42
+ | | |
43
+ | | |
44
+ |------------+------------|
45
+ | 3. FOOTER |
46
+ +-------------------------+
47
+
48
+ LAYOUT_5
49
+ +-------------------------+
50
+ | 1. HEADER |
51
+ |-------------------------|
52
+ | |
53
+ | |
54
+ | 2. CONTAINER |
55
+ | |
56
+ | |
57
+ +-------------------------+
58
+
59
+ LAYOUT_6
60
+ +-------------------------+
61
+ | |
62
+ | |
63
+ | |
64
+ | 1. CONTAINER |
65
+ | |
66
+ | |
67
+ | |
68
+ +-------------------------+
69
+
70
+ */
71
+ export declare type PageLayout = 'LAYOUT_1' | 'LAYOUT_2' | 'LAYOUT_3' | 'LAYOUT_4' | 'LAYOUT_5' | 'LAYOUT_6';
72
+ export interface PageLayoutConfig {
73
+ styles?: string;
74
+ }
@@ -1,5 +1,5 @@
1
1
  import { UIElement } from '@veloceapps/sdk/core';
2
- import { ElementConfig, ElementDefaultMetadata, ElementMetadata, ELEMENT_TYPE } from '../types';
2
+ import { ELEMENT_TYPE, ElementConfig, ElementDefaultMetadata, ElementMetadata } from '../types';
3
3
  export declare class UiBuildError extends Error {
4
4
  affectedMetadata: ElementMetadata;
5
5
  constructor(message: string, affectedMetadata: ElementMetadata);
@@ -1,5 +1,6 @@
1
1
  import { ElementComponent } from './components/element.component';
2
2
  import { IOPlugin } from './plugins/io.plugin';
3
+ import { RegionPlugin } from './plugins/region.plugin';
3
4
  import { ScriptPlugin } from './plugins/script.plugin';
4
5
  /*
5
6
  * ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.
@@ -25,5 +26,15 @@ export const CONFIG = {
25
26
  plugins: [IOPlugin, ScriptPlugin],
26
27
  suppressTemplate: true,
27
28
  },
29
+ PAGE: {
30
+ component: ElementComponent,
31
+ defaultTemplate: '<element-children></element-children>',
32
+ plugins: [IOPlugin, ScriptPlugin],
33
+ },
34
+ REGION: {
35
+ component: ElementComponent,
36
+ defaultTemplate: '<element-children></element-children>',
37
+ plugins: [IOPlugin, ScriptPlugin, RegionPlugin],
38
+ },
28
39
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2Ntcy5lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3ZEOztHQUVHO0FBRUgsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUE2QztJQUM5RCxNQUFNLEVBQUU7UUFDTixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7S0FDbEM7SUFDRCxTQUFTLEVBQUU7UUFDVCxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3hCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ2pDLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsY0FBYyxFQUFFLElBQUk7S0FDckI7SUFDRCxTQUFTLEVBQUU7UUFDVCxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7UUFDakMsZ0JBQWdCLEVBQUUsSUFBSTtLQUN2QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElPUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2lvLnBsdWdpbic7XG5pbXBvcnQgeyBTY3JpcHRQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvc2NyaXB0LnBsdWdpbic7XG5pbXBvcnQgeyBFbGVtZW50Q29uZmlnLCBFTEVNRU5UX1RZUEUgfSBmcm9tICcuL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbi8qXG4gKiBTY3JpcHRQbHVnaW4gbXVzdCBhbHdheXMgYmUgdGhlIGxhc3QgcGx1Z2luIGluIHRoZSBsaXN0IHRvIG1ha2Ugc3VyZSB1c2VyIGNvZGUgaXMgcnVubmluZyBhZnRlciBhbGwgcHJlLWluaXRpYWxpemVycy5cbiAqL1xuXG5leHBvcnQgY29uc3QgQ09ORklHOiB7IFtrZXkgaW4gRUxFTUVOVF9UWVBFXTogRWxlbWVudENvbmZpZyB9ID0ge1xuICBDVVNUT006IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICB9LFxuICBDT05UQUlORVI6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgZGVmYXVsdFRlbXBsYXRlOiAnPGVsZW1lbnQtY2hpbGRyZW4+PC9lbGVtZW50LWNoaWxkcmVuPicsXG4gICAgcGx1Z2luczogW1NjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIFNFUlZJQ0U6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICAgIHN1cHByZXNzVGVtcGxhdGU6IHRydWUsXG4gICAgc3VwcHJlc3NTdHlsZXM6IHRydWUsXG4gIH0sXG4gIFJFRkVSRU5DRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gICAgc3VwcHJlc3NUZW1wbGF0ZTogdHJ1ZSxcbiAgfSxcbn07XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2Ntcy5lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd2RDs7R0FFRztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBNkM7SUFDOUQsTUFBTSxFQUFFO1FBQ04sU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO0tBQ2xDO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixlQUFlLEVBQUUsdUNBQXVDO1FBQ3hELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNqQyxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRSxJQUFJO0tBQ3JCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ2pDLGdCQUFnQixFQUFFLElBQUk7S0FDdkI7SUFDRCxJQUFJLEVBQUU7UUFDSixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGVBQWUsRUFBRSx1Q0FBdUM7UUFDeEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztLQUNsQztJQUNELE1BQU0sRUFBRTtRQUNOLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsZUFBZSxFQUFFLHVDQUF1QztRQUN4RCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztLQUNoRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IElPUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zL2lvLnBsdWdpbic7XG5pbXBvcnQgeyBSZWdpb25QbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvcmVnaW9uLnBsdWdpbic7XG5pbXBvcnQgeyBTY3JpcHRQbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvc2NyaXB0LnBsdWdpbic7XG5pbXBvcnQgeyBFTEVNRU5UX1RZUEUsIEVsZW1lbnRDb25maWcgfSBmcm9tICcuL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbi8qXG4gKiBTY3JpcHRQbHVnaW4gbXVzdCBhbHdheXMgYmUgdGhlIGxhc3QgcGx1Z2luIGluIHRoZSBsaXN0IHRvIG1ha2Ugc3VyZSB1c2VyIGNvZGUgaXMgcnVubmluZyBhZnRlciBhbGwgcHJlLWluaXRpYWxpemVycy5cbiAqL1xuXG5leHBvcnQgY29uc3QgQ09ORklHOiB7IFtrZXkgaW4gRUxFTUVOVF9UWVBFXTogRWxlbWVudENvbmZpZyB9ID0ge1xuICBDVVNUT006IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICB9LFxuICBDT05UQUlORVI6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgZGVmYXVsdFRlbXBsYXRlOiAnPGVsZW1lbnQtY2hpbGRyZW4+PC9lbGVtZW50LWNoaWxkcmVuPicsXG4gICAgcGx1Z2luczogW1NjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIFNFUlZJQ0U6IHtcbiAgICBjb21wb25lbnQ6IEVsZW1lbnRDb21wb25lbnQsXG4gICAgcGx1Z2luczogW0lPUGx1Z2luLCBTY3JpcHRQbHVnaW5dLFxuICAgIHN1cHByZXNzVGVtcGxhdGU6IHRydWUsXG4gICAgc3VwcHJlc3NTdHlsZXM6IHRydWUsXG4gIH0sXG4gIFJFRkVSRU5DRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gICAgc3VwcHJlc3NUZW1wbGF0ZTogdHJ1ZSxcbiAgfSxcbiAgUEFHRToge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBkZWZhdWx0VGVtcGxhdGU6ICc8ZWxlbWVudC1jaGlsZHJlbj48L2VsZW1lbnQtY2hpbGRyZW4+JyxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbl0sXG4gIH0sXG4gIFJFR0lPTjoge1xuICAgIGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCxcbiAgICBkZWZhdWx0VGVtcGxhdGU6ICc8ZWxlbWVudC1jaGlsZHJlbj48L2VsZW1lbnQtY2hpbGRyZW4+JyxcbiAgICBwbHVnaW5zOiBbSU9QbHVnaW4sIFNjcmlwdFBsdWdpbiwgUmVnaW9uUGx1Z2luXSxcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,179 @@
1
+ export const LAYOUT = {
2
+ LAYOUT_1: {
3
+ styles: `
4
+ /* start of LAYOUT_1 styles */
5
+ :host {
6
+ height: 100%;
7
+ display: grid;
8
+ grid:
9
+ "header" auto
10
+ "main" 1fr
11
+ "footer" auto
12
+ / 1fr;
13
+ gap: 10px;
14
+ padding: 10px;
15
+ }
16
+
17
+ :host ::ng-deep element-children > vl-cms-element-renderer {
18
+ &:nth-child(1) > vl-element {
19
+ min-height: 80px;
20
+ grid-area: header;
21
+ }
22
+
23
+ &:nth-child(2) > vl-element {
24
+ grid-area: main;
25
+ }
26
+
27
+ &:nth-child(3) > vl-element {
28
+ min-height: 80px;
29
+ grid-area: footer;
30
+ }
31
+ }
32
+ /* end of LAYOUT_1 styles */
33
+ `,
34
+ },
35
+ LAYOUT_2: {
36
+ styles: `
37
+ /* start of LAYOUT_2 styles */
38
+ :host {
39
+ height: 100%;
40
+ display: grid;
41
+ grid:
42
+ "header header" auto
43
+ "left right" 1fr
44
+ "footer footer" auto
45
+ / 1fr 1fr;
46
+ gap: 10px;
47
+ padding: 10px;
48
+ }
49
+
50
+ :host ::ng-deep element-children > vl-cms-element-renderer {
51
+ &:nth-child(1) > vl-element {
52
+ min-height: 80px;
53
+ grid-area: header;
54
+ }
55
+
56
+ &:nth-child(2) > vl-element {
57
+ grid-area: left;
58
+ }
59
+
60
+ &:nth-child(3) > vl-element {
61
+ grid-area: right;
62
+ }
63
+
64
+ &:nth-child(4) > vl-element {
65
+ min-height: 80px;
66
+ grid-area: footer;
67
+ }
68
+ }
69
+ /* end of LAYOUT_2 styles */
70
+ `,
71
+ },
72
+ LAYOUT_3: {
73
+ styles: `
74
+ /* start of LAYOUT_3 styles */
75
+ :host {
76
+ height: 100%;
77
+ display: grid;
78
+ grid:
79
+ "main" 1fr
80
+ "footer" auto
81
+ / 1fr;
82
+ gap: 10px;
83
+ padding: 10px;
84
+ }
85
+
86
+ :host ::ng-deep element-children > vl-cms-element-renderer {
87
+ &:nth-child(1) > vl-element {
88
+ grid-area: main;
89
+ }
90
+
91
+ &:nth-child(2) > vl-element {
92
+ min-height: 80px;
93
+ grid-area: footer;
94
+ }
95
+ }
96
+ /* end of LAYOUT_3 styles */
97
+ `,
98
+ },
99
+ LAYOUT_4: {
100
+ styles: `
101
+ /* start of LAYOUT_4 styles */
102
+ :host {
103
+ height: 100%;
104
+ display: grid;
105
+ grid:
106
+ "left right" 1fr
107
+ "footer footer" auto
108
+ / auto auto;
109
+ gap: 10px;
110
+ padding: 10px;
111
+ }
112
+
113
+ :host ::ng-deep element-children > vl-cms-element-renderer {
114
+ &:nth-child(1) > vl-element {
115
+ grid-area: left;
116
+ }
117
+
118
+ &:nth-child(2) > vl-element {
119
+ grid-area: right;
120
+ }
121
+
122
+ &:nth-child(3) > vl-element {
123
+ min-height: 80px;
124
+ grid-area: footer;
125
+ }
126
+ }
127
+ /* end of LAYOUT_4 styles */
128
+ `,
129
+ },
130
+ LAYOUT_5: {
131
+ styles: `
132
+ /* start of LAYOUT_5 styles */
133
+ :host {
134
+ height: 100%;
135
+ display: grid;
136
+ grid:
137
+ "header" auto
138
+ "main" 1fr
139
+ / 1fr;
140
+ gap: 10px;
141
+ padding: 10px;
142
+ }
143
+
144
+ :host ::ng-deep element-children > vl-cms-element-renderer {
145
+ &:nth-child(1) > vl-element {
146
+ min-height: 80px;
147
+ grid-area: header;
148
+ }
149
+
150
+ &:nth-child(2) > vl-element {
151
+ grid-area: main;
152
+ }
153
+ }
154
+ /* end of LAYOUT_5 styles */
155
+ `,
156
+ },
157
+ LAYOUT_6: {
158
+ styles: `
159
+ /* start of LAYOUT_6 styles */
160
+ :host {
161
+ height: 100%;
162
+ display: grid;
163
+ grid:
164
+ "main" 1fr
165
+ / 1fr;
166
+ gap: 10px;
167
+ padding: 10px;
168
+ }
169
+
170
+ :host ::ng-deep element-children > vl-cms-element-renderer {
171
+ &:nth-child(1) > vl-element {
172
+ grid-area: main;
173
+ }
174
+ }
175
+ /* end of LAYOUT_6 styles */
176
+ `,
177
+ },
178
+ };
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmxheW91dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmxheW91dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUE4QztJQUMvRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQThCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0NYO0tBQ0U7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEJYO0tBQ0U7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCWDtLQUNFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQlg7S0FDRTtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlTGF5b3V0LCBQYWdlTGF5b3V0Q29uZmlnIH0gZnJvbSAnLi90eXBlcy9sYXlvdXRzLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IExBWU9VVDogeyBba2V5IGluIFBhZ2VMYXlvdXRdOiBQYWdlTGF5b3V0Q29uZmlnIH0gPSB7XG4gIExBWU9VVF8xOiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfMSBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwiaGVhZGVyXCIgYXV0b1xuICAgIFwibWFpblwiIDFmclxuICAgIFwiZm9vdGVyXCIgYXV0b1xuICAgIC8gMWZyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbjpob3N0IDo6bmctZGVlcCBlbGVtZW50LWNoaWxkcmVuID4gdmwtY21zLWVsZW1lbnQtcmVuZGVyZXIge1xuICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBoZWFkZXI7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogbWFpbjtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDMpID4gdmwtZWxlbWVudCB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBncmlkLWFyZWE6IGZvb3RlcjtcbiAgfVxufVxuLyogZW5kIG9mIExBWU9VVF8xIHN0eWxlcyAqL1xuYCxcbiAgfSxcbiAgTEFZT1VUXzI6IHtcbiAgICBzdHlsZXM6IGBcbi8qIHN0YXJ0IG9mIExBWU9VVF8yIHN0eWxlcyAqL1xuOmhvc3Qge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQ6XG4gICAgXCJoZWFkZXIgaGVhZGVyXCIgYXV0b1xuICAgIFwibGVmdCByaWdodFwiIDFmclxuICAgIFwiZm9vdGVyIGZvb3RlclwiIGF1dG9cbiAgICAvIDFmciAxZnI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICY6bnRoLWNoaWxkKDEpID4gdmwtZWxlbWVudCB7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBncmlkLWFyZWE6IGhlYWRlcjtcbiAgfVxuXG4gICY6bnRoLWNoaWxkKDIpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiBsZWZ0O1xuICB9XG5cbiAgJjpudGgtY2hpbGQoMykgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IHJpZ2h0O1xuICB9XG5cbiAgJjpudGgtY2hpbGQoNCkgPiB2bC1lbGVtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgIGdyaWQtYXJlYTogZm9vdGVyO1xuICB9XG59XG4vKiBlbmQgb2YgTEFZT1VUXzIgc3R5bGVzICovXG5gLFxuICB9LFxuICBMQVlPVVRfMzoge1xuICAgIHN0eWxlczogYFxuLyogc3RhcnQgb2YgTEFZT1VUXzMgc3R5bGVzICovXG46aG9zdCB7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZDpcbiAgICBcIm1haW5cIiAxZnJcbiAgICBcImZvb3RlclwiIGF1dG9cbiAgICAvIDFmcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgZWxlbWVudC1jaGlsZHJlbiA+IHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIHtcbiAgJjpudGgtY2hpbGQoMSkgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IG1haW47XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBmb290ZXI7XG4gIH1cbn1cbi8qIGVuZCBvZiBMQVlPVVRfMyBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF80OiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfNCBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwibGVmdCByaWdodFwiIDFmclxuICAgIFwiZm9vdGVyIGZvb3RlclwiIGF1dG9cbiAgICAvIGF1dG8gYXV0bztcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgZWxlbWVudC1jaGlsZHJlbiA+IHZsLWNtcy1lbGVtZW50LXJlbmRlcmVyIHtcbiAgJjpudGgtY2hpbGQoMSkgPiB2bC1lbGVtZW50IHtcbiAgICBncmlkLWFyZWE6IGxlZnQ7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogcmlnaHQ7XG4gIH1cblxuICAmOm50aC1jaGlsZCgzKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBmb290ZXI7XG4gIH1cbn1cbi8qIGVuZCBvZiBMQVlPVVRfNCBzdHlsZXMgKi9cbmAsXG4gIH0sXG4gIExBWU9VVF81OiB7XG4gICAgc3R5bGVzOiBgXG4vKiBzdGFydCBvZiBMQVlPVVRfNSBzdHlsZXMgKi9cbjpob3N0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkOlxuICAgIFwiaGVhZGVyXCIgYXV0b1xuICAgIFwibWFpblwiIDFmclxuICAgIC8gMWZyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbjpob3N0IDo6bmctZGVlcCBlbGVtZW50LWNoaWxkcmVuID4gdmwtY21zLWVsZW1lbnQtcmVuZGVyZXIge1xuICAmOm50aC1jaGlsZCgxKSA+IHZsLWVsZW1lbnQge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgZ3JpZC1hcmVhOiBoZWFkZXI7XG4gIH1cblxuICAmOm50aC1jaGlsZCgyKSA+IHZsLWVsZW1lbnQge1xuICAgIGdyaWQtYXJlYTogbWFpbjtcbiAgfVxufVxuLyogZW5kIG9mIExBWU9VVF81IHN0eWxlcyAqL1xuYCxcbiAgfSxcbiAgTEFZT1VUXzY6IHtcbiAgICBzdHlsZXM6IGBcbi8qIHN0YXJ0IG9mIExBWU9VVF82IHN0eWxlcyAqL1xuOmhvc3Qge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQ6XG4gICAgXCJtYWluXCIgMWZyXG4gICAgLyAxZnI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIGVsZW1lbnQtY2hpbGRyZW4gPiB2bC1jbXMtZWxlbWVudC1yZW5kZXJlciB7XG4gICY6bnRoLWNoaWxkKDEpID4gdmwtZWxlbWVudCB7XG4gICAgZ3JpZC1hcmVhOiBtYWluO1xuICB9XG59XG4vKiBlbmQgb2YgTEFZT1VUXzYgc3R5bGVzICovXG5gLFxuICB9LFxufTtcbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Directive, ElementRef } from '@angular/core';
3
+ import { merge } from 'lodash';
4
+ import { Subject, takeUntil, tap } from 'rxjs';
5
+ import { ELEMENT_METADATA } from '../injection-tokens';
6
+ import { RuntimeEditorService } from '../modules/runtime';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../components/element.component";
9
+ export class RegionPlugin {
10
+ constructor(host) {
11
+ this.host = host;
12
+ this.destroy$ = new Subject();
13
+ this.metadata = this.host.injector.get(ELEMENT_METADATA);
14
+ this.document = this.host.injector.get(DOCUMENT);
15
+ this.el = this.host.injector.get(ElementRef);
16
+ const runtimeEditorService = this.host.injector.get(RuntimeEditorService);
17
+ runtimeEditorService.editorMode$
18
+ .pipe(tap(editMode => {
19
+ var _a;
20
+ this.el.nativeElement.style.outline = editMode ? 'solid 1px #dce5ef' : '';
21
+ if (editMode && !this.metadata.children.length) {
22
+ this.addRegionName();
23
+ }
24
+ else {
25
+ (_a = this.regionNameEl) === null || _a === void 0 ? void 0 : _a.remove();
26
+ }
27
+ }), takeUntil(this.destroy$))
28
+ .subscribe();
29
+ }
30
+ ngOnDestroy() {
31
+ this.destroy$.next();
32
+ this.destroy$.complete();
33
+ }
34
+ addRegionName() {
35
+ if (this.regionNameEl) {
36
+ this.regionNameEl.remove();
37
+ }
38
+ this.regionNameEl = this.document.createElement('div');
39
+ this.regionNameEl.innerHTML = this.metadata.name;
40
+ merge(this.regionNameEl.style, {
41
+ width: '100%',
42
+ height: '100%',
43
+ display: 'flex',
44
+ justifyContent: 'center',
45
+ alignItems: 'center',
46
+ color: '#AEB5BD',
47
+ pointerEvents: 'none',
48
+ userSelect: 'none',
49
+ });
50
+ this.el.nativeElement.append(this.regionNameEl);
51
+ }
52
+ }
53
+ RegionPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RegionPlugin, deps: [{ token: i1.ElementComponent }], target: i0.ɵɵFactoryTarget.Directive });
54
+ RegionPlugin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: RegionPlugin, ngImport: i0 });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RegionPlugin, decorators: [{
56
+ type: Directive
57
+ }], ctorParameters: function () { return [{ type: i1.ElementComponent }]; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9wbHVnaW5zL3JlZ2lvbi5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFJMUQsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBbUIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFGakMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3QyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTFFLG9CQUFvQixDQUFDLFdBQVc7YUFDN0IsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTs7WUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUUxRSxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDOUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsTUFBTSxFQUFFLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM1QjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFakQsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUF1QjtZQUNsRCxLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLE1BQU07WUFDZixjQUFjLEVBQUUsUUFBUTtZQUN4QixVQUFVLEVBQUUsUUFBUTtZQUNwQixLQUFLLEVBQUUsU0FBUztZQUNoQixhQUFhLEVBQUUsTUFBTTtZQUNyQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7OzBHQXZEVSxZQUFZOzhGQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGx1Z2luQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7IEVMRU1FTlRfTUVUQURBVEEgfSBmcm9tICcuLi9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IFJ1bnRpbWVFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kdWxlcy9ydW50aW1lJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uL3R5cGVzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUmVnaW9uUGx1Z2luIGltcGxlbWVudHMgUGx1Z2luQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIG1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGE7XG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50O1xuICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgcHJpdmF0ZSByZWdpb25OYW1lRWw6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogRWxlbWVudENvbXBvbmVudCkge1xuICAgIHRoaXMubWV0YWRhdGEgPSB0aGlzLmhvc3QuaW5qZWN0b3IuZ2V0KEVMRU1FTlRfTUVUQURBVEEpO1xuICAgIHRoaXMuZG9jdW1lbnQgPSB0aGlzLmhvc3QuaW5qZWN0b3IuZ2V0KERPQ1VNRU5UKTtcbiAgICB0aGlzLmVsID0gdGhpcy5ob3N0LmluamVjdG9yLmdldChFbGVtZW50UmVmKTtcblxuICAgIGNvbnN0IHJ1bnRpbWVFZGl0b3JTZXJ2aWNlID0gdGhpcy5ob3N0LmluamVjdG9yLmdldChSdW50aW1lRWRpdG9yU2VydmljZSk7XG5cbiAgICBydW50aW1lRWRpdG9yU2VydmljZS5lZGl0b3JNb2RlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChlZGl0TW9kZSA9PiB7XG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm91dGxpbmUgPSBlZGl0TW9kZSA/ICdzb2xpZCAxcHggI2RjZTVlZicgOiAnJztcblxuICAgICAgICAgIGlmIChlZGl0TW9kZSAmJiAhdGhpcy5tZXRhZGF0YS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkUmVnaW9uTmFtZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lvbk5hbWVFbD8ucmVtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVnaW9uTmFtZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWdpb25OYW1lRWwpIHtcbiAgICAgIHRoaXMucmVnaW9uTmFtZUVsLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHRoaXMucmVnaW9uTmFtZUVsID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlZ2lvbk5hbWVFbC5pbm5lckhUTUwgPSB0aGlzLm1ldGFkYXRhLm5hbWU7XG5cbiAgICBtZXJnZSh0aGlzLnJlZ2lvbk5hbWVFbC5zdHlsZSwgPENTU1N0eWxlRGVjbGFyYXRpb24+e1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICBjb2xvcjogJyNBRUI1QkQnLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZCh0aGlzLnJlZ2lvbk5hbWVFbCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL3R5cGVzL2NvbW1vbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi9lbmdpbmUvbW9kZWxzL2VudGl0eSc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuLi9lbmdpbmUvbW9kZWxzL3BsdWdpbic7XG5cbmV4cG9ydCB0eXBlIEVMRU1FTlRfVFlQRSA9ICdDVVNUT00nIHwgJ0NPTlRBSU5FUicgfCAnU0VSVklDRScgfCAnUkVGRVJFTkNFJztcblxuZXhwb3J0IHR5cGUgRWxlbWVudFN0eWxlRGVjbGFyYXRpb24gPSBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRDb25maWcge1xuICBjb21wb25lbnQ6IHR5cGVvZiBFbnRpdHk7XG4gIHBsdWdpbnM/OiAodHlwZW9mIFBsdWdpbilbXTtcbiAgZGVmYXVsdFRlbXBsYXRlPzogc3RyaW5nO1xuICBzdXBwcmVzc1RlbXBsYXRlPzogYm9vbGVhbjtcbiAgc3VwcHJlc3NTdHlsZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRNb2RlbCB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgcGF0aCBmb3IgYW4gZWxlbWVudCBtb2RlbC5cbiAgICogSXQncyBjb21iaW5lZCB3aXRoIGEgcGF0aCB0byBhIHRhcmdldCBlbGVtZW50IGFuZCBhbiBvdXRwdXQgcHJvcGVydHkgbmFtZS5cbiAgICpcbiAgICogSWYgdGFyZ2V0IHZhbHVlIGlzIGFuIEFycmF5LCB0aGVuIHRoZSBlbGVtZW50IHdpbGwgYmUgcmVwZWF0ZWQgYG5gIHRpbWVzIGFuZCBlYWNoIGluc3RhbmNlIHdpbGwgZ2V0IGl0J3Mgb3duIHZhbHVlLlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICogLSBgL1Jvb3QvU2VydmljZXMvRGF0YVNlcnZpY2UvOnByb2R1Y3RzYFxuICAgKiAtIGAuLi8uLi9TZXJ2aWNlcy9EYXRhU2VydmljZS86cHJvZHVjdHNgXG4gICAqIC0gYEBTZXJ2aWNlcy9EYXRhU2VydmljZS86cHJvZHVjdHNgXG4gICAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlZCBvbmx5IHdoZW4gYFVJRGVmaW5pdGlvblR5cGUgPSBDT05GSUdVUkFUSU9OYC5cbiAgICovXG4gIGxpbmVJdGVtPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnREZWZhdWx0TWV0YWRhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IEVMRU1FTlRfVFlQRTtcbiAgLyoqXG4gICAqIE1ha2UgY29tcG9uZW50IHNoYXJlZFxuICAgKlxuICAgKiBVc2VkIG9ubHkgd2hlbiBgdHlwZSAhPT0gUkVGRVJFTkNFYFxuICAgKi9cbiAgaXNTaGFyZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRWxlbWVudCBtb2R1bGUgbmFtZS4gTW9kdWxlIGlzIHVzZWQgZm9yIHF1aWNrIGFjY2VzcyBmcm9tIG90aGVyIGVsZW1lbnRzLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSB3ZSBoYXZlIGEgYERhdGFTZXJ2aWNlYCBlbGVtZW50LCBhbmQgd2Ugc2F5IGl0J3MgZGVjbGFyZWQgaW4gYFNlcnZpY2VzYCBtb2R1bGUuIFRoZW4gaXQgY2FuIGJlIGFjY2Vzc2VkIGluIG90aGVyIGVsZW1lbnRzIGBtb2RlbGAsIGBpbnB1dHNgIG9yIGBvdXRwdXRzYCBwcm9wZXJ0aWVzIHRoaXMgd2F5OiBgQFNlcnZpY2VzL0RhdGFTZXJ2aWNlYFxuICAgKlxuICAgKi9cbiAgbW9kdWxlPzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmaW5lcyBpbnB1dHMgb2YgdGhlIGVsZW1lbnQuIEFuIG9iamVjdCB3aGVyZSBga2V5YCBpcyB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgYW5kIGB2YWx1ZWAgaXMgdGFyZ2V0IHBhdGhcbiAgICpcbiAgICogSWYgYHZhbHVlID09IG51bGxgLCB0aGVuIHRoZSBlbGVtZW50IGFjdHMgbGlrZSBhIHRhcmdldCAtIHdlIGV4cGVjdCBvdGhlciBlbGVtZW50IHRvIGNvbm5lY3QgdG8gaXQuXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKlxuICAgKiAxLiBgcHJvZHVjdHM6ICcvUm9vdC9TZXJ2aWNlcy9EYXRhU2VydmljZSdgXG4gICAqIFRoZSBlbGVtZW50IHdpbGwgaGF2ZSBgcHJvZHVjdHNgIGlucHV0IHdoaWNoIHdpbGwgZ2V0IHRoZSBkYXRhIGZyb20gYHByb2R1Y3RzYCBvdXRwdXQgaW4gZGF0YXNlcnZpY2UgZWxlbWVudFxuICAgKlxuICAgKiAyLiBgcHJvZHVjdHNMaXN0OiAnL1Jvb3QvU2VydmljZXMvRGF0YVNlcnZpY2UvOnByb2R1Y3RzJ2BcbiAgICogVGhlIGVsZW1lbnQgd2lsbCBoYXZlIGBwcm9kdWN0c0xpc3RgIGlucHV0IHdoaWNoIHdpbGwgZ2V0IHRoZSBkYXRhIGZyb20gYHByb2R1Y3RzYCBvdXRwdXQgaW4gZGF0YXNlcnZpY2UgZWxlbWVudFxuICAgKlxuICAgKiAzLiBgcHJvZHVjdHNMaXN0OiAnQFNlcnZpY2VzL0RhdGFTZXJ2aWNlLzpwcm9kdWN0cydgXG4gICAqIFRoZSBlbGVtZW50IHdpbGwgaGF2ZSBgcHJvZHVjdHNMaXN0YCBpbnB1dCB3aGljaCB3aWxsIGdldCB0aGUgZGF0YSBmcm9tIGBwcm9kdWN0c2Agb3V0cHV0IGluIGRhdGFzZXJ2aWNlIGVsZW1lbnQgd2hpY2ggaXMgZGVjbGFyZWQgaW4gYFNlcnZpY2VzYCBtb2R1bGVcbiAgICpcbiAgICogNC4gYG9uUHJvZHVjdFNlbGVjdDogbnVsbGBcbiAgICogVGhlIGVsZW1lbnQgd2lsbCBoYXZlIGBvblByb2R1Y3RTZWxlY3RgIGlucHV0LCBhbmQgdGhlIHNjcmlwdCBjb3VsZCBoYXZlIGEgbG9naWMgd2hpY2ggd2lsbCBsaXN0ZW4gb24gdGhlIGV2ZW50c1xuICAgKlxuICAgKiBSZWxhdGl2ZSBwYXRocyBhbGxvd2VkOlxuICAgKlxuICAgKiAtIGAuLmBcbiAgICogLSBgLi4vOnByb2R1Y3RzYFxuICAgKiAtIGAuLi8uLi9EYXRhU2VydmljZS86cHJvZHVjdHNgXG4gICAqXG4gICAqL1xuICBpbnB1dHM/OiBEaWN0aW9uYXJ5PHN0cmluZyB8IG51bGw+O1xuICAvKipcbiAgICogRGVmaW5lcyBvdXRwdXRzIG9mIHRoZSBlbGVtZW50LiBBbiBvYmplY3Qgd2hlcmUgYGtleWAgaXMgdGhlIG5hbWUgb2YgdGhlIG91dHB1dCBhbmQgYHZhbHVlYCBpcyB0YXJnZXQgcGF0aFxuICAgKlxuICAgKiBJZiBgdmFsdWUgPT0gbnVsbGAsIHRoZW4gdGhlIGVsZW1lbnQgYWN0cyBsaWtlIGEgdGFyZ2V0IC0gd2UgZXhwZWN0IG90aGVyIGVsZW1lbnQgdG8gY29ubmVjdCB0byBpdC5cbiAgICpcbiAgICogRXhhbXBsZXM6XG4gICAqXG4gICAqIDEuIGBvblByb2R1Y3RTZWxlY3Q6ICcvUm9vdC9TZXJ2aWNlcy9EYXRhU2VydmljZS86aGFuZGxlUHJvZHVjdFNlbGVjdCdgXG4gICAqIFRoZSBlbGVtZW50IHdpbGwgaGF2ZSBgb25Qcm9kdWN0U2VsZWN0YCBvdXRwdXQsIHdoaWNoIHdpbGwgZW1pdCBldmVudHMgdG8gdGhlIGBkYXRhc2VydmljZWAgZWxlbWVudCBgaGFuZGxlUHJvZHVjdFNlbGVjdGAgaW5wdXRcbiAgICpcbiAgICogMi4gYG9uUHJvZHVjdFNlbGVjdDogJ0BTZXJ2aWNlcy9EYXRhU2VydmljZS86aGFuZGxlUHJvZHVjdFNlbGVjdCdgXG4gICAqIFNhbWUgb3V0cHV0IGJ1dCBhY2Nlc3NpbmcgZGF0YXNlcnZpY2UgYnkgdGhlIFNlcnZpY2UgbW9kdWxlXG4gICAqL1xuICBvdXRwdXRzPzogRGljdGlvbmFyeTxzdHJpbmcgfCBudWxsPjtcbiAgbW9kZWw/OiBFbGVtZW50TW9kZWw7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgc2hhcmVkIGNvbXBvbmVudCBuYW1lIHRvIHVzZSBhcyBhIHJlZmVyZW5jZVxuICAgKlxuICAgKiBVc2VkIG9ubHkgd2hlbiBgdHlwZSA9PT0gUkVGRVJFTkNFYFxuICAgKi9cbiAgcmVmZXJlbmNlPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ29udGFpbnMgc3R5bGVzIGNvbmZpZ3VyYWJsZSBmcm9tIFVJIGJ1aWxkZXJcbiAgICovXG4gIGNvbmZpZ3VyZWRTdHlsZXM/OiBFbGVtZW50U3R5bGVEZWNsYXJhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50TWV0YWRhdGEgZXh0ZW5kcyBPbWl0PEVsZW1lbnREZWZhdWx0TWV0YWRhdGEsICdjaGlsZHJlbic+IHtcbiAgcGF0aD86IHN0cmluZztcbiAgY2hpbGRyZW46IEVsZW1lbnRNZXRhZGF0YVtdO1xuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgc3R5bGVzPzogc3RyaW5nO1xuICBzY3JpcHQ/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL3R5cGVzL2NvbW1vbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi9lbmdpbmUvbW9kZWxzL2VudGl0eSc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuLi9lbmdpbmUvbW9kZWxzL3BsdWdpbic7XG5pbXBvcnQgeyBQYWdlTGF5b3V0IH0gZnJvbSAnLi9sYXlvdXRzLnR5cGVzJztcblxuZXhwb3J0IHR5cGUgRUxFTUVOVF9UWVBFID0gJ0NVU1RPTScgfCAnQ09OVEFJTkVSJyB8ICdTRVJWSUNFJyB8ICdSRUZFUkVOQ0UnIHwgJ1BBR0UnIHwgJ1JFR0lPTic7XG5cbmV4cG9ydCB0eXBlIEVsZW1lbnRTdHlsZURlY2xhcmF0aW9uID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiB0eXBlb2YgRW50aXR5O1xuICBwbHVnaW5zPzogKHR5cGVvZiBQbHVnaW4pW107XG4gIGRlZmF1bHRUZW1wbGF0ZT86IHN0cmluZztcbiAgc3VwcHJlc3NUZW1wbGF0ZT86IGJvb2xlYW47XG4gIHN1cHByZXNzU3R5bGVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50TW9kZWwge1xuICAvKipcbiAgICogRGVmaW5lcyBhIHBhdGggZm9yIGFuIGVsZW1lbnQgbW9kZWwuXG4gICAqIEl0J3MgY29tYmluZWQgd2l0aCBhIHBhdGggdG8gYSB0YXJnZXQgZWxlbWVudCBhbmQgYW4gb3V0cHV0IHByb3BlcnR5IG5hbWUuXG4gICAqXG4gICAqIElmIHRhcmdldCB2YWx1ZSBpcyBhbiBBcnJheSwgdGhlbiB0aGUgZWxlbWVudCB3aWxsIGJlIHJlcGVhdGVkIGBuYCB0aW1lcyBhbmQgZWFjaCBpbnN0YW5jZSB3aWxsIGdldCBpdCdzIG93biB2YWx1ZS5cbiAgICpcbiAgICogRXhhbXBsZXM6XG4gICAqIC0gYC9Sb290L1NlcnZpY2VzL0RhdGFTZXJ2aWNlLzpwcm9kdWN0c2BcbiAgICogLSBgLi4vLi4vU2VydmljZXMvRGF0YVNlcnZpY2UvOnByb2R1Y3RzYFxuICAgKiAtIGBAU2VydmljZXMvRGF0YVNlcnZpY2UvOnByb2R1Y3RzYFxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgb25seSB3aGVuIGBVSURlZmluaXRpb25UeXBlID0gQ09ORklHVVJBVElPTmAuXG4gICAqL1xuICBsaW5lSXRlbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50RGVmYXVsdE1ldGFkYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBFTEVNRU5UX1RZUEU7XG4gIC8qKlxuICAgKiBNYWtlIGNvbXBvbmVudCBzaGFyZWRcbiAgICpcbiAgICogVXNlZCBvbmx5IHdoZW4gYHR5cGUgIT09IFJFRkVSRU5DRWBcbiAgICovXG4gIGlzU2hhcmVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVsZW1lbnQgbW9kdWxlIG5hbWUuIE1vZHVsZSBpcyB1c2VkIGZvciBxdWljayBhY2Nlc3MgZnJvbSBvdGhlciBlbGVtZW50cy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUgd2UgaGF2ZSBhIGBEYXRhU2VydmljZWAgZWxlbWVudCwgYW5kIHdlIHNheSBpdCdzIGRlY2xhcmVkIGluIGBTZXJ2aWNlc2AgbW9kdWxlLiBUaGVuIGl0IGNhbiBiZSBhY2Nlc3NlZCBpbiBvdGhlciBlbGVtZW50cyBgbW9kZWxgLCBgaW5wdXRzYCBvciBgb3V0cHV0c2AgcHJvcGVydGllcyB0aGlzIHdheTogYEBTZXJ2aWNlcy9EYXRhU2VydmljZWBcbiAgICpcbiAgICovXG4gIG1vZHVsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmluZXMgaW5wdXRzIG9mIHRoZSBlbGVtZW50LiBBbiBvYmplY3Qgd2hlcmUgYGtleWAgaXMgdGhlIG5hbWUgb2YgdGhlIGlucHV0IGFuZCBgdmFsdWVgIGlzIHRhcmdldCBwYXRoXG4gICAqXG4gICAqIElmIGB2YWx1ZSA9PSBudWxsYCwgdGhlbiB0aGUgZWxlbWVudCBhY3RzIGxpa2UgYSB0YXJnZXQgLSB3ZSBleHBlY3Qgb3RoZXIgZWxlbWVudCB0byBjb25uZWN0IHRvIGl0LlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICpcbiAgICogMS4gYHByb2R1Y3RzOiAnL1Jvb3QvU2VydmljZXMvRGF0YVNlcnZpY2UnYFxuICAgKiBUaGUgZWxlbWVudCB3aWxsIGhhdmUgYHByb2R1Y3RzYCBpbnB1dCB3aGljaCB3aWxsIGdldCB0aGUgZGF0YSBmcm9tIGBwcm9kdWN0c2Agb3V0cHV0IGluIGRhdGFzZXJ2aWNlIGVsZW1lbnRcbiAgICpcbiAgICogMi4gYHByb2R1Y3RzTGlzdDogJy9Sb290L1NlcnZpY2VzL0RhdGFTZXJ2aWNlLzpwcm9kdWN0cydgXG4gICAqIFRoZSBlbGVtZW50IHdpbGwgaGF2ZSBgcHJvZHVjdHNMaXN0YCBpbnB1dCB3aGljaCB3aWxsIGdldCB0aGUgZGF0YSBmcm9tIGBwcm9kdWN0c2Agb3V0cHV0IGluIGRhdGFzZXJ2aWNlIGVsZW1lbnRcbiAgICpcbiAgICogMy4gYHByb2R1Y3RzTGlzdDogJ0BTZXJ2aWNlcy9EYXRhU2VydmljZS86cHJvZHVjdHMnYFxuICAgKiBUaGUgZWxlbWVudCB3aWxsIGhhdmUgYHByb2R1Y3RzTGlzdGAgaW5wdXQgd2hpY2ggd2lsbCBnZXQgdGhlIGRhdGEgZnJvbSBgcHJvZHVjdHNgIG91dHB1dCBpbiBkYXRhc2VydmljZSBlbGVtZW50IHdoaWNoIGlzIGRlY2xhcmVkIGluIGBTZXJ2aWNlc2AgbW9kdWxlXG4gICAqXG4gICAqIDQuIGBvblByb2R1Y3RTZWxlY3Q6IG51bGxgXG4gICAqIFRoZSBlbGVtZW50IHdpbGwgaGF2ZSBgb25Qcm9kdWN0U2VsZWN0YCBpbnB1dCwgYW5kIHRoZSBzY3JpcHQgY291bGQgaGF2ZSBhIGxvZ2ljIHdoaWNoIHdpbGwgbGlzdGVuIG9uIHRoZSBldmVudHNcbiAgICpcbiAgICogUmVsYXRpdmUgcGF0aHMgYWxsb3dlZDpcbiAgICpcbiAgICogLSBgLi5gXG4gICAqIC0gYC4uLzpwcm9kdWN0c2BcbiAgICogLSBgLi4vLi4vRGF0YVNlcnZpY2UvOnByb2R1Y3RzYFxuICAgKlxuICAgKi9cbiAgaW5wdXRzPzogRGljdGlvbmFyeTxzdHJpbmcgfCBudWxsPjtcbiAgLyoqXG4gICAqIERlZmluZXMgb3V0cHV0cyBvZiB0aGUgZWxlbWVudC4gQW4gb2JqZWN0IHdoZXJlIGBrZXlgIGlzIHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgYW5kIGB2YWx1ZWAgaXMgdGFyZ2V0IHBhdGhcbiAgICpcbiAgICogSWYgYHZhbHVlID09IG51bGxgLCB0aGVuIHRoZSBlbGVtZW50IGFjdHMgbGlrZSBhIHRhcmdldCAtIHdlIGV4cGVjdCBvdGhlciBlbGVtZW50IHRvIGNvbm5lY3QgdG8gaXQuXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKlxuICAgKiAxLiBgb25Qcm9kdWN0U2VsZWN0OiAnL1Jvb3QvU2VydmljZXMvRGF0YVNlcnZpY2UvOmhhbmRsZVByb2R1Y3RTZWxlY3QnYFxuICAgKiBUaGUgZWxlbWVudCB3aWxsIGhhdmUgYG9uUHJvZHVjdFNlbGVjdGAgb3V0cHV0LCB3aGljaCB3aWxsIGVtaXQgZXZlbnRzIHRvIHRoZSBgZGF0YXNlcnZpY2VgIGVsZW1lbnQgYGhhbmRsZVByb2R1Y3RTZWxlY3RgIGlucHV0XG4gICAqXG4gICAqIDIuIGBvblByb2R1Y3RTZWxlY3Q6ICdAU2VydmljZXMvRGF0YVNlcnZpY2UvOmhhbmRsZVByb2R1Y3RTZWxlY3QnYFxuICAgKiBTYW1lIG91dHB1dCBidXQgYWNjZXNzaW5nIGRhdGFzZXJ2aWNlIGJ5IHRoZSBTZXJ2aWNlIG1vZHVsZVxuICAgKi9cbiAgb3V0cHV0cz86IERpY3Rpb25hcnk8c3RyaW5nIHwgbnVsbD47XG4gIG1vZGVsPzogRWxlbWVudE1vZGVsO1xuICAvKipcbiAgICogRGVmaW5lcyBhIHNoYXJlZCBjb21wb25lbnQgbmFtZSB0byB1c2UgYXMgYSByZWZlcmVuY2VcbiAgICpcbiAgICogVXNlZCBvbmx5IHdoZW4gYHR5cGUgPT09IFJFRkVSRU5DRWBcbiAgICovXG4gIHJlZmVyZW5jZT86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIENvbnRhaW5zIHN0eWxlcyBjb25maWd1cmFibGUgZnJvbSBVSSBidWlsZGVyXG4gICAqL1xuICBjb25maWd1cmVkU3R5bGVzPzogRWxlbWVudFN0eWxlRGVjbGFyYXRpb247XG4gIC8qKlxuICAgKiBQYWdlIGxheW91dFxuICAgKlxuICAgKiBVc2VkIG9ubHkgd2hlbiBgdHlwZSA9PT0gUEFHRWBcbiAgICovXG4gIGxheW91dD86IFBhZ2VMYXlvdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudE1ldGFkYXRhIGV4dGVuZHMgT21pdDxFbGVtZW50RGVmYXVsdE1ldGFkYXRhLCAnY2hpbGRyZW4nPiB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBFbGVtZW50TWV0YWRhdGFbXTtcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIHN0eWxlcz86IHN0cmluZztcbiAgc2NyaXB0Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IHN0cmluZztcbn1cbiJdfQ==
@@ -3,6 +3,5 @@ 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 './metrics.types';
7
6
  export * from './path.types';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9tb2R1bGVzL3J1bnRpbWUvdHlwZXMvY29tcGlsYXRpb24udHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24udHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWd1cmF0aW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudHMudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlZ3JhdGlvbi50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL21ldHJpY3MudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXRoLnR5cGVzJztcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vbW9kdWxlcy9ydW50aW1lL3R5cGVzL2NvbXBpbGF0aW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJhdGlvbi50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnRzLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24udHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXRoLnR5cGVzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy90eXBlcy9sYXlvdXRzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExpc3Qgb2YgYXZhaWxhYmxlIGxheW91dHM6XG4gKiBcbiAgICAgICAgTEFZT1VUXzFcbiAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICAgICAgIHwgICAgICAgIDEuIEhFQURFUiAgICAgICAgfFxuICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgIHwgICAgICAgMi4gQ09OVEFJTkVSICAgICAgfFxuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gICAgICAgIHwgICAgICAgIDMuIEZPT1RFUiAgICAgICAgfFxuICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuICAgICAgICBMQVlPVVRfMlxuICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgICAgICAgfCAgICAgICAgMS4gSEVBREVSICAgICAgICB8XG4gICAgICAgIHwtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tfFxuICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHxcbiAgICAgICAgfCAyLiBMRUZUICAgIHwgIDMuIFJJR0hUICB8XG4gICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuICAgICAgICB8LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLXxcbiAgICAgICAgfCAgICAgICAgNC4gRk9PVEVSICAgICAgICB8XG4gICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG4gICAgICAgIExBWU9VVF8zXG4gICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgIHwgICAgICAgMS4gQ09OVEFJTkVSICAgICAgfFxuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICAgICAgICB8ICAgICAgICAyLiBGT09URVIgICAgICAgIHxcbiAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cbiAgICAgICAgTEFZT1VUXzRcbiAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHxcbiAgICAgICAgfCAxLiBMRUZUICAgIHwgIDIuIFJJR0hUICB8XG4gICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHxcbiAgICAgICAgfC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS18XG4gICAgICAgIHwgICAgICAgIDMuIEZPT1RFUiAgICAgICAgfFxuICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuICAgICAgICBMQVlPVVRfNVxuICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgICAgICAgfCAgICAgICAgMS4gSEVBREVSICAgICAgICB8XG4gICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgIHwgICAgICAgMi4gQ09OVEFJTkVSICAgICAgfFxuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG4gICAgICAgIExBWU9VVF82XG4gICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgICAgICB8ICAgICAgIDEuIENPTlRBSU5FUiAgICAgIHxcbiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUxheW91dCA9ICdMQVlPVVRfMScgfCAnTEFZT1VUXzInIHwgJ0xBWU9VVF8zJyB8ICdMQVlPVVRfNCcgfCAnTEFZT1VUXzUnIHwgJ0xBWU9VVF82JztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdlTGF5b3V0Q29uZmlnIHtcbiAgc3R5bGVzPzogc3RyaW5nO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { flatten } from 'lodash';
1
+ import { flatten, omit } from 'lodash';
2
2
  import { CONFIG } from '../cms.elements';
3
3
  import { IOPlugin } from '../plugins/io.plugin';
4
4
  const EXPORTED_CLASS_REGEX = /export class (\S+)/;
@@ -25,18 +25,14 @@ export const elementToMetadata = (el, parentPath) => {
25
25
  styles, children: el.children.map(child => elementToMetadata(child, path)) });
26
26
  };
27
27
  export const metadataToElement = (metadata, recursive = true) => {
28
- const elMetadata = {
29
- name: metadata.name,
30
- isShared: metadata.isShared,
31
- type: metadata.type,
32
- model: metadata.model,
33
- module: metadata.module,
34
- reference: metadata.reference,
35
- inputs: metadata.inputs,
36
- outputs: metadata.outputs,
37
- children: metadata.children.map(({ name }) => name),
38
- configuredStyles: metadata.configuredStyles,
39
- };
28
+ const cleanMetadata = omit(metadata, [
29
+ 'path',
30
+ 'template',
31
+ 'styles',
32
+ 'script',
33
+ 'metadata',
34
+ ]);
35
+ const elMetadata = Object.assign(Object.assign({}, cleanMetadata), { children: metadata.children.map(({ name }) => name) });
40
36
  const normalizedElMetadata = normalizeElementMetadata(elMetadata);
41
37
  if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {
42
38
  throw new UiBuildError(`'${metadata.name}' component script is missing an exported class`, metadata);
@@ -158,4 +154,4 @@ export function flattenElements(elements) {
158
154
  export function isSharedElement(el) {
159
155
  return Boolean(el.isShared) && el.type !== 'REFERENCE';
160
156
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy91dGlscy9lbGVtZW50LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxNQUFNLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO0FBQ2xELE1BQU0sd0JBQXdCLEdBQUcsMERBQTBELENBQUM7QUFFNUYsTUFBTSxPQUFPLFlBQWEsU0FBUSxLQUFLO0lBRXJDLFlBQVksT0FBZSxFQUFFLGdCQUFpQztRQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEVBQWEsRUFBRSxVQUFtQixFQUFtQixFQUFFOztJQUN2RixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxD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LElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJRWxlbWVudCB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ09ORklHIH0gZnJvbSAnLi4vY21zLmVsZW1lbnRzJztcbmltcG9ydCB7IElPUGx1Z2luIH0gZnJvbSAnLi4vcGx1Z2lucy9pby5wbHVnaW4nO1xuaW1wb3J0IHsgRWxlbWVudENvbmZpZywgRWxlbWVudERlZmF1bHRNZXRhZGF0YSwgRWxlbWVudE1ldGFkYXRhLCBFbGVtZW50TW9kZWwsIEVMRU1FTlRfVFlQRSB9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgRVhQT1JURURfQ0xBU1NfUkVHRVggPSAvZXhwb3J0IGNsYXNzIChcXFMrKS87XG5jb25zdCBNRVRBREFUQV9ERUNPUkFUT1JfUkVHRVggPSAvQEVsZW1lbnREZWZpbml0aW9uXFwoKFtcXHNcXFNdKylcXCkoXFxufFxcclxcbnwuKSpleHBvcnQgY2xhc3MvZztcblxuZXhwb3J0IGNsYXNzIFVpQnVpbGRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIGFmZmVjdGVkTWV0YWRhdGE6IEVsZW1lbnRNZXRhZGF0YTtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBhZmZlY3RlZE1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGEpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgdGhpcy5hZmZlY3RlZE1ldGFkYXRhID0gYWZmZWN0ZWRNZXRhZGF0YTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZWxlbWVudFRvTWV0YWRhdGEgPSAoZWw6IFVJRWxlbWVudCwgcGFyZW50UGF0aD86IHN0cmluZyk6IEVsZW1lbnRNZXRhZGF0YSA9PiB7XG4gIGNvbnN0IHNjcmlwdCA9IGVsLnNjcmlwdCAmJiB3aW5kb3cuYXRvYihlbC5zY3JpcHQpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IGVsLnRlbXBsYXRlICYmIHdpbmRvdy5hdG9iKGVsLnRlbXBsYXRlKTtcbiAgY29uc3Qgc3R5bGVzID0gZWwuc3R5bGVzICYmIHdpbmRvdy5hdG9iKGVsLnN0eWxlcyk7XG5cbiAgY29uc3QgZXhwb3J0ZWRDbGFzc05hbWUgPSBzY3JpcHQgJiYgKEVYUE9SVEVEX0NMQVNTX1JFR0VYLmV4ZWMoc2NyaXB0KSA/PyBbXSlbMV07XG5cbiAgaWYgKCFleHBvcnRlZENsYXNzTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNjcmlwdCBkb2Vzbid0IGhhdmUgZXhwb3J0ZWQgY2xhc3NcIik7XG4gIH1cblxuICBjb25zdCBlbGVtZW50TWV0YWRhdGEgPSBleHRyYWN0RWxlbWVudE1ldGFkYXRhKHNjcmlwdCB8fCAnJyk7XG4gIGNvbnN0IHBhdGggPSAocGFyZW50UGF0aCA/IHBhcmVudFBhdGggKyAnLycgOiAnJykgKyBlbGVtZW50TWV0YWRhdGEubmFtZTtcblxuICByZXR1cm4ge1xuICAgIC4uLmVsZW1lbnRNZXRhZGF0YSxcbiAgICBwYXRoLFxuICAgIHNjcmlwdDogc2NyaXB0Py5yZXBsYWNlKE1FVEFEQVRBX0RFQ09SQVRPUl9SRUdFWCwgJ2V4cG9ydCBjbGFzcycpLFxuICAgIHRlbXBsYXRlLFxuICAgIHN0eWxlcyxcbiAgICBjaGlsZHJlbjogZWwuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGVsZW1lbnRUb01ldGFkYXRhKGNoaWxkLCBwYXRoKSksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGFUb0VsZW1lbnQgPSAobWV0YWRhdGE6IEVsZW1lbnRNZXRhZGF0YSwgcmVjdXJzaXZlOiBib29sZWFuID0gdHJ1ZSk6IFVJRWxlbWVudCA9PiB7XG4gIGNvbnN0IGVsTWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEgPSB7XG4gICAgbmFtZTogbWV0YWRhdGEubmFtZSxcbiAgICBpc1NoYXJlZDogbWV0YWRhdGEuaXNTaGFyZWQsXG4gICAgdHlwZTogbWV0YWRhdGEudHlwZSxcbiAgICBtb2RlbDogbWV0YWRhdGEubW9kZWwsXG4gICAgbW9kdWxlOiBtZXRhZGF0YS5tb2R1bGUsXG4gICAgcmVmZXJlbmNlOiBtZXRhZGF0YS5yZWZlcmVuY2UsXG4gICAgaW5wdXRzOiBtZXRhZGF0YS5pbnB1dHMsXG4gICAgb3V0cHV0czogbWV0YWRhdGEub3V0cHV0cyxcbiAgICBjaGlsZHJlbjogbWV0YWRhdGEuY2hpbGRyZW4ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSksXG4gICAgY29uZmlndXJlZFN0eWxlczogbWV0YWRhdGEuY29uZmlndXJlZFN0eWxlcyxcbiAgfTtcbiAgY29uc3Qgbm9ybWFsaXplZEVsTWV0YWRhdGEgPSBub3JtYWxpemVFbGVtZW50TWV0YWRhdGEoZWxNZXRhZGF0YSk7XG5cbiAgaWYgKCFtZXRhZGF0YS5zY3JpcHQgfHwgIUVYUE9SVEVEX0NMQVNTX1JFR0VYLnRlc3QobWV0YWRhdGEuc2NyaXB0KSkge1xuICAgIHRocm93IG5ldyBVaUJ1aWxkRXJyb3IoYCcke21ldGFkYXRhLm5hbWV9JyBjb21wb25lbnQgc2NyaXB0IGlzIG1pc3NpbmcgYW4gZXhwb3J0ZWQgY2xhc3NgLCBtZXRhZGF0YSk7XG4gIH1cblxuICBjb25zdCBzY3JpcHQgPVxuICAgIG1ldGFkYXRhLnNjcmlwdCAmJlxuICAgIHdpbmRvdy5idG9hKFxuICAgICAgbWV0YWRhdGEuc2NyaXB0LnJlcGxhY2UoXG4gICAgICAgIEVYUE9SVEVEX0NMQVNTX1JFR0VYLFxuICAgICAgICBgQEVsZW1lbnREZWZpbml0aW9uKCR7c3RyaW5naWZ5RWxlbWVudE1ldGFkYXRhKG5vcm1hbGl6ZWRFbE1ldGFkYXRhKX0pXFxuZXhwb3J0IGNsYXNzIFNjcmlwdGAsXG4gICAgICApLFxuICAgICk7XG4gIGNvbnN0IHRlbXBsYXRlID0gbWV0YWRhdGEudGVtcGxhdGUgJiYgd2luZG93LmJ0b2EobWV0YWRhdGEudGVtcGxhdGUpO1xuICBjb25zdCBzdHlsZXMgPSBtZXRhZGF0YS5zdHlsZXMgJiYgd2luZG93LmJ0b2EobWV0YWRhdGEuc3R5bGVzKTtcblxuICByZXR1cm4ge1xuICAgIHNjcmlwdCxcbiAgICB0ZW1wbGF0ZSxcbiAgICBzdHlsZXMsXG4gICAgY2hpbGRyZW46IHJlY3Vyc2l2ZSA/IG1ldGFkYXRhLmNoaWxkcmVuLm1hcChtZXRhID0+IG1ldGFkYXRhVG9FbGVtZW50KG1ldGEpKSA6IFtdLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZUVsZW1lbnRNZXRhZGF0YSA9IChlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEpOiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7IC4uLmVsZW1lbnRNZXRhZGF0YSB9O1xuXG4gIC8vIG1vZGVsXG4gIGNvbnN0IHsgbGluZUl0ZW0sIHBhdGggfSA9IG1ldGFkYXRhLm1vZGVsID8/IHt9O1xuICBjb25zdCBtb2RlbDogRWxlbWVudE1vZGVsIHwgdW5kZWZpbmVkID0gbGluZUl0ZW0gPyB7IGxpbmVJdGVtIH0gOiBwYXRoID8geyBwYXRoIH0gOiB1bmRlZmluZWQ7XG4gIGlmIChtb2RlbCkge1xuICAgIG1ldGFkYXRhLm1vZGVsID0gbW9kZWw7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIG1ldGFkYXRhLm1vZGVsO1xuICB9XG5cbiAgLy8gbW9kdWxlXG4gIGlmICghbWV0YWRhdGEubW9kdWxlKSB7XG4gICAgZGVsZXRlIG1ldGFkYXRhLm1vZHVsZTtcbiAgfVxuXG4gIC8vIHJlZmVyZW5jZVxuICBpZiAoIW1ldGFkYXRhLnJlZmVyZW5jZSkge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5yZWZlcmVuY2U7XG4gIH1cblxuICAvLyBpbnB1dHNcbiAgY29uc3QgaW5wdXRzID0gT2JqZWN0LmVudHJpZXMobWV0YWRhdGEuaW5wdXRzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfHwgbnVsbCB9O1xuICB9LCB7fSk7XG4gIGlmIChpbnB1dHMgJiYgT2JqZWN0LmtleXMoaW5wdXRzKS5sZW5ndGggPiAwKSB7XG4gICAgbWV0YWRhdGEuaW5wdXRzID0gaW5wdXRzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5pbnB1dHM7XG4gIH1cblxuICAvLyBvdXRwdXRzXG4gIGNvbnN0IG91dHB1dHMgPSBPYmplY3QuZW50cmllcyhtZXRhZGF0YS5vdXRwdXRzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfHwgbnVsbCB9O1xuICB9LCB7fSk7XG4gIGlmIChvdXRwdXRzICYmIE9iamVjdC5rZXlzKG91dHB1dHMpLmxlbmd0aCA+IDApIHtcbiAgICBtZXRhZGF0YS5vdXRwdXRzID0gb3V0cHV0cztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgbWV0YWRhdGEub3V0cHV0cztcbiAgfVxuXG4gIC8vIGNoaWxkcmVuXG4gIGlmICghbWV0YWRhdGEuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5jaGlsZHJlbjtcbiAgfVxuXG4gIC8vIGlzU2hhcmVkXG4gIGlmICghbWV0YWRhdGEuaXNTaGFyZWQpIHtcbiAgICBkZWxldGUgbWV0YWRhdGEuaXNTaGFyZWQ7XG4gIH1cblxuICAvLyBjb25maWd1cmVkU3R5bGVzXG4gIGlmICghbWV0YWRhdGEuY29uZmlndXJlZFN0eWxlcykge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5jb25maWd1cmVkU3R5bGVzO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFbGVtZW50TWV0YWRhdGEgPSAoc2NyaXB0OiBzdHJpbmcpOiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhID0+IHtcbiAgY29uc3QgbWV0YWRhdGFTdHJpbmcgPSAoTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYLmV4ZWMoc2NyaXB0KSA/PyBbXSlbMV07XG5cbiAgLy8gbmVlZCB0byByZXNldCByZWdleCBsYXN0IGluZGV4IHRvIHByZXZlbnQgbnVsbCByZXN1bHQgZm9yIG5leHQgZXhlY3V0aW9uXG4gIE1FVEFEQVRBX0RFQ09SQVRPUl9SRUdFWC5sYXN0SW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXcgRnVuY3Rpb24oYHJldHVybiAke21ldGFkYXRhU3RyaW5nfWApKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZXh0ZW5kRWxlbWVudE1ldGFkYXRhID0gKHNjcmlwdDogc3RyaW5nLCBleHRlbmQ6IFBhcnRpYWw8RWxlbWVudERlZmF1bHRNZXRhZGF0YT4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtZXRhZGF0YVN0cmluZyA9IChNRVRBREFUQV9ERUNPUkFUT1JfUkVHRVguZXhlYyhzY3JpcHQpID8/IFtdKVsxXTtcblxuICAvLyBuZWVkIHRvIHJlc2V0IHJlZ2V4IGxhc3QgaW5kZXggdG8gcHJldmVudCBudWxsIHJlc3VsdCBmb3IgbmV4dCBleGVjdXRpb25cbiAgTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYLmxhc3RJbmRleCA9IDA7XG5cbiAgaWYgKCFtZXRhZGF0YVN0cmluZykge1xuICAgIHJldHVybiBzY3JpcHQ7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkID0geyAuLi5uZXcgRnVuY3Rpb24oYHJldHVybiAke21ldGFkYXRhU3RyaW5nfWApKCksIC4uLmV4dGVuZCB9O1xuICByZXR1cm4gc2NyaXB0LnJlcGxhY2UobWV0YWRhdGFTdHJpbmcsIHN0cmluZ2lmeUVsZW1lbnRNZXRhZGF0YSh1cGRhdGVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudENvbmZpZyA9ICh0eXBlOiBFTEVNRU5UX1RZUEUpOiBFbGVtZW50Q29uZmlnID0+IHtcbiAgcmV0dXJuIENPTkZJR1t0eXBlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBkb2VzRWxlbWVudFN1cHBvcnRJTyA9ICh0eXBlOiBFTEVNRU5UX1RZUEUpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGdldEVsZW1lbnRDb25maWcodHlwZSkucGx1Z2lucz8uaW5jbHVkZXMoSU9QbHVnaW4pID8/IGZhbHNlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVsZW1lbnRNZXRhZGF0YShlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEpOiBzdHJpbmcge1xuICBjb25zdCBjbGVhbmVkID0gSlNPTi5zdHJpbmdpZnkoZWxlbWVudE1ldGFkYXRhLCBudWxsLCAyKTtcblxuICByZXR1cm4gY2xlYW5lZC5yZXBsYWNlKC9eW1xcdCBdKlwiW146XFxuXFxyXSsoPzwhXFxcXClcIjovZ20sIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgIHJldHVybiBtYXRjaC5yZXBsYWNlKC9cIi9nLCAnJyk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgaXNWYWxpZFNjcmlwdCA9IChzY3JpcHQ/OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKCFzY3JpcHQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBleHBvcnRlZENsYXNzTmFtZSA9IHNjcmlwdCAmJiAoRVhQT1JURURfQ0xBU1NfUkVHRVguZXhlYyhzY3JpcHQpID8/IFtdKVsxXTtcbiAgaWYgKCFleHBvcnRlZENsYXNzTmFtZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG1ldGEgPSBleHRyYWN0RWxlbWVudE1ldGFkYXRhKHNjcmlwdCk7XG4gIGlmICghbWV0YS5uYW1lIHx8ICFtZXRhLnR5cGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuRWxlbWVudHMoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICByZXR1cm4gZmxhdHRlbihlbGVtZW50cy5tYXAoZWwgPT4gW2VsLCAuLi5mbGF0dGVuRWxlbWVudHMoZWwuY2hpbGRyZW4pXSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTaGFyZWRFbGVtZW50KGVsOiBFbGVtZW50TWV0YWRhdGEpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4oZWwuaXNTaGFyZWQpICYmIGVsLnR5cGUgIT09ICdSRUZFUkVOQ0UnO1xufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy91dGlscy9lbGVtZW50LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHaEQsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztBQUNsRCxNQUFNLHdCQUF3QixHQUFHLDBEQUEwRCxDQUFDO0FBRTVGLE1BQU0sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUVyQyxZQUFZLE9BQWUsRUFBRSxnQkFBaUM7UUFDNUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFhLEVBQUUsVUFBbUIsRUFBbUIsRUFBRTs7SUFDdkYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxN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QUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFlLEVBQVcsRUFBRTs7SUFDeEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQUEsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUM1QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQTJCO0lBQ3pELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsRUFBbUI7SUFDakQsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUVsZW1lbnQgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBmbGF0dGVuLCBvbWl0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENPTkZJRyB9IGZyb20gJy4uL2Ntcy5lbGVtZW50cyc7XG5pbXBvcnQgeyBJT1BsdWdpbiB9IGZyb20gJy4uL3BsdWdpbnMvaW8ucGx1Z2luJztcbmltcG9ydCB7IEVMRU1FTlRfVFlQRSwgRWxlbWVudENvbmZpZywgRWxlbWVudERlZmF1bHRNZXRhZGF0YSwgRWxlbWVudE1ldGFkYXRhLCBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IEVYUE9SVEVEX0NMQVNTX1JFR0VYID0gL2V4cG9ydCBjbGFzcyAoXFxTKykvO1xuY29uc3QgTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYID0gL0BFbGVtZW50RGVmaW5pdGlvblxcKChbXFxzXFxTXSspXFwpKFxcbnxcXHJcXG58LikqZXhwb3J0IGNsYXNzL2c7XG5cbmV4cG9ydCBjbGFzcyBVaUJ1aWxkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBhZmZlY3RlZE1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGE7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYWZmZWN0ZWRNZXRhZGF0YTogRWxlbWVudE1ldGFkYXRhKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIHRoaXMuYWZmZWN0ZWRNZXRhZGF0YSA9IGFmZmVjdGVkTWV0YWRhdGE7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGVsZW1lbnRUb01ldGFkYXRhID0gKGVsOiBVSUVsZW1lbnQsIHBhcmVudFBhdGg/OiBzdHJpbmcpOiBFbGVtZW50TWV0YWRhdGEgPT4ge1xuICBjb25zdCBzY3JpcHQgPSBlbC5zY3JpcHQgJiYgd2luZG93LmF0b2IoZWwuc2NyaXB0KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBlbC50ZW1wbGF0ZSAmJiB3aW5kb3cuYXRvYihlbC50ZW1wbGF0ZSk7XG4gIGNvbnN0IHN0eWxlcyA9IGVsLnN0eWxlcyAmJiB3aW5kb3cuYXRvYihlbC5zdHlsZXMpO1xuXG4gIGNvbnN0IGV4cG9ydGVkQ2xhc3NOYW1lID0gc2NyaXB0ICYmIChFWFBPUlRFRF9DTEFTU19SRUdFWC5leGVjKHNjcmlwdCkgPz8gW10pWzFdO1xuXG4gIGlmICghZXhwb3J0ZWRDbGFzc05hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTY3JpcHQgZG9lc24ndCBoYXZlIGV4cG9ydGVkIGNsYXNzXCIpO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudE1ldGFkYXRhID0gZXh0cmFjdEVsZW1lbnRNZXRhZGF0YShzY3JpcHQgfHwgJycpO1xuICBjb25zdCBwYXRoID0gKHBhcmVudFBhdGggPyBwYXJlbnRQYXRoICsgJy8nIDogJycpICsgZWxlbWVudE1ldGFkYXRhLm5hbWU7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5lbGVtZW50TWV0YWRhdGEsXG4gICAgcGF0aCxcbiAgICBzY3JpcHQ6IHNjcmlwdD8ucmVwbGFjZShNRVRBREFUQV9ERUNPUkFUT1JfUkVHRVgsICdleHBvcnQgY2xhc3MnKSxcbiAgICB0ZW1wbGF0ZSxcbiAgICBzdHlsZXMsXG4gICAgY2hpbGRyZW46IGVsLmNoaWxkcmVuLm1hcChjaGlsZCA9PiBlbGVtZW50VG9NZXRhZGF0YShjaGlsZCwgcGF0aCkpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhVG9FbGVtZW50ID0gKG1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGEsIHJlY3Vyc2l2ZTogYm9vbGVhbiA9IHRydWUpOiBVSUVsZW1lbnQgPT4ge1xuICBjb25zdCBjbGVhbk1ldGFkYXRhID0gb21pdDxFbGVtZW50TWV0YWRhdGEsIGtleW9mIE9taXQ8RWxlbWVudE1ldGFkYXRhLCBrZXlvZiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhPj4obWV0YWRhdGEsIFtcbiAgICAncGF0aCcsXG4gICAgJ3RlbXBsYXRlJyxcbiAgICAnc3R5bGVzJyxcbiAgICAnc2NyaXB0JyxcbiAgICAnbWV0YWRhdGEnLFxuICBdKTtcbiAgY29uc3QgZWxNZXRhZGF0YTogRWxlbWVudERlZmF1bHRNZXRhZGF0YSA9IHtcbiAgICAuLi5jbGVhbk1ldGFkYXRhLFxuICAgIGNoaWxkcmVuOiBtZXRhZGF0YS5jaGlsZHJlbi5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSxcbiAgfTtcbiAgY29uc3Qgbm9ybWFsaXplZEVsTWV0YWRhdGEgPSBub3JtYWxpemVFbGVtZW50TWV0YWRhdGEoZWxNZXRhZGF0YSk7XG5cbiAgaWYgKCFtZXRhZGF0YS5zY3JpcHQgfHwgIUVYUE9SVEVEX0NMQVNTX1JFR0VYLnRlc3QobWV0YWRhdGEuc2NyaXB0KSkge1xuICAgIHRocm93IG5ldyBVaUJ1aWxkRXJyb3IoYCcke21ldGFkYXRhLm5hbWV9JyBjb21wb25lbnQgc2NyaXB0IGlzIG1pc3NpbmcgYW4gZXhwb3J0ZWQgY2xhc3NgLCBtZXRhZGF0YSk7XG4gIH1cblxuICBjb25zdCBzY3JpcHQgPVxuICAgIG1ldGFkYXRhLnNjcmlwdCAmJlxuICAgIHdpbmRvdy5idG9hKFxuICAgICAgbWV0YWRhdGEuc2NyaXB0LnJlcGxhY2UoXG4gICAgICAgIEVYUE9SVEVEX0NMQVNTX1JFR0VYLFxuICAgICAgICBgQEVsZW1lbnREZWZpbml0aW9uKCR7c3RyaW5naWZ5RWxlbWVudE1ldGFkYXRhKG5vcm1hbGl6ZWRFbE1ldGFkYXRhKX0pXFxuZXhwb3J0IGNsYXNzIFNjcmlwdGAsXG4gICAgICApLFxuICAgICk7XG4gIGNvbnN0IHRlbXBsYXRlID0gbWV0YWRhdGEudGVtcGxhdGUgJiYgd2luZG93LmJ0b2EobWV0YWRhdGEudGVtcGxhdGUpO1xuICBjb25zdCBzdHlsZXMgPSBtZXRhZGF0YS5zdHlsZXMgJiYgd2luZG93LmJ0b2EobWV0YWRhdGEuc3R5bGVzKTtcblxuICByZXR1cm4ge1xuICAgIHNjcmlwdCxcbiAgICB0ZW1wbGF0ZSxcbiAgICBzdHlsZXMsXG4gICAgY2hpbGRyZW46IHJlY3Vyc2l2ZSA/IG1ldGFkYXRhLmNoaWxkcmVuLm1hcChtZXRhID0+IG1ldGFkYXRhVG9FbGVtZW50KG1ldGEpKSA6IFtdLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZUVsZW1lbnRNZXRhZGF0YSA9IChlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEpOiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7IC4uLmVsZW1lbnRNZXRhZGF0YSB9O1xuXG4gIC8vIG1vZGVsXG4gIGNvbnN0IHsgbGluZUl0ZW0sIHBhdGggfSA9IG1ldGFkYXRhLm1vZGVsID8/IHt9O1xuICBjb25zdCBtb2RlbDogRWxlbWVudE1vZGVsIHwgdW5kZWZpbmVkID0gbGluZUl0ZW0gPyB7IGxpbmVJdGVtIH0gOiBwYXRoID8geyBwYXRoIH0gOiB1bmRlZmluZWQ7XG4gIGlmIChtb2RlbCkge1xuICAgIG1ldGFkYXRhLm1vZGVsID0gbW9kZWw7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIG1ldGFkYXRhLm1vZGVsO1xuICB9XG5cbiAgLy8gbW9kdWxlXG4gIGlmICghbWV0YWRhdGEubW9kdWxlKSB7XG4gICAgZGVsZXRlIG1ldGFkYXRhLm1vZHVsZTtcbiAgfVxuXG4gIC8vIHJlZmVyZW5jZVxuICBpZiAoIW1ldGFkYXRhLnJlZmVyZW5jZSkge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5yZWZlcmVuY2U7XG4gIH1cblxuICAvLyBpbnB1dHNcbiAgY29uc3QgaW5wdXRzID0gT2JqZWN0LmVudHJpZXMobWV0YWRhdGEuaW5wdXRzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfHwgbnVsbCB9O1xuICB9LCB7fSk7XG4gIGlmIChpbnB1dHMgJiYgT2JqZWN0LmtleXMoaW5wdXRzKS5sZW5ndGggPiAwKSB7XG4gICAgbWV0YWRhdGEuaW5wdXRzID0gaW5wdXRzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5pbnB1dHM7XG4gIH1cblxuICAvLyBvdXRwdXRzXG4gIGNvbnN0IG91dHB1dHMgPSBPYmplY3QuZW50cmllcyhtZXRhZGF0YS5vdXRwdXRzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfHwgbnVsbCB9O1xuICB9LCB7fSk7XG4gIGlmIChvdXRwdXRzICYmIE9iamVjdC5rZXlzKG91dHB1dHMpLmxlbmd0aCA+IDApIHtcbiAgICBtZXRhZGF0YS5vdXRwdXRzID0gb3V0cHV0cztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgbWV0YWRhdGEub3V0cHV0cztcbiAgfVxuXG4gIC8vIGNoaWxkcmVuXG4gIGlmICghbWV0YWRhdGEuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5jaGlsZHJlbjtcbiAgfVxuXG4gIC8vIGlzU2hhcmVkXG4gIGlmICghbWV0YWRhdGEuaXNTaGFyZWQpIHtcbiAgICBkZWxldGUgbWV0YWRhdGEuaXNTaGFyZWQ7XG4gIH1cblxuICAvLyBjb25maWd1cmVkU3R5bGVzXG4gIGlmICghbWV0YWRhdGEuY29uZmlndXJlZFN0eWxlcykge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5jb25maWd1cmVkU3R5bGVzO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFbGVtZW50TWV0YWRhdGEgPSAoc2NyaXB0OiBzdHJpbmcpOiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhID0+IHtcbiAgY29uc3QgbWV0YWRhdGFTdHJpbmcgPSAoTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYLmV4ZWMoc2NyaXB0KSA/PyBbXSlbMV07XG5cbiAgLy8gbmVlZCB0byByZXNldCByZWdleCBsYXN0IGluZGV4IHRvIHByZXZlbnQgbnVsbCByZXN1bHQgZm9yIG5leHQgZXhlY3V0aW9uXG4gIE1FVEFEQVRBX0RFQ09SQVRPUl9SRUdFWC5sYXN0SW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXcgRnVuY3Rpb24oYHJldHVybiAke21ldGFkYXRhU3RyaW5nfWApKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZXh0ZW5kRWxlbWVudE1ldGFkYXRhID0gKHNjcmlwdDogc3RyaW5nLCBleHRlbmQ6IFBhcnRpYWw8RWxlbWVudERlZmF1bHRNZXRhZGF0YT4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtZXRhZGF0YVN0cmluZyA9IChNRVRBREFUQV9ERUNPUkFUT1JfUkVHRVguZXhlYyhzY3JpcHQpID8/IFtdKVsxXTtcblxuICAvLyBuZWVkIHRvIHJlc2V0IHJlZ2V4IGxhc3QgaW5kZXggdG8gcHJldmVudCBudWxsIHJlc3VsdCBmb3IgbmV4dCBleGVjdXRpb25cbiAgTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYLmxhc3RJbmRleCA9IDA7XG5cbiAgaWYgKCFtZXRhZGF0YVN0cmluZykge1xuICAgIHJldHVybiBzY3JpcHQ7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkID0geyAuLi5uZXcgRnVuY3Rpb24oYHJldHVybiAke21ldGFkYXRhU3RyaW5nfWApKCksIC4uLmV4dGVuZCB9O1xuICByZXR1cm4gc2NyaXB0LnJlcGxhY2UobWV0YWRhdGFTdHJpbmcsIHN0cmluZ2lmeUVsZW1lbnRNZXRhZGF0YSh1cGRhdGVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudENvbmZpZyA9ICh0eXBlOiBFTEVNRU5UX1RZUEUpOiBFbGVtZW50Q29uZmlnID0+IHtcbiAgcmV0dXJuIENPTkZJR1t0eXBlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBkb2VzRWxlbWVudFN1cHBvcnRJTyA9ICh0eXBlOiBFTEVNRU5UX1RZUEUpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGdldEVsZW1lbnRDb25maWcodHlwZSkucGx1Z2lucz8uaW5jbHVkZXMoSU9QbHVnaW4pID8/IGZhbHNlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVsZW1lbnRNZXRhZGF0YShlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEpOiBzdHJpbmcge1xuICBjb25zdCBjbGVhbmVkID0gSlNPTi5zdHJpbmdpZnkoZWxlbWVudE1ldGFkYXRhLCBudWxsLCAyKTtcblxuICByZXR1cm4gY2xlYW5lZC5yZXBsYWNlKC9eW1xcdCBdKlwiW146XFxuXFxyXSsoPzwhXFxcXClcIjovZ20sIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgIHJldHVybiBtYXRjaC5yZXBsYWNlKC9cIi9nLCAnJyk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgaXNWYWxpZFNjcmlwdCA9IChzY3JpcHQ/OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKCFzY3JpcHQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBleHBvcnRlZENsYXNzTmFtZSA9IHNjcmlwdCAmJiAoRVhQT1JURURfQ0xBU1NfUkVHRVguZXhlYyhzY3JpcHQpID8/IFtdKVsxXTtcbiAgaWYgKCFleHBvcnRlZENsYXNzTmFtZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG1ldGEgPSBleHRyYWN0RWxlbWVudE1ldGFkYXRhKHNjcmlwdCk7XG4gIGlmICghbWV0YS5uYW1lIHx8ICFtZXRhLnR5cGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuRWxlbWVudHMoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICByZXR1cm4gZmxhdHRlbihlbGVtZW50cy5tYXAoZWwgPT4gW2VsLCAuLi5mbGF0dGVuRWxlbWVudHMoZWwuY2hpbGRyZW4pXSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTaGFyZWRFbGVtZW50KGVsOiBFbGVtZW50TWV0YWRhdGEpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4oZWwuaXNTaGFyZWQpICYmIGVsLnR5cGUgIT09ICdSRUZFUkVOQ0UnO1xufVxuIl19