@magicx-eng/ai-autocomplete-angular 0.23.2 → 0.24.0
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/README.md +5 -0
- package/esm2020/lib/ai-autocomplete/ai-autocomplete.component.mjs +16 -4
- package/esm2020/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.mjs +34 -4
- package/esm2020/lib/internal/editor-host/editor-host.directive.mjs +10 -3
- package/esm2020/lib/internal/suggestion-grid/suggestion-grid.component.mjs +11 -3
- package/esm2020/lib/internal/suggestion-item/suggestion-item.component.mjs +40 -5
- package/esm2020/public-api.mjs +9 -2
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs +115 -15
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs +114 -15
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/lib/ai-autocomplete/ai-autocomplete.component.d.ts +7 -1
- package/lib/ai-autocomplete/ai-autocomplete.component.d.ts.map +1 -1
- package/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.d.ts +18 -1
- package/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.d.ts.map +1 -1
- package/lib/internal/editor-host/editor-host.directive.d.ts +3 -1
- package/lib/internal/editor-host/editor-host.directive.d.ts.map +1 -1
- package/lib/internal/suggestion-grid/suggestion-grid.component.d.ts +5 -1
- package/lib/internal/suggestion-grid/suggestion-grid.component.d.ts.map +1 -1
- package/lib/internal/suggestion-item/suggestion-item.component.d.ts +23 -1
- package/lib/internal/suggestion-item/suggestion-item.component.d.ts.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +9 -1
- package/public-api.d.ts.map +1 -1
|
@@ -34,6 +34,8 @@ export class AIAutocompleteEditorHostDirective {
|
|
|
34
34
|
this.autoFocus = true;
|
|
35
35
|
/** Whether completed chips draw the icon of the option that answered them. Default: true. */
|
|
36
36
|
this.showChipIcons = true;
|
|
37
|
+
/** Whether completed chips draw the picture of the option that answered them, in place of the icon. Default: true. */
|
|
38
|
+
this.showChipImages = true;
|
|
37
39
|
this.el = inject(ElementRef);
|
|
38
40
|
this.renderer = inject(Renderer2);
|
|
39
41
|
this.zone = inject(NgZone);
|
|
@@ -82,7 +84,9 @@ export class AIAutocompleteEditorHostDirective {
|
|
|
82
84
|
this.bindStateSubscription();
|
|
83
85
|
}
|
|
84
86
|
ngOnChanges(changes) {
|
|
85
|
-
|
|
87
|
+
const toggled = (changes["showChipIcons"] ?? changes["showChipImages"]) !== undefined;
|
|
88
|
+
const first = changes["showChipIcons"]?.firstChange ?? changes["showChipImages"]?.firstChange;
|
|
89
|
+
if (toggled && !first && this.lastState) {
|
|
86
90
|
this.renderEditor(this.lastState);
|
|
87
91
|
}
|
|
88
92
|
}
|
|
@@ -95,6 +99,7 @@ export class AIAutocompleteEditorHostDirective {
|
|
|
95
99
|
placeholderText: state.placeholderText,
|
|
96
100
|
isFocused: state.isFocused,
|
|
97
101
|
showChipIcons: this.showChipIcons,
|
|
102
|
+
showChipImages: this.showChipImages,
|
|
98
103
|
});
|
|
99
104
|
}
|
|
100
105
|
ngOnDestroy() {
|
|
@@ -255,7 +260,7 @@ export class AIAutocompleteEditorHostDirective {
|
|
|
255
260
|
}
|
|
256
261
|
}
|
|
257
262
|
AIAutocompleteEditorHostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteEditorHostDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
258
|
-
AIAutocompleteEditorHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AIAutocompleteEditorHostDirective, isStandalone: true, selector: "[aiaEditorHost]", inputs: { controller: ["aiaEditorHost", "controller"], autoFocus: "autoFocus", showChipIcons: "showChipIcons" }, host: { attributes: { "role": "combobox", "aria-autocomplete": "list", "aria-haspopup": "listbox", "spellcheck": "true", "enterkeyhint": "send", "tabindex": "0" }, listeners: { "input": "onInput()", "keydown": "onKeyDown($event)", "compositionstart": "onCompositionStart()", "compositionend": "onCompositionEnd()", "paste": "onPaste($event)", "focus": "onFocus()", "blur": "onBlur()" } }, usesOnChanges: true, ngImport: i0 });
|
|
263
|
+
AIAutocompleteEditorHostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: AIAutocompleteEditorHostDirective, isStandalone: true, selector: "[aiaEditorHost]", inputs: { controller: ["aiaEditorHost", "controller"], autoFocus: "autoFocus", showChipIcons: "showChipIcons", showChipImages: "showChipImages" }, host: { attributes: { "role": "combobox", "aria-autocomplete": "list", "aria-haspopup": "listbox", "spellcheck": "true", "enterkeyhint": "send", "tabindex": "0" }, listeners: { "input": "onInput()", "keydown": "onKeyDown($event)", "compositionstart": "onCompositionStart()", "compositionend": "onCompositionEnd()", "paste": "onPaste($event)", "focus": "onFocus()", "blur": "onBlur()" } }, usesOnChanges: true, ngImport: i0 });
|
|
259
264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteEditorHostDirective, decorators: [{
|
|
260
265
|
type: Directive,
|
|
261
266
|
args: [{
|
|
@@ -284,5 +289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
284
289
|
type: Input
|
|
285
290
|
}], showChipIcons: [{
|
|
286
291
|
type: Input
|
|
292
|
+
}], showChipImages: [{
|
|
293
|
+
type: Input
|
|
287
294
|
}] } });
|
|
288
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWhvc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcm5hbC9lZGl0b3ItaG9zdC9lZGl0b3ItaG9zdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBSU4sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUkxQzs7O0dBR0c7QUFDSCxJQUFJLGtCQUF1QyxDQUFDO0FBQzVDLFNBQVMscUJBQXFCO0lBQzVCLElBQUksa0JBQWtCLEtBQUssU0FBUztRQUFFLE9BQU8sa0JBQWtCLENBQUM7SUFDaEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEQsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGVBQWUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNoRSxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQW9CSCxNQUFNLE9BQU8saUNBQWlDO0lBbkI5QztRQXFCVyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDZGQUE2RjtRQUNwRixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUViLE9BQUUsR0FBRyxNQUFNLENBQTZCLFVBQVUsQ0FB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QUFDO0lBQ0wsQ0FBQzs7K0hBL09VLGlDQUFpQzttSEFBakMsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7a0JBbkI3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLGVBQWUsRUFBRSxTQUFTO3dCQUMxQixVQUFVLEVBQUUsTUFBTTt3QkFDbEIsWUFBWSxFQUFFLE1BQU07d0JBQ3BCLFFBQVEsRUFBRSxHQUFHO3dCQUNiLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixXQUFXLEVBQUUsbUJBQW1CO3dCQUNoQyxvQkFBb0IsRUFBRSxzQkFBc0I7d0JBQzVDLGtCQUFrQixFQUFFLG9CQUFvQjt3QkFDeEMsU0FBUyxFQUFFLGlCQUFpQjt3QkFDNUIsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLFFBQVEsRUFBRSxVQUFVO3FCQUNyQjtpQkFDRjs4QkFFeUIsVUFBVTtzQkFBakMsS0FBSzt1QkFBQyxlQUFlO2dCQUNiLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIHR5cGUgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIHR5cGUgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGV4dHJhY3RQbGFpblRleHQsXG4gIGdldEN1cnNvck9mZnNldCxcbiAgcGxhaW5UZXh0TGVuZ3RoLFxuICByZW5kZXJFZGl0YWJsZUNvbnRlbnQsXG4gIHNldEN1cnNvck9mZnNldCxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vY29udHJvbGxlci9haS1hdXRvY29tcGxldGUuY29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdHlwZXNcIjtcblxuLyoqXG4gKiBNb2R1bGUtbGV2ZWwgY2FjaGUgZm9yIHRoZSBvbmUtdGltZSBwbGFpbnRleHQtb25seSBmZWF0dXJlIGRldGVjdGlvbi5cbiAqIE1pcnJvcnMgYHN1cHBvcnRzUGxhaW50ZXh0T25seWAgaW4gdXNlQ29udGVudEVkaXRhYmxlRWRpdG9yLnRzLlxuICovXG5sZXQgcGxhaW50ZXh0T25seUNhY2hlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuZnVuY3Rpb24gc3VwcG9ydHNQbGFpbnRleHRPbmx5KCk6IGJvb2xlYW4ge1xuICBpZiAocGxhaW50ZXh0T25seUNhY2hlICE9PSB1bmRlZmluZWQpIHJldHVybiBwbGFpbnRleHRPbmx5Q2FjaGU7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgcHJvYmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBwcm9iZS5zZXRBdHRyaWJ1dGUoXCJjb250ZW50ZWRpdGFibGVcIiwgXCJwbGFpbnRleHQtb25seVwiKTtcbiAgcGxhaW50ZXh0T25seUNhY2hlID0gcHJvYmUuY29udGVudEVkaXRhYmxlID09PSBcInBsYWludGV4dC1vbmx5XCI7XG4gIHJldHVybiBwbGFpbnRleHRPbmx5Q2FjaGU7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgZGlyZWN0aXZlIHRoYXQgb3ducyBldmVyeSBjb25jZXJuIHNwZWNpZmljIHRvIHJ1bm5pbmcgdGhlXG4gKiBhdXRvY29tcGxldGUgb24gdG9wIG9mIGEgY29udGVudEVkaXRhYmxlIGhvc3Q6IGNvbXBvc2l0aW9uIHN0YXRlLCBjYXJldFxuICogdHJhY2tpbmcsIHNlbGVjdGlvbmNoYW5nZSBoYW5kbGluZywgYGJlZm9yZWlucHV0YCBpbnRlcmNlcHRpb24sIHBhc3RlXG4gKiBzYW5pdGl6YXRpb24sIHBsYWludGV4dC1vbmx5IGZlYXR1cmUgZGV0ZWN0aW9uLCBzZWdtZW50IHJlbmRlcmluZyxcbiAqIHBvc3QtcHJvbW90ZSByZWZvY3VzLCBhbmQgcmUtZWRpdCBjYXJldCBwYXJrLlxuICpcbiAqIE1pcnJvcnMgYHBhY2thZ2VzL3JlYWN0L3NyYy9ob29rcy91c2VDb250ZW50RWRpdGFibGVFZGl0b3IudHNgIG9uZS1mb3Itb25lLlxuICogVXNlZCBvbmx5IGJ5IHRoZSBUaWVyIDEgYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQg4oCUIG5ldmVyIGV4cG9ydGVkLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2FpYUVkaXRvckhvc3RdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICByb2xlOiBcImNvbWJvYm94XCIsXG4gICAgXCJhcmlhLWF1dG9jb21wbGV0ZVwiOiBcImxpc3RcIixcbiAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJsaXN0Ym94XCIsXG4gICAgc3BlbGxjaGVjazogXCJ0cnVlXCIsXG4gICAgZW50ZXJrZXloaW50OiBcInNlbmRcIixcbiAgICB0YWJpbmRleDogXCIwXCIsXG4gICAgXCIoaW5wdXQpXCI6IFwib25JbnB1dCgpXCIsXG4gICAgXCIoa2V5ZG93bilcIjogXCJvbktleURvd24oJGV2ZW50KVwiLFxuICAgIFwiKGNvbXBvc2l0aW9uc3RhcnQpXCI6IFwib25Db21wb3NpdGlvblN0YXJ0KClcIixcbiAgICBcIihjb21wb3NpdGlvbmVuZClcIjogXCJvbkNvbXBvc2l0aW9uRW5kKClcIixcbiAgICBcIihwYXN0ZSlcIjogXCJvblBhc3RlKCRldmVudClcIixcbiAgICBcIihmb2N1cylcIjogXCJvbkZvY3VzKClcIixcbiAgICBcIihibHVyKVwiOiBcIm9uQmx1cigpXCIsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlRWRpdG9ySG9zdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoXCJhaWFFZGl0b3JIb3N0XCIpIGNvbnRyb2xsZXIhOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIGNvbXBsZXRlZCBjaGlwcyBkcmF3IHRoZSBpY29uIG9mIHRoZSBvcHRpb24gdGhhdCBhbnN3ZXJlZCB0aGVtLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93Q2hpcEljb25zID0gdHJ1ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBjb21wb3NpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsYXN0SW5wdXRBdCA9IDA7XG4gIHByaXZhdGUgbGFzdFNlZW5QYXJhbUlkID0gXCJcIjtcbiAgLy8gVGhlIGxhc3Qgc3RhdGUgcmVuZGVyZWQsIHNvIGEgdG9nZ2xlIG9mIGBzaG93Q2hpcEljb25zYCBjYW4gcmUtcmVuZGVyXG4gIC8vIHRoZSBlZGl0b3Igd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29udHJvbGxlcidzIG5leHQgc3RhdGUgdGljay5cbiAgcHJpdmF0ZSBsYXN0U3RhdGU6IEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbGFzdEVkaXRpbmdJZCA9IFwiXCI7XG4gIC8qKlxuICAgKiBJZCBvZiB3aGljaGV2ZXIgY2hpcCB0aGUgZHJvcGRvd24gaXMgY3VycmVudGx5IG9wZW4gb24g4oCUIGEgY29tcGxldGVkIHBhcmFtXG4gICAqIGJlaW5nIHJlLWVkaXRlZCwgb3IgYSBzcGFuIHRoZSBzZXJ2ZXIgaWRlbnRpZmllZCBhcyBhIGRhdGUuIEVpdGhlciBraW5kXG4gICAqIGNvdW50cywgb3RoZXJ3aXNlIGV2ZXJ5IGNhcmV0IHRpY2sgaW5zaWRlIGFuIG9wZW4gZGF0ZSBzcGFuIHdvdWxkIHJlLWVudGVyXG4gICAqIHRoZSBwaWNrIGl0IGlzIGFscmVhZHkgaW4uXG4gICAqL1xuICBwcml2YXRlIGVkaXRpbmdQYXJhbUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGRvY3VtZW50U2VsZWN0aW9uTGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIGJlZm9yZUlucHV0TGlzdGVuZXI/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250cm9sbGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJbYWlhRWRpdG9ySG9zdF0gcmVxdWlyZXMgYSBjb250cm9sbGVyXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGNlTW9kZSA9IHN1cHBvcnRzUGxhaW50ZXh0T25seSgpID8gXCJwbGFpbnRleHQtb25seVwiIDogXCJ0cnVlXCI7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWwsIFwiY29udGVudGVkaXRhYmxlXCIsIGNlTW9kZSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWwsIFwiYXJpYS1jb250cm9sc1wiLCB0aGlzLmNvbnRyb2xsZXIubGlzdGJveElkKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgXCJzdXBwcmVzcy1jb250ZW50LWVkaXRhYmxlLXdhcm5pbmdcIiwgXCJ0cnVlXCIpO1xuXG4gICAgLy8gQXV0by1mb2N1cyBvbiBtb3VudC4gSWYgdGhlIGVkaXRvciBhbHJlYWR5IGhhcyBmb2N1cyAoZS5nLiBmcm9tIGFcbiAgICAvLyBjbGljayB0aGF0IGZpcmVkIGJlZm9yZSBvdXIgbGlmZWN5Y2xlIHJhbiksIG5vdGlmeSB0aGUgY29udHJvbGxlclxuICAgIC8vIGluc3RlYWQgb2Ygc3RlYWxpbmcgZm9jdXMuXG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsKSB7XG4gICAgICAgICAgdGhpcy5jb250cm9sbGVyLnNldEZvY3VzZWQodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5iaW5kRG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lcigpO1xuICAgIHRoaXMuYmluZEJlZm9yZUlucHV0TGlzdGVuZXIoKTtcbiAgICB0aGlzLmJpbmRTdGF0ZVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzW1wic2hvd0NoaXBJY29uc1wiXSAmJiAhY2hhbmdlc1tcInNob3dDaGlwSWNvbnNcIl0uZmlyc3RDaGFuZ2UgJiYgdGhpcy5sYXN0U3RhdGUpIHtcbiAgICAgIHRoaXMucmVuZGVyRWRpdG9yKHRoaXMubGFzdFN0YXRlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckVkaXRvcihzdGF0ZTogQUlBdXRvY29tcGxldGVDb250cm9sbGVyU3RhdGUpOiB2b2lkIHtcbiAgICByZW5kZXJFZGl0YWJsZUNvbnRlbnQoe1xuICAgICAgaW5wdXQ6IHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHNlZ21lbnRzOiBzdGF0ZS5zZWdtZW50cyxcbiAgICAgIG5ld1BhcmFtSWQ6IHN0YXRlLm5ld1BhcmFtSWQsXG4gICAgICBlZGl0aW5nUGFyYW1JZDogc3RhdGUuZWRpdGluZ1BhcmFtPy5pZCA/PyBudWxsLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiBzdGF0ZS5wbGFjZWhvbGRlclRleHQsXG4gICAgICBpc0ZvY3VzZWQ6IHN0YXRlLmlzRm9jdXNlZCxcbiAgICAgIHNob3dDaGlwSWNvbnM6IHRoaXMuc2hvd0NoaXBJY29ucyxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICBpZiAodGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNlbGVjdGlvbmNoYW5nZVwiLCB0aGlzLmRvY3VtZW50U2VsZWN0aW9uTGlzdGVuZXIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5iZWZvcmVJbnB1dExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJlZm9yZWlucHV0XCIsIHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09IEhvc3QgZXZlbnQgaGFuZGxlcnMgPT09XG5cbiAgb25Db21wb3NpdGlvblN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9zaW5nID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQ29tcG9zaXRpb25FbmQoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb3NpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpcmVJbnB1dCgpO1xuICB9XG5cbiAgb25JbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmxhc3RJbnB1dEF0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgdGhpcy5maXJlSW5wdXQoKTtcbiAgICB0aGlzLmNvbnRyb2xsZXIuaGFuZGxlQ2FyZXRBZnRlcklucHV0KGdldEN1cnNvck9mZnNldCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5oYW5kbGVLZXlEb3duKGV2ZW50KTtcbiAgfVxuXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB0ZXh0ID0gKGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoXCJ0ZXh0L3BsYWluXCIpID8/IFwiXCIpLnJlcGxhY2UoL1xccj9cXG4vZywgXCIgXCIpO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuICAgIGNvbnN0IGRvYyA9IGVsLm93bmVyRG9jdW1lbnQgPz8gZG9jdW1lbnQ7XG4gICAgY29uc3Qgc2VsID0gZG9jLmdldFNlbGVjdGlvbigpO1xuICAgIGlmICghc2VsIHx8IHNlbC5yYW5nZUNvdW50ID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgcmFuZ2UgPSBzZWwuZ2V0UmFuZ2VBdCgwKTtcbiAgICBpZiAoIWVsLmNvbnRhaW5zKHJhbmdlLnN0YXJ0Q29udGFpbmVyKSkgcmV0dXJuO1xuICAgIHJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgY29uc3Qgbm9kZSA9IGRvYy5jcmVhdGVUZXh0Tm9kZSh0ZXh0KTtcbiAgICByYW5nZS5pbnNlcnROb2RlKG5vZGUpO1xuICAgIHJhbmdlLnNldFN0YXJ0QWZ0ZXIobm9kZSk7XG4gICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gICAgdGhpcy5maXJlSW5wdXQoKTtcbiAgfVxuXG4gIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNldEZvY3VzZWQodHJ1ZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNldEZvY3VzZWQoZmFsc2UpO1xuICB9XG5cbiAgLy8gPT09IEludGVybmFsIGhlbHBlcnMgPT09XG5cbiAgcHJpdmF0ZSBmaXJlSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9zaW5nKSByZXR1cm47XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgcmF3ID0gZXh0cmFjdFBsYWluVGV4dChlbCk7XG4gICAgY29uc3Qgc2hvdWxkQ2FwaXRhbGl6ZSA9IHJhdy5sZW5ndGggPiAwICYmIHJhd1swXSAhPT0gcmF3WzBdLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgbmV4dCA9IHNob3VsZENhcGl0YWxpemUgPyByYXdbMF0udG9VcHBlckNhc2UoKSArIHJhdy5zbGljZSgxKSA6IHJhdztcbiAgICB0aGlzLmNvbnRyb2xsZXIuaGFuZGxlVGV4dENoYW5nZShuZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZERvY3VtZW50U2VsZWN0aW9uTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIC8vIHNlbGVjdGlvbmNoYW5nZSBmaXJlcyBvbiBldmVyeSBrZXlzdHJva2UgYW5kIGNhcmV0IG1vdmUg4oCUIHJ1biBvdXRzaWRlXG4gICAgLy8gQW5ndWxhcidzIHpvbmUgKMKnMTYuMSkgYW5kIHJlLWVudGVyIG9ubHkgd2hlbiB3ZSBhY3R1YWxseSBuZWVkIHRvXG4gICAgLy8gbm90aWZ5IHRoZSBjb250cm9sbGVyIG9mIGEgbWVhbmluZ2Z1bCBjaGFuZ2UuXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHNlbCA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbCB8fCBzZWwucmFuZ2VDb3VudCA9PT0gMCkgcmV0dXJuO1xuICAgICAgICBpZiAoIXNlbC5hbmNob3JOb2RlIHx8ICFlbC5jb250YWlucyhzZWwuYW5jaG9yTm9kZSkpIHJldHVybjtcbiAgICAgICAgY29uc3QgYW5jaG9yID0gc2VsLmFuY2hvck5vZGU7XG4gICAgICAgIGNvbnN0IHN0YXJ0RWwgPVxuICAgICAgICAgIGFuY2hvci5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgPyAoYW5jaG9yIGFzIEVsZW1lbnQpIDogYW5jaG9yLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIC8vIE9ubHkgYSBDT0xMQVBTRUQgc2VsZWN0aW9uIG1lYW5zIFwidGhlIGNhcmV0IGxhbmRlZCBpbiBhIGNoaXBcIi4gQVxuICAgICAgICAvLyByYW5nZSBzZWxlY3Rpb24gKENtZCtBLCBzaGlmdC1hcnJvdywgZHJhZykgYW5jaG9ycyBhdCBpdHMgc3RhcnQsXG4gICAgICAgIC8vIHdoaWNoIGxhbmRzIGluc2lkZSB0aGUgZmlyc3QgYDxzdHJvbmc+YCB3aGVuZXZlciB0aGUgaW5wdXQgYmVnaW5zXG4gICAgICAgIC8vIHdpdGggYSBjaGlwIOKAlCBzdGFydGluZyByZS1lZGl0IHRoZXJlIHBhcmtzIHRoZSBjYXJldCBvbiB0aGF0IGNoaXBcbiAgICAgICAgLy8gYW5kIGRlc3Ryb3lzIHRoZSB1c2VyJ3Mgc2VsZWN0aW9uLlxuICAgICAgICBjb25zdCBzdHJvbmcgPSBzZWwuaXNDb2xsYXBzZWRcbiAgICAgICAgICA/IC8vIEJvdGggY2hpcCBraW5kcyByZXBvcnQgaGVyZS4gVGhlIGNvcmUgZGVjaWRlcyB3aGF0IGEgdGFwIG1lYW5zIOKAlCBhXG4gICAgICAgICAgICAvLyBjb21wbGV0ZWQgcGFyYW0gcmUtb3BlbnMgaXRzIG9wdGlvbnMsIGFuIGlkZW50aWZpZWQgZGF0ZSBvcGVucyB0aGVcbiAgICAgICAgICAgIC8vIGNhbGVuZGFyLCBhbnl0aGluZyBlbHNlIGlzIGluZXJ0LlxuICAgICAgICAgICAgc3RhcnRFbD8uY2xvc2VzdDxIVE1MRWxlbWVudD4oXCJzdHJvbmdbZGF0YS1wYXJhbS1pZF1cIilcbiAgICAgICAgICA6IG51bGw7XG4gICAgICAgIC8vIGBET01TdHJpbmdNYXBgIGlzIGFuIGluZGV4IHNpZ25hdHVyZTsgYnJhY2tldCBub3RhdGlvbiBpcyByZXF1aXJlZFxuICAgICAgICAvLyBieSBgbm9Qcm9wZXJ0eUFjY2Vzc0Zyb21JbmRleFNpZ25hdHVyZWAuXG4gICAgICAgIGNvbnN0IGVuY2xvc2luZyA9IHN0cm9uZz8uZGF0YXNldFtcInBhcmFtSWRcIl0gPz8gbnVsbDtcbiAgICAgICAgaWYgKGVuY2xvc2luZyAmJiBlbmNsb3NpbmcgIT09IHRoaXMuZWRpdGluZ1BhcmFtSWQpIHtcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY29udHJvbGxlci5zdGFydEVkaXRpbmdQYXJhbShlbmNsb3NpbmcpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy5sYXN0SW5wdXRBdCA8IDUwKSByZXR1cm47XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5jb250cm9sbGVyLmhhbmRsZUNhcmV0TW92ZShnZXRDdXJzb3JPZmZzZXQoZWwpKSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyID0gaGFuZGxlcjtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzZWxlY3Rpb25jaGFuZ2VcIiwgaGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRCZWZvcmVJbnB1dExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIC8vIE5hdGl2ZSBiZWZvcmVpbnB1dCDigJQgUmVhY3QncyBzeW50aGV0aWMgb25CZWZvcmVJbnB1dCBpcyB3aXJlZCB0byB0aGVcbiAgICAvLyBsZWdhY3kgdGV4dElucHV0IGV2ZW50IGFuZCBkb2Vzbid0IGZpcmUgcmVsaWFibHkgZm9yIGRlbGV0ZSogdHlwZXMuXG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGlucHV0RXZlbnQgPSBldmVudCBhcyBJbnB1dEV2ZW50O1xuICAgICAgY29uc3QgdCA9IGlucHV0RXZlbnQuaW5wdXRUeXBlO1xuICAgICAgaWYgKHQgPT09IFwiaW5zZXJ0UGFyYWdyYXBoXCIgfHwgdCA9PT0gXCJpbnNlcnRMaW5lQnJlYWtcIiB8fCB0ID09PSBcImluc2VydEZyb21Ecm9wXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHQuc3RhcnRzV2l0aChcImluc2VydFwiKSB8fCB0LnN0YXJ0c1dpdGgoXCJkZWxldGVcIikpIHtcbiAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSB0LnN0YXJ0c1dpdGgoXCJkZWxldGVcIikgPyBcIlwiIDogKGlucHV0RXZlbnQuZGF0YSA/PyBcIlwiKTtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbGxlci5yZXBsYWNlRWRpdGluZ1JhbmdlKHJlcGxhY2VtZW50KSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lciA9IGhhbmRsZXI7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZWlucHV0XCIsIGhhbmRsZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3RhdGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5jb250cm9sbGVyLnN0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgdGhpcy5lZGl0aW5nUGFyYW1JZCA9IHN0YXRlLmVkaXRpbmdQYXJhbT8uaWQgPz8gc3RhdGUuZWRpdGluZ0lkZW50aWZpZWQ/LmlkID8/IG51bGw7XG5cbiAgICAgIHRoaXMubGFzdFN0YXRlID0gc3RhdGU7XG4gICAgICB0aGlzLnJlbmRlckVkaXRvcihzdGF0ZSk7XG5cbiAgICAgIC8vIFBvc3QtcHJvbW90ZSByZWZvY3VzICsgY2FyZXQtYWZ0ZXItYm9sZCBwbGFjZW1lbnQgKG1pcnJvcnMgUmVhY3Qnc1xuICAgICAgLy8gdXNlTGF5b3V0RWZmZWN0IG9uIG5ld1BhcmFtSWQpLlxuICAgICAgY29uc3QgY3VycmVudFBhcmFtSWQgPSBzdGF0ZS5uZXdQYXJhbUlkID8/IFwiXCI7XG4gICAgICBpZiAoY3VycmVudFBhcmFtSWQgJiYgY3VycmVudFBhcmFtSWQgIT09IHRoaXMubGFzdFNlZW5QYXJhbUlkKSB7XG4gICAgICAgIHRoaXMubGFzdFNlZW5QYXJhbUlkID0gY3VycmVudFBhcmFtSWQ7XG4gICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIGNvbnN0IGRlc2lyZWQgPSBzdGF0ZS5jYXJldE9mZnNldCA/PyBwbGFpblRleHRMZW5ndGgoZWwpO1xuICAgICAgICBzZXRDdXJzb3JPZmZzZXQoZWwsIGRlc2lyZWQpO1xuICAgICAgfSBlbHNlIGlmICghY3VycmVudFBhcmFtSWQpIHtcbiAgICAgICAgdGhpcy5sYXN0U2VlblBhcmFtSWQgPSBcIlwiO1xuICAgICAgfVxuXG4gICAgICAvLyBSZS1lZGl0IGNhcmV0IHBhcmsgKG1pcnJvcnMgUmVhY3QncyB1c2VMYXlvdXRFZmZlY3Qgb24gZWRpdGluZ1BhcmFtKS5cbiAgICAgIGNvbnN0IGVkaXRpbmdJZCA9IHN0YXRlLmVkaXRpbmdQYXJhbT8uaWQgPz8gXCJcIjtcbiAgICAgIGlmIChlZGl0aW5nSWQgJiYgZWRpdGluZ0lkICE9PSB0aGlzLmxhc3RFZGl0aW5nSWQgJiYgc3RhdGUuZWRpdGluZ0FuY2hvciAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMubGFzdEVkaXRpbmdJZCA9IGVkaXRpbmdJZDtcbiAgICAgICAgc2V0Q3Vyc29yT2Zmc2V0KGVsLCBzdGF0ZS5lZGl0aW5nQW5jaG9yKTtcbiAgICAgIH0gZWxzZSBpZiAoIWVkaXRpbmdJZCkge1xuICAgICAgICB0aGlzLmxhc3RFZGl0aW5nSWQgPSBcIlwiO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWhvc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcm5hbC9lZGl0b3ItaG9zdC9lZGl0b3ItaG9zdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBSU4sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUkxQzs7O0dBR0c7QUFDSCxJQUFJLGtCQUF1QyxDQUFDO0FBQzVDLFNBQVMscUJBQXFCO0lBQzVCLElBQUksa0JBQWtCLEtBQUssU0FBUztRQUFFLE9BQU8sa0JBQWtCLENBQUM7SUFDaEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDeEQsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGVBQWUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNoRSxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQW9CSCxNQUFNLE9BQU8saUNBQWlDO0lBbkI5QztRQXFCVyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDZGQUE2RjtRQUNwRixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUM5QixzSEFBc0g7UUFDN0csbUJBQWMsR0FBRyxJQUFJ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YSxJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO2dCQUNoRixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsZUFBZSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytIQXBQVSxpQ0FBaUM7bUhBQWpDLGlDQUFpQzs0RkFBakMsaUNBQWlDO2tCQW5CN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQixlQUFlLEVBQUUsU0FBUzt3QkFDMUIsVUFBVSxFQUFFLE1BQU07d0JBQ2xCLFlBQVksRUFBRSxNQUFNO3dCQUNwQixRQUFRLEVBQUUsR0FBRzt3QkFDYixTQUFTLEVBQUUsV0FBVzt3QkFDdEIsV0FBVyxFQUFFLG1CQUFtQjt3QkFDaEMsb0JBQW9CLEVBQUUsc0JBQXNCO3dCQUM1QyxrQkFBa0IsRUFBRSxvQkFBb0I7d0JBQ3hDLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixRQUFRLEVBQUUsVUFBVTtxQkFDckI7aUJBQ0Y7OEJBRXlCLFVBQVU7c0JBQWpDLEtBQUs7dUJBQUMsZUFBZTtnQkFDYixTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgTmdab25lLFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIHR5cGUgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIHR5cGUgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGV4dHJhY3RQbGFpblRleHQsXG4gIGdldEN1cnNvck9mZnNldCxcbiAgcGxhaW5UZXh0TGVuZ3RoLFxuICByZW5kZXJFZGl0YWJsZUNvbnRlbnQsXG4gIHNldEN1cnNvck9mZnNldCxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vY29udHJvbGxlci9haS1hdXRvY29tcGxldGUuY29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdHlwZXNcIjtcblxuLyoqXG4gKiBNb2R1bGUtbGV2ZWwgY2FjaGUgZm9yIHRoZSBvbmUtdGltZSBwbGFpbnRleHQtb25seSBmZWF0dXJlIGRldGVjdGlvbi5cbiAqIE1pcnJvcnMgYHN1cHBvcnRzUGxhaW50ZXh0T25seWAgaW4gdXNlQ29udGVudEVkaXRhYmxlRWRpdG9yLnRzLlxuICovXG5sZXQgcGxhaW50ZXh0T25seUNhY2hlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuZnVuY3Rpb24gc3VwcG9ydHNQbGFpbnRleHRPbmx5KCk6IGJvb2xlYW4ge1xuICBpZiAocGxhaW50ZXh0T25seUNhY2hlICE9PSB1bmRlZmluZWQpIHJldHVybiBwbGFpbnRleHRPbmx5Q2FjaGU7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgcHJvYmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICBwcm9iZS5zZXRBdHRyaWJ1dGUoXCJjb250ZW50ZWRpdGFibGVcIiwgXCJwbGFpbnRleHQtb25seVwiKTtcbiAgcGxhaW50ZXh0T25seUNhY2hlID0gcHJvYmUuY29udGVudEVkaXRhYmxlID09PSBcInBsYWludGV4dC1vbmx5XCI7XG4gIHJldHVybiBwbGFpbnRleHRPbmx5Q2FjaGU7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgZGlyZWN0aXZlIHRoYXQgb3ducyBldmVyeSBjb25jZXJuIHNwZWNpZmljIHRvIHJ1bm5pbmcgdGhlXG4gKiBhdXRvY29tcGxldGUgb24gdG9wIG9mIGEgY29udGVudEVkaXRhYmxlIGhvc3Q6IGNvbXBvc2l0aW9uIHN0YXRlLCBjYXJldFxuICogdHJhY2tpbmcsIHNlbGVjdGlvbmNoYW5nZSBoYW5kbGluZywgYGJlZm9yZWlucHV0YCBpbnRlcmNlcHRpb24sIHBhc3RlXG4gKiBzYW5pdGl6YXRpb24sIHBsYWludGV4dC1vbmx5IGZlYXR1cmUgZGV0ZWN0aW9uLCBzZWdtZW50IHJlbmRlcmluZyxcbiAqIHBvc3QtcHJvbW90ZSByZWZvY3VzLCBhbmQgcmUtZWRpdCBjYXJldCBwYXJrLlxuICpcbiAqIE1pcnJvcnMgYHBhY2thZ2VzL3JlYWN0L3NyYy9ob29rcy91c2VDb250ZW50RWRpdGFibGVFZGl0b3IudHNgIG9uZS1mb3Itb25lLlxuICogVXNlZCBvbmx5IGJ5IHRoZSBUaWVyIDEgYDxhaS1hdXRvY29tcGxldGU+YCBjb21wb25lbnQg4oCUIG5ldmVyIGV4cG9ydGVkLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2FpYUVkaXRvckhvc3RdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICByb2xlOiBcImNvbWJvYm94XCIsXG4gICAgXCJhcmlhLWF1dG9jb21wbGV0ZVwiOiBcImxpc3RcIixcbiAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJsaXN0Ym94XCIsXG4gICAgc3BlbGxjaGVjazogXCJ0cnVlXCIsXG4gICAgZW50ZXJrZXloaW50OiBcInNlbmRcIixcbiAgICB0YWJpbmRleDogXCIwXCIsXG4gICAgXCIoaW5wdXQpXCI6IFwib25JbnB1dCgpXCIsXG4gICAgXCIoa2V5ZG93bilcIjogXCJvbktleURvd24oJGV2ZW50KVwiLFxuICAgIFwiKGNvbXBvc2l0aW9uc3RhcnQpXCI6IFwib25Db21wb3NpdGlvblN0YXJ0KClcIixcbiAgICBcIihjb21wb3NpdGlvbmVuZClcIjogXCJvbkNvbXBvc2l0aW9uRW5kKClcIixcbiAgICBcIihwYXN0ZSlcIjogXCJvblBhc3RlKCRldmVudClcIixcbiAgICBcIihmb2N1cylcIjogXCJvbkZvY3VzKClcIixcbiAgICBcIihibHVyKVwiOiBcIm9uQmx1cigpXCIsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlRWRpdG9ySG9zdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoXCJhaWFFZGl0b3JIb3N0XCIpIGNvbnRyb2xsZXIhOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXI7XG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIGNvbXBsZXRlZCBjaGlwcyBkcmF3IHRoZSBpY29uIG9mIHRoZSBvcHRpb24gdGhhdCBhbnN3ZXJlZCB0aGVtLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93Q2hpcEljb25zID0gdHJ1ZTtcbiAgLyoqIFdoZXRoZXIgY29tcGxldGVkIGNoaXBzIGRyYXcgdGhlIHBpY3R1cmUgb2YgdGhlIG9wdGlvbiB0aGF0IGFuc3dlcmVkIHRoZW0sIGluIHBsYWNlIG9mIHRoZSBpY29uLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93Q2hpcEltYWdlcyA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgY29tcG9zaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdElucHV0QXQgPSAwO1xuICBwcml2YXRlIGxhc3RTZWVuUGFyYW1JZCA9IFwiXCI7XG4gIC8vIFRoZSBsYXN0IHN0YXRlIHJlbmRlcmVkLCBzbyBhIHRvZ2dsZSBvZiBgc2hvd0NoaXBJY29uc2AgY2FuIHJlLXJlbmRlclxuICAvLyB0aGUgZWRpdG9yIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNvbnRyb2xsZXIncyBuZXh0IHN0YXRlIHRpY2suXG4gIHByaXZhdGUgbGFzdFN0YXRlOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxhc3RFZGl0aW5nSWQgPSBcIlwiO1xuICAvKipcbiAgICogSWQgb2Ygd2hpY2hldmVyIGNoaXAgdGhlIGRyb3Bkb3duIGlzIGN1cnJlbnRseSBvcGVuIG9uIOKAlCBhIGNvbXBsZXRlZCBwYXJhbVxuICAgKiBiZWluZyByZS1lZGl0ZWQsIG9yIGEgc3BhbiB0aGUgc2VydmVyIGlkZW50aWZpZWQgYXMgYSBkYXRlLiBFaXRoZXIga2luZFxuICAgKiBjb3VudHMsIG90aGVyd2lzZSBldmVyeSBjYXJldCB0aWNrIGluc2lkZSBhbiBvcGVuIGRhdGUgc3BhbiB3b3VsZCByZS1lbnRlclxuICAgKiB0aGUgcGljayBpdCBpcyBhbHJlYWR5IGluLlxuICAgKi9cbiAgcHJpdmF0ZSBlZGl0aW5nUGFyYW1JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBkb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBiZWZvcmVJbnB1dExpc3RlbmVyPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiW2FpYUVkaXRvckhvc3RdIHJlcXVpcmVzIGEgY29udHJvbGxlclwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBjZU1vZGUgPSBzdXBwb3J0c1BsYWludGV4dE9ubHkoKSA/IFwicGxhaW50ZXh0LW9ubHlcIiA6IFwidHJ1ZVwiO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCBcImNvbnRlbnRlZGl0YWJsZVwiLCBjZU1vZGUpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCBcImFyaWEtY29udHJvbHNcIiwgdGhpcy5jb250cm9sbGVyLmxpc3Rib3hJZCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWwsIFwic3VwcHJlc3MtY29udGVudC1lZGl0YWJsZS13YXJuaW5nXCIsIFwidHJ1ZVwiKTtcblxuICAgIC8vIEF1dG8tZm9jdXMgb24gbW91bnQuIElmIHRoZSBlZGl0b3IgYWxyZWFkeSBoYXMgZm9jdXMgKGUuZy4gZnJvbSBhXG4gICAgLy8gY2xpY2sgdGhhdCBmaXJlZCBiZWZvcmUgb3VyIGxpZmVjeWNsZSByYW4pLCBub3RpZnkgdGhlIGNvbnRyb2xsZXJcbiAgICAvLyBpbnN0ZWFkIG9mIHN0ZWFsaW5nIGZvY3VzLlxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbCkge1xuICAgICAgICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYmluZERvY3VtZW50U2VsZWN0aW9uTGlzdGVuZXIoKTtcbiAgICB0aGlzLmJpbmRCZWZvcmVJbnB1dExpc3RlbmVyKCk7XG4gICAgdGhpcy5iaW5kU3RhdGVTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB0b2dnbGVkID0gKGNoYW5nZXNbXCJzaG93Q2hpcEljb25zXCJdID8/IGNoYW5nZXNbXCJzaG93Q2hpcEltYWdlc1wiXSkgIT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaXJzdCA9IGNoYW5nZXNbXCJzaG93Q2hpcEljb25zXCJdPy5maXJzdENoYW5nZSA/PyBjaGFuZ2VzW1wic2hvd0NoaXBJbWFnZXNcIl0/LmZpcnN0Q2hhbmdlO1xuICAgIGlmICh0b2dnbGVkICYmICFmaXJzdCAmJiB0aGlzLmxhc3RTdGF0ZSkge1xuICAgICAgdGhpcy5yZW5kZXJFZGl0b3IodGhpcy5sYXN0U3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRWRpdG9yKHN0YXRlOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJTdGF0ZSk6IHZvaWQge1xuICAgIHJlbmRlckVkaXRhYmxlQ29udGVudCh7XG4gICAgICBpbnB1dDogdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgc2VnbWVudHM6IHN0YXRlLnNlZ21lbnRzLFxuICAgICAgbmV3UGFyYW1JZDogc3RhdGUubmV3UGFyYW1JZCxcbiAgICAgIGVkaXRpbmdQYXJhbUlkOiBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IG51bGwsXG4gICAgICBwbGFjZWhvbGRlclRleHQ6IHN0YXRlLnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgIGlzRm9jdXNlZDogc3RhdGUuaXNGb2N1c2VkLFxuICAgICAgc2hvd0NoaXBJY29uczogdGhpcy5zaG93Q2hpcEljb25zLFxuICAgICAgc2hvd0NoaXBJbWFnZXM6IHRoaXMuc2hvd0NoaXBJbWFnZXMsXG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lciAmJiB0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzZWxlY3Rpb25jaGFuZ2VcIiwgdGhpcy5kb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmVmb3JlSW5wdXRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJiZWZvcmVpbnB1dFwiLCB0aGlzLmJlZm9yZUlucHV0TGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PSBIb3N0IGV2ZW50IGhhbmRsZXJzID09PVxuXG4gIG9uQ29tcG9zaXRpb25TdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvc2luZyA9IHRydWU7XG4gIH1cblxuICBvbkNvbXBvc2l0aW9uRW5kKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9zaW5nID0gZmFsc2U7XG4gICAgdGhpcy5maXJlSW5wdXQoKTtcbiAgfVxuXG4gIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sYXN0SW5wdXRBdCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIHRoaXMuZmlyZUlucHV0KCk7XG4gICAgdGhpcy5jb250cm9sbGVyLmhhbmRsZUNhcmV0QWZ0ZXJJbnB1dChnZXRDdXJzb3JPZmZzZXQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuaGFuZGxlS2V5RG93bihldmVudCk7XG4gIH1cblxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgdGV4dCA9IChldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKFwidGV4dC9wbGFpblwiKSA/PyBcIlwiKS5yZXBsYWNlKC9cXHI/XFxuL2csIFwiIFwiKTtcbiAgICBpZiAoIXRleHQpIHJldHVybjtcbiAgICBjb25zdCBkb2MgPSBlbC5vd25lckRvY3VtZW50ID8/IGRvY3VtZW50O1xuICAgIGNvbnN0IHNlbCA9IGRvYy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbCB8fCBzZWwucmFuZ2VDb3VudCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCk7XG4gICAgaWYgKCFlbC5jb250YWlucyhyYW5nZS5zdGFydENvbnRhaW5lcikpIHJldHVybjtcbiAgICByYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgIGNvbnN0IG5vZGUgPSBkb2MuY3JlYXRlVGV4dE5vZGUodGV4dCk7XG4gICAgcmFuZ2UuaW5zZXJ0Tm9kZShub2RlKTtcbiAgICByYW5nZS5zZXRTdGFydEFmdGVyKG5vZGUpO1xuICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWwuYWRkUmFuZ2UocmFuZ2UpO1xuICAgIHRoaXMuZmlyZUlucHV0KCk7XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKHRydWUpO1xuICB9XG5cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKGZhbHNlKTtcbiAgfVxuXG4gIC8vID09PSBJbnRlcm5hbCBoZWxwZXJzID09PVxuXG4gIHByaXZhdGUgZmlyZUlucHV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvc2luZykgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RQbGFpblRleHQoZWwpO1xuICAgIGNvbnN0IHNob3VsZENhcGl0YWxpemUgPSByYXcubGVuZ3RoID4gMCAmJiByYXdbMF0gIT09IHJhd1swXS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IG5leHQgPSBzaG91bGRDYXBpdGFsaXplID8gcmF3WzBdLnRvVXBwZXJDYXNlKCkgKyByYXcuc2xpY2UoMSkgOiByYXc7XG4gICAgdGhpcy5jb250cm9sbGVyLmhhbmRsZVRleHRDaGFuZ2UobmV4dCk7XG4gIH1cblxuICBwcml2YXRlIGJpbmREb2N1bWVudFNlbGVjdGlvbkxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAvLyBzZWxlY3Rpb25jaGFuZ2UgZmlyZXMgb24gZXZlcnkga2V5c3Ryb2tlIGFuZCBjYXJldCBtb3ZlIOKAlCBydW4gb3V0c2lkZVxuICAgIC8vIEFuZ3VsYXIncyB6b25lICjCpzE2LjEpIGFuZCByZS1lbnRlciBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgbmVlZCB0b1xuICAgIC8vIG5vdGlmeSB0aGUgY29udHJvbGxlciBvZiBhIG1lYW5pbmdmdWwgY2hhbmdlLlxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWwgfHwgc2VsLnJhbmdlQ291bnQgPT09IDApIHJldHVybjtcbiAgICAgICAgaWYgKCFzZWwuYW5jaG9yTm9kZSB8fCAhZWwuY29udGFpbnMoc2VsLmFuY2hvck5vZGUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHNlbC5hbmNob3JOb2RlO1xuICAgICAgICBjb25zdCBzdGFydEVsID1cbiAgICAgICAgICBhbmNob3Iubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFID8gKGFuY2hvciBhcyBFbGVtZW50KSA6IGFuY2hvci5wYXJlbnRFbGVtZW50O1xuICAgICAgICAvLyBPbmx5IGEgQ09MTEFQU0VEIHNlbGVjdGlvbiBtZWFucyBcInRoZSBjYXJldCBsYW5kZWQgaW4gYSBjaGlwXCIuIEFcbiAgICAgICAgLy8gcmFuZ2Ugc2VsZWN0aW9uIChDbWQrQSwgc2hpZnQtYXJyb3csIGRyYWcpIGFuY2hvcnMgYXQgaXRzIHN0YXJ0LFxuICAgICAgICAvLyB3aGljaCBsYW5kcyBpbnNpZGUgdGhlIGZpcnN0IGA8c3Ryb25nPmAgd2hlbmV2ZXIgdGhlIGlucHV0IGJlZ2luc1xuICAgICAgICAvLyB3aXRoIGEgY2hpcCDigJQgc3RhcnRpbmcgcmUtZWRpdCB0aGVyZSBwYXJrcyB0aGUgY2FyZXQgb24gdGhhdCBjaGlwXG4gICAgICAgIC8vIGFuZCBkZXN0cm95cyB0aGUgdXNlcidzIHNlbGVjdGlvbi5cbiAgICAgICAgY29uc3Qgc3Ryb25nID0gc2VsLmlzQ29sbGFwc2VkXG4gICAgICAgICAgPyAvLyBCb3RoIGNoaXAga2luZHMgcmVwb3J0IGhlcmUuIFRoZSBjb3JlIGRlY2lkZXMgd2hhdCBhIHRhcCBtZWFucyDigJQgYVxuICAgICAgICAgICAgLy8gY29tcGxldGVkIHBhcmFtIHJlLW9wZW5zIGl0cyBvcHRpb25zLCBhbiBpZGVudGlmaWVkIGRhdGUgb3BlbnMgdGhlXG4gICAgICAgICAgICAvLyBjYWxlbmRhciwgYW55dGhpbmcgZWxzZSBpcyBpbmVydC5cbiAgICAgICAgICAgIHN0YXJ0RWw/LmNsb3Nlc3Q8SFRNTEVsZW1lbnQ+KFwic3Ryb25nW2RhdGEtcGFyYW0taWRdXCIpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICAvLyBgRE9NU3RyaW5nTWFwYCBpcyBhbiBpbmRleCBzaWduYXR1cmU7IGJyYWNrZXQgbm90YXRpb24gaXMgcmVxdWlyZWRcbiAgICAgICAgLy8gYnkgYG5vUHJvcGVydHlBY2Nlc3NGcm9tSW5kZXhTaWduYXR1cmVgLlxuICAgICAgICBjb25zdCBlbmNsb3NpbmcgPSBzdHJvbmc/LmRhdGFzZXRbXCJwYXJhbUlkXCJdID8/IG51bGw7XG4gICAgICAgIGlmIChlbmNsb3NpbmcgJiYgZW5jbG9zaW5nICE9PSB0aGlzLmVkaXRpbmdQYXJhbUlkKSB7XG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLmNvbnRyb2xsZXIuc3RhcnRFZGl0aW5nUGFyYW0oZW5jbG9zaW5nKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwZXJmb3JtYW5jZS5ub3coKSAtIHRoaXMubGFzdElucHV0QXQgPCA1MCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY29udHJvbGxlci5oYW5kbGVDYXJldE1vdmUoZ2V0Q3Vyc29yT2Zmc2V0KGVsKSkpO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZWxlY3Rpb25MaXN0ZW5lciA9IGhhbmRsZXI7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2VsZWN0aW9uY2hhbmdlXCIsIGhhbmRsZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kQmVmb3JlSW5wdXRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAvLyBOYXRpdmUgYmVmb3JlaW5wdXQg4oCUIFJlYWN0J3Mgc3ludGhldGljIG9uQmVmb3JlSW5wdXQgaXMgd2lyZWQgdG8gdGhlXG4gICAgLy8gbGVnYWN5IHRleHRJbnB1dCBldmVudCBhbmQgZG9lc24ndCBmaXJlIHJlbGlhYmx5IGZvciBkZWxldGUqIHR5cGVzLlxuICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBpbnB1dEV2ZW50ID0gZXZlbnQgYXMgSW5wdXRFdmVudDtcbiAgICAgIGNvbnN0IHQgPSBpbnB1dEV2ZW50LmlucHV0VHlwZTtcbiAgICAgIGlmICh0ID09PSBcImluc2VydFBhcmFncmFwaFwiIHx8IHQgPT09IFwiaW5zZXJ0TGluZUJyZWFrXCIgfHwgdCA9PT0gXCJpbnNlcnRGcm9tRHJvcFwiKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0LnN0YXJ0c1dpdGgoXCJpbnNlcnRcIikgfHwgdC5zdGFydHNXaXRoKFwiZGVsZXRlXCIpKSB7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gdC5zdGFydHNXaXRoKFwiZGVsZXRlXCIpID8gXCJcIiA6IChpbnB1dEV2ZW50LmRhdGEgPz8gXCJcIik7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xsZXIucmVwbGFjZUVkaXRpbmdSYW5nZShyZXBsYWNlbWVudCkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmJlZm9yZUlucHV0TGlzdGVuZXIgPSBoYW5kbGVyO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmVpbnB1dFwiLCBoYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFN0YXRlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuY29udHJvbGxlci5zdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIHRoaXMuZWRpdGluZ1BhcmFtSWQgPSBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IHN0YXRlLmVkaXRpbmdJZGVudGlmaWVkPy5pZCA/PyBudWxsO1xuXG4gICAgICB0aGlzLmxhc3RTdGF0ZSA9IHN0YXRlO1xuICAgICAgdGhpcy5yZW5kZXJFZGl0b3Ioc3RhdGUpO1xuXG4gICAgICAvLyBQb3N0LXByb21vdGUgcmVmb2N1cyArIGNhcmV0LWFmdGVyLWJvbGQgcGxhY2VtZW50IChtaXJyb3JzIFJlYWN0J3NcbiAgICAgIC8vIHVzZUxheW91dEVmZmVjdCBvbiBuZXdQYXJhbUlkKS5cbiAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbUlkID0gc3RhdGUubmV3UGFyYW1JZCA/PyBcIlwiO1xuICAgICAgaWYgKGN1cnJlbnRQYXJhbUlkICYmIGN1cnJlbnRQYXJhbUlkICE9PSB0aGlzLmxhc3RTZWVuUGFyYW1JZCkge1xuICAgICAgICB0aGlzLmxhc3RTZWVuUGFyYW1JZCA9IGN1cnJlbnRQYXJhbUlkO1xuICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICBjb25zdCBkZXNpcmVkID0gc3RhdGUuY2FyZXRPZmZzZXQgPz8gcGxhaW5UZXh0TGVuZ3RoKGVsKTtcbiAgICAgICAgc2V0Q3Vyc29yT2Zmc2V0KGVsLCBkZXNpcmVkKTtcbiAgICAgIH0gZWxzZSBpZiAoIWN1cnJlbnRQYXJhbUlkKSB7XG4gICAgICAgIHRoaXMubGFzdFNlZW5QYXJhbUlkID0gXCJcIjtcbiAgICAgIH1cblxuICAgICAgLy8gUmUtZWRpdCBjYXJldCBwYXJrIChtaXJyb3JzIFJlYWN0J3MgdXNlTGF5b3V0RWZmZWN0IG9uIGVkaXRpbmdQYXJhbSkuXG4gICAgICBjb25zdCBlZGl0aW5nSWQgPSBzdGF0ZS5lZGl0aW5nUGFyYW0/LmlkID8/IFwiXCI7XG4gICAgICBpZiAoZWRpdGluZ0lkICYmIGVkaXRpbmdJZCAhPT0gdGhpcy5sYXN0RWRpdGluZ0lkICYmIHN0YXRlLmVkaXRpbmdBbmNob3IgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmxhc3RFZGl0aW5nSWQgPSBlZGl0aW5nSWQ7XG4gICAgICAgIHNldEN1cnNvck9mZnNldChlbCwgc3RhdGUuZWRpdGluZ0FuY2hvcik7XG4gICAgICB9IGVsc2UgaWYgKCFlZGl0aW5nSWQpIHtcbiAgICAgICAgdGhpcy5sYXN0RWRpdGluZ0lkID0gXCJcIjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -33,6 +33,10 @@ export class SuggestionGridComponent {
|
|
|
33
33
|
this.optionsPosition = "below";
|
|
34
34
|
/** Whether rows draw their `icon_svg` before the text. Default: true. */
|
|
35
35
|
this.showIcons = true;
|
|
36
|
+
/** Whether rows draw their `image_url` as a thumbnail before the text. Default: true. */
|
|
37
|
+
this.showImages = true;
|
|
38
|
+
/** Whether rows show their `item_count` at the trailing edge. Default: true. */
|
|
39
|
+
this.showCounts = true;
|
|
36
40
|
this.select = new EventEmitter();
|
|
37
41
|
this.highlight = new EventEmitter();
|
|
38
42
|
this.cdr = inject(ChangeDetectorRef);
|
|
@@ -109,10 +113,10 @@ export class SuggestionGridComponent {
|
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
115
|
SuggestionGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
SuggestionGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionGridComponent, isStandalone: true, selector: "aia-suggestion-grid", inputs: { options: "options", activeIndex: "activeIndex", listboxId: "listboxId", loading: "loading", groupKey: "groupKey", optionsPosition: "optionsPosition", showIcons: "showIcons" }, outputs: { select: "select", highlight: "highlight" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "gridComp", first: true, predicate: GridComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- max=\"1fr\": columns share out the full width, so a lone column spans the\n whole options box instead of stopping at 250px. -->\n<aia-grid\n min=\"250px\"\n max=\"1fr\"\n gap=\"0\"\n [scroll]=\"true\"\n [scrollResetKey]=\"groupKey\"\n [template]=\"plan.template\"\n [maxHeight]=\"plan.maxHeight\"\n [group]=\"groupKey\"\n>\n <aia-suggestion-item\n *ngFor=\"let option of options; trackBy: trackByOptionText; let i = index\"\n [option]=\"option\"\n [isHighlighted]=\"i === activeIndex\"\n [id]=\"listboxId + '-option-' + i\"\n [loading]=\"loading\"\n [showIcon]=\"showIcons\"\n [scrollHint]=\"isScrollHint(i)\"\n [enterDelayMs]=\"enterDelayMs(i)\"\n (select)=\"select.emit($event)\"\n (highlight)=\"highlight.emit(i)\"\n ></aia-suggestion-item>\n</aia-grid>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: GridComponent, selector: "aia-grid", inputs: ["min", "max", "gap", "scroll", "maxHeight", "scrollResetKey", "cols", "template", "group"] }, { kind: "component", type: SuggestionItemComponent, selector: "aia-suggestion-item", inputs: ["option", "isHighlighted", "id", "loading", "showIcon", "scrollHint", "enterDelayMs"], outputs: ["select", "highlight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
116
|
+
SuggestionGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionGridComponent, isStandalone: true, selector: "aia-suggestion-grid", inputs: { options: "options", activeIndex: "activeIndex", listboxId: "listboxId", loading: "loading", groupKey: "groupKey", optionsPosition: "optionsPosition", showIcons: "showIcons", showImages: "showImages", showCounts: "showCounts" }, outputs: { select: "select", highlight: "highlight" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "gridComp", first: true, predicate: GridComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- max=\"1fr\": columns share out the full width, so a lone column spans the\n whole options box instead of stopping at 250px. -->\n<aia-grid\n min=\"250px\"\n max=\"1fr\"\n gap=\"0\"\n [scroll]=\"true\"\n [scrollResetKey]=\"groupKey\"\n [template]=\"plan.template\"\n [maxHeight]=\"plan.maxHeight\"\n [group]=\"groupKey\"\n>\n <aia-suggestion-item\n *ngFor=\"let option of options; trackBy: trackByOptionText; let i = index\"\n [option]=\"option\"\n [isHighlighted]=\"i === activeIndex\"\n [id]=\"listboxId + '-option-' + i\"\n [loading]=\"loading\"\n [showIcon]=\"showIcons\"\n [showImage]=\"showImages\"\n [showCount]=\"showCounts\"\n [scrollHint]=\"isScrollHint(i)\"\n [enterDelayMs]=\"enterDelayMs(i)\"\n (select)=\"select.emit($event)\"\n (highlight)=\"highlight.emit(i)\"\n ></aia-suggestion-item>\n</aia-grid>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: GridComponent, selector: "aia-grid", inputs: ["min", "max", "gap", "scroll", "maxHeight", "scrollResetKey", "cols", "template", "group"] }, { kind: "component", type: SuggestionItemComponent, selector: "aia-suggestion-item", inputs: ["option", "isHighlighted", "id", "loading", "showIcon", "showImage", "showCount", "scrollHint", "enterDelayMs"], outputs: ["select", "highlight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
113
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionGridComponent, decorators: [{
|
|
114
118
|
type: Component,
|
|
115
|
-
args: [{ selector: "aia-suggestion-grid", standalone: true, imports: [CommonModule, GridComponent, SuggestionItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- max=\"1fr\": columns share out the full width, so a lone column spans the\n whole options box instead of stopping at 250px. -->\n<aia-grid\n min=\"250px\"\n max=\"1fr\"\n gap=\"0\"\n [scroll]=\"true\"\n [scrollResetKey]=\"groupKey\"\n [template]=\"plan.template\"\n [maxHeight]=\"plan.maxHeight\"\n [group]=\"groupKey\"\n>\n <aia-suggestion-item\n *ngFor=\"let option of options; trackBy: trackByOptionText; let i = index\"\n [option]=\"option\"\n [isHighlighted]=\"i === activeIndex\"\n [id]=\"listboxId + '-option-' + i\"\n [loading]=\"loading\"\n [showIcon]=\"showIcons\"\n [scrollHint]=\"isScrollHint(i)\"\n [enterDelayMs]=\"enterDelayMs(i)\"\n (select)=\"select.emit($event)\"\n (highlight)=\"highlight.emit(i)\"\n ></aia-suggestion-item>\n</aia-grid>\n" }]
|
|
119
|
+
args: [{ selector: "aia-suggestion-grid", standalone: true, imports: [CommonModule, GridComponent, SuggestionItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- max=\"1fr\": columns share out the full width, so a lone column spans the\n whole options box instead of stopping at 250px. -->\n<aia-grid\n min=\"250px\"\n max=\"1fr\"\n gap=\"0\"\n [scroll]=\"true\"\n [scrollResetKey]=\"groupKey\"\n [template]=\"plan.template\"\n [maxHeight]=\"plan.maxHeight\"\n [group]=\"groupKey\"\n>\n <aia-suggestion-item\n *ngFor=\"let option of options; trackBy: trackByOptionText; let i = index\"\n [option]=\"option\"\n [isHighlighted]=\"i === activeIndex\"\n [id]=\"listboxId + '-option-' + i\"\n [loading]=\"loading\"\n [showIcon]=\"showIcons\"\n [showImage]=\"showImages\"\n [showCount]=\"showCounts\"\n [scrollHint]=\"isScrollHint(i)\"\n [enterDelayMs]=\"enterDelayMs(i)\"\n (select)=\"select.emit($event)\"\n (highlight)=\"highlight.emit(i)\"\n ></aia-suggestion-item>\n</aia-grid>\n" }]
|
|
116
120
|
}], propDecorators: { options: [{
|
|
117
121
|
type: Input
|
|
118
122
|
}], activeIndex: [{
|
|
@@ -127,6 +131,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
127
131
|
type: Input
|
|
128
132
|
}], showIcons: [{
|
|
129
133
|
type: Input
|
|
134
|
+
}], showImages: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], showCounts: [{
|
|
137
|
+
type: Input
|
|
130
138
|
}], select: [{
|
|
131
139
|
type: Output
|
|
132
140
|
}], highlight: [{
|
|
@@ -138,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
138
146
|
type: HostListener,
|
|
139
147
|
args: ["window:resize"]
|
|
140
148
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1ncmlkL3N1Z2dlc3Rpb24tZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24tZ3JpZC9zdWdnZXN0aW9uLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBRTNCLGtCQUFrQixFQUNsQixlQUFlLEdBRWhCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFFdkY7Ozs7Ozs7O0dBUUc7QUFTSCxNQUFNLE9BQU8sdUJBQXVCO0lBUnBDO1FBU1csWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qjs7OztXQUlHO1FBQ00sYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUN2Qjs7O1dBR0c7UUFDTSxvQkFBZSxHQUFzQixPQUFPLENBQUM7UUFDdEQseUVBQXlFO1FBQ2hFLGNBQVMsR0FBRyxJQUFJLENB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bSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBpbmplY3QsXG4gIHR5cGUgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIHR5cGUgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGlzT3B0aW9uc0dyaWRNb2JpbGVWaWV3cG9ydCxcbiAgbWVhc3VyZU9wdGlvbnNHcmlkLFxuICBuZWVkc09wdGlvbnNHcmlkTWVhc3VyZW1lbnQsXG4gIHR5cGUgT3B0aW9uc0dyaWRQbGFuLFxuICBvcHRpb25FbnRlckRlbGF5TXMsXG4gIHBsYW5PcHRpb25zR3JpZCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcbmltcG9ydCB7IEdyaWRDb21wb25lbnQgfSBmcm9tIFwiLi4vbGF5b3V0L2dyaWQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gXCIuLi9zdWdnZXN0aW9uLWl0ZW0vc3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudFwiO1xuXG4vKipcbiAqIEludGVybmFsIGdyaWQgb2Ygc3VnZ2VzdGlvbiBvcHRpb25zLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkdyaWQudHN4YCDigJQgYSB0aGluIHdyYXBwZXIgb3ZlciB0aGVcbiAqIGBHcmlkYCBsYXlvdXQgcHJpbWl0aXZlICh3aGljaCBvd25zIHRoZSBhdXRvLWZpdCBjb2x1bW5zIGFuZCB0aGVcbiAqIGNhcHBlZC1oZWlnaHQgc2Nyb2xsKS4gSXQgb25seSB3aXJlcyBlYWNoIG9wdGlvbiB0byBpdHNcbiAqIHNlbGVjdC9oaWdobGlnaHQgaGFuZGxlcnMgYW5kIGxpc3Rib3gtc2NvcGVkIGlkLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYWlhLXN1Z2dlc3Rpb24tZ3JpZFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBHcmlkQ29tcG9uZW50LCBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZVVybDogXCIuL3N1Z2dlc3Rpb24tZ3JpZC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IFN1Z2dlc3Rpb25PcHRpb25bXSA9IFtdO1xuICBASW5wdXQoKSBhY3RpdmVJbmRleCA9IC0xO1xuICBASW5wdXQoKSBsaXN0Ym94SWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBJZGVudGl0eSBvZiB0aGUgc3VnZ2VzdGlvbiB0aGVzZSBvcHRpb25zIGJlbG9uZyB0by4gV2hlbiBpdCBjaGFuZ2VzIHRoZVxuICAgKiBncmlkIHNjcm9sbHMgYmFjayB0byB0aGUgdG9wLCBzbyB0aGUgbmV4dCBwYXJhbWV0ZXIncyBvcHRpb25zIGFyZSByZWFkXG4gICAqIGZyb20gdGhlIGZpcnN0IG9uZSBpbnN0ZWFkIG9mIGZyb20gdGhlIHByZXZpb3VzIGxpc3QncyBzY3JvbGwgb2Zmc2V0LlxuICAgKi9cbiAgQElucHV0KCkgZ3JvdXBLZXkgPSBcIlwiO1xuICAvKipcbiAgICogV2hpY2ggc2lkZSBvZiB0aGUgaW5wdXQgdGhlIGRyb3Bkb3duIG9wZW5zIG9uLiBUaGUgcm93cycgZW50cmFuY2Ugc3RhcnRzXG4gICAqIGZyb20gdGhlIGlucHV0J3Mgc2lkZSBvdXR3YXJkLCBzbyBcImFib3ZlXCIgcmV2ZXJzZXMgdGhlIG9yZGVyLlxuICAgKi9cbiAgQElucHV0KCkgb3B0aW9uc1Bvc2l0aW9uOiBcImFib3ZlXCIgfCBcImJlbG93XCIgPSBcImJlbG93XCI7XG4gIC8qKiBXaGV0aGVyIHJvd3MgZHJhdyB0aGVpciBgaWNvbl9zdmdgIGJlZm9yZSB0aGUgdGV4dC4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd0ljb25zID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdWdnZXN0aW9uT3B0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaGlnaGxpZ2h0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBWaWV3Q2hpbGQoR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgZ3JpZENvbXA/OiBHcmlkQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgbWVhc3VyZWQgbGF5b3V0IHBsYW4uIFN0YXJ0cyBhcyB0aGUgbWVhc3VyZW1lbnQtZnJlZSBiYXNlbGluZSAob25lXG4gICAqIGNvbHVtbik7IGFmdGVyIGVhY2ggdmlldyB1cGRhdGUgdGhlIHJlbmRlcmVkIHJvd3MgYXJlIG1lYXN1cmVkIGFuZCB0aGVcbiAgICogcGxhbiB1cGdyYWRlcyB0byB0d28gY29sdW1ucyB3aGVuIHRoZXkgcHJvdmFibHkgZml0IOKAlCBzYW1lIHR3by1wYXNzIHRoZVxuICAgKiBSZWFjdCBncmlkIGRvZXMgd2l0aCBpdHMgbGF5b3V0IGVmZmVjdCwgYWxsIHRocm91Z2ggYHBsYW5PcHRpb25zR3JpZGAuXG4gICAqL1xuICBwbGFuOiBPcHRpb25zR3JpZFBsYW4gPSBwbGFuT3B0aW9uc0dyaWQoMCwgZmFsc2UsIG51bGwsIG51bGwpO1xuICBwcml2YXRlIG5lZWRzTWVhc3VyZSA9IHRydWU7XG5cbiAgLy8gUmUtbWVhc3VyZSB3aGVuIHRoZSB2aWV3cG9ydCBjaGFuZ2VzIChicmVha3BvaW50IG9yIHdpZHRoIGJvdGggbWF0dGVyIHRvXG4gIC8vIHRoZSB0d28tY29sdW1uIGZpdCkuXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gIG9uUmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMubmVlZHNNZWFzdXJlID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBPbmx5IHRoZSBpbnB1dHMgdGhlIHBsYW4gZGVwZW5kcyBvbiByZXNldCBpdCDigJQgYWN0aXZlSW5kZXggY2hhbmdlcyBvblxuICAgIC8vIGV2ZXJ5IGFycm93IGtleSBhbmQgbXVzdCBub3Qga25vY2sgYSBtZWFzdXJlZCB0d28tY29sdW1uIGdyaWQgYmFjayB0b1xuICAgIC8vIHRoZSBiYXNlbGluZSAodGhlIFJlYWN0IGdyaWQncyBsYXlvdXQgZWZmZWN0IGV4Y2x1ZGVzIGl0IHRoZSBzYW1lIHdheSkuXG4gICAgaWYgKCFjaGFuZ2VzW1wib3B0aW9uc1wiXSAmJiAhY2hhbmdlc1tcImxvYWRpbmdcIl0pIHJldHVybjtcbiAgICB0aGlzLm5lZWRzTWVhc3VyZSA9IHRydWU7XG4gICAgLy8gVGhlIHByZS1tZWFzdXJlIGJhc2VsaW5lIGZvciB0aGUgbmV3IGlucHV0cywgc28gdGhlIGZpcnN0IHBhaW50IGlzIHRoZVxuICAgIC8vIHNhbWUgb25lLWNvbHVtbiBsYXlvdXQgdGhlIG90aGVyIHBhY2thZ2VzIHN0YXJ0IGZyb20uXG4gICAgdGhpcy5wbGFuID0gcGxhbk9wdGlvbnNHcmlkKHRoaXMub3B0aW9ucy5sZW5ndGgsIGlzT3B0aW9uc0dyaWRNb2JpbGVWaWV3cG9ydCgpLCBudWxsLCBudWxsKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubmVlZHNNZWFzdXJlKSByZXR1cm47XG4gICAgdGhpcy5uZWVkc01lYXN1cmUgPSBmYWxzZTtcbiAgICBjb25zdCBpc01vYmlsZSA9IGlzT3B0aW9uc0dyaWRNb2JpbGVWaWV3cG9ydCgpO1xuICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRDb21wPy5ncmlkUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIC8vIE1lYXN1cmluZyBjbG9uZXMgZXZlcnkgcm93IGFuZCBmb3JjZXMgYSBsYXlvdXQg4oCUIHNraXAgaXQgd2hlbmV2ZXIgdGhlXG4gICAgLy8gcGxhbiB3b3VsZCBpZ25vcmUgdGhlIHJlc3VsdCAobW9iaWxlLCBmZXdlciB0aGFuIGZpdmUgb3B0aW9ucykuXG4gICAgY29uc3Qgc2hvdWxkTWVhc3VyZSA9XG4gICAgICBncmlkICYmICF0aGlzLmxvYWRpbmcgJiYgbmVlZHNPcHRpb25zR3JpZE1lYXN1cmVtZW50KHRoaXMub3B0aW9ucy5sZW5ndGgsIGlzTW9iaWxlKTtcbiAgICBjb25zdCBtZWFzdXJlZCA9IHNob3VsZE1lYXN1cmUgPyBtZWFzdXJlT3B0aW9uc0dyaWQoZ3JpZCkgOiBudWxsO1xuICAgIGNvbnN0IG5leHQgPSBwbGFuT3B0aW9uc0dyaWQoXG4gICAgICB0aGlzLm9wdGlvbnMubGVuZ3RoLFxuICAgICAgaXNNb2JpbGUsXG4gICAgICBtZWFzdXJlZD8ucm93V2lkdGhzID8/IG51bGwsXG4gICAgICBtZWFzdXJlZD8uZ3JpZFdpZHRoID8/IG51bGwsXG4gICAgKTtcbiAgICBjb25zdCB1bmNoYW5nZWQgPVxuICAgICAgbmV4dC50ZW1wbGF0ZSA9PT0gdGhpcy5wbGFuLnRlbXBsYXRlICYmXG4gICAgICBuZXh0Lm1heEhlaWdodCA9PT0gdGhpcy5wbGFuLm1heEhlaWdodCAmJlxuICAgICAgbmV4dC5zY3JvbGxIaW50SW5kaWNlcy5qb2luKCkgPT09IHRoaXMucGxhbi5zY3JvbGxIaW50SW5kaWNlcy5qb2luKCk7XG4gICAgaWYgKHVuY2hhbmdlZCkgcmV0dXJuO1xuICAgIC8vIFRoZSB2aWV3IHdhcyBhbHJlYWR5IGNoZWNrZWQgdGhpcyBjeWNsZSDigJQgYXBwbHkgdGhlIG1lYXN1cmVkIHBsYW4gaW4gYVxuICAgIC8vIGZyZXNoIG1pY3JvdGFzayBzbyBPblB1c2ggcGlja3MgaXQgdXAgd2l0aG91dCBhblxuICAgIC8vIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkIGVycm9yLlxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMucGxhbiA9IG5leHQ7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzU2Nyb2xsSGludChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxvYWRpbmcgJiYgdGhpcy5wbGFuLnNjcm9sbEhpbnRJbmRpY2VzLmluY2x1ZGVzKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCBkZWxheSBvZiByb3cgYGluZGV4YCdzIGVudHJhbmNlIOKAlCBlYWNoIHJvdyByaXNlcyBpbiBhIGJlYXQgYWZ0ZXJcbiAgICogdGhlIG9uZSBuZWFyZXIgdGhlIGlucHV0LiBTa2VsZXRvbiByb3dzIGZhZGUgaW4gdG9nZXRoZXIgKHRoZXkncmVcbiAgICogcGxhY2Vob2xkZXJzLCBub3QgY29udGVudCBhcnJpdmluZykuXG4gICAqL1xuICBlbnRlckRlbGF5TXMoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuIDA7XG4gICAgLy8gQWNyb3NzIHRoZSBjb2x1bW5zIHRoZSBtZWFzdXJlZCBwbGFuIHNldHRsZWQgb24g4oCUIHRoZSB0d28tY29sdW1uXG4gICAgLy8gdXBncmFkZSBvbmx5IGRlY2lkZXMgdGhhdCBhZnRlciB0aGUgcm93cyBleGlzdC5cbiAgICByZXR1cm4gb3B0aW9uRW50ZXJEZWxheU1zKGluZGV4LCB0aGlzLnBsYW4uY29scywgdGhpcy5vcHRpb25zLmxlbmd0aCwgdGhpcy5vcHRpb25zUG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBncm91cCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eTogYSBuZXcgc3VnZ2VzdGlvbidzIG9wdGlvbnMgYXJlIG5ld1xuICAgKiByb3dzIGFuZCBnZXQgdGhlIGVudHJhbmNlIGFuaW1hdGlvbiBldmVuIHdoZW4gb25lIHNwZWxscyB0aGUgc2FtZSBhcyBhXG4gICAqIHJvdyBhbHJlYWR5IG9uIHNjcmVlbi5cbiAgICovXG4gIHRyYWNrQnlPcHRpb25UZXh0ID0gKF86IG51bWJlciwgb3B0OiBTdWdnZXN0aW9uT3B0aW9uKTogc3RyaW5nID0+IGAke3RoaXMuZ3JvdXBLZXl9XFwwJHtvcHQudGV4dH1gO1xufVxuIiwiPCEtLSBtYXg9XCIxZnJcIjogY29sdW1ucyBzaGFyZSBvdXQgdGhlIGZ1bGwgd2lkdGgsIHNvIGEgbG9uZSBjb2x1bW4gc3BhbnMgdGhlXG4gICAgIHdob2xlIG9wdGlvbnMgYm94IGluc3RlYWQgb2Ygc3RvcHBpbmcgYXQgMjUwcHguIC0tPlxuPGFpYS1ncmlkXG4gIG1pbj1cIjI1MHB4XCJcbiAgbWF4PVwiMWZyXCJcbiAgZ2FwPVwiMFwiXG4gIFtzY3JvbGxdPVwidHJ1ZVwiXG4gIFtzY3JvbGxSZXNldEtleV09XCJncm91cEtleVwiXG4gIFt0ZW1wbGF0ZV09XCJwbGFuLnRlbXBsYXRlXCJcbiAgW21heEhlaWdodF09XCJwbGFuLm1heEhlaWdodFwiXG4gIFtncm91cF09XCJncm91cEtleVwiXG4+XG4gIDxhaWEtc3VnZ2VzdGlvbi1pdGVtXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5T3B0aW9uVGV4dDsgbGV0IGkgPSBpbmRleFwiXG4gICAgW29wdGlvbl09XCJvcHRpb25cIlxuICAgIFtpc0hpZ2hsaWdodGVkXT1cImkgPT09IGFjdGl2ZUluZGV4XCJcbiAgICBbaWRdPVwibGlzdGJveElkICsgJy1vcHRpb24tJyArIGlcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtzaG93SWNvbl09XCJzaG93SWNvbnNcIlxuICAgIFtzY3JvbGxIaW50XT1cImlzU2Nyb2xsSGludChpKVwiXG4gICAgW2VudGVyRGVsYXlNc109XCJlbnRlckRlbGF5TXMoaSlcIlxuICAgIChzZWxlY3QpPVwic2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gICAgKGhpZ2hsaWdodCk9XCJoaWdobGlnaHQuZW1pdChpKVwiXG4gID48L2FpYS1zdWdnZXN0aW9uLWl0ZW0+XG48L2FpYS1ncmlkPlxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1ncmlkL3N1Z2dlc3Rpb24tZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24tZ3JpZC9zdWdnZXN0aW9uLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixrQkFBa0IsRUFDbEIsMkJBQTJCLEVBRTNCLGtCQUFrQixFQUNsQixlQUFlLEdBRWhCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7QUFFdkY7Ozs7Ozs7O0dBUUc7QUFTSCxNQUFNLE9BQU8sdUJBQXVCO0lBUnBDO1FBU1csWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qjs7OztXQUlHO1FBQ00sYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUN2Qjs7O1dBR0c7UUFDTSxvQkFBZSxHQUFzQixPQUFPLENBQUM7UUFDdEQseUVBQXlFO1FBQ2hFLGNBQVMsR0FBRyxJQUFJLENB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Uzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWMzQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIHR5cGUgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBpc09wdGlvbnNHcmlkTW9iaWxlVmlld3BvcnQsXG4gIG1lYXN1cmVPcHRpb25zR3JpZCxcbiAgbmVlZHNPcHRpb25zR3JpZE1lYXN1cmVtZW50LFxuICB0eXBlIE9wdGlvbnNHcmlkUGxhbixcbiAgb3B0aW9uRW50ZXJEZWxheU1zLFxuICBwbGFuT3B0aW9uc0dyaWQsXG4gIHR5cGUgU3VnZ2VzdGlvbk9wdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2xheW91dC9ncmlkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi4vc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnRcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBncmlkIG9mIHN1Z2dlc3Rpb24gb3B0aW9ucy4gTWlycm9yc1xuICogYHBhY2thZ2VzL3JlYWN0L3NyYy9jb21wb25lbnRzL1N1Z2dlc3Rpb25HcmlkLnRzeGAg4oCUIGEgdGhpbiB3cmFwcGVyIG92ZXIgdGhlXG4gKiBgR3JpZGAgbGF5b3V0IHByaW1pdGl2ZSAod2hpY2ggb3ducyB0aGUgYXV0by1maXQgY29sdW1ucyBhbmQgdGhlXG4gKiBjYXBwZWQtaGVpZ2h0IHNjcm9sbCkuIEl0IG9ubHkgd2lyZXMgZWFjaCBvcHRpb24gdG8gaXRzXG4gKiBzZWxlY3QvaGlnaGxpZ2h0IGhhbmRsZXJzIGFuZCBsaXN0Ym94LXNjb3BlZCBpZC5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFpYS1zdWdnZXN0aW9uLWdyaWRcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgR3JpZENvbXBvbmVudCwgU3VnZ2VzdGlvbkl0ZW1Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWdyaWQuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgU3VnZ2VzdGlvbkdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0NoZWNrZWQge1xuICBASW5wdXQoKSBvcHRpb25zOiBTdWdnZXN0aW9uT3B0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aXZlSW5kZXggPSAtMTtcbiAgQElucHV0KCkgbGlzdGJveElkID0gXCJcIjtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICAvKipcbiAgICogSWRlbnRpdHkgb2YgdGhlIHN1Z2dlc3Rpb24gdGhlc2Ugb3B0aW9ucyBiZWxvbmcgdG8uIFdoZW4gaXQgY2hhbmdlcyB0aGVcbiAgICogZ3JpZCBzY3JvbGxzIGJhY2sgdG8gdGhlIHRvcCwgc28gdGhlIG5leHQgcGFyYW1ldGVyJ3Mgb3B0aW9ucyBhcmUgcmVhZFxuICAgKiBmcm9tIHRoZSBmaXJzdCBvbmUgaW5zdGVhZCBvZiBmcm9tIHRoZSBwcmV2aW91cyBsaXN0J3Mgc2Nyb2xsIG9mZnNldC5cbiAgICovXG4gIEBJbnB1dCgpIGdyb3VwS2V5ID0gXCJcIjtcbiAgLyoqXG4gICAqIFdoaWNoIHNpZGUgb2YgdGhlIGlucHV0IHRoZSBkcm9wZG93biBvcGVucyBvbi4gVGhlIHJvd3MnIGVudHJhbmNlIHN0YXJ0c1xuICAgKiBmcm9tIHRoZSBpbnB1dCdzIHNpZGUgb3V0d2FyZCwgc28gXCJhYm92ZVwiIHJldmVyc2VzIHRoZSBvcmRlci5cbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnNQb3NpdGlvbjogXCJhYm92ZVwiIHwgXCJiZWxvd1wiID0gXCJiZWxvd1wiO1xuICAvKiogV2hldGhlciByb3dzIGRyYXcgdGhlaXIgYGljb25fc3ZnYCBiZWZvcmUgdGhlIHRleHQuIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJY29ucyA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHJvd3MgZHJhdyB0aGVpciBgaW1hZ2VfdXJsYCBhcyBhIHRodW1ibmFpbCBiZWZvcmUgdGhlIHRleHQuIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJbWFnZXMgPSB0cnVlO1xuICAvKiogV2hldGhlciByb3dzIHNob3cgdGhlaXIgYGl0ZW1fY291bnRgIGF0IHRoZSB0cmFpbGluZyBlZGdlLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93Q291bnRzID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdWdnZXN0aW9uT3B0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaGlnaGxpZ2h0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBWaWV3Q2hpbGQoR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgZ3JpZENvbXA/OiBHcmlkQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgbWVhc3VyZWQgbGF5b3V0IHBsYW4uIFN0YXJ0cyBhcyB0aGUgbWVhc3VyZW1lbnQtZnJlZSBiYXNlbGluZSAob25lXG4gICAqIGNvbHVtbik7IGFmdGVyIGVhY2ggdmlldyB1cGRhdGUgdGhlIHJlbmRlcmVkIHJvd3MgYXJlIG1lYXN1cmVkIGFuZCB0aGVcbiAgICogcGxhbiB1cGdyYWRlcyB0byB0d28gY29sdW1ucyB3aGVuIHRoZXkgcHJvdmFibHkgZml0IOKAlCBzYW1lIHR3by1wYXNzIHRoZVxuICAgKiBSZWFjdCBncmlkIGRvZXMgd2l0aCBpdHMgbGF5b3V0IGVmZmVjdCwgYWxsIHRocm91Z2ggYHBsYW5PcHRpb25zR3JpZGAuXG4gICAqL1xuICBwbGFuOiBPcHRpb25zR3JpZFBsYW4gPSBwbGFuT3B0aW9uc0dyaWQoMCwgZmFsc2UsIG51bGwsIG51bGwpO1xuICBwcml2YXRlIG5lZWRzTWVhc3VyZSA9IHRydWU7XG5cbiAgLy8gUmUtbWVhc3VyZSB3aGVuIHRoZSB2aWV3cG9ydCBjaGFuZ2VzIChicmVha3BvaW50IG9yIHdpZHRoIGJvdGggbWF0dGVyIHRvXG4gIC8vIHRoZSB0d28tY29sdW1uIGZpdCkuXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXG4gIG9uUmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMubmVlZHNNZWFzdXJlID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBPbmx5IHRoZSBpbnB1dHMgdGhlIHBsYW4gZGVwZW5kcyBvbiByZXNldCBpdCDigJQgYWN0aXZlSW5kZXggY2hhbmdlcyBvblxuICAgIC8vIGV2ZXJ5IGFycm93IGtleSBhbmQgbXVzdCBub3Qga25vY2sgYSBtZWFzdXJlZCB0d28tY29sdW1uIGdyaWQgYmFjayB0b1xuICAgIC8vIHRoZSBiYXNlbGluZSAodGhlIFJlYWN0IGdyaWQncyBsYXlvdXQgZWZmZWN0IGV4Y2x1ZGVzIGl0IHRoZSBzYW1lIHdheSkuXG4gICAgaWYgKCFjaGFuZ2VzW1wib3B0aW9uc1wiXSAmJiAhY2hhbmdlc1tcImxvYWRpbmdcIl0pIHJldHVybjtcbiAgICB0aGlzLm5lZWRzTWVhc3VyZSA9IHRydWU7XG4gICAgLy8gVGhlIHByZS1tZWFzdXJlIGJhc2VsaW5lIGZvciB0aGUgbmV3IGlucHV0cywgc28gdGhlIGZpcnN0IHBhaW50IGlzIHRoZVxuICAgIC8vIHNhbWUgb25lLWNvbHVtbiBsYXlvdXQgdGhlIG90aGVyIHBhY2thZ2VzIHN0YXJ0IGZyb20uXG4gICAgdGhpcy5wbGFuID0gcGxhbk9wdGlvbnNHcmlkKHRoaXMub3B0aW9ucy5sZW5ndGgsIGlzT3B0aW9uc0dyaWRNb2JpbGVWaWV3cG9ydCgpLCBudWxsLCBudWxsKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubmVlZHNNZWFzdXJlKSByZXR1cm47XG4gICAgdGhpcy5uZWVkc01lYXN1cmUgPSBmYWxzZTtcbiAgICBjb25zdCBpc01vYmlsZSA9IGlzT3B0aW9uc0dyaWRNb2JpbGVWaWV3cG9ydCgpO1xuICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRDb21wPy5ncmlkUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIC8vIE1lYXN1cmluZyBjbG9uZXMgZXZlcnkgcm93IGFuZCBmb3JjZXMgYSBsYXlvdXQg4oCUIHNraXAgaXQgd2hlbmV2ZXIgdGhlXG4gICAgLy8gcGxhbiB3b3VsZCBpZ25vcmUgdGhlIHJlc3VsdCAobW9iaWxlLCBmZXdlciB0aGFuIGZpdmUgb3B0aW9ucykuXG4gICAgY29uc3Qgc2hvdWxkTWVhc3VyZSA9XG4gICAgICBncmlkICYmICF0aGlzLmxvYWRpbmcgJiYgbmVlZHNPcHRpb25zR3JpZE1lYXN1cmVtZW50KHRoaXMub3B0aW9ucy5sZW5ndGgsIGlzTW9iaWxlKTtcbiAgICBjb25zdCBtZWFzdXJlZCA9IHNob3VsZE1lYXN1cmUgPyBtZWFzdXJlT3B0aW9uc0dyaWQoZ3JpZCkgOiBudWxsO1xuICAgIGNvbnN0IG5leHQgPSBwbGFuT3B0aW9uc0dyaWQoXG4gICAgICB0aGlzLm9wdGlvbnMubGVuZ3RoLFxuICAgICAgaXNNb2JpbGUsXG4gICAgICBtZWFzdXJlZD8ucm93V2lkdGhzID8/IG51bGwsXG4gICAgICBtZWFzdXJlZD8uZ3JpZFdpZHRoID8/IG51bGwsXG4gICAgKTtcbiAgICBjb25zdCB1bmNoYW5nZWQgPVxuICAgICAgbmV4dC50ZW1wbGF0ZSA9PT0gdGhpcy5wbGFuLnRlbXBsYXRlICYmXG4gICAgICBuZXh0Lm1heEhlaWdodCA9PT0gdGhpcy5wbGFuLm1heEhlaWdodCAmJlxuICAgICAgbmV4dC5zY3JvbGxIaW50SW5kaWNlcy5qb2luKCkgPT09IHRoaXMucGxhbi5zY3JvbGxIaW50SW5kaWNlcy5qb2luKCk7XG4gICAgaWYgKHVuY2hhbmdlZCkgcmV0dXJuO1xuICAgIC8vIFRoZSB2aWV3IHdhcyBhbHJlYWR5IGNoZWNrZWQgdGhpcyBjeWNsZSDigJQgYXBwbHkgdGhlIG1lYXN1cmVkIHBsYW4gaW4gYVxuICAgIC8vIGZyZXNoIG1pY3JvdGFzayBzbyBPblB1c2ggcGlja3MgaXQgdXAgd2l0aG91dCBhblxuICAgIC8vIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkIGVycm9yLlxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRoaXMucGxhbiA9IG5leHQ7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzU2Nyb2xsSGludChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxvYWRpbmcgJiYgdGhpcy5wbGFuLnNjcm9sbEhpbnRJbmRpY2VzLmluY2x1ZGVzKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCBkZWxheSBvZiByb3cgYGluZGV4YCdzIGVudHJhbmNlIOKAlCBlYWNoIHJvdyByaXNlcyBpbiBhIGJlYXQgYWZ0ZXJcbiAgICogdGhlIG9uZSBuZWFyZXIgdGhlIGlucHV0LiBTa2VsZXRvbiByb3dzIGZhZGUgaW4gdG9nZXRoZXIgKHRoZXkncmVcbiAgICogcGxhY2Vob2xkZXJzLCBub3QgY29udGVudCBhcnJpdmluZykuXG4gICAqL1xuICBlbnRlckRlbGF5TXMoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubG9hZGluZykgcmV0dXJuIDA7XG4gICAgLy8gQWNyb3NzIHRoZSBjb2x1bW5zIHRoZSBtZWFzdXJlZCBwbGFuIHNldHRsZWQgb24g4oCUIHRoZSB0d28tY29sdW1uXG4gICAgLy8gdXBncmFkZSBvbmx5IGRlY2lkZXMgdGhhdCBhZnRlciB0aGUgcm93cyBleGlzdC5cbiAgICByZXR1cm4gb3B0aW9uRW50ZXJEZWxheU1zKGluZGV4LCB0aGlzLnBsYW4uY29scywgdGhpcy5vcHRpb25zLmxlbmd0aCwgdGhpcy5vcHRpb25zUG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBncm91cCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eTogYSBuZXcgc3VnZ2VzdGlvbidzIG9wdGlvbnMgYXJlIG5ld1xuICAgKiByb3dzIGFuZCBnZXQgdGhlIGVudHJhbmNlIGFuaW1hdGlvbiBldmVuIHdoZW4gb25lIHNwZWxscyB0aGUgc2FtZSBhcyBhXG4gICAqIHJvdyBhbHJlYWR5IG9uIHNjcmVlbi5cbiAgICovXG4gIHRyYWNrQnlPcHRpb25UZXh0ID0gKF86IG51bWJlciwgb3B0OiBTdWdnZXN0aW9uT3B0aW9uKTogc3RyaW5nID0+IGAke3RoaXMuZ3JvdXBLZXl9XFwwJHtvcHQudGV4dH1gO1xufVxuIiwiPCEtLSBtYXg9XCIxZnJcIjogY29sdW1ucyBzaGFyZSBvdXQgdGhlIGZ1bGwgd2lkdGgsIHNvIGEgbG9uZSBjb2x1bW4gc3BhbnMgdGhlXG4gICAgIHdob2xlIG9wdGlvbnMgYm94IGluc3RlYWQgb2Ygc3RvcHBpbmcgYXQgMjUwcHguIC0tPlxuPGFpYS1ncmlkXG4gIG1pbj1cIjI1MHB4XCJcbiAgbWF4PVwiMWZyXCJcbiAgZ2FwPVwiMFwiXG4gIFtzY3JvbGxdPVwidHJ1ZVwiXG4gIFtzY3JvbGxSZXNldEtleV09XCJncm91cEtleVwiXG4gIFt0ZW1wbGF0ZV09XCJwbGFuLnRlbXBsYXRlXCJcbiAgW21heEhlaWdodF09XCJwbGFuLm1heEhlaWdodFwiXG4gIFtncm91cF09XCJncm91cEtleVwiXG4+XG4gIDxhaWEtc3VnZ2VzdGlvbi1pdGVtXG4gICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5T3B0aW9uVGV4dDsgbGV0IGkgPSBpbmRleFwiXG4gICAgW29wdGlvbl09XCJvcHRpb25cIlxuICAgIFtpc0hpZ2hsaWdodGVkXT1cImkgPT09IGFjdGl2ZUluZGV4XCJcbiAgICBbaWRdPVwibGlzdGJveElkICsgJy1vcHRpb24tJyArIGlcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtzaG93SWNvbl09XCJzaG93SWNvbnNcIlxuICAgIFtzaG93SW1hZ2VdPVwic2hvd0ltYWdlc1wiXG4gICAgW3Nob3dDb3VudF09XCJzaG93Q291bnRzXCJcbiAgICBbc2Nyb2xsSGludF09XCJpc1Njcm9sbEhpbnQoaSlcIlxuICAgIFtlbnRlckRlbGF5TXNdPVwiZW50ZXJEZWxheU1zKGkpXCJcbiAgICAoc2VsZWN0KT1cInNlbGVjdC5lbWl0KCRldmVudClcIlxuICAgIChoaWdobGlnaHQpPVwiaGlnaGxpZ2h0LmVtaXQoaSlcIlxuICA+PC9haWEtc3VnZ2VzdGlvbi1pdGVtPlxuPC9haWEtZ3JpZD5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CommonModule } from "@angular/common";
|
|
2
2
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, inject, Output, ViewEncapsulation, } from "@angular/core";
|
|
3
3
|
import { DomSanitizer } from "@angular/platform-browser";
|
|
4
|
-
import { optionLabel, sanitizeOptionIconSvg, } from "@magicx-eng/ai-autocomplete-vanilla";
|
|
4
|
+
import { formatOptionCount, optionImageSrc, optionLabel, sanitizeOptionIconSvg, } from "@magicx-eng/ai-autocomplete-vanilla";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
/**
|
|
@@ -15,6 +15,8 @@ import * as i1 from "@angular/common";
|
|
|
15
15
|
* - Loading skeleton when `loading=true`
|
|
16
16
|
* - Server-provided icon (`icon_svg`), allowlisted through the core's
|
|
17
17
|
* `sanitizeOptionIconSvg` before it is bound as HTML
|
|
18
|
+
* - Server-provided picture (`image_url`) as a square thumbnail in place of
|
|
19
|
+
* the icon, and item count (`item_count`) at the row's trailing edge
|
|
18
20
|
*
|
|
19
21
|
* @internal
|
|
20
22
|
*/
|
|
@@ -25,6 +27,10 @@ export class SuggestionItemComponent {
|
|
|
25
27
|
this.loading = false;
|
|
26
28
|
/** Whether to draw the option's `icon_svg` before its text. Default: true. */
|
|
27
29
|
this.showIcon = true;
|
|
30
|
+
/** Whether to draw the option's `image_url` as a thumbnail before its text, in place of the icon. Default: true. */
|
|
31
|
+
this.showImage = true;
|
|
32
|
+
/** Whether to show the option's `item_count` at the row's trailing edge. Default: true. */
|
|
33
|
+
this.showCount = true;
|
|
28
34
|
/** Fade this option's text toward its bottom edge (last visible row of a scrollable grid). */
|
|
29
35
|
this.scrollHint = false;
|
|
30
36
|
/**
|
|
@@ -39,6 +45,8 @@ export class SuggestionItemComponent {
|
|
|
39
45
|
this.cdr = inject(ChangeDetectorRef);
|
|
40
46
|
this.sanitizer = inject(DomSanitizer);
|
|
41
47
|
this.iconSafe = null;
|
|
48
|
+
/** The `src` whose load failed, so the tile keeps its placeholder fill for it. */
|
|
49
|
+
this.failedSrc = null;
|
|
42
50
|
}
|
|
43
51
|
/**
|
|
44
52
|
* Start delay of this row's entrance animation (ms) — each row rises in a
|
|
@@ -53,6 +61,29 @@ export class SuggestionItemComponent {
|
|
|
53
61
|
get label() {
|
|
54
62
|
return optionLabel(this.option);
|
|
55
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* The picture's `src`, or `null` when the row draws none: images off, no
|
|
66
|
+
* `image_url`, or one that is not an http(s) URL. A picture stands in for
|
|
67
|
+
* the icon — a row never leads with two visuals.
|
|
68
|
+
*/
|
|
69
|
+
get imageSrc() {
|
|
70
|
+
return this.showImage ? optionImageSrc(this.option.image_url) : null;
|
|
71
|
+
}
|
|
72
|
+
/** Whether the current picture failed to load (the tile's fill stays). */
|
|
73
|
+
get imageFailed() {
|
|
74
|
+
return this.failedSrc !== null && this.failedSrc === this.imageSrc;
|
|
75
|
+
}
|
|
76
|
+
onImageError() {
|
|
77
|
+
this.failedSrc = this.imageSrc;
|
|
78
|
+
this.cdr.markForCheck();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The count as printed ("1,284"), or `null` when the row shows none. The
|
|
82
|
+
* unit word after it is the stylesheet's (`--aia-option-count-unit`).
|
|
83
|
+
*/
|
|
84
|
+
get countLabel() {
|
|
85
|
+
return this.showCount ? formatOptionCount(this.option.item_count) : null;
|
|
86
|
+
}
|
|
56
87
|
/**
|
|
57
88
|
* The option's icon as bindable HTML, or `null` when it has none (or its
|
|
58
89
|
* markup failed the allowlist). Angular's own HTML sanitizer strips `<svg>`
|
|
@@ -61,7 +92,7 @@ export class SuggestionItemComponent {
|
|
|
61
92
|
* changes; the getter runs on every OnPush check.
|
|
62
93
|
*/
|
|
63
94
|
get iconHtml() {
|
|
64
|
-
const svg = this.showIcon ? this.option.icon_svg : undefined;
|
|
95
|
+
const svg = this.showIcon && !this.imageSrc ? this.option.icon_svg : undefined;
|
|
65
96
|
if (svg !== this.iconSource) {
|
|
66
97
|
this.iconSource = svg;
|
|
67
98
|
const html = svg ? sanitizeOptionIconSvg(svg) : null;
|
|
@@ -101,10 +132,10 @@ export class SuggestionItemComponent {
|
|
|
101
132
|
}
|
|
102
133
|
}
|
|
103
134
|
SuggestionItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
-
SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
135
|
+
SuggestionItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SuggestionItemComponent, isStandalone: true, selector: "aia-suggestion-item", inputs: { option: "option", isHighlighted: "isHighlighted", id: "id", loading: "loading", showIcon: "showIcon", showImage: "showImage", showCount: "showCount", scrollHint: "scrollHint", enterDelayMs: "enterDelayMs" }, outputs: { select: "select", highlight: "highlight" }, ngImport: i0, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill under the picture, so a slow or\n failed load leaves a neutral square rather than a gap. The picture is\n decorative: the text is the option's accessible name. -->\n <span *ngIf=\"imageSrc as src\" class=\"aia-suggestion-image\" aria-hidden=\"true\">\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)))}.aia-suggestion-image img{display:block;width:100%;height:100%;object-fit:cover}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
105
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SuggestionItemComponent, decorators: [{
|
|
106
137
|
type: Component,
|
|
107
|
-
args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"] }]
|
|
138
|
+
args: [{ selector: "aia-suggestion-item", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n role=\"option\"\n data-aia-option=\"\"\n [attr.data-aia-loading]=\"loading ? '' : null\"\n [attr.data-aia-icon]=\"iconHtml && option.icon ? option.icon : null\"\n [attr.data-aia-image]=\"imageSrc ? '' : null\"\n [attr.data-aia-item-count]=\"countLabel !== null ? option.item_count : null\"\n [attr.aria-selected]=\"isHighlighted\"\n class=\"aia-suggestion-item\"\n [style.--aia-option-enter-delay]=\"(enterDelay ?? 0) + 'ms'\"\n [class.aia-suggestion-item-highlighted]=\"isHighlighted && !loading\"\n [class.aia-suggestion-item-tappable]=\"option.is_tappable\"\n [class.aia-suggestion-item-non-tappable]=\"!option.is_tappable\"\n [class.aia-suggestion-item-pressed]=\"pressed\"\n [class.aia-suggestion-item-scroll-hint]=\"scrollHint\"\n [attr.tabindex]=\"loading || !option.is_tappable ? -1 : 0\"\n (click)=\"onSelect()\"\n (keydown)=\"onKeyDown($event)\"\n (mouseenter)=\"onMouseEnter()\"\n>\n <span class=\"aia-suggestion-content\">\n <!-- The tile keeps a placeholder fill under the picture, so a slow or\n failed load leaves a neutral square rather than a gap. The picture is\n decorative: the text is the option's accessible name. -->\n <span *ngIf=\"imageSrc as src\" class=\"aia-suggestion-image\" aria-hidden=\"true\">\n <img\n [src]=\"src\"\n alt=\"\"\n loading=\"lazy\"\n decoding=\"async\"\n referrerpolicy=\"no-referrer\"\n draggable=\"false\"\n [hidden]=\"imageFailed\"\n (error)=\"onImageError()\"\n />\n </span>\n <span\n *ngIf=\"iconHtml\"\n class=\"aia-suggestion-icon\"\n aria-hidden=\"true\"\n [innerHTML]=\"iconHtml\"\n ></span>\n <span class=\"aia-suggestion-text\">{{ label }}</span>\n <span *ngIf=\"option.tag\" class=\"aia-suggestion-tag\">{{ option.tag }}</span>\n <!-- Part of the row's accessible name, read after the option's text. -->\n <span *ngIf=\"countLabel !== null\" class=\"aia-suggestion-count\">{{ countLabel }}</span>\n </span>\n</div>\n", styles: [".aia-suggestion-item{position:relative;overflow:hidden;overflow:clip;display:flex;align-items:flex-start;font-family:inherit;font-size:var(--aia-option-font-size, 16px);font-weight:450;line-height:21px;color:var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb));white-space:normal;word-break:break-word;border-radius:8px;padding:8px 10px;animation:aiaSuggestionFadeIn .15s ease-out both;animation-delay:var(--aia-option-enter-delay, 0ms)}@keyframes aiaSuggestionFadeIn{0%{opacity:0}}@keyframes aiaSuggestionRiseIn{0%{transform:translateY(16px)}}@media (prefers-reduced-motion: reduce){.aia-suggestion-item,.aia-suggestion-content{animation-duration:0s;animation-delay:0s}}.aia-suggestion-content{position:relative;z-index:2;animation:aiaSuggestionRiseIn .28s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--aia-option-enter-delay, 0ms)}.aia-suggestion-item-tappable{cursor:pointer}.aia-suggestion-item-tappable:hover{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff))}.aia-suggestion-item-non-tappable{cursor:default}.aia-suggestion-item-highlighted{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));background:var(--aia-option-bg, transparent);font-weight:500}.aia-suggestion-tag{font-size:11px;margin-left:6px;opacity:.5}.aia-suggestion-item-pressed{color:var(--aia-option-color-selected, var(--aia-color-text-default, #fff));animation:aiaPressCompress .17s ease forwards}[role=listbox]:has(.aia-suggestion-item-pressed) .aia-suggestion-item:not(.aia-suggestion-item-pressed){opacity:.35;transition:opacity 60ms ease}@keyframes aiaPressCompress{0%{transform:scale(1)}25%{transform:scale(.93)}60%{transform:scale(.93)}to{transform:scale(1)}}.aia-suggestion-item-scroll-hint .aia-suggestion-content{mask-image:linear-gradient(to bottom,rgb(0 0 0),rgb(0 0 0 / .6))}.aia-suggestion-item[data-aia-loading]{cursor:default;animation:aiaSuggestionSkeletonPulse 1.4s ease-in-out infinite}.aia-suggestion-item[data-aia-loading] .aia-suggestion-text{color:transparent;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));border-radius:999px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.aia-suggestion-item[data-aia-loading] .aia-suggestion-tag{display:none}.aia-suggestion-icon{display:inline-flex;align-items:center;height:21px;margin-right:8px;vertical-align:top;will-change:transform}.aia-suggestion-icon svg{display:block;width:1em;height:1em}.aia-suggestion-item[data-aia-loading] .aia-suggestion-icon{visibility:hidden}.aia-suggestion-content:not(:has(.aia-suggestion-count)):has(.aia-suggestion-icon){padding-left:calc(1em + 8px);text-indent:calc(-1em - 8px)}.aia-suggestion-content:has(.aia-suggestion-image),.aia-suggestion-content:has(.aia-suggestion-count){display:flex;flex:1 1 auto;align-items:flex-start;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image) .aia-suggestion-text,.aia-suggestion-content:has(.aia-suggestion-count) .aia-suggestion-text{flex:1 1 auto;min-width:0}.aia-suggestion-content:has(.aia-suggestion-image){align-items:center;gap:var(--aia-option-image-gap, 12px)}.aia-suggestion-image{flex:0 0 auto;display:block;width:var(--aia-option-image-size, 40px);height:var(--aia-option-image-size, 40px);border-radius:var(--aia-option-image-radius, 12px);overflow:hidden;background:var(--aia-option-image-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)))}.aia-suggestion-image img{display:block;width:100%;height:100%;object-fit:cover}.aia-suggestion-image img[hidden]{display:none}.aia-suggestion-count{flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:var(--aia-option-count-font-size, 12px);font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aia-option-count-color, inherit);opacity:var(--aia-option-count-opacity, .6)}.aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit, \"items\")}.aia-suggestion-item[data-aia-item-count=\"1\"] .aia-suggestion-count:after{content:\" \" var(--aia-option-count-unit-one, var(--aia-option-count-unit, \"item\"))}.aia-suggestion-item[data-aia-loading] .aia-suggestion-image img{visibility:hidden}.aia-suggestion-item[data-aia-loading] .aia-suggestion-count{display:none}[data-aia-group]:has(.aia-suggestion-image){--aia-option-row-height: calc(var(--aia-option-image-size, 40px) + 16px)}@keyframes aiaSuggestionSkeletonPulse{0%,to{filter:brightness(1)}50%{filter:brightness(.55)}}\n"] }]
|
|
108
139
|
}], propDecorators: { option: [{
|
|
109
140
|
type: Input
|
|
110
141
|
}], isHighlighted: [{
|
|
@@ -115,6 +146,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
115
146
|
type: Input
|
|
116
147
|
}], showIcon: [{
|
|
117
148
|
type: Input
|
|
149
|
+
}], showImage: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], showCount: [{
|
|
152
|
+
type: Input
|
|
118
153
|
}], scrollHint: [{
|
|
119
154
|
type: Input
|
|
120
155
|
}], enterDelayMs: [{
|
|
@@ -124,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
124
159
|
}], highlight: [{
|
|
125
160
|
type: Output
|
|
126
161
|
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sdUJBQXVCO0lBVHBDO1FBV1csa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsOEVBQThFO1FBQ3JFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsOEZBQThGO1FBQ3JGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTNUI7Ozs7V0FJRztRQUNILGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFp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LFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFLNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBvcHRpb25MYWJlbCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIEludGVybmFsIHNpbmdsZS1vcHRpb24gY2VsbCB1c2VkIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBncmlkLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkl0ZW0udHN4YC4gSGFuZGxlczpcbiAqXG4gKiAtIFRhcHBhYmxlIHZzIG5vbi10YXBwYWJsZSBjdXJzb3IgKyBob3ZlciBzdHlsaW5nXG4gKiAtIFByZXNzZWQtc3RhdGUgY29tcHJlc3MgYW5pbWF0aW9uICgxNzBtcywgc2luZ2xlLWZsaWdodClcbiAqIC0gS2V5Ym9hcmQgYWN0aXZhdGlvbiAoRW50ZXIvU3BhY2UpXG4gKiAtIEFSSUEgYHJvbGU9XCJvcHRpb25cImAgKyBgYXJpYS1zZWxlY3RlZGAgZm9yIHRoZSBsaXN0Ym94IHBhdHRlcm5cbiAqIC0gTG9hZGluZyBza2VsZXRvbiB3aGVuIGBsb2FkaW5nPXRydWVgXG4gKiAtIFNlcnZlci1wcm92aWRlZCBpY29uIChgaWNvbl9zdmdgKSwgYWxsb3dsaXN0ZWQgdGhyb3VnaCB0aGUgY29yZSdzXG4gKiAgIGBzYW5pdGl6ZU9wdGlvbkljb25TdmdgIGJlZm9yZSBpdCBpcyBib3VuZCBhcyBIVE1MXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBGYWRlIHRoaXMgb3B0aW9uJ3MgdGV4dCB0b3dhcmQgaXRzIGJvdHRvbSBlZGdlIChsYXN0IHZpc2libGUgcm93IG9mIGEgc2Nyb2xsYWJsZSBncmlkKS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsSGludCA9IGZhbHNlO1xuICAvKipcbiAgICogU3RhcnQgZGVsYXkgb2YgdGhpcyByb3cncyBlbnRyYW5jZSBhbmltYXRpb24gKG1zKSDigJQgZWFjaCByb3cgcmlzZXMgaW4gYVxuICAgKiBiZWF0IGFmdGVyIHRoZSBvbmUgbmVhcmVyIHRoZSBpbnB1dC4gQ2FwdHVyZWQgb25jZSwgb24gZmlyc3QgcmVuZGVyLCBzbyBhXG4gICAqIGxhdGVyIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyBjYW4ndCByZXN0YXJ0IGEgcm93IG1pZC1yaXNlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGVudGVyRGVsYXlNcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW50ZXJEZWxheSA9PT0gbnVsbCkgdGhpcy5lbnRlckRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjYXB0dXJlZCBkZWxheTsgYG51bGxgIHVudGlsIHRoZSBmaXJzdCBgZW50ZXJEZWxheU1zYCBiaW5kaW5nIGxhbmRzLlxuICAgKiBUaGUgdGVtcGxhdGUgYmluZHMgaXQgdG8gYC0tYWlhLW9wdGlvbi1lbnRlci1kZWxheWAgKHRoZSBjb3JlJ3NcbiAgICogT1BUSU9OX0VOVEVSX0RFTEFZX1ZBUiksIHdoaWNoIHRoZSBzdHlsZXNoZWV0J3MgZW50cmFuY2UgcnVsZSByZWFkcy5cbiAgICovXG4gIGVudGVyRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3Rpb25PcHRpb24+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG9wdGlvbidzIHRleHQuIGBpY29uYCBpcyB0aGUgaWNvbidzIG5hbWUgYW5kIGlzIG5ldmVyIHNob3duIGFzIHRleHQuICovXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBvcHRpb25MYWJlbCh0aGlzLm9wdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9wdGlvbidzIGljb24gYXMgYmluZGFibGUgSFRNTCwgb3IgYG51bGxgIHdoZW4gaXQgaGFzIG5vbmUgKG9yIGl0c1xuICAgKiBtYXJrdXAgZmFpbGVkIHRoZSBhbGxvd2xpc3QpLiBBbmd1bGFyJ3Mgb3duIEhUTUwgc2FuaXRpemVyIHN0cmlwcyBgPHN2Zz5gXG4gICAqIHdob2xlc2FsZSwgc28gdGhlIGNvcmUncyBhbGxvd2xpc3RlZCBvdXRwdXQgaXMgbWFya2VkIHRydXN0ZWQgaW5zdGVhZCDigJRcbiAgICogaXQgaXMgbmV2ZXIgdGhlIHNlcnZlcidzIHJhdyBzdHJpbmcuIFJlY29tcHV0ZWQgb25seSB3aGVuIHRoZSBtYXJrdXBcbiAgICogY2hhbmdlczsgdGhlIGdldHRlciBydW5zIG9uIGV2ZXJ5IE9uUHVzaCBjaGVjay5cbiAgICovXG4gIGdldCBpY29uSHRtbCgpOiBTYWZlSHRtbCB8IG51bGwge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc2hvd0ljb24gPyB0aGlzLm9wdGlvbi5pY29uX3N2ZyA6IHVuZGVmaW5lZDtcbiAgICBpZiAoc3ZnICE9PSB0aGlzLmljb25Tb3VyY2UpIHtcbiAgICAgIHRoaXMuaWNvblNvdXJjZSA9IHN2ZztcbiAgICAgIGNvbnN0IGh0bWwgPSBzdmcgPyBzYW5pdGl6ZU9wdGlvbkljb25Tdmcoc3ZnKSA6IG51bGw7XG4gICAgICB0aGlzLmljb25TYWZlID0gaHRtbCA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaWNvblNhZmU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgfVxuXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlIHx8IHRoaXMucHJlc3NlZCkgcmV0dXJuO1xuICAgIHRoaXMucHJlc3NlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLm9wdGlvbik7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gICAgdGhpcy5wcmVzc2VkVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMTcwKTtcbiAgfVxuXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9uU2VsZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtpZF09XCJpZFwiXG4gIHJvbGU9XCJvcHRpb25cIlxuICBkYXRhLWFpYS1vcHRpb249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pY29uXT1cImljb25IdG1sICYmIG9wdGlvbi5pY29uID8gb3B0aW9uLmljb24gOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0hpZ2hsaWdodGVkXCJcbiAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCJcbiAgW3N0eWxlLi0tYWlhLW9wdGlvbi1lbnRlci1kZWxheV09XCIoZW50ZXJEZWxheSA/PyAwKSArICdtcydcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1oaWdobGlnaHRlZF09XCJpc0hpZ2hsaWdodGVkICYmICFsb2FkaW5nXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tdGFwcGFibGVdPVwib3B0aW9uLmlzX3RhcHBhYmxlXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tbm9uLXRhcHBhYmxlXT1cIiFvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1wcmVzc2VkXT1cInByZXNzZWRcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1zY3JvbGwtaGludF09XCJzY3JvbGxIaW50XCJcbiAgW2F0dHIudGFiaW5kZXhdPVwibG9hZGluZyB8fCAhb3B0aW9uLmlzX3RhcHBhYmxlID8gLTEgOiAwXCJcbiAgKGNsaWNrKT1cIm9uU2VsZWN0KClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1jb250ZW50XCI+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaWNvbkh0bWxcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pY29uXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbaW5uZXJIVE1MXT1cImljb25IdG1sXCJcbiAgICA+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnRhZ1wiIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGFnXCI+e3sgb3B0aW9uLnRhZyB9fTwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG4iXX0=
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsV0FBVyxFQUVYLHFCQUFxQixHQUN0QixNQUFNLHFDQUFxQyxDQUFDOzs7QUFFN0M7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBVUgsTUFBTSxPQUFPLHVCQUF1QjtJQVRwQztRQVdXLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDhFQUE4RTtRQUNyRSxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLG9IQUFvSDtRQUMzRyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDJGQUEyRjtRQUNsRixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDhGQUE4RjtRQUNyRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUzVCOzs7O1dBSUc7UUFDSCxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUVkLFdBQU0sR0FBRyxJQUFJLFlBQVks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QUFqQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBmb3JtYXRPcHRpb25Db3VudCxcbiAgb3B0aW9uSW1hZ2VTcmMsXG4gIG9wdGlvbkxhYmVsLFxuICB0eXBlIFN1Z2dlc3Rpb25PcHRpb24sXG4gIHNhbml0aXplT3B0aW9uSWNvblN2Zyxcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5cbi8qKlxuICogSW50ZXJuYWwgc2luZ2xlLW9wdGlvbiBjZWxsIHVzZWQgaW5zaWRlIHRoZSBzdWdnZXN0aW9uIGdyaWQuIE1pcnJvcnNcbiAqIGBwYWNrYWdlcy9yZWFjdC9zcmMvY29tcG9uZW50cy9TdWdnZXN0aW9uSXRlbS50c3hgLiBIYW5kbGVzOlxuICpcbiAqIC0gVGFwcGFibGUgdnMgbm9uLXRhcHBhYmxlIGN1cnNvciArIGhvdmVyIHN0eWxpbmdcbiAqIC0gUHJlc3NlZC1zdGF0ZSBjb21wcmVzcyBhbmltYXRpb24gKDE3MG1zLCBzaW5nbGUtZmxpZ2h0KVxuICogLSBLZXlib2FyZCBhY3RpdmF0aW9uIChFbnRlci9TcGFjZSlcbiAqIC0gQVJJQSBgcm9sZT1cIm9wdGlvblwiYCArIGBhcmlhLXNlbGVjdGVkYCBmb3IgdGhlIGxpc3Rib3ggcGF0dGVyblxuICogLSBMb2FkaW5nIHNrZWxldG9uIHdoZW4gYGxvYWRpbmc9dHJ1ZWBcbiAqIC0gU2VydmVyLXByb3ZpZGVkIGljb24gKGBpY29uX3N2Z2ApLCBhbGxvd2xpc3RlZCB0aHJvdWdoIHRoZSBjb3JlJ3NcbiAqICAgYHNhbml0aXplT3B0aW9uSWNvblN2Z2AgYmVmb3JlIGl0IGlzIGJvdW5kIGFzIEhUTUxcbiAqIC0gU2VydmVyLXByb3ZpZGVkIHBpY3R1cmUgKGBpbWFnZV91cmxgKSBhcyBhIHNxdWFyZSB0aHVtYm5haWwgaW4gcGxhY2Ugb2ZcbiAqICAgdGhlIGljb24sIGFuZCBpdGVtIGNvdW50IChgaXRlbV9jb3VudGApIGF0IHRoZSByb3cncyB0cmFpbGluZyBlZGdlXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpbWFnZV91cmxgIGFzIGEgdGh1bWJuYWlsIGJlZm9yZSBpdHMgdGV4dCwgaW4gcGxhY2Ugb2YgdGhlIGljb24uIERlZmF1bHQ6IHRydWUuICovXG4gIEBJbnB1dCgpIHNob3dJbWFnZSA9IHRydWU7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIG9wdGlvbidzIGBpdGVtX2NvdW50YCBhdCB0aGUgcm93J3MgdHJhaWxpbmcgZWRnZS4gRGVmYXVsdDogdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd0NvdW50ID0gdHJ1ZTtcbiAgLyoqIEZhZGUgdGhpcyBvcHRpb24ncyB0ZXh0IHRvd2FyZCBpdHMgYm90dG9tIGVkZ2UgKGxhc3QgdmlzaWJsZSByb3cgb2YgYSBzY3JvbGxhYmxlIGdyaWQpLiAqL1xuICBASW5wdXQoKSBzY3JvbGxIaW50ID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTdGFydCBkZWxheSBvZiB0aGlzIHJvdydzIGVudHJhbmNlIGFuaW1hdGlvbiAobXMpIOKAlCBlYWNoIHJvdyByaXNlcyBpbiBhXG4gICAqIGJlYXQgYWZ0ZXIgdGhlIG9uZSBuZWFyZXIgdGhlIGlucHV0LiBDYXB0dXJlZCBvbmNlLCBvbiBmaXJzdCByZW5kZXIsIHNvIGFcbiAgICogbGF0ZXIgY2hhbmdlLWRldGVjdGlvbiBwYXNzIGNhbid0IHJlc3RhcnQgYSByb3cgbWlkLXJpc2UuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgZW50ZXJEZWxheU1zKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5lbnRlckRlbGF5ID09PSBudWxsKSB0aGlzLmVudGVyRGVsYXkgPSB2YWx1ZTtcbiAgfVxuICAvKipcbiAgICogVGhlIGNhcHR1cmVkIGRlbGF5OyBgbnVsbGAgdW50aWwgdGhlIGZpcnN0IGBlbnRlckRlbGF5TXNgIGJpbmRpbmcgbGFuZHMuXG4gICAqIFRoZSB0ZW1wbGF0ZSBiaW5kcyBpdCB0byBgLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5YCAodGhlIGNvcmUnc1xuICAgKiBPUFRJT05fRU5URVJfREVMQVlfVkFSKSwgd2hpY2ggdGhlIHN0eWxlc2hlZXQncyBlbnRyYW5jZSBydWxlIHJlYWRzLlxuICAgKi9cbiAgZW50ZXJEZWxheTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VnZ2VzdGlvbk9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGhpZ2hsaWdodCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcmVzc2VkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIHByZXNzZWRUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaWNvblNvdXJjZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25TYWZlOiBTYWZlSHRtbCB8IG51bGwgPSBudWxsO1xuICAvKiogVGhlIGBzcmNgIHdob3NlIGxvYWQgZmFpbGVkLCBzbyB0aGUgdGlsZSBrZWVwcyBpdHMgcGxhY2Vob2xkZXIgZmlsbCBmb3IgaXQuICovXG4gIHByaXZhdGUgZmFpbGVkU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG9wdGlvbidzIHRleHQuIGBpY29uYCBpcyB0aGUgaWNvbidzIG5hbWUgYW5kIGlzIG5ldmVyIHNob3duIGFzIHRleHQuICovXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBvcHRpb25MYWJlbCh0aGlzLm9wdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHBpY3R1cmUncyBgc3JjYCwgb3IgYG51bGxgIHdoZW4gdGhlIHJvdyBkcmF3cyBub25lOiBpbWFnZXMgb2ZmLCBub1xuICAgKiBgaW1hZ2VfdXJsYCwgb3Igb25lIHRoYXQgaXMgbm90IGFuIGh0dHAocykgVVJMLiBBIHBpY3R1cmUgc3RhbmRzIGluIGZvclxuICAgKiB0aGUgaWNvbiDigJQgYSByb3cgbmV2ZXIgbGVhZHMgd2l0aCB0d28gdmlzdWFscy5cbiAgICovXG4gIGdldCBpbWFnZVNyYygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaG93SW1hZ2UgPyBvcHRpb25JbWFnZVNyYyh0aGlzLm9wdGlvbi5pbWFnZV91cmwpIDogbnVsbDtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpY3R1cmUgZmFpbGVkIHRvIGxvYWQgKHRoZSB0aWxlJ3MgZmlsbCBzdGF5cykuICovXG4gIGdldCBpbWFnZUZhaWxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mYWlsZWRTcmMgIT09IG51bGwgJiYgdGhpcy5mYWlsZWRTcmMgPT09IHRoaXMuaW1hZ2VTcmM7XG4gIH1cblxuICBvbkltYWdlRXJyb3IoKTogdm9pZCB7XG4gICAgdGhpcy5mYWlsZWRTcmMgPSB0aGlzLmltYWdlU3JjO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb3VudCBhcyBwcmludGVkIChcIjEsMjg0XCIpLCBvciBgbnVsbGAgd2hlbiB0aGUgcm93IHNob3dzIG5vbmUuIFRoZVxuICAgKiB1bml0IHdvcmQgYWZ0ZXIgaXQgaXMgdGhlIHN0eWxlc2hlZXQncyAoYC0tYWlhLW9wdGlvbi1jb3VudC11bml0YCkuXG4gICAqL1xuICBnZXQgY291bnRMYWJlbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaG93Q291bnQgPyBmb3JtYXRPcHRpb25Db3VudCh0aGlzLm9wdGlvbi5pdGVtX2NvdW50KSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9wdGlvbidzIGljb24gYXMgYmluZGFibGUgSFRNTCwgb3IgYG51bGxgIHdoZW4gaXQgaGFzIG5vbmUgKG9yIGl0c1xuICAgKiBtYXJrdXAgZmFpbGVkIHRoZSBhbGxvd2xpc3QpLiBBbmd1bGFyJ3Mgb3duIEhUTUwgc2FuaXRpemVyIHN0cmlwcyBgPHN2Zz5gXG4gICAqIHdob2xlc2FsZSwgc28gdGhlIGNvcmUncyBhbGxvd2xpc3RlZCBvdXRwdXQgaXMgbWFya2VkIHRydXN0ZWQgaW5zdGVhZCDigJRcbiAgICogaXQgaXMgbmV2ZXIgdGhlIHNlcnZlcidzIHJhdyBzdHJpbmcuIFJlY29tcHV0ZWQgb25seSB3aGVuIHRoZSBtYXJrdXBcbiAgICogY2hhbmdlczsgdGhlIGdldHRlciBydW5zIG9uIGV2ZXJ5IE9uUHVzaCBjaGVjay5cbiAgICovXG4gIGdldCBpY29uSHRtbCgpOiBTYWZlSHRtbCB8IG51bGwge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc2hvd0ljb24gJiYgIXRoaXMuaW1hZ2VTcmMgPyB0aGlzLm9wdGlvbi5pY29uX3N2ZyA6IHVuZGVmaW5lZDtcbiAgICBpZiAoc3ZnICE9PSB0aGlzLmljb25Tb3VyY2UpIHtcbiAgICAgIHRoaXMuaWNvblNvdXJjZSA9IHN2ZztcbiAgICAgIGNvbnN0IGh0bWwgPSBzdmcgPyBzYW5pdGl6ZU9wdGlvbkljb25Tdmcoc3ZnKSA6IG51bGw7XG4gICAgICB0aGlzLmljb25TYWZlID0gaHRtbCA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaWNvblNhZmU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgfVxuXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlIHx8IHRoaXMucHJlc3NlZCkgcmV0dXJuO1xuICAgIHRoaXMucHJlc3NlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLm9wdGlvbik7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gICAgdGhpcy5wcmVzc2VkVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMTcwKTtcbiAgfVxuXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9uU2VsZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtpZF09XCJpZFwiXG4gIHJvbGU9XCJvcHRpb25cIlxuICBkYXRhLWFpYS1vcHRpb249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pY29uXT1cImljb25IdG1sICYmIG9wdGlvbi5pY29uID8gb3B0aW9uLmljb24gOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtaW1hZ2VdPVwiaW1hZ2VTcmMgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pdGVtLWNvdW50XT1cImNvdW50TGFiZWwgIT09IG51bGwgPyBvcHRpb24uaXRlbV9jb3VudCA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzSGlnaGxpZ2h0ZWRcIlxuICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWl0ZW1cIlxuICBbc3R5bGUuLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5XT1cIihlbnRlckRlbGF5ID8/IDApICsgJ21zJ1wiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLWhpZ2hsaWdodGVkXT1cImlzSGlnaGxpZ2h0ZWQgJiYgIWxvYWRpbmdcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS10YXBwYWJsZV09XCJvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1ub24tdGFwcGFibGVdPVwiIW9wdGlvbi5pc190YXBwYWJsZVwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXByZXNzZWRdPVwicHJlc3NlZFwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXNjcm9sbC1oaW50XT1cInNjcm9sbEhpbnRcIlxuICBbYXR0ci50YWJpbmRleF09XCJsb2FkaW5nIHx8ICFvcHRpb24uaXNfdGFwcGFibGUgPyAtMSA6IDBcIlxuICAoY2xpY2spPVwib25TZWxlY3QoKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8IS0tIFRoZSB0aWxlIGtlZXBzIGEgcGxhY2Vob2xkZXIgZmlsbCB1bmRlciB0aGUgcGljdHVyZSwgc28gYSBzbG93IG9yXG4gICAgICAgICBmYWlsZWQgbG9hZCBsZWF2ZXMgYSBuZXV0cmFsIHNxdWFyZSByYXRoZXIgdGhhbiBhIGdhcC4gVGhlIHBpY3R1cmUgaXNcbiAgICAgICAgIGRlY29yYXRpdmU6IHRoZSB0ZXh0IGlzIHRoZSBvcHRpb24ncyBhY2Nlc3NpYmxlIG5hbWUuIC0tPlxuICAgIDxzcGFuICpuZ0lmPVwiaW1hZ2VTcmMgYXMgc3JjXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pbWFnZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cInNyY1wiXG4gICAgICAgIGFsdD1cIlwiXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgZGVjb2Rpbmc9XCJhc3luY1wiXG4gICAgICAgIHJlZmVycmVycG9saWN5PVwibm8tcmVmZXJyZXJcIlxuICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgIFtoaWRkZW5dPVwiaW1hZ2VGYWlsZWRcIlxuICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaWNvbkh0bWxcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pY29uXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbaW5uZXJIVE1MXT1cImljb25IdG1sXCJcbiAgICA+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnRhZ1wiIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGFnXCI+e3sgb3B0aW9uLnRhZyB9fTwvc3Bhbj5cbiAgICA8IS0tIFBhcnQgb2YgdGhlIHJvdydzIGFjY2Vzc2libGUgbmFtZSwgcmVhZCBhZnRlciB0aGUgb3B0aW9uJ3MgdGV4dC4gLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb3VudExhYmVsICE9PSBudWxsXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1jb3VudFwiPnt7IGNvdW50TGFiZWwgfX08L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuIl19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* are considered part of the package's public contract.
|
|
6
6
|
*/
|
|
7
7
|
// === Submit-result builder (folds skipped params into completed_params) ===
|
|
8
|
-
import { buildSubmitResult as _buildSubmitResult, cellDay as _cellDay, cellIso as _cellIso, DATE_RANGE_META_END as _DATE_RANGE_META_END, DATE_RANGE_META_START as _DATE_RANGE_META_START, dateCellMarks as _dateCellMarks, formatDate as _formatDate, formatDateRange as _formatDateRange, isoDate as _isoDate, monthLabel as _monthLabel, optionLabel as _optionLabel, PRODUCT_PATH_PREFIX as _PRODUCT_PATH_PREFIX, parseDate as _parseDate, parseLooseDate as _parseLooseDate, parseLooseDateRange as _parseLooseDateRange, productFromMatchedItem as _productFromMatchedItem, productsFromCustomFields as _productsFromCustomFields, sanitizeOptionIconSvg as _sanitizeOptionIconSvg, selectedRangeFor as _selectedRangeFor, visibleDateRange as _visibleDateRange, WEEKDAY_LABELS as _WEEKDAY_LABELS, withSkippedParams as _withSkippedParams, } from "@magicx-eng/ai-autocomplete-vanilla";
|
|
8
|
+
import { buildSubmitResult as _buildSubmitResult, cellDay as _cellDay, cellIso as _cellIso, DATE_RANGE_META_END as _DATE_RANGE_META_END, DATE_RANGE_META_START as _DATE_RANGE_META_START, DEFAULT_OPTION_COUNT_UNIT as _DEFAULT_OPTION_COUNT_UNIT, dateCellMarks as _dateCellMarks, formatDate as _formatDate, formatDateRange as _formatDateRange, formatOptionCount as _formatOptionCount, isoDate as _isoDate, monthLabel as _monthLabel, optionCountLabel as _optionCountLabel, optionHasImage as _optionHasImage, optionImageSrc as _optionImageSrc, optionLabel as _optionLabel, PRODUCT_PATH_PREFIX as _PRODUCT_PATH_PREFIX, parseDate as _parseDate, parseLooseDate as _parseLooseDate, parseLooseDateRange as _parseLooseDateRange, productFromMatchedItem as _productFromMatchedItem, productsFromCustomFields as _productsFromCustomFields, sanitizeOptionIconSvg as _sanitizeOptionIconSvg, selectedRangeFor as _selectedRangeFor, visibleDateRange as _visibleDateRange, WEEKDAY_LABELS as _WEEKDAY_LABELS, withSkippedParams as _withSkippedParams, } from "@magicx-eng/ai-autocomplete-vanilla";
|
|
9
9
|
/**
|
|
10
10
|
* Re-exported through local bindings rather than `export ... from`.
|
|
11
11
|
*
|
|
@@ -40,6 +40,13 @@ export const visibleDateRange = _visibleDateRange;
|
|
|
40
40
|
// Option icons, for a custom dropdown that draws `icon_svg` itself.
|
|
41
41
|
export const optionLabel = _optionLabel;
|
|
42
42
|
export const sanitizeOptionIconSvg = _sanitizeOptionIconSvg;
|
|
43
|
+
// Option pictures and counts, for a custom dropdown that draws `image_url`
|
|
44
|
+
// and `item_count` itself.
|
|
45
|
+
export const DEFAULT_OPTION_COUNT_UNIT = _DEFAULT_OPTION_COUNT_UNIT;
|
|
46
|
+
export const formatOptionCount = _formatOptionCount;
|
|
47
|
+
export const optionCountLabel = _optionCountLabel;
|
|
48
|
+
export const optionHasImage = _optionHasImage;
|
|
49
|
+
export const optionImageSrc = _optionImageSrc;
|
|
43
50
|
// Product strip helpers, for a custom strip fed from `customFields$`.
|
|
44
51
|
export const PRODUCT_PATH_PREFIX = _PRODUCT_PATH_PREFIX;
|
|
45
52
|
export const productFromMatchedItem = _productFromMatchedItem;
|
|
@@ -54,4 +61,4 @@ export { AIAutocompleteDropdownComponent } from "./lib/ai-autocomplete-dropdown"
|
|
|
54
61
|
export { AIAutocompleteController } from "./lib/controller";
|
|
55
62
|
// === Tier 2: Input binder + ControlValueAccessor ===
|
|
56
63
|
export { AIAutocompleteInputDirective } from "./lib/input";
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBa0NILDZFQUE2RTtBQUM3RSxPQUFPLEVBQ0wsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxxQkFBcUIsSUFBSSxzQkFBc0IsRUFDL0MsYUFBYSxJQUFJLGNBQWMsRUFDL0IsVUFBVSxJQUFJLFdBQVcsRUFDekIsZUFBZSxJQUFJLGdCQUFnQixFQUNuQyxPQUFPLElBQUksUUFBUSxFQUNuQixVQUFVLElBQUksV0FBVyxFQUN6QixXQUFXLElBQUksWUFBWSxFQUMzQixtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0MsU0FBUyxJQUFJLFVBQVUsRUFDdkIsY0FBYyxJQUFJLGVBQWUsRUFDakMsbUJBQW1CLElBQUksb0JBQW9CLEVBQzNDLHNCQUFzQixJQUFJLHVCQUF1QixFQUNqRCx3QkFBd0IsSUFBSSx5QkFBeUIsRUFDckQscUJBQXFCLElBQUksc0JBQXNCLEVBQy9DLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFDckMsY0FBYyxJQUFJLGVBQWUsRUFDakMsaUJBQWlCLElBQUksa0JBQWtCLEdBQ3hDLE1BQU0scUNBQXFDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCx3RUFBd0U7QUFDeEUseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5Qyx3RUFBd0U7QUFDeEUsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQUM7QUFDbEUsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakYsb0RBQW9EO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgc3VyZmFjZSBmb3IgQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLWFuZ3VsYXIuXG4gKlxuICogUG9wdWxhdGVkIGluY3JlbWVudGFsbHkgYXMgZmVhdHVyZXMgbGFuZC4gT25seSBzeW1ib2xzIHJlLWV4cG9ydGVkIGhlcmVcbiAqIGFyZSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHBhY2thZ2UncyBwdWJsaWMgY29udHJhY3QuXG4gKi9cblxuLy8gPT09IFJlLWV4cG9ydGVkIHdpcmUgdHlwZXMgPT09XG5leHBvcnQgdHlwZSB7XG4gIEFjY2Vzc1Rva2VuQ29uZmlnLFxuICBBY2Nlc3NUb2tlblJlc3VsdCxcbiAgQVBJQ29uZmlnLFxuICBBUElLZXlDb25maWcsXG4gIEFwcGVhcmFuY2VNb2RlLFxuICBBdXRvY29tcGxldGVSZXN1bHQsXG4gIENvbXBsZXRlZFBhcmFtLFxuICBDb21wbGV0ZWRQYXJhbVN0YXRlLFxuICBDdXN0b21GaWVsZHNSZXBvcnQsXG4gIERhdGVNb250aFZpZXcsXG4gIERhdGVSYW5nZSxcbiAgRXhwcmVzc2VkRmlsdGVyLFxuICBGaWx0ZXJPcCxcbiAgRm9ybWF0VHlwZSxcbiAgSWRlbnRpZmllZFBhcmFtLFxuICBJZGVudGlmaWVkUGFyYW1TdGF0ZSxcbiAgTWF0Y2hlZEl0ZW0sXG4gIE1hdGNoZWRJdGVtcyxcbiAgT3B0aW9uT3ZlcnJpZGVzLFxuICBQcm9kdWN0LFxuICBQcm9kdWN0c0NvbmZpZyxcbiAgUHJvZHVjdHNMYXlvdXQsXG4gIFNlZ21lbnQsXG4gIFNraXBwZWRQYXJhbVN0YXRlLFxuICBTdWJtaXRSZXN1bHRFeHRyYXMsXG4gIFN1Z2dlc3Rpb24sXG4gIFN1Z2dlc3Rpb25PcHRpb24sXG4gIFRhc2tLaW5kLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLy8gPT09IFN1Ym1pdC1yZXN1bHQgYnVpbGRlciAoZm9sZHMgc2tpcHBlZCBwYXJhbXMgaW50byBjb21wbGV0ZWRfcGFyYW1zKSA9PT1cbmltcG9ydCB7XG4gIGJ1aWxkU3VibWl0UmVzdWx0IGFzIF9idWlsZFN1Ym1pdFJlc3VsdCxcbiAgY2VsbERheSBhcyBfY2VsbERheSxcbiAgY2VsbElzbyBhcyBfY2VsbElzbyxcbiAgREFURV9SQU5HRV9NRVRBX0VORCBhcyBfREFURV9SQU5HRV9NRVRBX0VORCxcbiAgREFURV9SQU5HRV9NRVRBX1NUQVJUIGFzIF9EQVRFX1JBTkdFX01FVEFfU1RBUlQsXG4gIGRhdGVDZWxsTWFya3MgYXMgX2RhdGVDZWxsTWFya3MsXG4gIGZvcm1hdERhdGUgYXMgX2Zvcm1hdERhdGUsXG4gIGZvcm1hdERhdGVSYW5nZSBhcyBfZm9ybWF0RGF0ZVJhbmdlLFxuICBpc29EYXRlIGFzIF9pc29EYXRlLFxuICBtb250aExhYmVsIGFzIF9tb250aExhYmVsLFxuICBvcHRpb25MYWJlbCBhcyBfb3B0aW9uTGFiZWwsXG4gIFBST0RVQ1RfUEFUSF9QUkVGSVggYXMgX1BST0RVQ1RfUEFUSF9QUkVGSVgsXG4gIHBhcnNlRGF0ZSBhcyBfcGFyc2VEYXRlLFxuICBwYXJzZUxvb3NlRGF0ZSBhcyBfcGFyc2VMb29zZURhdGUsXG4gIHBhcnNlTG9vc2VEYXRlUmFuZ2UgYXMgX3BhcnNlTG9vc2VEYXRlUmFuZ2UsXG4gIHByb2R1Y3RGcm9tTWF0Y2hlZEl0ZW0gYXMgX3Byb2R1Y3RGcm9tTWF0Y2hlZEl0ZW0sXG4gIHByb2R1Y3RzRnJvbUN1c3RvbUZpZWxkcyBhcyBfcHJvZHVjdHNGcm9tQ3VzdG9tRmllbGRzLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcgYXMgX3Nhbml0aXplT3B0aW9uSWNvblN2ZyxcbiAgc2VsZWN0ZWRSYW5nZUZvciBhcyBfc2VsZWN0ZWRSYW5nZUZvcixcbiAgdmlzaWJsZURhdGVSYW5nZSBhcyBfdmlzaWJsZURhdGVSYW5nZSxcbiAgV0VFS0RBWV9MQUJFTFMgYXMgX1dFRUtEQVlfTEFCRUxTLFxuICB3aXRoU2tpcHBlZFBhcmFtcyBhcyBfd2l0aFNraXBwZWRQYXJhbXMsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIFJlLWV4cG9ydGVkIHRocm91Z2ggbG9jYWwgYmluZGluZ3MgcmF0aGVyIHRoYW4gYGV4cG9ydCAuLi4gZnJvbWAuXG4gKlxuICogbmctcGFja2FncidzIGZsYXQgYnVuZGxlcyBkcm9wIGEgYmFyZSBgZXhwb3J0IHsgeCB9IGZyb20gXCI8ZXh0ZXJuYWw+XCJgOiB0aGVcbiAqIG5hbWUgc3Vydml2ZXMgaW4gdGhlIGdlbmVyYXRlZCBgLmQudHNgLCBzbyBjb25zdW1lciBjb2RlIHR5cGVjaGVja3MsIGJ1dCB0aGVcbiAqIHN5bWJvbCBpcyBhYnNlbnQgZnJvbSBgZmVzbTIwMjBgIOKAlCB0aGUgZW50cnkgcG9pbnQgdGhlIGBleHBvcnRzYCBtYXAgcmVzb2x2ZXNcbiAqIGJ5IGRlZmF1bHQg4oCUIGFuZCBpcyBgdW5kZWZpbmVkYCBhdCBydW50aW1lLiBCaW5kaW5nIHRvIGEgbG9jYWwgY29uc3QgZm9yY2VzXG4gKiBpdCBpbnRvIHRoZSBidW5kbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZFN1Ym1pdFJlc3VsdCA9IF9idWlsZFN1Ym1pdFJlc3VsdDtcbmV4cG9ydCBjb25zdCB3aXRoU2tpcHBlZFBhcmFtcyA9IF93aXRoU2tpcHBlZFBhcmFtcztcbi8vIERhdGUgaGVscGVycywgZm9yIHR1cm5pbmcgYSBjb21taXR0ZWQgZGF0ZSBiYWNrIGludG8gYSBgRGF0ZWAgYW5kIGZvclxuLy8gcmVuZGVyaW5nIGEgY3VzdG9tIGNhbGVuZGFyIGluIFRpZXIgMy5cbmV4cG9ydCBjb25zdCBjZWxsRGF5ID0gX2NlbGxEYXk7XG5leHBvcnQgY29uc3QgY2VsbElzbyA9IF9jZWxsSXNvO1xuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGUgPSBfZm9ybWF0RGF0ZTtcbmV4cG9ydCBjb25zdCBpc29EYXRlID0gX2lzb0RhdGU7XG5leHBvcnQgY29uc3QgbW9udGhMYWJlbCA9IF9tb250aExhYmVsO1xuZXhwb3J0IGNvbnN0IHBhcnNlRGF0ZSA9IF9wYXJzZURhdGU7XG5leHBvcnQgY29uc3QgcGFyc2VMb29zZURhdGUgPSBfcGFyc2VMb29zZURhdGU7XG5leHBvcnQgY29uc3QgV0VFS0RBWV9MQUJFTFMgPSBfV0VFS0RBWV9MQUJFTFM7XG4vLyBSYW5nZSBoZWxwZXJzLCBmb3IgYSBjdXN0b20gY2FsZW5kYXIgdGhhdCBhbnN3ZXJzIGEgc3BhbiBpbiB0d28gdGFwcy5cbi8vIFRoZSB0d28gbWV0YWRhdGEga2V5cyBhcmUgd2hhdCBhIGNvbW1pdHRlZCByYW5nZSByZWNvcmRzIGl0cyBlbmRzIHVuZGVyLCBzb1xuLy8gYSBjb25zdW1lciByZWFkaW5nIHRoZW0gYmFjayBuZXZlciBoYXJkY29kZXMgdGhlIHN0cmluZ3MuXG5leHBvcnQgY29uc3QgREFURV9SQU5HRV9NRVRBX0VORCA9IF9EQVRFX1JBTkdFX01FVEFfRU5EO1xuZXhwb3J0IGNvbnN0IERBVEVfUkFOR0VfTUVUQV9TVEFSVCA9IF9EQVRFX1JBTkdFX01FVEFfU1RBUlQ7XG5leHBvcnQgY29uc3QgZGF0ZUNlbGxNYXJrcyA9IF9kYXRlQ2VsbE1hcmtzO1xuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGVSYW5nZSA9IF9mb3JtYXREYXRlUmFuZ2U7XG5leHBvcnQgY29uc3QgcGFyc2VMb29zZURhdGVSYW5nZSA9IF9wYXJzZUxvb3NlRGF0ZVJhbmdlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdGVkUmFuZ2VGb3IgPSBfc2VsZWN0ZWRSYW5nZUZvcjtcbmV4cG9ydCBjb25zdCB2aXNpYmxlRGF0ZVJhbmdlID0gX3Zpc2libGVEYXRlUmFuZ2U7XG4vLyBPcHRpb24gaWNvbnMsIGZvciBhIGN1c3RvbSBkcm9wZG93biB0aGF0IGRyYXdzIGBpY29uX3N2Z2AgaXRzZWxmLlxuZXhwb3J0IGNvbnN0IG9wdGlvbkxhYmVsID0gX29wdGlvbkxhYmVsO1xuZXhwb3J0IGNvbnN0IHNhbml0aXplT3B0aW9uSWNvblN2ZyA9IF9zYW5pdGl6ZU9wdGlvbkljb25Tdmc7XG4vLyBQcm9kdWN0IHN0cmlwIGhlbHBlcnMsIGZvciBhIGN1c3RvbSBzdHJpcCBmZWQgZnJvbSBgY3VzdG9tRmllbGRzJGAuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9QQVRIX1BSRUZJWCA9IF9QUk9EVUNUX1BBVEhfUFJFRklYO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RGcm9tTWF0Y2hlZEl0ZW0gPSBfcHJvZHVjdEZyb21NYXRjaGVkSXRlbTtcbmV4cG9ydCBjb25zdCBwcm9kdWN0c0Zyb21DdXN0b21GaWVsZHMgPSBfcHJvZHVjdHNGcm9tQ3VzdG9tRmllbGRzO1xuLy8gPT09IFRpZXIgMTogRnVsbCBjb21wb25lbnQgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2xpYi9haS1hdXRvY29tcGxldGVcIjtcbi8vID09PSBDb252ZW5pZW5jZSBOZ01vZHVsZSA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSBcIi4vbGliL2FpLWF1dG9jb21wbGV0ZS5tb2R1bGVcIjtcbi8vID09PSBUaWVyIDI6IERyb3Bkb3duIGNvbXBvbmVudCA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tIFwiLi9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duXCI7XG4vLyA9PT0gVGllciAyOiBDb250cm9sbGVyIChoZWFkbGVzcyBsb2dpYyBjbGFzcykgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi9saWIvY29udHJvbGxlclwiO1xuLy8gPT09IFRpZXIgMjogSW5wdXQgYmluZGVyICsgQ29udHJvbFZhbHVlQWNjZXNzb3IgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlIH0gZnJvbSBcIi4vbGliL2lucHV0XCI7XG4vLyA9PT0gQW5ndWxhci1zcGVjaWZpYyBwdWJsaWMgdHlwZXMgPT09XG5leHBvcnQgdHlwZSB7XG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMsXG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlLFxuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUsXG4gIEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZSxcbn0gZnJvbSBcIi4vbGliL3NoYXJlZC90eXBlc1wiO1xuIl19
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBa0NILDZFQUE2RTtBQUM3RSxPQUFPLEVBQ0wsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLE9BQU8sSUFBSSxRQUFRLEVBQ25CLE9BQU8sSUFBSSxRQUFRLEVBQ25CLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxxQkFBcUIsSUFBSSxzQkFBc0IsRUFDL0MseUJBQXlCLElBQUksMEJBQTBCLEVBQ3ZELGFBQWEsSUFBSSxjQUFjLEVBQy9CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLE9BQU8sSUFBSSxRQUFRLEVBQ25CLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxjQUFjLElBQUksZUFBZSxFQUNqQyxjQUFjLElBQUksZUFBZSxFQUNqQyxXQUFXLElBQUksWUFBWSxFQUMzQixtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0MsU0FBUyxJQUFJLFVBQVUsRUFDdkIsY0FBYyxJQUFJLGVBQWUsRUFDakMsbUJBQW1CLElBQUksb0JBQW9CLEVBQzNDLHNCQUFzQixJQUFJLHVCQUF1QixFQUNqRCx3QkFBd0IsSUFBSSx5QkFBeUIsRUFDckQscUJBQXFCLElBQUksc0JBQXNCLEVBQy9DLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFDckMsY0FBYyxJQUFJLGVBQWUsRUFDakMsaUJBQWlCLElBQUksa0JBQWtCLEdBQ3hDLE1BQU0scUNBQXFDLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUNwRCx3RUFBd0U7QUFDeEUseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUN0QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5Qyx3RUFBd0U7QUFDeEUsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUNsRCxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCwyRUFBMkU7QUFDM0UsMkJBQTJCO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLDBCQUEwQixDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBQ2xELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQztBQUM5QyxzRUFBc0U7QUFDdEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsdUJBQXVCLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQUM7QUFDbEUsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakYsb0RBQW9EO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgc3VyZmFjZSBmb3IgQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLWFuZ3VsYXIuXG4gKlxuICogUG9wdWxhdGVkIGluY3JlbWVudGFsbHkgYXMgZmVhdHVyZXMgbGFuZC4gT25seSBzeW1ib2xzIHJlLWV4cG9ydGVkIGhlcmVcbiAqIGFyZSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHBhY2thZ2UncyBwdWJsaWMgY29udHJhY3QuXG4gKi9cblxuLy8gPT09IFJlLWV4cG9ydGVkIHdpcmUgdHlwZXMgPT09XG5leHBvcnQgdHlwZSB7XG4gIEFjY2Vzc1Rva2VuQ29uZmlnLFxuICBBY2Nlc3NUb2tlblJlc3VsdCxcbiAgQVBJQ29uZmlnLFxuICBBUElLZXlDb25maWcsXG4gIEFwcGVhcmFuY2VNb2RlLFxuICBBdXRvY29tcGxldGVSZXN1bHQsXG4gIENvbXBsZXRlZFBhcmFtLFxuICBDb21wbGV0ZWRQYXJhbVN0YXRlLFxuICBDdXN0b21GaWVsZHNSZXBvcnQsXG4gIERhdGVNb250aFZpZXcsXG4gIERhdGVSYW5nZSxcbiAgRXhwcmVzc2VkRmlsdGVyLFxuICBGaWx0ZXJPcCxcbiAgRm9ybWF0VHlwZSxcbiAgSWRlbnRpZmllZFBhcmFtLFxuICBJZGVudGlmaWVkUGFyYW1TdGF0ZSxcbiAgTWF0Y2hlZEl0ZW0sXG4gIE1hdGNoZWRJdGVtcyxcbiAgT3B0aW9uT3ZlcnJpZGVzLFxuICBQcm9kdWN0LFxuICBQcm9kdWN0c0NvbmZpZyxcbiAgUHJvZHVjdHNMYXlvdXQsXG4gIFNlZ21lbnQsXG4gIFNraXBwZWRQYXJhbVN0YXRlLFxuICBTdWJtaXRSZXN1bHRFeHRyYXMsXG4gIFN1Z2dlc3Rpb24sXG4gIFN1Z2dlc3Rpb25PcHRpb24sXG4gIFRhc2tLaW5kLFxufSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLy8gPT09IFN1Ym1pdC1yZXN1bHQgYnVpbGRlciAoZm9sZHMgc2tpcHBlZCBwYXJhbXMgaW50byBjb21wbGV0ZWRfcGFyYW1zKSA9PT1cbmltcG9ydCB7XG4gIGJ1aWxkU3VibWl0UmVzdWx0IGFzIF9idWlsZFN1Ym1pdFJlc3VsdCxcbiAgY2VsbERheSBhcyBfY2VsbERheSxcbiAgY2VsbElzbyBhcyBfY2VsbElzbyxcbiAgREFURV9SQU5HRV9NRVRBX0VORCBhcyBfREFURV9SQU5HRV9NRVRBX0VORCxcbiAgREFURV9SQU5HRV9NRVRBX1NUQVJUIGFzIF9EQVRFX1JBTkdFX01FVEFfU1RBUlQsXG4gIERFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQgYXMgX0RFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQsXG4gIGRhdGVDZWxsTWFya3MgYXMgX2RhdGVDZWxsTWFya3MsXG4gIGZvcm1hdERhdGUgYXMgX2Zvcm1hdERhdGUsXG4gIGZvcm1hdERhdGVSYW5nZSBhcyBfZm9ybWF0RGF0ZVJhbmdlLFxuICBmb3JtYXRPcHRpb25Db3VudCBhcyBfZm9ybWF0T3B0aW9uQ291bnQsXG4gIGlzb0RhdGUgYXMgX2lzb0RhdGUsXG4gIG1vbnRoTGFiZWwgYXMgX21vbnRoTGFiZWwsXG4gIG9wdGlvbkNvdW50TGFiZWwgYXMgX29wdGlvbkNvdW50TGFiZWwsXG4gIG9wdGlvbkhhc0ltYWdlIGFzIF9vcHRpb25IYXNJbWFnZSxcbiAgb3B0aW9uSW1hZ2VTcmMgYXMgX29wdGlvbkltYWdlU3JjLFxuICBvcHRpb25MYWJlbCBhcyBfb3B0aW9uTGFiZWwsXG4gIFBST0RVQ1RfUEFUSF9QUkVGSVggYXMgX1BST0RVQ1RfUEFUSF9QUkVGSVgsXG4gIHBhcnNlRGF0ZSBhcyBfcGFyc2VEYXRlLFxuICBwYXJzZUxvb3NlRGF0ZSBhcyBfcGFyc2VMb29zZURhdGUsXG4gIHBhcnNlTG9vc2VEYXRlUmFuZ2UgYXMgX3BhcnNlTG9vc2VEYXRlUmFuZ2UsXG4gIHByb2R1Y3RGcm9tTWF0Y2hlZEl0ZW0gYXMgX3Byb2R1Y3RGcm9tTWF0Y2hlZEl0ZW0sXG4gIHByb2R1Y3RzRnJvbUN1c3RvbUZpZWxkcyBhcyBfcHJvZHVjdHNGcm9tQ3VzdG9tRmllbGRzLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcgYXMgX3Nhbml0aXplT3B0aW9uSWNvblN2ZyxcbiAgc2VsZWN0ZWRSYW5nZUZvciBhcyBfc2VsZWN0ZWRSYW5nZUZvcixcbiAgdmlzaWJsZURhdGVSYW5nZSBhcyBfdmlzaWJsZURhdGVSYW5nZSxcbiAgV0VFS0RBWV9MQUJFTFMgYXMgX1dFRUtEQVlfTEFCRUxTLFxuICB3aXRoU2tpcHBlZFBhcmFtcyBhcyBfd2l0aFNraXBwZWRQYXJhbXMsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIFJlLWV4cG9ydGVkIHRocm91Z2ggbG9jYWwgYmluZGluZ3MgcmF0aGVyIHRoYW4gYGV4cG9ydCAuLi4gZnJvbWAuXG4gKlxuICogbmctcGFja2FncidzIGZsYXQgYnVuZGxlcyBkcm9wIGEgYmFyZSBgZXhwb3J0IHsgeCB9IGZyb20gXCI8ZXh0ZXJuYWw+XCJgOiB0aGVcbiAqIG5hbWUgc3Vydml2ZXMgaW4gdGhlIGdlbmVyYXRlZCBgLmQudHNgLCBzbyBjb25zdW1lciBjb2RlIHR5cGVjaGVja3MsIGJ1dCB0aGVcbiAqIHN5bWJvbCBpcyBhYnNlbnQgZnJvbSBgZmVzbTIwMjBgIOKAlCB0aGUgZW50cnkgcG9pbnQgdGhlIGBleHBvcnRzYCBtYXAgcmVzb2x2ZXNcbiAqIGJ5IGRlZmF1bHQg4oCUIGFuZCBpcyBgdW5kZWZpbmVkYCBhdCBydW50aW1lLiBCaW5kaW5nIHRvIGEgbG9jYWwgY29uc3QgZm9yY2VzXG4gKiBpdCBpbnRvIHRoZSBidW5kbGUuXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZFN1Ym1pdFJlc3VsdCA9IF9idWlsZFN1Ym1pdFJlc3VsdDtcbmV4cG9ydCBjb25zdCB3aXRoU2tpcHBlZFBhcmFtcyA9IF93aXRoU2tpcHBlZFBhcmFtcztcbi8vIERhdGUgaGVscGVycywgZm9yIHR1cm5pbmcgYSBjb21taXR0ZWQgZGF0ZSBiYWNrIGludG8gYSBgRGF0ZWAgYW5kIGZvclxuLy8gcmVuZGVyaW5nIGEgY3VzdG9tIGNhbGVuZGFyIGluIFRpZXIgMy5cbmV4cG9ydCBjb25zdCBjZWxsRGF5ID0gX2NlbGxEYXk7XG5leHBvcnQgY29uc3QgY2VsbElzbyA9IF9jZWxsSXNvO1xuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGUgPSBfZm9ybWF0RGF0ZTtcbmV4cG9ydCBjb25zdCBpc29EYXRlID0gX2lzb0RhdGU7XG5leHBvcnQgY29uc3QgbW9udGhMYWJlbCA9IF9tb250aExhYmVsO1xuZXhwb3J0IGNvbnN0IHBhcnNlRGF0ZSA9IF9wYXJzZURhdGU7XG5leHBvcnQgY29uc3QgcGFyc2VMb29zZURhdGUgPSBfcGFyc2VMb29zZURhdGU7XG5leHBvcnQgY29uc3QgV0VFS0RBWV9MQUJFTFMgPSBfV0VFS0RBWV9MQUJFTFM7XG4vLyBSYW5nZSBoZWxwZXJzLCBmb3IgYSBjdXN0b20gY2FsZW5kYXIgdGhhdCBhbnN3ZXJzIGEgc3BhbiBpbiB0d28gdGFwcy5cbi8vIFRoZSB0d28gbWV0YWRhdGEga2V5cyBhcmUgd2hhdCBhIGNvbW1pdHRlZCByYW5nZSByZWNvcmRzIGl0cyBlbmRzIHVuZGVyLCBzb1xuLy8gYSBjb25zdW1lciByZWFkaW5nIHRoZW0gYmFjayBuZXZlciBoYXJkY29kZXMgdGhlIHN0cmluZ3MuXG5leHBvcnQgY29uc3QgREFURV9SQU5HRV9NRVRBX0VORCA9IF9EQVRFX1JBTkdFX01FVEFfRU5EO1xuZXhwb3J0IGNvbnN0IERBVEVfUkFOR0VfTUVUQV9TVEFSVCA9IF9EQVRFX1JBTkdFX01FVEFfU1RBUlQ7XG5leHBvcnQgY29uc3QgZGF0ZUNlbGxNYXJrcyA9IF9kYXRlQ2VsbE1hcmtzO1xuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGVSYW5nZSA9IF9mb3JtYXREYXRlUmFuZ2U7XG5leHBvcnQgY29uc3QgcGFyc2VMb29zZURhdGVSYW5nZSA9IF9wYXJzZUxvb3NlRGF0ZVJhbmdlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdGVkUmFuZ2VGb3IgPSBfc2VsZWN0ZWRSYW5nZUZvcjtcbmV4cG9ydCBjb25zdCB2aXNpYmxlRGF0ZVJhbmdlID0gX3Zpc2libGVEYXRlUmFuZ2U7XG4vLyBPcHRpb24gaWNvbnMsIGZvciBhIGN1c3RvbSBkcm9wZG93biB0aGF0IGRyYXdzIGBpY29uX3N2Z2AgaXRzZWxmLlxuZXhwb3J0IGNvbnN0IG9wdGlvbkxhYmVsID0gX29wdGlvbkxhYmVsO1xuZXhwb3J0IGNvbnN0IHNhbml0aXplT3B0aW9uSWNvblN2ZyA9IF9zYW5pdGl6ZU9wdGlvbkljb25Tdmc7XG4vLyBPcHRpb24gcGljdHVyZXMgYW5kIGNvdW50cywgZm9yIGEgY3VzdG9tIGRyb3Bkb3duIHRoYXQgZHJhd3MgYGltYWdlX3VybGBcbi8vIGFuZCBgaXRlbV9jb3VudGAgaXRzZWxmLlxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BUSU9OX0NPVU5UX1VOSVQgPSBfREVGQVVMVF9PUFRJT05fQ09VTlRfVU5JVDtcbmV4cG9ydCBjb25zdCBmb3JtYXRPcHRpb25Db3VudCA9IF9mb3JtYXRPcHRpb25Db3VudDtcbmV4cG9ydCBjb25zdCBvcHRpb25Db3VudExhYmVsID0gX29wdGlvbkNvdW50TGFiZWw7XG5leHBvcnQgY29uc3Qgb3B0aW9uSGFzSW1hZ2UgPSBfb3B0aW9uSGFzSW1hZ2U7XG5leHBvcnQgY29uc3Qgb3B0aW9uSW1hZ2VTcmMgPSBfb3B0aW9uSW1hZ2VTcmM7XG4vLyBQcm9kdWN0IHN0cmlwIGhlbHBlcnMsIGZvciBhIGN1c3RvbSBzdHJpcCBmZWQgZnJvbSBgY3VzdG9tRmllbGRzJGAuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9QQVRIX1BSRUZJWCA9IF9QUk9EVUNUX1BBVEhfUFJFRklYO1xuZXhwb3J0IGNvbnN0IHByb2R1Y3RGcm9tTWF0Y2hlZEl0ZW0gPSBfcHJvZHVjdEZyb21NYXRjaGVkSXRlbTtcbmV4cG9ydCBjb25zdCBwcm9kdWN0c0Zyb21DdXN0b21GaWVsZHMgPSBfcHJvZHVjdHNGcm9tQ3VzdG9tRmllbGRzO1xuLy8gPT09IFRpZXIgMTogRnVsbCBjb21wb25lbnQgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2xpYi9haS1hdXRvY29tcGxldGVcIjtcbi8vID09PSBDb252ZW5pZW5jZSBOZ01vZHVsZSA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSBcIi4vbGliL2FpLWF1dG9jb21wbGV0ZS5tb2R1bGVcIjtcbi8vID09PSBUaWVyIDI6IERyb3Bkb3duIGNvbXBvbmVudCA9PT1cbmV4cG9ydCB7IEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tIFwiLi9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duXCI7XG4vLyA9PT0gVGllciAyOiBDb250cm9sbGVyIChoZWFkbGVzcyBsb2dpYyBjbGFzcykgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXIgfSBmcm9tIFwiLi9saWIvY29udHJvbGxlclwiO1xuLy8gPT09IFRpZXIgMjogSW5wdXQgYmluZGVyICsgQ29udHJvbFZhbHVlQWNjZXNzb3IgPT09XG5leHBvcnQgeyBBSUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlIH0gZnJvbSBcIi4vbGliL2lucHV0XCI7XG4vLyA9PT0gQW5ndWxhci1zcGVjaWZpYyBwdWJsaWMgdHlwZXMgPT09XG5leHBvcnQgdHlwZSB7XG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlck9wdGlvbnMsXG4gIEFJQXV0b2NvbXBsZXRlQ29udHJvbGxlclN0YXRlLFxuICBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXJVcGRhdGUsXG4gIEFJQXV0b2NvbXBsZXRlRHJvcGRvd25TdGF0ZSxcbn0gZnJvbSBcIi4vbGliL3NoYXJlZC90eXBlc1wiO1xuIl19
|