@seniorsistemas/angular-components 19.7.6 → 19.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +5 -5
  2. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +5 -5
  3. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +5 -5
  4. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +10 -10
  5. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +11 -11
  6. package/esm2022/global-search/lib/global-search/global-search.component.mjs +5 -3
  7. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +5 -5
  8. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +3 -3
  9. package/esm2022/input-text/lib/input-text/input-text.directive.mjs +36 -0
  10. package/esm2022/input-text/lib/input-text/input-text.module.mjs +16 -0
  11. package/esm2022/input-text/public-api.mjs +3 -0
  12. package/esm2022/input-text/seniorsistemas-angular-components-input-text.mjs +5 -0
  13. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +4 -4
  14. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +14 -14
  15. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  16. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +4 -2
  17. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  18. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +7 -6
  19. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  20. package/fesm2022/seniorsistemas-angular-components-input-text.mjs +56 -0
  21. package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -0
  22. package/fesm2022/seniorsistemas-angular-components-tree.mjs +3 -3
  23. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  24. package/input-text/index.d.ts +5 -0
  25. package/input-text/lib/input-text/input-text.directive.d.ts +5 -0
  26. package/input-text/lib/input-text/input-text.module.d.ts +7 -0
  27. package/input-text/public-api.d.ts +2 -0
  28. package/package.json +7 -1
@@ -5,7 +5,7 @@ import { first } from 'rxjs/operators';
5
5
  import { LocaleService } from '@seniorsistemas/angular-components/locale';
6
6
  import { NgClass } from '@angular/common';
7
7
  import { InputMaskDirective } from '@seniorsistemas/angular-components/input-mask';
8
- import { InputText } from 'primeng/inputtext';
8
+ import { InputTextDirective } from '@seniorsistemas/angular-components/input-text';
9
9
  import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
10
10
  import { ButtonComponent } from '@seniorsistemas/angular-components/button';
11
11
  import { BignumberInputDirective } from '@seniorsistemas/angular-components/bignumber-input';
@@ -74,23 +74,23 @@ 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 pInputText\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 class=\"ui-inputgroup\">\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 class=\"ui-inputgroup-addon\">\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 pInputText\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 class=\"ui-inputgroup-addon\">\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: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { 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", "placeholder"], outputs: ["minDecimalPlacesChange", "maxDecimalPlacesChange", "decimalSeparatorChange", "thousandSeparatorChange", "placeholderChange", "pasteRejected"] }] });
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 class=\"ui-inputgroup\">\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 class=\"ui-inputgroup-addon\">\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 class=\"ui-inputgroup-addon\">\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", "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,
81
81
  args: [{ standalone: true, imports: [
82
82
  InputMaskDirective,
83
83
  FormsModule,
84
- InputText,
84
+ InputTextDirective,
85
85
  TooltipDirective,
86
86
  ButtonComponent,
87
87
  NgClass,
88
88
  BignumberInputDirective,
89
- ], template: "@if (field.mask) {\r\n <input\r\n pInputText\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 class=\"ui-inputgroup\">\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 class=\"ui-inputgroup-addon\">\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 pInputText\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 class=\"ui-inputgroup-addon\">\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" }]
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 class=\"ui-inputgroup\">\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 class=\"ui-inputgroup-addon\">\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 class=\"ui-inputgroup-addon\">\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9pbmxpbmUtZWRpdC9zcmMvbGliL2lubGluZS1lZGl0L2NvbXBvbmVudHMvZmllbGRzL2lubGluZS1lZGl0LW51bWJlci9pbmxpbmUtZWRpdC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2lubGluZS1lZGl0L3NyYy9saWIvaW5saW5lLWVkaXQvY29tcG9uZW50cy9maWVsZHMvaW5saW5lLWVkaXQtbnVtYmVyL2lubGluZS1lZGl0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFP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dCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSW5saW5lRWRpdE51bWJlckZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZmllbGRzL2lubGluZS1lZGl0LW51bWJlci1maWVsZCc7XHJcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbnB1dE1hc2tEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2lucHV0LW1hc2snO1xyXG5pbXBvcnQgeyBJbnB1dFRleHQgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEJpZ251bWJlcklucHV0RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iaWdudW1iZXItaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5saW5lLWVkaXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1lZGl0LW51bWJlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBJbnB1dE1hc2tEaXJlY3RpdmUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRUZXh0LFxyXG4gICAgICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgQmlnbnVtYmVySW5wdXREaXJlY3RpdmUsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5saW5lRWRpdE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgZmllbGQhOiBJbmxpbmVFZGl0TnVtYmVyRmllbGQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHB1YmxpYyB0ZW1wVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9vbkxvY2FsZVNlcnZpY2UoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5maWVsZC5uYW1lKT8udmFsdWUgfHwgJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlVmFsdWUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQubmFtZSk/LnNldFZhbHVlKHRoaXMudGVtcFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtYXNrKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmZpZWxkLm1hc2sgPT09ICdmdW5jdGlvbicgPyB0aGlzLmZpZWxkLm1hc2soKSA6ICh0aGlzLmZpZWxkLm1hc2sgYXMgc3RyaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGxlZnRBZGRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWVsZCEubGVmdEFkZG9uPy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZmllbGQubGVmdEFkZG9uLmRpc2FibGVkKClcclxuICAgICAgICAgICAgOiAodGhpcy5maWVsZC5sZWZ0QWRkb24/LmRpc2FibGVkIGFzIGJvb2xlYW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcmlnaHRBZGRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWVsZC5yaWdodEFkZG9uPy5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZmllbGQucmlnaHRBZGRvbi5kaXNhYmxlZCgpXHJcbiAgICAgICAgICAgIDogKHRoaXMuZmllbGQucmlnaHRBZGRvbj8uZGlzYWJsZWQgYXMgYm9vbGVhbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZmllbGQucHJlY2lzaW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5maWVsZC5wcmVjaXNpb24oKSA6ICh0aGlzLmZpZWxkLnByZWNpc2lvbiBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc2NhbGUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZmllbGQuc2NhbGUgPT09ICdmdW5jdGlvbicgPyB0aGlzLmZpZWxkLnNjYWxlKCkgOiAodGhpcy5maWVsZC5zY2FsZSBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uTG9jYWxlU2VydmljZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldExvY2FsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiAnLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3I6ICcsJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGZpZWxkLm1hc2spIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHBJbnB1dFRleHRcclxuICAgICAgICBjbGFzcz1cIm1vdXNldHJhcFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFtpZF09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICBbc0lucHV0TWFza109XCJtYXNrXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIHNsb3RDaGFyPVwiX1wiXHJcbiAgICAgICAgW3NUb29sdGlwXT1cImZpZWxkLnRvb2x0aXBcIlxyXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxyXG4gICAgICAgIFthdXRvQ2xlYXJdPVwiZmllbGQuYXV0b0NsZWFyID8/IGZhbHNlXCJcclxuICAgICAgICAoYmx1cik9XCJmaWVsZC5vbkJsdXIgPyBmaWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgIChmb2N1cyk9XCJmaWVsZC5vbkZvY3VzID8gZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgKG1hc2tDb21wbGV0ZSk9XCJmaWVsZC5vbkNvbXBsZXRlID8gZmllbGQub25Db21wbGV0ZSgkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgKGlucHV0KT1cImZpZWxkLm9uSW5wdXQgPyBmaWVsZC5vbklucHV0KCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBWYWx1ZVwiXHJcbiAgICAvPlxyXG59IEBlbHNlIHtcclxuICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVpLWlucHV0Z3JvdXBcIj5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5sZWZ0QWRkb24pIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQubGVmdEFkZG9uLmNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRvbi1idXR0b24gYWRkb24tYnV0dG9uLS1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxlZnRBZGRvbi5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImZpZWxkLmxlZnRBZGRvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJmaWVsZC5sZWZ0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxlZnRBZGRvbkRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cImZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmllbGQubGVmdEFkZG9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQubGVmdEFkZG9uLmljb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgIHNCaWdudW1iZXJJbnB1dFxyXG4gICAgICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXHJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwic2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgW2FsaWduVG9dPVwiZmllbGQuYWxpZ25Ub1wiXHJcbiAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiZmllbGQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcclxuICAgICAgICAgICAgICAgIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiZmllbGQuYnJvd3NlckF1dG9jb21wbGV0ZSA/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+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVpLWlucHV0Z3JvdXBcIj5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5sZWZ0QWRkb24pIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQubGVmdEFkZG9uLmNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZGRvbi1idXR0b24gYWRkb24tYnV0dG9uLS1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxlZnRBZGRvbi5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cImZpZWxkLmxlZnRBZGRvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJmaWVsZC5sZWZ0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxlZnRBZGRvbkRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cImZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmllbGQubGVmdEFkZG9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmxlZnRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQubGVmdEFkZG9uLmljb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgIHNCaWdudW1iZXJJbnB1dFxyXG4gICAgICAgICAgICAgICAgW2FsbG93TmVnYXRpdmVdPVwiZmllbGQuYWxsb3dOZWdhdGl2ZSA/PyBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcHJlY2lzaW9uXT1cInByZWNpc2lvblwiXHJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwic2NhbGVcIlxyXG4gICAgICAgICAgICAgICAgW2FsaWduVG9dPVwiZmllbGQuYWxpZ25Ub1wiXHJcbiAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiZmllbGQudG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcclxuICAgICAgICAgICAgICAgIHNJbnB1dFRleHRcclxuICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiZmllbGQuYnJvd3NlckF1dG9jb21wbGV0ZSA/ICdvbicgOiAnb2ZmJ1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXHJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJmaWVsZC5vbkJsdXIgPyBmaWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImZpZWxkLm9uRm9jdXMgPyBmaWVsZC5vbkZvY3VzKCRldmVudCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcFZhbHVlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgQGlmIChmaWVsZC5yaWdodEFkZG9uKSB7XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnJpZ2h0QWRkb24uY2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZG9uLWJ1dHRvbiBhZGRvbi1idXR0b24tLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLnJpZ2h0QWRkb24ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25DbGFzc109XCJmaWVsZC5yaWdodEFkZG9uLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cImZpZWxkLnJpZ2h0QWRkb24ucHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0QWRkb25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJmaWVsZC5yaWdodEFkZG9uLmNhbGxiYWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmICghZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnJpZ2h0QWRkb24ubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpZWxkLnJpZ2h0QWRkb24ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmllbGQucmlnaHRBZGRvbi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiZmllbGQucmlnaHRBZGRvbi5pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG4iXX0=
@@ -18,15 +18,15 @@ export class InlineEditTextComponent {
18
18
  }
