valtech-components 4.0.960 → 4.0.962
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/esm2022/lib/components/atoms/notice/notice.component.mjs +7 -3
- package/esm2022/lib/components/atoms/notice/types.mjs +1 -1
- package/esm2022/lib/components/organisms/menu/menu.component.mjs +3 -3
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +9 -5
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/notice/types.d.ts +8 -5
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,8 @@ const TONE_ICON = {
|
|
|
13
13
|
info: 'information-circle-outline',
|
|
14
14
|
warning: 'alert-circle-outline',
|
|
15
15
|
success: 'checkmark-circle-outline',
|
|
16
|
+
// neutral no trae ícono por defecto: es una nota secundaria de bajo perfil,
|
|
17
|
+
// no un aviso que necesite llamar la atención.
|
|
16
18
|
};
|
|
17
19
|
/**
|
|
18
20
|
* Caja de aviso: un bloque breve de contexto junto a un formulario o una
|
|
@@ -48,6 +50,7 @@ export class NoticeComponent {
|
|
|
48
50
|
class="notice"
|
|
49
51
|
[class]="props.cssClass"
|
|
50
52
|
[class.tone-info]="tone === 'info'"
|
|
53
|
+
[class.tone-neutral]="tone === 'neutral'"
|
|
51
54
|
[class.tone-warning]="tone === 'warning'"
|
|
52
55
|
[class.tone-success]="tone === 'success'"
|
|
53
56
|
>
|
|
@@ -64,7 +67,7 @@ export class NoticeComponent {
|
|
|
64
67
|
</div>
|
|
65
68
|
</aside>
|
|
66
69
|
}
|
|
67
|
-
`, isInline: true, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:
|
|
70
|
+
`, isInline: true, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border-radius:12px;border-left:3px solid transparent;font-size:.9rem;line-height:1.4;color:var(--ion-text-color, #000);background:rgba(var(--ion-color-secondary-rgb),.08);border-left-color:rgb(var(--ion-color-secondary-rgb))}.notice ion-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px;color:var(--ion-color-secondary)}.notice__body{display:flex;flex-direction:column;gap:2px}.notice__title{font-weight:700}.tone-neutral{background:rgba(var(--ion-color-medium-rgb),.08);border-left-color:rgb(var(--ion-color-medium-rgb));color:var(--ion-color-medium)}.tone-neutral ion-icon{color:var(--ion-color-medium)}.tone-warning{background:rgba(var(--ion-color-warning-rgb),.12);border-left-color:rgb(var(--ion-color-warning-rgb))}.tone-warning ion-icon{color:var(--ion-color-warning-shade)}.tone-success{background:rgba(var(--ion-color-success-rgb),.1);border-left-color:rgb(var(--ion-color-success-rgb))}.tone-success ion-icon{color:var(--ion-color-success-shade)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
68
71
|
}
|
|
69
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoticeComponent, decorators: [{
|
|
70
73
|
type: Component,
|
|
@@ -74,6 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
74
77
|
class="notice"
|
|
75
78
|
[class]="props.cssClass"
|
|
76
79
|
[class.tone-info]="tone === 'info'"
|
|
80
|
+
[class.tone-neutral]="tone === 'neutral'"
|
|
77
81
|
[class.tone-warning]="tone === 'warning'"
|
|
78
82
|
[class.tone-success]="tone === 'success'"
|
|
79
83
|
>
|
|
@@ -90,8 +94,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
90
94
|
</div>
|
|
91
95
|
</aside>
|
|
92
96
|
}
|
|
93
|
-
`, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:
|
|
97
|
+
`, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border-radius:12px;border-left:3px solid transparent;font-size:.9rem;line-height:1.4;color:var(--ion-text-color, #000);background:rgba(var(--ion-color-secondary-rgb),.08);border-left-color:rgb(var(--ion-color-secondary-rgb))}.notice ion-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px;color:var(--ion-color-secondary)}.notice__body{display:flex;flex-direction:column;gap:2px}.notice__title{font-weight:700}.tone-neutral{background:rgba(var(--ion-color-medium-rgb),.08);border-left-color:rgb(var(--ion-color-medium-rgb));color:var(--ion-color-medium)}.tone-neutral ion-icon{color:var(--ion-color-medium)}.tone-warning{background:rgba(var(--ion-color-warning-rgb),.12);border-left-color:rgb(var(--ion-color-warning-rgb))}.tone-warning ion-icon{color:var(--ion-color-warning-shade)}.tone-success{background:rgba(var(--ion-color-success-rgb),.1);border-left-color:rgb(var(--ion-color-success-rgb))}.tone-success ion-icon{color:var(--ion-color-success-shade)}\n"] }]
|
|
94
98
|
}], propDecorators: { props: [{
|
|
95
99
|
type: Input
|
|
96
100
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9ub3RpY2Uvbm90aWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3RHLFFBQVEsQ0FBQztJQUNQLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIsc0JBQXNCO0NBQ3ZCLENBQUMsQ0FBQztBQUVILE1BQU0sU0FBUyxHQUF3QztJQUNyRCxJQUFJLEVBQUUsNEJBQTRCO0lBQ2xDLE9BQU8sRUFBRSxzQkFBc0I7SUFDL0IsT0FBTyxFQUFFLDBCQUEwQjtJQUNuQyw0RUFBNEU7SUFDNUUsK0NBQStDO0NBQ2hELENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQStCSCxNQUFNLE9BQU8sZUFBZTtJQTlCNUI7UUErQlcsVUFBSyxHQUFtQixFQUFFLENBQUM7S0FjckM7SUFaQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQzsrR0FkVSxlQUFlO21HQUFmLGVBQWUsa0dBMUJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQsNG1DQXhCUyxZQUFZLCtCQUFFLE9BQU87OzRGQTJCcEIsZUFBZTtrQkE5QjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUOzhCQUlRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGluZm9ybWF0aW9uQ2lyY2xlT3V0bGluZSwgYWxlcnRDaXJjbGVPdXRsaW5lLCBjaGVja21hcmtDaXJjbGVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgTm90aWNlTWV0YWRhdGEsIE5vdGljZVRvbmUgfSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoe1xuICBpbmZvcm1hdGlvbkNpcmNsZU91dGxpbmUsXG4gIGFsZXJ0Q2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSxcbn0pO1xuXG5jb25zdCBUT05FX0lDT046IFBhcnRpYWw8UmVjb3JkPE5vdGljZVRvbmUsIHN0cmluZz4+ID0ge1xuICBpbmZvOiAnaW5mb3JtYXRpb24tY2lyY2xlLW91dGxpbmUnLFxuICB3YXJuaW5nOiAnYWxlcnQtY2lyY2xlLW91dGxpbmUnLFxuICBzdWNjZXNzOiAnY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lJyxcbiAgLy8gbmV1dHJhbCBubyB0cmFlIMOtY29ubyBwb3IgZGVmZWN0bzogZXMgdW5hIG5vdGEgc2VjdW5kYXJpYSBkZSBiYWpvIHBlcmZpbCxcbiAgLy8gbm8gdW4gYXZpc28gcXVlIG5lY2VzaXRlIGxsYW1hciBsYSBhdGVuY2nDs24uXG59O1xuXG4vKipcbiAqIENhamEgZGUgYXZpc286IHVuIGJsb3F1ZSBicmV2ZSBkZSBjb250ZXh0byBqdW50byBhIHVuIGZvcm11bGFyaW8gbyB1bmFcbiAqIHNlY2Npw7NuIChcInJlY3VlcmRhIGFkanVudGFyIGVsIGNvbXByb2JhbnRlXCIsIFwiZWwgY3VwbyBzZSBsaWJlcmEgZW4gMjQgaFwiKS5cbiAqXG4gKiBOYWNpw7MgY29tbyBtYXJrdXAgbG9jYWwgZGVsIGNoZWNrb3V0IGRlIGJpbmdvIHkgc2UgcHJvbW92acOzIGFjw6EgcG9ycXVlIHRvZGFcbiAqIGFwcCBkZWwgZmFjdG9yeSBuZWNlc2l0YSBsbyBtaXNtby4gRWwgdGV4dG8gbG8gZGVjaWRlIGVsIGNvbnN1bWlkb3I6IGVsXG4gKiBjb21wb25lbnRlIE5PIHRyYWUgY29weSBwcm9waW8gbmkgaTE4biwgYXPDrSBxdWUgc2lydmUgdGFudG8gcGFyYSB0ZXh0b3NcbiAqIHRyYWR1Y2lkb3MgcG9yIGxhIGFwcCBjb21vIHBhcmEgdGV4dG9zIHF1ZSBjb25maWd1cmEgdW5hIG9yZ2FuaXphY2nDs24uXG4gKlxuICogU2kgYHRleHRgIHkgYHRpdGxlYCB2aWVuZW4gdmFjw61vcyBubyByZW5kZXJpemEgbmFkYTogZXNvIHBlcm1pdGUgYXRhcmxvXG4gKiBkaXJlY3RvIGEgdW4gY2FtcG8gY29uZmlndXJhYmxlIHNpbiBnYXRlYXIgZW4gY2FkYSB0ZW1wbGF0ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLW5vdGljZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb25dLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoaGFzQ29udGVudCkge1xuICAgICAgPGFzaWRlXG4gICAgICAgIGNsYXNzPVwibm90aWNlXCJcbiAgICAgICAgW2NsYXNzXT1cInByb3BzLmNzc0NsYXNzXCJcbiAgICAgICAgW2NsYXNzLnRvbmUtaW5mb109XCJ0b25lID09PSAnaW5mbydcIlxuICAgICAgICBbY2xhc3MudG9uZS1uZXV0cmFsXT1cInRvbmUgPT09ICduZXV0cmFsJ1wiXG4gICAgICAgIFtjbGFzcy50b25lLXdhcm5pbmddPVwidG9uZSA9PT0gJ3dhcm5pbmcnXCJcbiAgICAgICAgW2NsYXNzLnRvbmUtc3VjY2Vzc109XCJ0b25lID09PSAnc3VjY2VzcydcIlxuICAgICAgPlxuICAgICAgICBAaWYgKGljb25OYW1lKSB7XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImljb25OYW1lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWNlX19ib2R5XCI+XG4gICAgICAgICAgQGlmIChwcm9wcy50aXRsZSkge1xuICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cIm5vdGljZV9fdGl0bGVcIj57eyBwcm9wcy50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzLnRleHQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm90aWNlX190ZXh0XCI+e3sgcHJvcHMudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hc2lkZT5cbiAgICB9XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL25vdGljZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpY2VDb21wb25lbnQge1xuICBASW5wdXQoKSBwcm9wczogTm90aWNlTWV0YWRhdGEgPSB7fTtcblxuICBnZXQgdG9uZSgpOiBOb3RpY2VUb25lIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy50b25lID8/ICdpbmZvJztcbiAgfVxuXG4gIGdldCBoYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnByb3BzLnRleHQ/LnRyaW0oKSB8fCB0aGlzLnByb3BzLnRpdGxlPy50cmltKCkpO1xuICB9XG5cbiAgZ2V0IGljb25OYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0aGlzLnByb3BzLmljb24gPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLnByb3BzLmljb24gPz8gVE9ORV9JQ09OW3RoaXMudG9uZV07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvbm90aWNlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRvbm8gZGVsIGF2aXNvLiBEZWZpbmUgY29sb3IgZGUgZm9uZG8sIGJhcnJhIGRlIGFjZW50byBlIGljb25vIHBvciBkZWZlY3RvLlxuICpcbiAqIGBpbmZvYCBlcyBlbCBkZWZhdWx0IHkgZWwgcXVlIGNvcnJlc3BvbmRlIGEgdW4gZGF0byBkZSBjb250ZXh0byAobG8gcXVlIGxhXG4gKiBvcmdhbml6YWNpw7NuIHF1aWVyZSBxdWUgZWwgY29tcHJhZG9yIHRlbmdhIHByZXNlbnRlKS4gYG5ldXRyYWxgIGVzIHBhcmEgdW5hXG4gKiBub3RhIHNlY3VuZGFyaWEgc2luIGNhcmdhIHNlbcOhbnRpY2EgKHVuIGhpbnQgZGUgcHJvZHVjdG8sIFwiZXN0byBlcyBwcml2YWRvXCIpXG4gKiDigJQgZXMgZWwgcmVlbXBsYXpvIGRlIGxhcyBjYWphcyBncmlzZXMgYWQtaG9jIHF1ZSBzZSBhcm1hYmFuIGEgbWFubyBwb3IgdG9kYVxuICogbGEgYXBwLiBgd2FybmluZ2Agc2UgcmVzZXJ2YSBwYXJhIGFsZ28gcXVlIHB1ZWRlIHNhbGlyIG1hbCBzaSBzZSBpZ25vcmE7XG4gKiBgc3VjY2Vzc2AgcGFyYSB1bmEgY29uZmlybWFjacOzbi4gVW4gYXZpc28gTlVOQ0EgdXNhIGVsIHJvam8gZGUgZXJyb3I6IGxvc1xuICogZXN0YWRvcyBlc3BlcmFkb3MgdmFuIHNvYnJpb3MuXG4gKi9cbmV4cG9ydCB0eXBlIE5vdGljZVRvbmUgPSAnaW5mbycgfCAnbmV1dHJhbCcgfCAnd2FybmluZycgfCAnc3VjY2Vzcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWNlTWV0YWRhdGEge1xuICAvKiogVGV4dG8gZGVsIGF2aXNvLiBTaSB2aWVuZSB2YWPDrW8sIGVsIGNvbXBvbmVudGUgbm8gcmVuZGVyaXphIG5hZGEuICovXG4gIHRleHQ/OiBzdHJpbmc7XG4gIC8qKiBUw610dWxvIG9wY2lvbmFsLCBlbiBuZWdyaXRhLCBzb2JyZSBlbCB0ZXh0by4gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHRvbmU/OiBOb3RpY2VUb25lO1xuICAvKipcbiAgICogTm9tYnJlIGRlbCBpY29ubyBkZSBJb25pY29ucy4gU2kgbm8gc2UgcGFzYSwgc2UgdXNhIGVsIGRlbCB0b25vLiBgbnVsbGBcbiAgICogbG8gb2N1bHRhLlxuICAgKi9cbiAgaWNvbj86IHN0cmluZyB8IG51bGw7XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -406,7 +406,7 @@ export class MenuComponent {
|
|
|
406
406
|
/>
|
|
407
407
|
}
|
|
408
408
|
</ion-menu>
|
|
409
|
-
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
409
|
+
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
410
410
|
}
|
|
411
411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuComponent, decorators: [{
|
|
412
412
|
type: Component,
|
|
@@ -514,7 +514,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
514
514
|
/>
|
|
515
515
|
}
|
|
516
516
|
</ion-menu>
|
|
517
|
-
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
517
|
+
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
518
518
|
}], propDecorators: { props: [{
|
|
519
519
|
type: Input
|
|
520
520
|
}], onTouchStart: [{
|
|
@@ -530,4 +530,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
530
530
|
type: HostListener,
|
|
531
531
|
args: ['document:pointerup', ['$event']]
|
|
532
532
|
}] } });
|
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWlISCxNQUFNLE9BQU8sYUFBYTtJQS9HMUI7UUFnSFUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXpELDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxzQkFBc0I7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNW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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQsOGxFQXhHQyxZQUFZLCtCQUNaLE9BQU8sa0pBQ1AsVUFBVSw4RUFDVixhQUFhLDBGQUNiLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSx3S0FDVixjQUFjLHlFQUNkLGVBQWU7OzRGQWlHTixhQUFhO2tCQS9HekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQ7OEJBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFnQ04sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVkvQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUg3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblRvb2xiYXIsXG4gIE1lbnVDb250cm9sbGVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtbWVudVxuICpcbiAqIEEgc2lkZSBtZW51IGNvbXBvbmVudCB1c2luZyBJb25pYyBJb25NZW51IHdpdGggY3VzdG9taXphYmxlIGxvZ28sXG4gKiBjbG9zZSBidXR0b24sIGFuZCBjb250ZW50IHByb2plY3Rpb24gZm9yIG1lbnUgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbWVudVxuICogICBbcHJvcHNdPVwie1xuICogICAgIGlkOiAnbWFpbi1tZW51JyxcbiAqICAgICBjb250ZW50SWQ6ICdtYWluLWNvbnRlbnQnLFxuICogICAgIHNpZGU6ICdzdGFydCcsXG4gKiAgICAgdHlwZTogJ292ZXJsYXknLFxuICogICAgIHN3aXBlOiB0cnVlLFxuICogICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogICB9XCJcbiAqID5cbiAqICAgPHZhbC1saW5rcy1hY2NvcmRpb24gW3Byb3BzXT1cIm1lbnVMaW5rc1wiPjwvdmFsLWxpbmtzLWFjY29yZGlvbj5cbiAqIDwvdmFsLW1lbnU+XG4gKlxuICogPGlvbi1yb3V0ZXItb3V0bGV0IGlkPVwibWFpbi1jb250ZW50XCI+PC9pb24tcm91dGVyLW91dGxldD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBNZW51IGNvbmZpZ3VyYXRpb25cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTWVudSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQ29udGVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tZW51XG4gICAgICBbbWVudUlkXT1cInByb3BzLmlkXCJcbiAgICAgIFtjb250ZW50SWRdPVwicHJvcHMuY29udGVudElkXCJcbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ292ZXJsYXknXCJcbiAgICAgIFtzaWRlXT1cInByb3BzLnNpZGUgfHwgJ3N0YXJ0J1wiXG4gICAgICBbc3dpcGVHZXN0dXJlXT1cInByb3BzLnN3aXBlICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuaXMtZGVza3RvcC1jb2xsYXBzaWJsZV09XCJyZXRyYWN0YWJsZU1lbnVFbmFibGVkKClcIlxuICAgICAgW2NsYXNzLmlzLWRlc2t0b3AtY29sbGFwc2VkXT1cImlzRGVza3RvcENvbGxhcHNlZCgpXCJcbiAgICAgIFtzdHlsZS4tLXZhbC1tZW51LWV4cGFuZGVkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8IG51bGxcIlxuICAgICAgW3N0eWxlLi0tdmFsLW1lbnUtY29sbGFwc2VkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCBudWxsXCJcbiAgICA+XG4gICAgICA8IS0tIEVkZ2UgaW5kaWNhdG9yOiB0aGluIGxpbmUgb24gcmlnaHQgZWRnZSwgY2xpY2sgb3Igc3dpcGUgdG8gY29sbGFwc2UvZXhwYW5kIC0tPlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWVudS1lZGdlLXN3aXBlLWluZGljYXRvclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbkVkZ2VQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwidG9nZ2xlRGVza3RvcENvbGxhcHNlKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IC41cmVtO1wiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvLW1pbmknLFxuICAgICAgICAgICAgICAgIGFsdDogJ21lbnUgbG9nbycsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlIGNsYXNzPVwibWVudS1tb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtcHJvamVjdGVkLWNvbnRlbnRcIlxuICAgICAgICAgICh2YWxNZW51RXhwYW5kUmVxdWVzdCk9XCJleHBhbmREZXNrdG9wUmFpbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29sbGFwc2UtZm9vdGVyXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jb2xsYXBzZS10b2dnbGVcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNEZXNrdG9wQ29sbGFwc2VkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJtZWRpdW1cIiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiZGVza3RvcENvbGxhcHNlSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wcy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1lbnUtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdGV4dDogY2xvc2VCdXR0b25UZXh0KCksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjbG9zZS1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgc2xvdDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiY2xvc2VNZW51KClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvaW9uLW1lbnU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtZW51Q3RybCA9IGluamVjdChNZW51Q29udHJvbGxlcik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgc3BsaXRQYW5lPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNrdG9wQ29sbGFwc2VkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBFZGdlLXN3aXBlIHRyYWNraW5nXG4gIHByaXZhdGUgdG91Y2hTdGFydFggPSAwO1xuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBFREdFX1NXSVBFX1RIUkVTSE9MRCA9IDIwOyAvLyBweCBmcm9tIGxlZnQgZWRnZVxuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9TV0lQRV9ESVNUQU5DRSA9IDgwOyAvLyBweCB0byB0cmlnZ2VyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NXSVBFX0RVUkFUSU9OID0gNTAwOyAvLyBtc1xuXG4gIC8qKlxuICAgKiBNZW51IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogTWVudU1ldGFkYXRhID0ge1xuICAgIHNpZGU6ICdzdGFydCcsXG4gICAgdHlwZTogJ292ZXJsYXknLFxuICAgIHN3aXBlOiB0cnVlLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wc0NoYW5nZSA9IGNoYW5nZXNbJ3Byb3BzJ107XG4gICAgaWYgKCFwcm9wc0NoYW5nZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXMgPSBwcm9wc0NoYW5nZS5wcmV2aW91c1ZhbHVlIGFzIE1lbnVNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBwcm9wc0NoYW5nZS5maXJzdENoYW5nZSB8fFxuICAgICAgcHJldmlvdXM/LmRlc2t0b3BDb2xsYXBzZWQgIT09IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCB8fFxuICAgICAgcHJldmlvdXM/LnJldHJhY3RhYmxlTWVudSAhPT0gdGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnVcbiAgICApIHtcbiAgICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldCghIXRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHRvdWNoID0gZXZlbnQudG91Y2hlc1swXTtcbiAgICAvLyBTb2xvIGRldGVjdGFyIGRlc2RlIGJvcmRlIGl6cXVpZXJkb1xuICAgIGlmICh0b3VjaC5jbGllbnRYIDw9IHRoaXMuRURHRV9TV0lQRV9USFJFU0hPTEQpIHtcbiAgICAgIHRoaXMudG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCB0aGlzLnRvdWNoU3RhcnRYID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBjaGFuZ2VkVG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtcbiAgICBjb25zdCB0b3VjaEVuZFggPSBjaGFuZ2VkVG91Y2guY2xpZW50WDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IHRvdWNoRW5kWCAtIHRoaXMudG91Y2hTdGFydFg7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy50b3VjaFN0YXJ0VGltZTtcblxuICAgIC8vIFZhbGlkYXI6IHN3aXBlIGhhY2lhIGxhIGRlcmVjaGEsIGRpc3RhbmNpYSBtw61uaW1hLCBkdXJhY2nDs24gbcOheGltYVxuICAgIGlmIChkaXN0YW5jZSA+PSB0aGlzLk1JTl9TV0lQRV9ESVNUQU5DRSAmJiBkdXJhdGlvbiA8PSB0aGlzLk1BWF9TV0lQRV9EVVJBVElPTikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlRGVza3RvcENvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRleHQgLSByZWFjdGl2ZSB0byBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2xvc2VCdXR0b25UZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jbG9zZUJ1dHRvblRleHQgfHwgdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBhc3luYyBjbG9zZU1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSh0aGlzLnByb3BzLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRlIGVsIHJhaWwgYSBwZWRpZG8gZGUgbG8gcXVlIGVzdMOhIHByb3llY3RhZG8gYWRlbnRyby4gVW5hIHNlY2Npw7NuIHF1ZVxuICAgKiBzb2xvIGFncnVwYSBoaWpvcyBubyBwdWVkZSBkZXNwbGVnYXJzZSBlbiA1NnB4LCBhc8OtIHF1ZSBwaWRlIGx1Z2FyIGVuIHZlelxuICAgKiBkZSBubyBoYWNlciBuYWRhLlxuICAgKi9cbiAgZXhwYW5kRGVza3RvcFJhaWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCAhdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIHRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQudXBkYXRlKGNvbGxhcHNlZCA9PiAhY29sbGFwc2VkKTtcbiAgICB0aGlzLnN5bmNTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgcmV0cmFjdGFibGVNZW51RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnUgPz8gdGhpcy5wcm9wcy5kZXNrdG9wQ29sbGFwc2libGUpO1xuICB9XG5cbiAgZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKVxuICAgICAgPyB0aGlzLnByb3BzLmRlc2t0b3BFeHBhbmRMYWJlbCB8fCAnRXhwYW5kaXIgbWVuw7onXG4gICAgICA6IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlTGFiZWwgfHwgJ0NvbnRyYWVyIG1lbsO6JztcbiAgfVxuXG4gIGRlc2t0b3BDb2xsYXBzZUljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0VuZCA9IHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCc7XG4gICAgaWYgKHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkpIHtcbiAgICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWJhY2stY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1jaXJjbGUtb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWZvcndhcmQtY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tYmFjay1jaXJjbGUtb3V0bGluZSc7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQXJyYXN0cmUgZGVsIGJvcmRlXG4gIC8vXG4gIC8vIEFycmFzdHJhciBlbmdhbmNoYSBhIGFiaWVydG8vY2VycmFkbzsgTk8gZXMgYWp1c3RlIGxpYnJlIGRlIGFuY2hvLiBFbCBhbmNob1xuICAvLyBkZSBjb250ZW5pZG8gdGllbmUgZXN0YWRvcyBkZWZpbmlkb3MgKHZhbC1jb250YWluZXIgbG9zIGxlZSB2w61hIGRhdGEtbWVudSksXG4gIC8vIGFzw60gcXVlIHVuIGFuY2hvIGFyYml0cmFyaW8gZGVqYXLDrWEgZWwgY29udGVuaWRvIGEgbWVyY2VkIGRlIGTDs25kZSBzb2x0w7MgZWxcbiAgLy8gbW91c2UgY2FkYSB1c3VhcmlvLiBEdXJhbnRlIGVsIGFycmFzdHJlIGVsIHJhaWwgc8OtIHNpZ3VlIGFsIHB1bnRlcm8g4oCUIGVsXG4gIC8vIGVuZ2FuY2hlIG9jdXJyZSBhbCBzb2x0YXIsIGNvbnRyYSBlbCBwdW50byBtZWRpbyBlbnRyZSBhbWJvcyBhbmNob3MuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZHJhZ1N0YXJ0WCA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0V2lkdGggPSAwO1xuICBwcml2YXRlIGRyYWdCb3VuZHM6IHsgY29sbGFwc2VkOiBudW1iZXI7IGV4cGFuZGVkOiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYWdnaW5nID0gZmFsc2U7XG4gIC8qKiBQb3IgZGViYWpvIGRlIGVzdG8gbm8gaHVibyBhcnJhc3RyZTogZnVlIHVuIGNsaWNrIHNvYnJlIGVsIGJvcmRlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IERSQUdfQ0xJQ0tfU0xPUCA9IDU7XG5cbiAgb25FZGdlUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51RWxlbWVudCgpO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghbWVudSB8fCAhc3BsaXRQYW5lKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLnJlc29sdmVXaWR0aFB4KHRoaXMuY29sbGFwc2VkV2lkdGhWYWx1ZSgpKTtcbiAgICBjb25zdCBleHBhbmRlZCA9IHRoaXMucmVzb2x2ZVdpZHRoUHgodGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKSk7XG4gICAgLy8gU2kgZWwgc29uZGVvIG5vIHB1ZG8gcmVzb2x2ZXIgbG9zIGFuY2hvcywgZWwgYXJyYXN0cmUgbm8gdGllbmUgY29udHJhIHF1w6lcbiAgICAvLyBlbmdhbmNoYXI6IHNlIGRlZ3JhZGEgYSBjbGljayBwdXJvIChlbCBwb2ludGVydXAgc2luIGJvdW5kcyBubyBoYWNlIG5hZGFcbiAgICAvLyB5IGVsIHNsb3AgbG8gdHJhdGEgY29tbyB0b2dnbGUpLlxuICAgIGlmICghKGV4cGFuZGVkID4gY29sbGFwc2VkKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5kcmFnU3RhcnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICAvLyBBbmNsYSBlbiBlbCBhbmNobyBERUNMQVJBRE8gZGVsIGVzdGFkbyBhY3R1YWwsIG5vIGVuIGVsIG1lZGlkby4gU2kgZWxcbiAgICAvLyBtZW7DuiBlc3TDoSByZW5kZXJpemFkbyBhIHVuIGFuY2hvIHF1ZSBubyBlcyBuaW5ndW5vIGRlIGxvcyBkb3MgKGxheW91dFxuICAgIC8vIGVuIHRyYW5zaWNpw7NuLCBlc3RpbG9zIGRlIGxhIGFwcCksIG1lZGlyIGNvcnJlIGVsIG9yaWdlbiBkZWwgYXJyYXN0cmUgeVxuICAgIC8vIGVsIGVuZ2FuY2hlIGNhZSBkZWwgbGFkbyBlcXVpdm9jYWRvLlxuICAgIHRoaXMuZHJhZ1N0YXJ0V2lkdGggPSB0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpID8gY29sbGFwc2VkIDogZXhwYW5kZWQ7XG4gICAgdGhpcy5kcmFnQm91bmRzID0geyBjb2xsYXBzZWQsIGV4cGFuZGVkIH07XG4gICAgc3BsaXRQYW5lLmNsYXNzTGlzdC5hZGQoJ3ZhbC1tZW51LWRyYWdnaW5nJyk7XG4gICAgLy8gTGEgY2FwdHVyYSBtYW50aWVuZSBlbCBhcnJhc3RyZSB2aXZvIHNpIGVsIHB1bnRlcm8gc2Ugc2FsZSBkZWwgYm9yZGUuXG4gICAgLy8gRXMgdW5hIG1lam9yYSwgbm8gdW4gcmVxdWlzaXRvOiBsYW56YSBjdWFuZG8gZWwgcG9pbnRlcklkIG5vIGNvcnJlc3BvbmRlIGFcbiAgICAvLyB1biBwdW50ZXJvIGFjdGl2bywgeSBlc2UgdGhyb3cgbm8gcHVlZGUgbGxldmFyc2UgcHVlc3RvIGVsIGdlc3RvLlxuICAgIHRyeSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBzaW4gY2FwdHVyYTogZWwgYXJyYXN0cmUgc2lndWUgZnVuY2lvbmFuZG8gdsOtYSBsaXN0ZW5lcnMgZGUgZG9jdW1lbnQgKi9cbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25FZGdlUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZykgcmV0dXJuO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghc3BsaXRQYW5lKSByZXR1cm47XG4gICAgdGhpcy5hcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZSwgYCR7dGhpcy53aWR0aEZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFgpfXB4YCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnLCBbJyRldmVudCddKVxuICBvbkVkZ2VQb2ludGVyVXAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZyB8fCAhdGhpcy5kcmFnQm91bmRzKSByZXR1cm47XG5cbiAgICBjb25zdCB7IGNvbGxhcHNlZCwgZXhwYW5kZWQgfSA9IHRoaXMuZHJhZ0JvdW5kcztcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGhGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKTtcbiAgICBjb25zdCB0cmF2ZWxsZWQgPSBNYXRoLmFicyhldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRYKTtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWdCb3VuZHMgPSBudWxsO1xuICAgIHRoaXMuZmluZFNwbGl0UGFuZSgpPy5jbGFzc0xpc3QucmVtb3ZlKCd2YWwtbWVudS1kcmFnZ2luZycpO1xuXG4gICAgaWYgKHRyYXZlbGxlZCA8IHRoaXMuRFJBR19DTElDS19TTE9QKSB7XG4gICAgICB0aGlzLnRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQod2lkdGggPCAoY29sbGFwc2VkICsgZXhwYW5kZWQpIC8gMik7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIC8qKiBBbmNobyBxdWUgY29ycmVzcG9uZGUgYWwgcHVudGVybywgYWNvdGFkbyBhIGxvcyBkb3MgZXh0cmVtb3MuICovXG4gIHByaXZhdGUgd2lkdGhGcm9tUG9pbnRlcihjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5kcmFnQm91bmRzKSByZXR1cm4gdGhpcy5kcmFnU3RhcnRXaWR0aDtcbiAgICBjb25zdCBkZWx0YSA9IGNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgY29uc3QgcmF3ID1cbiAgICAgIHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCdcbiAgICAgICAgPyB0aGlzLmRyYWdTdGFydFdpZHRoIC0gZGVsdGFcbiAgICAgICAgOiB0aGlzLmRyYWdTdGFydFdpZHRoICsgZGVsdGE7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZHJhZ0JvdW5kcy5leHBhbmRlZCwgTWF0aC5tYXgodGhpcy5kcmFnQm91bmRzLmNvbGxhcHNlZCwgcmF3KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdWVsdmUgdW4gYW5jaG8gQ1NTIGEgcMOteGVsZXMgbWlkaWVuZG8gdW4gZWxlbWVudG8gZGUgc29uZGVvLiBIYWNlIGZhbHRhXG4gICAqIHBvcnF1ZSBsb3MgdmFsb3JlcyBzb24gZXhwcmVzaW9uZXMgKGBtaW4oNDB2dywgMjJyZW0pYCkgcXVlIGdldENvbXB1dGVkU3R5bGVcbiAgICogZGV2dWVsdmUgc2luIHJlc29sdmVyIGN1YW5kbyB2aXZlbiBlbiB1bmEgY3VzdG9tIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlV2lkdGhQeCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHByb2JlLnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoke3ZhbHVlfTtgO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHByb2JlKTtcbiAgICBjb25zdCBweCA9IHByb2JlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIHByb2JlLnJlbW92ZSgpO1xuICAgIHJldHVybiBweDtcbiAgfVxuXG4gIHByaXZhdGUgbWVudUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW9uLW1lbnUnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VkV2lkdGhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCAnMy41cmVtJztcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kZWRXaWR0aFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVza3RvcEV4cGFuZGVkV2lkdGggfHwgJ21pbig0MHZ3LCAyMnJlbSknO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZTogSFRNTEVsZW1lbnQsIHdpZHRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS13aWR0aCcsIHdpZHRoKTtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS1taW4td2lkdGgnLCB3aWR0aCk7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtbWF4LXdpZHRoJywgd2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIXNwbGl0UGFuZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYXB0dXJlT3JpZ2luYWxTcGxpdFBhbmVTdHlsZXMoc3BsaXRQYW5lKTtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKClcbiAgICAgID8gdGhpcy5jb2xsYXBzZWRXaWR0aFZhbHVlKClcbiAgICAgIDogdGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKTtcblxuICAgIHRoaXMuYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmUsIHdpZHRoKTtcblxuICAgIHRoaXMubWFya1NoZWxsTWVudVN0YXRlKHNwbGl0UGFuZSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljYSBlbCBlc3RhZG8gZGVsIG1lbsO6IGVuIGVsIHNoZWxsLCBwYXJhIHF1ZSBlbCBDT05URU5JRE8gcHVlZGFcbiAgICogYWRhcHRhcnNlLlxuICAgKlxuICAgKiBFbCBtZW7DuiB5YSBzYWLDrWEgc2kgZXN0YWJhIGFiaWVydG8gbyBjZXJyYWRvLCBwZXJvIHNvbG8gc2UgbG8gZGVjw61hIGEgc8OtXG4gICAqIG1pc21vIHkgYWwgYW5jaG8gZGVsIHBhbmU6IGVsIGNvbnRlbmlkbyBzZWd1w61hIGNvbiBlbCBtaXNtbyB0b3BlLCBhc8OtIHF1ZVxuICAgKiBlbCBlc3BhY2lvIHF1ZSBkZWphYmEgbGEgbmF2ZWdhY2nDs24gc2Ugdm9sdsOtYSBhaXJlIGxhdGVyYWwgZW4gdmV6IGRlXG4gICAqIGNvbnRlbmlkby5cbiAgICpcbiAgICogU2UgbWFyY2EgZWwgYGlvbi1zcGxpdC1wYW5lYCBwb3JxdWUgZXMgZWwgYW5jZXN0cm8gY29tw7puIGRlbCBtZW7DuiB5IGRlbFxuICAgKiBjb250ZW5pZG87IGRlc2RlIGFow60gYHZhbC1jb250YWluZXJgIGxvIGxlZSBjb24gYDpob3N0LWNvbnRleHRgIHkgbmluZ3VuYVxuICAgKiBhcHAgbmVjZXNpdGEgY2FibGVhciBuYWRhLiBFbCBhdHJpYnV0byBzZSBsaW1waWEgYWwgcmVzdGF1cmFyICh2ZXJcbiAgICogcmVzdG9yZVNwbGl0UGFuZVdpZHRoKSBwYXJhIG5vIGRlamFyIHVuIHNoZWxsIFwiY29sYXBzYWRvXCIgY3VhbmRvIGVsIHJhaWxcbiAgICogZGVqYSBkZSBlc3RhciBhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIG1hcmtTaGVsbE1lbnVTdGF0ZShzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgc3BsaXRQYW5lLnNldEF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW1lbnUnLFxuICAgICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU3BsaXRQYW5lKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmU/LmlzQ29ubmVjdGVkKSByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gICAgdGhpcy5zcGxpdFBhbmUgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnaW9uLXNwbGl0LXBhbmUnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVPcmlnaW5hbFNwbGl0UGFuZVN0eWxlcyhzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbJy0tc2lkZS13aWR0aCcsICctLXNpZGUtbWluLXdpZHRoJywgJy0tc2lkZS1tYXgtd2lkdGgnXSkge1xuICAgICAgaWYgKCF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5zZXQocHJvcGVydHksIHNwbGl0UGFuZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BsaXRQYW5lID0gdGhpcy5maW5kU3BsaXRQYW5lKCk7XG4gICAgLy8gRWwgYXRyaWJ1dG8gc2UgcXVpdGEgYXVucXVlIG5vIGhheWEgZXN0aWxvcyBxdWUgcmVzdGF1cmFyOiBzaSBlbCByYWlsIHNlXG4gICAgLy8gZGVzYWN0aXZhLCBlbCBzaGVsbCBubyBwdWVkZSBxdWVkYXIgZGVjbGFyw6FuZG9zZSBjb2xhcHNhZG8uXG4gICAgc3BsaXRQYW5lPy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudScpO1xuICAgIGlmICghc3BsaXRQYW5lIHx8ICF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLnNpemUpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNwbGl0UGFuZS5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BsaXRQYW5lLnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
533
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWlISCxNQUFNLE9BQU8sYUFBYTtJQS9HMUI7UUFnSFUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXpELDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxzQkFBc0I7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNW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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQsb3RFQXhHQyxZQUFZLCtCQUNaLE9BQU8sa0pBQ1AsVUFBVSw4RUFDVixhQUFhLDBGQUNiLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSx3S0FDVixjQUFjLHlFQUNkLGVBQWU7OzRGQWlHTixhQUFhO2tCQS9HekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQ7OEJBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFnQ04sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVkvQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUg3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblRvb2xiYXIsXG4gIE1lbnVDb250cm9sbGVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtbWVudVxuICpcbiAqIEEgc2lkZSBtZW51IGNvbXBvbmVudCB1c2luZyBJb25pYyBJb25NZW51IHdpdGggY3VzdG9taXphYmxlIGxvZ28sXG4gKiBjbG9zZSBidXR0b24sIGFuZCBjb250ZW50IHByb2plY3Rpb24gZm9yIG1lbnUgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbWVudVxuICogICBbcHJvcHNdPVwie1xuICogICAgIGlkOiAnbWFpbi1tZW51JyxcbiAqICAgICBjb250ZW50SWQ6ICdtYWluLWNvbnRlbnQnLFxuICogICAgIHNpZGU6ICdzdGFydCcsXG4gKiAgICAgdHlwZTogJ292ZXJsYXknLFxuICogICAgIHN3aXBlOiB0cnVlLFxuICogICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogICB9XCJcbiAqID5cbiAqICAgPHZhbC1saW5rcy1hY2NvcmRpb24gW3Byb3BzXT1cIm1lbnVMaW5rc1wiPjwvdmFsLWxpbmtzLWFjY29yZGlvbj5cbiAqIDwvdmFsLW1lbnU+XG4gKlxuICogPGlvbi1yb3V0ZXItb3V0bGV0IGlkPVwibWFpbi1jb250ZW50XCI+PC9pb24tcm91dGVyLW91dGxldD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBNZW51IGNvbmZpZ3VyYXRpb25cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTWVudSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQ29udGVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tZW51XG4gICAgICBbbWVudUlkXT1cInByb3BzLmlkXCJcbiAgICAgIFtjb250ZW50SWRdPVwicHJvcHMuY29udGVudElkXCJcbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ292ZXJsYXknXCJcbiAgICAgIFtzaWRlXT1cInByb3BzLnNpZGUgfHwgJ3N0YXJ0J1wiXG4gICAgICBbc3dpcGVHZXN0dXJlXT1cInByb3BzLnN3aXBlICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuaXMtZGVza3RvcC1jb2xsYXBzaWJsZV09XCJyZXRyYWN0YWJsZU1lbnVFbmFibGVkKClcIlxuICAgICAgW2NsYXNzLmlzLWRlc2t0b3AtY29sbGFwc2VkXT1cImlzRGVza3RvcENvbGxhcHNlZCgpXCJcbiAgICAgIFtzdHlsZS4tLXZhbC1tZW51LWV4cGFuZGVkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8IG51bGxcIlxuICAgICAgW3N0eWxlLi0tdmFsLW1lbnUtY29sbGFwc2VkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCBudWxsXCJcbiAgICA+XG4gICAgICA8IS0tIEVkZ2UgaW5kaWNhdG9yOiB0aGluIGxpbmUgb24gcmlnaHQgZWRnZSwgY2xpY2sgb3Igc3dpcGUgdG8gY29sbGFwc2UvZXhwYW5kIC0tPlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWVudS1lZGdlLXN3aXBlLWluZGljYXRvclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbkVkZ2VQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwidG9nZ2xlRGVza3RvcENvbGxhcHNlKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IC41cmVtO1wiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvLW1pbmknLFxuICAgICAgICAgICAgICAgIGFsdDogJ21lbnUgbG9nbycsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlIGNsYXNzPVwibWVudS1tb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtcHJvamVjdGVkLWNvbnRlbnRcIlxuICAgICAgICAgICh2YWxNZW51RXhwYW5kUmVxdWVzdCk9XCJleHBhbmREZXNrdG9wUmFpbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29sbGFwc2UtZm9vdGVyXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jb2xsYXBzZS10b2dnbGVcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNEZXNrdG9wQ29sbGFwc2VkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJtZWRpdW1cIiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiZGVza3RvcENvbGxhcHNlSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wcy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1lbnUtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdGV4dDogY2xvc2VCdXR0b25UZXh0KCksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjbG9zZS1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgc2xvdDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiY2xvc2VNZW51KClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvaW9uLW1lbnU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtZW51Q3RybCA9IGluamVjdChNZW51Q29udHJvbGxlcik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgc3BsaXRQYW5lPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNrdG9wQ29sbGFwc2VkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBFZGdlLXN3aXBlIHRyYWNraW5nXG4gIHByaXZhdGUgdG91Y2hTdGFydFggPSAwO1xuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBFREdFX1NXSVBFX1RIUkVTSE9MRCA9IDIwOyAvLyBweCBmcm9tIGxlZnQgZWRnZVxuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9TV0lQRV9ESVNUQU5DRSA9IDgwOyAvLyBweCB0byB0cmlnZ2VyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NXSVBFX0RVUkFUSU9OID0gNTAwOyAvLyBtc1xuXG4gIC8qKlxuICAgKiBNZW51IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogTWVudU1ldGFkYXRhID0ge1xuICAgIHNpZGU6ICdzdGFydCcsXG4gICAgdHlwZTogJ292ZXJsYXknLFxuICAgIHN3aXBlOiB0cnVlLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wc0NoYW5nZSA9IGNoYW5nZXNbJ3Byb3BzJ107XG4gICAgaWYgKCFwcm9wc0NoYW5nZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXMgPSBwcm9wc0NoYW5nZS5wcmV2aW91c1ZhbHVlIGFzIE1lbnVNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBwcm9wc0NoYW5nZS5maXJzdENoYW5nZSB8fFxuICAgICAgcHJldmlvdXM/LmRlc2t0b3BDb2xsYXBzZWQgIT09IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCB8fFxuICAgICAgcHJldmlvdXM/LnJldHJhY3RhYmxlTWVudSAhPT0gdGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnVcbiAgICApIHtcbiAgICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldCghIXRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHRvdWNoID0gZXZlbnQudG91Y2hlc1swXTtcbiAgICAvLyBTb2xvIGRldGVjdGFyIGRlc2RlIGJvcmRlIGl6cXVpZXJkb1xuICAgIGlmICh0b3VjaC5jbGllbnRYIDw9IHRoaXMuRURHRV9TV0lQRV9USFJFU0hPTEQpIHtcbiAgICAgIHRoaXMudG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCB0aGlzLnRvdWNoU3RhcnRYID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBjaGFuZ2VkVG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtcbiAgICBjb25zdCB0b3VjaEVuZFggPSBjaGFuZ2VkVG91Y2guY2xpZW50WDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IHRvdWNoRW5kWCAtIHRoaXMudG91Y2hTdGFydFg7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy50b3VjaFN0YXJ0VGltZTtcblxuICAgIC8vIFZhbGlkYXI6IHN3aXBlIGhhY2lhIGxhIGRlcmVjaGEsIGRpc3RhbmNpYSBtw61uaW1hLCBkdXJhY2nDs24gbcOheGltYVxuICAgIGlmIChkaXN0YW5jZSA+PSB0aGlzLk1JTl9TV0lQRV9ESVNUQU5DRSAmJiBkdXJhdGlvbiA8PSB0aGlzLk1BWF9TV0lQRV9EVVJBVElPTikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlRGVza3RvcENvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRleHQgLSByZWFjdGl2ZSB0byBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2xvc2VCdXR0b25UZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jbG9zZUJ1dHRvblRleHQgfHwgdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBhc3luYyBjbG9zZU1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSh0aGlzLnByb3BzLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRlIGVsIHJhaWwgYSBwZWRpZG8gZGUgbG8gcXVlIGVzdMOhIHByb3llY3RhZG8gYWRlbnRyby4gVW5hIHNlY2Npw7NuIHF1ZVxuICAgKiBzb2xvIGFncnVwYSBoaWpvcyBubyBwdWVkZSBkZXNwbGVnYXJzZSBlbiA1NnB4LCBhc8OtIHF1ZSBwaWRlIGx1Z2FyIGVuIHZlelxuICAgKiBkZSBubyBoYWNlciBuYWRhLlxuICAgKi9cbiAgZXhwYW5kRGVza3RvcFJhaWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCAhdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIHRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQudXBkYXRlKGNvbGxhcHNlZCA9PiAhY29sbGFwc2VkKTtcbiAgICB0aGlzLnN5bmNTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgcmV0cmFjdGFibGVNZW51RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnUgPz8gdGhpcy5wcm9wcy5kZXNrdG9wQ29sbGFwc2libGUpO1xuICB9XG5cbiAgZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKVxuICAgICAgPyB0aGlzLnByb3BzLmRlc2t0b3BFeHBhbmRMYWJlbCB8fCAnRXhwYW5kaXIgbWVuw7onXG4gICAgICA6IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlTGFiZWwgfHwgJ0NvbnRyYWVyIG1lbsO6JztcbiAgfVxuXG4gIGRlc2t0b3BDb2xsYXBzZUljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0VuZCA9IHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCc7XG4gICAgaWYgKHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkpIHtcbiAgICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWJhY2stY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1jaXJjbGUtb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWZvcndhcmQtY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tYmFjay1jaXJjbGUtb3V0bGluZSc7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQXJyYXN0cmUgZGVsIGJvcmRlXG4gIC8vXG4gIC8vIEFycmFzdHJhciBlbmdhbmNoYSBhIGFiaWVydG8vY2VycmFkbzsgTk8gZXMgYWp1c3RlIGxpYnJlIGRlIGFuY2hvLiBFbCBhbmNob1xuICAvLyBkZSBjb250ZW5pZG8gdGllbmUgZXN0YWRvcyBkZWZpbmlkb3MgKHZhbC1jb250YWluZXIgbG9zIGxlZSB2w61hIGRhdGEtbWVudSksXG4gIC8vIGFzw60gcXVlIHVuIGFuY2hvIGFyYml0cmFyaW8gZGVqYXLDrWEgZWwgY29udGVuaWRvIGEgbWVyY2VkIGRlIGTDs25kZSBzb2x0w7MgZWxcbiAgLy8gbW91c2UgY2FkYSB1c3VhcmlvLiBEdXJhbnRlIGVsIGFycmFzdHJlIGVsIHJhaWwgc8OtIHNpZ3VlIGFsIHB1bnRlcm8g4oCUIGVsXG4gIC8vIGVuZ2FuY2hlIG9jdXJyZSBhbCBzb2x0YXIsIGNvbnRyYSBlbCBwdW50byBtZWRpbyBlbnRyZSBhbWJvcyBhbmNob3MuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZHJhZ1N0YXJ0WCA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0V2lkdGggPSAwO1xuICBwcml2YXRlIGRyYWdCb3VuZHM6IHsgY29sbGFwc2VkOiBudW1iZXI7IGV4cGFuZGVkOiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYWdnaW5nID0gZmFsc2U7XG4gIC8qKiBQb3IgZGViYWpvIGRlIGVzdG8gbm8gaHVibyBhcnJhc3RyZTogZnVlIHVuIGNsaWNrIHNvYnJlIGVsIGJvcmRlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IERSQUdfQ0xJQ0tfU0xPUCA9IDU7XG5cbiAgb25FZGdlUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51RWxlbWVudCgpO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghbWVudSB8fCAhc3BsaXRQYW5lKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLnJlc29sdmVXaWR0aFB4KHRoaXMuY29sbGFwc2VkV2lkdGhWYWx1ZSgpKTtcbiAgICBjb25zdCBleHBhbmRlZCA9IHRoaXMucmVzb2x2ZVdpZHRoUHgodGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKSk7XG4gICAgLy8gU2kgZWwgc29uZGVvIG5vIHB1ZG8gcmVzb2x2ZXIgbG9zIGFuY2hvcywgZWwgYXJyYXN0cmUgbm8gdGllbmUgY29udHJhIHF1w6lcbiAgICAvLyBlbmdhbmNoYXI6IHNlIGRlZ3JhZGEgYSBjbGljayBwdXJvIChlbCBwb2ludGVydXAgc2luIGJvdW5kcyBubyBoYWNlIG5hZGFcbiAgICAvLyB5IGVsIHNsb3AgbG8gdHJhdGEgY29tbyB0b2dnbGUpLlxuICAgIGlmICghKGV4cGFuZGVkID4gY29sbGFwc2VkKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5kcmFnU3RhcnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICAvLyBBbmNsYSBlbiBlbCBhbmNobyBERUNMQVJBRE8gZGVsIGVzdGFkbyBhY3R1YWwsIG5vIGVuIGVsIG1lZGlkby4gU2kgZWxcbiAgICAvLyBtZW7DuiBlc3TDoSByZW5kZXJpemFkbyBhIHVuIGFuY2hvIHF1ZSBubyBlcyBuaW5ndW5vIGRlIGxvcyBkb3MgKGxheW91dFxuICAgIC8vIGVuIHRyYW5zaWNpw7NuLCBlc3RpbG9zIGRlIGxhIGFwcCksIG1lZGlyIGNvcnJlIGVsIG9yaWdlbiBkZWwgYXJyYXN0cmUgeVxuICAgIC8vIGVsIGVuZ2FuY2hlIGNhZSBkZWwgbGFkbyBlcXVpdm9jYWRvLlxuICAgIHRoaXMuZHJhZ1N0YXJ0V2lkdGggPSB0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpID8gY29sbGFwc2VkIDogZXhwYW5kZWQ7XG4gICAgdGhpcy5kcmFnQm91bmRzID0geyBjb2xsYXBzZWQsIGV4cGFuZGVkIH07XG4gICAgc3BsaXRQYW5lLmNsYXNzTGlzdC5hZGQoJ3ZhbC1tZW51LWRyYWdnaW5nJyk7XG4gICAgLy8gTGEgY2FwdHVyYSBtYW50aWVuZSBlbCBhcnJhc3RyZSB2aXZvIHNpIGVsIHB1bnRlcm8gc2Ugc2FsZSBkZWwgYm9yZGUuXG4gICAgLy8gRXMgdW5hIG1lam9yYSwgbm8gdW4gcmVxdWlzaXRvOiBsYW56YSBjdWFuZG8gZWwgcG9pbnRlcklkIG5vIGNvcnJlc3BvbmRlIGFcbiAgICAvLyB1biBwdW50ZXJvIGFjdGl2bywgeSBlc2UgdGhyb3cgbm8gcHVlZGUgbGxldmFyc2UgcHVlc3RvIGVsIGdlc3RvLlxuICAgIHRyeSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBzaW4gY2FwdHVyYTogZWwgYXJyYXN0cmUgc2lndWUgZnVuY2lvbmFuZG8gdsOtYSBsaXN0ZW5lcnMgZGUgZG9jdW1lbnQgKi9cbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25FZGdlUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZykgcmV0dXJuO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghc3BsaXRQYW5lKSByZXR1cm47XG4gICAgdGhpcy5hcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZSwgYCR7dGhpcy53aWR0aEZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFgpfXB4YCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnLCBbJyRldmVudCddKVxuICBvbkVkZ2VQb2ludGVyVXAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZyB8fCAhdGhpcy5kcmFnQm91bmRzKSByZXR1cm47XG5cbiAgICBjb25zdCB7IGNvbGxhcHNlZCwgZXhwYW5kZWQgfSA9IHRoaXMuZHJhZ0JvdW5kcztcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGhGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKTtcbiAgICBjb25zdCB0cmF2ZWxsZWQgPSBNYXRoLmFicyhldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRYKTtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWdCb3VuZHMgPSBudWxsO1xuICAgIHRoaXMuZmluZFNwbGl0UGFuZSgpPy5jbGFzc0xpc3QucmVtb3ZlKCd2YWwtbWVudS1kcmFnZ2luZycpO1xuXG4gICAgaWYgKHRyYXZlbGxlZCA8IHRoaXMuRFJBR19DTElDS19TTE9QKSB7XG4gICAgICB0aGlzLnRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQod2lkdGggPCAoY29sbGFwc2VkICsgZXhwYW5kZWQpIC8gMik7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIC8qKiBBbmNobyBxdWUgY29ycmVzcG9uZGUgYWwgcHVudGVybywgYWNvdGFkbyBhIGxvcyBkb3MgZXh0cmVtb3MuICovXG4gIHByaXZhdGUgd2lkdGhGcm9tUG9pbnRlcihjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5kcmFnQm91bmRzKSByZXR1cm4gdGhpcy5kcmFnU3RhcnRXaWR0aDtcbiAgICBjb25zdCBkZWx0YSA9IGNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgY29uc3QgcmF3ID1cbiAgICAgIHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCdcbiAgICAgICAgPyB0aGlzLmRyYWdTdGFydFdpZHRoIC0gZGVsdGFcbiAgICAgICAgOiB0aGlzLmRyYWdTdGFydFdpZHRoICsgZGVsdGE7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZHJhZ0JvdW5kcy5leHBhbmRlZCwgTWF0aC5tYXgodGhpcy5kcmFnQm91bmRzLmNvbGxhcHNlZCwgcmF3KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdWVsdmUgdW4gYW5jaG8gQ1NTIGEgcMOteGVsZXMgbWlkaWVuZG8gdW4gZWxlbWVudG8gZGUgc29uZGVvLiBIYWNlIGZhbHRhXG4gICAqIHBvcnF1ZSBsb3MgdmFsb3JlcyBzb24gZXhwcmVzaW9uZXMgKGBtaW4oNDB2dywgMjJyZW0pYCkgcXVlIGdldENvbXB1dGVkU3R5bGVcbiAgICogZGV2dWVsdmUgc2luIHJlc29sdmVyIGN1YW5kbyB2aXZlbiBlbiB1bmEgY3VzdG9tIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlV2lkdGhQeCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHByb2JlLnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoke3ZhbHVlfTtgO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHByb2JlKTtcbiAgICBjb25zdCBweCA9IHByb2JlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIHByb2JlLnJlbW92ZSgpO1xuICAgIHJldHVybiBweDtcbiAgfVxuXG4gIHByaXZhdGUgbWVudUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW9uLW1lbnUnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VkV2lkdGhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCAnMy41cmVtJztcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kZWRXaWR0aFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVza3RvcEV4cGFuZGVkV2lkdGggfHwgJ21pbig0MHZ3LCAyMnJlbSknO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZTogSFRNTEVsZW1lbnQsIHdpZHRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS13aWR0aCcsIHdpZHRoKTtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS1taW4td2lkdGgnLCB3aWR0aCk7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtbWF4LXdpZHRoJywgd2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIXNwbGl0UGFuZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYXB0dXJlT3JpZ2luYWxTcGxpdFBhbmVTdHlsZXMoc3BsaXRQYW5lKTtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKClcbiAgICAgID8gdGhpcy5jb2xsYXBzZWRXaWR0aFZhbHVlKClcbiAgICAgIDogdGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKTtcblxuICAgIHRoaXMuYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmUsIHdpZHRoKTtcblxuICAgIHRoaXMubWFya1NoZWxsTWVudVN0YXRlKHNwbGl0UGFuZSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljYSBlbCBlc3RhZG8gZGVsIG1lbsO6IGVuIGVsIHNoZWxsLCBwYXJhIHF1ZSBlbCBDT05URU5JRE8gcHVlZGFcbiAgICogYWRhcHRhcnNlLlxuICAgKlxuICAgKiBFbCBtZW7DuiB5YSBzYWLDrWEgc2kgZXN0YWJhIGFiaWVydG8gbyBjZXJyYWRvLCBwZXJvIHNvbG8gc2UgbG8gZGVjw61hIGEgc8OtXG4gICAqIG1pc21vIHkgYWwgYW5jaG8gZGVsIHBhbmU6IGVsIGNvbnRlbmlkbyBzZWd1w61hIGNvbiBlbCBtaXNtbyB0b3BlLCBhc8OtIHF1ZVxuICAgKiBlbCBlc3BhY2lvIHF1ZSBkZWphYmEgbGEgbmF2ZWdhY2nDs24gc2Ugdm9sdsOtYSBhaXJlIGxhdGVyYWwgZW4gdmV6IGRlXG4gICAqIGNvbnRlbmlkby5cbiAgICpcbiAgICogU2UgbWFyY2EgZWwgYGlvbi1zcGxpdC1wYW5lYCBwb3JxdWUgZXMgZWwgYW5jZXN0cm8gY29tw7puIGRlbCBtZW7DuiB5IGRlbFxuICAgKiBjb250ZW5pZG87IGRlc2RlIGFow60gYHZhbC1jb250YWluZXJgIGxvIGxlZSBjb24gYDpob3N0LWNvbnRleHRgIHkgbmluZ3VuYVxuICAgKiBhcHAgbmVjZXNpdGEgY2FibGVhciBuYWRhLiBFbCBhdHJpYnV0byBzZSBsaW1waWEgYWwgcmVzdGF1cmFyICh2ZXJcbiAgICogcmVzdG9yZVNwbGl0UGFuZVdpZHRoKSBwYXJhIG5vIGRlamFyIHVuIHNoZWxsIFwiY29sYXBzYWRvXCIgY3VhbmRvIGVsIHJhaWxcbiAgICogZGVqYSBkZSBlc3RhciBhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIG1hcmtTaGVsbE1lbnVTdGF0ZShzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgc3BsaXRQYW5lLnNldEF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW1lbnUnLFxuICAgICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU3BsaXRQYW5lKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmU/LmlzQ29ubmVjdGVkKSByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gICAgdGhpcy5zcGxpdFBhbmUgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnaW9uLXNwbGl0LXBhbmUnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVPcmlnaW5hbFNwbGl0UGFuZVN0eWxlcyhzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbJy0tc2lkZS13aWR0aCcsICctLXNpZGUtbWluLXdpZHRoJywgJy0tc2lkZS1tYXgtd2lkdGgnXSkge1xuICAgICAgaWYgKCF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5zZXQocHJvcGVydHksIHNwbGl0UGFuZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BsaXRQYW5lID0gdGhpcy5maW5kU3BsaXRQYW5lKCk7XG4gICAgLy8gRWwgYXRyaWJ1dG8gc2UgcXVpdGEgYXVucXVlIG5vIGhheWEgZXN0aWxvcyBxdWUgcmVzdGF1cmFyOiBzaSBlbCByYWlsIHNlXG4gICAgLy8gZGVzYWN0aXZhLCBlbCBzaGVsbCBubyBwdWVkZSBxdWVkYXIgZGVjbGFyw6FuZG9zZSBjb2xhcHNhZG8uXG4gICAgc3BsaXRQYW5lPy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudScpO1xuICAgIGlmICghc3BsaXRQYW5lIHx8ICF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLnNpemUpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNwbGl0UGFuZS5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BsaXRQYW5lLnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.962';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45NjInO1xuIl19
|
|
@@ -67,7 +67,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
67
67
|
* Current version of valtech-components.
|
|
68
68
|
* This is automatically updated during the publish process.
|
|
69
69
|
*/
|
|
70
|
-
const VERSION = '4.0.
|
|
70
|
+
const VERSION = '4.0.962';
|
|
71
71
|
|
|
72
72
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
73
73
|
if (rule == null)
|
|
@@ -16062,6 +16062,8 @@ const TONE_ICON = {
|
|
|
16062
16062
|
info: 'information-circle-outline',
|
|
16063
16063
|
warning: 'alert-circle-outline',
|
|
16064
16064
|
success: 'checkmark-circle-outline',
|
|
16065
|
+
// neutral no trae ícono por defecto: es una nota secundaria de bajo perfil,
|
|
16066
|
+
// no un aviso que necesite llamar la atención.
|
|
16065
16067
|
};
|
|
16066
16068
|
/**
|
|
16067
16069
|
* Caja de aviso: un bloque breve de contexto junto a un formulario o una
|
|
@@ -16097,6 +16099,7 @@ class NoticeComponent {
|
|
|
16097
16099
|
class="notice"
|
|
16098
16100
|
[class]="props.cssClass"
|
|
16099
16101
|
[class.tone-info]="tone === 'info'"
|
|
16102
|
+
[class.tone-neutral]="tone === 'neutral'"
|
|
16100
16103
|
[class.tone-warning]="tone === 'warning'"
|
|
16101
16104
|
[class.tone-success]="tone === 'success'"
|
|
16102
16105
|
>
|
|
@@ -16113,7 +16116,7 @@ class NoticeComponent {
|
|
|
16113
16116
|
</div>
|
|
16114
16117
|
</aside>
|
|
16115
16118
|
}
|
|
16116
|
-
`, isInline: true, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:
|
|
16119
|
+
`, isInline: true, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border-radius:12px;border-left:3px solid transparent;font-size:.9rem;line-height:1.4;color:var(--ion-text-color, #000);background:rgba(var(--ion-color-secondary-rgb),.08);border-left-color:rgb(var(--ion-color-secondary-rgb))}.notice ion-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px;color:var(--ion-color-secondary)}.notice__body{display:flex;flex-direction:column;gap:2px}.notice__title{font-weight:700}.tone-neutral{background:rgba(var(--ion-color-medium-rgb),.08);border-left-color:rgb(var(--ion-color-medium-rgb));color:var(--ion-color-medium)}.tone-neutral ion-icon{color:var(--ion-color-medium)}.tone-warning{background:rgba(var(--ion-color-warning-rgb),.12);border-left-color:rgb(var(--ion-color-warning-rgb))}.tone-warning ion-icon{color:var(--ion-color-warning-shade)}.tone-success{background:rgba(var(--ion-color-success-rgb),.1);border-left-color:rgb(var(--ion-color-success-rgb))}.tone-success ion-icon{color:var(--ion-color-success-shade)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
16117
16120
|
}
|
|
16118
16121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoticeComponent, decorators: [{
|
|
16119
16122
|
type: Component,
|
|
@@ -16123,6 +16126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16123
16126
|
class="notice"
|
|
16124
16127
|
[class]="props.cssClass"
|
|
16125
16128
|
[class.tone-info]="tone === 'info'"
|
|
16129
|
+
[class.tone-neutral]="tone === 'neutral'"
|
|
16126
16130
|
[class.tone-warning]="tone === 'warning'"
|
|
16127
16131
|
[class.tone-success]="tone === 'success'"
|
|
16128
16132
|
>
|
|
@@ -16139,7 +16143,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16139
16143
|
</div>
|
|
16140
16144
|
</aside>
|
|
16141
16145
|
}
|
|
16142
|
-
`, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:
|
|
16146
|
+
`, styles: [":host{display:block}.notice{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border-radius:12px;border-left:3px solid transparent;font-size:.9rem;line-height:1.4;color:var(--ion-text-color, #000);background:rgba(var(--ion-color-secondary-rgb),.08);border-left-color:rgb(var(--ion-color-secondary-rgb))}.notice ion-icon{flex-shrink:0;font-size:1.1rem;margin-top:1px;color:var(--ion-color-secondary)}.notice__body{display:flex;flex-direction:column;gap:2px}.notice__title{font-weight:700}.tone-neutral{background:rgba(var(--ion-color-medium-rgb),.08);border-left-color:rgb(var(--ion-color-medium-rgb));color:var(--ion-color-medium)}.tone-neutral ion-icon{color:var(--ion-color-medium)}.tone-warning{background:rgba(var(--ion-color-warning-rgb),.12);border-left-color:rgb(var(--ion-color-warning-rgb))}.tone-warning ion-icon{color:var(--ion-color-warning-shade)}.tone-success{background:rgba(var(--ion-color-success-rgb),.1);border-left-color:rgb(var(--ion-color-success-rgb))}.tone-success ion-icon{color:var(--ion-color-success-shade)}\n"] }]
|
|
16143
16147
|
}], propDecorators: { props: [{
|
|
16144
16148
|
type: Input
|
|
16145
16149
|
}] } });
|
|
@@ -48717,7 +48721,7 @@ class MenuComponent {
|
|
|
48717
48721
|
/>
|
|
48718
48722
|
}
|
|
48719
48723
|
</ion-menu>
|
|
48720
|
-
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
48724
|
+
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
48721
48725
|
}
|
|
48722
48726
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuComponent, decorators: [{
|
|
48723
48727
|
type: Component,
|
|
@@ -48825,7 +48829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
48825
48829
|
/>
|
|
48826
48830
|
}
|
|
48827
48831
|
</ion-menu>
|
|
48828
|
-
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
48832
|
+
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
48829
48833
|
}], propDecorators: { props: [{
|
|
48830
48834
|
type: Input
|
|
48831
48835
|
}], onTouchStart: [{
|