i-tech-shared-components 1.1.49 → 1.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/autocomplete-select/autocomplete-select.component.mjs +5 -4
- package/esm2022/lib/components/menu/menu.component.mjs +6 -3
- package/fesm2022/i-tech-shared-components.mjs +9 -5
- package/fesm2022/i-tech-shared-components.mjs.map +1 -1
- package/lib/components/menu/menu.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -61,7 +61,7 @@ export class AutocompleteSelectComponent {
|
|
|
61
61
|
this.emitAction = new EventEmitter();
|
|
62
62
|
this.pending = false;
|
|
63
63
|
this.data = [];
|
|
64
|
-
this.paginationData = { current: 1, last: 0 };
|
|
64
|
+
this.paginationData = { current: 1, last: 0, searchValue: '' };
|
|
65
65
|
this.firstRequest = false;
|
|
66
66
|
this.showPlaceholder = true;
|
|
67
67
|
this.isNeededForRecall = false;
|
|
@@ -126,8 +126,9 @@ export class AutocompleteSelectComponent {
|
|
|
126
126
|
if (fromSearch) {
|
|
127
127
|
this.paginationData.current = 1;
|
|
128
128
|
this.accessToNextRequest = true;
|
|
129
|
+
this.paginationData.searchValue = searchText || '';
|
|
129
130
|
}
|
|
130
|
-
const functionToDo = this.selectConfig.paginate(this.paginationData.current,
|
|
131
|
+
const functionToDo = this.selectConfig.paginate(this.paginationData.current, this.paginationData?.searchValue || '');
|
|
131
132
|
this.requestLoading = true;
|
|
132
133
|
functionToDo?.subscribe((data) => {
|
|
133
134
|
const dataToAdd = ('content' in data) ? data.content : data;
|
|
@@ -374,7 +375,7 @@ export class AutocompleteSelectComponent {
|
|
|
374
375
|
this.pending = true;
|
|
375
376
|
this.paginationData = {
|
|
376
377
|
current: 1,
|
|
377
|
-
last: 0
|
|
378
|
+
last: 0,
|
|
378
379
|
};
|
|
379
380
|
this.accessToNextRequest = true;
|
|
380
381
|
if ((typeof this.selectConfig.paginate) === 'function') {
|
|
@@ -451,4 +452,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
451
452
|
type: HostListener,
|
|
452
453
|
args: ['document:visibilitychange']
|
|
453
454
|
}] } });
|
|
454
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXNlbGVjdC9hdXRvY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hdXRvY29tcGxldGUtc2VsZWN0L2F1dG9jb21wbGV0ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBR0EsWUFBWSxFQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FB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ZSw0RkFDZixtQkFBbUIsZ0tBQ25CLG1CQUFtQix5VEFDbkIsZUFBZSwreENBQ2YsZUFBZSxzTUFDZiwyQkFBMkIsZ0VBRTNCLGdCQUFnQixnUEFDaEIsT0FBTyxzSUFDUCx5QkFBeUIsOERBQ3pCLG1CQUFtQixpSUFDbkIsa0JBQWtCOzs0RkFJVCwyQkFBMkI7a0JBeEJ2QyxTQUFTOytCQUNFLDRCQUE0QixXQUc3Qjt3QkFDUCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsSUFBSTt3QkFDSixLQUFLO3dCQUNMLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZiwyQkFBMkI7d0JBQzNCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixPQUFPO3dCQUNQLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CLGNBQ1csSUFBSTtpRkFHUSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0ksV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFLTyxPQUFPO3NCQUFuQixLQUFLO2dCQW1CRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDbUIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQXNCeEIsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0NoaWxkLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2VsZWN0LCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb25maWdzSW50ZXJmYWNlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvYXV0b2NvbXBsZXRlLWNvbmZpZ3MuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbE5hbWUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IElucHV0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lucHV0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYnV0dG9uLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBHZXRWYWx1ZUJ5S2V5RnJvbU9iamVjdFBpcGUgfSBmcm9tIFwiLi4vLi4vcGlwZXMvZ2V0LXZhbHVlLWJ5LWtleS1mcm9tLW9iamVjdC5waXBlXCI7XG5pbXBvcnQgeyBBcnJheVRvU3RyaW5nUGlwZSB9IGZyb20gXCIuLi8uLi9waXBlcy9hcnJheS10by1zdHJpbmcucGlwZVwiO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZUVycm9yTWVzc2FnZXNQaXBlIH0gZnJvbSBcIi4uLy4uL3BpcGVzL2dlbmVyYXRlLWVycm9yLW1lc3NhZ2VzLnBpcGVcIjtcbmltcG9ydCB7IENsZWFyVmFsdWVDb21wb25lbnQgfSBmcm9tIFwiLi4vY2xlYXItdmFsdWUvY2xlYXItdmFsdWUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpLXRlY2gtYXV0b2NvbXBsZXRlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBNYXRUb29sdGlwLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEdldFZhbHVlQnlLZXlGcm9tT2JqZWN0UGlwZSxcbiAgICBBcnJheVRvU3RyaW5nUGlwZSxcbiAgICBOZ09wdGltaXplZEltYWdlLFxuICAgIE1hdEljb24sXG4gICAgR2VuZXJhdGVFcnJvck1lc3NhZ2VzUGlwZSxcbiAgICBDbGVhclZhbHVlQ29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ21hdFNlbGVjdCcpIG1hdFNlbGVjdCE6IE1hdFNlbGVjdDtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBzZWFyY2hJbnB1dCE6IEVsZW1lbnRSZWY7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgc3VibWl0VmFsdWUhOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZWUgQXV0b2NvbXBsZXRlQ29uZmlnc0ludGVyZmFjZSBmb3IgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGNvbmZpZ3MoZGF0YTogQXV0b2NvbXBsZXRlQ29uZmlnc0ludGVyZmFjZSkge1xuICAgIHRoaXMuc2VsZWN0Q29uZmlnID0gZGF0YTtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKHR5cGVvZiB0aGlzLnNlbGVjdENvbmZpZy5wYWdpbmF0ZSkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh0aGlzLmZpcnN0UmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmdldERhdGEoKTtcbiAgICAgIHRoaXMuZmlyc3RSZXF1ZXN0ID0gdHJ1ZVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSA9IHRoaXMuc2VsZWN0Q29uZmlnLnBhZ2luYXRlO1xuICAgIHRoaXMuZmluZEFuZFNldERlZmF1bHRWYWx1ZUZyb21EYXRhKCk7XG4gIH07XG5cbiAgQElucHV0KCkgZGV0ZWN0Q2hhbmdlcyE6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGVtaXRBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnYWxsU2VsZWN0ZWQnKSBhbGxTZWxlY3RlZCE6IE1hdFNlbGVjdDtcbiAgcGVuZGluZyA9IGZhbHNlO1xuICBkZWZhdWx0VmFsdWUhOiBhbnk7XG4gIGRhdGE6IEFycmF5PGFueT4gPSBbXTtcbiAgcGFnaW5hdGlvbkRhdGE6IGFueSA9IHsgY3VycmVudDogMSwgbGFzdDogMCB9O1xuICBuZ0NvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcbiAgc2VsZWN0Q29uZmlnITogQXV0b2NvbXBsZXRlQ29uZmlnc0ludGVyZmFjZTtcbiAgZmlyc3RSZXF1ZXN0ID0gZmFsc2U7XG4gIHNob3dQbGFjZWhvbGRlciA9IHRydWU7XG4gIGlzTmVlZGVkRm9yUmVjYWxsID0gZmFsc2U7XG4gIHNob3dpbmdWYWx1ZTogYW55O1xuICBzZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uOiBBcnJheTxhbnk+ID0gW107XG4gIHNlYXJjaFRpbWVvdXRJZDogYW55O1xuICB0YWJWaXNpYmlsaXR5ITogYm9vbGVhbjtcbiAgYWNjZXNzVG9OZXh0UmVxdWVzdCA9IHRydWU7XG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIGJsb2NrUmVjYWxsRGVmYXVsdFZhbHVlU2V0dGVyID0gZmFsc2U7XG4gIGJhc2VEYXRhOiBhbnk7XG4gIHJlcXVlc3RMb2FkaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBCdXR0b25UeXBlID0gQnV0dG9uVHlwZTtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp2aXNpYmlsaXR5Y2hhbmdlJylcbiAgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYlZpc2liaWxpdHkgPSAhZG9jdW1lbnQuaGlkZGVuO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2VQYW5lbEFuZFVuc2V0Rm9jdXMoKTtcbiAgICBpZiAoIWRvY3VtZW50LmhpZGRlbikge1xuICAgICAgdGhpcy5pc05lZWRlZEZvclJlY2FsbCA9IHRydWU7XG4gICAgICB0aGlzLnBlbmRpbmcgPSB0cnVlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlXG4gICAgICB9LCA0MDAwKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRTZXJ2aWNlOiBJbnB1dFNlcnZpY2UpIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5wdXRTZXJ2aWNlLmluamVjdE5nQ29udHJvbCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RDb25maWcnXSAmJiB0aGlzLnNlbGVjdENvbmZpZykge1xuICAgICAgaWYgKCh0eXBlb2YgdGhpcy5zZWxlY3RDb25maWcucGFnaW5hdGUpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgICAgIC8vIElmIHdlIGhhdmUgZGF0YSBhbmQgYSB2YWx1ZVxuICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggJiYgbmV3VmFsdWUpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZGVmYXVsdCB2YWx1ZSBkb2Vzbid0IG1hdGNoIHRoZSBuZXcgdmFsdWVcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRWYWx1ZSB8fCB0aGlzLmRlZmF1bHRWYWx1ZS5pZCAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAvLyBSZXNldCB0aGUgYmxvY2sgZmxhZyB0byBhbGxvdyB1cGRhdGluZyB0aGUgdmFsdWVcbiAgICAgICAgICB0aGlzLmJsb2NrUmVjYWxsRGVmYXVsdFZhbHVlU2V0dGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5maW5kQW5kU2V0RGVmYXVsdFZhbHVlRnJvbURhdGEoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSAmJiAhdGhpcy5kYXRhLmxlbmd0aCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdmFsdWUgYnV0IG5vIGRhdGEsIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIGRhdGFcbiAgICAgICAgdGhpcy5ibG9ja1JlY2FsbERlZmF1bHRWYWx1ZVNldHRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzTmVlZGVkRm9yUmVjYWxsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZUNhbGxEYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBoYXJkUmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0RGF0YSgnJywgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRHluYW1pYyByZXF1ZXN0IGZvciBzZWxlY3QgZGF0YS5cbiAgICogQHBhcmFtIHNlYXJjaFRleHQgLSBUaGUgaW5wdXQgdmFsdWUgdG8gc2VhcmNoIG9wdGlvbnMgYnkuXG4gICAqIEBwYXJhbSBmcm9tU2VhcmNoIC0gQWNjZXNzIGZvciBzZWFyY2guXG4gICAqIEByZXR1cm5zIFNlbGVjdCBkYXRhLlxuICAgKi9cbiAgZ2V0RGF0YShzZWFyY2hUZXh0Pzogc3RyaW5nLCBmcm9tU2VhcmNoPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghZnJvbVNlYXJjaCAmJiAhdGhpcy5hY2Nlc3NUb05leHRSZXF1ZXN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVxdWVzdExvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZnJvbVNlYXJjaCkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uRGF0YS5jdXJyZW50ID0gMTtcbiAgICAgIHRoaXMuYWNjZXNzVG9OZXh0UmVxdWVzdCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZnVuY3Rpb25Ub0RvID0gdGhpcy5zZWxlY3RDb25maWcucGFnaW5hdGUodGhpcy5wYWdpbmF0aW9uRGF0YS5jdXJyZW50LCBzZWFyY2hUZXh0KTtcblxuICAgIHRoaXMucmVxdWVzdExvYWRpbmcgPSB0cnVlO1xuICAgIGZ1bmN0aW9uVG9Ebz8uc3Vic2NyaWJlKChkYXRhOiBBcnJheTxhbnk+IHwgYW55KSA9PiB7XG4gICAgICBjb25zdCBkYXRhVG9BZGQgPSAoJ2NvbnRlbnQnIGluIGRhdGEpID8gZGF0YS5jb250ZW50IDogZGF0YTtcblxuICAgICAgaWYgKCdjb250ZW50JyBpbiBkYXRhKSB7XG4gICAgICAgIHRoaXMuYWNjZXNzVG9OZXh0UmVxdWVzdCA9ICFkYXRhLmxhc3QgfHwgKGRhdGEudG90YWxQYWdlcyA+IHRoaXMucGFnaW5hdGlvbkRhdGEuY3VycmVudCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YSA9IChmcm9tU2VhcmNoIHx8IHRoaXMuc2VsZWN0Q29uZmlnPy5ibG9ja1BhZ2luYXRpb24pID8gZGF0YVRvQWRkIDogWy4uLnRoaXMuZGF0YSwgLi4uZGF0YVRvQWRkXTtcbiAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXF1ZXN0TG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICBpZiAoIWRhdGFUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uRGF0YS5sYXN0ID0gdGhpcy5wYWdpbmF0aW9uRGF0YS5jdXJyZW50O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGFnaW5hdGlvbkRhdGEuY3VycmVudCArPSAxO1xuICAgICAgdGhpcy5wYWdpbmF0aW9uRGF0YS5sYXN0ICs9IDE7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5maW5kQW5kU2V0RGVmYXVsdFZhbHVlRnJvbURhdGEoKTtcbiAgICAgIH0sIDEwKVxuICAgIH0sICgpID0+IHtcbiAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXF1ZXN0TG9hZGluZyA9IGZhbHNlO1xuICAgIH0pXG4gIH1cblxuICBmaW5kQW5kU2V0RGVmYXVsdFZhbHVlRnJvbURhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0Q29uZmlnLm11bHRpcGxlKSB7XG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2wudmFsdWUgJiYgdGhpcy5uZ0NvbnRyb2wudmFsdWUubGVuZ3RoID09IDEpIHtcbiAgICAgICAgdGhpcy5zZXRTaG93aW5nVmFsdWUodGhpcy5kYXRhLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IHRoaXMubmdDb250cm9sLnZhbHVlWzBdKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgYWZ0ZXIgbWlncmF0aW5nIGFsbCBzZWxlY3RzXG4gICAgICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIC8vIGlmICghdGhpcy5uZ0NvbnRyb2wudmFsdWUgJiYgIXRoaXMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICAvLyAgICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLm5nQ29udHJvbC52YWx1ZSAmJiAhdGhpcy5kYXRhKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBzZXREZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLmRhdGEuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5uZ0NvbnRyb2wudmFsdWUpO1xuICAgIHRoaXMuYmFzZURhdGEgPSB0aGlzLmRlZmF1bHRWYWx1ZVxuICAgIGlmICghdGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgpXG4gICAgdGhpcy5zZXRTaG93aW5nVmFsdWUodGhpcy5kZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgb3B0aW9uQ2xpY2soc2hvd2luZ0RhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuYmFzZURhdGEgPSBzaG93aW5nRGF0YVxuICAgIGlmICghdGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2V0U2hvd2luZ1ZhbHVlKHNob3dpbmdEYXRhKTtcbiAgICAgIHRoaXMubWF0U2VsZWN0LmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNlYXJjaElucHV0KSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy50b2dnbGVTaG93aW5nRGF0YUluU2VsZWN0ZWRPcHRpb25zTXVsdGlwbGVDYXNlKHNob3dpbmdEYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5wdXRGb2N1c091dCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0U2hvd2luZ1ZhbHVlKHNob3dpbmdEYXRhKTtcbiAgICB0aGlzLnNob3dQbGFjZWhvbGRlciA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlU2hvd2luZ0RhdGFJblNlbGVjdGVkT3B0aW9uc011bHRpcGxlQ2FzZShzaG93aW5nRGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc2hvd2luZ0RhdGFCeUpzb24gPSBKU09OLnN0cmluZ2lmeShzaG93aW5nRGF0YSk7XG4gICAgY29uc3QgaW5kZXhPZkV4aXN0aW5nT3B0aW9uID0gdGhpcy5zZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uLmZpbmRJbmRleChcbiAgICAgIChvcHRpb25WYWx1ZTogYW55KSA9PiBKU09OLnN0cmluZ2lmeShvcHRpb25WYWx1ZSkgPT09IHNob3dpbmdEYXRhQnlKc29uXG4gICAgKVxuICAgIGlmIChpbmRleE9mRXhpc3RpbmdPcHRpb24gPj0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uLnNwbGljZShpbmRleE9mRXhpc3RpbmdPcHRpb24sIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uRm9yTXVsdGlwbGVTZWxlY3Rpb24ucHVzaChzaG93aW5nRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgYWRkTmV3SXRlbUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuaXNOZWVkZWRGb3JSZWNhbGwgPSB0cnVlO1xuICAgIHRoaXMuZW1pdEFjdGlvbi5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGFuZCBzaG93LlxuICAgKiBAcGFyYW0gZGF0YSAtIEV4aXN0aW5nIGNob3NlbiBkYXRhLlxuICAgKi9cbiAgc2V0U2hvd2luZ1ZhbHVlKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUgJiYgdGhpcy5zZWxlY3RDb25maWcuc2VhcmNoKSB7XG4gICAgICBjb25zdCBmdWxsVGV4dDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uLmZvckVhY2goKG9wdGlvbkRhdGE6IGFueSkgPT4ge1xuICAgICAgICBmdWxsVGV4dC5wdXNoKHRoaXMuY29sbGVjdEFuZEdldFNlbGVjdGlvblRvU2hvd0Zvck9uZU9wdGlvbihvcHRpb25EYXRhKSlcbiAgICAgIH0pXG4gICAgICB0aGlzLnNob3dpbmdWYWx1ZSA9IGZ1bGxUZXh0LmpvaW4oJywnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93aW5nVmFsdWUgPSB0aGlzLmNvbGxlY3RBbmRHZXRTZWxlY3Rpb25Ub1Nob3dGb3JPbmVPcHRpb24oZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuYmxvY2tSZWNhbGxEZWZhdWx0VmFsdWVTZXR0ZXIgPSB0cnVlO1xuICB9XG5cbiAgY29sbGVjdEFuZEdldFNlbGVjdGlvblRvU2hvd0Zvck9uZU9wdGlvbihkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBpbmNsdWRlID0gZGF0YTtcbiAgICBsZXQgaW5jbHVkZU9wdGlvbmFsID0gZGF0YTtcblxuICAgIGlmICh0aGlzLnNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5S2V5KSB7XG4gICAgICB0aGlzLnNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5S2V5LmZvckVhY2goKHBhcmFtOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBwYXJhbS5mb3JFYWNoKChrZXk6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaW5jbHVkZSA9IChpbmNsdWRlKSA/IGluY2x1ZGVba2V5XSA6IG51bGw7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmNsdWRlID0gaW5jbHVkZVtwYXJhbV07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAodGhpcy5zZWxlY3RDb25maWcuc2hvd0Z1bGxUZXh0V2l0aE9wdGlvbmFsT25TZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0Q29uZmlnLnZhbHVlVG9TaG93QnlQYXJhbT8uZm9yRWFjaCgocGFyYW06IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpID0+IHtcblxuICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBwYXJhbS5mb3JFYWNoKChrZXk6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICBpbmNsdWRlT3B0aW9uYWwgPSAoaW5jbHVkZU9wdGlvbmFsKSA/IGluY2x1ZGVPcHRpb25hbFtrZXldIDogbnVsbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluY2x1ZGVPcHRpb25hbCA9IGluY2x1ZGVPcHRpb25hbFtwYXJhbV07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBpZiAodGhpcy5zZWxlY3RDb25maWcudmFsdWVUb1Nob3dCeVBhcmFtICYmIHR5cGVvZiBpbmNsdWRlT3B0aW9uYWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaW5jbHVkZSArPSAodGhpcy5zZWxlY3RDb25maWcud2l0aFBhcmFtU3ltYm9sIHx8ICcnKSArIGluY2x1ZGVPcHRpb25hbFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluY2x1ZGU7XG4gIH1cblxuICAvKipcbiAgICogQmxvY2sgYW5vdGhlciBldmVudHMuXG4gICAqIEBwYXJhbSBldmVudCAtIEVsZW1lbnQgY2xpY2sgZXZlbnQuXG4gICAqL1xuICBwcmV2ZW50RGVmYXVsdChldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdENvbmZpZy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gIH1cblxuICByZWdpc3RlclBhbmVsU2Nyb2xsRXZlbnQoZWxlbWVudDogTWF0U2VsZWN0KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0Q29uZmlnLnBhZ2luYXRlT25TY3JvbGwgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFuZWwgPSBlbGVtZW50LnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGV2ZW50OiBhbnkpID0+IHRoaXMubG9hZERhdGFPblNjcm9sbChldmVudCkpO1xuICB9XG5cbiAgbG9hZERhdGFPblNjcm9sbChldmVudDogYW55KSB7XG4gICAgY29uc3QgcG9zID0gKGV2ZW50LnRhcmdldC5zY3JvbGxUb3AgfHwgZXZlbnQudGFyZ2V0LnNjcm9sbFRvcCkgKyBldmVudC50YXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IG1heCA9IGV2ZW50LnRhcmdldC5zY3JvbGxIZWlnaHQ7XG4gICAgaWYgKChwb3MgKyAxKSA+PSBtYXgpIHtcbiAgICAgIGlmICh0aGlzLnBhZ2luYXRpb25EYXRhLmN1cnJlbnQgPT09IHRoaXMucGFnaW5hdGlvbkRhdGEubGFzdCB8fCB0aGlzLnNlbGVjdENvbmZpZy5ibG9ja1BhZ2luYXRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNTZWFyY2hJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcuc2VhcmNoICYmIHRoaXMuc2VhcmNoSW5wdXQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0Rm9jdXNPdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc05lZWRlZEZvclJlY2FsbCA9ICEhdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmNsZWFyVGltZW91dEZvclNlYXJjaCgpO1xuICB9XG5cbiAgcmVzZXRWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG51bGwpO1xuICAgIHRoaXMubmdDb250cm9sLnJlc2V0KG51bGwpO1xuICAgIHRoaXMuaW5wdXRGb2N1c091dCgpO1xuICB9XG5cbiAgZ2V0RGF0YVdpdGhTZWFyY2godmFsdWU6IGFueSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0Rm9yU2VhcmNoKCk7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAxKSB7XG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldERhdGEodmFsdWUsIHRydWUpXG4gICAgICB9LCA4MDApO1xuICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoIDw9IDEgJiYgZXZlbnQua2V5Q29kZSA9PT0gOCkge1xuICAgICAgdGhpcy5nZXREYXRhKHZhbHVlLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNsZWFyVGltZW91dEZvclNlYXJjaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXRJZCk7XG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXRJZCA9IDA7XG4gICAgfVxuICB9XG5cbiAgb3BlblNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcuZGlzYWJsZWQgfHwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93UGxhY2Vob2xkZXIpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Lm9wZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnNob3dQbGFjZWhvbGRlciA9ICF0aGlzLnNob3dQbGFjZWhvbGRlcjtcbiAgICBpZiAoIXRoaXMuc2hvd1BsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLnJlQ2FsbERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLm1hdFNlbGVjdC5jbG9zZSgpO1xuICAgIGlmICh0aGlzLnNlYXJjaElucHV0KSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpXG4gICAgfVxuICB9XG5cbiAgb3BlbmVkQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGlmICh0aGlzLmlzTmVlZGVkRm9yUmVjYWxsKSB7XG4gICAgICAgIHRoaXMucmVDYWxsRGF0YSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0Q29uZmlnLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLnJlQ2FsbERhdGEoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgfVxuXG4gIHJlQ2FsbERhdGEoKTogdm9pZCB7XG4gICAgLy8gVE9ETyByZWZhY3RvciB0aGlzIHBhcnRcbiAgICBpZiAoIXRoaXMuaXNOZWVkZWRGb3JSZWNhbGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kYXRhID0gW107XG4gICAgdGhpcy5wZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnBhZ2luYXRpb25EYXRhID0ge1xuICAgICAgY3VycmVudDogMSxcbiAgICAgIGxhc3Q6IDBcbiAgICB9O1xuICAgIHRoaXMuYWNjZXNzVG9OZXh0UmVxdWVzdCA9IHRydWU7XG4gICAgaWYgKCh0eXBlb2YgdGhpcy5zZWxlY3RDb25maWcucGFnaW5hdGUpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmdldERhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLnNlbGVjdENvbmZpZy5wYWdpbmF0ZTtcbiAgICB9XG4gICAgdGhpcy5pc05lZWRlZEZvclJlY2FsbCA9IGZhbHNlO1xuICB9XG5cbiAgZW1pdFNlbGVjdGlvbkNoYW5nZUFuZENsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGV2ZW50LnZhbHVlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUpIHtcbiAgICAgIGlmICghZXZlbnQudmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnJlc2V0KCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWF0U2VsZWN0LmNsb3NlKCk7XG4gIH1cblxuICAvKlxuICAgKiBPcGVuIG1hdC1zZWxlY3QgYW5kIGZvY3VzIG9uIHNlYXJjaCBvbiBpY29uIGNsaWNrXG4gICAqL1xuICBpY29uQ2xpY2sobWF0U2VsZWN0OiBNYXRTZWxlY3QsIHNlYXJjaElucHV0PzogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIG1hdFNlbGVjdC5vcGVuKCk7XG4gICAgc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICAvKlxuICAqIEN1c3RvbSBlcnJvciBzdGF0ZSBtYXRjaGVyIGZvciBtYXQtc2VsZWN0IHRvIHByb3Blcmx5IHNob3cgZXJyb3Igc3RhdGUgaW4gbWF0LWZvcm0tZmllbGRcbiAgICovXG4gIGN1c3RvbUVycm9yU3RhdGVNYXRjaGVyID0ge1xuICAgIGlzRXJyb3JTdGF0ZTogKGNvbnRyb2w6IGFueSwgZm9ybTogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgdGhpcy5zdWJtaXRWYWx1ZSk7XG4gICAgfVxuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cIm5ldy1tYXQtYXV0b2NvbXBsZXRlXCIgaWQ9XCJtYXRfYXV0b2NvbXBsZXRlXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ21hdC1zZWxlY3Qtd2l0aG91dF9pY29uJzogIXNlbGVjdENvbmZpZy5pY29uVXJsICYmICFzZWxlY3RDb25maWcuYWN0aXZlU3RhdGVJY29uVXJsLFxuICAgICAgICAgICAgJ21hdC1zZWxlY3Qtd2l0aC1zZWFyY2gnOiBzZWxlY3RDb25maWcuc2VhcmNoLFxuICAgICAgICAgICAgJ3dpdGhvdXQtbGFiZWwnOiBzZWxlY3RDb25maWcuaGlkZUxhYmVsLFxuICAgICAgICAgICAgJ2ludmFsaWRfZmllbGQnOiBuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgc3VibWl0VmFsdWUsXG4gICAgICAgICAgICAncmVhZG9ubHktZmllbGQnOiBzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcbiAgICAgICAgIH1cIlxuICAgICBbbWF0VG9vbHRpcF09XCIoc2VsZWN0Q29uZmlnLmhvdmVyICYmICFuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICgoc2VsZWN0Q29uZmlnLmhvdmVyIHx8ICcnKSB8IHRyYW5zbGF0ZSkgOiAnJylcIlxuICAgICBbbWF0VG9vbHRpcENsYXNzXT1cIidtYXQtbWRjLXRvb2x0aXAgYmlnLXRkLW1hdC10b29sdGlwJ1wiXG4gICAgIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ2Fib3ZlJ1wiXG4gICAgICpuZ0lmPVwic2VsZWN0Q29uZmlnICYmIG5nQ29udHJvbFwiPlxuXG4gIDxkaXYgY2xhc3M9XCJ3LTEwMFwiICpuZ0lmPVwiIXNlbGVjdENvbmZpZy5oaWRlTGFiZWxcIj5cbiAgICA8bWF0LWxhYmVsIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAncmVhZG9ubHktY29sb3InIDogc2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkLFxuICAgICAgICAgICdpbnZhbGlkLWxhYmVsLWNvbG9yJzogISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdFZhbHVlKVxuICAgICAgICB9XCI+XG4gICAgICB7eyBzZWxlY3RDb25maWcubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1sYWJlbD5cbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdENvbmZpZy5yZXF1aXJlZFwiIGNsYXNzPVwicmVxdWlyZWQtaW5wdXRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVhZG9ubHktY29sb3InIDogbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWR9XCI+Kjwvc3Bhbj5cbiAgPC9kaXY+XG5cblxuICA8IS0tIFNlYXJjaCBJbnB1dCAtLT5cbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dCB3LTEwMFwiXG4gICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTskZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgW25nQ2xhc3NdPVwieyBoaWRlX2lucHV0X3BsYWNlaG9sZGVyOiBzaG93UGxhY2Vob2xkZXIgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgfVwiXG4gICAgICAgKm5nSWY9XCJzZWxlY3RDb25maWcuc2VhcmNoXCJcbiAgPlxuICAgIDxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICBpZD1cInNlYXJjaElucHV0XCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J3ByLTI1JzogIXNlbGVjdENvbmZpZy5pY29uVXJsfVwiXG4gICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICBbZGlzYWJsZWRdPVwibmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgfHwgc2VsZWN0Q29uZmlnLmhvdmVyXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCB8fCBzZWxlY3RDb25maWcuaG92ZXIpID8gJycgOiAnU2VhcmNoJ1wiXG4gICAgICAgICAgIChmb2N1c291dCk9XCJpbnB1dEZvY3VzT3V0KClcIlxuICAgICAgICAgICAoZm9jdXMpPVwib3BlblNlbGVjdGlvbigpXCJcbiAgICAgICAgICAgKGtleWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgKGtleXVwKT1cImdldERhdGFXaXRoU2VhcmNoKHNlYXJjaElucHV0LnZhbHVlLCRldmVudClcIj5cblxuICAgIDwhLS0gU2VhcmNoIEljb24gLS0+XG4gICAgPHNwYW4gY2xhc3M9XCJzZWFyY2gtaWNvblwiPlxuICAgICAgICAgICAgPGktdGVjaC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cIm1yLTEwXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RDb25maWcuaWNvblByZWZpeCAmJiAhc2hvd1BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgW2ljb25OYW1lXT1cInNlbGVjdENvbmZpZy5pY29uUHJlZml4IHx8ICcnXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdENvbmZpZy5yZWFkT25seSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgIG1hdFByZWZpeFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9pLXRlY2gtaWNvbi1idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBQbGFjZWhvbGRlci9TZWxlY3RlZCBWYWx1ZSBEaXNwbGF5IC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BsYWNlaG9sZGVyICYmIHNlbGVjdENvbmZpZy5zZWFyY2hcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICpuZ0lmPVwiKCFuZ0NvbnRyb2w/LnZhbHVlICYmICFuZ0NvbnRyb2w/LnZhbHVlPy5sZW5ndGgpIHx8XG4gICAgICAgICAgICAgICAgIChzZWxlY3RDb25maWcubXVsdGlwbGUgJiYgbmdDb250cm9sPy52YWx1ZSAmJiAhbmdDb250cm9sPy52YWx1ZT8ubGVuZ3RoKVwiXG4gICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgPyAncmVhZG9ubHktY29sb3InIDogJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJ1wiXG4gICAgPlxuICAgICAge3sgKChzZWxlY3RDb25maWcucGxhY2Vob2xkZXIgfHwgJycpIHwgdHJhbnNsYXRlKSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tcGxhY2Vob2xkZXIgY3VzdG9tLXZhbHVlIGVsbGlwc2lzXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAncHItNDInOiBzZWxlY3RDb25maWcuaWNvblVybCxcbiAgICAgICAgICAgICAgICAncmVhZG9ubHktY29sb3InOiBzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJzogIShzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAqbmdJZj1cIm5nQ29udHJvbD8udmFsdWVcIlxuICAgID5cbiAgICAgIHt7c2hvd2luZ1ZhbHVlfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBDdXN0b20gSWNvbiAtLT5cbiAgPGltZyBjbGFzcz1cImxlZnRfaWNvbl9uZXcgcG9pbnRlclwiXG4gICAgICAgYWx0PVwiVG9nZ2xlIFNlbGVjdGlvblwiXG4gICAgICAgKGNsaWNrKT1cImljb25DbGljayhtYXRTZWxlY3QsIHNlYXJjaElucHV0KVwiXG4gICAgICAgKm5nSWY9XCIhc2VsZWN0Q29uZmlnLm1hdEljb25OYW1lICYmIChzZWxlY3RDb25maWcuaWNvblVybCB8fCBzZWxlY3RDb25maWcuYWN0aXZlU3RhdGVJY29uVXJsKVwiXG4gICAgICAgW3NyY109XCInYXNzZXRzL2ltYWdlcy9pY29ucy9nbG9iYWwvJyArIChuZ0NvbnRyb2wuY29udHJvbD8udmFsdWUgJiYgc2VsZWN0Q29uZmlnPy5hY3RpdmVTdGF0ZUljb25VcmwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q29uZmlnLmFjdGl2ZVN0YXRlSWNvblVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWxlY3RDb25maWcuaWNvblVybClcIj5cblxuICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInctMTAwXCIgKGNsaWNrKT1cInNlbGVjdENvbmZpZz8uc2VhcmNoID8gZm9jdXNTZWFyY2hJbnB1dCgpIDogbnVsbFwiPlxuICAgIDwhLS0gTWF0ZXJpYWwgU2VsZWN0IC0tPlxuICAgIDxtYXQtc2VsZWN0ICNtYXRTZWxlY3Q9XCJtYXRTZWxlY3RcIlxuICAgICAgICAgICAgICAgIFtwYW5lbENsYXNzXT1cIidhdXRvY29tcGxldGUtdHJhbnNmb3JtLXBhbmVsLWxvY2F0aW9uJ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1wbGFjZWhvbGRlcl09XCIoc2VsZWN0Q29uZmlnLnBsYWNlaG9sZGVyIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwic2VsZWN0Q29uZmlnLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwic2VsZWN0Q29uZmlnLmZpbHRyYXRpb25LZXkgfHwgJydcIlxuICAgICAgICAgICAgICAgIChvcGVuZWQpPVwicmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KG1hdFNlbGVjdClcIlxuICAgICAgICAgICAgICAgIChvcGVuZWRDaGFuZ2UpPVwib3BlbmVkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInNlbGVjdENvbmZpZy5tdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJlbWl0U2VsZWN0aW9uQ2hhbmdlQW5kQ2xvc2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImN1c3RvbUVycm9yU3RhdGVNYXRjaGVyXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiKHNlbGVjdENvbmZpZy5wbGFjZWhvbGRlciB8fCAnJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZFwiXG4gICAgPlxuXG4gICAgICA8IS0tIExvYWRpbmcgU3RhdGUgLS0+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInBlbmRpbmdcIiBjbGFzcz1cIm9wdGlvbl9sb2FkaW5nIHJlbGF0aXZlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1ZXN0X2xvYWRpbmdcIj5cbiAgICAgICAgICA8aW1nIG5nU3JjPVwiLi9sb2FkZXIuc3ZnXCIgYWx0PVwiXCIgaGVpZ2h0PVwiMjAwXCIgd2lkdGg9XCIyMDBcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICA8IS0tIE9wdGlvbnMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8ubGVuZ3RoICYmICFwZW5kaW5nXCI+XG4gICAgICAgIDwhLS0gQWRkIE5ldyBPcHRpb24gLS0+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwic2VsZWN0Q29uZmlnLmFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvaW50ZXIgYWRkX25ld1wiXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpO2FkZE5ld0l0ZW1FdmVudCgpXCI+XG4gICAgICAgICAgPCEtLShjbGljayk9XCJuZ0NvbnRyb2wuY29udHJvbC5yZXNldChudWxsKTtcbiAgICAgICAgICAgICAgbWF0U2VsZWN0Ll9vbkJsdXIoKTtjbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpO2FkZE5ld0l0ZW1FdmVudCgpXCI+LS0+XG4gICAgICAgICAgPGktdGVjaC1idXR0b25cbiAgICAgICAgICAgIFt0eXBlXT1cIkJ1dHRvblR5cGUuT1VUTElORVwiXG4gICAgICAgICAgICBbZm9udEljb25dPVwiJ2FkZCdcIlxuICAgICAgICAgICAgW3RleHRdPVwiKCdkcm9wZG93bl9hZGRfaXRlbScgfCB0cmFuc2xhdGUgOiB7SU5QVVRfTkFNRTogKHNlbGVjdENvbmZpZy5sYWJlbCB8IHRyYW5zbGF0ZSl9KSBcIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIid3LTEwMCBtYXQtYXV0b2NvbXBsZXRlLXNlbGVjdC1idXR0b24nXCI+XG4gICAgICAgICAgPC9pLXRlY2gtYnV0dG9uPlxuICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgPCEtLSBSZWd1bGFyIE9wdGlvbnMgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0Q29uZmlnPy5jaGFuZ2VUZXh0ICYmIGRhdGEubGVuZ3RoXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdENvbmZpZy52YWx1ZUJ5S2V5IHwgZ2V0VmFsdWVCeUtleUZyb21PYmplY3QgOiBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAobW91c2V1cCk9XCJvcHRpb25DbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJwcmV2ZW50RGVmYXVsdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICBAaWYgKHNlbGVjdENvbmZpZz8ubmVlZFRyYW5zbGF0ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAoKHNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5S2V5IHwgZ2V0VmFsdWVCeUtleUZyb21PYmplY3RcbiAgICAgICAgICAgICAgOiBpdGVtIDogc2VsZWN0Q29uZmlnLnZhbHVlVG9TaG93QnlQYXJhbSA6IHNlbGVjdENvbmZpZy53aXRoUGFyYW1TeW1ib2wpIHx8ICcnKSB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgKChzZWxlY3RDb25maWcudmFsdWVUb1Nob3dCeUtleSB8IGdldFZhbHVlQnlLZXlGcm9tT2JqZWN0XG4gICAgICAgICAgICAgIDogaXRlbSA6IHNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5UGFyYW0gOiBzZWxlY3RDb25maWcud2l0aFBhcmFtU3ltYm9sKSB8fCAnJylcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ3VzdG9tIFRleHQgT3B0aW9ucyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdENvbmZpZz8uY2hhbmdlVGV4dCAmJiBkYXRhLmxlbmd0aFwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RDb25maWcudmFsdWVCeUtleSB8IGdldFZhbHVlQnlLZXlGcm9tT2JqZWN0IDogaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG1vdXNldXApPVwib3B0aW9uQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwicHJldmVudERlZmF1bHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdENvbmZpZz8uY2hhbmdlVGV4dFtpdGVtXS5kaXNhYmxlZFwiPlxuICAgICAgICAgICAge3sgc2VsZWN0Q29uZmlnPy5uZWVkVHJhbnNsYXRlT3B0aW9ucyA/IChzZWxlY3RDb25maWc/LmNoYW5nZVRleHRbaXRlbV0udGV4dCB8IHRyYW5zbGF0ZSApIDogc2VsZWN0Q29uZmlnPy5jaGFuZ2VUZXh0W2l0ZW1dLnRleHR9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBFbXB0eSBTdGF0ZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcGVuZGluZyAmJiAhZGF0YS5sZW5ndGhcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gZGlzYWJsZWQgY2xhc3M9XCJlbXB0eV9zZWxlY3Rpb25fc3RhdGVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc19hbmRfdGlsZSBhZGRfbmV3IGZsZXhfY29sdW1uIHctMTAwIGZsZXhfY2VudGVyX2FsaWduX2NlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgJ2Ryb3Bkb3duX25vX2l0ZW1zJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxuICAgICAgICAgICAgICA8aS10ZWNoLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0Q29uZmlnPy5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJCdXR0b25UeXBlLk9VVExJTkVcIlxuICAgICAgICAgICAgICAgIChidXR0b25DbGljayk9XCJjbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpO2FkZE5ld0l0ZW1FdmVudCgpXCJcbiAgICAgICAgICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiJ21hdC1hdXRvY29tcGxldGUtc2VsZWN0LWJ1dHRvbidcIlxuICAgICAgICAgICAgICAgIFtmb250SWNvbl09XCInYWRkJ1wiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiKCdkcm9wZG93bl9hZGRfaXRlbScgfCB0cmFuc2xhdGUgOiB7SU5QVVRfTkFNRTogKHNlbGVjdENvbmZpZy5sYWJlbCB8IHRyYW5zbGF0ZSl9KSBcIj5cbiAgICAgICAgICAgICAgPC9pLXRlY2gtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJzZWxlY3RDb25maWcuaWNvblByZWZpeFwiXG4gICAgICAgICAgICAgIG1hdFByZWZpeFxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICdyZWFkb25seS1jb2xvcicgOiAhc2VsZWN0Q29uZmlnWydpY29uUHJlZml4Q29sb3InXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQpLFxuICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InIDogIXNlbGVjdENvbmZpZ1snaWNvblByZWZpeENvbG9yJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhKHNlbGVjdENvbmZpZy5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoc2VsZWN0Q29uZmlnPy5bJ2ljb25QcmVmaXhUb29sdGlwJ10gfHwgJycpIHwgdHJhbnNsYXRlKVwiXG4gICAgPnt7IHNlbGVjdENvbmZpZy5pY29uUHJlZml4IH19XG4gICAgPC9tYXQtaWNvbj5cblxuICAgIDxtYXQtaWNvbiAqbmdJZj1cInNlbGVjdENvbmZpZ1snaWNvblByZWZpeFN2ZyddXCJcbiAgICAgICAgICAgICAgbWF0UHJlZml4XG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIigoc2VsZWN0Q29uZmlnPy5bJ2ljb25QcmVmaXhUb29sdGlwJ10gfHwgJycpIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtzdmdJY29uXT1cInNlbGVjdENvbmZpZ1snaWNvblByZWZpeFN2ZyddIHx8ICcnXCJcbiAgICA+PC9tYXQtaWNvbj5cblxuICAgIDxpLXRlY2gtaWNvbi1idXR0b25cbiAgICAgICpuZ0lmPVwic2VsZWN0Q29uZmlnLnNlYXJjaCAmJiBzZWxlY3RDb25maWcuY2xlYXJhYmxlICYmICFuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCAmJiAhIW5nQ29udHJvbC5jb250cm9sLnZhbHVlXCJcbiAgICAgIGljb25OYW1lPVwiY2FuY2VsXCJcbiAgICAgIG1hdFN1ZmZpeFxuICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdENvbmZpZy5yZWFkT25seSB8fCBmYWxzZVwiXG4gICAgICBbbmdDbGFzc109XCJzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgPyAncmVhZG9ubHktY29sb3InIDogJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJ1wiXG4gICAgICAoY2xpY2spPVwiXG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG5nQ29udHJvbC5jb250cm9sLnJlc2V0KG51bGwpO1xuICAgICAgICBtYXRTZWxlY3QuX29uQmx1cigpO1xuICAgICAgICBjbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpXG4gICAgICBcIlxuICAgID5cbiAgICA8L2ktdGVjaC1pY29uLWJ1dHRvbj5cbiAgICA8bWF0LWljb25cbiAgICAgIG1hdFN1ZmZpeFxuICAgICAgY2xhc3M9XCJzZWxlY3QtYXJyb3dcIlxuICAgICAgW2NsYXNzLm9wZW5dPVwibWF0U2VsZWN0LnBhbmVsT3BlblwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAncmVhZG9ubHktY29sb3InOiBzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQsXG4gICAgICAgICAgICAnZGVmYXVsdC1mb3JtLWljb24tY29sb3InOiAhKHNlbGVjdENvbmZpZy5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCksXG4gICAgICAgICAgICAnbXQtOCc6ICEhbmdDb250cm9sLmNvbnRyb2wudmFsdWUgJiYgc2VsZWN0Q29uZmlnLmNsZWFyYWJsZVxuICAgICAgICAgfVwiXG4gICAgPlxuICAgICAga2V5Ym9hcmRfYXJyb3dfZG93blxuICAgIDwvbWF0LWljb24+XG4gICAgPCEtLSBFcnJvciBNZXNzYWdlIC0tPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhIShuZ0NvbnRyb2wuY29udHJvbC5lcnJvcnMgJiYgc3VibWl0VmFsdWUpXCI+XG4gICAgICB7eyBuZ0NvbnRyb2wuY29udHJvbCB8IGdlbmVyYXRlRXJyb3JNZXNzYWdlcyA6IHNlbGVjdENvbmZpZy5sYWJlbCA6IHNlbGVjdENvbmZpZy5kZWZhdWx0UGF0dGVybktleSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gUmVzZXQgQnV0dG9uIC0tPlxuICA8aS10ZWNoLWNsZWFyLXZhbHVlICpuZ0lmPVwic2VsZWN0Q29uZmlnLnJlc2V0XCIgKHJlc2V0VmFsdWUpPVwicmVzZXRWYWx1ZSgpXCI+PC9pLXRlY2gtY2xlYXItdmFsdWU+XG48L2Rpdj5cbiJdfQ==
|
|
455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXNlbGVjdC9hdXRvY29tcGxldGUtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9hdXRvY29tcGxldGUtc2VsZWN0L2F1dG9jb21wbGV0ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBR0EsWUFBWSxFQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEUsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FB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LENBQUM7K0dBMWFVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDhwQkNuRHhDLGl4VkEyT0EsczhCRDNNSSxPQUFPLG9GQUNQLFVBQVUsaVJBQ1YsSUFBSSw2RkFDSixLQUFLLGtIQUNMLGVBQWUsNEZBQ2YsbUJBQW1CLGdLQUNuQixtQkFBbUIseVRBQ25CLGVBQWUsK3hDQUNmLGVBQWUsc01BQ2YsMkJBQTJCLGdFQUUzQixnQkFBZ0IsZ1BBQ2hCLE9BQU8sc0lBQ1AseUJBQXlCLDhEQUN6QixtQkFBbUIsaUlBQ25CLGtCQUFrQjs7NEZBSVQsMkJBQTJCO2tCQXhCdkMsU0FBUzsrQkFDRSw0QkFBNEIsV0FHN0I7d0JBQ1AsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLElBQUk7d0JBQ0osS0FBSzt3QkFDTCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCx5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQixjQUNXLElBQUk7aUZBR1EsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNJLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDZixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS08sT0FBTztzQkFBbkIsS0FBSztnQkFtQkcsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ21CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFzQnhCLHNCQUFzQjtzQkFEckIsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgQWZ0ZXJWaWV3SW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdCwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29uZmlnc0ludGVyZmFjZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2F1dG9jb21wbGV0ZS1jb25maWdzLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBJbnB1dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2J1dHRvbi10eXBlcy5lbnVtJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgR2V0VmFsdWVCeUtleUZyb21PYmplY3RQaXBlIH0gZnJvbSBcIi4uLy4uL3BpcGVzL2dldC12YWx1ZS1ieS1rZXktZnJvbS1vYmplY3QucGlwZVwiO1xuaW1wb3J0IHsgQXJyYXlUb1N0cmluZ1BpcGUgfSBmcm9tIFwiLi4vLi4vcGlwZXMvYXJyYXktdG8tc3RyaW5nLnBpcGVcIjtcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgR2VuZXJhdGVFcnJvck1lc3NhZ2VzUGlwZSB9IGZyb20gXCIuLi8uLi9waXBlcy9nZW5lcmF0ZS1lcnJvci1tZXNzYWdlcy5waXBlXCI7XG5pbXBvcnQgeyBDbGVhclZhbHVlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NsZWFyLXZhbHVlL2NsZWFyLXZhbHVlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaS10ZWNoLWF1dG9jb21wbGV0ZS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTWF0VG9vbHRpcCxcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBHZXRWYWx1ZUJ5S2V5RnJvbU9iamVjdFBpcGUsXG4gICAgQXJyYXlUb1N0cmluZ1BpcGUsXG4gICAgTmdPcHRpbWl6ZWRJbWFnZSxcbiAgICBNYXRJY29uLFxuICAgIEdlbmVyYXRlRXJyb3JNZXNzYWdlc1BpcGUsXG4gICAgQ2xlYXJWYWx1ZUNvbXBvbmVudCxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGVcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdtYXRTZWxlY3QnKSBtYXRTZWxlY3QhOiBNYXRTZWxlY3Q7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0Jykgc2VhcmNoSW5wdXQhOiBFbGVtZW50UmVmO1xuICBASW5wdXQoKSBjbGFzc05hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1Ym1pdFZhbHVlITogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VlIEF1dG9jb21wbGV0ZUNvbmZpZ3NJbnRlcmZhY2UgZm9yIGF2YWlsYWJsZSBjb25maWd1cmF0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBjb25maWdzKGRhdGE6IEF1dG9jb21wbGV0ZUNvbmZpZ3NJbnRlcmZhY2UpIHtcbiAgICB0aGlzLnNlbGVjdENvbmZpZyA9IGRhdGE7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCh0eXBlb2YgdGhpcy5zZWxlY3RDb25maWcucGFnaW5hdGUpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodGhpcy5maXJzdFJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgICB0aGlzLmZpcnN0UmVxdWVzdCA9IHRydWVcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGEgPSB0aGlzLnNlbGVjdENvbmZpZy5wYWdpbmF0ZTtcbiAgICB0aGlzLmZpbmRBbmRTZXREZWZhdWx0VmFsdWVGcm9tRGF0YSgpO1xuICB9O1xuXG4gIEBJbnB1dCgpIGRldGVjdENoYW5nZXMhOiBib29sZWFuO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBlbWl0QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2FsbFNlbGVjdGVkJykgYWxsU2VsZWN0ZWQhOiBNYXRTZWxlY3Q7XG4gIHBlbmRpbmcgPSBmYWxzZTtcbiAgZGVmYXVsdFZhbHVlITogYW55O1xuICBkYXRhOiBBcnJheTxhbnk+ID0gW107XG4gIHBhZ2luYXRpb25EYXRhOiBhbnkgPSB7IGN1cnJlbnQ6IDEsIGxhc3Q6IDAsIHNlYXJjaFZhbHVlOiAnJyB9O1xuICBuZ0NvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcbiAgc2VsZWN0Q29uZmlnITogQXV0b2NvbXBsZXRlQ29uZmlnc0ludGVyZmFjZTtcbiAgZmlyc3RSZXF1ZXN0ID0gZmFsc2U7XG4gIHNob3dQbGFjZWhvbGRlciA9IHRydWU7XG4gIGlzTmVlZGVkRm9yUmVjYWxsID0gZmFsc2U7XG4gIHNob3dpbmdWYWx1ZTogYW55O1xuICBzZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uOiBBcnJheTxhbnk+ID0gW107XG4gIHNlYXJjaFRpbWVvdXRJZDogYW55O1xuICB0YWJWaXNpYmlsaXR5ITogYm9vbGVhbjtcbiAgYWNjZXNzVG9OZXh0UmVxdWVzdCA9IHRydWU7XG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIGJsb2NrUmVjYWxsRGVmYXVsdFZhbHVlU2V0dGVyID0gZmFsc2U7XG4gIGJhc2VEYXRhOiBhbnk7XG4gIHJlcXVlc3RMb2FkaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBCdXR0b25UeXBlID0gQnV0dG9uVHlwZTtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp2aXNpYmlsaXR5Y2hhbmdlJylcbiAgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYlZpc2liaWxpdHkgPSAhZG9jdW1lbnQuaGlkZGVuO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2VQYW5lbEFuZFVuc2V0Rm9jdXMoKTtcbiAgICBpZiAoIWRvY3VtZW50LmhpZGRlbikge1xuICAgICAgdGhpcy5pc05lZWRlZEZvclJlY2FsbCA9IHRydWU7XG4gICAgICB0aGlzLnBlbmRpbmcgPSB0cnVlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlXG4gICAgICB9LCA0MDAwKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRTZXJ2aWNlOiBJbnB1dFNlcnZpY2UpIHtcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5wdXRTZXJ2aWNlLmluamVjdE5nQ29udHJvbCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RDb25maWcnXSAmJiB0aGlzLnNlbGVjdENvbmZpZykge1xuICAgICAgaWYgKCh0eXBlb2YgdGhpcy5zZWxlY3RDb25maWcucGFnaW5hdGUpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKG5ld1ZhbHVlOiBhbnkpID0+IHtcbiAgICAgIC8vIElmIHdlIGhhdmUgZGF0YSBhbmQgYSB2YWx1ZVxuICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggJiYgbmV3VmFsdWUpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZGVmYXVsdCB2YWx1ZSBkb2Vzbid0IG1hdGNoIHRoZSBuZXcgdmFsdWVcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRWYWx1ZSB8fCB0aGlzLmRlZmF1bHRWYWx1ZS5pZCAhPT0gbmV3VmFsdWUpIHtcbiAgICAgICAgICAvLyBSZXNldCB0aGUgYmxvY2sgZmxhZyB0byBhbGxvdyB1cGRhdGluZyB0aGUgdmFsdWVcbiAgICAgICAgICB0aGlzLmJsb2NrUmVjYWxsRGVmYXVsdFZhbHVlU2V0dGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5maW5kQW5kU2V0RGVmYXVsdFZhbHVlRnJvbURhdGEoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSAmJiAhdGhpcy5kYXRhLmxlbmd0aCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdmFsdWUgYnV0IG5vIGRhdGEsIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIGRhdGFcbiAgICAgICAgdGhpcy5ibG9ja1JlY2FsbERlZmF1bHRWYWx1ZVNldHRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzTmVlZGVkRm9yUmVjYWxsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZUNhbGxEYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBoYXJkUmVsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0RGF0YSgnJywgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogRHluYW1pYyByZXF1ZXN0IGZvciBzZWxlY3QgZGF0YS5cbiAgICogQHBhcmFtIHNlYXJjaFRleHQgLSBUaGUgaW5wdXQgdmFsdWUgdG8gc2VhcmNoIG9wdGlvbnMgYnkuXG4gICAqIEBwYXJhbSBmcm9tU2VhcmNoIC0gQWNjZXNzIGZvciBzZWFyY2guXG4gICAqIEByZXR1cm5zIFNlbGVjdCBkYXRhLlxuICAgKi9cbiAgZ2V0RGF0YShzZWFyY2hUZXh0Pzogc3RyaW5nLCBmcm9tU2VhcmNoPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghZnJvbVNlYXJjaCAmJiAhdGhpcy5hY2Nlc3NUb05leHRSZXF1ZXN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVxdWVzdExvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZnJvbVNlYXJjaCkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uRGF0YS5jdXJyZW50ID0gMTtcbiAgICAgIHRoaXMuYWNjZXNzVG9OZXh0UmVxdWVzdCA9IHRydWU7XG4gICAgICB0aGlzLnBhZ2luYXRpb25EYXRhLnNlYXJjaFZhbHVlID0gc2VhcmNoVGV4dCB8fCAnJztcbiAgICB9XG5cbiAgICBjb25zdCBmdW5jdGlvblRvRG8gPSB0aGlzLnNlbGVjdENvbmZpZy5wYWdpbmF0ZSh0aGlzLnBhZ2luYXRpb25EYXRhLmN1cnJlbnQsIHRoaXMucGFnaW5hdGlvbkRhdGE/LnNlYXJjaFZhbHVlIHx8ICcnKTtcblxuICAgIHRoaXMucmVxdWVzdExvYWRpbmcgPSB0cnVlO1xuICAgIGZ1bmN0aW9uVG9Ebz8uc3Vic2NyaWJlKChkYXRhOiBBcnJheTxhbnk+IHwgYW55KSA9PiB7XG4gICAgICBjb25zdCBkYXRhVG9BZGQgPSAoJ2NvbnRlbnQnIGluIGRhdGEpID8gZGF0YS5jb250ZW50IDogZGF0YTtcblxuICAgICAgaWYgKCdjb250ZW50JyBpbiBkYXRhKSB7XG4gICAgICAgIHRoaXMuYWNjZXNzVG9OZXh0UmVxdWVzdCA9ICFkYXRhLmxhc3QgfHwgKGRhdGEudG90YWxQYWdlcyA+IHRoaXMucGFnaW5hdGlvbkRhdGEuY3VycmVudCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YSA9IChmcm9tU2VhcmNoIHx8IHRoaXMuc2VsZWN0Q29uZmlnPy5ibG9ja1BhZ2luYXRpb24pID8gZGF0YVRvQWRkIDogWy4uLnRoaXMuZGF0YSwgLi4uZGF0YVRvQWRkXTtcbiAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXF1ZXN0TG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICBpZiAoIWRhdGFUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uRGF0YS5sYXN0ID0gdGhpcy5wYWdpbmF0aW9uRGF0YS5jdXJyZW50O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGFnaW5hdGlvbkRhdGEuY3VycmVudCArPSAxO1xuICAgICAgdGhpcy5wYWdpbmF0aW9uRGF0YS5sYXN0ICs9IDE7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5maW5kQW5kU2V0RGVmYXVsdFZhbHVlRnJvbURhdGEoKTtcbiAgICAgIH0sIDEwKVxuICAgIH0sICgpID0+IHtcbiAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXF1ZXN0TG9hZGluZyA9IGZhbHNlO1xuICAgIH0pXG4gIH1cblxuICBmaW5kQW5kU2V0RGVmYXVsdFZhbHVlRnJvbURhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0Q29uZmlnLm11bHRpcGxlKSB7XG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2wudmFsdWUgJiYgdGhpcy5uZ0NvbnRyb2wudmFsdWUubGVuZ3RoID09IDEpIHtcbiAgICAgICAgdGhpcy5zZXRTaG93aW5nVmFsdWUodGhpcy5kYXRhLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IHRoaXMubmdDb250cm9sLnZhbHVlWzBdKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgYWZ0ZXIgbWlncmF0aW5nIGFsbCBzZWxlY3RzXG4gICAgICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIC8vIGlmICghdGhpcy5uZ0NvbnRyb2wudmFsdWUgJiYgIXRoaXMuZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICAvLyAgICAgcmV0dXJuO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLm5nQ29udHJvbC52YWx1ZSAmJiAhdGhpcy5kYXRhKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBzZXREZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLmRhdGEuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gdGhpcy5uZ0NvbnRyb2wudmFsdWUpO1xuICAgIHRoaXMuYmFzZURhdGEgPSB0aGlzLmRlZmF1bHRWYWx1ZVxuICAgIGlmICghdGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgpXG4gICAgdGhpcy5zZXRTaG93aW5nVmFsdWUodGhpcy5kZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgb3B0aW9uQ2xpY2soc2hvd2luZ0RhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuYmFzZURhdGEgPSBzaG93aW5nRGF0YVxuICAgIGlmICghdGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2V0U2hvd2luZ1ZhbHVlKHNob3dpbmdEYXRhKTtcbiAgICAgIHRoaXMubWF0U2VsZWN0LmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNlYXJjaElucHV0KSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy50b2dnbGVTaG93aW5nRGF0YUluU2VsZWN0ZWRPcHRpb25zTXVsdGlwbGVDYXNlKHNob3dpbmdEYXRhKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5wdXRGb2N1c091dCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0U2hvd2luZ1ZhbHVlKHNob3dpbmdEYXRhKTtcbiAgICB0aGlzLnNob3dQbGFjZWhvbGRlciA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlU2hvd2luZ0RhdGFJblNlbGVjdGVkT3B0aW9uc011bHRpcGxlQ2FzZShzaG93aW5nRGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc2hvd2luZ0RhdGFCeUpzb24gPSBKU09OLnN0cmluZ2lmeShzaG93aW5nRGF0YSk7XG4gICAgY29uc3QgaW5kZXhPZkV4aXN0aW5nT3B0aW9uID0gdGhpcy5zZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uLmZpbmRJbmRleChcbiAgICAgIChvcHRpb25WYWx1ZTogYW55KSA9PiBKU09OLnN0cmluZ2lmeShvcHRpb25WYWx1ZSkgPT09IHNob3dpbmdEYXRhQnlKc29uXG4gICAgKVxuICAgIGlmIChpbmRleE9mRXhpc3RpbmdPcHRpb24gPj0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uLnNwbGljZShpbmRleE9mRXhpc3RpbmdPcHRpb24sIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uRm9yTXVsdGlwbGVTZWxlY3Rpb24ucHVzaChzaG93aW5nRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgYWRkTmV3SXRlbUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuaXNOZWVkZWRGb3JSZWNhbGwgPSB0cnVlO1xuICAgIHRoaXMuZW1pdEFjdGlvbi5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGFuZCBzaG93LlxuICAgKiBAcGFyYW0gZGF0YSAtIEV4aXN0aW5nIGNob3NlbiBkYXRhLlxuICAgKi9cbiAgc2V0U2hvd2luZ1ZhbHVlKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcubXVsdGlwbGUgJiYgdGhpcy5zZWxlY3RDb25maWcuc2VhcmNoKSB7XG4gICAgICBjb25zdCBmdWxsVGV4dDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbkZvck11bHRpcGxlU2VsZWN0aW9uLmZvckVhY2goKG9wdGlvbkRhdGE6IGFueSkgPT4ge1xuICAgICAgICBmdWxsVGV4dC5wdXNoKHRoaXMuY29sbGVjdEFuZEdldFNlbGVjdGlvblRvU2hvd0Zvck9uZU9wdGlvbihvcHRpb25EYXRhKSlcbiAgICAgIH0pXG4gICAgICB0aGlzLnNob3dpbmdWYWx1ZSA9IGZ1bGxUZXh0LmpvaW4oJywnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93aW5nVmFsdWUgPSB0aGlzLmNvbGxlY3RBbmRHZXRTZWxlY3Rpb25Ub1Nob3dGb3JPbmVPcHRpb24oZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuYmxvY2tSZWNhbGxEZWZhdWx0VmFsdWVTZXR0ZXIgPSB0cnVlO1xuICB9XG5cbiAgY29sbGVjdEFuZEdldFNlbGVjdGlvblRvU2hvd0Zvck9uZU9wdGlvbihkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgIGxldCBpbmNsdWRlID0gZGF0YTtcbiAgICBsZXQgaW5jbHVkZU9wdGlvbmFsID0gZGF0YTtcblxuICAgIGlmICh0aGlzLnNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5S2V5KSB7XG4gICAgICB0aGlzLnNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5S2V5LmZvckVhY2goKHBhcmFtOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBwYXJhbS5mb3JFYWNoKChrZXk6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaW5jbHVkZSA9IChpbmNsdWRlKSA/IGluY2x1ZGVba2V5XSA6IG51bGw7XG4gICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmNsdWRlID0gaW5jbHVkZVtwYXJhbV07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAodGhpcy5zZWxlY3RDb25maWcuc2hvd0Z1bGxUZXh0V2l0aE9wdGlvbmFsT25TZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0Q29uZmlnLnZhbHVlVG9TaG93QnlQYXJhbT8uZm9yRWFjaCgocGFyYW06IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcpID0+IHtcblxuICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBwYXJhbS5mb3JFYWNoKChrZXk6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICBpbmNsdWRlT3B0aW9uYWwgPSAoaW5jbHVkZU9wdGlvbmFsKSA/IGluY2x1ZGVPcHRpb25hbFtrZXldIDogbnVsbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluY2x1ZGVPcHRpb25hbCA9IGluY2x1ZGVPcHRpb25hbFtwYXJhbV07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBpZiAodGhpcy5zZWxlY3RDb25maWcudmFsdWVUb1Nob3dCeVBhcmFtICYmIHR5cGVvZiBpbmNsdWRlT3B0aW9uYWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaW5jbHVkZSArPSAodGhpcy5zZWxlY3RDb25maWcud2l0aFBhcmFtU3ltYm9sIHx8ICcnKSArIGluY2x1ZGVPcHRpb25hbFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluY2x1ZGU7XG4gIH1cblxuICAvKipcbiAgICogQmxvY2sgYW5vdGhlciBldmVudHMuXG4gICAqIEBwYXJhbSBldmVudCAtIEVsZW1lbnQgY2xpY2sgZXZlbnQuXG4gICAqL1xuICBwcmV2ZW50RGVmYXVsdChldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdENvbmZpZy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gIH1cblxuICByZWdpc3RlclBhbmVsU2Nyb2xsRXZlbnQoZWxlbWVudDogTWF0U2VsZWN0KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0Q29uZmlnLnBhZ2luYXRlT25TY3JvbGwgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFuZWwgPSBlbGVtZW50LnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGV2ZW50OiBhbnkpID0+IHRoaXMubG9hZERhdGFPblNjcm9sbChldmVudCkpO1xuICB9XG5cbiAgbG9hZERhdGFPblNjcm9sbChldmVudDogYW55KSB7XG4gICAgY29uc3QgcG9zID0gKGV2ZW50LnRhcmdldC5zY3JvbGxUb3AgfHwgZXZlbnQudGFyZ2V0LnNjcm9sbFRvcCkgKyBldmVudC50YXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IG1heCA9IGV2ZW50LnRhcmdldC5zY3JvbGxIZWlnaHQ7XG4gICAgaWYgKChwb3MgKyAxKSA+PSBtYXgpIHtcbiAgICAgIGlmICh0aGlzLnBhZ2luYXRpb25EYXRhLmN1cnJlbnQgPT09IHRoaXMucGFnaW5hdGlvbkRhdGEubGFzdCB8fCB0aGlzLnNlbGVjdENvbmZpZy5ibG9ja1BhZ2luYXRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNTZWFyY2hJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcuc2VhcmNoICYmIHRoaXMuc2VhcmNoSW5wdXQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0Rm9jdXNPdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc05lZWRlZEZvclJlY2FsbCA9ICEhdGhpcy5zZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmNsZWFyVGltZW91dEZvclNlYXJjaCgpO1xuICB9XG5cbiAgcmVzZXRWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG51bGwpO1xuICAgIHRoaXMubmdDb250cm9sLnJlc2V0KG51bGwpO1xuICAgIHRoaXMuaW5wdXRGb2N1c091dCgpO1xuICB9XG5cbiAgZ2V0RGF0YVdpdGhTZWFyY2godmFsdWU6IGFueSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0Rm9yU2VhcmNoKCk7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+PSAxKSB7XG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldERhdGEodmFsdWUsIHRydWUpXG4gICAgICB9LCA4MDApO1xuICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoIDw9IDEgJiYgZXZlbnQua2V5Q29kZSA9PT0gOCkge1xuICAgICAgdGhpcy5nZXREYXRhKHZhbHVlLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNsZWFyVGltZW91dEZvclNlYXJjaCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXRJZCk7XG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXRJZCA9IDA7XG4gICAgfVxuICB9XG5cbiAgb3BlblNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RDb25maWcuZGlzYWJsZWQgfHwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93UGxhY2Vob2xkZXIpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0Lm9wZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnNob3dQbGFjZWhvbGRlciA9ICF0aGlzLnNob3dQbGFjZWhvbGRlcjtcbiAgICBpZiAoIXRoaXMuc2hvd1BsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLnJlQ2FsbERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZVBhbmVsQW5kVW5zZXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLm1hdFNlbGVjdC5jbG9zZSgpO1xuICAgIGlmICh0aGlzLnNlYXJjaElucHV0KSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpXG4gICAgfVxuICB9XG5cbiAgb3BlbmVkQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGlmICh0aGlzLmlzTmVlZGVkRm9yUmVjYWxsKSB7XG4gICAgICAgIHRoaXMucmVDYWxsRGF0YSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0Q29uZmlnLnNlYXJjaCkge1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLnJlQ2FsbERhdGEoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgfVxuXG4gIHJlQ2FsbERhdGEoKTogdm9pZCB7XG4gICAgLy8gVE9ETyByZWZhY3RvciB0aGlzIHBhcnRcbiAgICBpZiAoIXRoaXMuaXNOZWVkZWRGb3JSZWNhbGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kYXRhID0gW107XG4gICAgdGhpcy5wZW5kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnBhZ2luYXRpb25EYXRhID0ge1xuICAgICAgY3VycmVudDogMSxcbiAgICAgIGxhc3Q6IDAsXG4gICAgfTtcbiAgICB0aGlzLmFjY2Vzc1RvTmV4dFJlcXVlc3QgPSB0cnVlO1xuICAgIGlmICgodHlwZW9mIHRoaXMuc2VsZWN0Q29uZmlnLnBhZ2luYXRlKSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGVuZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5zZWxlY3RDb25maWcucGFnaW5hdGU7XG4gICAgfVxuICAgIHRoaXMuaXNOZWVkZWRGb3JSZWNhbGwgPSBmYWxzZTtcbiAgfVxuXG4gIGVtaXRTZWxlY3Rpb25DaGFuZ2VBbmRDbG9zZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudC52YWx1ZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0Q29uZmlnLm11bHRpcGxlKSB7XG4gICAgICBpZiAoIWV2ZW50LnZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5yZXNldCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hdFNlbGVjdC5jbG9zZSgpO1xuICB9XG5cbiAgLypcbiAgICogT3BlbiBtYXQtc2VsZWN0IGFuZCBmb2N1cyBvbiBzZWFyY2ggb24gaWNvbiBjbGlja1xuICAgKi9cbiAgaWNvbkNsaWNrKG1hdFNlbGVjdDogTWF0U2VsZWN0LCBzZWFyY2hJbnB1dD86IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBtYXRTZWxlY3Qub3BlbigpO1xuICAgIHNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgLypcbiAgKiBDdXN0b20gZXJyb3Igc3RhdGUgbWF0Y2hlciBmb3IgbWF0LXNlbGVjdCB0byBwcm9wZXJseSBzaG93IGVycm9yIHN0YXRlIGluIG1hdC1mb3JtLWZpZWxkXG4gICAqL1xuICBjdXN0b21FcnJvclN0YXRlTWF0Y2hlciA9IHtcbiAgICBpc0Vycm9yU3RhdGU6IChjb250cm9sOiBhbnksIGZvcm06IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIHRoaXMuc3VibWl0VmFsdWUpO1xuICAgIH1cbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJuZXctbWF0LWF1dG9jb21wbGV0ZVwiIGlkPVwibWF0X2F1dG9jb21wbGV0ZVwiXG4gICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdtYXQtc2VsZWN0LXdpdGhvdXRfaWNvbic6ICFzZWxlY3RDb25maWcuaWNvblVybCAmJiAhc2VsZWN0Q29uZmlnLmFjdGl2ZVN0YXRlSWNvblVybCxcbiAgICAgICAgICAgICdtYXQtc2VsZWN0LXdpdGgtc2VhcmNoJzogc2VsZWN0Q29uZmlnLnNlYXJjaCxcbiAgICAgICAgICAgICd3aXRob3V0LWxhYmVsJzogc2VsZWN0Q29uZmlnLmhpZGVMYWJlbCxcbiAgICAgICAgICAgICdpbnZhbGlkX2ZpZWxkJzogbmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdFZhbHVlLFxuICAgICAgICAgICAgJ3JlYWRvbmx5LWZpZWxkJzogc2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkXG4gICAgICAgICB9XCJcbiAgICAgW21hdFRvb2x0aXBdPVwiKHNlbGVjdENvbmZpZy5ob3ZlciAmJiAhbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgPyAoKHNlbGVjdENvbmZpZy5ob3ZlciB8fCAnJykgfCB0cmFuc2xhdGUpIDogJycpXCJcbiAgICAgW21hdFRvb2x0aXBDbGFzc109XCInbWF0LW1kYy10b29sdGlwIGJpZy10ZC1tYXQtdG9vbHRpcCdcIlxuICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidhYm92ZSdcIlxuICAgICAqbmdJZj1cInNlbGVjdENvbmZpZyAmJiBuZ0NvbnRyb2xcIj5cblxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cIiFzZWxlY3RDb25maWcuaGlkZUxhYmVsXCI+XG4gICAgPG1hdC1sYWJlbCBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3JlYWRvbmx5LWNvbG9yJyA6IHNlbGVjdENvbmZpZy5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCxcbiAgICAgICAgICAnaW52YWxpZC1sYWJlbC1jb2xvcic6ICEhKG5nQ29udHJvbC5jb250cm9sLmVycm9ycyAmJiBzdWJtaXRWYWx1ZSlcbiAgICAgICAgfVwiPlxuICAgICAge3sgc2VsZWN0Q29uZmlnLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtbGFiZWw+XG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RDb25maWcucmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkLWlucHV0XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3JlYWRvbmx5LWNvbG9yJyA6IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkfVwiPio8L3NwYW4+XG4gIDwvZGl2PlxuXG5cbiAgPCEtLSBTZWFyY2ggSW5wdXQgLS0+XG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQgdy0xMDBcIlxuICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7JGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsgaGlkZV9pbnB1dF9wbGFjZWhvbGRlcjogc2hvd1BsYWNlaG9sZGVyIHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkIH1cIlxuICAgICAgICpuZ0lmPVwic2VsZWN0Q29uZmlnLnNlYXJjaFwiXG4gID5cbiAgICA8aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgaWQ9XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydwci0yNSc6ICFzZWxlY3RDb25maWcuaWNvblVybH1cIlxuICAgICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cIm5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkIHx8IHNlbGVjdENvbmZpZy5ob3ZlclwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIobmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgfHwgc2VsZWN0Q29uZmlnLmhvdmVyKSA/ICcnIDogJ1NlYXJjaCdcIlxuICAgICAgICAgICAoZm9jdXNvdXQpPVwiaW5wdXRGb2N1c091dCgpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cIm9wZW5TZWxlY3Rpb24oKVwiXG4gICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJnZXREYXRhV2l0aFNlYXJjaChzZWFyY2hJbnB1dC52YWx1ZSwkZXZlbnQpXCI+XG5cbiAgICA8IS0tIFNlYXJjaCBJY29uIC0tPlxuICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoLWljb25cIj5cbiAgICAgICAgICAgIDxpLXRlY2gtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtci0xMFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdENvbmZpZy5yZWFkT25seSB8fCBuZ0NvbnRyb2wuY29udHJvbC5kaXNhYmxlZCA/ICdyZWFkb25seS1jb2xvcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJ1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0Q29uZmlnLmljb25QcmVmaXggJiYgIXNob3dQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJzZWxlY3RDb25maWcuaWNvblByZWZpeCB8fCAnJ1wiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvaS10ZWNoLWljb24tYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDwhLS0gUGxhY2Vob2xkZXIvU2VsZWN0ZWQgVmFsdWUgRGlzcGxheSAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQbGFjZWhvbGRlciAmJiBzZWxlY3RDb25maWcuc2VhcmNoXCI+XG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbS1wbGFjZWhvbGRlclwiXG4gICAgICAgICAqbmdJZj1cIighbmdDb250cm9sPy52YWx1ZSAmJiAhbmdDb250cm9sPy52YWx1ZT8ubGVuZ3RoKSB8fFxuICAgICAgICAgICAgICAgICAoc2VsZWN0Q29uZmlnLm11bHRpcGxlICYmIG5nQ29udHJvbD8udmFsdWUgJiYgIW5nQ29udHJvbD8udmFsdWU/Lmxlbmd0aClcIlxuICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxuICAgID5cbiAgICAgIHt7ICgoc2VsZWN0Q29uZmlnLnBsYWNlaG9sZGVyIHx8ICcnKSB8IHRyYW5zbGF0ZSkgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXBsYWNlaG9sZGVyIGN1c3RvbS12YWx1ZSBlbGxpcHNpc1wiXG4gICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3ByLTQyJzogc2VsZWN0Q29uZmlnLmljb25VcmwsXG4gICAgICAgICAgICAgICAgJ3JlYWRvbmx5LWNvbG9yJzogc2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcic6ICEoc2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgKm5nSWY9XCJuZ0NvbnRyb2w/LnZhbHVlXCJcbiAgICA+XG4gICAgICB7e3Nob3dpbmdWYWx1ZX19XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gQ3VzdG9tIEljb24gLS0+XG4gIDxpbWcgY2xhc3M9XCJsZWZ0X2ljb25fbmV3IHBvaW50ZXJcIlxuICAgICAgIGFsdD1cIlRvZ2dsZSBTZWxlY3Rpb25cIlxuICAgICAgIChjbGljayk9XCJpY29uQ2xpY2sobWF0U2VsZWN0LCBzZWFyY2hJbnB1dClcIlxuICAgICAgICpuZ0lmPVwiIXNlbGVjdENvbmZpZy5tYXRJY29uTmFtZSAmJiAoc2VsZWN0Q29uZmlnLmljb25VcmwgfHwgc2VsZWN0Q29uZmlnLmFjdGl2ZVN0YXRlSWNvblVybClcIlxuICAgICAgIFtzcmNdPVwiJ2Fzc2V0cy9pbWFnZXMvaWNvbnMvZ2xvYmFsLycgKyAobmdDb250cm9sLmNvbnRyb2w/LnZhbHVlICYmIHNlbGVjdENvbmZpZz8uYWN0aXZlU3RhdGVJY29uVXJsID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdENvbmZpZy5hY3RpdmVTdGF0ZUljb25VcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc2VsZWN0Q29uZmlnLmljb25VcmwpXCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTEwMFwiIChjbGljayk9XCJzZWxlY3RDb25maWc/LnNlYXJjaCA/IGZvY3VzU2VhcmNoSW5wdXQoKSA6IG51bGxcIj5cbiAgICA8IS0tIE1hdGVyaWFsIFNlbGVjdCAtLT5cbiAgICA8bWF0LXNlbGVjdCAjbWF0U2VsZWN0PVwibWF0U2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbcGFuZWxDbGFzc109XCInYXV0b2NvbXBsZXRlLXRyYW5zZm9ybS1wYW5lbC1sb2NhdGlvbidcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcGxhY2Vob2xkZXJdPVwiKHNlbGVjdENvbmZpZy5wbGFjZWhvbGRlciB8fCAnJykgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cInNlbGVjdENvbmZpZy5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW2lkXT1cInNlbGVjdENvbmZpZy5maWx0cmF0aW9uS2V5IHx8ICcnXCJcbiAgICAgICAgICAgICAgICAob3BlbmVkKT1cInJlZ2lzdGVyUGFuZWxTY3JvbGxFdmVudChtYXRTZWxlY3QpXCJcbiAgICAgICAgICAgICAgICAob3BlbmVkQ2hhbmdlKT1cIm9wZW5lZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJzZWxlY3RDb25maWcubXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdFNlbGVjdGlvbkNoYW5nZUFuZENsb3NlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJjdXN0b21FcnJvclN0YXRlTWF0Y2hlclwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihzZWxlY3RDb25maWcucGxhY2Vob2xkZXIgfHwgJycpIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWRcIlxuICAgID5cblxuICAgICAgPCEtLSBMb2FkaW5nIFN0YXRlIC0tPlxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJwZW5kaW5nXCIgY2xhc3M9XCJvcHRpb25fbG9hZGluZyByZWxhdGl2ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWVzdF9sb2FkaW5nXCI+XG4gICAgICAgICAgPGltZyBuZ1NyYz1cIi4vbG9hZGVyLnN2Z1wiIGFsdD1cIlwiIGhlaWdodD1cIjIwMFwiIHdpZHRoPVwiMjAwXCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgPCEtLSBPcHRpb25zIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGE/Lmxlbmd0aCAmJiAhcGVuZGluZ1wiPlxuICAgICAgICA8IS0tIEFkZCBOZXcgT3B0aW9uIC0tPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInNlbGVjdENvbmZpZy5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwb2ludGVyIGFkZF9uZXdcIlxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQYW5lbEFuZFVuc2V0Rm9jdXMoKTthZGROZXdJdGVtRXZlbnQoKVwiPlxuICAgICAgICAgIDwhLS0oY2xpY2spPVwibmdDb250cm9sLmNvbnRyb2wucmVzZXQobnVsbCk7XG4gICAgICAgICAgICAgIG1hdFNlbGVjdC5fb25CbHVyKCk7Y2xvc2VQYW5lbEFuZFVuc2V0Rm9jdXMoKTthZGROZXdJdGVtRXZlbnQoKVwiPi0tPlxuICAgICAgICAgIDxpLXRlY2gtYnV0dG9uXG4gICAgICAgICAgICBbdHlwZV09XCJCdXR0b25UeXBlLk9VVExJTkVcIlxuICAgICAgICAgICAgW2ZvbnRJY29uXT1cIidhZGQnXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIignZHJvcGRvd25fYWRkX2l0ZW0nIHwgdHJhbnNsYXRlIDoge0lOUFVUX05BTUU6IChzZWxlY3RDb25maWcubGFiZWwgfCB0cmFuc2xhdGUpfSkgXCJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCIndy0xMDAgbWF0LWF1dG9jb21wbGV0ZS1zZWxlY3QtYnV0dG9uJ1wiPlxuICAgICAgICAgIDwvaS10ZWNoLWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgIDwhLS0gUmVndWxhciBPcHRpb25zIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdENvbmZpZz8uY2hhbmdlVGV4dCAmJiBkYXRhLmxlbmd0aFwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RDb25maWcudmFsdWVCeUtleSB8IGdldFZhbHVlQnlLZXlGcm9tT2JqZWN0IDogaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG1vdXNldXApPVwib3B0aW9uQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwicHJldmVudERlZmF1bHQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgQGlmIChzZWxlY3RDb25maWc/Lm5lZWRUcmFuc2xhdGVPcHRpb25zKSB7XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgKChzZWxlY3RDb25maWcudmFsdWVUb1Nob3dCeUtleSB8IGdldFZhbHVlQnlLZXlGcm9tT2JqZWN0XG4gICAgICAgICAgICAgIDogaXRlbSA6IHNlbGVjdENvbmZpZy52YWx1ZVRvU2hvd0J5UGFyYW0gOiBzZWxlY3RDb25maWcud2l0aFBhcmFtU3ltYm9sKSB8fCAnJykgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICgoc2VsZWN0Q29uZmlnLnZhbHVlVG9TaG93QnlLZXkgfCBnZXRWYWx1ZUJ5S2V5RnJvbU9iamVjdFxuICAgICAgICAgICAgICA6IGl0ZW0gOiBzZWxlY3RDb25maWcudmFsdWVUb1Nob3dCeVBhcmFtIDogc2VsZWN0Q29uZmlnLndpdGhQYXJhbVN5bWJvbCkgfHwgJycpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEN1c3RvbSBUZXh0IE9wdGlvbnMgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RDb25maWc/LmNoYW5nZVRleHQgJiYgZGF0YS5sZW5ndGhcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0Q29uZmlnLnZhbHVlQnlLZXkgfCBnZXRWYWx1ZUJ5S2V5RnJvbU9iamVjdCA6IGl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cIm9wdGlvbkNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cInByZXZlbnREZWZhdWx0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RDb25maWc/LmNoYW5nZVRleHRbaXRlbV0uZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIHt7IHNlbGVjdENvbmZpZz8ubmVlZFRyYW5zbGF0ZU9wdGlvbnMgPyAoc2VsZWN0Q29uZmlnPy5jaGFuZ2VUZXh0W2l0ZW1dLnRleHQgfCB0cmFuc2xhdGUgKSA6IHNlbGVjdENvbmZpZz8uY2hhbmdlVGV4dFtpdGVtXS50ZXh0fX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gRW1wdHkgU3RhdGUgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBlbmRpbmcgJiYgIWRhdGEubGVuZ3RoXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uIGRpc2FibGVkIGNsYXNzPVwiZW1wdHlfc2VsZWN0aW9uX3N0YXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNfYW5kX3RpbGUgYWRkX25ldyBmbGV4X2NvbHVtbiB3LTEwMCBmbGV4X2NlbnRlcl9hbGlnbl9jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7ICdkcm9wZG93bl9ub19pdGVtcycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMTBcIj5cbiAgICAgICAgICAgICAgPGktdGVjaC1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdENvbmZpZz8uYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiQnV0dG9uVHlwZS5PVVRMSU5FXCJcbiAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiY2xvc2VQYW5lbEFuZFVuc2V0Rm9jdXMoKTthZGROZXdJdGVtRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidtYXQtYXV0b2NvbXBsZXRlLXNlbGVjdC1idXR0b24nXCJcbiAgICAgICAgICAgICAgICBbZm9udEljb25dPVwiJ2FkZCdcIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cIignZHJvcGRvd25fYWRkX2l0ZW0nIHwgdHJhbnNsYXRlIDoge0lOUFVUX05BTUU6IChzZWxlY3RDb25maWcubGFiZWwgfCB0cmFuc2xhdGUpfSkgXCI+XG4gICAgICAgICAgICAgIDwvaS10ZWNoLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwic2VsZWN0Q29uZmlnLmljb25QcmVmaXhcIlxuICAgICAgICAgICAgICBtYXRQcmVmaXhcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAncmVhZG9ubHktY29sb3InIDogIXNlbGVjdENvbmZpZ1snaWNvblByZWZpeENvbG9yJ11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoc2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkKSxcbiAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJyA6ICFzZWxlY3RDb25maWdbJ2ljb25QcmVmaXhDb2xvciddXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIShzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoKHNlbGVjdENvbmZpZz8uWydpY29uUHJlZml4VG9vbHRpcCddIHx8ICcnKSB8IHRyYW5zbGF0ZSlcIlxuICAgID57eyBzZWxlY3RDb25maWcuaWNvblByZWZpeCB9fVxuICAgIDwvbWF0LWljb24+XG5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJzZWxlY3RDb25maWdbJ2ljb25QcmVmaXhTdmcnXVwiXG4gICAgICAgICAgICAgIG1hdFByZWZpeFxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCIoKHNlbGVjdENvbmZpZz8uWydpY29uUHJlZml4VG9vbHRpcCddIHx8ICcnKSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICBbc3ZnSWNvbl09XCJzZWxlY3RDb25maWdbJ2ljb25QcmVmaXhTdmcnXSB8fCAnJ1wiXG4gICAgPjwvbWF0LWljb24+XG5cbiAgICA8aS10ZWNoLWljb24tYnV0dG9uXG4gICAgICAqbmdJZj1cInNlbGVjdENvbmZpZy5zZWFyY2ggJiYgc2VsZWN0Q29uZmlnLmNsZWFyYWJsZSAmJiAhbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQgJiYgISFuZ0NvbnRyb2wuY29udHJvbC52YWx1ZVwiXG4gICAgICBpY29uTmFtZT1cImNhbmNlbFwiXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgZmFsc2VcIlxuICAgICAgW25nQ2xhc3NdPVwic2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkID8gJ3JlYWRvbmx5LWNvbG9yJyA6ICdkZWZhdWx0LWZvcm0taWNvbi1jb2xvcidcIlxuICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBuZ0NvbnRyb2wuY29udHJvbC5yZXNldChudWxsKTtcbiAgICAgICAgbWF0U2VsZWN0Ll9vbkJsdXIoKTtcbiAgICAgICAgY2xvc2VQYW5lbEFuZFVuc2V0Rm9jdXMoKVxuICAgICAgXCJcbiAgICA+XG4gICAgPC9pLXRlY2gtaWNvbi1idXR0b24+XG4gICAgPG1hdC1pY29uXG4gICAgICBtYXRTdWZmaXhcbiAgICAgIGNsYXNzPVwic2VsZWN0LWFycm93XCJcbiAgICAgIFtjbGFzcy5vcGVuXT1cIm1hdFNlbGVjdC5wYW5lbE9wZW5cIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3JlYWRvbmx5LWNvbG9yJzogc2VsZWN0Q29uZmlnLnJlYWRPbmx5IHx8IG5nQ29udHJvbC5jb250cm9sLmRpc2FibGVkLFxuICAgICAgICAgICAgJ2RlZmF1bHQtZm9ybS1pY29uLWNvbG9yJzogIShzZWxlY3RDb25maWcucmVhZE9ubHkgfHwgbmdDb250cm9sLmNvbnRyb2wuZGlzYWJsZWQpLFxuICAgICAgICAgICAgJ210LTgnOiAhIW5nQ29udHJvbC5jb250cm9sLnZhbHVlICYmIHNlbGVjdENvbmZpZy5jbGVhcmFibGVcbiAgICAgICAgIH1cIlxuICAgID5cbiAgICAgIGtleWJvYXJkX2Fycm93X2Rvd25cbiAgICA8L21hdC1pY29uPlxuICAgIDwhLS0gRXJyb3IgTWVzc2FnZSAtLT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiISEobmdDb250cm9sLmNvbnRyb2wuZXJyb3JzICYmIHN1Ym1pdFZhbHVlKVwiPlxuICAgICAge3sgbmdDb250cm9sLmNvbnRyb2wgfCBnZW5lcmF0ZUVycm9yTWVzc2FnZXMgOiBzZWxlY3RDb25maWcubGFiZWwgOiBzZWxlY3RDb25maWcuZGVmYXVsdFBhdHRlcm5LZXkgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8IS0tIFJlc2V0IEJ1dHRvbiAtLT5cbiAgPGktdGVjaC1jbGVhci12YWx1ZSAqbmdJZj1cInNlbGVjdENvbmZpZy5yZXNldFwiIChyZXNldFZhbHVlKT1cInJlc2V0VmFsdWUoKVwiPjwvaS10ZWNoLWNsZWFyLXZhbHVlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -14,12 +14,13 @@ export class MenuComponent {
|
|
|
14
14
|
this.positionX = 'before';
|
|
15
15
|
this.menuOptions = [];
|
|
16
16
|
this.emitEvent = new EventEmitter();
|
|
17
|
+
this.loading = false;
|
|
17
18
|
this.ButtonType = ButtonType;
|
|
18
19
|
this.DropdownItemIcon = DropdownItemIcon;
|
|
19
20
|
this.matMenuState = false;
|
|
20
21
|
}
|
|
21
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", positionX: "positionX", menuOptions: "menuOptions" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", positionX: "positionX", menuOptions: "menuOptions", loading: "loading" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <ng-container *ngIf=\"!loading\">\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n </ng-container>\n\n <ng-container *ngIf=\"loading\">\n <i-tech-button\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n [submit]=\"true\"\n [disabled]=\"true\"\n [activated]=\"false\"\n ></i-tech-button>\n </ng-container>\n\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}.custom_dropdown_container .loader-container{display:flex;justify-content:center;align-items:center}mat-menu{height:max-content}\n"], dependencies: [{ kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "i-tech-button", inputs: ["text", "data_cy", "fontIcon", "svgIcon", "type", "customClass", "submit", "disabled", "activated", "color"], outputs: ["buttonClick"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
|
|
23
24
|
}
|
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, decorators: [{
|
|
25
26
|
type: Component,
|
|
@@ -34,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34
35
|
NgClass,
|
|
35
36
|
ButtonComponent,
|
|
36
37
|
MatLabel
|
|
37
|
-
], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n
|
|
38
|
+
], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <ng-container *ngIf=\"!loading\">\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n </ng-container>\n\n <ng-container *ngIf=\"loading\">\n <i-tech-button\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n [submit]=\"true\"\n [disabled]=\"true\"\n [activated]=\"false\"\n ></i-tech-button>\n </ng-container>\n\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}.custom_dropdown_container .loader-container{display:flex;justify-content:center;align-items:center}mat-menu{height:max-content}\n"] }]
|
|
38
39
|
}], propDecorators: { text: [{
|
|
39
40
|
type: Input
|
|
40
41
|
}], dataName: [{
|
|
@@ -47,5 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
47
48
|
type: Input
|
|
48
49
|
}], emitEvent: [{
|
|
49
50
|
type: Output
|
|
51
|
+
}], loading: [{
|
|
52
|
+
type: Input
|
|
50
53
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUF5QixNQUFNLCtDQUErQyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQW9CeEQsTUFBTSxPQUFPLGFBQWE7SUFsQjFCO1FBc0JXLGNBQVMsR0FBa0IsUUFBUSxDQUFDO1FBQ3BDLGdCQUFXLEdBTWYsRUFBRSxDQUFDO1FBQ0UsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNOLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDdkQsaUJBQVksR0FBRyxLQUFLLENBQUM7S0FDdEI7K0dBakJZLGFBQWE7bUdBQWIsYUFBYSxzUUM1QjFCLHUxQ0FrQ0EsMFBEcEJJLGNBQWMscVNBQ2QsT0FBTywyUUFDUCxPQUFPLDJJQUNQLElBQUksNkZBQ0osT0FBTyxtSEFDUCxXQUFXLHFJQUNYLGVBQWUsNEZBQ2YsT0FBTyxvRkFDUCxlQUFlLDJNQUNmLFFBQVE7OzRGQUtDLGFBQWE7a0JBbEJ6QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixPQUFPO3dCQUNQLGVBQWU7d0JBQ2YsUUFBUTtxQkFDVDs4QkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFPSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9idXR0b24tdHlwZXMuZW51bVwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtSWNvbiwgRHJvcGRvd25TZWxlY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvZHJvcGRvd24tc2VsZWN0aW9uLmNvbnN0YW50c1wiO1xuaW1wb3J0IHsgTWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyLCBNZW51UG9zaXRpb25YIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IE1hdExhYmVsIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImktdGVjaC1tZW51XCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRNZW51VHJpZ2dlcixcbiAgICBNYXRNZW51LFxuICAgIE1hdEljb24sXG4gICAgTmdJZixcbiAgICBOZ0Zvck9mLFxuICAgIE1hdE1lbnVJdGVtLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRMYWJlbFxuICBdLFxuICB0ZW1wbGF0ZVVybDogXCIuL21lbnUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL21lbnUuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRleHQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRhdGFOYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjb250YWluZXJDbGFzcyE6IHN0cmluZztcbiAgQElucHV0KCkgcG9zaXRpb25YOiBNZW51UG9zaXRpb25YID0gJ2JlZm9yZSc7XG4gIEBJbnB1dCgpIG1lbnVPcHRpb25zOiBBcnJheTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgc3JjPzogc3RyaW5nO1xuICAgIGNsYXNzPzogc3RyaW5nO1xuICAgIHR5cGU/OiBEcm9wZG93blNlbGVjdGlvblR5cGU7XG4gIH0+ID0gW107XG4gIEBPdXRwdXQoKSBlbWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQnV0dG9uVHlwZSA9IEJ1dHRvblR5cGU7XG4gIHByb3RlY3RlZCByZWFkb25seSBEcm9wZG93bkl0ZW1JY29uID0gRHJvcGRvd25JdGVtSWNvbjtcbiAgbWF0TWVudVN0YXRlID0gZmFsc2U7XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tX2Ryb3Bkb3duX2NvbnRhaW5lclwiXG4gICAgIFthdHRyLmRhdGEtbmFtZV09XCJkYXRhTmFtZVwiXG4gICAgIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICAgICAgPGktdGVjaC1idXR0b25cbiAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiQnV0dG9uVHlwZS5PVVRMSU5FXCJcbiAgICAgICAgICAgICAgICBbZm9udEljb25dPVwiJ2tleWJvYXJkX2Fycm93X2Rvd24nXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodGV4dCB8fCAnJykgXCJcbiAgICAgICAgICAgICAgICAobWVudU9wZW5lZCk9XCJtYXRNZW51U3RhdGUgID0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG1lbnVDbG9zZWQpPVwibWF0TWVudVN0YXRlICA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZhdGVkXT1cIm1hdE1lbnVTdGF0ZVwiXG4gICAgICAgID48L2ktdGVjaC1idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8aS10ZWNoLWJ1dHRvblxuICAgICAgICAgICAgICAgIFt0eXBlXT1cIkJ1dHRvblR5cGUuT1VUTElORVwiXG4gICAgICAgICAgICAgICAgW2ZvbnRJY29uXT1cIidrZXlib2FyZF9hcnJvd19kb3duJ1wiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiKHRleHQgfHwgJycpIFwiXG4gICAgICAgICAgICAgICAgW3N1Ym1pdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2FjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgICAgID48L2ktdGVjaC1idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bWF0LW1lbnUgI2JlZm9yZU1lbnU9XCJtYXRNZW51XCIgW3hQb3NpdGlvbl09XCJwb3NpdGlvblhcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbWVudU9wdGlvbnNcIiAoY2xpY2spPVwiZW1pdEV2ZW50LmVtaXQob3B0aW9uLnZhbHVlKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwib3B0aW9uLnR5cGVcIiBbc3ZnSWNvbl09XCJEcm9wZG93bkl0ZW1JY29uW29wdGlvbi50eXBlXVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibWV1X2l0ZW1fbGFiZWxcIj57eyhvcHRpb24udGV4dCB8fCAnJykgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC1tZW51PlxuPC9kaXY+XG4iXX0=
|
|
@@ -642,7 +642,7 @@ class AutocompleteSelectComponent {
|
|
|
642
642
|
this.emitAction = new EventEmitter();
|
|
643
643
|
this.pending = false;
|
|
644
644
|
this.data = [];
|
|
645
|
-
this.paginationData = { current: 1, last: 0 };
|
|
645
|
+
this.paginationData = { current: 1, last: 0, searchValue: '' };
|
|
646
646
|
this.firstRequest = false;
|
|
647
647
|
this.showPlaceholder = true;
|
|
648
648
|
this.isNeededForRecall = false;
|
|
@@ -707,8 +707,9 @@ class AutocompleteSelectComponent {
|
|
|
707
707
|
if (fromSearch) {
|
|
708
708
|
this.paginationData.current = 1;
|
|
709
709
|
this.accessToNextRequest = true;
|
|
710
|
+
this.paginationData.searchValue = searchText || '';
|
|
710
711
|
}
|
|
711
|
-
const functionToDo = this.selectConfig.paginate(this.paginationData.current,
|
|
712
|
+
const functionToDo = this.selectConfig.paginate(this.paginationData.current, this.paginationData?.searchValue || '');
|
|
712
713
|
this.requestLoading = true;
|
|
713
714
|
functionToDo?.subscribe((data) => {
|
|
714
715
|
const dataToAdd = ('content' in data) ? data.content : data;
|
|
@@ -955,7 +956,7 @@ class AutocompleteSelectComponent {
|
|
|
955
956
|
this.pending = true;
|
|
956
957
|
this.paginationData = {
|
|
957
958
|
current: 1,
|
|
958
|
-
last: 0
|
|
959
|
+
last: 0,
|
|
959
960
|
};
|
|
960
961
|
this.accessToNextRequest = true;
|
|
961
962
|
if ((typeof this.selectConfig.paginate) === 'function') {
|
|
@@ -1365,12 +1366,13 @@ class MenuComponent {
|
|
|
1365
1366
|
this.positionX = 'before';
|
|
1366
1367
|
this.menuOptions = [];
|
|
1367
1368
|
this.emitEvent = new EventEmitter();
|
|
1369
|
+
this.loading = false;
|
|
1368
1370
|
this.ButtonType = ButtonType;
|
|
1369
1371
|
this.DropdownItemIcon = DropdownItemIcon;
|
|
1370
1372
|
this.matMenuState = false;
|
|
1371
1373
|
}
|
|
1372
1374
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1373
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", positionX: "positionX", menuOptions: "menuOptions" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n
|
|
1375
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuComponent, isStandalone: true, selector: "i-tech-menu", inputs: { text: "text", dataName: "dataName", containerClass: "containerClass", positionX: "positionX", menuOptions: "menuOptions", loading: "loading" }, outputs: { emitEvent: "emitEvent" }, ngImport: i0, template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <ng-container *ngIf=\"!loading\">\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n </ng-container>\n\n <ng-container *ngIf=\"loading\">\n <i-tech-button\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n [submit]=\"true\"\n [disabled]=\"true\"\n [activated]=\"false\"\n ></i-tech-button>\n </ng-container>\n\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}.custom_dropdown_container .loader-container{display:flex;justify-content:center;align-items:center}mat-menu{height:max-content}\n"], dependencies: [{ kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "i-tech-button", inputs: ["text", "data_cy", "fontIcon", "svgIcon", "type", "customClass", "submit", "disabled", "activated", "color"], outputs: ["buttonClick"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }] }); }
|
|
1374
1376
|
}
|
|
1375
1377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuComponent, decorators: [{
|
|
1376
1378
|
type: Component,
|
|
@@ -1385,7 +1387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1385
1387
|
NgClass,
|
|
1386
1388
|
ButtonComponent,
|
|
1387
1389
|
MatLabel
|
|
1388
|
-
], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <i-tech-button\n
|
|
1390
|
+
], template: "<div class=\"custom_dropdown_container\"\n [attr.data-name]=\"dataName\"\n [ngClass]=\"containerClass\"\n>\n <ng-container *ngIf=\"!loading\">\n <i-tech-button\n [matMenuTriggerFor]=\"beforeMenu\"\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n (menuOpened)=\"matMenuState = true\"\n (menuClosed)=\"matMenuState = false\"\n [activated]=\"matMenuState\"\n ></i-tech-button>\n </ng-container>\n\n <ng-container *ngIf=\"loading\">\n <i-tech-button\n [type]=\"ButtonType.OUTLINE\"\n [fontIcon]=\"'keyboard_arrow_down'\"\n [text]=\"(text || '') \"\n [submit]=\"true\"\n [disabled]=\"true\"\n [activated]=\"false\"\n ></i-tech-button>\n </ng-container>\n\n <mat-menu #beforeMenu=\"matMenu\" [xPosition]=\"positionX\">\n <button mat-menu-item *ngFor=\"let option of menuOptions\" (click)=\"emitEvent.emit(option.value)\">\n <mat-icon *ngIf=\"option.type\" [svgIcon]=\"DropdownItemIcon[option.type]\"></mat-icon>\n <mat-label class=\"meu_item_label\">{{(option.text || '') | translate}}</mat-label>\n </button>\n </mat-menu>\n</div>\n", styles: [".custom_dropdown_container i-tech-button{display:inline-block}.custom_dropdown_container .loader-container{display:flex;justify-content:center;align-items:center}mat-menu{height:max-content}\n"] }]
|
|
1389
1391
|
}], propDecorators: { text: [{
|
|
1390
1392
|
type: Input
|
|
1391
1393
|
}], dataName: [{
|
|
@@ -1398,6 +1400,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1398
1400
|
type: Input
|
|
1399
1401
|
}], emitEvent: [{
|
|
1400
1402
|
type: Output
|
|
1403
|
+
}], loading: [{
|
|
1404
|
+
type: Input
|
|
1401
1405
|
}] } });
|
|
1402
1406
|
|
|
1403
1407
|
class LabelComponent {
|