@gravitee/ui-particles-angular 7.37.5-renovate-all-devdependencies-minor-patch-c2a0813 → 7.38.0-add-oninit-monaco-editor-3bf618b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/gio-clipboard/gio-clipboard-copy-icon.component.mjs +17 -11
- package/esm2020/lib/gio-clipboard/gio-clipboard-copy-wrapper.component.mjs +13 -9
- package/esm2020/lib/gio-clipboard/gio-clipboard.base.component.mjs +22 -8
- package/esm2020/lib/gio-clipboard/gio-clipboard.module.mjs +5 -4
- package/esm2020/lib/gio-form-json-schema/type-component/code-editor-type.component.mjs +1 -1
- package/esm2020/lib/gio-form-tags-input/gio-form-tags-input.component.mjs +24 -7
- package/esm2020/lib/gio-form-tags-input/gio-form-tags-input.module.mjs +33 -4
- package/esm2020/lib/gio-loader/gio-loader.component.mjs +2 -2
- package/esm2020/lib/gio-monaco-editor/gio-monaco-editor.component.mjs +7 -3
- package/fesm2015/gravitee-ui-particles-angular.mjs +225 -154
- package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -1
- package/fesm2020/gravitee-ui-particles-angular.mjs +225 -154
- package/fesm2020/gravitee-ui-particles-angular.mjs.map +1 -1
- package/lib/gio-clipboard/gio-clipboard.base.component.d.ts +8 -2
- package/lib/gio-clipboard/gio-clipboard.module.d.ts +2 -1
- package/lib/gio-form-tags-input/gio-form-tags-input.component.d.ts +1 -0
- package/lib/gio-form-tags-input/gio-form-tags-input.module.d.ts +2 -1
- package/lib/gio-monaco-editor/gio-monaco-editor.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -24,36 +24,42 @@ export class GioClipboardCopyIconComponent extends GioClipboardComponent {
|
|
|
24
24
|
}
|
|
25
25
|
GioClipboardCopyIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardCopyIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
26
26
|
GioClipboardCopyIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioClipboardCopyIconComponent, selector: "gio-clipboard-copy-icon", usesInheritance: true, ngImport: i0, template: `
|
|
27
|
-
<
|
|
27
|
+
<button
|
|
28
28
|
#tooltip="matTooltip"
|
|
29
|
-
class="
|
|
29
|
+
class="btn"
|
|
30
|
+
[attr.aria-label]="label"
|
|
30
31
|
[class.clicked]="clicked"
|
|
31
32
|
[cdkCopyToClipboard]="contentToCopy"
|
|
32
33
|
(cdkCopyToClipboardCopied)="onCopied($event, tooltip)"
|
|
33
34
|
matRipple
|
|
34
35
|
[matRippleCentered]="true"
|
|
35
36
|
[matRippleUnbounded]="true"
|
|
36
|
-
[matTooltip]="
|
|
37
|
+
[matTooltip]="label"
|
|
37
38
|
[matTooltipPosition]="'after'"
|
|
38
|
-
|
|
39
|
+
(keyup.Space)="onKeyupSpace()"
|
|
39
40
|
>
|
|
40
|
-
|
|
41
|
+
<mat-icon>{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
|
|
42
|
+
</button>
|
|
43
|
+
`, isInline: true, styles: [".btn{padding:0;border:none;margin-left:4px;background:none;color:#616266;cursor:pointer;outline:inherit}.btn.clicked,.btn:hover,.btn:focus{color:#099}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i3.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
41
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardCopyIconComponent, decorators: [{
|
|
42
45
|
type: Component,
|
|
43
46
|
args: [{ selector: 'gio-clipboard-copy-icon', template: `
|
|
44
|
-
<
|
|
47
|
+
<button
|
|
45
48
|
#tooltip="matTooltip"
|
|
46
|
-
class="
|
|
49
|
+
class="btn"
|
|
50
|
+
[attr.aria-label]="label"
|
|
47
51
|
[class.clicked]="clicked"
|
|
48
52
|
[cdkCopyToClipboard]="contentToCopy"
|
|
49
53
|
(cdkCopyToClipboardCopied)="onCopied($event, tooltip)"
|
|
50
54
|
matRipple
|
|
51
55
|
[matRippleCentered]="true"
|
|
52
56
|
[matRippleUnbounded]="true"
|
|
53
|
-
[matTooltip]="
|
|
57
|
+
[matTooltip]="label"
|
|
54
58
|
[matTooltipPosition]="'after'"
|
|
55
|
-
|
|
59
|
+
(keyup.Space)="onKeyupSpace()"
|
|
56
60
|
>
|
|
57
|
-
|
|
61
|
+
<mat-icon>{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
|
|
62
|
+
</button>
|
|
63
|
+
`, styles: [".btn{padding:0;border:none;margin-left:4px;background:none;color:#616266;cursor:pointer;outline:inherit}.btn.clicked,.btn:hover,.btn:focus{color:#099}\n"] }]
|
|
58
64
|
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWNsaXBib2FyZC1jb3B5LWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tY2xpcGJvYXJkL2dpby1jbGlwYm9hcmQtY29weS1pY29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQXdCdkUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLHFCQUFxQjs7MkhBQTNELDZCQUE2QjsrR0FBN0IsNkJBQTZCLHNGQW5COUI7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUOzRGQUVVLDZCQUE2QjtrQkF0QnpDLFNBQVM7K0JBQ0UseUJBQXlCLFlBRXpCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgR2lvQ2xpcGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9naW8tY2xpcGJvYXJkLmJhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWNsaXBib2FyZC1jb3B5LWljb24nLFxuICBzdHlsZVVybHM6IFsnLi9naW8tY2xpcGJvYXJkLWNvcHktaWNvbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgICN0b29sdGlwPVwibWF0VG9vbHRpcFwiXG4gICAgICBjbGFzcz1cImJ0blwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAgIFtjbGFzcy5jbGlja2VkXT1cImNsaWNrZWRcIlxuICAgICAgW2Nka0NvcHlUb0NsaXBib2FyZF09XCJjb250ZW50VG9Db3B5XCJcbiAgICAgIChjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQpPVwib25Db3BpZWQoJGV2ZW50LCB0b29sdGlwKVwiXG4gICAgICBtYXRSaXBwbGVcbiAgICAgIFttYXRSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcbiAgICAgIFttYXRSaXBwbGVVbmJvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJsYWJlbFwiXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidhZnRlcidcIlxuICAgICAgKGtleXVwLlNwYWNlKT1cIm9uS2V5dXBTcGFjZSgpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+e3sgY2xpY2tlZCA/ICdjaGVjaycgOiAnY29udGVudF9jb3B5JyB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEdpb0NsaXBib2FyZENvcHlJY29uQ29tcG9uZW50IGV4dGVuZHMgR2lvQ2xpcGJvYXJkQ29tcG9uZW50IHt9XG4iXX0=
|
|
@@ -25,9 +25,10 @@ export class GioClipboardCopyWrapperComponent extends GioClipboardComponent {
|
|
|
25
25
|
GioClipboardCopyWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardCopyWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
26
26
|
GioClipboardCopyWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioClipboardCopyWrapperComponent, selector: "[gioClipboardCopyWrapper]", usesInheritance: true, ngImport: i0, template: `
|
|
27
27
|
<ng-content></ng-content>
|
|
28
|
-
<
|
|
28
|
+
<button
|
|
29
29
|
#tooltip="matTooltip"
|
|
30
30
|
class="right"
|
|
31
|
+
[attr.aria-label]="label"
|
|
31
32
|
[class.clicked]="clicked"
|
|
32
33
|
[class.always-visible]="alwaysVisible"
|
|
33
34
|
[cdkCopyToClipboard]="contentToCopy"
|
|
@@ -35,19 +36,21 @@ GioClipboardCopyWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
35
36
|
matRipple
|
|
36
37
|
[matRippleCentered]="true"
|
|
37
38
|
[matRippleUnbounded]="true"
|
|
38
|
-
[matTooltip]="
|
|
39
|
+
[matTooltip]="label"
|
|
39
40
|
[matTooltipPosition]="'after'"
|
|
41
|
+
(keyup.Space)="onKeyupSpace()"
|
|
40
42
|
>
|
|
41
43
|
<mat-icon [inline]="true">{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
|
|
42
|
-
</
|
|
43
|
-
`, isInline: true, styles: [".right{margin-left:4px;color:#
|
|
44
|
+
</button>
|
|
45
|
+
`, isInline: true, styles: [".right{padding:0;border:none;margin-left:4px;background:none;color:#616266;cursor:pointer;outline:inherit}.right:not(.clicked,.always-visible){opacity:0}.right.clicked{color:#099;opacity:1}:host(:hover,:focus) .right{opacity:1}:host(:hover,:focus) .right:hover,:host(:hover,:focus) .right:focus{color:#099}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i3.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
44
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardCopyWrapperComponent, decorators: [{
|
|
45
47
|
type: Component,
|
|
46
48
|
args: [{ selector: '[gioClipboardCopyWrapper]', template: `
|
|
47
49
|
<ng-content></ng-content>
|
|
48
|
-
<
|
|
50
|
+
<button
|
|
49
51
|
#tooltip="matTooltip"
|
|
50
52
|
class="right"
|
|
53
|
+
[attr.aria-label]="label"
|
|
51
54
|
[class.clicked]="clicked"
|
|
52
55
|
[class.always-visible]="alwaysVisible"
|
|
53
56
|
[cdkCopyToClipboard]="contentToCopy"
|
|
@@ -55,11 +58,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
55
58
|
matRipple
|
|
56
59
|
[matRippleCentered]="true"
|
|
57
60
|
[matRippleUnbounded]="true"
|
|
58
|
-
[matTooltip]="
|
|
61
|
+
[matTooltip]="label"
|
|
59
62
|
[matTooltipPosition]="'after'"
|
|
63
|
+
(keyup.Space)="onKeyupSpace()"
|
|
60
64
|
>
|
|
61
65
|
<mat-icon [inline]="true">{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
|
|
62
|
-
</
|
|
63
|
-
`, styles: [".right{margin-left:4px;color:#
|
|
66
|
+
</button>
|
|
67
|
+
`, styles: [".right{padding:0;border:none;margin-left:4px;background:none;color:#616266;cursor:pointer;outline:inherit}.right:not(.clicked,.always-visible){opacity:0}.right.clicked{color:#099;opacity:1}:host(:hover,:focus) .right{opacity:1}:host(:hover,:focus) .right:hover,:host(:hover,:focus) .right:focus{color:#099}\n"] }]
|
|
64
68
|
}] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWNsaXBib2FyZC1jb3B5LXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tY2xpcGJvYXJkL2dpby1jbGlwYm9hcmQtY29weS13cmFwcGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztBQTJCdkUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHFCQUFxQjs7OEhBQTlELGdDQUFnQztrSEFBaEMsZ0NBQWdDLHdGQXJCakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQ7NEZBRVUsZ0NBQWdDO2tCQXpCNUMsU0FBUzsrQkFFRSwyQkFBMkIsWUFFM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdpb0NsaXBib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWNsaXBib2FyZC5iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tnaW9DbGlwYm9hcmRDb3B5V3JhcHBlcl0nLFxuICBzdHlsZVVybHM6IFsnLi9naW8tY2xpcGJvYXJkLWNvcHktd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8YnV0dG9uXG4gICAgICAjdG9vbHRpcD1cIm1hdFRvb2x0aXBcIlxuICAgICAgY2xhc3M9XCJyaWdodFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAgIFtjbGFzcy5jbGlja2VkXT1cImNsaWNrZWRcIlxuICAgICAgW2NsYXNzLmFsd2F5cy12aXNpYmxlXT1cImFsd2F5c1Zpc2libGVcIlxuICAgICAgW2Nka0NvcHlUb0NsaXBib2FyZF09XCJjb250ZW50VG9Db3B5XCJcbiAgICAgIChjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQpPVwib25Db3BpZWQoJGV2ZW50LCB0b29sdGlwKVwiXG4gICAgICBtYXRSaXBwbGVcbiAgICAgIFttYXRSaXBwbGVDZW50ZXJlZF09XCJ0cnVlXCJcbiAgICAgIFttYXRSaXBwbGVVbmJvdW5kZWRdPVwidHJ1ZVwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJsYWJlbFwiXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidhZnRlcidcIlxuICAgICAgKGtleXVwLlNwYWNlKT1cIm9uS2V5dXBTcGFjZSgpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gW2lubGluZV09XCJ0cnVlXCI+e3sgY2xpY2tlZCA/ICdjaGVjaycgOiAnY29udGVudF9jb3B5JyB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEdpb0NsaXBib2FyZENvcHlXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgR2lvQ2xpcGJvYXJkQ29tcG9uZW50IHt9XG4iXX0=
|
|
@@ -13,15 +13,18 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Directive, Input } from '@angular/core';
|
|
16
|
+
import { Directive, Input, ViewChild } from '@angular/core';
|
|
17
17
|
import * as i0 from "@angular/core";
|
|
18
|
+
import * as i1 from "@angular/cdk/clipboard";
|
|
18
19
|
export class GioClipboardComponent {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.
|
|
20
|
+
constructor(clipboard) {
|
|
21
|
+
this.clipboard = clipboard;
|
|
22
|
+
this.label = 'Copy to clipboard';
|
|
21
23
|
this.tooltipHideDelay = 0;
|
|
22
24
|
this.clicked = false;
|
|
23
25
|
this.contentToCopy = '';
|
|
24
26
|
this.alwaysVisible = false;
|
|
27
|
+
this.tabIndex = undefined;
|
|
25
28
|
}
|
|
26
29
|
onCopied(success, tooltip) {
|
|
27
30
|
tooltip.message = success ? 'Copied!' : 'Failed to copy!';
|
|
@@ -33,18 +36,29 @@ export class GioClipboardComponent {
|
|
|
33
36
|
}, 2000);
|
|
34
37
|
setTimeout(() => {
|
|
35
38
|
this.clicked = false;
|
|
36
|
-
tooltip.message = this.
|
|
39
|
+
tooltip.message = this.label;
|
|
37
40
|
tooltip.hideDelay = this.tooltipHideDelay;
|
|
38
41
|
}, 2500);
|
|
39
42
|
}
|
|
43
|
+
onKeyupSpace() {
|
|
44
|
+
this.clipboard.copy(this.contentToCopy);
|
|
45
|
+
if (this.tooltip) {
|
|
46
|
+
this.onCopied(true, this.tooltip);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
40
49
|
}
|
|
41
|
-
GioClipboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
-
GioClipboardComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioClipboardComponent, inputs: { contentToCopy: "contentToCopy", alwaysVisible: "alwaysVisible" }, ngImport: i0 });
|
|
50
|
+
GioClipboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardComponent, deps: [{ token: i1.Clipboard }], target: i0.ɵɵFactoryTarget.Directive });
|
|
51
|
+
GioClipboardComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioClipboardComponent, inputs: { contentToCopy: "contentToCopy", alwaysVisible: "alwaysVisible", tabIndex: "tabIndex" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0 });
|
|
43
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardComponent, decorators: [{
|
|
44
53
|
type: Directive
|
|
45
|
-
}], propDecorators: {
|
|
54
|
+
}], ctorParameters: function () { return [{ type: i1.Clipboard }]; }, propDecorators: { tooltip: [{
|
|
55
|
+
type: ViewChild,
|
|
56
|
+
args: ['tooltip']
|
|
57
|
+
}], contentToCopy: [{
|
|
46
58
|
type: Input
|
|
47
59
|
}], alwaysVisible: [{
|
|
48
60
|
type: Input
|
|
61
|
+
}], tabIndex: [{
|
|
62
|
+
type: Input
|
|
49
63
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWNsaXBib2FyZC5iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWNsaXBib2FyZC9naW8tY2xpcGJvYXJkLmJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLNUQsTUFBTSxPQUFnQixxQkFBcUI7SUFlekMsWUFBb0IsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQWRqQyxVQUFLLEdBQUcsbUJBQW1CLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFLaEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFFbkIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdEIsYUFBUSxHQUFHLFNBQVMsQ0FBQztJQUVlLENBQUM7SUFFckMsUUFBUSxDQUFDLE9BQWdCLEVBQUUsT0FBbUI7UUFDbkQsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDMUQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzVDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7bUhBdkNtQixxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUQxQyxTQUFTO2dHQU1xQixPQUFPO3NCQUFuQyxTQUFTO3VCQUFDLFNBQVM7Z0JBR2IsYUFBYTtzQkFEbkIsS0FBSztnQkFHQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHaW9DbGlwYm9hcmRDb21wb25lbnQge1xuICBwdWJsaWMgbGFiZWwgPSAnQ29weSB0byBjbGlwYm9hcmQnO1xuICBwdWJsaWMgdG9vbHRpcEhpZGVEZWxheSA9IDA7XG4gIHB1YmxpYyBjbGlja2VkID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgndG9vbHRpcCcpIHB1YmxpYyB0b29sdGlwITogTWF0VG9vbHRpcDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29udGVudFRvQ29weSA9ICcnO1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWx3YXlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWJJbmRleCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkKSB7fVxuXG4gIHB1YmxpYyBvbkNvcGllZChzdWNjZXNzOiBib29sZWFuLCB0b29sdGlwOiBNYXRUb29sdGlwKSB7XG4gICAgdG9vbHRpcC5tZXNzYWdlID0gc3VjY2VzcyA/ICdDb3BpZWQhJyA6ICdGYWlsZWQgdG8gY29weSEnO1xuICAgIHRvb2x0aXAuaGlkZURlbGF5ID0gMjAwMDtcbiAgICB0b29sdGlwLnNob3coKTtcbiAgICB0aGlzLmNsaWNrZWQgPSB0cnVlO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0b29sdGlwLmhpZGUoKTtcbiAgICB9LCAyMDAwKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jbGlja2VkID0gZmFsc2U7XG4gICAgICB0b29sdGlwLm1lc3NhZ2UgPSB0aGlzLmxhYmVsO1xuICAgICAgdG9vbHRpcC5oaWRlRGVsYXkgPSB0aGlzLnRvb2x0aXBIaWRlRGVsYXk7XG4gICAgfSwgMjUwMCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXl1cFNwYWNlKCkge1xuICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5jb250ZW50VG9Db3B5KTtcbiAgICBpZiAodGhpcy50b29sdGlwKSB7XG4gICAgICB0aGlzLm9uQ29waWVkKHRydWUsIHRoaXMudG9vbHRpcCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -19,20 +19,21 @@ import { MatRippleModule } from '@angular/material/core';
|
|
|
19
19
|
import { MatIconModule } from '@angular/material/icon';
|
|
20
20
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
21
21
|
import { ClipboardModule } from '@angular/cdk/clipboard';
|
|
22
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
22
23
|
import { GioClipboardCopyWrapperComponent } from './gio-clipboard-copy-wrapper.component';
|
|
23
24
|
import { GioClipboardCopyIconComponent } from './gio-clipboard-copy-icon.component';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
26
|
export class GioClipboardModule {
|
|
26
27
|
}
|
|
27
28
|
GioClipboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
28
|
-
GioClipboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardModule, declarations: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent], imports: [CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule], exports: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent] });
|
|
29
|
-
GioClipboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardModule, imports: [[CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule]] });
|
|
29
|
+
GioClipboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardModule, declarations: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent], imports: [CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule, MatButtonModule], exports: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent] });
|
|
30
|
+
GioClipboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardModule, imports: [[CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule, MatButtonModule]] });
|
|
30
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioClipboardModule, decorators: [{
|
|
31
32
|
type: NgModule,
|
|
32
33
|
args: [{
|
|
33
|
-
imports: [CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule],
|
|
34
|
+
imports: [CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule, MatButtonModule],
|
|
34
35
|
declarations: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent],
|
|
35
36
|
exports: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent],
|
|
36
37
|
}]
|
|
37
38
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWNsaXBib2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1jbGlwYm9hcmQvZ2lvLWNsaXBib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBT3BGLE1BQU0sT0FBTyxrQkFBa0I7O2dIQUFsQixrQkFBa0I7aUhBQWxCLGtCQUFrQixpQkFIZCxnQ0FBZ0MsRUFBRSw2QkFBNkIsYUFEcEUsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsYUFFaEcsZ0NBQWdDLEVBQUUsNkJBQTZCO2lIQUU5RCxrQkFBa0IsWUFKcEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDOzRGQUloRyxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQztvQkFDM0csWUFBWSxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsNkJBQTZCLENBQUM7b0JBQy9FLE9BQU8sRUFBRSxDQUFDLGdDQUFnQyxFQUFFLDZCQUE2QixDQUFDO2lCQUMzRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5pbXBvcnQgeyBHaW9DbGlwYm9hcmRDb3B5V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWNsaXBib2FyZC1jb3B5LXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb0NsaXBib2FyZENvcHlJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9naW8tY2xpcGJvYXJkLWNvcHktaWNvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXRSaXBwbGVNb2R1bGUsIENsaXBib2FyZE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbR2lvQ2xpcGJvYXJkQ29weVdyYXBwZXJDb21wb25lbnQsIEdpb0NsaXBib2FyZENvcHlJY29uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0dpb0NsaXBib2FyZENvcHlXcmFwcGVyQ29tcG9uZW50LCBHaW9DbGlwYm9hcmRDb3B5SWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0NsaXBib2FyZE1vZHVsZSB7fVxuIl19
|
|
@@ -42,7 +42,7 @@ GioFjsCodeEditorTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
42
42
|
[formControl]="formControl"
|
|
43
43
|
[languageConfig]="languageConfig"
|
|
44
44
|
></gio-monaco-editor>
|
|
45
|
-
`, isInline: true, styles: ["gio-monaco-editor{min-height:38px}\n"], components: [{ type: i1.GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: ["languageConfig", "options"] }], directives: [{ type: i2.GioMonacoEditorFormFieldDirective, selector: "[gioMonacoEditorFormField]", inputs: ["placeholder", "required", "disabled"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
|
+
`, isInline: true, styles: ["gio-monaco-editor{min-height:38px}\n"], components: [{ type: i1.GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: ["languageConfig", "options"], outputs: ["editorInit"] }], directives: [{ type: i2.GioMonacoEditorFormFieldDirective, selector: "[gioMonacoEditorFormField]", inputs: ["placeholder", "required", "disabled"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsCodeEditorTypeComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
48
|
args: [{
|
|
@@ -11,7 +11,8 @@ import * as i3 from "@angular/material/chips";
|
|
|
11
11
|
import * as i4 from "@angular/material/icon";
|
|
12
12
|
import * as i5 from "@angular/material/autocomplete";
|
|
13
13
|
import * as i6 from "@angular/material/core";
|
|
14
|
-
import * as i7 from "
|
|
14
|
+
import * as i7 from "../gio-loader/gio-loader.component";
|
|
15
|
+
import * as i8 from "@angular/common";
|
|
15
16
|
export class GioFormTagsInputComponent {
|
|
16
17
|
constructor(
|
|
17
18
|
// From ControlValueAccessor interface
|
|
@@ -42,6 +43,7 @@ export class GioFormTagsInputComponent {
|
|
|
42
43
|
this.useAutocompleteOptionValueOnly = false;
|
|
43
44
|
this._tagInput = null;
|
|
44
45
|
this.displayValueCache = {};
|
|
46
|
+
this.loading = false;
|
|
45
47
|
this._value = null;
|
|
46
48
|
// From MatFormFieldControl interface
|
|
47
49
|
this.stateChanges = new Subject();
|
|
@@ -69,7 +71,6 @@ export class GioFormTagsInputComponent {
|
|
|
69
71
|
}
|
|
70
72
|
set autocompleteOptions(v) {
|
|
71
73
|
this._autocompleteOptions = v;
|
|
72
|
-
this.initAutocomplete();
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Get the label of an option value.
|
|
@@ -87,8 +88,17 @@ export class GioFormTagsInputComponent {
|
|
|
87
88
|
};
|
|
88
89
|
}
|
|
89
90
|
set tagInput(v) {
|
|
91
|
+
if (v) {
|
|
92
|
+
this.fm.monitor(v.nativeElement).subscribe(origin => {
|
|
93
|
+
if (origin) {
|
|
94
|
+
this.initAutocomplete();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else if (this._tagInput) {
|
|
99
|
+
this.fm.stopMonitoring(this._tagInput.nativeElement);
|
|
100
|
+
}
|
|
90
101
|
this._tagInput = v;
|
|
91
|
-
this.initAutocomplete();
|
|
92
102
|
}
|
|
93
103
|
// From MatFormFieldControl interface
|
|
94
104
|
get value() {
|
|
@@ -149,6 +159,9 @@ export class GioFormTagsInputComponent {
|
|
|
149
159
|
ngOnDestroy() {
|
|
150
160
|
this.stateChanges.complete();
|
|
151
161
|
this.fm.stopMonitoring(this.elRef.nativeElement);
|
|
162
|
+
if (this._tagInput) {
|
|
163
|
+
this.fm.stopMonitoring(this._tagInput.nativeElement);
|
|
164
|
+
}
|
|
152
165
|
}
|
|
153
166
|
// From ControlValueAccess interface
|
|
154
167
|
setDisabledState(isDisabled) {
|
|
@@ -211,7 +224,9 @@ export class GioFormTagsInputComponent {
|
|
|
211
224
|
}
|
|
212
225
|
initAutocomplete() {
|
|
213
226
|
if (this._autocompleteOptions && this._tagInput?.nativeElement) {
|
|
214
|
-
this.autocompleteFilteredOptions$ = fromEvent(this._tagInput.nativeElement, 'keyup').pipe(startWith([]),
|
|
227
|
+
this.autocompleteFilteredOptions$ = fromEvent(this._tagInput.nativeElement, 'keyup').pipe(startWith([]), tap(() => {
|
|
228
|
+
this.loading = true;
|
|
229
|
+
}), switchMap(() => {
|
|
215
230
|
if (typeof this._autocompleteOptions === 'function') {
|
|
216
231
|
return this._autocompleteOptions(this._tagInput?.nativeElement.value ?? '').pipe(map(options => sanitizeAutocompleteOptions(options)),
|
|
217
232
|
// Add options to displayValueCache to avoid call on select
|
|
@@ -222,6 +237,8 @@ export class GioFormTagsInputComponent {
|
|
|
222
237
|
}));
|
|
223
238
|
}
|
|
224
239
|
return of(defaultAutocompleteFilter(this._autocompleteOptions ?? [], this._tagInput?.nativeElement.value ?? ''));
|
|
240
|
+
}), tap(() => {
|
|
241
|
+
this.loading = false;
|
|
225
242
|
}), distinctUntilChanged());
|
|
226
243
|
this.changeDetectorRef.detectChanges();
|
|
227
244
|
}
|
|
@@ -234,7 +251,7 @@ GioFormTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
234
251
|
provide: MatFormFieldControl,
|
|
235
252
|
useExisting: GioFormTagsInputComponent,
|
|
236
253
|
},
|
|
237
|
-
], viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-chip-list #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n <mat-chip\n *ngFor=\"let tag of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"removeChipToFormControl(tag)\"\n [disabled]=\"disabled\"\n >\n {{ _displayValueWith ? (_displayValueWith(tag) | async) : tag }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input\n *ngIf=\"!disabled\"\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions$ | async\" [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n</mat-chip-list>\n", styles: [""], components: [{ type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type:
|
|
254
|
+
], viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-chip-list #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n <mat-chip\n *ngFor=\"let tag of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"removeChipToFormControl(tag)\"\n [disabled]=\"disabled\"\n >\n {{ _displayValueWith ? (_displayValueWith(tag) | async) : tag }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input\n *ngIf=\"!disabled\"\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n <mat-option *ngIf=\"loading\" disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions$ | async\" [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n</mat-chip-list>\n", styles: [".loader-option{display:flex}.loader-option gio-loader{width:24px}\n"], components: [{ type: i3.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7.GioLoaderComponent, selector: "gio-loader" }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3.MatChipRemove, selector: "[matChipRemove]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }], pipes: { "async": i8.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
238
255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputComponent, decorators: [{
|
|
239
256
|
type: Component,
|
|
240
257
|
args: [{ selector: 'gio-form-tags-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -242,7 +259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
242
259
|
provide: MatFormFieldControl,
|
|
243
260
|
useExisting: GioFormTagsInputComponent,
|
|
244
261
|
},
|
|
245
|
-
], template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-chip-list #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n <mat-chip\n *ngFor=\"let tag of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"removeChipToFormControl(tag)\"\n [disabled]=\"disabled\"\n >\n {{ _displayValueWith ? (_displayValueWith(tag) | async) : tag }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input\n *ngIf=\"!disabled\"\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions$ | async\" [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n</mat-chip-list>\n", styles: [""] }]
|
|
262
|
+
], template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-chip-list #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n <mat-chip\n *ngFor=\"let tag of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"removeChipToFormControl(tag)\"\n [disabled]=\"disabled\"\n >\n {{ _displayValueWith ? (_displayValueWith(tag) | async) : tag }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n <input\n *ngIf=\"!disabled\"\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n <mat-option *ngIf=\"loading\" disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n <mat-option *ngFor=\"let option of autocompleteFilteredOptions$ | async\" [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n </mat-autocomplete>\n</mat-chip-list>\n", styles: [".loader-option{display:flex}.loader-option gio-loader{width:24px}\n"] }]
|
|
246
263
|
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
247
264
|
type: Optional
|
|
248
265
|
}, {
|
|
@@ -291,4 +308,4 @@ const sanitizeAutocompleteOptions = (options) => {
|
|
|
291
308
|
return { value: option, label: option };
|
|
292
309
|
});
|
|
293
310
|
};
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBR1QsV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQW9CdEYsTUFBTSxPQUFPLHlCQUF5QjtJQXFLcEM7SUFDRSxzQ0FBc0M7SUFDRixTQUFvQixFQUN2QyxLQUFpQixFQUNqQixFQUFnQixFQUN6QixpQkFBb0M7UUFIUixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3ZDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUN6QixzQkFBaUIsR0FBakIs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QUksT0FBTyxJQUFJLE1BQU0sRUFBRTtZQUNsRixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzFDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbWVtYmVyLWFjY2Vzc2liaWxpdHlcblxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIFRhZ3MgPSBBcnJheTxzdHJpbmc+O1xuXG5leHBvcnQgdHlwZSBBdXRvY29tcGxldGVPcHRpb25zID0gKHN0cmluZyB8IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KVtdO1xuXG5leHBvcnQgdHlwZSBEaXNwbGF5VmFsdWVXaXRoRm4gPSAodmFsdWU6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tZm9ybS10YWdzLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1mb3JtLXRhZ3MtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tZm9ybS10YWdzLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IEdpb0Zvcm1UYWdzSW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8VGFncz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIHB1YmxpYyBfb25DaGFuZ2U6IChfdGFnczogVGFncyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHB1YmxpYyBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgcHVibGljIGFyaWFMYWJlbCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZGRPbkJsdXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIGEgdGFnIGlzIGFkZGVkLCBpdCBjYW4gYmUgdXNlZCB0byBob29rIGluc2lkZSB0aGVcbiAgICogYWRkaXRpb24gcHJvY2VzcyB0bywgZm9yIGluc3RhbmNlLCBoYXZlIGN1c3RvbSB2YWxpZGF0aW9uIGluIHRoZSBjb21wb25lbnRzXG4gICAqIHVzaW5nIGBnaW8tZm9ybS10YWdzLWlucHV0YC5cbiAgICpcbiAgICogUGFyYW1ldGVycyBhcmU6XG4gICAqIC0gYHRhZ2A6IFRoZSB2YWx1ZSBvZiB0aGUgdGFnIHRvIGFkZFxuICAgKiAtIGB2YWxpZGF0aW9uQ2JgOiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHZhbGlkYXRpb24gaXMgZG9uZS4gSWZcbiAgICogY2FsbGVkIHdpdGggYHRydWVgIGl0IHdpbGwgYWRkIHRoZSB0YWcsIG90aGVyd2lzZSBpdCB3aWxsIGp1c3QgaWdub3JlIGl0XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFnVmFsaWRhdGlvbkhvb2s6ICgodGFnOiBzdHJpbmcsIHZhbGlkYXRpb25DYjogKHNob3VsZEFkZFRhZzogYm9vbGVhbikgPT4gdm9pZCkgPT4gdm9pZCkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdXRvY29tcGxldGVPcHRpb25zKHY6IEF1dG9jb21wbGV0ZU9wdGlvbnMgfCAoKHNlYXJjaDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZU9wdGlvbnM+KSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPSB2O1xuICAgIHRoaXMuaW5pdEF1dG9jb21wbGV0ZSgpO1xuICB9XG4gIHB1YmxpYyBfYXV0b2NvbXBsZXRlT3B0aW9ucz86IEF1dG9jb21wbGV0ZU9wdGlvbnMgfCAoKHNlYXJjaDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZU9wdGlvbnM+KTtcblxuICAvKipcbiAgICogR2V0IHRoZSBsYWJlbCBvZiBhbiBvcHRpb24gdmFsdWUuXG4gICAqIFRvIHVzZSB3aXRoIGF1dG9jb21wbGV0ZU9wdGlvbnMgbGFiZWwgJiB2YWx1ZSBtb2RlLlxuICAgKiBGdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIGEgdGFnIG5lZWRzIHRvIGJlIGRpc3BsYXllZCBpZCBkZWZpbmVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5VmFsdWVXaXRoKGRpc3BsYXlWYWx1ZVdpdGg6IERpc3BsYXlWYWx1ZVdpdGhGbikge1xuICAgIHRoaXMuX2Rpc3BsYXlWYWx1ZVdpdGggPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlQ2FjaGVbdmFsdWVdKSB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW3ZhbHVlXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlzcGxheVZhbHVlV2l0aCh2YWx1ZSkucGlwZShcbiAgICAgICAgdGFwKGxhYmVsID0+IHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW3ZhbHVlXSA9IGxhYmVsO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBmb3JjZSB0aGUgY2hpcCB0byBiZSBwYXJ0IG9mIHRoZSBhdXRvY29tcGxldGUgb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB1c2VBdXRvY29tcGxldGVPcHRpb25WYWx1ZU9ubHkgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd0YWdJbnB1dCcpXG4gIHB1YmxpYyBzZXQgdGFnSW5wdXQodjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IG51bGwpIHtcbiAgICB0aGlzLl90YWdJbnB1dCA9IHY7XG4gICAgdGhpcy5pbml0QXV0b2NvbXBsZXRlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfdGFnSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgYXV0b2NvbXBsZXRlRmlsdGVyZWRPcHRpb25zJD86IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPltdPjtcblxuICBwdWJsaWMgX2Rpc3BsYXlWYWx1ZVdpdGg/OiAodmFsdWU6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHByaXZhdGUgZGlzcGxheVZhbHVlQ2FjaGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogVGFncyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUoX3RhZ3M6IFRhZ3MgfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSBfdGFncztcbiAgICB0aGlzLl9vbkNoYW5nZShfdGFncyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IFRhZ3MgfCBudWxsID0gbnVsbDtcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gIHB1YmxpYyBpZCA9IGBnaW8tZm9ybS10YWdzLWlucHV0LSR7R2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIocGxoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9wbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRW1wdHkodGhpcy52YWx1ZSkgJiYgaXNFbXB0eSh0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudD8udmFsdWUpO1xuICB9XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcbiAgcHVibGljIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XG4gIH1cblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG5cbiAgcHVibGljIHNldCByZXF1aXJlZChyZXE6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZChkaXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXMpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBwdWJsaWMgZ2V0IGVycm9yU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG91Y2hlZCAmJlxuICAgICAgLy8gaWYgcmVxdWlyZWQgY2hlY2sgaWYgaXMgZW1wdHlcbiAgICAgICgodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmVtcHR5KSB8fFxuICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRvdWNoZWQgY29udHJvbCBjaGVjayBpZiB0aGVyZSBpcyBhbiBlcnJvclxuICAgICAgICAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCA9PT0gdHJ1ZSAmJiAhIXRoaXMubmdDb250cm9sLmVycm9ycykpXG4gICAgKTtcbiAgfVxuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgcHVibGljIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgcHVibGljIGF1dG9maWxsZWQ/OiBib29sZWFuO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgcHVibGljIHVzZXJBcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm06IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgLy8gUmVwbGFjZSB0aGUgcHJvdmlkZXIgZnJvbSBhYm92ZSB3aXRoIHRoaXMuXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXG4gICAgICAvLyB0aGUgcHJvdmlkZXJzKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIC8vIHN5bmMgY29udHJvbCB0b3VjaGVkIHdpdGggbG9jYWwgdG91Y2hlZFxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsICYmIHRoaXMudG91Y2hlZCAhPT0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy50b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCA9PT0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2VzcyBpbnRlcmZhY2VcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodGFnczogVGFncyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgcHVibGljIGRlc2NyaWJlZEJ5ID0gJyc7XG5cbiAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKF9ldmVudDogTW91c2VFdmVudCk6IHZvaWQge31cblxuICBwdWJsaWMgYWRkQ2hpcFRvRm9ybUNvbnRyb2woZXZlbnQ6IHsgdmFsdWU6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB0YWdUb0FkZCA9IChldmVudC52YWx1ZSA/PyAnJykudHJpbSgpO1xuXG4gICAgaWYgKGlzRW1wdHkodGFnVG9BZGQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoZSB0YWcgb25seSBpZiBzaG91bGRBZGRUYWcgaW4gdmFsaWRhdGlvbkNiIHJldHVybiB0cnVlXG4gICAgLy8gU2V0IGRlZmF1bHQgY2FsbGJhY2sgaWYgbm90IGRlZmluZWRcbiAgICBjb25zdCB0YWdWYWxpZGF0aW9uSG9vayA9IHRoaXMudGFnVmFsaWRhdGlvbkhvb2sgPz8gKChfLCB2YWxpZGF0aW9uQ2IpID0+IHZhbGlkYXRpb25DYih0cnVlKSk7XG5cbiAgICBjb25zdCB2YWxpZGF0aW9uQ2IgPSAoc2hvdWxkQWRkVGFnOiBib29sZWFuKSA9PiB7XG4gICAgICAvLyBBZGQgbmV3IFRhZyBpbiBmb3JtIGNvbnRyb2xcbiAgICAgIGlmIChzaG91bGRBZGRUYWcpIHtcbiAgICAgICAgLy8gRGVsZXRlIFRhZyBpZiBhbHJlYWR5IGV4aXN0aW5nXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sVmFsdWUgPSBbLi4uKHRoaXMudmFsdWUgPz8gW10pXS5maWx0ZXIodiA9PiB2ICE9PSB0YWdUb0FkZCk7XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IFsuLi5mb3JtQ29udHJvbFZhbHVlLCB0YWdUb0FkZF07XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZVxuICAgIGlmIChpbnB1dCkge1xuICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICB0YWdWYWxpZGF0aW9uSG9vayh0YWdUb0FkZCwgdmFsaWRhdGlvbkNiKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDaGlwVG9Gb3JtQ29udHJvbCh0YWc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBbLi4uKHRoaXMudmFsdWUgPz8gW10pXS5maWx0ZXIodiA9PiB2ICE9PSB0YWcpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlU2VsZWN0KGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5hZGRDaGlwVG9Gb3JtQ29udHJvbCh7IHZhbHVlOiBldmVudC5vcHRpb24udmFsdWUgfSk7XG4gIH1cblxuICBwdWJsaWMgb25NYXRDaGlwVG9rZW5FbmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXNlQXV0b2NvbXBsZXRlT3B0aW9uVmFsdWVPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEdpdmUgcHJpb3JpdHkgdG8gdGhlIGBvbkF1dG9jb21wbGV0ZVNlbGVjdGAgd2hlbiB2YWxpZGF0aW5nIHdpdGggdGhlIGJsdXIgZXZlbnRcbiAgICB0aGlzLmFkZENoaXBUb0Zvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlID8/ICcnIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0QXV0b2NvbXBsZXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zICYmIHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpbHRlcmVkT3B0aW9ucyQgPSBmcm9tRXZlbnQodGhpcy5fdGFnSW5wdXQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zKHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlID8/ICcnKS5waXBlKFxuICAgICAgICAgICAgICBtYXAob3B0aW9ucyA9PiBzYW5pdGl6ZUF1dG9jb21wbGV0ZU9wdGlvbnMob3B0aW9ucykpLFxuICAgICAgICAgICAgICAvLyBBZGQgb3B0aW9ucyB0byBkaXNwbGF5VmFsdWVDYWNoZSB0byBhdm9pZCBjYWxsIG9uIHNlbGVjdFxuICAgICAgICAgICAgICB0YXAob3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW29wdGlvbi52YWx1ZV0gPSBvcHRpb24ubGFiZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKGRlZmF1bHRBdXRvY29tcGxldGVGaWx0ZXIodGhpcy5fYXV0b2NvbXBsZXRlT3B0aW9ucyA/PyBbXSwgdGhpcy5fdGFnSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPz8gJycpKTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgZGVmYXVsdEF1dG9jb21wbGV0ZUZpbHRlciA9IChcbiAgb3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9ucyxcbiAgc2VhcmNoOiBzdHJpbmcsXG4pOiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59W10gPT4ge1xuICByZXR1cm4gc2FuaXRpemVBdXRvY29tcGxldGVPcHRpb25zKG9wdGlvbnMpLmZpbHRlcihcbiAgICBkZWZhdWx0SGVhZGVyID0+XG4gICAgICBkZWZhdWx0SGVhZGVyLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoKHNlYXJjaCA/PyAnJykudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgIGRlZmF1bHRIZWFkZXIudmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygoc2VhcmNoID8/ICcnKS50b0xvd2VyQ2FzZSgpKSxcbiAgKTtcbn07XG5cbmNvbnN0IHNhbml0aXplQXV0b2NvbXBsZXRlT3B0aW9ucyA9IChcbiAgb3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9ucyxcbik6IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1bXSA9PiB7XG4gIHJldHVybiBvcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgIGlmIChvcHRpb24gJiYgdHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgJ3ZhbHVlJyBpbiBvcHRpb24gJiYgJ2xhYmVsJyBpbiBvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuICAgIHJldHVybiB7IHZhbHVlOiBvcHRpb24sIGxhYmVsOiBvcHRpb24gfTtcbiAgfSk7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48bWF0LWNoaXAtbGlzdCAjdGFnQ2hpcExpc3QgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBtdWx0aXBsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG1hdC1jaGlwXG4gICAgKm5nRm9yPVwibGV0IHRhZyBvZiB2YWx1ZVwiXG4gICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgIFtyZW1vdmFibGVdPVwiIWRpc2FibGVkXCJcbiAgICAocmVtb3ZlZCk9XCJyZW1vdmVDaGlwVG9Gb3JtQ29udHJvbCh0YWcpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICA+XG4gICAge3sgX2Rpc3BsYXlWYWx1ZVdpdGggPyAoX2Rpc3BsYXlWYWx1ZVdpdGgodGFnKSB8IGFzeW5jKSA6IHRhZyB9fVxuICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XG4gIDwvbWF0LWNoaXA+XG4gIDxpbnB1dFxuICAgICpuZ0lmPVwiIWRpc2FibGVkXCJcbiAgICAjdGFnSW5wdXRcbiAgICBbbWF0QXV0b2NvbXBsZXRlRGlzYWJsZWRdPVwiIV9hdXRvY29tcGxldGVPcHRpb25zIHx8IGRpc2FibGVkXCJcbiAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW21hdENoaXBJbnB1dEZvcl09XCJ0YWdDaGlwTGlzdFwiXG4gICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJhZGRPbkJsdXJcIlxuICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJvbk1hdENoaXBUb2tlbkVuZCgpXCJcbiAgLz5cbiAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25BdXRvY29tcGxldGVTZWxlY3QoJGV2ZW50KVwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXV0b2NvbXBsZXRlRmlsdGVyZWRPcHRpb25zJCB8IGFzeW5jXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG48L21hdC1jaGlwLWxpc3Q+XG4iXX0=
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBR1QsV0FBVyxFQUNYLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFvQnRGLE1BQU0sT0FBTyx5QkFBeUI7SUErS3BDO0lBQ0Usc0NBQXNDO0lBQ0YsU0FBb0IsRUFDdkMsS0FBaUIsRUFDakIsRUFBZ0IsRUFDekIsaUJBQW9DO1FBSFIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDekIsc0JBQWlCLEdBQWpC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V0FBVztzQkFEakIsV0FBVzt1QkFBQyx1QkFBdUI7O0FBMEZ0QyxNQUFNLHlCQUF5QixHQUFHLENBQ2hDLE9BQTRCLEVBQzVCLE1BQWMsRUFJWixFQUFFO0lBQ0osT0FBTywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQ2hELGFBQWEsQ0FBQyxFQUFFLENBQ2QsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEUsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FDbEMsT0FBNEIsRUFJMUIsRUFBRTtJQUNKLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQixJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFO1lBQ2xGLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDMUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eVxuXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgVGFncyA9IEFycmF5PHN0cmluZz47XG5cbmV4cG9ydCB0eXBlIEF1dG9jb21wbGV0ZU9wdGlvbnMgPSAoc3RyaW5nIHwgeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH0pW107XG5cbmV4cG9ydCB0eXBlIERpc3BsYXlWYWx1ZVdpdGhGbiA9ICh2YWx1ZTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1mb3JtLXRhZ3MtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1mb3JtLXRhZ3MtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogR2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Gb3JtVGFnc0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxUYWdzPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2ssIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgcHVibGljIF9vbkNoYW5nZTogKF90YWdzOiBUYWdzIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHVibGljIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcblxuICBASW5wdXQoJ2FyaWEtbGFiZWwnKVxuICBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFkZE9uQmx1ciA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGNhbGxlZCBlYWNoIHRpbWUgYSB0YWcgaXMgYWRkZWQsIGl0IGNhbiBiZSB1c2VkIHRvIGhvb2sgaW5zaWRlIHRoZVxuICAgKiBhZGRpdGlvbiBwcm9jZXNzIHRvLCBmb3IgaW5zdGFuY2UsIGhhdmUgY3VzdG9tIHZhbGlkYXRpb24gaW4gdGhlIGNvbXBvbmVudHNcbiAgICogdXNpbmcgYGdpby1mb3JtLXRhZ3MtaW5wdXRgLlxuICAgKlxuICAgKiBQYXJhbWV0ZXJzIGFyZTpcbiAgICogLSBgdGFnYDogVGhlIHZhbHVlIG9mIHRoZSB0YWcgdG8gYWRkXG4gICAqIC0gYHZhbGlkYXRpb25DYmA6IFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdmFsaWRhdGlvbiBpcyBkb25lLiBJZlxuICAgKiBjYWxsZWQgd2l0aCBgdHJ1ZWAgaXQgd2lsbCBhZGQgdGhlIHRhZywgb3RoZXJ3aXNlIGl0IHdpbGwganVzdCBpZ25vcmUgaXRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YWdWYWxpZGF0aW9uSG9vazogKCh0YWc6IHN0cmluZywgdmFsaWRhdGlvbkNiOiAoc2hvdWxkQWRkVGFnOiBib29sZWFuKSA9PiB2b2lkKSA9PiB2b2lkKSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGF1dG9jb21wbGV0ZU9wdGlvbnModjogQXV0b2NvbXBsZXRlT3B0aW9ucyB8ICgoc2VhcmNoOiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlT3B0aW9ucz4pIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fYXV0b2NvbXBsZXRlT3B0aW9ucyA9IHY7XG4gIH1cbiAgcHVibGljIF9hdXRvY29tcGxldGVPcHRpb25zPzogQXV0b2NvbXBsZXRlT3B0aW9ucyB8ICgoc2VhcmNoOiBzdHJpbmcpID0+IE9ic2VydmFibGU8QXV0b2NvbXBsZXRlT3B0aW9ucz4pO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxhYmVsIG9mIGFuIG9wdGlvbiB2YWx1ZS5cbiAgICogVG8gdXNlIHdpdGggYXV0b2NvbXBsZXRlT3B0aW9ucyBsYWJlbCAmIHZhbHVlIG1vZGUuXG4gICAqIEZ1bmN0aW9uIGNhbGxlZCBlYWNoIHRpbWUgYSB0YWcgbmVlZHMgdG8gYmUgZGlzcGxheWVkIGlkIGRlZmluZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc3BsYXlWYWx1ZVdpdGgoZGlzcGxheVZhbHVlV2l0aDogRGlzcGxheVZhbHVlV2l0aEZuKSB7XG4gICAgdGhpcy5fZGlzcGxheVZhbHVlV2l0aCA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNwbGF5VmFsdWVDYWNoZVt2YWx1ZV0pIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuZGlzcGxheVZhbHVlQ2FjaGVbdmFsdWVdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkaXNwbGF5VmFsdWVXaXRoKHZhbHVlKS5waXBlKFxuICAgICAgICB0YXAobGFiZWwgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlQ2FjaGVbdmFsdWVdID0gbGFiZWw7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIHRvIGZvcmNlIHRoZSBjaGlwIHRvIGJlIHBhcnQgb2YgdGhlIGF1dG9jb21wbGV0ZSBvcHRpb25zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHVzZUF1dG9jb21wbGV0ZU9wdGlvblZhbHVlT25seSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3RhZ0lucHV0JylcbiAgcHVibGljIHNldCB0YWdJbnB1dCh2OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgbnVsbCkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLmZtLm1vbml0b3Iodi5uYXRpdmVFbGVtZW50KS5zdWJzY3JpYmUob3JpZ2luID0+IHtcbiAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgIHRoaXMuaW5pdEF1dG9jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3RhZ0lucHV0KSB7XG4gICAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX3RhZ0lucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX3RhZ0lucHV0ID0gdjtcbiAgfVxuICBwcml2YXRlIF90YWdJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBhdXRvY29tcGxldGVGaWx0ZXJlZE9wdGlvbnMkPzogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+O1xuXG4gIHB1YmxpYyBfZGlzcGxheVZhbHVlV2l0aD86ICh2YWx1ZTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgcHJpdmF0ZSBkaXNwbGF5VmFsdWVDYWNoZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFRhZ3MgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKF90YWdzOiBUYWdzIHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlID0gX3RhZ3M7XG4gICAgdGhpcy5fb25DaGFuZ2UoX3RhZ3MpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBUYWdzIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBwdWJsaWMgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIEBIb3N0QmluZGluZygnaWQnKVxuICBwdWJsaWMgaWQgPSBgZ2lvLWZvcm0tdGFncy1pbnB1dC0ke0dpb0Zvcm1UYWdzSW5wdXRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsaDogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXIgPSAnJztcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBwdWJsaWMgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0VtcHR5KHRoaXMudmFsdWUpICYmIGlzRW1wdHkodGhpcy5fdGFnSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlKTtcbiAgfVxuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgLy8gRnJvbSBNYXRGb3JtRmllbGRDb250cm9sIGludGVyZmFjZVxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmRpc2FibGVkID09PSB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQoZGlzOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgcHVibGljIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRvdWNoZWQgJiZcbiAgICAgIC8vIGlmIHJlcXVpcmVkIGNoZWNrIGlmIGlzIGVtcHR5XG4gICAgICAoKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5lbXB0eSkgfHxcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0b3VjaGVkIGNvbnRyb2wgY2hlY2sgaWYgdGhlcmUgaXMgYW4gZXJyb3JcbiAgICAgICAgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQgPT09IHRydWUgJiYgISF0aGlzLm5nQ29udHJvbC5lcnJvcnMpKVxuICAgICk7XG4gIH1cblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyBjb250cm9sVHlwZT86IHN0cmluZztcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyBhdXRvZmlsbGVkPzogYm9vbGVhbjtcblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIHB1YmxpYyB1c2VyQXJpYURlc2NyaWJlZEJ5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIC8vIFJlcGxhY2UgdGhlIHByb3ZpZGVyIGZyb20gYWJvdmUgd2l0aCB0aGlzLlxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSBhY2Nlc3NvciBkaXJlY3RseSAoaW5zdGVhZCBvZiB1c2luZ1xuICAgICAgLy8gdGhlIHByb3ZpZGVycykgdG8gYXZvaWQgcnVubmluZyBpbnRvIGEgY2lyY3VsYXIgaW1wb3J0LlxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgZm0ubW9uaXRvcihlbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAvLyBzeW5jIGNvbnRyb2wgdG91Y2hlZCB3aXRoIGxvY2FsIHRvdWNoZWRcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCAmJiB0aGlzLnRvdWNoZWQgIT09IHRoaXMubmdDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRoaXMubmdDb250cm9sLnRvdWNoZWQgPT09IHRydWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIGlmICh0aGlzLl90YWdJbnB1dCkge1xuICAgICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLl90YWdJbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2VzcyBpbnRlcmZhY2VcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodGFnczogVGFncyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBGcm9tIE1hdEZvcm1GaWVsZENvbnRyb2wgaW50ZXJmYWNlXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgcHVibGljIGRlc2NyaWJlZEJ5ID0gJyc7XG5cbiAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8vIEZyb20gTWF0Rm9ybUZpZWxkQ29udHJvbCBpbnRlcmZhY2VcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKF9ldmVudDogTW91c2VFdmVudCk6IHZvaWQge31cblxuICBwdWJsaWMgYWRkQ2hpcFRvRm9ybUNvbnRyb2woZXZlbnQ6IHsgdmFsdWU6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB0YWdUb0FkZCA9IChldmVudC52YWx1ZSA/PyAnJykudHJpbSgpO1xuXG4gICAgaWYgKGlzRW1wdHkodGFnVG9BZGQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQWRkIHRoZSB0YWcgb25seSBpZiBzaG91bGRBZGRUYWcgaW4gdmFsaWRhdGlvbkNiIHJldHVybiB0cnVlXG4gICAgLy8gU2V0IGRlZmF1bHQgY2FsbGJhY2sgaWYgbm90IGRlZmluZWRcbiAgICBjb25zdCB0YWdWYWxpZGF0aW9uSG9vayA9IHRoaXMudGFnVmFsaWRhdGlvbkhvb2sgPz8gKChfLCB2YWxpZGF0aW9uQ2IpID0+IHZhbGlkYXRpb25DYih0cnVlKSk7XG5cbiAgICBjb25zdCB2YWxpZGF0aW9uQ2IgPSAoc2hvdWxkQWRkVGFnOiBib29sZWFuKSA9PiB7XG4gICAgICAvLyBBZGQgbmV3IFRhZyBpbiBmb3JtIGNvbnRyb2xcbiAgICAgIGlmIChzaG91bGRBZGRUYWcpIHtcbiAgICAgICAgLy8gRGVsZXRlIFRhZyBpZiBhbHJlYWR5IGV4aXN0aW5nXG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sVmFsdWUgPSBbLi4uKHRoaXMudmFsdWUgPz8gW10pXS5maWx0ZXIodiA9PiB2ICE9PSB0YWdUb0FkZCk7XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IFsuLi5mb3JtQ29udHJvbFZhbHVlLCB0YWdUb0FkZF07XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZVxuICAgIGlmIChpbnB1dCkge1xuICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICB0YWdWYWxpZGF0aW9uSG9vayh0YWdUb0FkZCwgdmFsaWRhdGlvbkNiKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDaGlwVG9Gb3JtQ29udHJvbCh0YWc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBbLi4uKHRoaXMudmFsdWUgPz8gW10pXS5maWx0ZXIodiA9PiB2ICE9PSB0YWcpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIG9uQXV0b2NvbXBsZXRlU2VsZWN0KGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5hZGRDaGlwVG9Gb3JtQ29udHJvbCh7IHZhbHVlOiBldmVudC5vcHRpb24udmFsdWUgfSk7XG4gIH1cblxuICBwdWJsaWMgb25NYXRDaGlwVG9rZW5FbmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXNlQXV0b2NvbXBsZXRlT3B0aW9uVmFsdWVPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIEdpdmUgcHJpb3JpdHkgdG8gdGhlIGBvbkF1dG9jb21wbGV0ZVNlbGVjdGAgd2hlbiB2YWxpZGF0aW5nIHdpdGggdGhlIGJsdXIgZXZlbnRcbiAgICB0aGlzLmFkZENoaXBUb0Zvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlID8/ICcnIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0QXV0b2NvbXBsZXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zICYmIHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpbHRlcmVkT3B0aW9ucyQgPSBmcm9tRXZlbnQodGhpcy5fdGFnSW5wdXQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zKHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlID8/ICcnKS5waXBlKFxuICAgICAgICAgICAgICBtYXAob3B0aW9ucyA9PiBzYW5pdGl6ZUF1dG9jb21wbGV0ZU9wdGlvbnMob3B0aW9ucykpLFxuICAgICAgICAgICAgICAvLyBBZGQgb3B0aW9ucyB0byBkaXNwbGF5VmFsdWVDYWNoZSB0byBhdm9pZCBjYWxsIG9uIHNlbGVjdFxuICAgICAgICAgICAgICB0YXAob3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW29wdGlvbi52YWx1ZV0gPSBvcHRpb24ubGFiZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKGRlZmF1bHRBdXRvY29tcGxldGVGaWx0ZXIodGhpcy5fYXV0b2NvbXBsZXRlT3B0aW9ucyA/PyBbXSwgdGhpcy5fdGFnSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPz8gJycpKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGRlZmF1bHRBdXRvY29tcGxldGVGaWx0ZXIgPSAoXG4gIG9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbnMsXG4gIHNlYXJjaDogc3RyaW5nLFxuKToge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVtdID0+IHtcbiAgcmV0dXJuIHNhbml0aXplQXV0b2NvbXBsZXRlT3B0aW9ucyhvcHRpb25zKS5maWx0ZXIoXG4gICAgZGVmYXVsdEhlYWRlciA9PlxuICAgICAgZGVmYXVsdEhlYWRlci5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKChzZWFyY2ggPz8gJycpLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICBkZWZhdWx0SGVhZGVyLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoKHNlYXJjaCA/PyAnJykudG9Mb3dlckNhc2UoKSksXG4gICk7XG59O1xuXG5jb25zdCBzYW5pdGl6ZUF1dG9jb21wbGV0ZU9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbnMsXG4pOiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59W10gPT4ge1xuICByZXR1cm4gb3B0aW9ucy5tYXAob3B0aW9uID0+IHtcbiAgICBpZiAob3B0aW9uICYmIHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmICd2YWx1ZScgaW4gb3B0aW9uICYmICdsYWJlbCcgaW4gb3B0aW9uKSB7XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyB2YWx1ZTogb3B0aW9uLCBsYWJlbDogb3B0aW9uIH07XG4gIH0pO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPG1hdC1jaGlwLWxpc3QgI3RhZ0NoaXBMaXN0IFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgbXVsdGlwbGUgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxtYXQtY2hpcFxuICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgdmFsdWVcIlxuICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICBbcmVtb3ZhYmxlXT1cIiFkaXNhYmxlZFwiXG4gICAgKHJlbW92ZWQpPVwicmVtb3ZlQ2hpcFRvRm9ybUNvbnRyb2wodGFnKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgPlxuICAgIHt7IF9kaXNwbGF5VmFsdWVXaXRoID8gKF9kaXNwbGF5VmFsdWVXaXRoKHRhZykgfCBhc3luYykgOiB0YWcgfX1cbiAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICA8L21hdC1jaGlwPlxuICA8aW5wdXRcbiAgICAqbmdJZj1cIiFkaXNhYmxlZFwiXG4gICAgI3RhZ0lucHV0XG4gICAgW21hdEF1dG9jb21wbGV0ZURpc2FibGVkXT1cIiFfYXV0b2NvbXBsZXRlT3B0aW9ucyB8fCBkaXNhYmxlZFwiXG4gICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFttYXRDaGlwSW5wdXRGb3JdPVwidGFnQ2hpcExpc3RcIlxuICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwiYWRkT25CbHVyXCJcbiAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwib25NYXRDaGlwVG9rZW5FbmQoKVwiXG4gIC8+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cIm9uQXV0b2NvbXBsZXRlU2VsZWN0KCRldmVudClcIj5cbiAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImxvYWRpbmdcIiBkaXNhYmxlZCBpZD1cImxvYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxvYWRlci1vcHRpb25cIj48Z2lvLWxvYWRlcj48L2dpby1sb2FkZXI+PC9kaXY+XG4gICAgPC9tYXQtb3B0aW9uPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXV0b2NvbXBsZXRlRmlsdGVyZWRPcHRpb25zJCB8IGFzeW5jXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG48L21hdC1jaGlwLWxpc3Q+XG4iXX0=
|
|
@@ -22,19 +22,48 @@ import { MatChipsModule } from '@angular/material/chips';
|
|
|
22
22
|
import { MatIconModule } from '@angular/material/icon';
|
|
23
23
|
import { MatInputModule } from '@angular/material/input';
|
|
24
24
|
import { MatSelectModule } from '@angular/material/select';
|
|
25
|
+
import { GioLoaderModule } from '../gio-loader/gio-loader.module';
|
|
25
26
|
import { GioFormTagsInputComponent } from './gio-form-tags-input.component';
|
|
26
27
|
import * as i0 from "@angular/core";
|
|
27
28
|
export class GioFormTagsInputModule {
|
|
28
29
|
}
|
|
29
30
|
GioFormTagsInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
30
|
-
GioFormTagsInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputModule, declarations: [GioFormTagsInputComponent], imports: [CommonModule,
|
|
31
|
-
|
|
31
|
+
GioFormTagsInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputModule, declarations: [GioFormTagsInputComponent], imports: [CommonModule,
|
|
32
|
+
A11yModule,
|
|
33
|
+
MatChipsModule,
|
|
34
|
+
MatInputModule,
|
|
35
|
+
FormsModule,
|
|
36
|
+
MatIconModule,
|
|
37
|
+
MatAutocompleteModule,
|
|
38
|
+
MatSelectModule,
|
|
39
|
+
GioLoaderModule], exports: [GioFormTagsInputComponent] });
|
|
40
|
+
GioFormTagsInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputModule, imports: [[
|
|
41
|
+
CommonModule,
|
|
42
|
+
A11yModule,
|
|
43
|
+
MatChipsModule,
|
|
44
|
+
MatInputModule,
|
|
45
|
+
FormsModule,
|
|
46
|
+
MatIconModule,
|
|
47
|
+
MatAutocompleteModule,
|
|
48
|
+
MatSelectModule,
|
|
49
|
+
GioLoaderModule,
|
|
50
|
+
]] });
|
|
32
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputModule, decorators: [{
|
|
33
52
|
type: NgModule,
|
|
34
53
|
args: [{
|
|
35
|
-
imports: [
|
|
54
|
+
imports: [
|
|
55
|
+
CommonModule,
|
|
56
|
+
A11yModule,
|
|
57
|
+
MatChipsModule,
|
|
58
|
+
MatInputModule,
|
|
59
|
+
FormsModule,
|
|
60
|
+
MatIconModule,
|
|
61
|
+
MatAutocompleteModule,
|
|
62
|
+
MatSelectModule,
|
|
63
|
+
GioLoaderModule,
|
|
64
|
+
],
|
|
36
65
|
declarations: [GioFormTagsInputComponent],
|
|
37
66
|
exports: [GioFormTagsInputComponent],
|
|
38
67
|
}]
|
|
39
68
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tdGFncy1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBaUI1RSxNQUFNLE9BQU8sc0JBQXNCOztvSEFBdEIsc0JBQXNCO3FIQUF0QixzQkFBc0IsaUJBSGxCLHlCQUF5QixhQVZ0QyxZQUFZO1FBQ1osVUFBVTtRQUNWLGNBQWM7UUFDZCxjQUFjO1FBQ2QsV0FBVztRQUNYLGFBQWE7UUFDYixxQkFBcUI7UUFDckIsZUFBZTtRQUNmLGVBQWUsYUFHUCx5QkFBeUI7cUhBRXhCLHNCQUFzQixZQWR4QjtZQUNQLFlBQVk7WUFDWixVQUFVO1lBQ1YsY0FBYztZQUNkLGNBQWM7WUFDZCxXQUFXO1lBQ1gsYUFBYTtZQUNiLHFCQUFxQjtZQUNyQixlQUFlO1lBQ2YsZUFBZTtTQUNoQjs0RkFJVSxzQkFBc0I7a0JBZmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5pbXBvcnQgeyBHaW9Mb2FkZXJNb2R1bGUgfSBmcm9tICcuLi9naW8tbG9hZGVyL2dpby1sb2FkZXIubW9kdWxlJztcblxuaW1wb3J0IHsgR2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIEdpb0xvYWRlck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbR2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtHaW9Gb3JtVGFnc0lucHV0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybVRhZ3NJbnB1dE1vZHVsZSB7fVxuIl19
|