myrta-ui 17.1.14 → 17.1.16

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.
@@ -56,6 +56,7 @@ export class SelectComponent {
56
56
  sortIcon = null;
57
57
  sortPlaceholder = '';
58
58
  isFullWidthDropdown = true;
59
+ withoutSelected = false;
59
60
  addOption;
60
61
  customSearchFn;
61
62
  disabled = false;
@@ -90,7 +91,12 @@ export class SelectComponent {
90
91
  return `${SelectSizeEnum[this.size]} ${this.readonlyClass} ${this.checkValidClasses}`;
91
92
  }
92
93
  get getSelectedLabels() {
93
- return this.innerItems.filter(i => i.__selected);
94
+ if (this.withoutSelected) {
95
+ return [];
96
+ }
97
+ else {
98
+ return this.innerItems.filter(i => i.__selected);
99
+ }
94
100
  }
95
101
  get filteredItems() {
96
102
  if (this.customSearchFn) {
@@ -172,10 +178,8 @@ export class SelectComponent {
172
178
  return label;
173
179
  }
174
180
  writeValue(selected = []) {
175
- if (selected !== null) {
176
- this.originSelected = selected;
177
- this._updateSelected(this.originItems, this.originSelected);
178
- }
181
+ this.originSelected = selected;
182
+ this._updateSelected(this.originItems, this.originSelected);
179
183
  }
180
184
  changeTextValueEmpty() {
181
185
  this.form.initModelChanged(this.model);
@@ -215,7 +219,7 @@ export class SelectComponent {
215
219
  this.onTouched = fn;
216
220
  }
217
221
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
218
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
222
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", withoutSelected: "withoutSelected", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
219
223
  {
220
224
  provide: NG_VALUE_ACCESSOR,
221
225
  useExisting: forwardRef(() => SelectComponent),
@@ -275,6 +279,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
275
279
  type: Input
276
280
  }], isFullWidthDropdown: [{
277
281
  type: Input
282
+ }], withoutSelected: [{
283
+ type: Input
278
284
  }], addOption: [{
279
285
  type: Input
280
286
  }], customSearchFn: [{
@@ -316,4 +322,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
316
322
  }], modelChange: [{
317
323
  type: Output
318
324
  }] } });
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFJMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFpQnJELE1BQU0sT0FBTyxlQUFlO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixjQUFjLEdBQWdCLEVBQUUsQ0FBQztJQUNqQyxXQUFXLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxR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QixnQkFBZ0I7c0JBQXZDLEtBQUs7dUJBQUMsZUFBZTtnQkFDYixzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRWlCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFFVyxjQUFjO3NCQUE3QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDQyxhQUFhO3NCQUEzQyxZQUFZO3VCQUFDLGVBQWU7Z0JBQ1EsbUJBQW1CO3NCQUF2RCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFDRSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUNGLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUVkLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlbGVjdFNpemVFbnVtLCBTZWxlY3RTaXplVHlwZXMgfSBmcm9tICcuL2VudW1zJztcclxuaW1wb3J0IHsgUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wb3B1cC9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdElubmVySXRlbU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvc2VsZWN0LWlubmVyLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBBZGRPcHRpb25GbiwgQ3VzdG9tU2VhcmNoRm4sIFNlbGVjdEl0ZW1Nb2RlbCB9IGZyb20gJy4vbW9kZWxzL3NlbGVjdC1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRJdGVtcyB9IGZyb20gJy4vaGVscGVycy9nZXQtc2VsZWN0ZWQtaXRlbXMuaGVscGVyJztcclxuaW1wb3J0IHsgZ2V0SW5uZXJJdGVtcyB9IGZyb20gJy4vaGVscGVycy9nZXQtaW5uZXItaXRlbXMuaGVscGVyJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlT3V0cHV0TW9kZWwgfSBmcm9tICcuL21vZGVscy90ZW1wbGF0ZS1vdXRwdXQubW9kZWwnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkVudW0sIFBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL292ZXJsYXknO1xyXG5pbXBvcnQgeyBnZXRJbm5lclNlbGVjdGVkIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1pbm5lci1zZWxlY3RlZC5oZWxwZXInO1xyXG5pbXBvcnQgeyBNcnhGb3JtVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZVR5cGVzLCBTZWxlY3RWYWx1ZVdpdGhJZCB9IGZyb20gJy4vc2VsZWN0LmVudW0nO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NhdmUtc3RvcmUvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQubGVzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcmlnaW5TZWxlY3RlZDogYW55IHwgYW55W10gPSBbXTtcclxuICBwdWJsaWMgb3JpZ2luSXRlbXM6IFNlbGVjdEl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkOiBTZWxlY3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBpbm5lckl0ZW1zOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIGZvcm0gPSBuZXcgTXJ4Rm9ybVZhbGlkYXRvcigpO1xyXG4gIHB1YmxpYyBtb2RlbCA9IHtcclxuICAgIGxhYmVsOiAnJyxcclxuICB9O1xyXG5cclxuICAvLyBTQVZFIFNUQVRFXHJcbiAgcHVibGljIHV1aWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgdGhpcy5vcmlnaW5JdGVtcyA9IGl0ZW1zO1xyXG4gICAgdGhpcy5fdXBkYXRlU2VsZWN0ZWQodGhpcy5vcmlnaW5JdGVtcywgdGhpcy5vcmlnaW5TZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNsb3NhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaXplOiBTZWxlY3RTaXplVHlwZXMgPSAnbGFyZ2UnO1xyXG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYmluZExhYmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBiaW5kSWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZW1wdHlUZXh0OiBzdHJpbmcgPSAn0J3QtSDQvdCw0LnQtNC10L3Qvic7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICfQktGL0LHQtdGA0LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSc7XHJcbiAgQElucHV0KCkgbXVsdGlDb2xsYXBzZUNvdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoJ2lzRXh0cmFPcHRpb24nKSBvcHRpb25WYWxpZGF0aW9uOiB7IGxhYmVsOiB7IHJlcXVpcmVkOiBib29sZWFuLCBtaW5MZW5ndGg6IG51bWJlciB9IH0gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBleHRyYU9wdGlvblBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSc7XHJcbiAgQElucHV0KCkgdXNlOiAnZGVmYXVsdCcgfCAnbGluaycgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgc29ydEljb246ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgc29ydFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpc0Z1bGxXaWR0aERyb3Bkb3duOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgYWRkT3B0aW9uITogQWRkT3B0aW9uRm47XHJcbiAgQElucHV0KCkgY3VzdG9tU2VhcmNoRm4/OiBDdXN0b21TZWFyY2hGbjtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRNZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKSBwb3B1cFBvc2l0aW9uOiBQb3NpdGlvblR5cGUgPSBQb3NpdGlvbkVudW0uQm90dG9tU3RhcnQ7XHJcblxyXG4gIEBJbnB1dCgpIHNpbmdsZUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duITogUG9wdXBDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRlbXBsYXRlJykgb3B0aW9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdsYWJlbFRlbXBsYXRlJykgbGFiZWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwSGVhZGVyVGVtcGxhdGUnKSBwb3B1cEhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgncG9wdXBGb290ZXJUZW1wbGF0ZScpIHBvcHVwRm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdjb250ZW50VGVtcGxhdGUnKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3RWYWx1ZVR5cGVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVUeXBlcz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RWYWx1ZVdpdGhJZD4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25WYWxpZGF0aW9uKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5pbml0RmllbGRzKHRoaXMubW9kZWwsIHRoaXMub3B0aW9uVmFsaWRhdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cclxuICAgICAgJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDpcclxuICAgICAgdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtTZWxlY3RTaXplRW51bVt0aGlzLnNpemVdfSAke3RoaXMucmVhZG9ubHlDbGFzc30gJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFNlbGVjdGVkTGFiZWxzKCk6IFNlbGVjdElubmVySXRlbU1vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5uZXJJdGVtcy5maWx0ZXIoaSA9PiBpLl9fc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaWx0ZXJlZEl0ZW1zKCk6IFNlbGVjdElubmVySXRlbU1vZGVsW10ge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tU2VhcmNoRm4pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJdGVtcy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tU2VhcmNoRm4/Lih0aGlzLnNlYXJjaFZhbHVlLCBpdGVtLl9fb3JpZ2luKSA/PyBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJdGVtcy5maWx0ZXIoaSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmluZExhYmVsKSB7XHJcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bdGhpcy5iaW5kTGFiZWxdKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpLl9fb3JpZ2luWydsYWJlbCddKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblsnbGFiZWwnXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNJbnZhbGlkTWVzc2FnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgISF0aGlzLmludmFsaWRNZXNzYWdlPy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SWNvblN0YXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pc09wZW4gPyAnb3BlbmVkJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEljb25TaXplKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbWVkaXVtJyA/ICdpY29uLWZvbnQtMTYnIDogJ2ljb24tZm9udC0yNCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3QoaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUNoYW5nZSkge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnVzZSA9PT0gJ2RlZmF1bHQnKSB7XHJcbiAgICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkID8gIWkuX19zZWxlY3RlZCA6IGZhbHNlfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZCA/ICFpLl9fc2VsZWN0ZWQgOiBpLl9fc2VsZWN0ZWR9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvcHVwKCk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodGhpcy5pbm5lckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckl0ZW0oaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMub25VbnNlbGVjdChpdGVtKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVuc2VsZWN0KGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICB0aGlzLmlubmVySXRlbXMuZm9yRWFjaChpID0+IHtcclxuICAgICAgaWYgKGkuX19pZCA9PT0gaXRlbS5fX2lkKSB7XHJcbiAgICAgICAgaS5fX3NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMuaW5uZXJJdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGVhcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5pbm5lckl0ZW1zID0gdGhpcy5pbm5lckl0ZW1zLm1hcChpdGVtID0+ICh7Li4uaXRlbSwgX19zZWxlY3RlZDogZmFsc2V9KSk7XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bi50b2dnbGVQb3B1cChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUoW10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKGlzT3BlbjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc09wZW4gPSBpc09wZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNPcHRpb24ob3B0aW9uOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCk6IFNlbGVjdElubmVySXRlbU1vZGVsIHtcclxuICAgIHJldHVybiBvcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNMYWJlbChsYWJlbDogU2VsZWN0SW5uZXJJdGVtTW9kZWwpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCB7XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShzZWxlY3RlZDogYW55IHwgYW55W10gPSBbXSk6IHZvaWQge1xyXG4gICAgaWYgKHNlbGVjdGVkICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMub3JpZ2luU2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0ZWQodGhpcy5vcmlnaW5JdGVtcywgdGhpcy5vcmlnaW5TZWxlY3RlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVGV4dFZhbHVlRW1wdHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uaW5pdE1vZGVsQ2hhbmdlZCh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkFkZE5ld0N1c3RvbU9wdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuYWRkT3B0aW9uKHRoaXMubW9kZWwubGFiZWwpO1xyXG4gICAgICB0aGlzLm1vZGVsLmxhYmVsID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZVRleHRWYWx1ZUVtcHR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVTZWxlY3RlZChpdGVtczogYW55W10gPSBbXSwgc2VsZWN0ZWQ6IGFueVtdID0gW10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy5vcmlnaW5TZWxlY3RlZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IGdldElubmVyU2VsZWN0ZWQoaXRlbXMsIHNlbGVjdGVkLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gZ2V0SW5uZXJTZWxlY3RlZChpdGVtcywgW3NlbGVjdGVkXSwgdGhpcy5iaW5kVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbm5lckl0ZW1zID0gZ2V0SW5uZXJJdGVtcyhpdGVtcywgdGhpcy5zZWxlY3RlZCwgdGhpcy5iaW5kVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWUoc2VsZWN0ZWRJdGVtczogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSkge1xyXG4gICAgY29uc3QgY2xlYXJlZFNlbGVjdGVkID0gZ2V0U2VsZWN0ZWRJdGVtcyhzZWxlY3RlZEl0ZW1zLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICBjb25zdCBvdXRwdXRTZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUgPyBjbGVhcmVkU2VsZWN0ZWQgOiBjbGVhcmVkU2VsZWN0ZWQubGVuZ3RoID8gY2xlYXJlZFNlbGVjdGVkWzBdIDogbnVsbDtcclxuXHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChvdXRwdXRTZWxlY3RlZCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBvdXRwdXRTZWxlY3RlZCwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShvdXRwdXRTZWxlY3RlZCk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLi1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCJpbnZhbGlkXCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbiAgY2xhc3M9XCJtcngtc2VsZWN0XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X193cmFwcGVyXCI+XHJcbiAgICBAc3dpdGNoICh1c2UpIHtcclxuICAgICAgQGNhc2UgKCdkZWZhdWx0Jykge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRcIlxyXG4gICAgICAgICAgW21yeFBvcHVwVHJpZ2dlcl09XCJkcm9wZG93blwiXHJcbiAgICAgICAgICBbaXNGdWxsV2lkdGhEcm9wZG93bl09XCJpc0Z1bGxXaWR0aERyb3Bkb3duXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBAaWYgKGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBAaWYgKG11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X192YWx1ZXNcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAobXVsdGlDb2xsYXBzZUNvdW50ICYmIGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCA+PSBtdWx0aUNvbGxhcHNlQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19iYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPtCS0YvQsdGA0LDQvdC+OiB7eyBnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggfX08L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNlwiIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzOyB0cmFjayBpdGVtLl9faWQ7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAobGFiZWxUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdCwgY2xlYXI6IGNsZWFySXRlbS5iaW5kKHRoaXMpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRMYWJlbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzOyB0cmFjayBpdGVtLl9faWQpIHtcclxuICAgICAgICAgICAgICAgICAge3sgYmluZExhYmVsID8gaXRlbS5fX29yaWdpbltiaW5kTGFiZWxdIDogaXRlbS5fX29yaWdpblsnbGFiZWwnXSB8fCBpdGVtLl9fb3JpZ2luIH19XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX3BsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L2Rpdj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKSB7XHJcbiAgICAgICAgICAgICAgPG1yeC1sb2FkZXJcclxuICAgICAgICAgICAgICAgIFtzaXplXT1cInNpemUgPT09ICdsYXJnZScgPyAnc21hbGwnIDogJ2V4dHJhLXNtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiJ2JyYW5kJ1wiXHJcbiAgICAgICAgICAgICAgPjwvbXJ4LWxvYWRlcj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGlmIChnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggJiYgY2xlYXJhYmxlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNoZXZyb24tZG93biBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJbZ2V0SWNvblN0YXRlLCBnZXRJY29uU2l6ZV1cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAY2FzZSAoJ2xpbmsnKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rXCJcclxuICAgICAgICAgIFttcnhQb3B1cFRyaWdnZXJdPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgW3BvcHVwUG9zaXRpb25dPVwicG9wdXBQb3NpdGlvblwiXHJcbiAgICAgICAgICBbaXNGdWxsV2lkdGhEcm9wZG93bl09XCJpc0Z1bGxXaWR0aERyb3Bkb3duXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua19fY29udHJvbHNcIj5cclxuICAgICAgICAgICAgQGlmIChzb3J0UGxhY2Vob2xkZXIpIHtcclxuICAgICAgICAgICAgICA8cD57eyBzb3J0UGxhY2Vob2xkZXIgfX08L3A+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpZiAoc29ydEljb24pIHtcclxuICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiB7e3NvcnRJY29uID09PSAnYXNjJyA/ICdpY29uLXNvcnRpbmctdXAnIDogJ2ljb24tc29ydGluZy1kb3duJ319XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uU2l6ZVwiXHJcbiAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX3ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzOyB0cmFjayBpdGVtLl9faWQpIHtcclxuICAgICAgICAgICAgICAgICAge3sgYmluZExhYmVsID8gaXRlbS5fX29yaWdpbltiaW5kTGFiZWxdIDogaXRlbS5fX29yaWdpblsnbGFiZWwnXSB8fCBpdGVtLl9fb3JpZ2luIH19XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hldnJvbi1kb3duIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cIltnZXRJY29uU3RhdGUsIGdldEljb25TaXplXVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgPG1yeC1wb3B1cCAjZHJvcGRvd24gW2Nsb3NlQWZ0ZXJDbGlja109XCJjbG9zYWJsZVwiICh0b2dnbGUpPVwidG9nZ2xlUG9wdXAoJGV2ZW50KVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkSXRlbXM7IHRyYWNrIGl0ZW0uX19pZDsgbGV0IGZpcnN0ID0gJGZpcnN0OyBsZXQgbGFzdCA9ICRsYXN0KSB7XHJcbiAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtjdXN0b21dPVwidHJ1ZVwiIFtpZF09XCJpdGVtLl9faWRcIiAoY2xpY2tlZCk9XCJvblNlbGVjdChpdGVtKVwiPlxyXG4gICAgICAgICAgQGlmIChvcHRpb25UZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0T3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbXJ4LXBvcHVwLWl0ZW0+XHJcbiAgICAgIH0gQGVtcHR5IHtcclxuICAgICAgICA8bXJ4LXBvcHVwLWl0ZW0gW2N1c3RvbV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2VtcHR5XCI+e3sgZW1wdHlUZXh0IH19PC9kaXY+XHJcbiAgICAgICAgPC9tcngtcG9wdXAtaXRlbT5cclxuICAgICAgfVxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICBAaWYgKHNlYXJjaGFibGUpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxtcngtaW5wdXQtc2VhcmNoXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgICAgID48L21yeC1pbnB1dC1zZWFyY2g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAoY29udGVudFRlbXBsYXRlKSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKHBvcHVwSGVhZGVyVGVtcGxhdGUpIHtcclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wdXBIZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICBAaWYgKCEhYWRkT3B0aW9uKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2V4dHJhLW9wdGlvblwiPlxyXG4gICAgICAgICAgICA8bXJ4LWlucHV0LXRleHRcclxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImV4dHJhT3B0aW9uUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwubGFiZWxcIlxyXG4gICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiMzAwXCJcclxuICAgICAgICAgICAgICBbaW52YWxpZF09XCIhIWZvcm0uZXJyb3JzWydsYWJlbCddXCJcclxuICAgICAgICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZm9ybS5lcnJvcnNbJ2xhYmVsJ11cIlxyXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVRleHRWYWx1ZUVtcHR5KClcIlxyXG4gICAgICAgICAgICA+PC9tcngtaW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cIjxzcGFuIGNsYXNzPSdtcngtaWNvbiBpY29uLXBsdXMgaWNvbi1mb250LTI0Jz48L3NwYW4+XCJcclxuICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgICB0eXBlPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGROZXdDdXN0b21PcHRpb24oKVwiXHJcbiAgICAgICAgICAgID48L21yeC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpZiAocG9wdXBGb290ZXJUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwb3B1cEZvb3RlclRlbXBsYXRlXCJcclxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L21yeC1wb3B1cD5cclxuICA8L2Rpdj5cclxuXHJcbiAgQGlmIChpbnZhbGlkICYmIGlzSW52YWxpZE1lc3NhZ2UpIHtcclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZSBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIj48L21yeC1lcnJvci1tZXNzYWdlPlxyXG4gIH1cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtmaWVsZHNdPVwiZmllbGRzXCIgW2lkXT1cInV1aWRcIiBbdHlwZV09XCInaW5wdXQnXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gIEBpZiAoYXNMYWJlbChpdGVtKTsgYXMgbGFiZWwpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fYmFkZ2VcIj5cclxuICAgICAgPHA+e3sgYmluZExhYmVsID8gbGFiZWwuX19vcmlnaW5bYmluZExhYmVsXSA6IGxhYmVsLl9fb3JpZ2luWydsYWJlbCddIHx8IGxhYmVsLl9fb3JpZ2luIH19PC9wPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTE2XCIgKGNsaWNrKT1cIm9uVW5zZWxlY3QobGFiZWwpXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgQGlmIChhc09wdGlvbihpdGVtKTsgYXMgb3B0aW9uKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2l0ZW1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19pdGVtLS1jb250ZW50XCI+XHJcbiAgICAgICAgQGlmIChiaW5kSWNvbiAmJiBvcHRpb24uX19vcmlnaW5bYmluZEljb25dKSB7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZm9udC0yNFwiIFtjbGFzc109XCJvcHRpb25bYmluZEljb25dXCI+PC9zcGFuPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHA+e3sgYmluZExhYmVsID8gb3B0aW9uLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBvcHRpb24uX19vcmlnaW5bJ2xhYmVsJ10gfHwgb3B0aW9uLl9fb3JpZ2luIH19PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAob3B0aW9uLl9fc2VsZWN0ZWQpIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hlY2sgaWNvbi1mb250LTI0XCI+PC9zcGFuPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxTQUFTLENBQUM7QUFHMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFpQnJELE1BQU0sT0FBTyxlQUFlO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixjQUFjLEdBQWdCLEVBQUUsQ0FBQztJQUNqQyxXQUFXLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxR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QkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNrQixnQkFBZ0I7c0JBQXZDLEtBQUs7dUJBQUMsZUFBZTtnQkFDYixzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUVXLGNBQWM7c0JBQTdDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNDLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFDUSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUNFLG1CQUFtQjtzQkFBdkQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBQ0YsZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBRWQsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2VsZWN0U2l6ZUVudW0sIFNlbGVjdFNpemVUeXBlcyB9IGZyb20gJy4vZW51bXMnO1xyXG5pbXBvcnQgeyBQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BvcHVwL2NvbXBvbmVudHMvcG9wdXAvcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0SW5uZXJJdGVtTW9kZWwsIEFkZE9wdGlvbkZuLCBDdXN0b21TZWFyY2hGbiwgU2VsZWN0SXRlbU1vZGVsLCBUZW1wbGF0ZU91dHB1dE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBnZXRTZWxlY3RlZEl0ZW1zIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1zZWxlY3RlZC1pdGVtcy5oZWxwZXInO1xyXG5pbXBvcnQgeyBnZXRJbm5lckl0ZW1zIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1pbm5lci1pdGVtcy5oZWxwZXInO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgUG9zaXRpb25FbnVtLCBQb3NpdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9vdmVybGF5JztcclxuaW1wb3J0IHsgZ2V0SW5uZXJTZWxlY3RlZCB9IGZyb20gJy4vaGVscGVycy9nZXQtaW5uZXItc2VsZWN0ZWQuaGVscGVyJztcclxuaW1wb3J0IHsgTXJ4Rm9ybVZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU2VsZWN0VmFsdWVUeXBlcywgU2VsZWN0VmFsdWVXaXRoSWQgfSBmcm9tICcuL3NlbGVjdC5lbnVtJztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBwdWJsaWMgc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgb3JpZ2luU2VsZWN0ZWQ6IGFueSB8IGFueVtdID0gW107XHJcbiAgcHVibGljIG9yaWdpbkl0ZW1zOiBTZWxlY3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZDogU2VsZWN0SXRlbU1vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgaW5uZXJJdGVtczogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBmb3JtID0gbmV3IE1yeEZvcm1WYWxpZGF0b3IoKTtcclxuICBwdWJsaWMgbW9kZWwgPSB7XHJcbiAgICBsYWJlbDogJycsXHJcbiAgfTtcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogYW55W10pIHtcclxuICAgIHRoaXMub3JpZ2luSXRlbXMgPSBpdGVtcztcclxuICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGVkKHRoaXMub3JpZ2luSXRlbXMsIHRoaXMub3JpZ2luU2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2xlYXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbG9zYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2l6ZTogU2VsZWN0U2l6ZVR5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYmluZEljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGVtcHR5VGV4dDogc3RyaW5nID0gJ9Cd0LUg0L3QsNC50LTQtdC90L4nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn0JLRi9Cx0LXRgNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIG11bHRpQ29sbGFwc2VDb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCdpc0V4dHJhT3B0aW9uJykgb3B0aW9uVmFsaWRhdGlvbjogeyBsYWJlbDogeyByZXF1aXJlZDogYm9vbGVhbiwgbWluTGVuZ3RoOiBudW1iZXIgfSB9IHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgZXh0cmFPcHRpb25QbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0LLQtdC00LjRgtC1INC30L3QsNGH0LXQvdC40LUnO1xyXG4gIEBJbnB1dCgpIHVzZTogJ2RlZmF1bHQnIHwgJ2xpbmsnID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHNvcnRJY29uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNvcnRQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaXNGdWxsV2lkdGhEcm9wZG93bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgd2l0aG91dFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGFkZE9wdGlvbiE6IEFkZE9wdGlvbkZuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVNlYXJjaEZuPzogQ3VzdG9tU2VhcmNoRm47XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgcG9wdXBQb3NpdGlvbjogUG9zaXRpb25UeXBlID0gUG9zaXRpb25FbnVtLkJvdHRvbVN0YXJ0O1xyXG5cclxuICBASW5wdXQoKSBzaW5nbGVDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93biE6IFBvcHVwQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkKCdvcHRpb25UZW1wbGF0ZScpIG9wdGlvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUZW1wbGF0ZScpIGxhYmVsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdwb3B1cEhlYWRlclRlbXBsYXRlJykgcG9wdXBIZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwRm9vdGVyVGVtcGxhdGUnKSBwb3B1cEZvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgnY29udGVudFRlbXBsYXRlJykgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlVHlwZXM+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFNlbGVjdFZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9uVmFsaWRhdGlvbikge1xyXG4gICAgICB0aGlzLmZvcm0uaW5pdEZpZWxkcyh0aGlzLm1vZGVsLCB0aGlzLm9wdGlvblZhbGlkYXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWFkb25seUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSA/ICdtcngtaW5wdXRfX3JlYWRvbmx5JyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/XHJcbiAgICAgICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6XHJcbiAgICAgIHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7U2VsZWN0U2l6ZUVudW1bdGhpcy5zaXplXX0gJHt0aGlzLnJlYWRvbmx5Q2xhc3N9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRTZWxlY3RlZExhYmVscygpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdIHtcclxuICAgIGlmICh0aGlzLndpdGhvdXRTZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm4gW11cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGkgPT4gaS5fX3NlbGVjdGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRJdGVtcygpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVNlYXJjaEZuKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbVNlYXJjaEZuPy4odGhpcy5zZWFyY2hWYWx1ZSwgaXRlbS5fX29yaWdpbikgPz8gZmFsc2VcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlubmVySXRlbXMuZmlsdGVyKGkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmJpbmRMYWJlbCkge1xyXG4gICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luW3RoaXMuYmluZExhYmVsXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaS5fX29yaWdpblsnbGFiZWwnXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bJ2xhYmVsJ10pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpbikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZT8ubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldEljb25TdGF0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNPcGVuID8gJ29wZW5lZCcgOiAnJztcclxuICB9XHJcblxyXG4gIGdldCBnZXRJY29uU2l6ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ21lZGl1bScgPyAnaWNvbi1mb250LTE2JyA6ICdpY29uLWZvbnQtMjQnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0KGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5pbm5lckl0ZW1zID0gdGhpcy5pbm5lckl0ZW1zLm1hcChpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zaW5nbGVDaGFuZ2UpIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWR9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy51c2UgPT09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZCA/ICFpLl9fc2VsZWN0ZWQgOiBmYWxzZX07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWR9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWQgPyAhaS5fX3NlbGVjdGVkIDogaS5fX3NlbGVjdGVkfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3B1cCgpO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMuaW5uZXJJdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJJdGVtKGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICB0aGlzLm9uVW5zZWxlY3QoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25VbnNlbGVjdChpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgdGhpcy5pbm5lckl0ZW1zLmZvckVhY2goaSA9PiB7XHJcbiAgICAgIGlmIChpLl9faWQgPT09IGl0ZW0uX19pZCkge1xyXG4gICAgICAgIGkuX19zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLmlubmVySXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaXRlbSA9PiAoey4uLml0ZW0sIF9fc2VsZWN0ZWQ6IGZhbHNlfSkpO1xyXG5cclxuICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlUG9wdXAoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKFtdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVQb3B1cChpc09wZW46IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNPcGVuID0gaXNPcGVuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzT3B0aW9uKG9wdGlvbjogU2VsZWN0SW5uZXJJdGVtTW9kZWwpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCB7XHJcbiAgICByZXR1cm4gb3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzTGFiZWwobGFiZWw6IFNlbGVjdElubmVySXRlbU1vZGVsKTogU2VsZWN0SW5uZXJJdGVtTW9kZWwge1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUoc2VsZWN0ZWQ6IGFueSB8IGFueVtdID0gW10pOiB2b2lkIHtcclxuICAgIHRoaXMub3JpZ2luU2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGVkKHRoaXMub3JpZ2luSXRlbXMsIHRoaXMub3JpZ2luU2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVRleHRWYWx1ZUVtcHR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLmluaXRNb2RlbENoYW5nZWQodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25BZGROZXdDdXN0b21PcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLmFkZE9wdGlvbih0aGlzLm1vZGVsLmxhYmVsKTtcclxuICAgICAgdGhpcy5tb2RlbC5sYWJlbCA9ICcnO1xyXG5cclxuICAgICAgdGhpcy5jaGFuZ2VUZXh0VmFsdWVFbXB0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2VsZWN0ZWQoaXRlbXM6IGFueVtdID0gW10sIHNlbGVjdGVkOiBhbnlbXSA9IFtdKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KHRoaXMub3JpZ2luU2VsZWN0ZWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBnZXRJbm5lclNlbGVjdGVkKGl0ZW1zLCBzZWxlY3RlZCwgdGhpcy5iaW5kVmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IGdldElubmVyU2VsZWN0ZWQoaXRlbXMsIFtzZWxlY3RlZF0sIHRoaXMuYmluZFZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5uZXJJdGVtcyA9IGdldElubmVySXRlbXMoaXRlbXMsIHRoaXMuc2VsZWN0ZWQsIHRoaXMuYmluZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHNlbGVjdGVkSXRlbXM6IFNlbGVjdElubmVySXRlbU1vZGVsW10pIHtcclxuICAgIGNvbnN0IGNsZWFyZWRTZWxlY3RlZCA9IGdldFNlbGVjdGVkSXRlbXMoc2VsZWN0ZWRJdGVtcywgdGhpcy5iaW5kVmFsdWUpO1xyXG4gICAgY29uc3Qgb3V0cHV0U2VsZWN0ZWQgPSB0aGlzLm11bHRpcGxlID8gY2xlYXJlZFNlbGVjdGVkIDogY2xlYXJlZFNlbGVjdGVkLmxlbmd0aCA/IGNsZWFyZWRTZWxlY3RlZFswXSA6IG51bGw7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQob3V0cHV0U2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogb3V0cHV0U2VsZWN0ZWQsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIHRoaXMub25DaGFuZ2Uob3V0cHV0U2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy4tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiXHJcbiAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gIGNsYXNzPVwibXJ4LXNlbGVjdFwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fd3JhcHBlclwiPlxyXG4gICAgQHN3aXRjaCAodXNlKSB7XHJcbiAgICAgIEBjYXNlICgnZGVmYXVsdCcpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0XCJcclxuICAgICAgICAgIFttcnhQb3B1cFRyaWdnZXJdPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgW2lzRnVsbFdpZHRoRHJvcGRvd25dPVwiaXNGdWxsV2lkdGhEcm9wZG93blwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgQGlmIChnZXRTZWxlY3RlZExhYmVscy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgQGlmIChtdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fdmFsdWVzXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKG11bHRpQ29sbGFwc2VDb3VudCAmJiBnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggPj0gbXVsdGlDb2xsYXBzZUNvdW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fYmFkZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD7QktGL0LHRgNCw0L3Qvjoge3sgZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoIH19PC9wPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMTZcIiAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgdHJhY2sgaXRlbS5fX2lkOyBsZXQgZmlyc3QgPSAkZmlyc3Q7IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGxhYmVsVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3QsIGNsZWFyOiBjbGVhckl0ZW0uYmluZCh0aGlzKX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0TGFiZWxUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X192YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgdHJhY2sgaXRlbS5fX2lkKSB7XHJcbiAgICAgICAgICAgICAgICAgIHt7IGJpbmRMYWJlbCA/IGl0ZW0uX19vcmlnaW5bYmluZExhYmVsXSA6IGl0ZW0uX19vcmlnaW5bJ2xhYmVsJ10gfHwgaXRlbS5fX29yaWdpbiB9fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICBAaWYgKGlzTG9hZGluZykge1xyXG4gICAgICAgICAgICAgIDxtcngtbG9hZGVyXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplID09PSAnbGFyZ2UnID8gJ3NtYWxsJyA6ICdleHRyYS1zbWFsbCdcIlxyXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cIidicmFuZCdcIlxyXG4gICAgICAgICAgICAgID48L21yeC1sb2FkZXI+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpZiAoZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoICYmIGNsZWFyYWJsZSkge1xyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25TaXplXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGV2cm9uLWRvd24gbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiW2dldEljb25TdGF0ZSwgZ2V0SWNvblNpemVdXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGNhc2UgKCdsaW5rJykge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua1wiXHJcbiAgICAgICAgICBbbXJ4UG9wdXBUcmlnZ2VyXT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgIFtwb3B1cFBvc2l0aW9uXT1cInBvcHVwUG9zaXRpb25cIlxyXG4gICAgICAgICAgW2lzRnVsbFdpZHRoRHJvcGRvd25dPVwiaXNGdWxsV2lkdGhEcm9wZG93blwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoc29ydFBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgICAgICAgPHA+e3sgc29ydFBsYWNlaG9sZGVyIH19PC9wPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYgKHNvcnRJY29uKSB7XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24ge3tzb3J0SWNvbiA9PT0gJ2FzYycgPyAnaWNvbi1zb3J0aW5nLXVwJyA6ICdpY29uLXNvcnRpbmctZG93bid9fVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICBAaWYgKGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX192YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgdHJhY2sgaXRlbS5fX2lkKSB7XHJcbiAgICAgICAgICAgICAgICAgIHt7IGJpbmRMYWJlbCA/IGl0ZW0uX19vcmlnaW5bYmluZExhYmVsXSA6IGl0ZW0uX19vcmlnaW5bJ2xhYmVsJ10gfHwgaXRlbS5fX29yaWdpbiB9fVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNoZXZyb24tZG93biBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJbZ2V0SWNvblN0YXRlLCBnZXRJY29uU2l6ZV1cIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIDxtcngtcG9wdXAgI2Ryb3Bkb3duIFtjbG9zZUFmdGVyQ2xpY2tdPVwiY2xvc2FibGVcIiAodG9nZ2xlKT1cInRvZ2dsZVBvcHVwKCRldmVudClcIj5cclxuICAgICAgQGZvciAoaXRlbSBvZiBmaWx0ZXJlZEl0ZW1zOyB0cmFjayBpdGVtLl9faWQ7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gICAgICAgIDxtcngtcG9wdXAtaXRlbSBbY3VzdG9tXT1cInRydWVcIiBbaWRdPVwiaXRlbS5fX2lkXCIgKGNsaWNrZWQpPVwib25TZWxlY3QoaXRlbSlcIj5cclxuICAgICAgICAgIEBpZiAob3B0aW9uVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGZpcnN0LCBsYXN0fVwiXHJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGZpcnN0LCBsYXN0fVwiXHJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21yeC1wb3B1cC1pdGVtPlxyXG4gICAgICB9IEBlbXB0eSB7XHJcbiAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtjdXN0b21dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19lbXB0eVwiPnt7IGVtcHR5VGV4dCB9fTwvZGl2PlxyXG4gICAgICAgIDwvbXJ4LXBvcHVwLWl0ZW0+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgQGlmIChzZWFyY2hhYmxlKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX3NlYXJjaFwiPlxyXG4gICAgICAgICAgICA8bXJ4LWlucHV0LXNlYXJjaFxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgICA+PC9tcngtaW5wdXQtc2VhcmNoPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKGNvbnRlbnRUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGlmIChwb3B1cEhlYWRlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcHVwSGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgQGlmICghIWFkZE9wdGlvbikge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19leHRyYS1vcHRpb25cIj5cclxuICAgICAgICAgICAgPG1yeC1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMVwiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJleHRyYU9wdGlvblBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmxhYmVsXCJcclxuICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjMwMFwiXHJcbiAgICAgICAgICAgICAgW2ludmFsaWRdPVwiISFmb3JtLmVycm9yc1snbGFiZWwnXVwiXHJcbiAgICAgICAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImZvcm0uZXJyb3JzWydsYWJlbCddXCJcclxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VUZXh0VmFsdWVFbXB0eSgpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDxtcngtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIGljb249XCI8c3BhbiBjbGFzcz0nbXJ4LWljb24gaWNvbi1wbHVzIGljb24tZm9udC0yNCc+PC9zcGFuPlwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkTmV3Q3VzdG9tT3B0aW9uKClcIlxyXG4gICAgICAgICAgICA+PC9tcngtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKHBvcHVwRm9vdGVyVGVtcGxhdGUpIHtcclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wdXBGb290ZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9tcngtcG9wdXA+XHJcbiAgPC9kaXY+XHJcblxyXG4gIEBpZiAoaW52YWxpZCAmJiBpc0ludmFsaWRNZXNzYWdlKSB7XHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2UgW2ludmFsaWRNZXNzYWdlXT1cImludmFsaWRNZXNzYWdlXCI+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuICB9XHJcblxyXG4gIDxtcngtc2F2ZS1zdGF0ZSBbZmllbGRzXT1cImZpZWxkc1wiIFtpZF09XCJ1dWlkXCIgW3R5cGVdPVwiJ2lucHV0J1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFiZWxUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICBAaWYgKGFzTGFiZWwoaXRlbSk7IGFzIGxhYmVsKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX2JhZGdlXCI+XHJcbiAgICAgIDxwPnt7IGJpbmRMYWJlbCA/IGxhYmVsLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBsYWJlbC5fX29yaWdpblsnbGFiZWwnXSB8fCBsYWJlbC5fX29yaWdpbiB9fTwvcD5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNlwiIChjbGljayk9XCJvblVuc2VsZWN0KGxhYmVsKVwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gIEBpZiAoYXNPcHRpb24oaXRlbSk7IGFzIG9wdGlvbikge1xyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19pdGVtXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9faXRlbS0tY29udGVudFwiPlxyXG4gICAgICAgIEBpZiAoYmluZEljb24gJiYgb3B0aW9uLl9fb3JpZ2luW2JpbmRJY29uXSkge1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWZvbnQtMjRcIiBbY2xhc3NdPVwib3B0aW9uW2JpbmRJY29uXVwiPjwvc3Bhbj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxwPnt7IGJpbmRMYWJlbCA/IG9wdGlvbi5fX29yaWdpbltiaW5kTGFiZWxdIDogb3B0aW9uLl9fb3JpZ2luWydsYWJlbCddIHx8IG9wdGlvbi5fX29yaWdpbiB9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKG9wdGlvbi5fX3NlbGVjdGVkKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNoZWNrIGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -73,7 +73,7 @@ export class LabelComponent {
73
73
  this.clickedLink.emit(event);
74
74
  }