19
19
  }
20
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InlineEditTextComponent, isStandalone: true, selector: "ng-component", inputs: { field: "field", formGroup: "formGroup" }, ngImport: i0, template: "<input\n type=\"text\"\n pInputText\n [(ngModel)]=\"tempValue\" />", styles: [""], dependencies: [{ 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: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }] });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InlineEditTextComponent, isStandalone: true, selector: "ng-component", inputs: { field: "field", formGroup: "formGroup" }, ngImport: i0, template: "<input\n type=\"text\"\n sInputText\n [(ngModel)]=\"tempValue\" />", styles: [""], dependencies: [{ 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"] }] });
22
22
  }
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditTextComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ standalone: true, imports: [FormsModule, InputText], template: "<input\n type=\"text\"\n pInputText\n [(ngModel)]=\"tempValue\" />" }]
25
+ args: [{ standalone: true, imports: [FormsModule, InputText], template: "<input\n type=\"text\"\n sInputText\n [(ngModel)]=\"tempValue\" />" }]
26
26
  }], propDecorators: { field: [{
27
27
  type: Input,
28
28
  args: [{ required: true }]
29
29
  }], formGroup: [{
30
30
  type: Input
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvaW5saW5lLWVkaXQvc3JjL2xpYi9pbmxpbmUtZWRpdC9jb21wb25lbnRzL2ZpZWxkcy9pbmxpbmUtZWRpdC10ZXh0L2lubGluZS1lZGl0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2lubGluZS1lZGl0L3NyYy9saWIvaW5saW5lLWVkaXQvY29tcG9uZW50cy9maWVsZHMvaW5saW5lLWVkaXQtdGV4dC9pbmxpbmUtZWRpdC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFROUMsTUFBTSxPQUFPLHVCQUF1QjtJQUV6QixLQUFLLENBQXVCO0lBRzVCLFNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV6QyxTQUFTLENBQVU7SUFFbkIsUUFBUTtRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEUsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNMLENBQUM7d0dBbkJRLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDRIQ1pwQyw2RUFHOEIseURET2hCLFdBQVcsK21CQUFFLFNBQVM7OzRGQUV2Qix1QkFBdUI7a0JBTm5DLFNBQVM7aUNBR00sSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQzs4QkFJMUIsS0FBSztzQkFEWCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBJbmxpbmVFZGl0VGV4dEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZmllbGRzL2lubGluZS1lZGl0LXRleHQtZmllbGQnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHQgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtZWRpdC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2lubGluZS1lZGl0LXRleHQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIElucHV0VGV4dF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmxpbmVFZGl0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGZpZWxkITogSW5saW5lRWRpdFRleHRGaWVsZDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgcHVibGljIHRlbXBWYWx1ZSE6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5maWVsZC5uYW1lKT8udmFsdWUgfHwgJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlVmFsdWUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZmllbGQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQubmFtZSk/LnNldFZhbHVlKHRoaXMudGVtcFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIHBJbnB1dFRleHRcbiAgICBbKG5nTW9kZWwpXT1cInRlbXBWYWx1ZVwiIC8+Il19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvaW5saW5lLWVkaXQvc3JjL2xpYi9pbmxpbmUtZWRpdC9jb21wb25lbnRzL2ZpZWxkcy9pbmxpbmUtZWRpdC10ZXh0L2lubGluZS1lZGl0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2lubGluZS1lZGl0L3NyYy9saWIvaW5saW5lLWVkaXQvY29tcG9uZW50cy9maWVsZHMvaW5saW5lLWVkaXQtdGV4dC9pbmxpbmUtZWRpdC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFROUMsTUFBTSxPQUFPLHVCQUF1QjtJQUV6QixLQUFLLENBQXVCO0lBRzVCLFNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV6QyxTQUFTLENBQVU7SUFFbkIsUUFBUTtRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEUsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNMLENBQUM7d0dBbkJRLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDRIQ1pwQyw2RUFHOEIseURET2hCLFdBQVc7OzRGQUVaLHVCQUF1QjtrQkFObkMsU0FBUztpQ0FHTSxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDOzhCQUkxQixLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IElubGluZUVkaXRUZXh0RmllbGQgfSBmcm9tICcuLi8uLi8uLi9maWVsZHMvaW5saW5lLWVkaXQtdGV4dC1maWVsZCc7XHJcbmltcG9ydCB7IElucHV0VGV4dCB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lubGluZS1lZGl0LXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5saW5lLWVkaXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgSW5wdXRUZXh0XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElubGluZUVkaXRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgZmllbGQhOiBJbmxpbmVFZGl0VGV4dEZpZWxkO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICBwdWJsaWMgdGVtcFZhbHVlITogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgdGhpcy5maWVsZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZpZWxkLm5hbWUpPy52YWx1ZSB8fCAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNhdmVWYWx1ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgdGhpcy5maWVsZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5maWVsZC5uYW1lKT8uc2V0VmFsdWUodGhpcy50ZW1wVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8aW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgc0lucHV0VGV4dFxuICAgIFsobmdNb2RlbCldPVwidGVtcFZhbHVlXCIgLz4iXX0=
@@ -0,0 +1,36 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @description Diretiva de estilo que aplica a aparência visual padrão de campo de texto
5
+ * (borda, fundo, tipografia e estados de foco, desabilitado e inválido) a um `<input>` nativo.
6
+ *
7
+ * É uma diretiva **apenas de estilo**: não implementa `ControlValueAccessor`, não gerencia
8
+ * foco/ARIA e não depende de nenhum outro componente. Combine livremente com `[formControl]`,
9
+ * `[(ngModel)]`, `sInputMask`, `pKeyFilter`, `sTooltip`, `[readOnly]`, etc. no mesmo elemento.
10
+ *
11
+ * O estado de erro (borda vermelha) aparece automaticamente quando o próprio elemento
12
+ * hospedeiro recebe as classes `ng-invalid` e `ng-dirty` do Angular Forms — ou seja, quando
13
+ * `[formControl]`/`[(ngModel)]` está no MESMO elemento que `sInputText`.
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <input type="text" sInputText [formControl]="nome" placeholder="Digite seu nome" />
18
+ * ```
19
+ * @category Input
20
+ */
21
+ const HOST_CLASSES = 's-input-text w-full min-h-[35px] rounded-medium border border-grayscale-30 bg-grayscale-0 px-[10px] py-[5px] text-sm leading-[1.25] text-grayscale-90 placeholder:text-grayscale-60 transition-colors duration-200 ease-out focus:border-primary focus:outline-none disabled:border-grayscale-20 disabled:bg-grayscale-5 disabled:text-grayscale-30 [&.ng-invalid.ng-dirty]:border-criticality-red';
22
+ export class InputTextDirective {
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
24
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: InputTextDirective, isStandalone: true, selector: "input[sInputText]", host: { classAttribute: "s-input-text w-full min-h-[35px] rounded-medium border border-grayscale-30 bg-grayscale-0 px-[10px] py-[5px] text-sm leading-[1.25] text-grayscale-90 placeholder:text-grayscale-60 transition-colors duration-200 ease-out focus:border-primary focus:outline-none disabled:border-grayscale-20 disabled:bg-grayscale-5 disabled:text-grayscale-30 [&.ng-invalid.ng-dirty]:border-criticality-red" }, ngImport: i0 });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextDirective, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: 'input[sInputText]',
30
+ standalone: true,
31
+ host: {
32
+ class: HOST_CLASSES,
33
+ },
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtdGV4dC9zcmMvbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxZQUFZLEdBQ2Qsb1lBQW9ZLENBQUM7QUFTelksTUFBTSxPQUFPLGtCQUFrQjt3R0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsWUFBWTtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGlyZXRpdmEgZGUgZXN0aWxvIHF1ZSBhcGxpY2EgYSBhcGFyw6puY2lhIHZpc3VhbCBwYWRyw6NvIGRlIGNhbXBvIGRlIHRleHRvXG4gKiAoYm9yZGEsIGZ1bmRvLCB0aXBvZ3JhZmlhIGUgZXN0YWRvcyBkZSBmb2NvLCBkZXNhYmlsaXRhZG8gZSBpbnbDoWxpZG8pIGEgdW0gYDxpbnB1dD5gIG5hdGl2by5cbiAqXG4gKiDDiSB1bWEgZGlyZXRpdmEgKiphcGVuYXMgZGUgZXN0aWxvKio6IG7Do28gaW1wbGVtZW50YSBgQ29udHJvbFZhbHVlQWNjZXNzb3JgLCBuw6NvIGdlcmVuY2lhXG4gKiBmb2NvL0FSSUEgZSBuw6NvIGRlcGVuZGUgZGUgbmVuaHVtIG91dHJvIGNvbXBvbmVudGUuIENvbWJpbmUgbGl2cmVtZW50ZSBjb20gYFtmb3JtQ29udHJvbF1gLFxuICogYFsobmdNb2RlbCldYCwgYHNJbnB1dE1hc2tgLCBgcEtleUZpbHRlcmAsIGBzVG9vbHRpcGAsIGBbcmVhZE9ubHldYCwgZXRjLiBubyBtZXNtbyBlbGVtZW50by5cbiAqXG4gKiBPIGVzdGFkbyBkZSBlcnJvIChib3JkYSB2ZXJtZWxoYSkgYXBhcmVjZSBhdXRvbWF0aWNhbWVudGUgcXVhbmRvIG8gcHLDs3ByaW8gZWxlbWVudG9cbiAqIGhvc3BlZGVpcm8gcmVjZWJlIGFzIGNsYXNzZXMgYG5nLWludmFsaWRgIGUgYG5nLWRpcnR5YCBkbyBBbmd1bGFyIEZvcm1zIOKAlCBvdSBzZWphLCBxdWFuZG9cbiAqIGBbZm9ybUNvbnRyb2xdYC9gWyhuZ01vZGVsKV1gIGVzdMOhIG5vIE1FU01PIGVsZW1lbnRvIHF1ZSBgc0lucHV0VGV4dGAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpbnB1dCB0eXBlPVwidGV4dFwiIHNJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIm5vbWVcIiBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSBzZXUgbm9tZVwiIC8+XG4gKiBgYGBcbiAqIEBjYXRlZ29yeSBJbnB1dFxuICovXG5jb25zdCBIT1NUX0NMQVNTRVMgPVxuICAgICdzLWlucHV0LXRleHQgdy1mdWxsIG1pbi1oLVszNXB4XSByb3VuZGVkLW1lZGl1bSBib3JkZXIgYm9yZGVyLWdyYXlzY2FsZS0zMCBiZy1ncmF5c2NhbGUtMCBweC1bMTBweF0gcHktWzVweF0gdGV4dC1zbSBsZWFkaW5nLVsxLjI1XSB0ZXh0LWdyYXlzY2FsZS05MCBwbGFjZWhvbGRlcjp0ZXh0LWdyYXlzY2FsZS02MCB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0yMDAgZWFzZS1vdXQgZm9jdXM6Ym9yZGVyLXByaW1hcnkgZm9jdXM6b3V0bGluZS1ub25lIGRpc2FibGVkOmJvcmRlci1ncmF5c2NhbGUtMjAgZGlzYWJsZWQ6YmctZ3JheXNjYWxlLTUgZGlzYWJsZWQ6dGV4dC1ncmF5c2NhbGUtMzAgWyYubmctaW52YWxpZC5uZy1kaXJ0eV06Ym9yZGVyLWNyaXRpY2FsaXR5LXJlZCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbc0lucHV0VGV4dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogSE9TVF9DTEFTU0VTLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dERpcmVjdGl2ZSB7fVxuXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { InputTextDirective } from './input-text.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class InputTextModule {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: InputTextModule, imports: [InputTextDirective], exports: [InputTextDirective] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextModule });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [InputTextDirective],
13
+ exports: [InputTextDirective],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtdGV4dC9zcmMvbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLGVBQWU7d0dBQWYsZUFBZTt5R0FBZixlQUFlLFlBSGQsa0JBQWtCLGFBQ2xCLGtCQUFrQjt5R0FFbkIsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSW5wdXRUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9pbnB1dC10ZXh0LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0lucHV0VGV4dERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0lucHV0VGV4dERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './lib/input-text/input-text.directive';
2
+ export * from './lib/input-text/input-text.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC10ZXh0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLWlucHV0LXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvaW5wdXQtdGV4dC9zcmMvc2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLWlucHV0LXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -2,7 +2,7 @@ import { animate, query, stagger, style, transition, trigger } from '@angular/an
2
2
  import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild, input, inject, } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { TranslateService } from '@ngx-translate/core';
5
- import { InputText } from 'primeng/inputtext';
5
+ import { InputTextDirective } from '@seniorsistemas/angular-components/input-text';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/forms";
8
8
  export class TreeNodeItemComponent {
@@ -100,7 +100,7 @@ export class TreeNodeItemComponent {
100
100
  this.treeNodeEdit.emit(payload);
101
101
  }
102
102
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeNodeItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
103
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeNodeItemComponent, isStandalone: true, selector: "s-tree-node-item", inputs: { ariaLevel: { classPropertyName: "ariaLevel", publicName: "ariaLevel", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, treeNodeItem: { classPropertyName: "treeNodeItem", publicName: "treeNodeItem", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { treeNodeItemClicked: "treeNodeItemClicked", treeNodeEdit: "treeNodeEdit", nodeExpanded: "nodeExpanded", nodeCollapsed: "nodeCollapsed" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"], dependencies: [{ kind: "component", type: TreeNodeItemComponent, selector: "s-tree-node-item", inputs: ["ariaLevel", "showCheckbox", "treeNodeItem"], outputs: ["treeNodeItemClicked", "treeNodeEdit", "nodeExpanded", "nodeCollapsed"] }, { 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: InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }], animations: [
103
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeNodeItemComponent, isStandalone: true, selector: "s-tree-node-item", inputs: { ariaLevel: { classPropertyName: "ariaLevel", publicName: "ariaLevel", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, treeNodeItem: { classPropertyName: "treeNodeItem", publicName: "treeNodeItem", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { treeNodeItemClicked: "treeNodeItemClicked", treeNodeEdit: "treeNodeEdit", nodeExpanded: "nodeExpanded", nodeCollapsed: "nodeCollapsed" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n sInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"], dependencies: [{ kind: "component", type: TreeNodeItemComponent, selector: "s-tree-node-item", inputs: ["ariaLevel", "showCheckbox", "treeNodeItem"], outputs: ["treeNodeItemClicked", "treeNodeEdit", "nodeExpanded", "nodeCollapsed"] }, { 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]" }], animations: [
104
104
  trigger('fadeExpand', [
105
105
  transition(':enter', [
106
106
  style({ height: '0px', opacity: 0, overflow: 'hidden' }),
@@ -136,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
136
136
  ], { optional: true }),
137
137
  ]),
138
138
  ]),
139
- ], standalone: true, imports: [FormsModule, InputText], template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"] }]
139
+ ], standalone: true, imports: [FormsModule, InputTextDirective], template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n sInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"] }]
140
140
  }], propDecorators: { treeNodeItem: [{
141
141
  type: Input
142
142
  }], treeNodeItemClicked: [{
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
151
151
  type: ViewChild,
152
152
  args: ['input', { read: ElementRef }]
153
153
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RyZWUvc3JjL2xpYi90cmVlL2NvbXBvbmVudHMvdHJlZS1ub2RlLWl0ZW0vdHJlZS1ub2RlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RyZWUvc3JjL2xpYi90cmVlL2NvbXBvbmVudHMvdHJlZS1ub2RlLWl0ZW0vdHJlZS1ub2RlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUYsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQThCOUMsTUFBTSxPQUFPLHFCQUFxQjtJQUNiLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNoQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVwRCxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsWUFB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QUFDO29DQUNyRCxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lDQUM5RixFQUNELEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNyQjs2QkFDSixDQUFDO3lCQUNMLENBQUM7cUJBQ0wsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDOzhCQVF4QixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFbUMsS0FBSztzQkFBOUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgcXVlcnksIHN0YWdnZXIsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIGlucHV0LFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFRyZWVOb2RlSXRlbSwgVHJlZU5vZGVFZGl0IH0gZnJvbSAnLi4vLi4vTW9kZWxzL3RyZWUubW9kZWxzJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0IH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtdHJlZS1ub2RlLWl0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtbm9kZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RyZWUtbm9kZS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcignZmFkZUV4cGFuZCcsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBvcGFjaXR5OiAwLCBvdmVyZmxvdzogJ2hpZGRlbicgfSksXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIG9wYWNpdHk6IDEgfSkpLFxyXG4gICAgICAgICAgICBdKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW2FuaW1hdGUoJzE1MG1zIGVhc2UtaW4nLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIG9wYWNpdHk6IDAgfSkpXSksXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJpZ2dlcignY2hpbGRyZW5BbmltYXRpb24nLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5KFxyXG4gICAgICAgICAgICAgICAgICAgICc6ZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHB4KScgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdnZXIoNjAsIFthbmltYXRlKCcyMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScgfSkpXSksXHJcbiAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICB7IG9wdGlvbmFsOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBdKSxcclxuICAgICAgICBdKSxcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBJbnB1dFRleHRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVJdGVtQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgICByZWFkb25seSBhcmlhTGV2ZWwgPSBpbnB1dCgwKTtcclxuICAgIHJlYWRvbmx5IHNob3dDaGVja2JveCA9IGlucHV0KGZhbHNlKTtcclxuICAgIEBJbnB1dCgpIHRyZWVOb2RlSXRlbSE6IEludGVybmFsVHJlZU5vZGVJdGVtO1xyXG4gICAgQE91dHB1dCgpIHRyZWVOb2RlSXRlbUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogSW50ZXJuYWxUcmVlTm9kZUl0ZW07IGV2ZW50OiBFdmVudCB9PigpO1xyXG4gICAgQE91dHB1dCgpIHRyZWVOb2RlRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZU5vZGVFZGl0PigpO1xyXG4gICAgQE91dHB1dCgpIG5vZGVFeHBhbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SW50ZXJuYWxUcmVlTm9kZUl0ZW0+KCk7XHJcbiAgICBAT3V0cHV0KCkgbm9kZUNvbGxhcHNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SW50ZXJuYWxUcmVlTm9kZUl0ZW0+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgaW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICAgIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISEodGhpcy50cmVlTm9kZUl0ZW0/LmNoaWxkcmVuICYmIHRoaXMudHJlZU5vZGVJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBlZGl0YWJsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUl0ZW0/LmVkaXRhYmxlIHx8IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhcmlhTGFiZWwoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuc2VsZWN0Jyl9ICR7dGhpcy50cmVlTm9kZUl0ZW0ubGFiZWx9YDtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmROb2RlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuICYmICF0aGlzLnRyZWVOb2RlSXRlbS5pc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQodGhpcy50cmVlTm9kZUl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb2xsYXBzZU5vZGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4gJiYgdGhpcy50cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMudHJlZU5vZGVJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25DaGVja2JveEVudGVyKG5vZGU6IEludGVybmFsVHJlZU5vZGVJdGVtKSB7XHJcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBub2RlLmNoZWNrZWQgPT09IHRydWUgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgbm9kZS5jaGVja2VkID0gbmV3U3RhdGU7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW1DbGlja2VkLmVtaXQoeyBpdGVtOiBub2RlLCBldmVudDogbmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7IGtleTogJ0VudGVyJyB9KSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVUcmVlTm9kZUl0ZW1DbGljayhldmVudDogRXZlbnQsIHRyZWVOb2RlSXRlbT86IEludGVybmFsVHJlZU5vZGVJdGVtKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHRyZWVOb2RlSXRlbSB8fCB0aGlzLnRyZWVOb2RlSXRlbTtcclxuICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbUNsaWNrZWQuZW1pdCh7IGl0ZW0sIGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVRyZWVOb2RlSXRlbUNsaWNrZWQoeyBldmVudCwgaXRlbSB9OiB7IGV2ZW50OiBFdmVudDsgaXRlbTogSW50ZXJuYWxUcmVlTm9kZUl0ZW0gfSkge1xyXG4gICAgICAgIGlmIChpdGVtLmlzRWRpdGluZykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGFuZGxlVHJlZU5vZGVJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUV4cGFuZGVkKHRyZWVOb2RlSXRlbTogSW50ZXJuYWxUcmVlTm9kZUl0ZW0pIHtcclxuICAgICAgICB0cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCA9ICF0cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZDtcclxuICAgICAgICBpZiAodHJlZU5vZGVJdGVtLmlzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlRXhwYW5kZWQuZW1pdCh0cmVlTm9kZUl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZUNvbGxhcHNlZC5lbWl0KHRyZWVOb2RlSXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZUVkaXRpbmcoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5pc0VkaXRpbmcgPSAhdGhpcy50cmVlTm9kZUl0ZW0uaXNFZGl0aW5nO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBpZiAodGhpcy50cmVlTm9kZUl0ZW0uaXNFZGl0aW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZU5vZGVJdGVtLmVkaXROZXdWYWx1ZSA9IHRoaXMudHJlZU5vZGVJdGVtLmxhYmVsO1xyXG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlucHV0Py5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWxFZGl0KCRldmVudDogRXZlbnQpIHtcclxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uZWRpdE5ld1ZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uZWRpdFByZXZpb3VzVmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUVkaXQoJGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5pc0VkaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXRoaXMudHJlZU5vZGVJdGVtLmVkaXROZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5lZGl0UHJldmlvdXNWYWx1ZSA9IHRoaXMudHJlZU5vZGVJdGVtLmxhYmVsO1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVJdGVtLmxhYmVsID0gdGhpcy50cmVlTm9kZUl0ZW0uZWRpdE5ld1ZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCByZXZlcnRBY3Rpb24gPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZU5vZGVJdGVtLmxhYmVsID0gdGhpcy50cmVlTm9kZUl0ZW0uZWRpdFByZXZpb3VzVmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5pc0VkaXRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUVkaXQuZW1pdCh7XHJcbiAgICAgICAgICAgIHJldmVydEFjdGlvbixcclxuICAgICAgICAgICAgaXRlbTogdGhpcy50cmVlTm9kZUl0ZW0sXHJcbiAgICAgICAgICAgIG5ld1ZhbHVlOiB0aGlzLnRyZWVOb2RlSXRlbS5lZGl0TmV3VmFsdWUsXHJcbiAgICAgICAgICAgIHByZXZpb3VzVmFsdWU6IHRoaXMudHJlZU5vZGVJdGVtLmVkaXRQcmV2aW91c1ZhbHVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRyZWVOb2RlRWRpdENoaWxkRXZlbnQocGF5bG9hZDogVHJlZU5vZGVFZGl0KSB7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUVkaXQuZW1pdChwYXlsb2FkKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKHRyZWVOb2RlSXRlbSkge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0cmVlLW5vZGUtaXRlbVwiXG4gICAgICAgIHJvbGU9XCJ0cmVlaXRlbVwiXG4gICAgICAgIFtjbGFzcy50cmVlLW5vZGUtaXRlbS1zZWxlY3RlZF09XCJ0cmVlTm9kZUl0ZW0uY2hlY2tlZFwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RhYmxlXT1cImhhc0NoaWxkcmVuXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJoYXNDaGlsZHJlbiA/IHRyZWVOb2RlSXRlbS5pc0V4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidHJlZU5vZGVJdGVtLmNoZWNrZWQgPT09IHRydWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRyZWVOb2RlSXRlbS5sYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsKClcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVUcmVlTm9kZUl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dSaWdodCk9XCJleHBhbmROb2RlKClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0xlZnQpPVwiY29sbGFwc2VOb2RlKClcIlxuICAgID5cbiAgICAgICAgQGlmIChoYXNDaGlsZHJlbiB8fCB0cmVlTm9kZUl0ZW0ubGVhZiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJyb3dcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCh0cmVlTm9kZUl0ZW0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKCF0cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwidHJlZU5vZGVJdGVtLmNvbGxhcHNlZEljb24gfHwgJ2ZhcyBmYS1jaGV2cm9uLXJpZ2h0J1wiPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICh0cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCkge1xuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwidHJlZU5vZGVJdGVtLmV4cGFuZGVkSWNvbiB8fCAnZmFzIGZhLWNoZXZyb24tZG93bidcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRyZWUtbm9kZS1pdGVtLXRleHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRyZWVOb2RlSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHRyZWVOb2RlSXRlbS5pY29uIHx8IHRyZWVOb2RlSXRlbS5pc0VkaXRpbmcpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyZWUtbm9kZS1pdGVtLXRleHQtaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRyZWVOb2RlSXRlbS5pY29uICYmICF0cmVlTm9kZUl0ZW0uaXNFZGl0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwidHJlZU5vZGVJdGVtLmljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0cmVlTm9kZUl0ZW0uaXNFZGl0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLWVkaXQgZWRpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVFZGl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChzaG93Q2hlY2tib3goKSAmJiAhdHJlZU5vZGVJdGVtLmlzRWRpdGluZykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJlZS1ub2RlLWl0ZW0tdGV4dC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ0cmVlTm9kZUl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJ0cmVlTm9kZUl0ZW0uY2hlY2tlZCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidHJlZU5vZGVJdGVtLmNoZWNrZWQgPT09IG51bGwgPyAnbWl4ZWQnIDogdHJlZU5vZGVJdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkNoZWNrYm94RW50ZXIodHJlZU5vZGVJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyZWUtbm9kZS1pdGVtLXRleHQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHRyZWVOb2RlSXRlbS5pc0VkaXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJlZS1ub2RlLWl0ZW0tdGV4dC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRyZWVOb2RlSXRlbS5lZGl0TmV3VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2F2ZUVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2FuY2VsRWRpdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkVkaXRhciBub21lIGRvIGl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghdHJlZU5vZGVJdGVtLmlzRWRpdGluZykge1xuICAgICAgICAgICAgICAgICAgICB7eyB0cmVlTm9kZUl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIEBpZiAoZWRpdGFibGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyZWUtbm9kZS1pdGVtLXRleHQtZWRpdGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGZhLXBlbmNpbC1hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUVkaXRpbmcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdGFyIGl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuXG5AaWYgKGhhc0NoaWxkcmVuICYmIHRyZWVOb2RlSXRlbS5pc0V4cGFuZGVkKSB7XG4gICAgPGRpdlxuICAgICAgICBAZmFkZUV4cGFuZFxuICAgICAgICBjbGFzcz1cImNoaWxkXCJcbiAgICAgICAgcm9sZT1cImdyb3VwXCJcbiAgICAgICAgQGNoaWxkcmVuQW5pbWF0aW9uXG4gICAgPlxuICAgICAgICBAZm9yIChjaGlsZCBvZiB0cmVlTm9kZUl0ZW0uY2hpbGRyZW47IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHMtdHJlZS1ub2RlLWl0ZW1cbiAgICAgICAgICAgICAgICBbc2hvd0NoZWNrYm94XT1cInNob3dDaGVja2JveCgpXCJcbiAgICAgICAgICAgICAgICBbdHJlZU5vZGVJdGVtXT1cImNoaWxkXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxldmVsXT1cImFyaWFMZXZlbCgpICsgMVwiXG4gICAgICAgICAgICAgICAgKHRyZWVOb2RlSXRlbUNsaWNrZWQpPVwiaGFuZGxlVHJlZU5vZGVJdGVtQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAodHJlZU5vZGVFZGl0KT1cInRyZWVOb2RlRWRpdENoaWxkRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG5vZGVFeHBhbmRlZCk9XCJub2RlRXhwYW5kZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobm9kZUNvbGxhcHNlZCk9XCJub2RlQ29sbGFwc2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlsZC1pdGVtXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cblxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RyZWUvc3JjL2xpYi90cmVlL2NvbXBvbmVudHMvdHJlZS1ub2RlLWl0ZW0vdHJlZS1ub2RlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3RyZWUvc3JjL2xpYi90cmVlL2NvbXBvbmVudHMvdHJlZS1ub2RlLWl0ZW0vdHJlZS1ub2RlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUYsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7O0FBOEJuRixNQUFNLE9BQU8scUJBQXFCO0lBQ2IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXBELFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixZ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QUUsQ0FBQztvQ0FDckQsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQ0FDOUYsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDckI7NkJBQ0osQ0FBQzt5QkFDTCxDQUFDO3FCQUNMLGNBQ1csSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDOzhCQVFqQyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFbUMsS0FBSztzQkFBOUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgcXVlcnksIHN0YWdnZXIsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIGlucHV0LFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFRyZWVOb2RlSXRlbSwgVHJlZU5vZGVFZGl0IH0gZnJvbSAnLi4vLi4vTW9kZWxzL3RyZWUubW9kZWxzJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0RGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9pbnB1dC10ZXh0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzLXRyZWUtbm9kZS1pdGVtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLW5vZGUtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90cmVlLW5vZGUtaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoJ2ZhZGVFeHBhbmQnLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgaGVpZ2h0OiAnMHB4Jywgb3BhY2l0eTogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IGhlaWdodDogJyonLCBvcGFjaXR5OiAxIH0pKSxcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcxNTBtcyBlYXNlLWluJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCBvcGFjaXR5OiAwIH0pKV0pLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIHRyaWdnZXIoJ2NoaWxkcmVuQW5pbWF0aW9uJywgW1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgICAgICAgICBxdWVyeShcclxuICAgICAgICAgICAgICAgICAgICAnOmVudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTBweCknIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFnZ2VyKDYwLCBbYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknIH0pKV0pLFxyXG4gICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBvcHRpb25hbDogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgXSksXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgSW5wdXRUZXh0RGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlSXRlbUNvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcblxyXG4gICAgcmVhZG9ubHkgYXJpYUxldmVsID0gaW5wdXQoMCk7XHJcbiAgICByZWFkb25seSBzaG93Q2hlY2tib3ggPSBpbnB1dChmYWxzZSk7XHJcbiAgICBASW5wdXQoKSB0cmVlTm9kZUl0ZW0hOiBJbnRlcm5hbFRyZWVOb2RlSXRlbTtcclxuICAgIEBPdXRwdXQoKSB0cmVlTm9kZUl0ZW1DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGl0ZW06IEludGVybmFsVHJlZU5vZGVJdGVtOyBldmVudDogRXZlbnQgfT4oKTtcclxuICAgIEBPdXRwdXQoKSB0cmVlTm9kZUVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFRyZWVOb2RlRWRpdD4oKTtcclxuICAgIEBPdXRwdXQoKSBub2RlRXhwYW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEludGVybmFsVHJlZU5vZGVJdGVtPigpO1xyXG4gICAgQE91dHB1dCgpIG5vZGVDb2xsYXBzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEludGVybmFsVHJlZU5vZGVJdGVtPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICBnZXQgaGFzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhKHRoaXMudHJlZU5vZGVJdGVtPy5jaGlsZHJlbiAmJiB0aGlzLnRyZWVOb2RlSXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZWRpdGFibGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVJdGVtPy5lZGl0YWJsZSB8fCBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXJpYUxhYmVsKCkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgncGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLnNlbGVjdCcpfSAke3RoaXMudHJlZU5vZGVJdGVtLmxhYmVsfWA7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwYW5kTm9kZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbiAmJiAhdGhpcy50cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMudHJlZU5vZGVJdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29sbGFwc2VOb2RlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuICYmIHRoaXMudHJlZU5vZGVJdGVtLmlzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLnRyZWVOb2RlSXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hlY2tib3hFbnRlcihub2RlOiBJbnRlcm5hbFRyZWVOb2RlSXRlbSkge1xyXG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gbm9kZS5jaGVja2VkID09PSB0cnVlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgIG5vZGUuY2hlY2tlZCA9IG5ld1N0YXRlO1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVJdGVtQ2xpY2tlZC5lbWl0KHsgaXRlbTogbm9kZSwgZXZlbnQ6IG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgeyBrZXk6ICdFbnRlcicgfSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlVHJlZU5vZGVJdGVtQ2xpY2soZXZlbnQ6IEV2ZW50LCB0cmVlTm9kZUl0ZW0/OiBJbnRlcm5hbFRyZWVOb2RlSXRlbSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0cmVlTm9kZUl0ZW0gfHwgdGhpcy50cmVlTm9kZUl0ZW07XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW1DbGlja2VkLmVtaXQoeyBpdGVtLCBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVUcmVlTm9kZUl0ZW1DbGlja2VkKHsgZXZlbnQsIGl0ZW0gfTogeyBldmVudDogRXZlbnQ7IGl0ZW06IEludGVybmFsVHJlZU5vZGVJdGVtIH0pIHtcclxuICAgICAgICBpZiAoaXRlbS5pc0VkaXRpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhhbmRsZVRyZWVOb2RlSXRlbUNsaWNrKGV2ZW50LCBpdGVtKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVFeHBhbmRlZCh0cmVlTm9kZUl0ZW06IEludGVybmFsVHJlZU5vZGVJdGVtKSB7XHJcbiAgICAgICAgdHJlZU5vZGVJdGVtLmlzRXhwYW5kZWQgPSAhdHJlZU5vZGVJdGVtLmlzRXhwYW5kZWQ7XHJcbiAgICAgICAgaWYgKHRyZWVOb2RlSXRlbS5pc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZUV4cGFuZGVkLmVtaXQodHJlZU5vZGVJdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGVDb2xsYXBzZWQuZW1pdCh0cmVlTm9kZUl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVFZGl0aW5nKCRldmVudDogRXZlbnQpIHtcclxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uaXNFZGl0aW5nID0gIXRoaXMudHJlZU5vZGVJdGVtLmlzRWRpdGluZztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZU5vZGVJdGVtLmlzRWRpdGluZykge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5lZGl0TmV3VmFsdWUgPSB0aGlzLnRyZWVOb2RlSXRlbS5sYWJlbDtcclxuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBpbnB1dD8uZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsRWRpdCgkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVJdGVtLmlzRWRpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVJdGVtLmVkaXROZXdWYWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVJdGVtLmVkaXRQcmV2aW91c1ZhbHVlID0gJyc7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVFZGl0KCRldmVudDogRXZlbnQpIHtcclxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCF0aGlzLnRyZWVOb2RlSXRlbS5lZGl0TmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uZWRpdFByZXZpb3VzVmFsdWUgPSB0aGlzLnRyZWVOb2RlSXRlbS5sYWJlbDtcclxuICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5sYWJlbCA9IHRoaXMudHJlZU5vZGVJdGVtLmVkaXROZXdWYWx1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgcmV2ZXJ0QWN0aW9uID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVOb2RlSXRlbS5sYWJlbCA9IHRoaXMudHJlZU5vZGVJdGVtLmVkaXRQcmV2aW91c1ZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICAgICAgdGhpcy50cmVlTm9kZUl0ZW0uaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVFZGl0LmVtaXQoe1xyXG4gICAgICAgICAgICByZXZlcnRBY3Rpb24sXHJcbiAgICAgICAgICAgIGl0ZW06IHRoaXMudHJlZU5vZGVJdGVtLFxyXG4gICAgICAgICAgICBuZXdWYWx1ZTogdGhpcy50cmVlTm9kZUl0ZW0uZWRpdE5ld1ZhbHVlLFxyXG4gICAgICAgICAgICBwcmV2aW91c1ZhbHVlOiB0aGlzLnRyZWVOb2RlSXRlbS5lZGl0UHJldmlvdXNWYWx1ZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0cmVlTm9kZUVkaXRDaGlsZEV2ZW50KHBheWxvYWQ6IFRyZWVOb2RlRWRpdCkge1xyXG4gICAgICAgIHRoaXMudHJlZU5vZGVFZGl0LmVtaXQocGF5bG9hZCk7XHJcbiAgICB9XHJcbn1cclxuIiwiQGlmICh0cmVlTm9kZUl0ZW0pIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidHJlZS1ub2RlLWl0ZW1cIlxuICAgICAgICByb2xlPVwidHJlZWl0ZW1cIlxuICAgICAgICBbY2xhc3MudHJlZS1ub2RlLWl0ZW0tc2VsZWN0ZWRdPVwidHJlZU5vZGVJdGVtLmNoZWNrZWRcIlxuICAgICAgICBbY2xhc3Muc2VsZWN0YWJsZV09XCJoYXNDaGlsZHJlblwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaGFzQ2hpbGRyZW4gPyB0cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInRyZWVOb2RlSXRlbS5jaGVja2VkID09PSB0cnVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0cmVlTm9kZUl0ZW0ubGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImFyaWFMZXZlbCgpXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGFuZGxlVHJlZU5vZGVJdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmFycm93UmlnaHQpPVwiZXhwYW5kTm9kZSgpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dMZWZ0KT1cImNvbGxhcHNlTm9kZSgpXCJcbiAgICA+XG4gICAgICAgIEBpZiAoaGFzQ2hpbGRyZW4gfHwgdHJlZU5vZGVJdGVtLmxlYWYgPT09IHRydWUpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFycm93XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQodHJlZU5vZGVJdGVtKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmICghdHJlZU5vZGVJdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cInRyZWVOb2RlSXRlbS5jb2xsYXBzZWRJY29uIHx8ICdmYXMgZmEtY2hldnJvbi1yaWdodCdcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAodHJlZU5vZGVJdGVtLmlzRXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cInRyZWVOb2RlSXRlbS5leHBhbmRlZEljb24gfHwgJ2ZhcyBmYS1jaGV2cm9uLWRvd24nXCI+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0cmVlLW5vZGUtaXRlbS10ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVUcmVlTm9kZUl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0cmVlTm9kZUl0ZW0uaWNvbiB8fCB0cmVlTm9kZUl0ZW0uaXNFZGl0aW5nKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmVlLW5vZGUtaXRlbS10ZXh0LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0cmVlTm9kZUl0ZW0uaWNvbiAmJiAhdHJlZU5vZGVJdGVtLmlzRWRpdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cInRyZWVOb2RlSXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodHJlZU5vZGVJdGVtLmlzRWRpdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS1lZGl0IGVkaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlRWRpdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoc2hvd0NoZWNrYm94KCkgJiYgIXRyZWVOb2RlSXRlbS5pc0VkaXRpbmcpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyZWUtbm9kZS1pdGVtLXRleHQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwidHJlZU5vZGVJdGVtLmNoZWNrZWQgPT09IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwidHJlZU5vZGVJdGVtLmNoZWNrZWQgPT09IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cInRyZWVOb2RlSXRlbS5jaGVja2VkID09PSBudWxsID8gJ21peGVkJyA6IHRyZWVOb2RlSXRlbS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25DaGVja2JveEVudGVyKHRyZWVOb2RlSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmVlLW5vZGUtaXRlbS10ZXh0LWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgQGlmICh0cmVlTm9kZUl0ZW0uaXNFZGl0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzSW5wdXRUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyZWUtbm9kZS1pdGVtLXRleHQtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0cmVlTm9kZUl0ZW0uZWRpdE5ld1ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNhdmVFZGl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cImNhbmNlbEVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFZGl0YXIgbm9tZSBkbyBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoIXRyZWVOb2RlSXRlbS5pc0VkaXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAge3sgdHJlZU5vZGVJdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICBAaWYgKGVkaXRhYmxlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmVlLW5vZGUtaXRlbS10ZXh0LWVkaXRhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhcyBmYS1wZW5jaWwtYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFZGl0aW5nKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkVkaXRhciBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cblxuQGlmIChoYXNDaGlsZHJlbiAmJiB0cmVlTm9kZUl0ZW0uaXNFeHBhbmRlZCkge1xuICAgIDxkaXZcbiAgICAgICAgQGZhZGVFeHBhbmRcbiAgICAgICAgY2xhc3M9XCJjaGlsZFwiXG4gICAgICAgIHJvbGU9XCJncm91cFwiXG4gICAgICAgIEBjaGlsZHJlbkFuaW1hdGlvblxuICAgID5cbiAgICAgICAgQGZvciAoY2hpbGQgb2YgdHJlZU5vZGVJdGVtLmNoaWxkcmVuOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxzLXRyZWUtbm9kZS1pdGVtXG4gICAgICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJzaG93Q2hlY2tib3goKVwiXG4gICAgICAgICAgICAgICAgW3RyZWVOb2RlSXRlbV09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICAgW2FyaWFMZXZlbF09XCJhcmlhTGV2ZWwoKSArIDFcIlxuICAgICAgICAgICAgICAgICh0cmVlTm9kZUl0ZW1DbGlja2VkKT1cImhhbmRsZVRyZWVOb2RlSXRlbUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHRyZWVOb2RlRWRpdCk9XCJ0cmVlTm9kZUVkaXRDaGlsZEV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChub2RlRXhwYW5kZWQpPVwibm9kZUV4cGFuZGVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG5vZGVDb2xsYXBzZWQpPVwibm9kZUNvbGxhcHNlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpbGQtaXRlbVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbiJdfQ==