@mozaic-ds/angular 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adeo/esm2020/components/autocomplete/autocomplete.component.mjs +2 -2
- package/adeo/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
- package/adeo/esm2020/components/listbox/listbox.component.mjs +2 -2
- package/adeo/fesm2015/mozaic-ds-angular.mjs +5 -5
- package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/fesm2020/mozaic-ds-angular.mjs +5 -5
- package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/package.json +1 -1
- package/bricoman/esm2020/components/autocomplete/autocomplete.component.mjs +2 -2
- package/bricoman/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
- package/bricoman/esm2020/components/listbox/listbox.component.mjs +2 -2
- package/bricoman/fesm2015/mozaic-ds-angular.mjs +5 -5
- package/bricoman/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/fesm2020/mozaic-ds-angular.mjs +5 -5
- package/bricoman/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/package.json +1 -1
- package/esm2020/components/autocomplete/autocomplete.component.mjs +2 -2
- package/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
- package/esm2020/components/listbox/listbox.component.mjs +2 -2
- package/fesm2015/mozaic-ds-angular.mjs +5 -5
- package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/fesm2020/mozaic-ds-angular.mjs +5 -5
- package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -144,7 +144,7 @@ export class AutocompleteComponent {
|
|
|
144
144
|
this.invalid = false;
|
|
145
145
|
if (this.searchValue.length > 0) {
|
|
146
146
|
this.listboxItems = [
|
|
147
|
-
...this.initialListboxItems.filter((listboxItem) => listboxItem.label.includes(this.searchValue)),
|
|
147
|
+
...this.initialListboxItems.filter((listboxItem) => listboxItem.label.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase())),
|
|
148
148
|
];
|
|
149
149
|
if (this.listboxItems.length === 0) {
|
|
150
150
|
this.openState = false;
|
|
@@ -242,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
242
242
|
}], searchValue: [{
|
|
243
243
|
type: Input
|
|
244
244
|
}] } });
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQW1CekUsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxLQUFhO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUE1Q3pCLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsYUFBYSxDQUFDO1FBQ3BDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsWUFB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aGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGlzdGJveEl0ZW0gfSBmcm9tICcuLi9saXN0Ym94L21vZGVsL2xpc3Rib3gtaXRlbSc7XG5pbXBvcnQgeyBUYWdsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdGFnbGlzdC90YWdsaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdJdGVtIH0gZnJvbSAnLi4vdGFnL3RhZy10eXBlJztcbmltcG9ydCB7IFRleHRJbnB1dFNpemUgfSBmcm9tICcuLi90ZXh0LWlucHV0L3RleHQtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb3otYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdGJveEl0ZW1zOiBMaXN0Ym94SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdQbGFjZWhvbGRlcic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJmaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNpemU6IFRleHRJbnB1dFNpemUgPSAncyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93U2VsZWN0ZWRUYWc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dUYWdMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhTaG93aW5nU2VsZWN0ZWRUYWdzOiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSBwdWJsaWMgbGF5ZXJUYWdzVGl0bGU6IHN0cmluZyA9ICdBdXRvY29tcGxldGUgdGFncyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYXllclRhZ3NJY29uOiBzdHJpbmcgPSAnTmF2aWdhdGlvbl9EaXNwbGF5X1NldHRpbmdfMjRweCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBlcnJvckNvbnRlbnRUZXh0OiBzdHJpbmcgPSAnTm8gcmVzdWx0cyBmb3VuZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyB3aXRoU2VhcmNoRmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIG9wZW5TdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxDbGVhckJ1dHRvbjogc3RyaW5nID0gJ0NsZWFyJztcblxuICBAT3V0cHV0KCkgcHVibGljIHNlYXJjaFVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBpbnB1dENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2Nyb2xsRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGlzT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCd0YWdsaXN0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHRhZ2xpc3RDb21wb25lbnQhOiBUYWdsaXN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBvcmlnaW5hbExpc3Rib3hQYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBpbml0aWFsTGlzdGJveEl0ZW1zOiBMaXN0Ym94SXRlbVtdID0gW107XG4gIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG4gIHB1YmxpYyBub1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX3NlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBnZXQgc2VhcmNoVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2VhcmNoVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3NlYXJjaFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbExpc3Rib3hJdGVtcyA9IHRoaXMubGlzdGJveEl0ZW1zLm1hcCgoeCkgPT4gKHsgLi4ueCB9KSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgdmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAodmFsdWUgYXMgTGlzdGJveEl0ZW0pLmxhYmVsIHx8ICcnO1xuICAgIH1cbiAgICB0aGlzLm5vUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9wZW5DaGFuZ2VFdmVudCgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzT3Blbi5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb3Blbkxpc3Rib3goKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuU3RhdGUgPSB0cnVlO1xuICAgIHRoaXMuaW5wdXRDbGlja2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VMaXN0Ym94KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5saXN0Ym94SXRlbXMgPSB0aGlzLmluaXRpYWxMaXN0Ym94SXRlbXM7XG4gIH1cblxuICBwdWJsaWMgaXRlbXNTZWxlY3RlZExpc3Rib3hFdmVudChsaXN0Ym94SXRlbVNlbGVjdGVkOiBMaXN0Ym94SXRlbVtdIHwgTGlzdGJveEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAobGlzdGJveEl0ZW1TZWxlY3RlZCBhcyBMaXN0Ym94SXRlbSkubGFiZWw7XG4gICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgIH1cbiAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLndyaXRlVmFsdWUobGlzdGJveEl0ZW1TZWxlY3RlZCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJGaWVsZEV2ZW50KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5vcGVuU3RhdGUgPSBmYWxzZTtcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TXVsdGlTZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHJldHVybiAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pXG4gICAgICAgIC5tYXAoKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLmxhYmVsKVxuICAgICAgICAuam9pbignLCAnKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCk6IExpc3Rib3hJdGVtW10ge1xuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbSgpOiBMaXN0Ym94SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5DbGVhckZpZWxkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGVhcmZpZWxkICYmIHRoaXMuZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbXMoKS5sZW5ndGggPiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGVhcmZpZWxkICYmIHRoaXMuZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbSgpICE9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKTogVGFnSXRlbVtdIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtcykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5tYXAoXG4gICAgICAoc2VsZWN0ZWRJdGVtKSA9PiAoeyBpZDogc2VsZWN0ZWRJdGVtLnZhbHVlLCBsYWJlbDogc2VsZWN0ZWRJdGVtLmxhYmVsIH0gYXMgVGFnSXRlbSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVRhZ0V2ZW50KCRldmVudDogVGFnSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSAodGhpcy5zZWxlY3RlZEl0ZW1zIGFzIExpc3Rib3hJdGVtW10pLmZpbHRlcihcbiAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS52YWx1ZSAhPT0gJGV2ZW50LmlkXG4gICAgKTtcbiAgICB0aGlzLndyaXRlVmFsdWUoc2VsZWN0ZWRJdGVtcyk7XG4gICAgdGhpcy50YWdsaXN0Q29tcG9uZW50LnVwZGF0ZVRhZ2xpc3RMYXllckNvbmZpZyh0aGlzLmdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKSk7XG4gICAgaWYgKHRoaXMuZ2V0VGFnSXRlbXNGcm9tU2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50YWdsaXN0Q29tcG9uZW50LmNsb3NlVGFnbGlzdExheWVyKCk7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEV2ZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndpdGhTZWFyY2hGaWx0ZXIpIHtcbiAgICAgIHRoaXMubm9SZXN1bHRzID0gZmFsc2U7XG4gICAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLnNlYXJjaFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5saXN0Ym94SXRlbXMgPSBbXG4gICAgICAgICAgLi4udGhpcy5pbml0aWFsTGlzdGJveEl0ZW1zLmZpbHRlcigobGlzdGJveEl0ZW0pID0+XG4gICAgICAgICAgICBsaXN0Ym94SXRlbS5sYWJlbC5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlKVxuICAgICAgICAgICksXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLmxpc3Rib3hJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm9SZXN1bHRzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmludmFsaWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saXN0Ym94SXRlbXMgPSB0aGlzLmluaXRpYWxMaXN0Ym94SXRlbXM7XG4gICAgICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWFyY2hVcGRhdGVkLmVtaXQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNpbkV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMub3Blbkxpc3Rib3goKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c291dEV2ZW50KCRldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCRldmVudC5yZWxhdGVkVGFyZ2V0ICYmICEkZXZlbnQucmVsYXRlZFRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ21jLWxpc3Rib3hfX2xpc3QnKSkge1xuICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsRW5kRXZlbnQoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxFbmQuZW1pdCgkZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGlkPVwianMtYXV0b2NvbXBsZXRlXCJcbiAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGUgbWMtYXV0b2NvbXBsZXRlLS1jbGVhcmFibGVcIlxuICBbbmdDbGFzc109XCJ7ICdtYy1hdXRvY29tcGxldGUtLW11bHRpJzogbXVsdGlwbGUgfVwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICAnLS1hdXRvY29tcGxldGUtdGFnLXdpZHRoJzpcbiAgICAgIHNob3dTZWxlY3RlZFRhZyAmJiBtdWx0aXBsZSAmJiBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpLmxlbmd0aCA+IDAgPyAnMy41cmVtJyA6ICcnLFxuICAgICctLWF1dG9jb21wbGV0ZS13aWR0aCc6ICcxMDAlJ1xuICB9XCJcbj5cbiAgPG1vei1saXN0Ym94XG4gICAgI2xpc3Rib3hcbiAgICBbbGlzdGJveEl0ZW1zXT1cImxpc3Rib3hJdGVtc1wiXG4gICAgWyhpc09wZW4pXT1cIm9wZW5TdGF0ZVwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICAoaXRlbXNTZWxlY3RlZCk9XCJpdGVtc1NlbGVjdGVkTGlzdGJveEV2ZW50KCRldmVudClcIlxuICAgIChzY3JvbGxFbmQpPVwic2Nyb2xsRW5kRXZlbnQoJGV2ZW50KVwiXG4gICAgKGlzT3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX19tYWluXCIgcmVmZXJlbmNlPlxuICAgICAgPG1vei10YWdcbiAgICAgICAgKm5nSWY9XCJzaG93U2VsZWN0ZWRUYWcgJiYgbXVsdGlwbGUgJiYgZ2V0U2VsZWN0ZWRMaXN0Ym94SXRlbXMoKS5sZW5ndGggPiAwXCJcbiAgICAgICAgdHlwZT1cInJlbW92YWJsZVwiXG4gICAgICAgIGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX190YWcgbWMtdGFnLXJlbW92YWJsZSBtYy10YWctcmVtb3ZhYmxlLS1zXCJcbiAgICAgICAgW3NpemVdPVwiJ3MnXCJcbiAgICAgICAgKGNsaWNrT25SZW1vdmUpPVwiY2xlYXJGaWVsZEV2ZW50KClcIlxuICAgICAgPlxuICAgICAgICB7eyBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpLmxlbmd0aCB9fTwvbW96LXRhZ1xuICAgICAgPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibWMtbGVmdC1pY29uLWlucHV0XCI+XG4gICAgICAgIDxtb3otaWNvblxuICAgICAgICAgIGNsYXNzPVwibWMtbGVmdC1pY29uLWlucHV0X19pY29uXCJcbiAgICAgICAgICBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fRGlzcGxheV9TZWFyY2hfMjRweCdcIlxuICAgICAgICA+PC9tb3otaWNvbj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbW96LWlucHV0XG4gICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICBbaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICAgICAgICBjbGFzcz1cIm1jLWxlZnQtaWNvbi1pbnB1dF9faW5wdXQgbWMtdGV4dC1pbnB1dCBtYy1hdXRvY29tcGxldGVfX3RyaWdnZXJcIlxuICAgICAgICAgIFt2YWxpZF09XCJ2YWxpZFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaEV2ZW50KClcIlxuICAgICAgICAgIChmb2N1c2luKT1cImZvY3VzaW5FdmVudCgpXCJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwiZm9jdXNvdXRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2spPVwib3Blbkxpc3Rib3goKVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fdG9vbHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fbG9hZGVyIG1jLWxvYWRlciBtYy1sb2FkZXItLXNcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1jLWxvYWRlcl9fc3Bpbm5lclwiPlxuICAgICAgICAgICAgPG1vei1sb2FkZXIgY2xhc3M9XCJtYy1sb2FkZXJfX2ljb25cIiBzaXplPVwic1wiPjwvbW96LWxvYWRlcj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2NsZWFyXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImNhbkNsZWFyRmllbGQoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmllbGRFdmVudCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtb3otaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2NsZWFyLWljb25cIlxuICAgICAgICAgICAgW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfVGFnLS1Dcm9zc18yNHB4J1wiXG4gICAgICAgICAgPjwvbW96LWljb25cbiAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2NsZWFyLXRleHRcIj57eyBsYWJlbENsZWFyQnV0dG9uIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21vei1saXN0Ym94PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX19lcnJvclwiICpuZ0lmPVwiaW52YWxpZFwiPlxuICB7eyBlcnJvckNvbnRlbnRUZXh0IH19XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX3RhZ2xpc3RcIiAqbmdJZj1cInNob3dUYWdMaXN0ICYmIG11bHRpcGxlICYmICFvcGVuU3RhdGVcIj5cbiAgPG1vei10YWdsaXN0XG4gICAgI3RhZ2xpc3RcbiAgICAocmVtb3ZlVGFnKT1cInJlbW92ZVRhZ0V2ZW50KCRldmVudClcIlxuICAgIFt0YWdJdGVtc109XCJnZXRUYWdJdGVtc0Zyb21TZWxlY3RlZEl0ZW1zKClcIlxuICAgIFttYXhdPVwibWF4U2hvd2luZ1NlbGVjdGVkVGFnc1wiXG4gICAgW2xheWVyVGFnc1RpdGxlXT1cImxheWVyVGFnc1RpdGxlXCJcbiAgICBbbGF5ZXJUYWdzSWNvbl09XCJsYXllclRhZ3NJY29uXCJcbiAgPjwvbW96LXRhZ2xpc3Q+XG48L2Rpdj5cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQW1CekUsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxLQUFhO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUE1Q3pCLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsYUFBYSxDQUFDO1FBQ3BDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsWUFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExpc3Rib3hJdGVtIH0gZnJvbSAnLi4vbGlzdGJveC9tb2RlbC9saXN0Ym94LWl0ZW0nO1xuaW1wb3J0IHsgVGFnbGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3RhZ2xpc3QvdGFnbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFnSXRlbSB9IGZyb20gJy4uL3RhZy90YWctdHlwZSc7XG5pbXBvcnQgeyBUZXh0SW5wdXRTaXplIH0gZnJvbSAnLi4vdGV4dC1pbnB1dC90ZXh0LWlucHV0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW96LWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgcHVibGljIGxpc3Rib3hJdGVtczogTGlzdGJveEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnUGxhY2Vob2xkZXInO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNsZWFyZmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiBUZXh0SW5wdXRTaXplID0gJ3MnO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd1NlbGVjdGVkVGFnOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93VGFnTGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbWF4U2hvd2luZ1NlbGVjdGVkVGFnczogbnVtYmVyID0gNTtcbiAgQElucHV0KCkgcHVibGljIGxheWVyVGFnc1RpdGxlOiBzdHJpbmcgPSAnQXV0b2NvbXBsZXRlIHRhZ3MnO1xuICBASW5wdXQoKSBwdWJsaWMgbGF5ZXJUYWdzSWNvbjogc3RyaW5nID0gJ05hdmlnYXRpb25fRGlzcGxheV9TZXR0aW5nXzI0cHgnO1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3JDb250ZW50VGV4dDogc3RyaW5nID0gJ05vIHJlc3VsdHMgZm91bmQnO1xuICBASW5wdXQoKSBwdWJsaWMgd2l0aFNlYXJjaEZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBvcGVuU3RhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxhYmVsQ2xlYXJCdXR0b246IHN0cmluZyA9ICdDbGVhcic7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzZWFyY2hVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgaW5wdXRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHNjcm9sbEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBpc09wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGFnbGlzdCcsIHsgc3RhdGljOiBmYWxzZSB9KSB0YWdsaXN0Q29tcG9uZW50ITogVGFnbGlzdENvbXBvbmVudDtcblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogTGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgb3JpZ2luYWxMaXN0Ym94UGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgaW5pdGlhbExpc3Rib3hJdGVtczogTGlzdGJveEl0ZW1bXSA9IFtdO1xuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgbm9SZXN1bHRzOiBib29sZWFuID0gZmFsc2U7XG4gIF9zZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgZ2V0IHNlYXJjaFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlYXJjaFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zZWFyY2hWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxMaXN0Ym94SXRlbXMgPSB0aGlzLmxpc3Rib3hJdGVtcy5tYXAoKHgpID0+ICh7IC4uLnggfSkpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gKHZhbHVlIGFzIExpc3Rib3hJdGVtKS5sYWJlbCB8fCAnJztcbiAgICB9XG4gICAgdGhpcy5ub1Jlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2goKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQ2hhbmdlRXZlbnQoJGV2ZW50OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4uZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9wZW5MaXN0Ym94KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblN0YXRlID0gdHJ1ZTtcbiAgICB0aGlzLmlucHV0Q2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTGlzdGJveCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TdGF0ZSA9IGZhbHNlO1xuICAgIHRoaXMubGlzdGJveEl0ZW1zID0gdGhpcy5pbml0aWFsTGlzdGJveEl0ZW1zO1xuICB9XG5cbiAgcHVibGljIGl0ZW1zU2VsZWN0ZWRMaXN0Ym94RXZlbnQobGlzdGJveEl0ZW1TZWxlY3RlZDogTGlzdGJveEl0ZW1bXSB8IExpc3Rib3hJdGVtKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gKGxpc3Rib3hJdGVtU2VsZWN0ZWQgYXMgTGlzdGJveEl0ZW0pLmxhYmVsO1xuICAgICAgdGhpcy5jbG9zZUxpc3Rib3goKTtcbiAgICB9XG4gICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy53cml0ZVZhbHVlKGxpc3Rib3hJdGVtU2VsZWN0ZWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyRmllbGRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE11bHRpU2VsZWN0ZWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKVxuICAgICAgICAubWFwKChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS5sYWJlbClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpOiBMaXN0Ym94SXRlbVtdIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGVkTGlzdGJveEl0ZW0oKTogTGlzdGJveEl0ZW0gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgY2FuQ2xlYXJGaWVsZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJmaWVsZCAmJiB0aGlzLmdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xlYXJmaWVsZCAmJiB0aGlzLmdldFNlbGVjdGVkTGlzdGJveEl0ZW0oKSAhPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUYWdJdGVtc0Zyb21TZWxlY3RlZEl0ZW1zKCk6IFRhZ0l0ZW1bXSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkSXRlbXMgYXMgTGlzdGJveEl0ZW1bXSkubWFwKFxuICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gKHsgaWQ6IHNlbGVjdGVkSXRlbS52YWx1ZSwgbGFiZWw6IHNlbGVjdGVkSXRlbS5sYWJlbCB9IGFzIFRhZ0l0ZW0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVUYWdFdmVudCgkZXZlbnQ6IFRhZ0l0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gKHRoaXMuc2VsZWN0ZWRJdGVtcyBhcyBMaXN0Ym94SXRlbVtdKS5maWx0ZXIoXG4gICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgIT09ICRldmVudC5pZFxuICAgICk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkSXRlbXMpO1xuICAgIHRoaXMudGFnbGlzdENvbXBvbmVudC51cGRhdGVUYWdsaXN0TGF5ZXJDb25maWcodGhpcy5nZXRUYWdJdGVtc0Zyb21TZWxlY3RlZEl0ZW1zKCkpO1xuICAgIGlmICh0aGlzLmdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMudGFnbGlzdENvbXBvbmVudC5jbG9zZVRhZ2xpc3RMYXllcigpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy53aXRoU2VhcmNoRmlsdGVyKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0cyA9IGZhbHNlO1xuICAgICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubGlzdGJveEl0ZW1zID0gW1xuICAgICAgICAgIC4uLnRoaXMuaW5pdGlhbExpc3Rib3hJdGVtcy5maWx0ZXIoKGxpc3Rib3hJdGVtKSA9PlxuICAgICAgICAgICAgbGlzdGJveEl0ZW0ubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpXG4gICAgICAgICAgKSxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMubGlzdGJveEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMub3BlblN0YXRlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub1Jlc3VsdHMgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaW52YWxpZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxpc3Rib3hJdGVtcyA9IHRoaXMuaW5pdGlhbExpc3Rib3hJdGVtcztcbiAgICAgICAgdGhpcy5vcGVuU3RhdGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlYXJjaFVwZGF0ZWQuZW1pdCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c2luRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuTGlzdGJveCgpO1xuICB9XG5cbiAgcHVibGljIGZvY3Vzb3V0RXZlbnQoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LnJlbGF0ZWRUYXJnZXQgJiYgISRldmVudC5yZWxhdGVkVGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnbWMtbGlzdGJveF9fbGlzdCcpKSB7XG4gICAgICB0aGlzLmNsb3NlTGlzdGJveCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxFbmRFdmVudCgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbEVuZC5lbWl0KCRldmVudCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgaWQ9XCJqcy1hdXRvY29tcGxldGVcIlxuICBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZSBtYy1hdXRvY29tcGxldGUtLWNsZWFyYWJsZVwiXG4gIFtuZ0NsYXNzXT1cInsgJ21jLWF1dG9jb21wbGV0ZS0tbXVsdGknOiBtdWx0aXBsZSB9XCJcbiAgW25nU3R5bGVdPVwie1xuICAgICctLWF1dG9jb21wbGV0ZS10YWctd2lkdGgnOlxuICAgICAgc2hvd1NlbGVjdGVkVGFnICYmIG11bHRpcGxlICYmIGdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCkubGVuZ3RoID4gMCA/ICczLjVyZW0nIDogJycsXG4gICAgJy0tYXV0b2NvbXBsZXRlLXdpZHRoJzogJzEwMCUnXG4gIH1cIlxuPlxuICA8bW96LWxpc3Rib3hcbiAgICAjbGlzdGJveFxuICAgIFtsaXN0Ym94SXRlbXNdPVwibGlzdGJveEl0ZW1zXCJcbiAgICBbKGlzT3BlbildPVwib3BlblN0YXRlXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkSXRlbXNcIlxuICAgIChpdGVtc1NlbGVjdGVkKT1cIml0ZW1zU2VsZWN0ZWRMaXN0Ym94RXZlbnQoJGV2ZW50KVwiXG4gICAgKHNjcm9sbEVuZCk9XCJzY3JvbGxFbmRFdmVudCgkZXZlbnQpXCJcbiAgICAoaXNPcGVuQ2hhbmdlKT1cIm9wZW5DaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX21haW5cIiByZWZlcmVuY2U+XG4gICAgICA8bW96LXRhZ1xuICAgICAgICAqbmdJZj1cInNob3dTZWxlY3RlZFRhZyAmJiBtdWx0aXBsZSAmJiBnZXRTZWxlY3RlZExpc3Rib3hJdGVtcygpLmxlbmd0aCA+IDBcIlxuICAgICAgICB0eXBlPVwicmVtb3ZhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX3RhZyBtYy10YWctcmVtb3ZhYmxlIG1jLXRhZy1yZW1vdmFibGUtLXNcIlxuICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAoY2xpY2tPblJlbW92ZSk9XCJjbGVhckZpZWxkRXZlbnQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldFNlbGVjdGVkTGlzdGJveEl0ZW1zKCkubGVuZ3RoIH19PC9tb3otdGFnXG4gICAgICA+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYy1sZWZ0LWljb24taW5wdXRcIj5cbiAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgY2xhc3M9XCJtYy1sZWZ0LWljb24taW5wdXRfX2ljb25cIlxuICAgICAgICAgIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9EaXNwbGF5X1NlYXJjaF8yNHB4J1wiXG4gICAgICAgID48L21vei1pY29uPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtb3otaW5wdXRcbiAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgICAgIGNsYXNzPVwibWMtbGVmdC1pY29uLWlucHV0X19pbnB1dCBtYy10ZXh0LWlucHV0IG1jLWF1dG9jb21wbGV0ZV9fdHJpZ2dlclwiXG4gICAgICAgICAgW3ZhbGlkXT1cInZhbGlkXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoRXZlbnQoKVwiXG4gICAgICAgICAgKGZvY3VzaW4pPVwiZm9jdXNpbkV2ZW50KClcIlxuICAgICAgICAgIChmb2N1c291dCk9XCJmb2N1c291dEV2ZW50KCRldmVudClcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuTGlzdGJveCgpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX190b29sc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWMtYXV0b2NvbXBsZXRlX19sb2FkZXIgbWMtbG9hZGVyIG1jLWxvYWRlci0tc1wiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWMtbG9hZGVyX19zcGlubmVyXCI+XG4gICAgICAgICAgICA8bW96LWxvYWRlciBjbGFzcz1cIm1jLWxvYWRlcl9faWNvblwiIHNpemU9XCJzXCI+PC9tb3otbG9hZGVyPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fY2xlYXJcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiY2FuQ2xlYXJGaWVsZCgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJGaWVsZEV2ZW50KClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgICBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fY2xlYXItaWNvblwiXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwiJ05hdmlnYXRpb25fQ29udHJvbF9UYWctLUNyb3NzXzI0cHgnXCJcbiAgICAgICAgICA+PC9tb3otaWNvblxuICAgICAgICAgID48c3BhbiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fY2xlYXItdGV4dFwiPnt7IGxhYmVsQ2xlYXJCdXR0b24gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbW96LWxpc3Rib3g+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtYy1hdXRvY29tcGxldGVfX2Vycm9yXCIgKm5nSWY9XCJpbnZhbGlkXCI+XG4gIHt7IGVycm9yQ29udGVudFRleHQgfX1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1jLWF1dG9jb21wbGV0ZV9fdGFnbGlzdFwiICpuZ0lmPVwic2hvd1RhZ0xpc3QgJiYgbXVsdGlwbGUgJiYgIW9wZW5TdGF0ZVwiPlxuICA8bW96LXRhZ2xpc3RcbiAgICAjdGFnbGlzdFxuICAgIChyZW1vdmVUYWcpPVwicmVtb3ZlVGFnRXZlbnQoJGV2ZW50KVwiXG4gICAgW3RhZ0l0ZW1zXT1cImdldFRhZ0l0ZW1zRnJvbVNlbGVjdGVkSXRlbXMoKVwiXG4gICAgW21heF09XCJtYXhTaG93aW5nU2VsZWN0ZWRUYWdzXCJcbiAgICBbbGF5ZXJUYWdzVGl0bGVdPVwibGF5ZXJUYWdzVGl0bGVcIlxuICAgIFtsYXllclRhZ3NJY29uXT1cImxheWVyVGFnc0ljb25cIlxuICA+PC9tb3otdGFnbGlzdD5cbjwvZGl2PlxuIl19
|
|
@@ -130,10 +130,10 @@ export class MozDatatableComponent {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
MozDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
-
MozDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableComponent, selector: "moz-datatable", inputs: { footerSettings: "footerSettings", selectionSettings: "selectionSettings", allowAllSelected: "allowAllSelected", datatableSettings: "datatableSettings", tableSummary: "tableSummary" }, outputs: { rowClick: "rowClick", sortColumn: "sortColumn", rowSelected: "rowSelected", rowAllSelected: "rowAllSelected", emptyBodyButtonClicked: "emptyBodyButtonClicked", pageChange: "pageChange", rowPerPageChange: "rowPerPageChange" }, queries: [{ propertyName: "expansionContentComponent", first: true, predicate: MozDatatableRowExpansionContentComponent, descendants: true }, { propertyName: "headerCellComponents", predicate: MozDatatableHeaderCellComponent }, { propertyName: "contentCellComponents", predicate: MozDatatableContentCellComponent }], viewQueries: [{ propertyName: "selectionComponent", first: true, predicate: MozDatatableSelectionComponent, descendants: true }, { propertyName: "thSelectionRef", first: true, predicate: ["thSelection"], descendants: true }, { propertyName: "thSubRowRef", first: true, predicate: ["thSubRow"], descendants: true }], ngImport: i0, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"th-{{ columnDef.field }}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n id=\"checkRow-{{ i }}\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"row-{{ i }}-{{ columnDef.field}}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head small,.mc-datatable__cell small{font-size:.6815rem;line-height:1.2839325018;color:#4d4d4d;display:block;font-weight:400;text-transform:none}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:3}.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:3}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon{fill:#007f8c}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[moz-button]", inputs: ["iconPosition", "onlyIcon", "theme", "variation", "widthBehavior", "size"] }, { kind: "component", type: i4.CheckboxComponent, selector: "moz-checkbox", inputs: ["disabled", "indeterminate", "invalid", "id", "checked"] }, { kind: "component", type: i5.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i6.MozDatatableFooterComponent, selector: "moz-datatable-footer", inputs: ["footerSettings", "isLoading"], outputs: ["rowPerPageChangeEmitter", "pageChangeEmitter"] }, { kind: "component", type: i7.MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: ["selectionSettings", "paginationEnabled", "allowAllSelected", "rowData"], outputs: ["updateSelectionAllEmitter"] }, { kind: "directive", type: i8.MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: ["mozDatatableSort"], outputs: ["sortEmitter"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], encapsulation: i0.ViewEncapsulation.None });
|
|
133
|
+
MozDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableComponent, selector: "moz-datatable", inputs: { footerSettings: "footerSettings", selectionSettings: "selectionSettings", allowAllSelected: "allowAllSelected", datatableSettings: "datatableSettings", tableSummary: "tableSummary" }, outputs: { rowClick: "rowClick", sortColumn: "sortColumn", rowSelected: "rowSelected", rowAllSelected: "rowAllSelected", emptyBodyButtonClicked: "emptyBodyButtonClicked", pageChange: "pageChange", rowPerPageChange: "rowPerPageChange" }, queries: [{ propertyName: "expansionContentComponent", first: true, predicate: MozDatatableRowExpansionContentComponent, descendants: true }, { propertyName: "headerCellComponents", predicate: MozDatatableHeaderCellComponent }, { propertyName: "contentCellComponents", predicate: MozDatatableContentCellComponent }], viewQueries: [{ propertyName: "selectionComponent", first: true, predicate: MozDatatableSelectionComponent, descendants: true }, { propertyName: "thSelectionRef", first: true, predicate: ["thSelection"], descendants: true }, { propertyName: "thSubRowRef", first: true, predicate: ["thSubRow"], descendants: true }], ngImport: i0, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"th-{{ columnDef.field }}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n id=\"checkRow-{{ i }}\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"row-{{ i }}-{{ columnDef.field}}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head small,.mc-datatable__cell small{font-size:.6815rem;line-height:1.2839325018;color:#4d4d4d;display:block;font-weight:400;text-transform:none}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:3}.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:3}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon{fill:#007f8c}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[moz-button]", inputs: ["iconPosition", "onlyIcon", "theme", "variation", "widthBehavior", "size"] }, { kind: "component", type: i4.CheckboxComponent, selector: "moz-checkbox", inputs: ["disabled", "indeterminate", "invalid", "id", "checked"] }, { kind: "component", type: i5.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i6.MozDatatableFooterComponent, selector: "moz-datatable-footer", inputs: ["footerSettings", "isLoading"], outputs: ["rowPerPageChangeEmitter", "pageChangeEmitter"] }, { kind: "component", type: i7.MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: ["selectionSettings", "paginationEnabled", "allowAllSelected", "rowData"], outputs: ["updateSelectionAllEmitter"] }, { kind: "directive", type: i8.MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: ["mozDatatableSort"], outputs: ["sortEmitter"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], encapsulation: i0.ViewEncapsulation.None });
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
|
-
args: [{ selector: 'moz-datatable', encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"th-{{ columnDef.field }}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n id=\"checkRow-{{ i }}\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"row-{{ i }}-{{ columnDef.field}}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head small,.mc-datatable__cell small{font-size:.6815rem;line-height:1.2839325018;color:#4d4d4d;display:block;font-weight:400;text-transform:none}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:3}.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:3}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon{fill:#007f8c}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"] }]
|
|
136
|
+
args: [{ selector: 'moz-datatable', encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"th-{{ columnDef.field }}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n id=\"checkRow-{{ i }}\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"row-{{ i }}-{{ columnDef.field}}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head small,.mc-datatable__cell small{font-size:.6815rem;line-height:1.2839325018;color:#4d4d4d;display:block;font-weight:400;text-transform:none}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:3}.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody>tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody>tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:3}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon{fill:#007f8c}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"] }]
|
|
137
137
|
}], propDecorators: { footerSettings: [{
|
|
138
138
|
type: Input
|
|
139
139
|
}], selectionSettings: [{
|
|
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
177
177
|
type: ContentChild,
|
|
178
178
|
args: [MozDatatableRowExpansionContentComponent]
|
|
179
179
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUc3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVMxSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBU2tCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLHVCQUF1QixDQUFDO1FBRXZELHNCQUFzQjtRQUNaLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSy9ELHlCQUF5QjtRQUNmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FB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LEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBR0Esa0JBQWtCO3NCQUR4QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJL0IsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRXNDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2pDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBSXpDLHFCQUFxQjtzQkFEM0IsZUFBZTt1QkFBQyxnQ0FBZ0M7Z0JBSTFDLHlCQUF5QjtzQkFEL0IsWUFBWTt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm93RGF0YSB9IGZyb20gJy4vbW9kZWwvcm93LWRhdGEnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9tb3otZGF0YXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50L21vei1kYXRhdGFibGUtY29udGVudC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhdGFibGVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWwvZGF0YXRhYmxlLXNldHRpbmdzJztcbmltcG9ydCB7IEZvb3RlclNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbC9mb290ZXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvbW96LWRhdGF0YWJsZS1yb3ctZXhwYW5zaW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gJy4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTZXR0aW5ncz86IEZvb3RlclNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uU2V0dGluZ3M/OiBTZWxlY3Rpb25TZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIGFsbG93QWxsU2VsZWN0ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YXRhYmxlU2V0dGluZ3M/OiBEYXRhdGFibGVTZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIHRhYmxlU3VtbWFyeSA9ICdUYWJsZSBkaXNwbGF5aW5nIGRhdGEnO1xuXG4gIC8vIEZST00gQk9EWSBEQVRBVEFCTEVcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dEYXRhPigpO1xuICBAT3V0cHV0KCkgc29ydENvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIHJvd0FsbFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIGVtcHR5Qm9keUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZChNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQpXG4gIHB1YmxpYyBzZWxlY3Rpb25Db21wb25lbnQ/OiBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQ7XG5cbiAgLy8gRlJPTSBQQUdJTkFUSU9OIEZPT1RFUlxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcm93UGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RoU2VsZWN0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRoU2VsZWN0aW9uUmVmPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGhTdWJSb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGhTdWJSb3dSZWY/OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudClcbiAgcHVibGljIGhlYWRlckNlbGxDb21wb25lbnRzPzogUXVlcnlMaXN0PE1vekRhdGF0YWJsZUhlYWRlckNlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQpXG4gIHB1YmxpYyBjb250ZW50Q2VsbENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8TW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudClcbiAgcHVibGljIGV4cGFuc2lvbkNvbnRlbnRDb21wb25lbnQ/OiBNb3pEYXRhdGFibGVSb3dFeHBhbnNpb25Db250ZW50Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBjdXN0b21IZWFkZXJDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGN1c3RvbUNvbnRlbnRDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGV4cGFuZGVkUm93czogYm9vbGVhbltdID0gW107XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRDdXN0b21IZWFkZXJNYXAoKTtcbiAgICB0aGlzLmJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50Py5jbGVhckFsbCgpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tSGVhZGVyTWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzKSB7XG4gICAgICB0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzLmZvckVhY2goKGhlYWRlcikgPT4ge1xuICAgICAgICBpZiAoaGVhZGVyLmZpZWxkICYmIGhlYWRlci50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tSGVhZGVyQ2VsbHNNYXAuc2V0KGhlYWRlci5maWVsZCwgaGVhZGVyLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50Q2VsbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuY29udGVudENlbGxDb21wb25lbnRzLmZvckVhY2goKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwuZmllbGQgJiYgY2VsbC50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudENlbGxzTWFwLnNldChjZWxsLmZpZWxkLCBjZWxsLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUV4cGFuc2lvblJvd0NvbnRlbnQoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5zaW9uQ29udGVudENvbXBvbmVudD8udGVtcGxhdGVSZWY7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93RXhwYW5zaW9uKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkUm93c1tpbmRleF0gPSAhdGhpcy5leHBhbmRlZFJvd3NbaW5kZXhdO1xuICB9XG5cbiAgcHVibGljIGhhc1N1YlJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHJvd1snc3ViUm93J10pLmxlbmd0aCB8fCAwKSA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tSGVhZGVyKGNvbHVtbklkOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21IZWFkZXJDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUNvbnRlbnQoY29sdW1uSWQ6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNvbnRlbnRDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb25cbiAgICAgID8gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDJcbiAgICAgIDogKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDE7XG4gIH1cblxuICBwdWJsaWMgZW1wdHlCdXR0b25DbGlja0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZW1wdHlCb2R5QnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJvd0NsaWNrRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvd0NsaWNrOiBSb3dEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQocm93Q2xpY2spO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGlvbkFsbFJvd0V2ZW50KCRldmVudDogU2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICB0aGlzLnJvd0FsbFNlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25Sb3dFdmVudCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5yb3dTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyByb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJvd1BlclBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgc29ydEV2ZW50KCRldmVudDogdW5rbm93bikge1xuICAgIHRoaXMuc29ydENvbHVtbi5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgdGhpcy50aFNlbGVjdGlvblJlZlxuICAgICAgPyB0aGlzLnRoU2VsZWN0aW9uUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgIDogMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMZWZ0VmFsdWVGaXhGaXJzdENvbHVtbigpOiBudW1iZXIge1xuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgaWYgKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHRoaXMudGhTZWxlY3Rpb25SZWYpIHtcbiAgICAgIHZhbHVlICs9IHRoaXMudGhTZWxlY3Rpb25SZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzU3ViUm93KCkgJiYgdGhpcy50aFN1YlJvd1JlZikge1xuICAgICAgdmFsdWUgKz0gdGhpcy50aFN1YlJvd1JlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5oaWRkZW5Db2x1bW5zKCk6IENvbHVtbkRlZltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcy5maWx0ZXIoKGhlYWRUaXRsZSkgPT4gIWhlYWRUaXRsZS5oaWRlKSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZ1xuICAgICAgPyBbJycsICcnLCAnJywgJycsICcnXVxuICAgICAgOiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5jb2x1bW5EZWZzO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcbiAgICAgID8gWycnLCAnJywgJycsICcnLCAnJ11cbiAgICAgIDogdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZVwiIFtuZ0NsYXNzXT1cInsgJyBtYy1kYXRhdGFibGUtaGVpZ2h0JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gIDxkaXYgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2hlYWRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vei1kYXRhdGFibGUtY2FwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2PlxuICAgICAgPG1vei1kYXRhdGFibGUtc2VsZWN0aW9uXG4gICAgICAgIFtzZWxlY3Rpb25TZXR0aW5nc109XCJzZWxlY3Rpb25TZXR0aW5nc1wiXG4gICAgICAgIFthbGxvd0FsbFNlbGVjdGVkXT1cImFsbG93QWxsU2VsZWN0ZWRcIlxuICAgICAgICBbcGFnaW5hdGlvbkVuYWJsZWRdPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICAgIFtyb3dEYXRhXT1cImRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhXCJcbiAgICAgICAgKHVwZGF0ZVNlbGVjdGlvbkFsbEVtaXR0ZXIpPVwic2VsZWN0aW9uQWxsUm93RXZlbnQoJGV2ZW50KVwiXG4gICAgICA+PC9tb3otZGF0YXRhYmxlLXNlbGVjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fbWFpblwiXG4gICAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwibWMtZGF0YXRhYmxlX190YWJsZVwiIHN1bW1hcnk9XCJ7eyB0YWJsZVN1bW1hcnkgfX1cIj5cbiAgICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2ZpeC1oZWFkZXItcm93JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiZ2V0Q29sdW1ucygpICYmIGdldENvbHVtbnMoKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtY2hlY2tib3ggbW96LWRhdGF0YWJsZV9fdGggbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICgoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEgfHwgW10pLmxlbmd0aCA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgaWQ9XCJjaGVja0FsbFBhZ2VSb3dzXCJcbiAgICAgICAgICAgICAgI3RoU2VsZWN0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5vblVkcGF0ZVNlbGVjdGlvbkFsbFBhZ2VSb3dzKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiYgIXNlbGVjdGlvbkNvbXBvbmVudC5pc0luZGV0ZXJtaW5hdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICghc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0aW9uQ29tcG9uZW50LmlzSW5kZXRlcm1pbmF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzIHx8IFtdKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9tb3otY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldFN0eWxlTGVmdEZvckNvbHVtbkZpeGVkKClcIlxuICAgICAgICAgICAgICAjdGhTdWJSb3dcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uRGVmIG9mIGdldENvbHVtbnMoKVwiPlxuICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vei1kYXRhdGFibGVfX3RoXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ21jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICBnZXRVbmhpZGRlbkNvbHVtbnMoKVswXS5maWVsZCA9PT0gY29sdW1uRGVmLmZpZWxkXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0aC17eyBjb2x1bW5EZWYuZmllbGQgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0hlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNlbGxzLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFttb3pEYXRhdGFibGVTb3J0XT1cImNvbHVtbkRlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGVhZGVyOiBjb2x1bW5EZWYuc29ydCB9XCJcbiAgICAgICAgICAgICAgICAgICAgKHNvcnRFbWl0dGVyKT1cInNvcnRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21IZWFkZXIoY29sdW1uRGVmLmZpZWxkKSBhcyBjdXN0b21IZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRIZWFkZXJDZWxsXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY29sdW1uRGVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlckNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uRGVmLmhlYWRlck5hbWUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgKGRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhPy5sZW5ndGggfHwgMCkgPiAwIHx8IGRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7XG4gICAgICAgICAgICAgIGVsc2UgZW1wdHlCb2R5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBnZXRGaWVsZHMoKTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX3Jvdy1wYXJlbnRcIiAoY2xpY2spPVwicm93Q2xpY2tFdmVudCgkZXZlbnQsIHJvdylcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHNlbGVjdGlvbkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0NoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50Lm9uVWRwYXRlU2VsZWN0aW9uUm93KHJvdyk7IHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicm93LnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyb3cuc2VsZWN0ZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyb3cuZGlzYWJsZVNlbGVjdGlvbiB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaGVja1Jvdy17eyBpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21vei1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvd1snc3ViUm93J107IGVsc2Ugbm9TdWJSb3dcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZXhwYW5kIG1jLWRhdGF0YWJsZV9fYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RXhwYW5zaW9uKGkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1kYXRhdGFibGVfX2J0bi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkUm93c1tpXTsgZWxzZSBzdWJyb3dDbG9zZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX0NpcmNsZS0tTW9yZV8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3Vicm93Q2xvc2VkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb24gW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfQ2lyY2xlLS1MZXNzXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU3ViUm93XG4gICAgICAgICAgICAgICAgICAgID48dGRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGRcbiAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBnZXRDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAnbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VW5oaWRkZW5Db2x1bW5zKClbMF0uZmllbGQgPT09IGNvbHVtbkRlZi5maWVsZFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwicm93LXt7IGkgfX0te3sgY29sdW1uRGVmLmZpZWxkfX1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2VsbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tYm94IG11LW1iLTEwMCBjZWxscy1sb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDZWxscz5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21Db250ZW50KGNvbHVtbkRlZi5maWVsZCkgYXMgY3VzdG9tQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBkZWZhdWx0Q29udGVudENlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmczogZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJvd1tjb2x1bW5EZWYuZmllbGRdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnRDZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbHVtbkRlZi5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJleHBhbmRlZFJvd3NbaV1cIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRDdXN0b21FeHBhbnNpb25Sb3dDb250ZW50KCkgYXMgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUm93Q29udGVudDogcm93WydzdWJSb3cnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5Qm9keT5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZW1wdHlcIj5cbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI1XCIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2VtcHR5LWNlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlX19lbXB0eS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlUaXRsZSB8fCAnVGhlcmUgaXMgbm8gcmVzdWx0LidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5RGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHRyeSBjaGFuZ2luZyB5b3VyIGZpbHRlcnMuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlRW1wdHlCb2R5QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbW96LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIiduZXV0cmFsJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhdGlvbl09XCInYm9yZGVyZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbXB0eUJ1dHRvbkNsaWNrRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb25OYW1lPVwie3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uaWNvbnM/LmVtcHR5Qm9keUJ1dHRvbkljb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYXZpZ2F0aW9uX0Rpc3BsYXlfRmlsdGVyXzI0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5QnV0dG9uVGl0bGUgfHwgJ0NoYW5nZSBmaWx0ZXJzJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8bW96LWRhdGF0YWJsZS1mb290ZXJcbiAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICBbZm9vdGVyU2V0dGluZ3NdPVwiZm9vdGVyU2V0dGluZ3NcIlxuICAgICAgW2lzTG9hZGluZ109XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXCJcbiAgICAgIChyb3dQZXJQYWdlQ2hhbmdlRW1pdHRlcik9XCJyb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAocGFnZUNoYW5nZUVtaXR0ZXIpPVwicGFnZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgID48L21vei1kYXRhdGFibGUtZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUc3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVMxSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBU2tCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLHVCQUF1QixDQUFDO1FBRXZELHNCQUFzQjtRQUNaLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSy9ELHlCQUF5QjtRQUNmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FB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LEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBR0Esa0JBQWtCO3NCQUR4QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJL0IsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRXNDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2pDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBSXpDLHFCQUFxQjtzQkFEM0IsZUFBZTt1QkFBQyxnQ0FBZ0M7Z0JBSTFDLHlCQUF5QjtzQkFEL0IsWUFBWTt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm93RGF0YSB9IGZyb20gJy4vbW9kZWwvcm93LWRhdGEnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9tb3otZGF0YXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50L21vei1kYXRhdGFibGUtY29udGVudC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhdGFibGVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWwvZGF0YXRhYmxlLXNldHRpbmdzJztcbmltcG9ydCB7IEZvb3RlclNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbC9mb290ZXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvbW96LWRhdGF0YWJsZS1yb3ctZXhwYW5zaW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gJy4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTZXR0aW5ncz86IEZvb3RlclNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uU2V0dGluZ3M/OiBTZWxlY3Rpb25TZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIGFsbG93QWxsU2VsZWN0ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YXRhYmxlU2V0dGluZ3M/OiBEYXRhdGFibGVTZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIHRhYmxlU3VtbWFyeSA9ICdUYWJsZSBkaXNwbGF5aW5nIGRhdGEnO1xuXG4gIC8vIEZST00gQk9EWSBEQVRBVEFCTEVcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dEYXRhPigpO1xuICBAT3V0cHV0KCkgc29ydENvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIHJvd0FsbFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIGVtcHR5Qm9keUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZChNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQpXG4gIHB1YmxpYyBzZWxlY3Rpb25Db21wb25lbnQ/OiBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQ7XG5cbiAgLy8gRlJPTSBQQUdJTkFUSU9OIEZPT1RFUlxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcm93UGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RoU2VsZWN0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRoU2VsZWN0aW9uUmVmPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGhTdWJSb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGhTdWJSb3dSZWY/OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudClcbiAgcHVibGljIGhlYWRlckNlbGxDb21wb25lbnRzPzogUXVlcnlMaXN0PE1vekRhdGF0YWJsZUhlYWRlckNlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQpXG4gIHB1YmxpYyBjb250ZW50Q2VsbENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8TW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudClcbiAgcHVibGljIGV4cGFuc2lvbkNvbnRlbnRDb21wb25lbnQ/OiBNb3pEYXRhdGFibGVSb3dFeHBhbnNpb25Db250ZW50Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBjdXN0b21IZWFkZXJDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGN1c3RvbUNvbnRlbnRDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGV4cGFuZGVkUm93czogYm9vbGVhbltdID0gW107XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRDdXN0b21IZWFkZXJNYXAoKTtcbiAgICB0aGlzLmJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50Py5jbGVhckFsbCgpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tSGVhZGVyTWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzKSB7XG4gICAgICB0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzLmZvckVhY2goKGhlYWRlcikgPT4ge1xuICAgICAgICBpZiAoaGVhZGVyLmZpZWxkICYmIGhlYWRlci50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tSGVhZGVyQ2VsbHNNYXAuc2V0KGhlYWRlci5maWVsZCwgaGVhZGVyLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50Q2VsbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuY29udGVudENlbGxDb21wb25lbnRzLmZvckVhY2goKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwuZmllbGQgJiYgY2VsbC50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudENlbGxzTWFwLnNldChjZWxsLmZpZWxkLCBjZWxsLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUV4cGFuc2lvblJvd0NvbnRlbnQoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5zaW9uQ29udGVudENvbXBvbmVudD8udGVtcGxhdGVSZWY7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93RXhwYW5zaW9uKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkUm93c1tpbmRleF0gPSAhdGhpcy5leHBhbmRlZFJvd3NbaW5kZXhdO1xuICB9XG5cbiAgcHVibGljIGhhc1N1YlJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHJvd1snc3ViUm93J10pLmxlbmd0aCB8fCAwKSA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tSGVhZGVyKGNvbHVtbklkOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21IZWFkZXJDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUNvbnRlbnQoY29sdW1uSWQ6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNvbnRlbnRDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb25cbiAgICAgID8gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDJcbiAgICAgIDogKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDE7XG4gIH1cblxuICBwdWJsaWMgZW1wdHlCdXR0b25DbGlja0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZW1wdHlCb2R5QnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJvd0NsaWNrRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvd0NsaWNrOiBSb3dEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQocm93Q2xpY2spO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGlvbkFsbFJvd0V2ZW50KCRldmVudDogU2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICB0aGlzLnJvd0FsbFNlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25Sb3dFdmVudCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5yb3dTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyByb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJvd1BlclBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgc29ydEV2ZW50KCRldmVudDogdW5rbm93bikge1xuICAgIHRoaXMuc29ydENvbHVtbi5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgdGhpcy50aFNlbGVjdGlvblJlZlxuICAgICAgPyB0aGlzLnRoU2VsZWN0aW9uUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgIDogMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMZWZ0VmFsdWVGaXhGaXJzdENvbHVtbigpOiBudW1iZXIge1xuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgaWYgKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHRoaXMudGhTZWxlY3Rpb25SZWYpIHtcbiAgICAgIHZhbHVlICs9IHRoaXMudGhTZWxlY3Rpb25SZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzU3ViUm93KCkgJiYgdGhpcy50aFN1YlJvd1JlZikge1xuICAgICAgdmFsdWUgKz0gdGhpcy50aFN1YlJvd1JlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5oaWRkZW5Db2x1bW5zKCk6IENvbHVtbkRlZltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcy5maWx0ZXIoKGhlYWRUaXRsZSkgPT4gIWhlYWRUaXRsZS5oaWRlKSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZ1xuICAgICAgPyBbJycsICcnLCAnJywgJycsICcnXVxuICAgICAgOiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5jb2x1bW5EZWZzO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcbiAgICAgID8gWycnLCAnJywgJycsICcnLCAnJ11cbiAgICAgIDogdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZVwiIFtuZ0NsYXNzXT1cInsgJyBtYy1kYXRhdGFibGUtaGVpZ2h0JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gIDxkaXYgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2hlYWRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vei1kYXRhdGFibGUtY2FwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2PlxuICAgICAgPG1vei1kYXRhdGFibGUtc2VsZWN0aW9uXG4gICAgICAgIFtzZWxlY3Rpb25TZXR0aW5nc109XCJzZWxlY3Rpb25TZXR0aW5nc1wiXG4gICAgICAgIFthbGxvd0FsbFNlbGVjdGVkXT1cImFsbG93QWxsU2VsZWN0ZWRcIlxuICAgICAgICBbcGFnaW5hdGlvbkVuYWJsZWRdPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICAgIFtyb3dEYXRhXT1cImRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhXCJcbiAgICAgICAgKHVwZGF0ZVNlbGVjdGlvbkFsbEVtaXR0ZXIpPVwic2VsZWN0aW9uQWxsUm93RXZlbnQoJGV2ZW50KVwiXG4gICAgICA+PC9tb3otZGF0YXRhYmxlLXNlbGVjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fbWFpblwiXG4gICAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwibWMtZGF0YXRhYmxlX190YWJsZVwiIHN1bW1hcnk9XCJ7eyB0YWJsZVN1bW1hcnkgfX1cIj5cbiAgICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2ZpeC1oZWFkZXItcm93JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiZ2V0Q29sdW1ucygpICYmIGdldENvbHVtbnMoKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtY2hlY2tib3ggbW96LWRhdGF0YWJsZV9fdGggbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICgoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEgfHwgW10pLmxlbmd0aCA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgaWQ9XCJjaGVja0FsbFBhZ2VSb3dzXCJcbiAgICAgICAgICAgICAgI3RoU2VsZWN0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5vblVkcGF0ZVNlbGVjdGlvbkFsbFBhZ2VSb3dzKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiYgIXNlbGVjdGlvbkNvbXBvbmVudC5pc0luZGV0ZXJtaW5hdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICghc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0aW9uQ29tcG9uZW50LmlzSW5kZXRlcm1pbmF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzIHx8IFtdKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9tb3otY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldFN0eWxlTGVmdEZvckNvbHVtbkZpeGVkKClcIlxuICAgICAgICAgICAgICAjdGhTdWJSb3dcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uRGVmIG9mIGdldENvbHVtbnMoKVwiPlxuICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vei1kYXRhdGFibGVfX3RoXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ21jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICBnZXRVbmhpZGRlbkNvbHVtbnMoKVswXS5maWVsZCA9PT0gY29sdW1uRGVmLmZpZWxkXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0aC17eyBjb2x1bW5EZWYuZmllbGQgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0hlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNlbGxzLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFttb3pEYXRhdGFibGVTb3J0XT1cImNvbHVtbkRlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGVhZGVyOiBjb2x1bW5EZWYuc29ydCB9XCJcbiAgICAgICAgICAgICAgICAgICAgKHNvcnRFbWl0dGVyKT1cInNvcnRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21IZWFkZXIoY29sdW1uRGVmLmZpZWxkKSBhcyBjdXN0b21IZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRIZWFkZXJDZWxsXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY29sdW1uRGVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlckNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uRGVmLmhlYWRlck5hbWUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgKGRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhPy5sZW5ndGggfHwgMCkgPiAwIHx8IGRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7XG4gICAgICAgICAgICAgIGVsc2UgZW1wdHlCb2R5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBnZXRGaWVsZHMoKTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX3Jvdy1wYXJlbnRcIiAoY2xpY2spPVwicm93Q2xpY2tFdmVudCgkZXZlbnQsIHJvdylcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHNlbGVjdGlvbkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0NoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50Lm9uVWRwYXRlU2VsZWN0aW9uUm93KHJvdyk7IHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicm93LnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyb3cuc2VsZWN0ZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyb3cuZGlzYWJsZVNlbGVjdGlvbiB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaGVja1Jvdy17eyBpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21vei1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvd1snc3ViUm93J107IGVsc2Ugbm9TdWJSb3dcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZXhwYW5kIG1jLWRhdGF0YWJsZV9fYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RXhwYW5zaW9uKGkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1kYXRhdGFibGVfX2J0bi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkUm93c1tpXTsgZWxzZSBzdWJyb3dDbG9zZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX0NpcmNsZS0tTW9yZV8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3Vicm93Q2xvc2VkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb24gW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfQ2lyY2xlLS1MZXNzXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU3ViUm93XG4gICAgICAgICAgICAgICAgICAgID48dGRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGRcbiAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBnZXRDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAnbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VW5oaWRkZW5Db2x1bW5zKClbMF0uZmllbGQgPT09IGNvbHVtbkRlZi5maWVsZFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwicm93LXt7IGkgfX0te3sgY29sdW1uRGVmLmZpZWxkfX1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2VsbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tYm94IG11LW1iLTEwMCBjZWxscy1sb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDZWxscz5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21Db250ZW50KGNvbHVtbkRlZi5maWVsZCkgYXMgY3VzdG9tQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBkZWZhdWx0Q29udGVudENlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmczogZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJvd1tjb2x1bW5EZWYuZmllbGRdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnRDZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbHVtbkRlZi5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJleHBhbmRlZFJvd3NbaV1cIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRDdXN0b21FeHBhbnNpb25Sb3dDb250ZW50KCkgYXMgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUm93Q29udGVudDogcm93WydzdWJSb3cnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5Qm9keT5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZW1wdHlcIj5cbiAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiZ2V0Q29sc3BhbkZvckV4cGFuc2lvblJvdygpXCIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2VtcHR5LWNlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlX19lbXB0eS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlUaXRsZSB8fCAnVGhlcmUgaXMgbm8gcmVzdWx0LidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5RGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHRyeSBjaGFuZ2luZyB5b3VyIGZpbHRlcnMuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlRW1wdHlCb2R5QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbW96LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIiduZXV0cmFsJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhdGlvbl09XCInYm9yZGVyZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbXB0eUJ1dHRvbkNsaWNrRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb25OYW1lPVwie3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uaWNvbnM/LmVtcHR5Qm9keUJ1dHRvbkljb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYXZpZ2F0aW9uX0Rpc3BsYXlfRmlsdGVyXzI0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5QnV0dG9uVGl0bGUgfHwgJ0NoYW5nZSBmaWx0ZXJzJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8bW96LWRhdGF0YWJsZS1mb290ZXJcbiAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICBbZm9vdGVyU2V0dGluZ3NdPVwiZm9vdGVyU2V0dGluZ3NcIlxuICAgICAgW2lzTG9hZGluZ109XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXCJcbiAgICAgIChyb3dQZXJQYWdlQ2hhbmdlRW1pdHRlcik9XCJyb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAocGFnZUNoYW5nZUVtaXR0ZXIpPVwicGFnZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgID48L21vei1kYXRhdGFibGUtZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|