75
75
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LabelComponent, deps: [{ token: i1.TooltipService }], target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LabelComponent, selector: "mrx-label", inputs: { requiredHidden: "requiredHidden", required: "required", boldLabel: "boldLabel", disabled: "disabled", placeholder: "placeholder", label: "label", customClasses: "customClasses", triggerTextPosition: "triggerTextPosition", isPublicInfo: "isPublicInfo", publicInfoTooltip: "publicInfoTooltip", isSwitch: "isSwitch", switchLabel: "switchLabel", switchValue: "switchValue", isCheckbox: "isCheckbox", checkboxLabel: "checkboxLabel", checkboxValue: "checkboxValue", counter: "counter", linkText: "linkText", linkPrevent: "linkPrevent", linkType: "linkType", linkMonochrome: "linkMonochrome", href: "href", triggerType: "triggerType", tooltip: "tooltip", tooltipInitialVisible: "tooltipInitialVisible", isSaveToStorage: "isSaveToStorage" }, outputs: { changeSwitchValue: "changeSwitchValue", changeCheckboxValue: "changeCheckboxValue", clickedLink: "clickedLink" }, providers: [TooltipService], queries: [{ propertyName: "customIcons", first: true, predicate: ["customIcons"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n class=\"mrx-label\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n <span *ngIf=\"required && !disabled && !requiredHidden\" class=\"required-active\">*</span>\r\n\r\n <span\r\n *ngIf=\"isPublicInfo\"\r\n class=\"mrx-icon icon-megafon ml-1\"\r\n [mrxCdkTooltip]=\"publicInfoTooltip\"\r\n ></span>\r\n\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n *ngIf=\"tooltipService.getTooltip\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n <mrx-badge *ngIf=\"counter\" customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n </div>\r\n\r\n <mrx-switch\r\n *ngIf=\"isSwitch\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n\r\n <mrx-checkbox\r\n *ngIf=\"isCheckbox\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n\r\n <mrx-link\r\n *ngIf=\"linkText\"\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >{{ linkText }}</mrx-link>\r\n</div>\r\n\r\n<mrx-tooltip\r\n *ngIf=\"tooltipService.getTooltip\"\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n></mrx-tooltip>\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TooltipComponent, selector: "mrx-tooltip", inputs: ["tooltip", "tooltipVisible", "tooltipInitiallyVisible", "triggerType"], outputs: ["visibilityChanged"] }, { kind: "component", type: i5.TooltipTriggerComponent, selector: "mrx-tooltip-trigger", inputs: ["triggerTextPosition", "triggerType", "customClasses", "isVisibleTooltip"], outputs: ["toggleTooltip"] }, { kind: "component", type: i6.SwitchComponent, selector: "mrx-switch", inputs: ["fields", "size", "type", "label", "boldLabel", "disabled", "readonly", "required", "customClasses", "leftText", "rightText"], outputs: ["changed", "modelChange"] }, { kind: "component", type: i7.BadgeComponent, selector: "mrx-badge", inputs: ["type", "tag", "size", "color", "customColor", "text", "path", "customClasses", "target"], outputs: ["clicked"] }, { kind: "component", type: i8.LinkComponent, selector: "mrx-link", inputs: ["href", "target", "routerLink", "queryParams", "type", "monochrome", "customClasses", "prevent", "size"], outputs: ["clicked"] }, { kind: "directive", type: i9.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { kind: "component", type: i10.CheckboxComponent, selector: "mrx-checkbox", inputs: ["fields", "required", "boldLabel", "indeterminate", "disabled", "readonly", "label", "customClasses", "customWrapperClasses", "invalid", "checkInvalid", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changed", "modelChange"] }], animations: [
76
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LabelComponent, selector: "mrx-label", inputs: { requiredHidden: "requiredHidden", required: "required", boldLabel: "boldLabel", disabled: "disabled", placeholder: "placeholder", label: "label", customClasses: "customClasses", triggerTextPosition: "triggerTextPosition", isPublicInfo: "isPublicInfo", publicInfoTooltip: "publicInfoTooltip", isSwitch: "isSwitch", switchLabel: "switchLabel", switchValue: "switchValue", isCheckbox: "isCheckbox", checkboxLabel: "checkboxLabel", checkboxValue: "checkboxValue", counter: "counter", linkText: "linkText", linkPrevent: "linkPrevent", linkType: "linkType", linkMonochrome: "linkMonochrome", href: "href", triggerType: "triggerType", tooltip: "tooltip", tooltipInitialVisible: "tooltipInitialVisible", isSaveToStorage: "isSaveToStorage" }, outputs: { changeSwitchValue: "changeSwitchValue", changeCheckboxValue: "changeCheckboxValue", clickedLink: "clickedLink" }, providers: [TooltipService], queries: [{ propertyName: "customIcons", first: true, predicate: ["customIcons"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n class=\"mrx-label\"\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n @if (required && !disabled && !requiredHidden) {\r\n <span class=\"required-active\">*</span>\r\n }\r\n\r\n @if (isPublicInfo) {\r\n <span class=\"mrx-icon icon-megafon ml-1\" [mrxCdkTooltip]=\"publicInfoTooltip\"></span>\r\n }\r\n\r\n @if (tooltipService.getTooltip) {\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n @if (counter) {\r\n <mrx-badge customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n }\r\n </div>\r\n\r\n @if (isSwitch) {\r\n <mrx-switch\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n }\r\n\r\n @if (isCheckbox) {\r\n <mrx-checkbox\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n }\r\n\r\n @if (linkText) {\r\n <mrx-link\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >\r\n {{ linkText }}\r\n </mrx-link>\r\n }\r\n</div>\r\n\r\n@if (tooltipService.getTooltip) {\r\n <mrx-tooltip\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip>\r\n}\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.TooltipComponent, selector: "mrx-tooltip", inputs: ["tooltip", "tooltipVisible", "tooltipInitiallyVisible", "triggerType"], outputs: ["visibilityChanged"] }, { kind: "component", type: i5.TooltipTriggerComponent, selector: "mrx-tooltip-trigger", inputs: ["triggerTextPosition", "triggerType", "customClasses", "isVisibleTooltip"], outputs: ["toggleTooltip"] }, { kind: "component", type: i6.SwitchComponent, selector: "mrx-switch", inputs: ["fields", "size", "type", "label", "boldLabel", "disabled", "readonly", "required", "customClasses", "leftText", "rightText"], outputs: ["changed", "modelChange"] }, { kind: "component", type: i7.BadgeComponent, selector: "mrx-badge", inputs: ["type", "tag", "size", "color", "customColor", "text", "path", "customClasses", "target"], outputs: ["clicked"] }, { kind: "component", type: i8.LinkComponent, selector: "mrx-link", inputs: ["href", "target", "routerLink", "queryParams", "type", "monochrome", "customClasses", "prevent", "size"], outputs: ["clicked"] }, { kind: "directive", type: i9.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { kind: "component", type: i10.CheckboxComponent, selector: "mrx-checkbox", inputs: ["fields", "required", "boldLabel", "indeterminate", "disabled", "readonly", "label", "customClasses", "customWrapperClasses", "invalid", "checkInvalid", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changed", "modelChange"] }], animations: [
77
77
  trigger('openClose', [
78
78
  state('open', style({ height: '*', padding: '*', 'margin-bottom': '8px' })),
79
79
  state('closed', style({ height: 0, padding: 0, 'margin-bottom': 0 })),
@@ -91,7 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
91
91
  transition('open => closed', [animate('0.5s ease')]),
92
92
  transition('closed => open', [animate('0.5s ease')]),
93
93
  ]),
94
- ], providers: [TooltipService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n class=\"mrx-label\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n <span *ngIf=\"required && !disabled && !requiredHidden\" class=\"required-active\">*</span>\r\n\r\n <span\r\n *ngIf=\"isPublicInfo\"\r\n class=\"mrx-icon icon-megafon ml-1\"\r\n [mrxCdkTooltip]=\"publicInfoTooltip\"\r\n ></span>\r\n\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n *ngIf=\"tooltipService.getTooltip\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n <mrx-badge *ngIf=\"counter\" customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n </div>\r\n\r\n <mrx-switch\r\n *ngIf=\"isSwitch\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n\r\n <mrx-checkbox\r\n *ngIf=\"isCheckbox\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n\r\n <mrx-link\r\n *ngIf=\"linkText\"\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >{{ linkText }}</mrx-link>\r\n</div>\r\n\r\n<mrx-tooltip\r\n *ngIf=\"tooltipService.getTooltip\"\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n></mrx-tooltip>\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"] }]
94
+ ], providers: [TooltipService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n class=\"mrx-label\"\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n @if (required && !disabled && !requiredHidden) {\r\n <span class=\"required-active\">*</span>\r\n }\r\n\r\n @if (isPublicInfo) {\r\n <span class=\"mrx-icon icon-megafon ml-1\" [mrxCdkTooltip]=\"publicInfoTooltip\"></span>\r\n }\r\n\r\n @if (tooltipService.getTooltip) {\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n @if (counter) {\r\n <mrx-badge customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n }\r\n </div>\r\n\r\n @if (isSwitch) {\r\n <mrx-switch\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n }\r\n\r\n @if (isCheckbox) {\r\n <mrx-checkbox\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n }\r\n\r\n @if (linkText) {\r\n <mrx-link\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >\r\n {{ linkText }}\r\n </mrx-link>\r\n }\r\n</div>\r\n\r\n@if (tooltipService.getTooltip) {\r\n <mrx-tooltip\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip>\r\n}\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"] }]
95
95
  }], ctorParameters: () => [{ type: i1.TooltipService }], propDecorators: { requiredHidden: [{
96
96
  type: Input
97
97
  }], required: [{
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
154
154
  }], clickedLink: [{
155
155
  type: Output
156
156
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7OztBQW9CckUsTUFBTSxPQUFPLGNBQWM7SUErRE47SUE5RFgsUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUNiLHNCQUFzQixHQUFHLEtBQUssQ0FBQTtJQUM5QixnQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFFaEIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLG1CQUFtQixHQUE2QixTQUFTLENBQUM7SUFDMUQsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFFdkMsU0FBUztJQUNPLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFD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QW5DLE1BQU07Z0JBR0gsT0FBTztzQkFEVixLQUFLO2dCQU9GLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFPRixlQUFlO3NCQURsQixLQUFLO2dCQU1JLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFRvb2x0aXBUZXh0UG9zaXRpb25UeXBlcywgVG9vbHRpcFRyaWdnZXJUeXBlcyB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC10cmlnZ2VyL3Rvb2x0aXAtdHJpZ2dlci5lbnVtJztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLi90b29sdGlwL3NlcnZpY2VzL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmtUeXBlcyB9IGZyb20gJy4uL2xpbmsvbGluay5lbnVtJztcclxuaW1wb3J0IHsgU3dpdGNoVmFsdWVUeXBlcyB9IGZyb20gJy4uL2Zvcm0vc3dpdGNoL3N3aXRjaC5lbnVtJztcclxuaW1wb3J0IHsgQ2hlY2tib3hWYWx1ZVR5cGVzIH0gZnJvbSAnLi4vZm9ybS9jaGVja2JveC9jaGVja2JveC5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xhYmVsLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xyXG4gICAgICBzdGF0ZSgnb3BlbicsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHBhZGRpbmc6ICcqJywgJ21hcmdpbi1ib3R0b20nOiAnOHB4JyB9KSksXHJcbiAgICAgIHN0YXRlKCdjbG9zZWQnLCBzdHlsZSh7IGhlaWdodDogMCwgcGFkZGluZzogMCwgJ21hcmdpbi1ib3R0b20nOiAwIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVG9vbHRpcFNlcnZpY2VdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX3Rvb2x0aXAgPSAnJ1xyXG4gIHByaXZhdGUgX3Rvb2x0aXBJbml0aWFsVmlzaWJsZSA9IGZhbHNlXHJcbiAgcHJpdmF0ZSBfaXNTYXZlVG9TdG9yYWdlID0gZmFsc2VcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkSGlkZGVuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGJvbGRMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgdHJpZ2dlclRleHRQb3NpdGlvbjogVG9vbHRpcFRleHRQb3NpdGlvblR5cGVzID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc1B1YmxpY0luZm8gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcHVibGljSW5mb1Rvb2x0aXAgPSAnJztcclxuXHJcbiAgLy8gU1dJVENIXHJcbiAgQElucHV0KCkgcHVibGljIGlzU3dpdGNoID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHN3aXRjaExhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHN3aXRjaFZhbHVlID0gZmFsc2U7XHJcblxyXG4gIC8vIENIRUNLQk9YXHJcbiAgQElucHV0KCkgcHVibGljIGlzQ2hlY2tib3ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tib3hMYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja2JveFZhbHVlID0gZmFsc2U7XHJcblxyXG4gIC8vIENPVU5URVJcclxuICBASW5wdXQoKSBwdWJsaWMgY291bnRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcclxuXHJcbiAgLy8gTElOS1xyXG4gIEBJbnB1dCgpIGxpbmtUZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgbGlua1ByZXZlbnQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGxpbmtUeXBlOiBMaW5rVHlwZXMgPSAncHNldWRvJztcclxuICBASW5wdXQoKSBsaW5rTW9ub2Nocm9tZSA9IHRydWU7XHJcbiAgQElucHV0KCkgaHJlZiA9ICcjJztcclxuXHJcbiAgQElucHV0KCkgdHJpZ2dlclR5cGU6IFRvb2x0aXBUcmlnZ2VyVHlwZXMgPSAnYXR0ZW50aW9uJztcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnY3VzdG9tSWNvbnMnKSBjdXN0b21JY29ucyE6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZVN3aXRjaFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxTd2l0Y2hWYWx1ZVR5cGVzPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlQ2hlY2tib3hWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hWYWx1ZVR5cGVzPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0b29sdGlwKHRvb2x0aXA6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNldFRvb2x0aXAgPSB0b29sdGlwXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0b29sdGlwSW5pdGlhbFZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Rvb2x0aXBJbml0aWFsVmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgdGhpcy50b29sdGlwU2VydmljZS50b2dnbGVUb29sdGlwVmlzaWJsZUZyb21Db2RlKHZhbHVlKVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaXNTYXZlVG9TdG9yYWdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1NhdmVUb1N0b3JhZ2UgPSB2YWx1ZTtcclxuICAgIHRoaXMudG9vbHRpcFNlcnZpY2Uuc2V0U2F2ZVRvU3RvcmFnZSA9IHZhbHVlXHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tlZExpbms6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRvb2x0aXBTZXJ2aWNlLmluaXRUb29sdGlwKHRoaXMuX3Rvb2x0aXAsIHRoaXMuX3Rvb2x0aXBJbml0aWFsVmlzaWJsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGlja1RvTGluayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja2VkTGluay5lbWl0KGV2ZW50KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXJ4LWxhYmVsLXdyYXBwZXIgbWItMlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtbGFiZWwtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIiBbY2xhc3MubXItMl09XCJpc1N3aXRjaFwiPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuICAgICAgW2NsYXNzLnJlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW2NsYXNzLmJvbGQtbGFiZWxdPVwiYm9sZExhYmVsXCJcclxuICAgICAgY2xhc3M9XCJtcngtbGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkICYmICFkaXNhYmxlZCAmJiAhcmVxdWlyZWRIaWRkZW5cIiBjbGFzcz1cInJlcXVpcmVkLWFjdGl2ZVwiPio8L3NwYW4+XHJcblxyXG4gICAgICA8c3BhblxyXG4gICAgICAgICpuZ0lmPVwiaXNQdWJsaWNJbmZvXCJcclxuICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tbWVnYWZvbiBtbC0xXCJcclxuICAgICAgICBbbXJ4Q2RrVG9vbHRpcF09XCJwdWJsaWNJbmZvVG9vbHRpcFwiXHJcbiAgICAgID48L3NwYW4+XHJcblxyXG4gICAgICA8bXJ4LXRvb2x0aXAtdHJpZ2dlclxyXG4gICAgICAgIGN1c3RvbUNsYXNzZXM9XCJtbC0xXCJcclxuICAgICAgICAqbmdJZj1cInRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXBcIlxyXG4gICAgICAgICh0b2dnbGVUb29sdGlwKT1cInRvb2x0aXBTZXJ2aWNlLnRvZ2dsZVRvb2x0aXBWaXNpYmxlKClcIlxyXG4gICAgICAgIFtpc1Zpc2libGVUb29sdGlwXT1cInRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXBWaXNpYmxlXCJcclxuICAgICAgICBbdHJpZ2dlclRleHRQb3NpdGlvbl09XCJ0cmlnZ2VyVGV4dFBvc2l0aW9uXCJcclxuICAgICAgICBbdHJpZ2dlclR5cGVdPVwidHJpZ2dlclR5cGVcIlxyXG4gICAgICA+PC9tcngtdG9vbHRpcC10cmlnZ2VyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2xhYmVsPlxyXG5cclxuICAgIDxtcngtYmFkZ2UgKm5nSWY9XCJjb3VudGVyXCIgY3VzdG9tQ2xhc3Nlcz1cIm1sLTJcIiB0eXBlPVwiY2lyY2xlXCIgc2l6ZT1cInNtYWxsXCI+e3sgY291bnRlciB9fTwvbXJ4LWJhZGdlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bXJ4LXN3aXRjaFxyXG4gICAgKm5nSWY9XCJpc1N3aXRjaFwiXHJcbiAgICBbYm9sZExhYmVsXT1cImJvbGRMYWJlbFwiXHJcbiAgICBbbGFiZWxdPVwic3dpdGNoTGFiZWxcIlxyXG4gICAgW25nTW9kZWxdPVwic3dpdGNoVmFsdWVcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQ2hlY2tib3hWYWx1ZS5lbWl0KCRldmVudClcIlxyXG4gID48L21yeC1zd2l0Y2g+XHJcblxyXG4gIDxtcngtY2hlY2tib3hcclxuICAgICpuZ0lmPVwiaXNDaGVja2JveFwiXHJcbiAgICBbYm9sZExhYmVsXT1cImJvbGRMYWJlbFwiXHJcbiAgICBbbGFiZWxdPVwiY2hlY2tib3hMYWJlbFwiXHJcbiAgICBbbmdNb2RlbF09XCJjaGVja2JveFZhbHVlXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNoZWNrYm94VmFsdWUuZW1pdCgkZXZlbnQpXCJcclxuICA+PC9tcngtY2hlY2tib3g+XHJcblxyXG4gIDxtcngtbGlua1xyXG4gICAgKm5nSWY9XCJsaW5rVGV4dFwiXHJcbiAgICBbcHJldmVudF09XCJsaW5rUHJldmVudFwiXHJcbiAgICBbdHlwZV09XCJsaW5rVHlwZVwiXHJcbiAgICBbbW9ub2Nocm9tZV09XCJsaW5rTW9ub2Nocm9tZVwiXHJcbiAgICAoY2xpY2spPVwib25DbGlja1RvTGluaygkZXZlbnQpXCJcclxuICA+e3sgbGlua1RleHQgfX08L21yeC1saW5rPlxyXG48L2Rpdj5cclxuXHJcbjxtcngtdG9vbHRpcFxyXG4gICpuZ0lmPVwidG9vbHRpcFNlcnZpY2UuZ2V0VG9vbHRpcFwiXHJcbiAgW3Rvb2x0aXBdPVwidG9vbHRpcFNlcnZpY2UuZ2V0VG9vbHRpcFwiXHJcbiAgW3Rvb2x0aXBWaXNpYmxlXT1cInRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXBWaXNpYmxlXCJcclxuICBbdHJpZ2dlclR5cGVdPVwidHJpZ2dlclR5cGVcIlxyXG4+PC9tcngtdG9vbHRpcD5cclxuXHJcbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7OztBQW9CckUsTUFBTSxPQUFPLGNBQWM7SUErRE47SUE5RFgsUUFBUSxHQUFHLEVBQUUsQ0FBQTtJQUNiLHNCQUFzQixHQUFHLEtBQUssQ0FBQTtJQUM5QixnQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFFaEIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLG1CQUFtQixHQUE2QixTQUFTLENBQUM7SUFDMUQsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFFdkMsU0FBUztJQUNPLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFD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QW5DLE1BQU07Z0JBR0gsT0FBTztzQkFEVixLQUFLO2dCQU9GLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFPRixlQUFlO3NCQURsQixLQUFLO2dCQU1JLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFRvb2x0aXBUZXh0UG9zaXRpb25UeXBlcywgVG9vbHRpcFRyaWdnZXJUeXBlcyB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC10cmlnZ2VyL3Rvb2x0aXAtdHJpZ2dlci5lbnVtJztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLi90b29sdGlwL3NlcnZpY2VzL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IExpbmtUeXBlcyB9IGZyb20gJy4uL2xpbmsvbGluay5lbnVtJztcclxuaW1wb3J0IHsgU3dpdGNoVmFsdWVUeXBlcyB9IGZyb20gJy4uL2Zvcm0vc3dpdGNoL3N3aXRjaC5lbnVtJztcclxuaW1wb3J0IHsgQ2hlY2tib3hWYWx1ZVR5cGVzIH0gZnJvbSAnLi4vZm9ybS9jaGVja2JveC9jaGVja2JveC5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xhYmVsLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignb3BlbkNsb3NlJywgW1xyXG4gICAgICBzdGF0ZSgnb3BlbicsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHBhZGRpbmc6ICcqJywgJ21hcmdpbi1ib3R0b20nOiAnOHB4JyB9KSksXHJcbiAgICAgIHN0YXRlKCdjbG9zZWQnLCBzdHlsZSh7IGhlaWdodDogMCwgcGFkZGluZzogMCwgJ21hcmdpbi1ib3R0b20nOiAwIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVG9vbHRpcFNlcnZpY2VdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX3Rvb2x0aXAgPSAnJ1xyXG4gIHByaXZhdGUgX3Rvb2x0aXBJbml0aWFsVmlzaWJsZSA9IGZhbHNlXHJcbiAgcHJpdmF0ZSBfaXNTYXZlVG9TdG9yYWdlID0gZmFsc2VcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkSGlkZGVuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGJvbGRMYWJlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgdHJpZ2dlclRleHRQb3NpdGlvbjogVG9vbHRpcFRleHRQb3NpdGlvblR5cGVzID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc1B1YmxpY0luZm8gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcHVibGljSW5mb1Rvb2x0aXAgPSAnJztcclxuXHJcbiAgLy8gU1dJVENIXHJcbiAgQElucHV0KCkgcHVibGljIGlzU3dpdGNoID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHN3aXRjaExhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHN3aXRjaFZhbHVlID0gZmFsc2U7XHJcblxyXG4gIC8vIENIRUNLQk9YXHJcbiAgQElucHV0KCkgcHVibGljIGlzQ2hlY2tib3ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tib3hMYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja2JveFZhbHVlID0gZmFsc2U7XHJcblxyXG4gIC8vIENPVU5URVJcclxuICBASW5wdXQoKSBwdWJsaWMgY291bnRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcclxuXHJcbiAgLy8gTElOS1xyXG4gIEBJbnB1dCgpIGxpbmtUZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgbGlua1ByZXZlbnQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGxpbmtUeXBlOiBMaW5rVHlwZXMgPSAncHNldWRvJztcclxuICBASW5wdXQoKSBsaW5rTW9ub2Nocm9tZSA9IHRydWU7XHJcbiAgQElucHV0KCkgaHJlZiA9ICcjJztcclxuXHJcbiAgQElucHV0KCkgdHJpZ2dlclR5cGU6IFRvb2x0aXBUcmlnZ2VyVHlwZXMgPSAnYXR0ZW50aW9uJztcclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnY3VzdG9tSWNvbnMnKSBjdXN0b21JY29ucyE6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZVN3aXRjaFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxTd2l0Y2hWYWx1ZVR5cGVzPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlQ2hlY2tib3hWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hlY2tib3hWYWx1ZVR5cGVzPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0b29sdGlwKHRvb2x0aXA6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNldFRvb2x0aXAgPSB0b29sdGlwXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0b29sdGlwSW5pdGlhbFZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3Rvb2x0aXBJbml0aWFsVmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgdGhpcy50b29sdGlwU2VydmljZS50b2dnbGVUb29sdGlwVmlzaWJsZUZyb21Db2RlKHZhbHVlKVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaXNTYXZlVG9TdG9yYWdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc1NhdmVUb1N0b3JhZ2UgPSB2YWx1ZTtcclxuICAgIHRoaXMudG9vbHRpcFNlcnZpY2Uuc2V0U2F2ZVRvU3RvcmFnZSA9IHZhbHVlXHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tlZExpbms6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRvb2x0aXBTZXJ2aWNlLmluaXRUb29sdGlwKHRoaXMuX3Rvb2x0aXAsIHRoaXMuX3Rvb2x0aXBJbml0aWFsVmlzaWJsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGlja1RvTGluayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja2VkTGluay5lbWl0KGV2ZW50KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXJ4LWxhYmVsLXdyYXBwZXIgbWItMlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtbGFiZWwtY29udGVudCBkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIiBbY2xhc3MubXItMl09XCJpc1N3aXRjaFwiPlxyXG4gICAgPGxhYmVsXHJcbiAgICAgIGNsYXNzPVwibXJ4LWxhYmVsXCJcclxuICAgICAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gICAgICBbY2xhc3MucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbY2xhc3MuYm9sZC1sYWJlbF09XCJib2xkTGFiZWxcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgICBAaWYgKHJlcXVpcmVkICYmICFkaXNhYmxlZCAmJiAhcmVxdWlyZWRIaWRkZW4pIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWFjdGl2ZVwiPio8L3NwYW4+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBpZiAoaXNQdWJsaWNJbmZvKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLW1lZ2Fmb24gbWwtMVwiIFttcnhDZGtUb29sdGlwXT1cInB1YmxpY0luZm9Ub29sdGlwXCI+PC9zcGFuPlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgKHRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXApIHtcclxuICAgICAgICA8bXJ4LXRvb2x0aXAtdHJpZ2dlclxyXG4gICAgICAgICAgY3VzdG9tQ2xhc3Nlcz1cIm1sLTFcIlxyXG4gICAgICAgICAgKHRvZ2dsZVRvb2x0aXApPVwidG9vbHRpcFNlcnZpY2UudG9nZ2xlVG9vbHRpcFZpc2libGUoKVwiXHJcbiAgICAgICAgICBbaXNWaXNpYmxlVG9vbHRpcF09XCJ0b29sdGlwU2VydmljZS5nZXRUb29sdGlwVmlzaWJsZVwiXHJcbiAgICAgICAgICBbdHJpZ2dlclRleHRQb3NpdGlvbl09XCJ0cmlnZ2VyVGV4dFBvc2l0aW9uXCJcclxuICAgICAgICAgIFt0cmlnZ2VyVHlwZV09XCJ0cmlnZ2VyVHlwZVwiXHJcbiAgICAgICAgPjwvbXJ4LXRvb2x0aXAtdHJpZ2dlcj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2xhYmVsPlxyXG5cclxuICAgIEBpZiAoY291bnRlcikge1xyXG4gICAgICA8bXJ4LWJhZGdlIGN1c3RvbUNsYXNzZXM9XCJtbC0yXCIgdHlwZT1cImNpcmNsZVwiIHNpemU9XCJzbWFsbFwiPnt7IGNvdW50ZXIgfX08L21yeC1iYWRnZT5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuXHJcbiAgQGlmIChpc1N3aXRjaCkge1xyXG4gICAgPG1yeC1zd2l0Y2hcclxuICAgICAgW2JvbGRMYWJlbF09XCJib2xkTGFiZWxcIlxyXG4gICAgICBbbGFiZWxdPVwic3dpdGNoTGFiZWxcIlxyXG4gICAgICBbbmdNb2RlbF09XCJzd2l0Y2hWYWx1ZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNoZWNrYm94VmFsdWUuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L21yeC1zd2l0Y2g+XHJcbiAgfVxyXG5cclxuICBAaWYgKGlzQ2hlY2tib3gpIHtcclxuICAgIDxtcngtY2hlY2tib3hcclxuICAgICAgW2JvbGRMYWJlbF09XCJib2xkTGFiZWxcIlxyXG4gICAgICBbbGFiZWxdPVwiY2hlY2tib3hMYWJlbFwiXHJcbiAgICAgIFtuZ01vZGVsXT1cImNoZWNrYm94VmFsdWVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDaGVja2JveFZhbHVlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICA+PC9tcngtY2hlY2tib3g+XHJcbiAgfVxyXG5cclxuICBAaWYgKGxpbmtUZXh0KSB7XHJcbiAgICA8bXJ4LWxpbmtcclxuICAgICAgW3ByZXZlbnRdPVwibGlua1ByZXZlbnRcIlxyXG4gICAgICBbdHlwZV09XCJsaW5rVHlwZVwiXHJcbiAgICAgIFttb25vY2hyb21lXT1cImxpbmtNb25vY2hyb21lXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tUb0xpbmsoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGxpbmtUZXh0IH19XHJcbiAgICA8L21yeC1saW5rPlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG5AaWYgKHRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXApIHtcclxuICA8bXJ4LXRvb2x0aXBcclxuICAgIFt0b29sdGlwXT1cInRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXBcIlxyXG4gICAgW3Rvb2x0aXBWaXNpYmxlXT1cInRvb2x0aXBTZXJ2aWNlLmdldFRvb2x0aXBWaXNpYmxlXCJcclxuICAgIFt0cmlnZ2VyVHlwZV09XCJ0cmlnZ2VyVHlwZVwiXHJcbiAgPjwvbXJ4LXRvb2x0aXA+XHJcbn1cclxuXHJcbiJdfQ==
@@ -110,7 +110,7 @@ export class PaginatorComponent {
110
110
  return item.id;
111
111
  }
112
112
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PaginatorComponent, selector: "mrx-paginator", inputs: { pageSizes: "pageSizes", currentPage: "currentPage", pageSize: "pageSize", total: "total", customClasses: "customClasses", isEmptyPaginator: "isEmptyPaginator", isPaginatorText: "isPaginatorText", paginatorText: "paginatorText", dropdownPosition: "dropdownPosition", popupPosition: "popupPosition", setPosition: ["position", "setPosition"], setWithPageSize: ["withPageSize", "setWithPageSize"] }, outputs: { dataStateChanged: "dataStateChanged" }, ngImport: i0, template: "<div class=\"mrx-paginator\" [class]=\"getClasses\" *ngIf=\"isEmptyPaginator || total\">\r\n <ul class=\"mrx-paginator__list\">\r\n <li\r\n class=\"mrx-paginator__previous\"\r\n [class.disabled]=\"currentPage <= 1\"\r\n (click)=\"currentPage > 1 && onChangeCurrentPage(currentPage - 1)\">\r\n <div class=\"mrx-icon icon-chevron-left icon-font-24\"></div>\r\n </li>\r\n\r\n <li *ngIf=\"getViewItems.length === 0\" class=\"mrx-paginator__item active\">1</li>\r\n\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage > 3 && getItems > 5\" (click)=\"onChangeCurrentPage(1)\">1</li>\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage > 3 && getItems > 5\">...</li>\r\n\r\n <li\r\n class=\"mrx-paginator__item\"\r\n *ngFor=\"let item of getViewItems; trackBy: trackByFn\"\r\n (click)=\"onChangeCurrentPage(item.index)\"\r\n [class.active]=\"currentPage === item.index\"\r\n >\r\n {{item.index}}\r\n </li>\r\n\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\">...</li>\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\"\r\n (click)=\"onChangeCurrentPage(getItems)\">{{getItems}}</li>\r\n\r\n <li\r\n class=\"mrx-paginator__next\"\r\n [class.disabled]=\"currentPage >= getItems\"\r\n (click)=\"currentPage < getItems && onChangeCurrentPage(currentPage + 1)\">\r\n <div class=\"mrx-icon icon-chevron-right icon-font-24\"></div>\r\n </li>\r\n </ul>\r\n\r\n @if (withPageSize) {\r\n <mrx-select\r\n [ngModel]=\"pageSize\"\r\n [size]=\"'medium'\"\r\n [items]=\"pageSizes\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [popupPosition]=\"popupPosition\"\r\n [singleChange]=\"true\"\r\n (ngModelChange)=\"onChangePageSize($event)\"\r\n ></mrx-select>\r\n }\r\n\r\n <div *ngIf=\"isPaginatorText\" class=\"mrx-paginator__text\">\r\n \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044B {{paginatorText}} {{getFirstNumberCurrentPage}} - {{getLastNumberCurrentPage}} \u0438\u0437 {{total}}\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-paginator{display:flex;align-items:center;list-style:none;padding-left:0;gap:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container{padding-left:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container .ng-value-container{min-width:36px;padding:0!important;min-height:auto}:host::ng-deep .mrx-paginator ul{display:flex;align-items:center;justify-content:center;list-style:none;padding:0;margin:0;gap:var(--spacing-1)}:host::ng-deep .mrx-paginator ul li{display:flex;align-items:center;justify-content:center;cursor:pointer}:host::ng-deep .mrx-paginator .mrx-paginator__item{padding-left:var(--spacing-3);padding-right:var(--spacing-3);min-width:32px;min-height:32px;border-radius:4px;font-weight:400;font-size:16px;line-height:24px;transition:.2s}:host::ng-deep .mrx-paginator .mrx-paginator__item.active{background-color:var(--brand-bg-primary-default);color:#fff}:host::ng-deep .mrx-paginator .mrx-paginator__item.dots,:host::ng-deep .mrx-paginator .mrx-paginator__item.disabled{cursor:default}:host::ng-deep .mrx-paginator .mrx-paginator__item:not(.dots,.active):hover{background-color:var(--brand-bg-tertiary-hover)}:host::ng-deep .mrx-paginator .mrx-paginator__previous,:host::ng-deep .mrx-paginator .mrx-paginator__next{min-width:24px;min-height:24px}:host::ng-deep .mrx-paginator .mrx-paginator__previous.disabled .mrx-icon,:host::ng-deep .mrx-paginator .mrx-paginator__next.disabled .mrx-icon{color:var(--neutral-icon-disabled)}:host::ng-deep .mrx-paginator__text{font-size:16px;line-height:24px;color:var(--neutral-text-primary)}.mrx-paginator.mrx-paginator.paginator-centered{justify-content:center}.mrx-paginator.mrx-paginator.paginator-left{justify-content:flex-start}.mrx-paginator.mrx-paginator.paginator-right{justify-content:flex-end}\n"], dependencies: [{ 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: 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.SelectComponent, selector: "mrx-select", inputs: ["fields", "items", "multiple", "isLoading", "searchable", "clearable", "closable", "size", "bindValue", "bindLabel", "bindIcon", "emptyText", "placeholder", "searchPlaceholder", "multiCollapseCount", "isExtraOption", "extraOptionPlaceholder", "use", "sortIcon", "sortPlaceholder", "isFullWidthDropdown", "addOption", "customSearchFn", "disabled", "readonly", "invalid", "invalidMessage", "checkInvalid", "popupPosition", "singleChange"], outputs: ["changed", "modelChange"] }] });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PaginatorComponent, selector: "mrx-paginator", inputs: { pageSizes: "pageSizes", currentPage: "currentPage", pageSize: "pageSize", total: "total", customClasses: "customClasses", isEmptyPaginator: "isEmptyPaginator", isPaginatorText: "isPaginatorText", paginatorText: "paginatorText", dropdownPosition: "dropdownPosition", popupPosition: "popupPosition", setPosition: ["position", "setPosition"], setWithPageSize: ["withPageSize", "setWithPageSize"] }, outputs: { dataStateChanged: "dataStateChanged" }, ngImport: i0, template: "<div class=\"mrx-paginator\" [class]=\"getClasses\" *ngIf=\"isEmptyPaginator || total\">\r\n <ul class=\"mrx-paginator__list\">\r\n <li\r\n class=\"mrx-paginator__previous\"\r\n [class.disabled]=\"currentPage <= 1\"\r\n (click)=\"currentPage > 1 && onChangeCurrentPage(currentPage - 1)\">\r\n <div class=\"mrx-icon icon-chevron-left icon-font-24\"></div>\r\n </li>\r\n\r\n <li *ngIf=\"getViewItems.length === 0\" class=\"mrx-paginator__item active\">1</li>\r\n\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage > 3 && getItems > 5\" (click)=\"onChangeCurrentPage(1)\">1</li>\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage > 3 && getItems > 5\">...</li>\r\n\r\n <li\r\n class=\"mrx-paginator__item\"\r\n *ngFor=\"let item of getViewItems; trackBy: trackByFn\"\r\n (click)=\"onChangeCurrentPage(item.index)\"\r\n [class.active]=\"currentPage === item.index\"\r\n >\r\n {{item.index}}\r\n </li>\r\n\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\">...</li>\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\"\r\n (click)=\"onChangeCurrentPage(getItems)\">{{getItems}}</li>\r\n\r\n <li\r\n class=\"mrx-paginator__next\"\r\n [class.disabled]=\"currentPage >= getItems\"\r\n (click)=\"currentPage < getItems && onChangeCurrentPage(currentPage + 1)\">\r\n <div class=\"mrx-icon icon-chevron-right icon-font-24\"></div>\r\n </li>\r\n </ul>\r\n\r\n @if (withPageSize) {\r\n <mrx-select\r\n [ngModel]=\"pageSize\"\r\n [size]=\"'medium'\"\r\n [items]=\"pageSizes\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [popupPosition]=\"popupPosition\"\r\n [singleChange]=\"true\"\r\n (ngModelChange)=\"onChangePageSize($event)\"\r\n ></mrx-select>\r\n }\r\n\r\n <div *ngIf=\"isPaginatorText\" class=\"mrx-paginator__text\">\r\n \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044B {{paginatorText}} {{getFirstNumberCurrentPage}} - {{getLastNumberCurrentPage}} \u0438\u0437 {{total}}\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-paginator{display:flex;align-items:center;list-style:none;padding-left:0;gap:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container{padding-left:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container .ng-value-container{min-width:36px;padding:0!important;min-height:auto}:host::ng-deep .mrx-paginator ul{display:flex;align-items:center;justify-content:center;list-style:none;padding:0;margin:0;gap:var(--spacing-1)}:host::ng-deep .mrx-paginator ul li{display:flex;align-items:center;justify-content:center;cursor:pointer}:host::ng-deep .mrx-paginator .mrx-paginator__item{padding-left:var(--spacing-3);padding-right:var(--spacing-3);min-width:32px;min-height:32px;border-radius:4px;font-weight:400;font-size:16px;line-height:24px;transition:.2s}:host::ng-deep .mrx-paginator .mrx-paginator__item.active{background-color:var(--brand-bg-primary-default);color:#fff}:host::ng-deep .mrx-paginator .mrx-paginator__item.dots,:host::ng-deep .mrx-paginator .mrx-paginator__item.disabled{cursor:default}:host::ng-deep .mrx-paginator .mrx-paginator__item:not(.dots,.active):hover{background-color:var(--brand-bg-tertiary-hover)}:host::ng-deep .mrx-paginator .mrx-paginator__previous,:host::ng-deep .mrx-paginator .mrx-paginator__next{min-width:24px;min-height:24px}:host::ng-deep .mrx-paginator .mrx-paginator__previous.disabled .mrx-icon,:host::ng-deep .mrx-paginator .mrx-paginator__next.disabled .mrx-icon{color:var(--neutral-icon-disabled)}:host::ng-deep .mrx-paginator__text{font-size:16px;line-height:24px;color:var(--neutral-text-primary)}.mrx-paginator.mrx-paginator.paginator-centered{justify-content:center}.mrx-paginator.mrx-paginator.paginator-left{justify-content:flex-start}.mrx-paginator.mrx-paginator.paginator-right{justify-content:flex-end}\n"], dependencies: [{ 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: 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.SelectComponent, selector: "mrx-select", inputs: ["fields", "items", "multiple", "isLoading", "searchable", "clearable", "closable", "size", "bindValue", "bindLabel", "bindIcon", "emptyText", "placeholder", "searchPlaceholder", "multiCollapseCount", "isExtraOption", "extraOptionPlaceholder", "use", "sortIcon", "sortPlaceholder", "isFullWidthDropdown", "withoutSelected", "addOption", "customSearchFn", "disabled", "readonly", "invalid", "invalidMessage", "checkInvalid", "popupPosition", "singleChange"], outputs: ["changed", "modelChange"] }] });
114
114
  }
