@firestitch/filter 18.2.115 → 18.2.116
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.
|
@@ -12,4 +12,4 @@ import { RangeItem } from '../models/items/range-item';
|
|
|
12
12
|
import { SelectItem } from '../models/items/select-item';
|
|
13
13
|
import { TextItem } from '../models/items/text-item';
|
|
14
14
|
import { WeekItem } from '../models/items/week-item';
|
|
15
|
-
export declare function createFilterItem(item: IFilterConfigItem, filter: FilterComponent):
|
|
15
|
+
export declare function createFilterItem(item: IFilterConfigItem, filter: FilterComponent): SelectItem | ChipsItem | RangeItem | DateRangeItem | DateTimeRangeItem | DateItem | WeekItem | DateTimeItem | AutocompleteItem | AutocompleteChipsItem | CheckboxItem | TextItem;
|
|
@@ -287,8 +287,10 @@ export class FsFilterChipsComponent {
|
|
|
287
287
|
.filter((item) => !item.primary && item.visible && !item.secondaryVisible));
|
|
288
288
|
}
|
|
289
289
|
_updateClearItems() {
|
|
290
|
+
const visibleItems = this.items.filter((item) => item.visible);
|
|
291
|
+
const onlyKeyword = visibleItems.length === 1 && visibleItems[0].type === ItemType.Keyword;
|
|
290
292
|
this.clearFiltersVisible
|
|
291
|
-
.set(this.items
|
|
293
|
+
.set(!onlyKeyword && this.items
|
|
292
294
|
.some((item) => item.clearable && item.hasValue && item.visible));
|
|
293
295
|
}
|
|
294
296
|
_initHasSecondaryValue() {
|
|
@@ -316,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
316
318
|
type: ViewChildren,
|
|
317
319
|
args: [FsChipComponent]
|
|
318
320
|
}] } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItY2hpcHMvZmlsdGVyLWNoaXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItY2hpcHMvZmlsdGVyLWNoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBa0IsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEssT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBcUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRixPQUFPLEVB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Qiw4QkFDcEIsZUFBZSw4QkFDZixXQUFXOzs0RkFJRixzQkFBc0I7a0JBZmxDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCw0QkFBNEI7cUJBQzdCOzhCQUtNLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBPbkluaXQsIFF1ZXJ5TGlzdCwgU3RhdGljUHJvdmlkZXIsIFZpZXdDaGlsZHJlbiwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzQ2hpcENvbXBvbmVudCwgRnNDaGlwTW9kdWxlLCBGc0NoaXBTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY2hpcCc7XG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IEZzU2VsZWN0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0YnV0dG9uJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBkZWxheSwgbWVyZ2UsIHNraXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgRklMVEVSX0RSQVdFUl9EQVRBIH0gZnJvbSAnLi4vLi4vaW5qZWN0b3JzJztcbmltcG9ydCB7IElGaWx0ZXJDb25maWdJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgU2F2ZWRGaWx0ZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRmlsdGVyQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbHRlci1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVySXRlbURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci1pdGVtLWRpYWxvZyc7XG5pbXBvcnQgeyBGc0ZpbHRlclNhdmVkRmlsdGVyTWFuYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2F2ZWQtZmlsdGVyL3NhdmVkLWZpbHRlci1tYW5hZ2Uvc2F2ZWQtZmlsdGVyLW1hbmFnZS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbHRlci1jaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItY2hpcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgRnNDaGlwTW9kdWxlLFxuICAgIEZzU2VsZWN0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGc0NoaXBTZWxlY3RUcmlnZ2VyRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbHRlckNoaXBzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkcmVuKEZzQ2hpcENvbXBvbmVudCkgXG4gIHB1YmxpYyBjaGlwczogUXVlcnlMaXN0PEZzQ2hpcENvbXBvbmVudD47XG5cbiAgcHVibGljIEl0ZW1UeXBlID0gSXRlbVR5cGU7XG4gIHB1YmxpYyBzZWNvbmRhcnlJdGVtczogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10gPSBbXTtcbiAgcHVibGljIG1vcmVGaWx0ZXJJdGVtcyA9IHNpZ25hbDxCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXT4oW10pO1xuICBwdWJsaWMgY2xlYXJGaWx0ZXJzVmlzaWJsZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyQ29udHJvbGxlciA9IGluamVjdChGaWx0ZXJDb250cm9sbGVyKTtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHByaXZhdGUgX21lc3NhZ2UgPSBpbmplY3QoRnNNZXNzYWdlKTtcbiAgcHJpdmF0ZSBfc2F2ZWRGaWx0ZXJDb250cm9sbGVyID0gaW5qZWN0KFNhdmVkRmlsdGVyQ29udHJvbGxlcik7XG4gIHByaXZhdGUgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBfaGFzU2Vjb25kYXJ5VmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIGdldCBpdGVtcygpOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNvbnRyb2xsZXIuaXRlbXM7XG4gIH1cblxuICBwdWJsaWMgYWRkRmlsdGVyKGl0ZW06IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPikge1xuICAgIC8vIEZvciBjaGVja2JveCBpdGVtcywgc2V0IHRvIGNoZWNrZWQgd2hlbiBhZGRpbmcgZnJvbSBcIk1vcmUgZmlsdGVyc1wiXG4gICAgaWYgKGl0ZW0uaXNUeXBlQ2hlY2tib3ggJiYgIWl0ZW0uaGFzVmFsdWUpIHtcbiAgICAgIGl0ZW0uc2V0VmFsdWUodHJ1ZSk7XG4gICAgfVxuICAgIFxuICAgIGl0ZW0uc2Vjb25kYXJ5U2hvdygpO1xuXG4gICAgLy8gRG9uJ3Qgb3BlbiBvdmVybGF5IGZvciBzZWNvbmRhcnkgY2hlY2tib3ggaXRlbXNcbiAgICBpZiAoaXRlbS5pc1R5cGVDaGVja2JveCAmJiAhaXRlbS5wcmltYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGlwcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgZGVsYXkoMTAwKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW5DaGlwKGl0ZW0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNTZWNvbmRhcnlWYWx1ZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc1NlY29uZGFyeVZhbHVlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2F2ZWRGaWx0ZXJDb250cm9sbGVyKCk6IFNhdmVkRmlsdGVyQ29udHJvbGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2Vjb25kYXJ5VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNvbnRyb2xsZXIuaXRlbXNcbiAgICAgIC5zb21lKChpdGVtKSA9PiBpdGVtLmhhc1ZhbHVlICYmIGl0ZW0udmlzaWJsZSAmJiAhaXRlbS5wcmltYXJ5KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbml0U2Vjb25kYXJ5SXRlbXMoKTtcbiAgICB0aGlzLl9pbml0SGFzU2Vjb25kYXJ5VmFsdWUoKTtcbiAgICB0aGlzLl9pbml0TW9yZUZpbHRlckl0ZW1zKCk7XG4gICAgdGhpcy5faW5pdENsZWFyRmlsdGVyc1Zpc2libGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLl9maWx0ZXJDb250cm9sbGVyLml0ZW1zXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNsZWFyYWJsZSlcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmKCFpdGVtLnNlY29uZGFyeSkge1xuICAgICAgICAgIGl0ZW0uc2Vjb25kYXJ5SGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0uY2xlYXIoZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9maWx0ZXJDb250cm9sbGVyLmNoYW5nZSgpO1xuICAgIHRoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlci5zZXRBY3RpdmVGaWx0ZXIobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQ2hpcENsaWNrKGl0ZW06IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPiwgbmFtZTogc3RyaW5nID0gbnVsbCkge1xuICAgIC8vIEZvciBzZWNvbmRhcnkgY2hlY2tib3ggaXRlbXMsIGRvbid0IG9wZW4gb3ZlcmxheSAtIGNsZWFyaW5nIGlzIGRvbmUgdmlhIHJlbW92ZSBidXR0b25cbiAgICBpZiAoaXRlbS5pc1R5cGVDaGVja2JveCAmJiAhaXRlbS5wcmltYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuQ2hpcChpdGVtLCBuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQ2hpcChpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4sIG5hbWU6IHN0cmluZyA9IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZygnW0ZpbHRlckNoaXBzXSBvcGVuQ2hpcCcsIGl0ZW0ubmFtZSwgJ3R5cGU6JywgaXRlbS50eXBlLCAnZXhpc3RpbmdPdmVybGF5OicsICEhdGhpcy5fb3ZlcmxheVJlZik7XG4gICAgdGhpcy5fZGVzdHJveU92ZXJsYXkoKTtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWZpbHRlci1pdGVtPVwiJHtpdGVtLm5hbWV9XCJdYCk7XG5cbiAgICBjb25zdCBwb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICBvZmZzZXRYOiAwLFxuICAgICAgICBvZmZzZXRZOiBlbC5vZmZzZXRIZWlnaHQgKyAyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuX292ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhlbClcbiAgICAgIC53aXRoUG9zaXRpb25zKHBvc2l0aW9ucyk7XG4gICAgXG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdmcy1zaWRlbmF2LW1lbnUtb3ZlcmxheS1wYW5lJyxcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fZGVzdHJveU92ZXJsYXkoKTtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICkuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgIH0pLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICkuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl9hdHRhY2hDb250YWluZXIodGhpcy5fb3ZlcmxheVJlZiwgaXRlbSwgbmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmVzdGVkRWxlbWVudChlbDogYW55LCBjbGFzc05hbWU6IHN0cmluZykge1xuICAgIGlmKGVsKSB7XG4gICAgICBpZihlbC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSkge1xuICAgICAgICByZXR1cm4gZWw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmdldE5lc3RlZEVsZW1lbnQoZWwucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBcbiAgcHVibGljIHNhdmVBY3RpdmVGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyXG4gICAgICAuc2F2ZSh0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIuYWN0aXZlRmlsdGVyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKGBTYXZlZCAke3RoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlci5zaW5ndWxhckxhYmVsfWApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTYXZlZEZpbHRlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIuY3JlYXRlKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2VcbiAgICAgICAgICAgIC5zdWNjZXNzKGBDcmVhdGVkICR7dGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyLnNpbmd1bGFyTGFiZWx9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNhdmVBcygpOiB2b2lkIHtcbiAgICB0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXJcbiAgICAgIC5zYXZlQXMoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKGBTYXZlZCAke3RoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlci5zaW5ndWxhckxhYmVsfWApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfSBcblxuICBwdWJsaWMgbWFuYWdlU2F2ZWRGaWx0ZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1xuICAgICAgLm9wZW4oRnNGaWx0ZXJTYXZlZEZpbHRlck1hbmFnZUNvbXBvbmVudCwge1xuICAgICAgICBpbmplY3RvcjogdGhpcy5faW5qZWN0b3IsXG4gICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2UsXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBfZGVzdHJveU92ZXJsYXkoKSB7XG4gICAgaWYodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgY29uc29sZS5sb2coJ1tGaWx0ZXJDaGlwc10gX2Rlc3Ryb3lPdmVybGF5IC0gZGlzcG9zaW5nIGV4aXN0aW5nIG92ZXJsYXknKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKTtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gb3ZlcmxheSBtYXkgYWxyZWFkeSBiZSBkaXNwb3NlZCBieSBCYXNlSXRlbUNvbXBvbmVudC5jbG9zZSgpXG4gICAgICB9XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2hpcChcbiAgICBpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4sIFxuICAgIGNoaXA6IHsgbmFtZT86IHN0cmluZywgdmFsdWU6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9LFxuICAgIGV2ZW50PzogeyBldmVudDogTW91c2VFdmVudDsgZGF0YTogYW55IH0gfCBFdmVudCxcbiAgKSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBjb25zdCBtb3VzZUV2ZW50ID0gJ2V2ZW50JyBpbiBldmVudCA/IGV2ZW50LmV2ZW50IDogZXZlbnQ7XG4gICAgICBtb3VzZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGlmKCFpdGVtLnNlY29uZGFyeSkge1xuICAgICAgaXRlbS5zZWNvbmRhcnlIaWRlKCk7XG4gICAgfVxuXG4gICAgaWYoY2hpcC5uYW1lKSB7XG4gICAgICBpdGVtLmNsZWFyQnlOYW1lKGNoaXAubmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW0uY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4pIHtcbiAgICBpdGVtLnNlY29uZGFyeUhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRTZWNvbmRhcnlJdGVtcygpIHtcbiAgICB0aGlzLl91cGRhdGVTZWNvbmRhcnlJdGVtcygpO1xuXG4gICAgbWVyZ2UoXG4gICAgICAuLi50aGlzLml0ZW1zXG4gICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjY3VtLCBcbiAgICAgICAgICAgIGl0ZW0uaGFzVmFsdWUkXG4gICAgICAgICAgICAgIC5waXBlKHNraXAoMSkpLFxuICAgICAgICAgICAgaXRlbS52aXNpYmxlJFxuICAgICAgICAgICAgICAucGlwZShza2lwKDEpKSxcbiAgICAgICAgICBdO1xuICAgICAgICB9LCBbXSksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlU2Vjb25kYXJ5SXRlbXMoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNlY29uZGFyeUl0ZW1zKCkge1xuICAgIHRoaXMuc2Vjb25kYXJ5SXRlbXMgPSB0aGlzLml0ZW1zXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgIGlmICghaXRlbS5hbGxvd1NlY29uZGFyeSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFeGNsdWRlIGNoZWNrYm94IGl0ZW1zIHdpdGhvdXQgdmFsdWVzIGZyb20gc2Vjb25kYXJ5IGZpbHRlcnNcbiAgICAgICAgaWYgKGl0ZW0uaXNUeXBlQ2hlY2tib3ggJiYgIWl0ZW0uaGFzVmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoQ29udGFpbmVyKG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsIGl0ZW06IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPiwgbmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcihpdGVtLCBuYW1lKTtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKEZpbHRlckl0ZW1EaWFsb2dDb21wb25lbnQsIHVuZGVmaW5lZCwgaW5qZWN0b3IpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoPEZpbHRlckl0ZW1EaWFsb2dDb21wb25lbnQ+KGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3IoaXRlbTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+LCBhdXRvZm9jdXNOYW1lOiBzdHJpbmcpOiBJbmplY3RvciB7XG4gICAgY29uc3QgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW1xuICAgICAgeyBwcm92aWRlOiBGSUxURVJfRFJBV0VSX0RBVEEsIHVzZVZhbHVlOiB7IGl0ZW0sIGF1dG9mb2N1c05hbWUsIG92ZXJsYXlSZWY6IHRoaXMuX292ZXJsYXlSZWYgfSB9LFxuICAgIF07XG4gIFxuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzLFxuICAgICAgcGFyZW50OiB0aGlzLl9pbmplY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRNb3JlRmlsdGVySXRlbXMoKSB7XG4gICAgbWVyZ2UoXG4gICAgICAuLi50aGlzLml0ZW1zXG4gICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjY3VtLCBcbiAgICAgICAgICAgIGl0ZW0udmlzaWJsZSRcbiAgICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSksXG4gICAgICAgICAgICBpdGVtLnNlY29uZGFyeVZpc2libGUkXG4gICAgICAgICAgICAgIC5waXBlKHNraXAoMSkpLFxuICAgICAgICAgIF07XG4gICAgICAgIH0sIFtdKSxcbiAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl91cGRhdGVNb3JlRmlsdGVySXRlbXMoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX3VwZGF0ZU1vcmVGaWx0ZXJJdGVtcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENsZWFyRmlsdGVyc1Zpc2libGUoKSB7XG4gICAgbWVyZ2UoXG4gICAgICAuLi50aGlzLml0ZW1zXG4gICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjY3VtLCBcbiAgICAgICAgICAgIGl0ZW0udmlzaWJsZSRcbiAgICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSksXG4gICAgICAgICAgICBpdGVtLmhhc1ZhbHVlJFxuICAgICAgICAgICAgICAucGlwZShza2lwKDEpKSxcbiAgICAgICAgICBdO1xuICAgICAgICB9LCBbXSksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlQ2xlYXJJdGVtcygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fdXBkYXRlQ2xlYXJJdGVtcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTW9yZUZpbHRlckl0ZW1zKCkge1xuICAgIHRoaXMubW9yZUZpbHRlckl0ZW1zXG4gICAgICAuc2V0KHRoaXMuaXRlbXNcbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0ucHJpbWFyeSAmJiBpdGVtLnZpc2libGUgJiYgIWl0ZW0uc2Vjb25kYXJ5VmlzaWJsZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2xlYXJJdGVtcygpIHtcbiAgICB0aGlzLmNsZWFyRmlsdGVyc1Zpc2libGVcbiAgICAgIC5zZXQodGhpcy5pdGVtc1xuICAgICAgICAuc29tZSgoaXRlbSkgPT4gaXRlbS5jbGVhcmFibGUgJiYgaXRlbS5oYXNWYWx1ZSAmJiBpdGVtLnZpc2libGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRIYXNTZWNvbmRhcnlWYWx1ZSgpIHtcbiAgICB0aGlzLl9oYXNTZWNvbmRhcnlWYWx1ZSQubmV4dCh0aGlzLmhhc1NlY29uZGFyeVZhbHVlKTtcblxuICAgIHRoaXMuX2ZpbHRlckNvbnRyb2xsZXIuY2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5faGFzU2Vjb25kYXJ5VmFsdWUkLm5leHQodGhpcy5oYXNTZWNvbmRhcnlWYWx1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxufVxuIiwiQGlmIChpdGVtcy5sZW5ndGggIT09IDApIHtcbiAgQGZvciAoaXRlbSBvZiBzZWNvbmRhcnlJdGVtczsgdHJhY2sgaXRlbS5uYW1lKSB7XG4gICAgQGlmICgoaXRlbS52aXNpYmxlJCB8IGFzeW5jKSkge1xuICAgICAgQGlmICgoaXRlbS5oYXNWYWx1ZSQgfCBhc3luYykpIHtcbiAgICAgICAgQGZvciAoY2hpcCBvZiBpdGVtLmNoaXBzJCB8IGFzeW5jOyB0cmFjayBjaGlwLmxhYmVsKSB7XG4gICAgICAgICAgPGZzLWNoaXBcbiAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItY2hpcCBzZWxlY3RlZFwiXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjZGRkJ1wiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtZmlsdGVyLWl0ZW1dPVwiaXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgW291dGxpbmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcENsaWNrKGl0ZW0sIGNoaXAubmFtZSlcIj5cbiAgICAgICAgICAgIEBpZiAoY2hpcC52YWx1ZSkge1xuICAgICAgICAgICAgICB7eyBjaGlwLmxhYmVsIH19OlxuICAgICAgICAgICAgICA8YT5cbiAgICAgICAgICAgICAgICB7eyBjaGlwLnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICB7eyBjaGlwLmxhYmVsIH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgZnNDaGlwU3VmZml4XG4gICAgICAgICAgICAgIFtpY29uXT1cIidjYW5jZWxfY2lyY2xlX291dGxpbmUnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNoaXAoaXRlbSwgY2hpcCwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L2ZzLWNoaXA+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAoKGl0ZW0ubm90VmFsdWUkIHwgYXN5bmMpICYmIChpdGVtLnNlY29uZGFyeVZpc2libGUkIHwgYXN5bmMpKSB7XG4gICAgICAgIDxmcy1jaGlwXG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlci1jaGlwXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtZmlsdGVyLWl0ZW1dPVwiaXRlbS5uYW1lXCJcbiAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI2RkZCdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBDbGljayhpdGVtKVwiXG4gICAgICAgICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbb3V0bGluZURhc2hdPVwidHJ1ZVwiPlxuICAgICAgICAgIHt7IGl0ZW0ubWVyZ2VkTGFiZWwgfX1cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIGZzQ2hpcFN1ZmZpeFxuICAgICAgICAgICAgW2ljb25dPVwiJ2FkZF9jaXJjbGVfb3V0bGluZSdcIj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2ZzLWNoaXA+XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAobW9yZUZpbHRlckl0ZW1zKCkubGVuZ3RoID4gMCkge1xuICAgIDxmcy1jaGlwLXNlbGVjdFxuICAgICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXG4gICAgICAgIChzZWxlY3QpPVwiYWRkRmlsdGVyKCRldmVudClcIj5cbiAgICAgIDxmcy1jaGlwLXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICBNb3JlIGZpbHRlcnNcbiAgICAgIDwvZnMtY2hpcC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgbW9yZUZpbHRlckl0ZW1zKCk7IHRyYWNrIGl0ZW0ubmFtZSkge1xuICAgICAgICA8ZnMtY2hpcC1zZWxlY3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAge3sgaXRlbS5tZXJnZWRMYWJlbCB9fVxuICAgICAgICA8L2ZzLWNoaXAtc2VsZWN0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L2ZzLWNoaXAtc2VsZWN0PlxuICB9XG4gIEBpZiAoc2F2ZWRGaWx0ZXJDb250cm9sbGVyLmVuYWJsZWQpIHtcbiAgICA8ZnMtY2hpcC1zZWxlY3QgW291dGxpbmVkXT1cInRydWVcIj5cbiAgICAgIDxmcy1jaGlwLXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICB7eyAoc2F2ZWRGaWx0ZXJDb250cm9sbGVyLmFjdGl2ZUZpbHRlciQgfCBhc3luYykgPyBzYXZlZEZpbHRlckNvbnRyb2xsZXIuc2luZ3VsYXJMYWJlbCArICc6ICcgKyAoc2F2ZWRGaWx0ZXJDb250cm9sbGVyLmFjdGl2ZUZpbHRlciQgfCBhc3luYykubmFtZSA6IHNhdmVkRmlsdGVyQ29udHJvbGxlci5wbHVyYWxMYWJlbCB9fVxuICAgICAgPC9mcy1jaGlwLXNlbGVjdC10cmlnZ2VyPlxuICAgICAgQGlmIChzYXZlZEZpbHRlckNvbnRyb2xsZXIuYWN0aXZlRmlsdGVyJCB8IGFzeW5jKSB7XG4gICAgICAgIDxmcy1jaGlwLXNlbGVjdC1vcHRpb24gKGNsaWNrKT1cInNhdmVBY3RpdmVGaWx0ZXIoKVwiPlxuICAgICAgICAgIFVwZGF0ZSBmaWx0ZXJzXG4gICAgICAgIDwvZnMtY2hpcC1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICA8ZnMtY2hpcC1zZWxlY3Qtb3B0aW9uIChjbGljayk9XCJzYXZlQXMoKVwiPlxuICAgICAgICAgIFNhdmUgYXMgbmV3XG4gICAgICAgIDwvZnMtY2hpcC1zZWxlY3Qtb3B0aW9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxmcy1jaGlwLXNlbGVjdC1vcHRpb24gKGNsaWNrKT1cImNyZWF0ZVNhdmVkRmlsdGVyKClcIj5cbiAgICAgICAgICBDcmVhdGUgbmV3XG4gICAgICAgIDwvZnMtY2hpcC1zZWxlY3Qtb3B0aW9uPlxuICAgICAgfVxuICAgICAgPGZzLWNoaXAtc2VsZWN0LW9wdGlvbiAoY2xpY2spPVwibWFuYWdlU2F2ZWRGaWx0ZXJzKClcIj5cbiAgICAgICAgVmlldyBhbGxcbiAgICAgIDwvZnMtY2hpcC1zZWxlY3Qtb3B0aW9uPlxuICAgIDwvZnMtY2hpcC1zZWxlY3Q+XG4gIH1cbiAgQGlmIChjbGVhckZpbHRlcnNWaXNpYmxlKCkpIHtcbiAgICA8ZnMtY2hpcFxuICAgICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJjbGVhcigpXCI+XG4gICAgICBDbGVhciBmaWx0ZXJzXG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnNDaGlwU3VmZml4XG4gICAgICAgIFtpY29uXT1cIidjYW5jZWxfY2lyY2xlX291dGxpbmUnXCI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtY2hpcD5cbiAgfVxufSJdfQ==
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItY2hpcHMvZmlsdGVyLWNoaXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItY2hpcHMvZmlsdGVyLWNoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFVLFNBQVMsRUFBa0IsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEssT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBcUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRixPQUFPLEVB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QUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsRUFDRixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzt3R0F4WFUsc0JBQXNCOzRGQUF0QixzQkFBc0IscUdBRW5CLGVBQWUsZ0RDNUMvQiwrakdBNkZDLHV4QkQzREcsU0FBUyw2Q0FDVCxZQUFZLHU4QkFDWixvQkFBb0IsOEJBQ3BCLGVBQWUsOEJBQ2YsV0FBVzs7NEZBSUYsc0JBQXNCO2tCQWZsQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsNEJBQTRCO3FCQUM3Qjs4QkFLTSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25Jbml0LCBRdWVyeUxpc3QsIFN0YXRpY1Byb3ZpZGVyLCBWaWV3Q2hpbGRyZW4sIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0NoaXBDb21wb25lbnQsIEZzQ2hpcE1vZHVsZSwgRnNDaGlwU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NoaXAnO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1NlbGVjdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGJ1dHRvbic7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZGVsYXksIG1lcmdlLCBza2lwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEZJTFRFUl9EUkFXRVJfREFUQSB9IGZyb20gJy4uLy4uL2luamVjdG9ycyc7XG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcbmltcG9ydCB7IFNhdmVkRmlsdGVyQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEZpbHRlckNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWx0ZXItY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlckl0ZW1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItaXRlbS1kaWFsb2cnO1xuaW1wb3J0IHsgRnNGaWx0ZXJTYXZlZEZpbHRlck1hbmFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3NhdmVkLWZpbHRlci9zYXZlZC1maWx0ZXItbWFuYWdlL3NhdmVkLWZpbHRlci1tYW5hZ2UuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1maWx0ZXItY2hpcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWNoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWNoaXBzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXN5bmNQaXBlLFxuICAgIEZzQ2hpcE1vZHVsZSxcbiAgICBGc1NlbGVjdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRnNDaGlwU2VsZWN0VHJpZ2dlckRpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGaWx0ZXJDaGlwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZHJlbihGc0NoaXBDb21wb25lbnQpIFxuICBwdWJsaWMgY2hpcHM6IFF1ZXJ5TGlzdDxGc0NoaXBDb21wb25lbnQ+O1xuXG4gIHB1YmxpYyBJdGVtVHlwZSA9IEl0ZW1UeXBlO1xuICBwdWJsaWMgc2Vjb25kYXJ5SXRlbXM6IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPltdID0gW107XG4gIHB1YmxpYyBtb3JlRmlsdGVySXRlbXMgPSBzaWduYWw8QmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10+KFtdKTtcbiAgcHVibGljIGNsZWFyRmlsdGVyc1Zpc2libGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgX2ZpbHRlckNvbnRyb2xsZXIgPSBpbmplY3QoRmlsdGVyQ29udHJvbGxlcik7XG4gIHByaXZhdGUgX2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KEZzTWVzc2FnZSk7XG4gIHByaXZhdGUgX3NhdmVkRmlsdGVyQ29udHJvbGxlciA9IGluamVjdChTYXZlZEZpbHRlckNvbnRyb2xsZXIpO1xuICBwcml2YXRlIF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgX292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgX2hhc1NlY29uZGFyeVZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250cm9sbGVyLml0ZW1zO1xuICB9XG5cbiAgcHVibGljIGFkZEZpbHRlcihpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4pIHtcbiAgICAvLyBGb3IgY2hlY2tib3ggaXRlbXMsIHNldCB0byBjaGVja2VkIHdoZW4gYWRkaW5nIGZyb20gXCJNb3JlIGZpbHRlcnNcIlxuICAgIGlmIChpdGVtLmlzVHlwZUNoZWNrYm94ICYmICFpdGVtLmhhc1ZhbHVlKSB7XG4gICAgICBpdGVtLnNldFZhbHVlKHRydWUpO1xuICAgIH1cbiAgICBcbiAgICBpdGVtLnNlY29uZGFyeVNob3coKTtcblxuICAgIC8vIERvbid0IG9wZW4gb3ZlcmxheSBmb3Igc2Vjb25kYXJ5IGNoZWNrYm94IGl0ZW1zXG4gICAgaWYgKGl0ZW0uaXNUeXBlQ2hlY2tib3ggJiYgIWl0ZW0ucHJpbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2hpcHMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIGRlbGF5KDEwMCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcGVuQ2hpcChpdGVtKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzU2Vjb25kYXJ5VmFsdWUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNTZWNvbmRhcnlWYWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNhdmVkRmlsdGVyQ29udHJvbGxlcigpOiBTYXZlZEZpbHRlckNvbnRyb2xsZXIge1xuICAgIHJldHVybiB0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NlY29uZGFyeVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250cm9sbGVyLml0ZW1zXG4gICAgICAuc29tZSgoaXRlbSkgPT4gaXRlbS5oYXNWYWx1ZSAmJiBpdGVtLnZpc2libGUgJiYgIWl0ZW0ucHJpbWFyeSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5faW5pdFNlY29uZGFyeUl0ZW1zKCk7XG4gICAgdGhpcy5faW5pdEhhc1NlY29uZGFyeVZhbHVlKCk7XG4gICAgdGhpcy5faW5pdE1vcmVGaWx0ZXJJdGVtcygpO1xuICAgIHRoaXMuX2luaXRDbGVhckZpbHRlcnNWaXNpYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5fZmlsdGVyQ29udHJvbGxlci5pdGVtc1xuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5jbGVhcmFibGUpXG4gICAgICAuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZighaXRlbS5zZWNvbmRhcnkpIHtcbiAgICAgICAgICBpdGVtLnNlY29uZGFyeUhpZGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpdGVtLmNsZWFyKGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fZmlsdGVyQ29udHJvbGxlci5jaGFuZ2UoKTtcbiAgICB0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIuc2V0QWN0aXZlRmlsdGVyKG51bGwpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNoaXBDbGljayhpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4sIG5hbWU6IHN0cmluZyA9IG51bGwpIHtcbiAgICAvLyBGb3Igc2Vjb25kYXJ5IGNoZWNrYm94IGl0ZW1zLCBkb24ndCBvcGVuIG92ZXJsYXkgLSBjbGVhcmluZyBpcyBkb25lIHZpYSByZW1vdmUgYnV0dG9uXG4gICAgaWYgKGl0ZW0uaXNUeXBlQ2hlY2tib3ggJiYgIWl0ZW0ucHJpbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3BlbkNoaXAoaXRlbSwgbmFtZSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkNoaXAoaXRlbTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+LCBuYW1lOiBzdHJpbmcgPSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coJ1tGaWx0ZXJDaGlwc10gb3BlbkNoaXAnLCBpdGVtLm5hbWUsICd0eXBlOicsIGl0ZW0udHlwZSwgJ2V4aXN0aW5nT3ZlcmxheTonLCAhIXRoaXMuX292ZXJsYXlSZWYpO1xuICAgIHRoaXMuX2Rlc3Ryb3lPdmVybGF5KCk7XG4gICAgY29uc3QgZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgIC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1maWx0ZXItaXRlbT1cIiR7aXRlbS5uYW1lfVwiXWApO1xuXG4gICAgY29uc3QgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuICAgICAge1xuICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgb2Zmc2V0WTogZWwub2Zmc2V0SGVpZ2h0ICsgMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8oZWwpXG4gICAgICAud2l0aFBvc2l0aW9ucyhwb3NpdGlvbnMpO1xuICAgIFxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiBzdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwYW5lbENsYXNzOiAnZnMtc2lkZW5hdi1tZW51LW92ZXJsYXktcGFuZScsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3lPdmVybGF5KCk7XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICApLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICApLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fYXR0YWNoQ29udGFpbmVyKHRoaXMuX292ZXJsYXlSZWYsIGl0ZW0sIG5hbWUpO1xuICB9XG5cbiAgcHVibGljIGdldE5lc3RlZEVsZW1lbnQoZWw6IGFueSwgY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICBpZihlbCkge1xuICAgICAgaWYoZWwuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5nZXROZXN0ZWRFbGVtZW50KGVsLnBhcmVudEVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIHB1YmxpYyBzYXZlQWN0aXZlRmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlclxuICAgICAgLnNhdmUodGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyLmFjdGl2ZUZpbHRlcilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcyhgU2F2ZWQgJHt0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIuc2luZ3VsYXJMYWJlbH1gKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU2F2ZWRGaWx0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyLmNyZWF0ZSgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlXG4gICAgICAgICAgICAuc3VjY2VzcyhgQ3JlYXRlZCAke3RoaXMuX3NhdmVkRmlsdGVyQ29udHJvbGxlci5zaW5ndWxhckxhYmVsfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQXMoKTogdm9pZCB7XG4gICAgdGhpcy5fc2F2ZWRGaWx0ZXJDb250cm9sbGVyXG4gICAgICAuc2F2ZUFzKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcyhgU2F2ZWQgJHt0aGlzLl9zYXZlZEZpbHRlckNvbnRyb2xsZXIuc2luZ3VsYXJMYWJlbH1gKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH0gXG5cbiAgcHVibGljIG1hbmFnZVNhdmVkRmlsdGVycygpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2dcbiAgICAgIC5vcGVuKEZzRmlsdGVyU2F2ZWRGaWx0ZXJNYW5hZ2VDb21wb25lbnQsIHtcbiAgICAgICAgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yLFxuICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlLFxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgX2Rlc3Ryb3lPdmVybGF5KCkge1xuICAgIGlmKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdbRmlsdGVyQ2hpcHNdIF9kZXN0cm95T3ZlcmxheSAtIGRpc3Bvc2luZyBleGlzdGluZyBvdmVybGF5Jyk7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIG92ZXJsYXkgbWF5IGFscmVhZHkgYmUgZGlzcG9zZWQgYnkgQmFzZUl0ZW1Db21wb25lbnQuY2xvc2UoKVxuICAgICAgfVxuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUNoaXAoXG4gICAgaXRlbTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+LCBcbiAgICBjaGlwOiB7IG5hbWU/OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSxcbiAgICBldmVudD86IHsgZXZlbnQ6IE1vdXNlRXZlbnQ7IGRhdGE6IGFueSB9IHwgRXZlbnQsXG4gICkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgY29uc3QgbW91c2VFdmVudCA9ICdldmVudCcgaW4gZXZlbnQgPyBldmVudC5ldmVudCA6IGV2ZW50O1xuICAgICAgbW91c2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZighaXRlbS5zZWNvbmRhcnkpIHtcbiAgICAgIGl0ZW0uc2Vjb25kYXJ5SGlkZSgpO1xuICAgIH1cblxuICAgIGlmKGNoaXAubmFtZSkge1xuICAgICAgaXRlbS5jbGVhckJ5TmFtZShjaGlwLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oaXRlbTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+KSB7XG4gICAgaXRlbS5zZWNvbmRhcnlIaWRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0U2Vjb25kYXJ5SXRlbXMoKSB7XG4gICAgdGhpcy5fdXBkYXRlU2Vjb25kYXJ5SXRlbXMoKTtcblxuICAgIG1lcmdlKFxuICAgICAgLi4udGhpcy5pdGVtc1xuICAgICAgICAucmVkdWNlKChhY2N1bSwgaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5hY2N1bSwgXG4gICAgICAgICAgICBpdGVtLmhhc1ZhbHVlJFxuICAgICAgICAgICAgICAucGlwZShza2lwKDEpKSxcbiAgICAgICAgICAgIGl0ZW0udmlzaWJsZSRcbiAgICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSksXG4gICAgICAgICAgXTtcbiAgICAgICAgfSwgW10pLFxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlY29uZGFyeUl0ZW1zKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTZWNvbmRhcnlJdGVtcygpIHtcbiAgICB0aGlzLnNlY29uZGFyeUl0ZW1zID0gdGhpcy5pdGVtc1xuICAgICAgLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoIWl0ZW0uYWxsb3dTZWNvbmRhcnkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXhjbHVkZSBjaGVja2JveCBpdGVtcyB3aXRob3V0IHZhbHVlcyBmcm9tIHNlY29uZGFyeSBmaWx0ZXJzXG4gICAgICAgIGlmIChpdGVtLmlzVHlwZUNoZWNrYm94ICYmICFpdGVtLmhhc1ZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaENvbnRhaW5lcihvdmVybGF5UmVmOiBPdmVybGF5UmVmLCBpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4sIG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3IoaXRlbSwgbmFtZSk7XG4gICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChGaWx0ZXJJdGVtRGlhbG9nQ29tcG9uZW50LCB1bmRlZmluZWQsIGluamVjdG9yKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSBvdmVybGF5UmVmLmF0dGFjaDxGaWx0ZXJJdGVtRGlhbG9nQ29tcG9uZW50Pihjb250YWluZXJQb3J0YWwpO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUluamVjdG9yKGl0ZW06IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPiwgYXV0b2ZvY3VzTmFtZTogc3RyaW5nKTogSW5qZWN0b3Ige1xuICAgIGNvbnN0IHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcbiAgICAgIHsgcHJvdmlkZTogRklMVEVSX0RSQVdFUl9EQVRBLCB1c2VWYWx1ZTogeyBpdGVtLCBhdXRvZm9jdXNOYW1lLCBvdmVybGF5UmVmOiB0aGlzLl9vdmVybGF5UmVmIH0gfSxcbiAgICBdO1xuICBcbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHByb3ZpZGVycyxcbiAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3IsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0TW9yZUZpbHRlckl0ZW1zKCkge1xuICAgIG1lcmdlKFxuICAgICAgLi4udGhpcy5pdGVtc1xuICAgICAgICAucmVkdWNlKChhY2N1bSwgaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5hY2N1bSwgXG4gICAgICAgICAgICBpdGVtLnZpc2libGUkXG4gICAgICAgICAgICAgIC5waXBlKHNraXAoMSkpLFxuICAgICAgICAgICAgaXRlbS5zZWNvbmRhcnlWaXNpYmxlJFxuICAgICAgICAgICAgICAucGlwZShza2lwKDEpKSxcbiAgICAgICAgICBdO1xuICAgICAgICB9LCBbXSksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdXBkYXRlTW9yZUZpbHRlckl0ZW1zKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLl91cGRhdGVNb3JlRmlsdGVySXRlbXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDbGVhckZpbHRlcnNWaXNpYmxlKCkge1xuICAgIG1lcmdlKFxuICAgICAgLi4udGhpcy5pdGVtc1xuICAgICAgICAucmVkdWNlKChhY2N1bSwgaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5hY2N1bSwgXG4gICAgICAgICAgICBpdGVtLnZpc2libGUkXG4gICAgICAgICAgICAgIC5waXBlKHNraXAoMSkpLFxuICAgICAgICAgICAgaXRlbS5oYXNWYWx1ZSRcbiAgICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSksXG4gICAgICAgICAgXTtcbiAgICAgICAgfSwgW10pLFxuICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3VwZGF0ZUNsZWFySXRlbXMoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX3VwZGF0ZUNsZWFySXRlbXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU1vcmVGaWx0ZXJJdGVtcygpIHtcbiAgICB0aGlzLm1vcmVGaWx0ZXJJdGVtc1xuICAgICAgLnNldCh0aGlzLml0ZW1zXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLnByaW1hcnkgJiYgaXRlbS52aXNpYmxlICYmICFpdGVtLnNlY29uZGFyeVZpc2libGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNsZWFySXRlbXMoKSB7XG4gICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmlzaWJsZSk7XG4gICAgY29uc3Qgb25seUtleXdvcmQgPSB2aXNpYmxlSXRlbXMubGVuZ3RoID09PSAxICYmIHZpc2libGVJdGVtc1swXS50eXBlID09PSBJdGVtVHlwZS5LZXl3b3JkO1xuXG4gICAgdGhpcy5jbGVhckZpbHRlcnNWaXNpYmxlXG4gICAgICAuc2V0KCFvbmx5S2V5d29yZCAmJiB0aGlzLml0ZW1zXG4gICAgICAgIC5zb21lKChpdGVtKSA9PiBpdGVtLmNsZWFyYWJsZSAmJiBpdGVtLmhhc1ZhbHVlICYmIGl0ZW0udmlzaWJsZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEhhc1NlY29uZGFyeVZhbHVlKCkge1xuICAgIHRoaXMuX2hhc1NlY29uZGFyeVZhbHVlJC5uZXh0KHRoaXMuaGFzU2Vjb25kYXJ5VmFsdWUpO1xuXG4gICAgdGhpcy5fZmlsdGVyQ29udHJvbGxlci5jaGFuZ2UkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9oYXNTZWNvbmRhcnlWYWx1ZSQubmV4dCh0aGlzLmhhc1NlY29uZGFyeVZhbHVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG59XG4iLCJAaWYgKGl0ZW1zLmxlbmd0aCAhPT0gMCkge1xuICBAZm9yIChpdGVtIG9mIHNlY29uZGFyeUl0ZW1zOyB0cmFjayBpdGVtLm5hbWUpIHtcbiAgICBAaWYgKChpdGVtLnZpc2libGUkIHwgYXN5bmMpKSB7XG4gICAgICBAaWYgKChpdGVtLmhhc1ZhbHVlJCB8IGFzeW5jKSkge1xuICAgICAgICBAZm9yIChjaGlwIG9mIGl0ZW0uY2hpcHMkIHwgYXN5bmM7IHRyYWNrIGNoaXAubGFiZWwpIHtcbiAgICAgICAgICA8ZnMtY2hpcFxuICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1jaGlwIHNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxuICAgICAgICAgICAgICBbYm9yZGVyQ29sb3JdPVwiJyNkZGQnXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1maWx0ZXItaXRlbV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDaGlwQ2xpY2soaXRlbSwgY2hpcC5uYW1lKVwiPlxuICAgICAgICAgICAgQGlmIChjaGlwLnZhbHVlKSB7XG4gICAgICAgICAgICAgIHt7IGNoaXAubGFiZWwgfX06XG4gICAgICAgICAgICAgIDxhPlxuICAgICAgICAgICAgICAgIHt7IGNoaXAudmFsdWUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIHt7IGNoaXAubGFiZWwgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBmc0NoaXBTdWZmaXhcbiAgICAgICAgICAgICAgW2ljb25dPVwiJ2NhbmNlbF9jaXJjbGVfb3V0bGluZSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ2hpcChpdGVtLCBjaGlwLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZnMtY2hpcD5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmICgoaXRlbS5ub3RWYWx1ZSQgfCBhc3luYykgJiYgKGl0ZW0uc2Vjb25kYXJ5VmlzaWJsZSQgfCBhc3luYykpIHtcbiAgICAgICAgPGZzLWNoaXBcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWNoaXBcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1maWx0ZXItaXRlbV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxuICAgICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjZGRkJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcENsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgIFtvdXRsaW5lZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtvdXRsaW5lRGFzaF09XCJ0cnVlXCI+XG4gICAgICAgICAge3sgaXRlbS5tZXJnZWRMYWJlbCB9fVxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgZnNDaGlwU3VmZml4XG4gICAgICAgICAgICBbaWNvbl09XCInYWRkX2NpcmNsZV9vdXRsaW5lJ1wiPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZnMtY2hpcD5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmIChtb3JlRmlsdGVySXRlbXMoKS5sZW5ndGggPiAwKSB7XG4gICAgPGZzLWNoaXAtc2VsZWN0XG4gICAgICAgIFtvdXRsaW5lZF09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhZGRGaWx0ZXIoJGV2ZW50KVwiPlxuICAgICAgPGZzLWNoaXAtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgIE1vcmUgZmlsdGVyc1xuICAgICAgPC9mcy1jaGlwLXNlbGVjdC10cmlnZ2VyPlxuICAgICAgQGZvciAoaXRlbSBvZiBtb3JlRmlsdGVySXRlbXMoKTsgdHJhY2sgaXRlbS5uYW1lKSB7XG4gICAgICAgIDxmcy1jaGlwLXNlbGVjdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICB7eyBpdGVtLm1lcmdlZExhYmVsIH19XG4gICAgICAgIDwvZnMtY2hpcC1zZWxlY3Qtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvZnMtY2hpcC1zZWxlY3Q+XG4gIH1cbiAgQGlmIChzYXZlZEZpbHRlckNvbnRyb2xsZXIuZW5hYmxlZCkge1xuICAgIDxmcy1jaGlwLXNlbGVjdCBbb3V0bGluZWRdPVwidHJ1ZVwiPlxuICAgICAgPGZzLWNoaXAtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgIHt7IChzYXZlZEZpbHRlckNvbnRyb2xsZXIuYWN0aXZlRmlsdGVyJCB8IGFzeW5jKSA/IHNhdmVkRmlsdGVyQ29udHJvbGxlci5zaW5ndWxhckxhYmVsICsgJzogJyArIChzYXZlZEZpbHRlckNvbnRyb2xsZXIuYWN0aXZlRmlsdGVyJCB8IGFzeW5jKS5uYW1lIDogc2F2ZWRGaWx0ZXJDb250cm9sbGVyLnBsdXJhbExhYmVsIH19XG4gICAgICA8L2ZzLWNoaXAtc2VsZWN0LXRyaWdnZXI+XG4gICAgICBAaWYgKHNhdmVkRmlsdGVyQ29udHJvbGxlci5hY3RpdmVGaWx0ZXIkIHwgYXN5bmMpIHtcbiAgICAgICAgPGZzLWNoaXAtc2VsZWN0LW9wdGlvbiAoY2xpY2spPVwic2F2ZUFjdGl2ZUZpbHRlcigpXCI+XG4gICAgICAgICAgVXBkYXRlIGZpbHRlcnNcbiAgICAgICAgPC9mcy1jaGlwLXNlbGVjdC1vcHRpb24+XG4gICAgICAgIDxmcy1jaGlwLXNlbGVjdC1vcHRpb24gKGNsaWNrKT1cInNhdmVBcygpXCI+XG4gICAgICAgICAgU2F2ZSBhcyBuZXdcbiAgICAgICAgPC9mcy1jaGlwLXNlbGVjdC1vcHRpb24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGZzLWNoaXAtc2VsZWN0LW9wdGlvbiAoY2xpY2spPVwiY3JlYXRlU2F2ZWRGaWx0ZXIoKVwiPlxuICAgICAgICAgIENyZWF0ZSBuZXdcbiAgICAgICAgPC9mcy1jaGlwLXNlbGVjdC1vcHRpb24+XG4gICAgICB9XG4gICAgICA8ZnMtY2hpcC1zZWxlY3Qtb3B0aW9uIChjbGljayk9XCJtYW5hZ2VTYXZlZEZpbHRlcnMoKVwiPlxuICAgICAgICBWaWV3IGFsbFxuICAgICAgPC9mcy1jaGlwLXNlbGVjdC1vcHRpb24+XG4gICAgPC9mcy1jaGlwLXNlbGVjdD5cbiAgfVxuICBAaWYgKGNsZWFyRmlsdGVyc1Zpc2libGUoKSkge1xuICAgIDxmcy1jaGlwXG4gICAgICAgIFtvdXRsaW5lZF09XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIj5cbiAgICAgIENsZWFyIGZpbHRlcnNcbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmc0NoaXBTdWZmaXhcbiAgICAgICAgW2ljb25dPVwiJ2NhbmNlbF9jaXJjbGVfb3V0bGluZSdcIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mcy1jaGlwPlxuICB9XG59Il19
|
|
@@ -3672,8 +3672,10 @@ class FsFilterChipsComponent {
|
|
|
3672
3672
|
.filter((item) => !item.primary && item.visible && !item.secondaryVisible));
|
|
3673
3673
|
}
|
|
3674
3674
|
_updateClearItems() {
|
|
3675
|
+
const visibleItems = this.items.filter((item) => item.visible);
|
|
3676
|
+
const onlyKeyword = visibleItems.length === 1 && visibleItems[0].type === ItemType.Keyword;
|
|
3675
3677
|
this.clearFiltersVisible
|
|
3676
|
-
.set(this.items
|
|
3678
|
+
.set(!onlyKeyword && this.items
|
|
3677
3679
|
.some((item) => item.clearable && item.hasValue && item.visible));
|
|
3678
3680
|
}
|
|
3679
3681
|
_initHasSecondaryValue() {
|