@seniorsistemas/angular-components 19.9.3 → 19.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/checkbox/lib/checkbox/checkbox.component.d.ts +1 -6
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +8 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -2
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -0
- package/drawer/README.md +9 -2
- package/drawer/lib/drawer/drawer.component.d.ts +12 -1
- package/editor/lib/editor/editor.component.d.ts +1 -1
- package/esm2022/button/lib/button/button.component.mjs +3 -3
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -9
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +17 -5
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +9 -8
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +18 -3
- package/esm2022/drawer/lib/drawer/drawer.component.mjs +33 -11
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +4 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
- package/esm2022/editor/lib/editor/editor.component.mjs +8 -8
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +2 -2
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +3 -3
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +2 -3
- package/esm2022/paginator/lib/models/paginator.models.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +19 -13
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +19 -8
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +3 -4
- package/esm2022/select/lib/select/select.component.mjs +3 -3
- package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +6 -5
- package/esm2022/slider/lib/slider/slider.component.mjs +3 -3
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +54 -8
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +14 -21
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +3 -2
- package/esm2022/utils/lib/utils/utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +16 -4
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -8
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +8 -6
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -2
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +32 -9
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +16 -16
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +18 -12
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +20 -9
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +5 -4
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +53 -7
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +13 -20
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -1
- package/global-search/lib/global-search/global-search.module.d.ts +1 -1
- package/package.json +7 -9
- package/paginator/lib/models/paginator.models.d.ts +1 -0
- package/paginator/lib/paginator/paginator.component.d.ts +3 -1
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +3 -1
- package/side-sheet/README.md +4 -4
- package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +1 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +2 -1
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -4
- package/utils/lib/utils/utils.d.ts +21 -0
|
@@ -74,7 +74,7 @@ export class InlineEditNumberComponent {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InlineEditNumberComponent, isStandalone: true, selector: "ng-component", inputs: { field: "field", formGroup: "formGroup" }, ngImport: i0, template: "@if (field.mask) {\r\n <input\r\n sInputText\r\n class=\"mousetrap\"\r\n type=\"text\"\r\n [id]=\"field.name\"\r\n [name]=\"field.name\"\r\n [sInputMask]=\"mask\"\r\n [placeholder]=\"field.placeholder\"\r\n slotChar=\"_\"\r\n [sTooltip]=\"field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [autoClear]=\"field.autoClear ?? false\"\r\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\r\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\r\n (maskComplete)=\"field.onComplete ? field.onComplete($event) : null\"\r\n (input)=\"field.onInput ? field.onInput($event) : null\"\r\n [(ngModel)]=\"tempValue\"\r\n />\r\n} @else {\r\n <ng-container>\r\n <div
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InlineEditNumberComponent, isStandalone: true, selector: "ng-component", inputs: { field: "field", formGroup: "formGroup" }, ngImport: i0, template: "@if (field.mask) {\r\n <input\r\n sInputText\r\n class=\"mousetrap\"\r\n type=\"text\"\r\n [id]=\"field.name\"\r\n [name]=\"field.name\"\r\n [sInputMask]=\"mask\"\r\n [placeholder]=\"field.placeholder\"\r\n slotChar=\"_\"\r\n [sTooltip]=\"field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [autoClear]=\"field.autoClear ?? false\"\r\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\r\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\r\n (maskComplete)=\"field.onComplete ? field.onComplete($event) : null\"\r\n (input)=\"field.onInput ? field.onInput($event) : null\"\r\n [(ngModel)]=\"tempValue\"\r\n />\r\n} @else {\r\n <ng-container>\r\n <div>\r\n @if (field.leftAddon) {\r\n @if (field.leftAddon.callback) {\r\n <span class=\"addon-button addon-button--left\">\r\n <s-button\r\n [label]=\"field.leftAddon.label\"\r\n [iconClass]=\"field.leftAddon.icon\"\r\n [priority]=\"field.leftAddon.priority\"\r\n [disabled]=\"leftAddonDisabled\"\r\n (clicked)=\"field.leftAddon.callback()\"\r\n >\r\n </s-button>\r\n </span>\r\n }\r\n @if (!field.leftAddon.callback) {\r\n <span>\r\n @if (field.leftAddon.label) {\r\n <span>{{ field.leftAddon.label }}</span>\r\n }\r\n @if (!field.leftAddon.label) {\r\n <span [ngClass]=\"field.leftAddon.icon\"></span>\r\n }\r\n </span>\r\n }\r\n }\r\n <input\r\n [id]=\"field.name\"\r\n type=\"text\"\r\n [name]=\"field.name\"\r\n sBignumberInput\r\n [allowNegative]=\"field.allowNegative ?? false\"\r\n [precision]=\"precision\"\r\n [scale]=\"scale\"\r\n [alignTo]=\"field.alignTo\"\r\n [sTooltip]=\"field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [placeholder]=\"field.placeholder\"\r\n [showDelay]=\"500\"\r\n sInputText\r\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\r\n [ngClass]=\"'mousetrap'\"\r\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\r\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\r\n [(ngModel)]=\"tempValue\"\r\n />\r\n @if (field.rightAddon) {\r\n @if (field.rightAddon.callback) {\r\n <span class=\"addon-button addon-button--right\">\r\n <s-button\r\n [label]=\"field.rightAddon.label\"\r\n [iconClass]=\"field.rightAddon.icon\"\r\n [priority]=\"field.rightAddon.priority\"\r\n [disabled]=\"rightAddonDisabled\"\r\n (clicked)=\"field.rightAddon.callback()\"\r\n >\r\n </s-button>\r\n </span>\r\n }\r\n @if (!field.rightAddon.callback) {\r\n <span>\r\n @if (field.rightAddon.label) {\r\n <span>{{ field.rightAddon.label }}</span>\r\n }\r\n @if (!field.rightAddon.label) {\r\n <span [ngClass]=\"field.rightAddon.icon\"></span>\r\n }\r\n </span>\r\n }\r\n }\r\n </div>\r\n </ng-container>\r\n}\r\n", styles: [""], dependencies: [{ kind: "directive", type: InputMaskDirective, selector: "input[sInputMask]", inputs: ["sInputMask", "slotChar", "unmask", "characterPattern", "autoClear"], outputs: ["maskComplete"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: InputTextDirective, selector: "input[sInputText]" }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: BignumberInputDirective, selector: "input[sBignumberInput]", inputs: ["precision", "scale", "minDecimalPlaces", "maxDecimalPlaces", "decimalSeparator", "thousandsSeparator", "thousandSeparator", "alignTo", "allowNegative", "blockDecimalOverflow", "placeholder"], outputs: ["minDecimalPlacesChange", "maxDecimalPlacesChange", "decimalSeparatorChange", "thousandSeparatorChange", "placeholderChange", "pasteRejected"] }] });
|
|
78
78
|
}
|
|
79
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditNumberComponent, decorators: [{
|
|
80
80
|
type: Component,
|
|
@@ -86,11 +86,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
86
86
|
ButtonComponent,
|
|
87
87
|
NgClass,
|
|
88
88
|
BignumberInputDirective,
|
|
89
|
-
], template: "@if (field.mask) {\r\n <input\r\n sInputText\r\n class=\"mousetrap\"\r\n type=\"text\"\r\n [id]=\"field.name\"\r\n [name]=\"field.name\"\r\n [sInputMask]=\"mask\"\r\n [placeholder]=\"field.placeholder\"\r\n slotChar=\"_\"\r\n [sTooltip]=\"field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [autoClear]=\"field.autoClear ?? false\"\r\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\r\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\r\n (maskComplete)=\"field.onComplete ? field.onComplete($event) : null\"\r\n (input)=\"field.onInput ? field.onInput($event) : null\"\r\n [(ngModel)]=\"tempValue\"\r\n />\r\n} @else {\r\n <ng-container>\r\n <div
|
|
89
|
+
], template: "@if (field.mask) {\r\n <input\r\n sInputText\r\n class=\"mousetrap\"\r\n type=\"text\"\r\n [id]=\"field.name\"\r\n [name]=\"field.name\"\r\n [sInputMask]=\"mask\"\r\n [placeholder]=\"field.placeholder\"\r\n slotChar=\"_\"\r\n [sTooltip]=\"field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n [autoClear]=\"field.autoClear ?? false\"\r\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\r\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\r\n (maskComplete)=\"field.onComplete ? field.onComplete($event) : null\"\r\n (input)=\"field.onInput ? field.onInput($event) : null\"\r\n [(ngModel)]=\"tempValue\"\r\n />\r\n} @else {\r\n <ng-container>\r\n <div>\r\n @if (field.leftAddon) {\r\n @if (field.leftAddon.callback) {\r\n <span class=\"addon-button addon-button--left\">\r\n <s-button\r\n [label]=\"field.leftAddon.label\"\r\n [iconClass]=\"field.leftAddon.icon\"\r\n [priority]=\"field.leftAddon.priority\"\r\n [disabled]=\"leftAddonDisabled\"\r\n (clicked)=\"field.leftAddon.callback()\"\r\n >\r\n </s-button>\r\n </span>\r\n }\r\n @if (!field.leftAddon.callback) {\r\n <span>\r\n @if (field.leftAddon.label) {\r\n <span>{{ field.leftAddon.label }}</span>\r\n }\r\n @if (!field.leftAddon.label) {\r\n <span [ngClass]=\"field.leftAddon.icon\"></span>\r\n }\r\n </span>\r\n }\r\n }\r\n <input\r\n [id]=\"field.name\"\r\n type=\"text\"\r\n [name]=\"field.name\"\r\n sBignumberInput\r\n [allowNegative]=\"field.allowNegative ?? false\"\r\n [precision]=\"precision\"\r\n [scale]=\"scale\"\r\n [alignTo]=\"field.alignTo\"\r\n [sTooltip]=\"field.tooltip\"\r\n tooltipPosition=\"top\"\r\n [placeholder]=\"field.placeholder\"\r\n [showDelay]=\"500\"\r\n sInputText\r\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\r\n [ngClass]=\"'mousetrap'\"\r\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\r\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\r\n [(ngModel)]=\"tempValue\"\r\n />\r\n @if (field.rightAddon) {\r\n @if (field.rightAddon.callback) {\r\n <span class=\"addon-button addon-button--right\">\r\n <s-button\r\n [label]=\"field.rightAddon.label\"\r\n [iconClass]=\"field.rightAddon.icon\"\r\n [priority]=\"field.rightAddon.priority\"\r\n [disabled]=\"rightAddonDisabled\"\r\n (clicked)=\"field.rightAddon.callback()\"\r\n >\r\n </s-button>\r\n </span>\r\n }\r\n @if (!field.rightAddon.callback) {\r\n <span>\r\n @if (field.rightAddon.label) {\r\n <span>{{ field.rightAddon.label }}</span>\r\n }\r\n @if (!field.rightAddon.label) {\r\n <span [ngClass]=\"field.rightAddon.icon\"></span>\r\n }\r\n </span>\r\n }\r\n }\r\n </div>\r\n </ng-container>\r\n}\r\n" }]
|
|
90
90
|
}], propDecorators: { field: [{
|
|
91
91
|
type: Input,
|
|
92
92
|
args: [{ required: true }]
|
|
93
93
|
}], formGroup: [{
|
|
94
94
|
type: Input
|
|
95
95
|
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9pbmxpbmUtZWRpdC9zcmMvbGliL2lubGluZS1lZGl0L2NvbXBvbmVudHMvZmllbGRzL2lubGluZS1lZGl0LW51bWJlci9pbmxpbmUtZWRpdC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2lubGluZS1lZGl0L3NyYy9saWIvaW5saW5lLWVkaXQvY29tcG9uZW50cy9maWVsZHMvaW5saW5lLWVkaXQtbnVtYmVyL2lubGluZS1lZGl0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9B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OlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBJbmxpbmVFZGl0TnVtYmVyRmllbGQgfSBmcm9tICcuLi8uLi8uLi9maWVsZHMvaW5saW5lLWVkaXQtbnVtYmVyLWZpZWxkJztcclxuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElucHV0TWFza0RpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtbWFzayc7XHJcbmltcG9ydCB7IElucHV0VGV4dERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtdGV4dCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEJpZ251bWJlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iaWdudW1iZXItaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5saW5lLWVkaXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1lZGl0LW51bWJlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBJbnB1dE1hc2tEaXJlY3RpdmUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0RGlyZWN0aXZlLFxyXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgQmlnbnVtYmVySW5wdXREaXJlY3RpdmUsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5saW5lRWRpdE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgZmllbGQhOiBJbmxpbmVFZGl0TnVtYmVyRmllbGQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHB1YmxpYyB0ZW1wVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vbkxvY2FsZVNlcnZpY2UoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5maWVsZC5uYW1lKT8udmFsdWUgfHwgJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlVmFsdWUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQubmFtZSk/LnNldFZhbHVlKHRoaXMudGVtcFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtYXNrKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmZpZWxkLm1hc2sgPT09ICdmdW5jdGlvbicgPyB0aGlzLmZpZWxkLm1hc2soKSA6ICh0aGlzLmZpZWxkLm1hc2sgYXMgc3RyaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGxlZnRBZGRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWVsZCEubGVmdEFkZG9uPy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZmllbGQubGVmdEFkZG9uLmRpc2FibGVkKClcclxuICAgICAgICAgICAgOiAodGhpcy5maWVsZC5sZWZ0QWRkb24/LmRpc2FibGVkIGFzIGJvb2xlYW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcmlnaHRBZGRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWVsZC5yaWdodEFkZG9uPy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZmllbGQucmlnaHRBZGRvbi5kaXNhYmxlZCgpXHJcbiAgICAgICAgICAgIDogKHRoaXMuZmllbGQucmlnaHRBZGRvbj8uZGlzYWJsZWQgYXMgYm9vbGVhbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZmllbGQucHJlY2lzaW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5maWVsZC5wcmVjaXNpb24oKSA6ICh0aGlzLmZpZWxkLnByZWNpc2lvbiBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc2NhbGUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZmllbGQuc2NhbGUgPT09ICdmdW5jdGlvbicgPyB0aGlzLmZpZWxkLnNjYWxlKCkgOiAodGhpcy5maWVsZC5zY2FsZSBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uTG9jYWxlU2VydmljZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldExvY2FsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiAnLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcsJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGZpZWxkLm1hc2spIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHNJbnB1dFRleHRcclxuICAgICAgICBjbGFzcz1cIm1vdXNldHJhcFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFtpZF09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbc0lucHV0TWFza109XCJtYXNrXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIHNsb3RDaGFyPVwiX1wiXHJcbiAgICAgICAgW3NUb29sdGlwXT1cImZpZWxkLnRvb2x0aXBcIlxyXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxyXG4gICAgICAgIFthdXRvQ2xlYXJdPVwiZmllbGQuYXV0b0NsZWFyID8/IGZhbHNlXCJcclxuICAgICAgICAoYmx1cik9XCJmaWVsZC5vbkJsdXIgPyBmaWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgIChmb2N1cyk9XCJmaWVsZC5vbkZvY3VzID8gZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgKG1hc2tDb21wbGV0ZSk9XCJmaWVsZC5vbkNvbXBsZXRlID8gZmllbGQub25Db21wbGV0ZSgkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgKGlucHV0KT1cImZpZWxkLm9uSW5wdXQgPyBmaWVsZC5vbklucHV0KCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBWYWx1ZVwiXHJcbiAgICAvPlxyXG59IEBlbHNlIHtcclxuICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVpLWlucHV0Z3JvdXBcIj5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5sZWZ0QWRkb24pIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQubGVmdEFkZG9uLmNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRvbi1idXR0b24gYWRkb24tYnV0dG9uLS1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxlZnRBZGRvbi5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImZpZWxkLmxlZnRBZGRvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJmaWVsZC5sZWZ0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxlZnRBZGRvbkRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cImZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmllbGQubGVmdEFkZG9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQubGVmdEFkZG9uLmljb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgIHNCaWdudW1iZXJJbnB1dFxyXG4gICAgICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXHJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwic2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgW2FsaWduVG9dPVwiZmllbGQuYWxpZ25Ub1wiXHJcbiAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiZmllbGQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcclxuICAgICAgICAgICAgICAgIHNJbnB1dFRleHRcclxuICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiZmllbGQuYnJvd3NlckF1dG9jb21wbGV0ZSA/ICdvbicgOiAnb2ZmJ1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXHJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJmaWVsZC5vbkJsdXIgPyBmaWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImZpZWxkLm9uRm9jdXMgPyBmaWVsZC5vbkZvY3VzKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcFZhbHVlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5yaWdodEFkZG9uKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnJpZ2h0QWRkb24uY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZG9uLWJ1dHRvbiBhZGRvbi1idXR0b24tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLnJpZ2h0QWRkb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25DbGFzc109XCJmaWVsZC5yaWdodEFkZG9uLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cImZpZWxkLnJpZ2h0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0QWRkb25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWVsZC5yaWdodEFkZG9uLmNhbGxiYWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmICghZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnJpZ2h0QWRkb24ubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpZWxkLnJpZ2h0QWRkb24ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmllbGQucmlnaHRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQucmlnaHRBZGRvbi5pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG4iXX0=
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9pbmxpbmUtZWRpdC9zcmMvbGliL2lubGluZS1lZGl0L2NvbXBvbmVudHMvZmllbGRzL2lubGluZS1lZGl0LW51bWJlci9pbmxpbmUtZWRpdC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2lubGluZS1lZGl0L3NyYy9saWIvaW5saW5lLWVkaXQvY29tcG9uZW50cy9maWVsZHMvaW5saW5lLWVkaXQtbnVtYmVyL2lubGluZS1lZGl0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9B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OlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBJbmxpbmVFZGl0TnVtYmVyRmllbGQgfSBmcm9tICcuLi8uLi8uLi9maWVsZHMvaW5saW5lLWVkaXQtbnVtYmVyLWZpZWxkJztcclxuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IElucHV0TWFza0RpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtbWFzayc7XHJcbmltcG9ydCB7IElucHV0VGV4dERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtdGV4dCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEJpZ251bWJlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iaWdudW1iZXItaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5saW5lLWVkaXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1lZGl0LW51bWJlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBJbnB1dE1hc2tEaXJlY3RpdmUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0RGlyZWN0aXZlLFxyXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgQmlnbnVtYmVySW5wdXREaXJlY3RpdmUsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5saW5lRWRpdE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgZmllbGQhOiBJbmxpbmVFZGl0TnVtYmVyRmllbGQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHB1YmxpYyB0ZW1wVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vbkxvY2FsZVNlcnZpY2UoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5maWVsZC5uYW1lKT8udmFsdWUgfHwgJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlVmFsdWUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQubmFtZSk/LnNldFZhbHVlKHRoaXMudGVtcFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtYXNrKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmZpZWxkLm1hc2sgPT09ICdmdW5jdGlvbicgPyB0aGlzLmZpZWxkLm1hc2soKSA6ICh0aGlzLmZpZWxkLm1hc2sgYXMgc3RyaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGxlZnRBZGRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWVsZCEubGVmdEFkZG9uPy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZmllbGQubGVmdEFkZG9uLmRpc2FibGVkKClcclxuICAgICAgICAgICAgOiAodGhpcy5maWVsZC5sZWZ0QWRkb24/LmRpc2FibGVkIGFzIGJvb2xlYW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcmlnaHRBZGRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWVsZC5yaWdodEFkZG9uPy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZmllbGQucmlnaHRBZGRvbi5kaXNhYmxlZCgpXHJcbiAgICAgICAgICAgIDogKHRoaXMuZmllbGQucmlnaHRBZGRvbj8uZGlzYWJsZWQgYXMgYm9vbGVhbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZmllbGQucHJlY2lzaW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5maWVsZC5wcmVjaXNpb24oKSA6ICh0aGlzLmZpZWxkLnByZWNpc2lvbiBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc2NhbGUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZmllbGQuc2NhbGUgPT09ICdmdW5jdGlvbicgPyB0aGlzLmZpZWxkLnNjYWxlKCkgOiAodGhpcy5maWVsZC5zY2FsZSBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uTG9jYWxlU2VydmljZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldExvY2FsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiAnLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcsJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGZpZWxkLm1hc2spIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHNJbnB1dFRleHRcclxuICAgICAgICBjbGFzcz1cIm1vdXNldHJhcFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFtpZF09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbc0lucHV0TWFza109XCJtYXNrXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIHNsb3RDaGFyPVwiX1wiXHJcbiAgICAgICAgW3NUb29sdGlwXT1cImZpZWxkLnRvb2x0aXBcIlxyXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxyXG4gICAgICAgIFthdXRvQ2xlYXJdPVwiZmllbGQuYXV0b0NsZWFyID8/IGZhbHNlXCJcclxuICAgICAgICAoYmx1cik9XCJmaWVsZC5vbkJsdXIgPyBmaWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgIChmb2N1cyk9XCJmaWVsZC5vbkZvY3VzID8gZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgKG1hc2tDb21wbGV0ZSk9XCJmaWVsZC5vbkNvbXBsZXRlID8gZmllbGQub25Db21wbGV0ZSgkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgKGlucHV0KT1cImZpZWxkLm9uSW5wdXQgPyBmaWVsZC5vbklucHV0KCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBWYWx1ZVwiXHJcbiAgICAvPlxyXG59IEBlbHNlIHtcclxuICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5sZWZ0QWRkb24pIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQubGVmdEFkZG9uLmNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRvbi1idXR0b24gYWRkb24tYnV0dG9uLS1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxlZnRBZGRvbi5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImZpZWxkLmxlZnRBZGRvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJmaWVsZC5sZWZ0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxlZnRBZGRvbkRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cImZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmllbGQubGVmdEFkZG9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQubGVmdEFkZG9uLmljb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgIHNCaWdudW1iZXJJbnB1dFxyXG4gICAgICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXHJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwic2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgW2FsaWduVG9dPVwiZmllbGQuYWxpZ25Ub1wiXHJcbiAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiZmllbGQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcclxuICAgICAgICAgICAgICAgIHNJbnB1dFRleHRcclxuICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiZmllbGQuYnJvd3NlckF1dG9jb21wbGV0ZSA/ICdvbicgOiAnb2ZmJ1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXHJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJmaWVsZC5vbkJsdXIgPyBmaWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImZpZWxkLm9uRm9jdXMgPyBmaWVsZC5vbkZvY3VzKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcFZhbHVlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5yaWdodEFkZG9uKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnJpZ2h0QWRkb24uY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZG9uLWJ1dHRvbiBhZGRvbi1idXR0b24tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLnJpZ2h0QWRkb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25DbGFzc109XCJmaWVsZC5yaWdodEFkZG9uLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cImZpZWxkLnJpZ2h0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0QWRkb25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWVsZC5yaWdodEFkZG9uLmNhbGxiYWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmICghZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnJpZ2h0QWRkb24ubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpZWxkLnJpZ2h0QWRkb24ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmllbGQucmlnaHRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQucmlnaHRBZGRvbi5pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { FormGroup, FormsModule } from '@angular/forms';
|
|
3
|
-
import { InputText } from 'primeng/inputtext';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/forms";
|
|
6
5
|
export class InlineEditTextComponent {
|
|
@@ -22,11 +21,11 @@ export class InlineEditTextComponent {
|
|
|
22
21
|
}
|
|
23
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditTextComponent, decorators: [{
|
|
24
23
|
type: Component,
|
|
25
|
-
args: [{ standalone: true, imports: [FormsModule
|
|
24
|
+
args: [{ standalone: true, imports: [FormsModule], template: "<input\n type=\"text\"\n sInputText\n [(ngModel)]=\"tempValue\" />" }]
|
|
26
25
|
}], propDecorators: { field: [{
|
|
27
26
|
type: Input,
|
|
28
27
|
args: [{ required: true }]
|
|
29
28
|
}], formGroup: [{
|
|
30
29
|
type: Input
|
|
31
30
|
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvaW5saW5lLWVkaXQvc3JjL2xpYi9pbmxpbmUtZWRpdC9jb21wb25lbnRzL2ZpZWxkcy9pbmxpbmUtZWRpdC10ZXh0L2lubGluZS1lZGl0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2lubGluZS1lZGl0L3NyYy9saWIvaW5saW5lLWVkaXQvY29tcG9uZW50cy9maWVsZHMvaW5saW5lLWVkaXQtdGV4dC9pbmxpbmUtZWRpdC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVV4RCxNQUFNLE9BQU8sdUJBQXVCO0lBRXpCLEtBQUssQ0FBdUI7SUFHNUIsU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXpDLFNBQVMsQ0FBVTtJQUVuQixRQUFRO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN0RSxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0wsQ0FBQzt3R0FuQlEsdUJBQXVCOzRGQUF2Qix1QkFBdUIsNEhDWHBDLDZFQUc4Qix5RERNaEIsV0FBVzs7NEZBRVosdUJBQXVCO2tCQU5uQyxTQUFTO2lDQUdNLElBQUksV0FDUCxDQUFDLFdBQVcsQ0FBQzs4QkFJZixLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IElubGluZUVkaXRUZXh0RmllbGQgfSBmcm9tICcuLi8uLi8uLi9maWVsZHMvaW5saW5lLWVkaXQtdGV4dC1maWVsZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtZWRpdC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1lZGl0LXRleHQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5saW5lRWRpdFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBmaWVsZCE6IElubGluZUVkaXRUZXh0RmllbGQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHB1YmxpYyB0ZW1wVmFsdWUhOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLmZpZWxkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGVtcFZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQubmFtZSk/LnZhbHVlIHx8ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZVZhbHVlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLmZpZWxkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZpZWxkLm5hbWUpPy5zZXRWYWx1ZSh0aGlzLnRlbXBWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBzSW5wdXRUZXh0XG4gICAgWyhuZ01vZGVsKV09XCJ0ZW1wVmFsdWVcIiAvPiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9wYWdpbmF0b3Ivc3JjL2xpYi9tb2RlbHMvcGFnaW5hdG9yLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuXG5leHBvcnQgdHlwZSBQYWdlQ2hhbmdlID0ge1xuICAgIHBhZ2U6IG51bWJlcixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcGFnZUNvdW50OiBudW1iZXIsXG4gICAgZmlyc3Q6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICBjbGlja2VkOiAoYnV0dG9uOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbikgPT4gYW55LFxuICAgIHBhZ2VJbmRleD86IG51bWJlcixcbiAgICBpY29uPzogc3RyaW5nXG4gICAgYXJpYUxhYmVsS2V5Pzogc3RyaW5nXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuXG4gICAgdmFsaWRhdGU/OiBTaWduYWw8Ym9vbGVhbj5cbn1cbiJdfQ==
|
|
@@ -31,10 +31,11 @@ export class PaginatorComponent {
|
|
|
31
31
|
/** @description Emitido sempre que a página ou o número de itens por página muda. */
|
|
32
32
|
pageChange = output();
|
|
33
33
|
currentPageEffect = effect(() => {
|
|
34
|
+
const totalPages = this.totalPages();
|
|
34
35
|
const page = this.currentPage() - 1;
|
|
35
36
|
this.pageChange.emit({
|
|
36
37
|
page,
|
|
37
|
-
pageCount:
|
|
38
|
+
pageCount: totalPages,
|
|
38
39
|
rows: this.rows(),
|
|
39
40
|
first: this.rows() * page,
|
|
40
41
|
});
|
|
@@ -48,7 +49,12 @@ export class PaginatorComponent {
|
|
|
48
49
|
const nextPage = this.currentPage() + 1;
|
|
49
50
|
return nextPage <= this.totalPages();
|
|
50
51
|
});
|
|
51
|
-
|
|
52
|
+
requestedPage = signal(1);
|
|
53
|
+
/** @description Página atual, sempre reajustada para o intervalo válido de `[1, totalPages]`. */
|
|
54
|
+
currentPage = computed(() => {
|
|
55
|
+
const maxPage = Math.max(this.totalPages(), 1);
|
|
56
|
+
return Math.min(Math.max(this.requestedPage(), 1), maxPage);
|
|
57
|
+
});
|
|
52
58
|
buttons = computed(() => {
|
|
53
59
|
const navigationPageButtons = [];
|
|
54
60
|
const maxPageButtons = this.MAX_PAGE_BUTTONS;
|
|
@@ -83,6 +89,7 @@ export class PaginatorComponent {
|
|
|
83
89
|
FIRST_PAGE_BUTTON = {
|
|
84
90
|
clicked: this.goFirstPage.bind(this),
|
|
85
91
|
icon: 'fas fa-step-backward',
|
|
92
|
+
ariaLabelKey: 'platform.angular_components.aria_first_page',
|
|
86
93
|
validate: computed(() => {
|
|
87
94
|
return !this.hasPreviousPage();
|
|
88
95
|
}),
|
|
@@ -90,6 +97,7 @@ export class PaginatorComponent {
|
|
|
90
97
|
PREVIOUS_PAGE_BUTTON = {
|
|
91
98
|
clicked: this.goPreviousPage.bind(this),
|
|
92
99
|
icon: 'fas fa-caret-left',
|
|
100
|
+
ariaLabelKey: 'platform.angular_components.aria_previous_page',
|
|
93
101
|
validate: computed(() => {
|
|
94
102
|
return !this.hasPreviousPage();
|
|
95
103
|
}),
|
|
@@ -97,6 +105,7 @@ export class PaginatorComponent {
|
|
|
97
105
|
LAST_PAGE_BUTTON = {
|
|
98
106
|
clicked: this.goLastPage.bind(this),
|
|
99
107
|
icon: 'fas fa-step-forward',
|
|
108
|
+
ariaLabelKey: 'platform.angular_components.aria_last_page',
|
|
100
109
|
validate: computed(() => {
|
|
101
110
|
return !this.hasNextPage();
|
|
102
111
|
}),
|
|
@@ -104,16 +113,13 @@ export class PaginatorComponent {
|
|
|
104
113
|
NEXT_PAGE_BUTTON = {
|
|
105
114
|
clicked: this.goNextPage.bind(this),
|
|
106
115
|
icon: 'fas fa-caret-right',
|
|
116
|
+
ariaLabelKey: 'platform.angular_components.aria_next_page',
|
|
107
117
|
validate: computed(() => {
|
|
108
118
|
return !this.hasNextPage();
|
|
109
119
|
}),
|
|
110
120
|
};
|
|
111
121
|
totalPages = computed(() => {
|
|
112
|
-
|
|
113
|
-
const _pages = totalRecords / this.rows();
|
|
114
|
-
const pages = Math.ceil(_pages);
|
|
115
|
-
const isExactPages = _pages === pages;
|
|
116
|
-
return isExactPages ? pages : pages + 1;
|
|
122
|
+
return Math.ceil(this.totalRecords() / this.rows());
|
|
117
123
|
});
|
|
118
124
|
ngOnDestroy() {
|
|
119
125
|
this.currentPageEffect.destroy();
|
|
@@ -133,25 +139,25 @@ export class PaginatorComponent {
|
|
|
133
139
|
if (!this.hasNextPage()) {
|
|
134
140
|
return;
|
|
135
141
|
}
|
|
136
|
-
this.currentPage
|
|
142
|
+
this.goToPage(this.currentPage() + 1);
|
|
137
143
|
}
|
|
138
144
|
goPreviousPage() {
|
|
139
145
|
if (!this.hasPreviousPage()) {
|
|
140
146
|
return;
|
|
141
147
|
}
|
|
142
|
-
this.currentPage
|
|
148
|
+
this.goToPage(this.currentPage() - 1);
|
|
143
149
|
}
|
|
144
150
|
goLastPage() {
|
|
145
151
|
this.goToPage(this.totalPages());
|
|
146
152
|
}
|
|
147
153
|
goToPage(pageIndex) {
|
|
148
|
-
this.
|
|
154
|
+
this.requestedPage.set(pageIndex);
|
|
149
155
|
}
|
|
150
156
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginatorComponent, isStandalone: true, selector: "s-paginator", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rows: "rowsChange", pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"flex justify-between\">\n <section class=\"flex items-center gap-2\">\n <div\n class=\"inline-block h-8 divide-x divide-grayscale-30 overflow-hidden rounded-medium border border-grayscale-30 bg-grayscale-0\"\n >\n @for (btn of buttons(); track $index) {\n @let active = btn.pageIndex === currentPage();\n <button\n [class.bg-criticality-blue]=\"active\"\n [class.text-grayscale-0]=\"active\"\n [class.text-criticality-blue]=\"!active\"\n (sInteractiveContent)=\"activatedButton(btn)\"\n [disabled]=\"btn.disabled || (btn.validate && btn.validate()) || false\"\n class=\"group h-8 w-8 hover:bg-grayscale-20 hover:text-grayscale-100 disabled:hover:bg-[transparent] disabled:hover:text-criticality-blue\"\n >\n <div class=\"group-disabled:opacity-50\">\n @let page = btn.pageIndex;\n @let icon = btn.icon;\n @if (page !== undefined) {\n {{ page }}\n }\n @if (icon) {\n <i [class]=\"icon\"></i>\n }\n </div>\n </button>\n }\n </div>\n <s-select\n [options]=\"rowsPerPageOptions()\"\n [(ngModel)]=\"rows\"\n (ngModelChange)=\"rowsPerPageChange()\"\n ></s-select>\n </section>\n <section class=\"flex items-center gap-2\">\n @let text =\n totalRecords() === 0\n ? 'platform.angular_components.total_record'\n : 'platform.angular_components.total_records';\n <p class=\"text-[14px] text-[#212533]\">\n {{ text | translate: { count: totalRecords() } }}\n </p>\n <ng-content></ng-content>\n </section>\n</div>\n\n", dependencies: [{ kind: "directive", type: InteractiveContentDirective, selector: "[sInteractiveContent]", inputs: ["focusable", "disabled", "stopPropagation"], outputs: ["sInteractiveContent"] }, { kind: "component", type: SelectComponent, selector: "s-select", inputs: ["placeholder", "multiple", "options", "optionLabel", "optionValue", "showClear", "filter", "checkmark", "filterBy", "group", "virtualScroll", "virtualScrollItemSize", "emptyMessage", "disabled", "showOptions", "ariaLabel", "ariaLabelledBy"], outputs: ["disabledChange", "showOptionsChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
157
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginatorComponent, isStandalone: true, selector: "s-paginator", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rows: "rowsChange", pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"flex justify-between\">\n <section class=\"flex items-center gap-2\">\n <div\n class=\"inline-block h-8 divide-x divide-grayscale-30 overflow-hidden rounded-medium border border-grayscale-30 bg-grayscale-0\"\n >\n @for (btn of buttons(); track $index) {\n @let active = btn.pageIndex === currentPage();\n @let ariaLabelKey =\n btn.ariaLabelKey ??\n (active\n ? 'platform.angular_components.aria_current_page'\n : 'platform.angular_components.aria_page_number');\n <button\n [class.bg-criticality-blue]=\"active\"\n [class.text-grayscale-0]=\"active\"\n [class.text-criticality-blue]=\"!active\"\n (sInteractiveContent)=\"activatedButton(btn)\"\n [disabled]=\"btn.disabled || (btn.validate && btn.validate()) || false\"\n [attr.aria-label]=\"ariaLabelKey | translate: { page: btn.pageIndex }\"\n [attr.aria-current]=\"active ? 'page' : null\"\n class=\"group h-8 w-8 hover:bg-grayscale-20 hover:text-grayscale-100 disabled:hover:bg-[transparent] disabled:hover:text-criticality-blue\"\n >\n <div class=\"group-disabled:opacity-50\">\n @let page = btn.pageIndex;\n @let icon = btn.icon;\n @if (page !== undefined) {\n {{ page }}\n }\n @if (icon) {\n <i [class]=\"icon\" aria-hidden=\"true\"></i>\n }\n </div>\n </button>\n }\n </div>\n <s-select\n [options]=\"rowsPerPageOptions()\"\n [ariaLabel]=\"'platform.angular_components.aria_page_selection' | translate\"\n [(ngModel)]=\"rows\"\n (ngModelChange)=\"rowsPerPageChange()\"\n ></s-select>\n </section>\n <section class=\"flex items-center gap-2\">\n @let text =\n totalRecords() === 0\n ? 'platform.angular_components.total_record'\n : 'platform.angular_components.total_records';\n <p class=\"text-[14px] text-[#212533]\">\n {{ text | translate: { count: totalRecords() } }}\n </p>\n <ng-content></ng-content>\n </section>\n</div>\n\n", dependencies: [{ kind: "directive", type: InteractiveContentDirective, selector: "[sInteractiveContent]", inputs: ["focusable", "disabled", "stopPropagation"], outputs: ["sInteractiveContent"] }, { kind: "component", type: SelectComponent, selector: "s-select", inputs: ["placeholder", "multiple", "options", "optionLabel", "optionValue", "showClear", "filter", "checkmark", "filterBy", "group", "virtualScroll", "virtualScrollItemSize", "emptyMessage", "disabled", "showOptions", "ariaLabel", "ariaLabelledBy"], outputs: ["disabledChange", "showOptionsChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
152
158
|
}
|
|
153
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginatorComponent, decorators: [{
|
|
154
160
|
type: Component,
|
|
155
|
-
args: [{ selector: 's-paginator', standalone: true, imports: [InteractiveContentDirective, SelectComponent, FormsModule, TranslateModule], template: "<div class=\"flex justify-between\">\n <section class=\"flex items-center gap-2\">\n <div\n class=\"inline-block h-8 divide-x divide-grayscale-30 overflow-hidden rounded-medium border border-grayscale-30 bg-grayscale-0\"\n >\n @for (btn of buttons(); track $index) {\n @let active = btn.pageIndex === currentPage();\n <button\n [class.bg-criticality-blue]=\"active\"\n [class.text-grayscale-0]=\"active\"\n [class.text-criticality-blue]=\"!active\"\n (sInteractiveContent)=\"activatedButton(btn)\"\n [disabled]=\"btn.disabled || (btn.validate && btn.validate()) || false\"\n class=\"group h-8 w-8 hover:bg-grayscale-20 hover:text-grayscale-100 disabled:hover:bg-[transparent] disabled:hover:text-criticality-blue\"\n >\n <div class=\"group-disabled:opacity-50\">\n @let page = btn.pageIndex;\n @let icon = btn.icon;\n @if (page !== undefined) {\n {{ page }}\n }\n @if (icon) {\n <i [class]=\"icon\"></i>\n }\n </div>\n </button>\n }\n </div>\n <s-select\n [options]=\"rowsPerPageOptions()\"\n [(ngModel)]=\"rows\"\n (ngModelChange)=\"rowsPerPageChange()\"\n ></s-select>\n </section>\n <section class=\"flex items-center gap-2\">\n @let text =\n totalRecords() === 0\n ? 'platform.angular_components.total_record'\n : 'platform.angular_components.total_records';\n <p class=\"text-[14px] text-[#212533]\">\n {{ text | translate: { count: totalRecords() } }}\n </p>\n <ng-content></ng-content>\n </section>\n</div>\n\n" }]
|
|
161
|
+
args: [{ selector: 's-paginator', standalone: true, imports: [InteractiveContentDirective, SelectComponent, FormsModule, TranslateModule], template: "<div class=\"flex justify-between\">\n <section class=\"flex items-center gap-2\">\n <div\n class=\"inline-block h-8 divide-x divide-grayscale-30 overflow-hidden rounded-medium border border-grayscale-30 bg-grayscale-0\"\n >\n @for (btn of buttons(); track $index) {\n @let active = btn.pageIndex === currentPage();\n @let ariaLabelKey =\n btn.ariaLabelKey ??\n (active\n ? 'platform.angular_components.aria_current_page'\n : 'platform.angular_components.aria_page_number');\n <button\n [class.bg-criticality-blue]=\"active\"\n [class.text-grayscale-0]=\"active\"\n [class.text-criticality-blue]=\"!active\"\n (sInteractiveContent)=\"activatedButton(btn)\"\n [disabled]=\"btn.disabled || (btn.validate && btn.validate()) || false\"\n [attr.aria-label]=\"ariaLabelKey | translate: { page: btn.pageIndex }\"\n [attr.aria-current]=\"active ? 'page' : null\"\n class=\"group h-8 w-8 hover:bg-grayscale-20 hover:text-grayscale-100 disabled:hover:bg-[transparent] disabled:hover:text-criticality-blue\"\n >\n <div class=\"group-disabled:opacity-50\">\n @let page = btn.pageIndex;\n @let icon = btn.icon;\n @if (page !== undefined) {\n {{ page }}\n }\n @if (icon) {\n <i [class]=\"icon\" aria-hidden=\"true\"></i>\n }\n </div>\n </button>\n }\n </div>\n <s-select\n [options]=\"rowsPerPageOptions()\"\n [ariaLabel]=\"'platform.angular_components.aria_page_selection' | translate\"\n [(ngModel)]=\"rows\"\n (ngModelChange)=\"rowsPerPageChange()\"\n ></s-select>\n </section>\n <section class=\"flex items-center gap-2\">\n @let text =\n totalRecords() === 0\n ? 'platform.angular_components.total_record'\n : 'platform.angular_components.total_records';\n <p class=\"text-[14px] text-[#212533]\">\n {{ text | translate: { count: totalRecords() } }}\n </p>\n <ng-content></ng-content>\n </section>\n</div>\n\n" }]
|
|
156
162
|
}] });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9wYWdpbmF0b3Ivc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9wYWdpbmF0b3Ivc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFHdEQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFPSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLGlFQUFpRTtJQUNqRSxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3hDLG9GQUFvRjtJQUNwRixJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLDBGQUEwRjtJQUMxRixrQkFBa0IsR0FBRyxLQUFLLENBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxxRkFBcUY7SUFDckYsVUFBVSxHQUFHLE1BQU0sRUFBYyxDQUFDO0lBRWpCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxH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QUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxRQUFRLENBQUMsU0FBaUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQzt3R0FqSlEsa0JBQWtCOzRGQUFsQixrQkFBa0IsOGlCQzdCL0IsZytEQThDQSw0Q0RwQmMsMkJBQTJCLDBKQUFFLGVBQWUsaVdBQUUsV0FBVyw4VkFBRSxlQUFlOzs0RkFHM0Usa0JBQWtCO2tCQU45QixTQUFTOytCQUNJLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQywyQkFBMkIsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkRlc3Ryb3ksIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnRlcmFjdGl2ZS1jb250ZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvc2VsZWN0JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBQYWdlQ2hhbmdlLCBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiB9IGZyb20gJy4uL21vZGVscy9wYWdpbmF0b3IubW9kZWxzJztcbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgcGFnaW5hw6fDo28gc3RhbmRhbG9uZSBxdWUgZXhpYmUgYm90w7VlcyBkZSBww6FnaW5hcyxcbiAqIHNlbGV0b3IgZGUgaXRlbnMgcG9yIHDDoWdpbmEgZSBuYXZlZ2HDp8OjbyBwYXJhIHByaW1laXJhL8O6bHRpbWEgcMOhZ2luYS5cbiAqIEVtaXRlIGBwYWdlQ2hhbmdlYCBhIGNhZGEgbXVkYW7Dp2EgZGUgcMOhZ2luYSBvdSB0YW1hbmhvIGRlIHDDoWdpbmEuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLXBhZ2luYXRvclxuICogICBbdG90YWxSZWNvcmRzXT1cInRvdGFsXCJcbiAqICAgWyhyb3dzKV09XCJ0YW1hbmhvUGFnaW5hXCJcbiAqICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdpbmFNdWRvdSgkZXZlbnQpXCIgLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBTdHJ1Y3R1cmVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXBhZ2luYXRvcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlLCBTZWxlY3RDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyB0b3RhbCBkZSByZWdpc3Ryb3MuIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cbiAgICB0b3RhbFJlY29yZHMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIGRlIGl0ZW5zIHBvciBww6FnaW5hLiBTdXBvcnRhIHR3by13YXkgYmluZGluZy4gQGRlZmF1bHQgMTAgKi9cbiAgICByb3dzID0gbW9kZWwoMTApO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gT3DDp8O1ZXMgZG8gc2VsZXRvciBkZSBpdGVucyBwb3IgcMOhZ2luYS4gQGRlZmF1bHQgWzEwLCAyMCwgNTAsIDEwMCwgMjAwXSAqL1xuICAgIHJvd3NQZXJQYWdlT3B0aW9ucyA9IGlucHV0PG51bWJlcltdPihbMTAsIDIwLCA1MCwgMTAwLCAyMDBdKTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gc2VtcHJlIHF1ZSBhIHDDoWdpbmEgb3UgbyBuw7ptZXJvIGRlIGl0ZW5zIHBvciBww6FnaW5hIG11ZGEuICovXG4gICAgcGFnZUNoYW5nZSA9IG91dHB1dDxQYWdlQ2hhbmdlPigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50UGFnZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSAxO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLnRvdGFsUGFnZXMoKSxcbiAgICAgICAgICAgIHJvd3M6IHRoaXMucm93cygpLFxuICAgICAgICAgICAgZmlyc3Q6IHRoaXMucm93cygpICogcGFnZSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBNQVhfUEFHRV9CVVRUT05TID0gNTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc1ByZXZpb3VzUGFnZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5jdXJyZW50UGFnZSgpIC0gMTtcbiAgICAgICAgcmV0dXJuIHByZXZpb3VzUGFnZSA+PSAxO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBoYXNOZXh0UGFnZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgKyAxO1xuICAgICAgICByZXR1cm4gbmV4dFBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzKCk7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBzaWduYWwoMSk7XG5cbiAgICBwcm90ZWN0ZWQgYnV0dG9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvblBhZ2VCdXR0b25zOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbltdID0gW107XG4gICAgICAgIGNvbnN0IG1heFBhZ2VCdXR0b25zID0gdGhpcy5NQVhfUEFHRV9CVVRUT05TO1xuICAgICAgICBjb25zdCBjdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgICAgICAgY29uc3QgbWlkZGxlID0gTWF0aC5mbG9vcihtYXhQYWdlQnV0dG9ucyAvIDIpO1xuICAgICAgICBjb25zdCBfc3RhcnRQYWdlID0gY3VycmVudFBhZ2UgLSBtaWRkbGU7XG4gICAgICAgIGxldCBzdGFydFBhZ2UgPSBfc3RhcnRQYWdlIDwgMSA/IDEgOiBfc3RhcnRQYWdlO1xuICAgICAgICBjb25zdCBfZW5kUGFnZSA9IHN0YXJ0UGFnZSArIG1heFBhZ2VCdXR0b25zIC0gMTtcbiAgICAgICAgY29uc3QgZW5kUGFnZUlzTW9yZVRoYW5Ub3RhbFBhZ2VzID0gX2VuZFBhZ2UgPiB0aGlzLnRvdGFsUGFnZXMoKTtcblxuICAgICAgICBpZiAoZW5kUGFnZUlzTW9yZVRoYW5Ub3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBkaWZmID0gX2VuZFBhZ2UgLSB0aGlzLnRvdGFsUGFnZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGNhbk1vZGlmeVN0YXJ0UGFnZSA9IHN0YXJ0UGFnZSAtIGRpZmYgPj0gMTtcbiAgICAgICAgICAgIGlmIChjYW5Nb2RpZnlTdGFydFBhZ2UpIHtcbiAgICAgICAgICAgICAgICBzdGFydFBhZ2UgPSBzdGFydFBhZ2UgLSBkaWZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZFBhZ2UgPSBlbmRQYWdlSXNNb3JlVGhhblRvdGFsUGFnZXMgPyB0aGlzLnRvdGFsUGFnZXMoKSA6IF9lbmRQYWdlO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBzdGFydFBhZ2U7IGkgPD0gZW5kUGFnZTsgaSsrKSB7XG4gICAgICAgICAgICBuYXZpZ2F0aW9uUGFnZUJ1dHRvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgY2xpY2tlZDogKHBhZ2UpID0+IHRoaXMuZ29Ub1BhZ2UocGFnZS5wYWdlSW5kZXggYXMgbnVtYmVyKSxcbiAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IGksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLkZJUlNUX1BBR0VfQlVUVE9OLFxuICAgICAgICAgICAgdGhpcy5QUkVWSU9VU19QQUdFX0JVVFRPTixcbiAgICAgICAgICAgIC4uLm5hdmlnYXRpb25QYWdlQnV0dG9ucyxcbiAgICAgICAgICAgIHRoaXMuTkVYVF9QQUdFX0JVVFRPTixcbiAgICAgICAgICAgIHRoaXMuTEFTVF9QQUdFX0JVVFRPTixcbiAgICAgICAgXTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgRklSU1RfUEFHRV9CVVRUT046IFBhZ2luYXRvckludGVybmFsQnV0dG9uID0ge1xuICAgICAgICBjbGlja2VkOiB0aGlzLmdvRmlyc3RQYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGljb246ICdmYXMgZmEtc3RlcC1iYWNrd2FyZCcsXG4gICAgICAgIHZhbGlkYXRlOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuaGFzUHJldmlvdXNQYWdlKCk7XG4gICAgICAgIH0pLFxuICAgIH07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IFBSRVZJT1VTX1BBR0VfQlVUVE9OOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICAgICAgY2xpY2tlZDogdGhpcy5nb1ByZXZpb3VzUGFnZS5iaW5kKHRoaXMpLFxuICAgICAgICBpY29uOiAnZmFzIGZhLWNhcmV0LWxlZnQnLFxuICAgICAgICB2YWxpZGF0ZTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmhhc1ByZXZpb3VzUGFnZSgpO1xuICAgICAgICB9KSxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBMQVNUX1BBR0VfQlVUVE9OOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICAgICAgY2xpY2tlZDogdGhpcy5nb0xhc3RQYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGljb246ICdmYXMgZmEtc3RlcC1mb3J3YXJkJyxcbiAgICAgICAgdmFsaWRhdGU6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5oYXNOZXh0UGFnZSgpO1xuICAgICAgICB9KSxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBORVhUX1BBR0VfQlVUVE9OOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICAgICAgY2xpY2tlZDogdGhpcy5nb05leHRQYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGljb246ICdmYXMgZmEtY2FyZXQtcmlnaHQnLFxuICAgICAgICB2YWxpZGF0ZTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmhhc05leHRQYWdlKCk7XG4gICAgICAgIH0pLFxuICAgIH07XG5cbiAgICBwcml2YXRlIHRvdGFsUGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsUmVjb3JkcyA9IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gICAgICAgIGNvbnN0IF9wYWdlcyA9IHRvdGFsUmVjb3JkcyAvIHRoaXMucm93cygpO1xuICAgICAgICBjb25zdCBwYWdlcyA9IE1hdGguY2VpbChfcGFnZXMpO1xuICAgICAgICBjb25zdCBpc0V4YWN0UGFnZXMgPSBfcGFnZXMgPT09IHBhZ2VzO1xuICAgICAgICByZXR1cm4gaXNFeGFjdFBhZ2VzID8gcGFnZXMgOiBwYWdlcyArIDE7XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VFZmZlY3QuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByb3dzUGVyUGFnZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFBhZ2UoKSAhPT0gMSkge1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRCdXR0b24oYnV0dG9uOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbik6IHZvaWQge1xuICAgICAgICBidXR0b24uY2xpY2tlZChidXR0b24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29GaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ29Ub1BhZ2UoMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb05leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzTmV4dFBhZ2UoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UudXBkYXRlKCh2YWx1ZSkgPT4gdmFsdWUgKyAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlLnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlIC0gMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb0xhc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdvVG9QYWdlKHRoaXMudG90YWxQYWdlcygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvVG9QYWdlKHBhZ2VJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2Uuc2V0KHBhZ2VJbmRleCk7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGgtOCBkaXZpZGUteCBkaXZpZGUtZ3JheXNjYWxlLTMwIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1lZGl1bSBib3JkZXIgYm9yZGVyLWdyYXlzY2FsZS0zMCBiZy1ncmF5c2NhbGUtMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGJ0biBvZiBidXR0b25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIEBsZXQgYWN0aXZlID0gYnRuLnBhZ2VJbmRleCA9PT0gY3VycmVudFBhZ2UoKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5iZy1jcml0aWNhbGl0eS1ibHVlXT1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWdyYXlzY2FsZS0wXT1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWNyaXRpY2FsaXR5LWJsdWVdPVwiIWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIChzSW50ZXJhY3RpdmVDb250ZW50KT1cImFjdGl2YXRlZEJ1dHRvbihidG4pXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5kaXNhYmxlZCB8fCAoYnRuLnZhbGlkYXRlICYmIGJ0bi52YWxpZGF0ZSgpKSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3JvdXAgaC04IHctOCBob3ZlcjpiZy1ncmF5c2NhbGUtMjAgaG92ZXI6dGV4dC1ncmF5c2NhbGUtMTAwIGRpc2FibGVkOmhvdmVyOmJnLVt0cmFuc3BhcmVudF0gZGlzYWJsZWQ6aG92ZXI6dGV4dC1jcml0aWNhbGl0eS1ibHVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1kaXNhYmxlZDpvcGFjaXR5LTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAbGV0IHBhZ2UgPSBidG4ucGFnZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgQGxldCBpY29uID0gYnRuLmljb247XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHBhZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJpY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzLXNlbGVjdFxuICAgICAgICAgICAgW29wdGlvbnNdPVwicm93c1BlclBhZ2VPcHRpb25zKClcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyb3dzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJvd3NQZXJQYWdlQ2hhbmdlKClcIlxuICAgICAgICA+PC9zLXNlbGVjdD5cbiAgICA8L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICBAbGV0IHRleHQgPVxuICAgICAgICAgICAgdG90YWxSZWNvcmRzKCkgPT09IDBcbiAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudG90YWxfcmVjb3JkJ1xuICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50b3RhbF9yZWNvcmRzJztcbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxNHB4XSB0ZXh0LVsjMjEyNTMzXVwiPlxuICAgICAgICAgICAge3sgdGV4dCB8IHRyYW5zbGF0ZTogeyBjb3VudDogdG90YWxSZWNvcmRzKCkgfSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuIl19
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9wYWdpbmF0b3Ivc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9wYWdpbmF0b3Ivc3JjL2xpYi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFHdEQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFPSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLGlFQUFpRTtJQUNqRSxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3hDLG9GQUFvRjtJQUNwRixJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLDBGQUEwRjtJQUMxRixrQkFBa0IsR0FBRyxLQUFLLENBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxxRkFBcUY7SUFDckYsVUFBVSxHQUFHLE1BQU0sRUFBYyxDQUFDO0lBRWpCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxH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Q0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sUUFBUSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7d0dBdkpRLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDhpQkM3Qi9CLG0vRUFzREEsNENENUJjLDJCQUEyQiwwSkFBRSxlQUFlLGlXQUFFLFdBQVcsOFZBQUUsZUFBZTs7NEZBRzNFLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBtb2RlbCwgT25EZXN0cm95LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvaW50ZXJhY3RpdmUtY29udGVudCc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3NlbGVjdCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgUGFnZUNoYW5nZSwgUGFnaW5hdG9ySW50ZXJuYWxCdXR0b24gfSBmcm9tICcuLi9tb2RlbHMvcGFnaW5hdG9yLm1vZGVscyc7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIHBhZ2luYcOnw6NvIHN0YW5kYWxvbmUgcXVlIGV4aWJlIGJvdMO1ZXMgZGUgcMOhZ2luYXMsXG4gKiBzZWxldG9yIGRlIGl0ZW5zIHBvciBww6FnaW5hIGUgbmF2ZWdhw6fDo28gcGFyYSBwcmltZWlyYS/Dumx0aW1hIHDDoWdpbmEuXG4gKiBFbWl0ZSBgcGFnZUNoYW5nZWAgYSBjYWRhIG11ZGFuw6dhIGRlIHDDoWdpbmEgb3UgdGFtYW5obyBkZSBww6FnaW5hLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cy1wYWdpbmF0b3JcbiAqICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFwiXG4gKiAgIFsocm93cyldPVwidGFtYW5ob1BhZ2luYVwiXG4gKiAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnaW5hTXVkb3UoJGV2ZW50KVwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgU3RydWN0dXJlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1wYWdpbmF0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZSwgU2VsZWN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE7Dum1lcm8gdG90YWwgZGUgcmVnaXN0cm9zLiBDYW1wbyBvYnJpZ2F0w7NyaW8uICovXG4gICAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBpdGVucyBwb3IgcMOhZ2luYS4gU3Vwb3J0YSB0d28td2F5IGJpbmRpbmcuIEBkZWZhdWx0IDEwICovXG4gICAgcm93cyA9IG1vZGVsKDEwKTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIE9ww6fDtWVzIGRvIHNlbGV0b3IgZGUgaXRlbnMgcG9yIHDDoWdpbmEuIEBkZWZhdWx0IFsxMCwgMjAsIDUwLCAxMDAsIDIwMF0gKi9cbiAgICByb3dzUGVyUGFnZU9wdGlvbnMgPSBpbnB1dDxudW1iZXJbXT4oWzEwLCAyMCwgNTAsIDEwMCwgMjAwXSk7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHNlbXByZSBxdWUgYSBww6FnaW5hIG91IG8gbsO6bWVybyBkZSBpdGVucyBwb3IgcMOhZ2luYSBtdWRhLiAqL1xuICAgIHBhZ2VDaGFuZ2UgPSBvdXRwdXQ8UGFnZUNoYW5nZT4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFBhZ2VFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gdGhpcy50b3RhbFBhZ2VzKCk7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSAxO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0b3RhbFBhZ2VzLFxuICAgICAgICAgICAgcm93czogdGhpcy5yb3dzKCksXG4gICAgICAgICAgICBmaXJzdDogdGhpcy5yb3dzKCkgKiBwYWdlLFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IE1BWF9QQUdFX0JVVFRPTlMgPSA1O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaGFzUHJldmlvdXNQYWdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2aW91c1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCkgLSAxO1xuICAgICAgICByZXR1cm4gcHJldmlvdXNQYWdlID49IDE7XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc05leHRQYWdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UoKSArIDE7XG4gICAgICAgIHJldHVybiBuZXh0UGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMoKTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdGVkUGFnZSA9IHNpZ25hbCgxKTtcbiAgICAvKiogQGRlc2NyaXB0aW9uIFDDoWdpbmEgYXR1YWwsIHNlbXByZSByZWFqdXN0YWRhIHBhcmEgbyBpbnRlcnZhbG8gdsOhbGlkbyBkZSBgWzEsIHRvdGFsUGFnZXNdYC4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1heFBhZ2UgPSBNYXRoLm1heCh0aGlzLnRvdGFsUGFnZXMoKSwgMSk7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCh0aGlzLnJlcXVlc3RlZFBhZ2UoKSwgMSksIG1heFBhZ2UpO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIGJ1dHRvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25QYWdlQnV0dG9uczogUGFnaW5hdG9ySW50ZXJuYWxCdXR0b25bXSA9IFtdO1xuICAgICAgICBjb25zdCBtYXhQYWdlQnV0dG9ucyA9IHRoaXMuTUFYX1BBR0VfQlVUVE9OUztcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gICAgICAgIGNvbnN0IG1pZGRsZSA9IE1hdGguZmxvb3IobWF4UGFnZUJ1dHRvbnMgLyAyKTtcbiAgICAgICAgY29uc3QgX3N0YXJ0UGFnZSA9IGN1cnJlbnRQYWdlIC0gbWlkZGxlO1xuICAgICAgICBsZXQgc3RhcnRQYWdlID0gX3N0YXJ0UGFnZSA8IDEgPyAxIDogX3N0YXJ0UGFnZTtcbiAgICAgICAgY29uc3QgX2VuZFBhZ2UgPSBzdGFydFBhZ2UgKyBtYXhQYWdlQnV0dG9ucyAtIDE7XG4gICAgICAgIGNvbnN0IGVuZFBhZ2VJc01vcmVUaGFuVG90YWxQYWdlcyA9IF9lbmRQYWdlID4gdGhpcy50b3RhbFBhZ2VzKCk7XG5cbiAgICAgICAgaWYgKGVuZFBhZ2VJc01vcmVUaGFuVG90YWxQYWdlcykge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IF9lbmRQYWdlIC0gdGhpcy50b3RhbFBhZ2VzKCk7XG4gICAgICAgICAgICBjb25zdCBjYW5Nb2RpZnlTdGFydFBhZ2UgPSBzdGFydFBhZ2UgLSBkaWZmID49IDE7XG4gICAgICAgICAgICBpZiAoY2FuTW9kaWZ5U3RhcnRQYWdlKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRQYWdlID0gc3RhcnRQYWdlIC0gZGlmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmRQYWdlID0gZW5kUGFnZUlzTW9yZVRoYW5Ub3RhbFBhZ2VzID8gdGhpcy50b3RhbFBhZ2VzKCkgOiBfZW5kUGFnZTtcblxuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnRQYWdlOyBpIDw9IGVuZFBhZ2U7IGkrKykge1xuICAgICAgICAgICAgbmF2aWdhdGlvblBhZ2VCdXR0b25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGNsaWNrZWQ6IChwYWdlKSA9PiB0aGlzLmdvVG9QYWdlKHBhZ2UucGFnZUluZGV4IGFzIG51bWJlciksXG4gICAgICAgICAgICAgICAgcGFnZUluZGV4OiBpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5GSVJTVF9QQUdFX0JVVFRPTixcbiAgICAgICAgICAgIHRoaXMuUFJFVklPVVNfUEFHRV9CVVRUT04sXG4gICAgICAgICAgICAuLi5uYXZpZ2F0aW9uUGFnZUJ1dHRvbnMsXG4gICAgICAgICAgICB0aGlzLk5FWFRfUEFHRV9CVVRUT04sXG4gICAgICAgICAgICB0aGlzLkxBU1RfUEFHRV9CVVRUT04sXG4gICAgICAgIF07XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IEZJUlNUX1BBR0VfQlVUVE9OOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICAgICAgY2xpY2tlZDogdGhpcy5nb0ZpcnN0UGFnZS5iaW5kKHRoaXMpLFxuICAgICAgICBpY29uOiAnZmFzIGZhLXN0ZXAtYmFja3dhcmQnLFxuICAgICAgICBhcmlhTGFiZWxLZXk6ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXJpYV9maXJzdF9wYWdlJyxcbiAgICAgICAgdmFsaWRhdGU6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5oYXNQcmV2aW91c1BhZ2UoKTtcbiAgICAgICAgfSksXG4gICAgfTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgUFJFVklPVVNfUEFHRV9CVVRUT046IFBhZ2luYXRvckludGVybmFsQnV0dG9uID0ge1xuICAgICAgICBjbGlja2VkOiB0aGlzLmdvUHJldmlvdXNQYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGljb246ICdmYXMgZmEtY2FyZXQtbGVmdCcsXG4gICAgICAgIGFyaWFMYWJlbEtleTogJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5hcmlhX3ByZXZpb3VzX3BhZ2UnLFxuICAgICAgICB2YWxpZGF0ZTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmhhc1ByZXZpb3VzUGFnZSgpO1xuICAgICAgICB9KSxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBMQVNUX1BBR0VfQlVUVE9OOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICAgICAgY2xpY2tlZDogdGhpcy5nb0xhc3RQYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGljb246ICdmYXMgZmEtc3RlcC1mb3J3YXJkJyxcbiAgICAgICAgYXJpYUxhYmVsS2V5OiAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmFyaWFfbGFzdF9wYWdlJyxcbiAgICAgICAgdmFsaWRhdGU6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5oYXNOZXh0UGFnZSgpO1xuICAgICAgICB9KSxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBORVhUX1BBR0VfQlVUVE9OOiBQYWdpbmF0b3JJbnRlcm5hbEJ1dHRvbiA9IHtcbiAgICAgICAgY2xpY2tlZDogdGhpcy5nb05leHRQYWdlLmJpbmQodGhpcyksXG4gICAgICAgIGljb246ICdmYXMgZmEtY2FyZXQtcmlnaHQnLFxuICAgICAgICBhcmlhTGFiZWxLZXk6ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXJpYV9uZXh0X3BhZ2UnLFxuICAgICAgICB2YWxpZGF0ZTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmhhc05leHRQYWdlKCk7XG4gICAgICAgIH0pLFxuICAgIH07XG5cbiAgICBwcml2YXRlIHRvdGFsUGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbFJlY29yZHMoKSAvIHRoaXMucm93cygpKTtcbiAgICB9KTtcblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUVmZmVjdC5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJvd3NQZXJQYWdlQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSgpICE9PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmdvVG9QYWdlKDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFjdGl2YXRlZEJ1dHRvbihidXR0b246IFBhZ2luYXRvckludGVybmFsQnV0dG9uKTogdm9pZCB7XG4gICAgICAgIGJ1dHRvbi5jbGlja2VkKGJ1dHRvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb0ZpcnN0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nb1RvUGFnZSgxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvTmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5nb1RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgKyAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdvVG9QYWdlKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29MYXN0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nb1RvUGFnZSh0aGlzLnRvdGFsUGFnZXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb1RvUGFnZShwYWdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlcXVlc3RlZFBhZ2Uuc2V0KHBhZ2VJbmRleCk7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGgtOCBkaXZpZGUteCBkaXZpZGUtZ3JheXNjYWxlLTMwIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1lZGl1bSBib3JkZXIgYm9yZGVyLWdyYXlzY2FsZS0zMCBiZy1ncmF5c2NhbGUtMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGJ0biBvZiBidXR0b25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIEBsZXQgYWN0aXZlID0gYnRuLnBhZ2VJbmRleCA9PT0gY3VycmVudFBhZ2UoKTtcbiAgICAgICAgICAgICAgICBAbGV0IGFyaWFMYWJlbEtleSA9XG4gICAgICAgICAgICAgICAgICAgIGJ0bi5hcmlhTGFiZWxLZXkgPz9cbiAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmFyaWFfY3VycmVudF9wYWdlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmFyaWFfcGFnZV9udW1iZXInKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5iZy1jcml0aWNhbGl0eS1ibHVlXT1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWdyYXlzY2FsZS0wXT1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy50ZXh0LWNyaXRpY2FsaXR5LWJsdWVdPVwiIWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIChzSW50ZXJhY3RpdmVDb250ZW50KT1cImFjdGl2YXRlZEJ1dHRvbihidG4pXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ0bi5kaXNhYmxlZCB8fCAoYnRuLnZhbGlkYXRlICYmIGJ0bi52YWxpZGF0ZSgpKSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsS2V5IHwgdHJhbnNsYXRlOiB7IHBhZ2U6IGJ0bi5wYWdlSW5kZXggfVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJhY3RpdmUgPyAncGFnZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncm91cCBoLTggdy04IGhvdmVyOmJnLWdyYXlzY2FsZS0yMCBob3Zlcjp0ZXh0LWdyYXlzY2FsZS0xMDAgZGlzYWJsZWQ6aG92ZXI6YmctW3RyYW5zcGFyZW50XSBkaXNhYmxlZDpob3Zlcjp0ZXh0LWNyaXRpY2FsaXR5LWJsdWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWRpc2FibGVkOm9wYWNpdHktNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgcGFnZSA9IGJ0bi5wYWdlSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBAbGV0IGljb24gPSBidG4uaWNvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocGFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHMtc2VsZWN0XG4gICAgICAgICAgICBbb3B0aW9uc109XCJyb3dzUGVyUGFnZU9wdGlvbnMoKVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuYXJpYV9wYWdlX3NlbGVjdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyb3dzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJvd3NQZXJQYWdlQ2hhbmdlKClcIlxuICAgICAgICA+PC9zLXNlbGVjdD5cbiAgICA8L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICBAbGV0IHRleHQgPVxuICAgICAgICAgICAgdG90YWxSZWNvcmRzKCkgPT09IDBcbiAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMudG90YWxfcmVjb3JkJ1xuICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy50b3RhbF9yZWNvcmRzJztcbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxNHB4XSB0ZXh0LVsjMjEyNTMzXVwiPlxuICAgICAgICAgICAge3sgdGV4dCB8IHRyYW5zbGF0ZTogeyBjb3VudDogdG90YWxSZWNvcmRzKCkgfSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuIl19
|