115
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginatorComponent, decorators: [{
116
116
  type: Component,
@@ -1417,7 +1417,7 @@ class LabelComponent {
1417
1417
  this.clickedLink.emit(event);
1418
1418
  }
1419
1419
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LabelComponent, deps: [{ token: TooltipService }], target: i0.ɵɵFactoryTarget.Component });
1420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LabelComponent, selector: "mrx-label", inputs: { requiredHidden: "requiredHidden", required: "required", boldLabel: "boldLabel", disabled: "disabled", placeholder: "placeholder", label: "label", customClasses: "customClasses", triggerTextPosition: "triggerTextPosition", isPublicInfo: "isPublicInfo", publicInfoTooltip: "publicInfoTooltip", isSwitch: "isSwitch", switchLabel: "switchLabel", switchValue: "switchValue", isCheckbox: "isCheckbox", checkboxLabel: "checkboxLabel", checkboxValue: "checkboxValue", counter: "counter", linkText: "linkText", linkPrevent: "linkPrevent", linkType: "linkType", linkMonochrome: "linkMonochrome", href: "href", triggerType: "triggerType", tooltip: "tooltip", tooltipInitialVisible: "tooltipInitialVisible", isSaveToStorage: "isSaveToStorage" }, outputs: { changeSwitchValue: "changeSwitchValue", changeCheckboxValue: "changeCheckboxValue", clickedLink: "clickedLink" }, providers: [TooltipService], queries: [{ propertyName: "customIcons", first: true, predicate: ["customIcons"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n class=\"mrx-label\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n <span *ngIf=\"required && !disabled && !requiredHidden\" class=\"required-active\">*</span>\r\n\r\n <span\r\n *ngIf=\"isPublicInfo\"\r\n class=\"mrx-icon icon-megafon ml-1\"\r\n [mrxCdkTooltip]=\"publicInfoTooltip\"\r\n ></span>\r\n\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n *ngIf=\"tooltipService.getTooltip\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n <mrx-badge *ngIf=\"counter\" customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n </div>\r\n\r\n <mrx-switch\r\n *ngIf=\"isSwitch\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n\r\n <mrx-checkbox\r\n *ngIf=\"isCheckbox\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n\r\n <mrx-link\r\n *ngIf=\"linkText\"\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >{{ linkText }}</mrx-link>\r\n</div>\r\n\r\n<mrx-tooltip\r\n *ngIf=\"tooltipService.getTooltip\"\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n></mrx-tooltip>\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TooltipComponent, selector: "mrx-tooltip", inputs: ["tooltip", "tooltipVisible", "tooltipInitiallyVisible", "triggerType"], outputs: ["visibilityChanged"] }, { kind: "component", type: TooltipTriggerComponent, selector: "mrx-tooltip-trigger", inputs: ["triggerTextPosition", "triggerType", "customClasses", "isVisibleTooltip"], outputs: ["toggleTooltip"] }, { kind: "component", type: SwitchComponent, selector: "mrx-switch", inputs: ["fields", "size", "type", "label", "boldLabel", "disabled", "readonly", "required", "customClasses", "leftText", "rightText"], outputs: ["changed", "modelChange"] }, { kind: "component", type: BadgeComponent, selector: "mrx-badge", inputs: ["type", "tag", "size", "color", "customColor", "text", "path", "customClasses", "target"], outputs: ["clicked"] }, { kind: "component", type: LinkComponent, selector: "mrx-link", inputs: ["href", "target", "routerLink", "queryParams", "type", "monochrome", "customClasses", "prevent", "size"], outputs: ["clicked"] }, { kind: "directive", type: CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { kind: "component", type: CheckboxComponent, selector: "mrx-checkbox", inputs: ["fields", "required", "boldLabel", "indeterminate", "disabled", "readonly", "label", "customClasses", "customWrapperClasses", "invalid", "checkInvalid", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changed", "modelChange"] }], animations: [
1420
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LabelComponent, selector: "mrx-label", inputs: { requiredHidden: "requiredHidden", required: "required", boldLabel: "boldLabel", disabled: "disabled", placeholder: "placeholder", label: "label", customClasses: "customClasses", triggerTextPosition: "triggerTextPosition", isPublicInfo: "isPublicInfo", publicInfoTooltip: "publicInfoTooltip", isSwitch: "isSwitch", switchLabel: "switchLabel", switchValue: "switchValue", isCheckbox: "isCheckbox", checkboxLabel: "checkboxLabel", checkboxValue: "checkboxValue", counter: "counter", linkText: "linkText", linkPrevent: "linkPrevent", linkType: "linkType", linkMonochrome: "linkMonochrome", href: "href", triggerType: "triggerType", tooltip: "tooltip", tooltipInitialVisible: "tooltipInitialVisible", isSaveToStorage: "isSaveToStorage" }, outputs: { changeSwitchValue: "changeSwitchValue", changeCheckboxValue: "changeCheckboxValue", clickedLink: "clickedLink" }, providers: [TooltipService], queries: [{ propertyName: "customIcons", first: true, predicate: ["customIcons"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n class=\"mrx-label\"\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n @if (required && !disabled && !requiredHidden) {\r\n <span class=\"required-active\">*</span>\r\n }\r\n\r\n @if (isPublicInfo) {\r\n <span class=\"mrx-icon icon-megafon ml-1\" [mrxCdkTooltip]=\"publicInfoTooltip\"></span>\r\n }\r\n\r\n @if (tooltipService.getTooltip) {\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n @if (counter) {\r\n <mrx-badge customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n }\r\n </div>\r\n\r\n @if (isSwitch) {\r\n <mrx-switch\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n }\r\n\r\n @if (isCheckbox) {\r\n <mrx-checkbox\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n }\r\n\r\n @if (linkText) {\r\n <mrx-link\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >\r\n {{ linkText }}\r\n </mrx-link>\r\n }\r\n</div>\r\n\r\n@if (tooltipService.getTooltip) {\r\n <mrx-tooltip\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip>\r\n}\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TooltipComponent, selector: "mrx-tooltip", inputs: ["tooltip", "tooltipVisible", "tooltipInitiallyVisible", "triggerType"], outputs: ["visibilityChanged"] }, { kind: "component", type: TooltipTriggerComponent, selector: "mrx-tooltip-trigger", inputs: ["triggerTextPosition", "triggerType", "customClasses", "isVisibleTooltip"], outputs: ["toggleTooltip"] }, { kind: "component", type: SwitchComponent, selector: "mrx-switch", inputs: ["fields", "size", "type", "label", "boldLabel", "disabled", "readonly", "required", "customClasses", "leftText", "rightText"], outputs: ["changed", "modelChange"] }, { kind: "component", type: BadgeComponent, selector: "mrx-badge", inputs: ["type", "tag", "size", "color", "customColor", "text", "path", "customClasses", "target"], outputs: ["clicked"] }, { kind: "component", type: LinkComponent, selector: "mrx-link", inputs: ["href", "target", "routerLink", "queryParams", "type", "monochrome", "customClasses", "prevent", "size"], outputs: ["clicked"] }, { kind: "directive", type: CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { kind: "component", type: CheckboxComponent, selector: "mrx-checkbox", inputs: ["fields", "required", "boldLabel", "indeterminate", "disabled", "readonly", "label", "customClasses", "customWrapperClasses", "invalid", "checkInvalid", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changed", "modelChange"] }], animations: [
1421
1421
  trigger('openClose', [
1422
1422
  state('open', style({ height: '*', padding: '*', 'margin-bottom': '8px' })),
1423
1423
  state('closed', style({ height: 0, padding: 0, 'margin-bottom': 0 })),
@@ -1435,7 +1435,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1435
1435
  transition('open => closed', [animate('0.5s ease')]),
1436
1436
  transition('closed => open', [animate('0.5s ease')]),
1437
1437
  ]),
1438
- ], providers: [TooltipService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n class=\"mrx-label\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n <span *ngIf=\"required && !disabled && !requiredHidden\" class=\"required-active\">*</span>\r\n\r\n <span\r\n *ngIf=\"isPublicInfo\"\r\n class=\"mrx-icon icon-megafon ml-1\"\r\n [mrxCdkTooltip]=\"publicInfoTooltip\"\r\n ></span>\r\n\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n *ngIf=\"tooltipService.getTooltip\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n <mrx-badge *ngIf=\"counter\" customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n </div>\r\n\r\n <mrx-switch\r\n *ngIf=\"isSwitch\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n\r\n <mrx-checkbox\r\n *ngIf=\"isCheckbox\"\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n\r\n <mrx-link\r\n *ngIf=\"linkText\"\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >{{ linkText }}</mrx-link>\r\n</div>\r\n\r\n<mrx-tooltip\r\n *ngIf=\"tooltipService.getTooltip\"\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n></mrx-tooltip>\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"] }]
1438
+ ], providers: [TooltipService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-label-wrapper mb-2\">\r\n <div class=\"mrx-label-content d-flex align-items-start\" [class.mr-2]=\"isSwitch\">\r\n <label\r\n class=\"mrx-label\"\r\n [class]=\"getClasses\"\r\n [class.required]=\"required\"\r\n [class.bold-label]=\"boldLabel\"\r\n >\r\n <ng-content></ng-content>\r\n\r\n @if (required && !disabled && !requiredHidden) {\r\n <span class=\"required-active\">*</span>\r\n }\r\n\r\n @if (isPublicInfo) {\r\n <span class=\"mrx-icon icon-megafon ml-1\" [mrxCdkTooltip]=\"publicInfoTooltip\"></span>\r\n }\r\n\r\n @if (tooltipService.getTooltip) {\r\n <mrx-tooltip-trigger\r\n customClasses=\"ml-1\"\r\n (toggleTooltip)=\"tooltipService.toggleTooltipVisible()\"\r\n [isVisibleTooltip]=\"tooltipService.getTooltipVisible\"\r\n [triggerTextPosition]=\"triggerTextPosition\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip-trigger>\r\n }\r\n\r\n <ng-container *ngTemplateOutlet=\"customIcons\"></ng-container>\r\n </label>\r\n\r\n @if (counter) {\r\n <mrx-badge customClasses=\"ml-2\" type=\"circle\" size=\"small\">{{ counter }}</mrx-badge>\r\n }\r\n </div>\r\n\r\n @if (isSwitch) {\r\n <mrx-switch\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"switchLabel\"\r\n [ngModel]=\"switchValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-switch>\r\n }\r\n\r\n @if (isCheckbox) {\r\n <mrx-checkbox\r\n [boldLabel]=\"boldLabel\"\r\n [label]=\"checkboxLabel\"\r\n [ngModel]=\"checkboxValue\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"changeCheckboxValue.emit($event)\"\r\n ></mrx-checkbox>\r\n }\r\n\r\n @if (linkText) {\r\n <mrx-link\r\n [prevent]=\"linkPrevent\"\r\n [type]=\"linkType\"\r\n [monochrome]=\"linkMonochrome\"\r\n (click)=\"onClickToLink($event)\"\r\n >\r\n {{ linkText }}\r\n </mrx-link>\r\n }\r\n</div>\r\n\r\n@if (tooltipService.getTooltip) {\r\n <mrx-tooltip\r\n [tooltip]=\"tooltipService.getTooltip\"\r\n [tooltipVisible]=\"tooltipService.getTooltipVisible\"\r\n [triggerType]=\"triggerType\"\r\n ></mrx-tooltip>\r\n}\r\n\r\n", styles: [".mrx-label-wrapper.mrx-label-wrapper{display:flex;align-items:flex-start;justify-content:space-between}.mrx-label.mrx-label{display:inline-block;min-height:20px;color:var(--neutral-text-primary)}.mrx-label.mrx-label:not(.mrx-label.mrx-label.bold-label){font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-label.mrx-label.bold-label{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height)}.mrx-label.mrx-label .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative);margin-left:var(--spacing-1);position:relative;display:inline-block}::ng-deep .mrx-label-wrapper .mrx-switch{white-space:nowrap}::ng-deep mrx-tooltip-trigger{display:inline-flex;align-items:center}\n"] }]
1439
1439
  }], ctorParameters: () => [{ type: TooltipService }], propDecorators: { requiredHidden: [{
1440
1440
  type: Input
1441
1441
  }], required: [{
@@ -3984,6 +3984,7 @@ class SelectComponent {
3984
3984
  sortIcon = null;
3985
3985
  sortPlaceholder = '';
3986
3986
  isFullWidthDropdown = true;
3987
+ withoutSelected = false;
3987
3988
  addOption;
3988
3989
  customSearchFn;
3989
3990
  disabled = false;
@@ -4018,7 +4019,12 @@ class SelectComponent {
4018
4019
  return `${SelectSizeEnum[this.size]} ${this.readonlyClass} ${this.checkValidClasses}`;
4019
4020
  }
4020
4021
  get getSelectedLabels() {
4021
- return this.innerItems.filter(i => i.__selected);
4022
+ if (this.withoutSelected) {
4023
+ return [];
4024
+ }
4025
+ else {
4026
+ return this.innerItems.filter(i => i.__selected);
4027
+ }
4022
4028
  }
4023
4029
  get filteredItems() {
4024
4030
  if (this.customSearchFn) {
@@ -4100,10 +4106,8 @@ class SelectComponent {
4100
4106
  return label;
4101
4107
  }
4102
4108
  writeValue(selected = []) {
4103
- if (selected !== null) {
4104
- this.originSelected = selected;
4105
- this._updateSelected(this.originItems, this.originSelected);
4106
- }
4109
+ this.originSelected = selected;
4110
+ this._updateSelected(this.originItems, this.originSelected);
4107
4111
  }
4108
4112
  changeTextValueEmpty() {
4109
4113
  this.form.initModelChanged(this.model);
@@ -4143,7 +4147,7 @@ class SelectComponent {
4143
4147
  this.onTouched = fn;
4144
4148
  }
4145
4149
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4146
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
4150
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", withoutSelected: "withoutSelected", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
4147
4151
  {
4148
4152
  provide: NG_VALUE_ACCESSOR,
4149
4153
  useExisting: forwardRef(() => SelectComponent),
@@ -4203,6 +4207,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
4203
4207
  type: Input
4204
4208
  }], isFullWidthDropdown: [{
4205
4209
  type: Input
4210
+ }], withoutSelected: [{
4211
+ type: Input
4206
4212
  }], addOption: [{
4207
4213
  type: Input
4208
4214
  }], customSearchFn: [{
@@ -4350,7 +4356,7 @@ class PaginatorComponent {
4350
4356
  return item.id;
4351
4357
  }
4352
4358
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4353
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PaginatorComponent, selector: "mrx-paginator", inputs: { pageSizes: "pageSizes", currentPage: "currentPage", pageSize: "pageSize", total: "total", customClasses: "customClasses", isEmptyPaginator: "isEmptyPaginator", isPaginatorText: "isPaginatorText", paginatorText: "paginatorText", dropdownPosition: "dropdownPosition", popupPosition: "popupPosition", setPosition: ["position", "setPosition"], setWithPageSize: ["withPageSize", "setWithPageSize"] }, outputs: { dataStateChanged: "dataStateChanged" }, ngImport: i0, template: "<div class=\"mrx-paginator\" [class]=\"getClasses\" *ngIf=\"isEmptyPaginator || total\">\r\n <ul class=\"mrx-paginator__list\">\r\n <li\r\n class=\"mrx-paginator__previous\"\r\n [class.disabled]=\"currentPage <= 1\"\r\n (click)=\"currentPage > 1 && onChangeCurrentPage(currentPage - 1)\">\r\n <div class=\"mrx-icon icon-chevron-left icon-font-24\"></div>\r\n </li>\r\n\r\n <li *ngIf=\"getViewItems.length === 0\" class=\"mrx-paginator__item active\">1</li>\r\n\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage > 3 && getItems > 5\" (click)=\"onChangeCurrentPage(1)\">1</li>\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage > 3 && getItems > 5\">...</li>\r\n\r\n <li\r\n class=\"mrx-paginator__item\"\r\n *ngFor=\"let item of getViewItems; trackBy: trackByFn\"\r\n (click)=\"onChangeCurrentPage(item.index)\"\r\n [class.active]=\"currentPage === item.index\"\r\n >\r\n {{item.index}}\r\n </li>\r\n\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\">...</li>\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\"\r\n (click)=\"onChangeCurrentPage(getItems)\">{{getItems}}</li>\r\n\r\n <li\r\n class=\"mrx-paginator__next\"\r\n [class.disabled]=\"currentPage >= getItems\"\r\n (click)=\"currentPage < getItems && onChangeCurrentPage(currentPage + 1)\">\r\n <div class=\"mrx-icon icon-chevron-right icon-font-24\"></div>\r\n </li>\r\n </ul>\r\n\r\n @if (withPageSize) {\r\n <mrx-select\r\n [ngModel]=\"pageSize\"\r\n [size]=\"'medium'\"\r\n [items]=\"pageSizes\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [popupPosition]=\"popupPosition\"\r\n [singleChange]=\"true\"\r\n (ngModelChange)=\"onChangePageSize($event)\"\r\n ></mrx-select>\r\n }\r\n\r\n <div *ngIf=\"isPaginatorText\" class=\"mrx-paginator__text\">\r\n \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044B {{paginatorText}} {{getFirstNumberCurrentPage}} - {{getLastNumberCurrentPage}} \u0438\u0437 {{total}}\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-paginator{display:flex;align-items:center;list-style:none;padding-left:0;gap:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container{padding-left:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container .ng-value-container{min-width:36px;padding:0!important;min-height:auto}:host::ng-deep .mrx-paginator ul{display:flex;align-items:center;justify-content:center;list-style:none;padding:0;margin:0;gap:var(--spacing-1)}:host::ng-deep .mrx-paginator ul li{display:flex;align-items:center;justify-content:center;cursor:pointer}:host::ng-deep .mrx-paginator .mrx-paginator__item{padding-left:var(--spacing-3);padding-right:var(--spacing-3);min-width:32px;min-height:32px;border-radius:4px;font-weight:400;font-size:16px;line-height:24px;transition:.2s}:host::ng-deep .mrx-paginator .mrx-paginator__item.active{background-color:var(--brand-bg-primary-default);color:#fff}:host::ng-deep .mrx-paginator .mrx-paginator__item.dots,:host::ng-deep .mrx-paginator .mrx-paginator__item.disabled{cursor:default}:host::ng-deep .mrx-paginator .mrx-paginator__item:not(.dots,.active):hover{background-color:var(--brand-bg-tertiary-hover)}:host::ng-deep .mrx-paginator .mrx-paginator__previous,:host::ng-deep .mrx-paginator .mrx-paginator__next{min-width:24px;min-height:24px}:host::ng-deep .mrx-paginator .mrx-paginator__previous.disabled .mrx-icon,:host::ng-deep .mrx-paginator .mrx-paginator__next.disabled .mrx-icon{color:var(--neutral-icon-disabled)}:host::ng-deep .mrx-paginator__text{font-size:16px;line-height:24px;color:var(--neutral-text-primary)}.mrx-paginator.mrx-paginator.paginator-centered{justify-content:center}.mrx-paginator.mrx-paginator.paginator-left{justify-content:flex-start}.mrx-paginator.mrx-paginator.paginator-right{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SelectComponent, selector: "mrx-select", inputs: ["fields", "items", "multiple", "isLoading", "searchable", "clearable", "closable", "size", "bindValue", "bindLabel", "bindIcon", "emptyText", "placeholder", "searchPlaceholder", "multiCollapseCount", "isExtraOption", "extraOptionPlaceholder", "use", "sortIcon", "sortPlaceholder", "isFullWidthDropdown", "addOption", "customSearchFn", "disabled", "readonly", "invalid", "invalidMessage", "checkInvalid", "popupPosition", "singleChange"], outputs: ["changed", "modelChange"] }] });
4359
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: PaginatorComponent, selector: "mrx-paginator", inputs: { pageSizes: "pageSizes", currentPage: "currentPage", pageSize: "pageSize", total: "total", customClasses: "customClasses", isEmptyPaginator: "isEmptyPaginator", isPaginatorText: "isPaginatorText", paginatorText: "paginatorText", dropdownPosition: "dropdownPosition", popupPosition: "popupPosition", setPosition: ["position", "setPosition"], setWithPageSize: ["withPageSize", "setWithPageSize"] }, outputs: { dataStateChanged: "dataStateChanged" }, ngImport: i0, template: "<div class=\"mrx-paginator\" [class]=\"getClasses\" *ngIf=\"isEmptyPaginator || total\">\r\n <ul class=\"mrx-paginator__list\">\r\n <li\r\n class=\"mrx-paginator__previous\"\r\n [class.disabled]=\"currentPage <= 1\"\r\n (click)=\"currentPage > 1 && onChangeCurrentPage(currentPage - 1)\">\r\n <div class=\"mrx-icon icon-chevron-left icon-font-24\"></div>\r\n </li>\r\n\r\n <li *ngIf=\"getViewItems.length === 0\" class=\"mrx-paginator__item active\">1</li>\r\n\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage > 3 && getItems > 5\" (click)=\"onChangeCurrentPage(1)\">1</li>\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage > 3 && getItems > 5\">...</li>\r\n\r\n <li\r\n class=\"mrx-paginator__item\"\r\n *ngFor=\"let item of getViewItems; trackBy: trackByFn\"\r\n (click)=\"onChangeCurrentPage(item.index)\"\r\n [class.active]=\"currentPage === item.index\"\r\n >\r\n {{item.index}}\r\n </li>\r\n\r\n <li class=\"mrx-paginator__item dots\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\">...</li>\r\n <li class=\"mrx-paginator__item\" *ngIf=\"currentPage < getItems - 2 && getItems > 5\"\r\n (click)=\"onChangeCurrentPage(getItems)\">{{getItems}}</li>\r\n\r\n <li\r\n class=\"mrx-paginator__next\"\r\n [class.disabled]=\"currentPage >= getItems\"\r\n (click)=\"currentPage < getItems && onChangeCurrentPage(currentPage + 1)\">\r\n <div class=\"mrx-icon icon-chevron-right icon-font-24\"></div>\r\n </li>\r\n </ul>\r\n\r\n @if (withPageSize) {\r\n <mrx-select\r\n [ngModel]=\"pageSize\"\r\n [size]=\"'medium'\"\r\n [items]=\"pageSizes\"\r\n [clearable]=\"false\"\r\n [searchable]=\"false\"\r\n [popupPosition]=\"popupPosition\"\r\n [singleChange]=\"true\"\r\n (ngModelChange)=\"onChangePageSize($event)\"\r\n ></mrx-select>\r\n }\r\n\r\n <div *ngIf=\"isPaginatorText\" class=\"mrx-paginator__text\">\r\n \u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044B {{paginatorText}} {{getFirstNumberCurrentPage}} - {{getLastNumberCurrentPage}} \u0438\u0437 {{total}}\r\n </div>\r\n</div>\r\n\r\n\r\n", styles: [":host::ng-deep .mrx-paginator{display:flex;align-items:center;list-style:none;padding-left:0;gap:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container{padding-left:var(--spacing-4)}:host::ng-deep .mrx-paginator .mrx-input-select .ng-select .ng-select-container .ng-value-container{min-width:36px;padding:0!important;min-height:auto}:host::ng-deep .mrx-paginator ul{display:flex;align-items:center;justify-content:center;list-style:none;padding:0;margin:0;gap:var(--spacing-1)}:host::ng-deep .mrx-paginator ul li{display:flex;align-items:center;justify-content:center;cursor:pointer}:host::ng-deep .mrx-paginator .mrx-paginator__item{padding-left:var(--spacing-3);padding-right:var(--spacing-3);min-width:32px;min-height:32px;border-radius:4px;font-weight:400;font-size:16px;line-height:24px;transition:.2s}:host::ng-deep .mrx-paginator .mrx-paginator__item.active{background-color:var(--brand-bg-primary-default);color:#fff}:host::ng-deep .mrx-paginator .mrx-paginator__item.dots,:host::ng-deep .mrx-paginator .mrx-paginator__item.disabled{cursor:default}:host::ng-deep .mrx-paginator .mrx-paginator__item:not(.dots,.active):hover{background-color:var(--brand-bg-tertiary-hover)}:host::ng-deep .mrx-paginator .mrx-paginator__previous,:host::ng-deep .mrx-paginator .mrx-paginator__next{min-width:24px;min-height:24px}:host::ng-deep .mrx-paginator .mrx-paginator__previous.disabled .mrx-icon,:host::ng-deep .mrx-paginator .mrx-paginator__next.disabled .mrx-icon{color:var(--neutral-icon-disabled)}:host::ng-deep .mrx-paginator__text{font-size:16px;line-height:24px;color:var(--neutral-text-primary)}.mrx-paginator.mrx-paginator.paginator-centered{justify-content:center}.mrx-paginator.mrx-paginator.paginator-left{justify-content:flex-start}.mrx-paginator.mrx-paginator.paginator-right{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SelectComponent, selector: "mrx-select", inputs: ["fields", "items", "multiple", "isLoading", "searchable", "clearable", "closable", "size", "bindValue", "bindLabel", "bindIcon", "emptyText", "placeholder", "searchPlaceholder", "multiCollapseCount", "isExtraOption", "extraOptionPlaceholder", "use", "sortIcon", "sortPlaceholder", "isFullWidthDropdown", "withoutSelected", "addOption", "customSearchFn", "disabled", "readonly", "invalid", "invalidMessage", "checkInvalid", "popupPosition", "singleChange"], outputs: ["changed", "modelChange"] }] });
4354
4360
  }
4355
4361
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaginatorComponent, decorators: [{
4356
4362
  type: Component,