@seniorsistemas/angular-components 18.1.0-feature-sds-276-69157a05 → 18.1.0-feature-sds-276-a92584d0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dynamic-form/dynamic-form/components/grid/row/row.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +4 -4
- package/dynamic-form/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/components/structure/section/section.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +12 -1
- package/dynamic-form/dynamic-form/dynamic-form.d.ts +3 -7
- package/dynamic-form/dynamic-form/dynamic-form.directive.d.ts +1 -1
- package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +6 -74
- package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/file-upload/file-upload-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/lookup/lookup-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/slider/slider-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/star-rating/star-rating-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -1
- package/dynamic-form/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.d.ts +1 -1
- package/dynamic-form/public-api.d.ts +3 -3
- package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +11 -9
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +54 -27
- package/esm2022/dynamic-form/dynamic-form/components/structure/fieldset/fieldset.component.mjs +5 -4
- package/esm2022/dynamic-form/dynamic-form/components/structure/section/section.component.mjs +4 -4
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +15 -4
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.directive.mjs +6 -5
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.mjs +4 -8
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +6 -268
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +7 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +24 -11
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +9 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +10 -7
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +4 -4
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +10 -8
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +5 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +11 -9
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +6 -4
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +11 -10
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-upload/file-upload-field.component.mjs +6 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/lookup/lookup-field.component.mjs +7 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +27 -12
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +22 -10
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.mjs +8 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +17 -9
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +7 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/slider/slider-field.component.mjs +8 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/star-rating/star-rating-field.component.mjs +6 -5
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +25 -11
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +8 -6
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.mjs +8 -6
- package/esm2022/dynamic-form/public-api.mjs +10 -8
- package/esm2022/dynamic-form/src/optional-fields/editor/public-api.mjs +1 -18
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +3 -5
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form-src-optional-fields-editor.mjs +0 -18
- package/fesm2022/seniorsistemas-angular-components-dynamic-form-src-optional-fields-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +1871 -1995
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +7 -8
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/package.json +7 -7
package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { Component, computed, inject, input, viewChild, } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
2
3
|
import { currencies } from '@seniorsistemas/angular-components/currency';
|
|
3
|
-
import { InputMask } from 'primeng/inputmask';
|
|
4
|
+
import { InputMask, InputMaskModule } from 'primeng/inputmask';
|
|
4
5
|
import { first } from 'rxjs/operators';
|
|
5
6
|
import { FormFieldUtilsService } from '../../../services/form-field-utils.service';
|
|
6
|
-
import { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';
|
|
7
|
+
import { NumberAlignmentOption, NumberInputModule } from '@seniorsistemas/angular-components/number-input';
|
|
8
|
+
import { FieldLabelComponent } from '../../../components/field-label/field-label.component';
|
|
9
|
+
import { NgClass } from '@angular/common';
|
|
10
|
+
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
|
|
7
11
|
import * as i0 from "@angular/core";
|
|
8
12
|
import * as i1 from "@seniorsistemas/angular-components/currency";
|
|
9
13
|
import * as i2 from "@seniorsistemas/angular-components/locale";
|
|
10
|
-
import * as i3 from "
|
|
14
|
+
import * as i3 from "primeng/inputmask";
|
|
11
15
|
import * as i4 from "@angular/forms";
|
|
12
|
-
import * as i5 from "
|
|
13
|
-
import * as i6 from "@seniorsistemas/angular-components/tooltip";
|
|
14
|
-
import * as i7 from "@seniorsistemas/angular-components/number-input";
|
|
15
|
-
import * as i8 from "../../../components/field-label/field-label.component";
|
|
16
|
+
import * as i5 from "@seniorsistemas/angular-components/number-input";
|
|
16
17
|
/**
|
|
17
18
|
* @deprecated Should use bignumber instead
|
|
18
19
|
*/
|
|
@@ -90,10 +91,10 @@ export class CurrencyFieldComponent {
|
|
|
90
91
|
return field.alignTo === 'right' ? NumberAlignmentOption.RIGHT : NumberAlignmentOption.LEFT;
|
|
91
92
|
}
|
|
92
93
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyFieldComponent, deps: [{ token: i1.CurrencyService }, { token: i2.LocaleService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CurrencyFieldComponent, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "inputRefComponent", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (_field.currency || _field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [mask]=\"mask\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (onInput)=\"_field.onInput ? _field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</div>\n\n", dependencies: [{ kind: "
|
|
94
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CurrencyFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "inputRefComponent", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (_field.currency || _field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [mask]=\"mask\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (onInput)=\"_field.onInput ? _field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</div>\n\n", dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InputMaskModule }, { kind: "component", type: i3.InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "variant", "ariaLabel", "ariaLabelledBy", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autofocus", "autoFocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: NumberInputModule }, { kind: "directive", type: i5.NumberInputDirective, selector: "input[sNumberInput]", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "placeholder"], outputs: ["pasteRejected"] }] });
|
|
94
95
|
}
|
|
95
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyFieldComponent, decorators: [{
|
|
96
97
|
type: Component,
|
|
97
|
-
args: [{ template: "@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (_field.currency || _field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [mask]=\"mask\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (onInput)=\"_field.onInput ? _field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</div>\n\n" }]
|
|
98
|
+
args: [{ standalone: true, imports: [FieldLabelComponent, NgClass, InputMaskModule, ReactiveFormsModule, TooltipDirective, NumberInputModule], template: "@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (_field.currency || _field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [mask]=\"mask\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (onInput)=\"_field.onInput ? _field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</div>\n\n" }]
|
|
98
99
|
}], ctorParameters: () => [{ type: i1.CurrencyService }, { type: i2.LocaleService }, { type: i0.ChangeDetectorRef }] });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsUUFBUSxFQUVSLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxVQUFVLEVBQW1CLE1BQU0sNkNBQTZDLENBQUM7QUFFMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUduRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7OztBQUV4Rjs7R0FFRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUF1QmxCO0lBQ1E7SUFDQTtJQXhCSixpQkFBaUIsR0FBRyxTQUFTLENBQXlCLFVBQVUsQ0FBQyxDQUFDO0lBQ25GLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO0lBQzlDLFdBQVcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFlLENBQUM7SUFFNUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxxQkFB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QUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ1IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLG1CQUFtQixJQUFJO2dCQUNwRSxrQkFBa0IsRUFBRSxHQUFHO2dCQUN2QixnQkFBZ0IsRUFBRSxHQUFHO2dCQUNyQixjQUFjLEVBQUUsSUFBSTthQUN2QixDQUFDO1NBQ1QsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUEwQjtRQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztJQUNoRyxDQUFDO3dHQS9FUSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwrYkM1Qm5DLGt6SUEyRkE7OzRGRC9EYSxzQkFBc0I7a0JBSGxDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbiAgICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGN1cnJlbmNpZXMsIEN1cnJlbmN5U2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY3VycmVuY3knO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcbmltcG9ydCB7IElucHV0TWFzayB9IGZyb20gJ3ByaW1lbmcvaW5wdXRtYXNrJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZC11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEN1cnJlbmN5RmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvY3VycmVuY3ktZmllbGQnO1xuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi4vYmFzZS1maWVsZC1jb21wb25lbnQnO1xuaW1wb3J0IHsgTnVtYmVyQWxpZ25tZW50T3B0aW9uIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9udW1iZXItaW5wdXQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFNob3VsZCB1c2UgYmlnbnVtYmVyIGluc3RlYWRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdjdXJyZW5jeS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5RmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBCYXNlRmllbGRDb21wb25lbnRDb25maWcsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFJlZkNvbXBvbmVudCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmIHwgSW5wdXRNYXNrPignaW5wdXRSZWYnKTtcbiAgICBmaWVsZCA9IGlucHV0LnJlcXVpcmVkPEN1cnJlbmN5RmllbGRDb25maWc+KCk7XG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIGZpZWxkVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBjdXJyZW5jaWVzID0gY3VycmVuY2llcztcbiAgICBwdWJsaWMgbWFzaz86IHN0cmluZztcblxuICAgIHB1YmxpYyBpbnB1dFJlZiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXRSZWYgPSB0aGlzLmlucHV0UmVmQ29tcG9uZW50KCk7XG4gICAgICAgIGlmICghaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0UmVmIGluc3RhbmNlb2YgSW5wdXRNYXNrKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXRSZWYuaW5wdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHJlYWRvbmx5IGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTG9jYWxlU2VydmljZSgpO1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGQoKTtcbiAgICAgICAgdGhpcy5tYXNrID0gdHlwZW9mIGZpZWxkLm1hc2sgPT09ICdmdW5jdGlvbicgPyBmaWVsZC5tYXNrKCkgOiBmaWVsZC5tYXNrO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Mb2NhbGVTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRMb2NhbGUoKVxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucz8uZGVjaW1hbFNlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5sb2NhbGVTZXJ2aWNlLmdldERlY2ltYWxTZXBhcmF0b3IoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyEuY3VycmVuY3lTeW1ib2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMhLmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMhLmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyEudGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiAnUiQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID8/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICdSJCcsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcGFyc2VBbGlnblRvKGZpZWxkOiBDdXJyZW5jeUZpZWxkQ29uZmlnKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC5hbGlnblRvID09PSAncmlnaHQnID8gTnVtYmVyQWxpZ25tZW50T3B0aW9uLlJJR0hUIDogTnVtYmVyQWxpZ25tZW50T3B0aW9uLkxFRlQ7XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKCkpIHtcbiAgICA8cy1maWVsZC1sYWJlbFxuICAgICAgICBbZmllbGRdPVwiX2ZpZWxkXCJcbiAgICAgICAgW2ZpZWxkQ29udGFpbmVyUmVmXT1cImlucHV0UmVmKClcIlxuICAgID48L3MtZmllbGQtbGFiZWw+XG59XG5AbGV0IGhhc01hc2sgPSAhIV9maWVsZC5tYXNrO1xuPGRpdlxuICAgIGNsYXNzPVwiW2lucHV0LWlzLWludmFsaWQ+LmJ1dHRvbi1jb250YWluZXI+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1bMXB4XSBbaW5wdXQtaXMtaW52YWxpZD4uYnV0dG9uLWNvbnRhaW5lcj4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLXItMCBbaW5wdXQtaXMtaW52YWxpZD4uYnV0dG9uLWNvbnRhaW5lcj4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLWNyaXRpY2FsaXR5LXJlZCBbaW5wdXQtaXMtaW52YWxpZD4uYnV0dG9uLWNvbnRhaW5lcj5pbnB1dF06Ym9yZGVyLVsxcHhdIFtpbnB1dC1pcy1pbnZhbGlkPi5idXR0b24tY29udGFpbmVyPmlucHV0XTpib3JkZXItY3JpdGljYWxpdHktcmVkIFtpbnB1dC1oYXMtZm9jdXM+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1bMXB4XSBbaW5wdXQtaGFzLWZvY3VzPi5idXR0b24tY29udGFpbmVyXTpib3JkZXItci0wIFtpbnB1dC1oYXMtZm9jdXM+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1wcmltYXJ5IGZsZXggaC1bMzVweF0gdy1mdWxsXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdbJjpoYXMoLmlucHV0LW1hc2submctaW52YWxpZC5uZy1kaXJ0eSk+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1bMXB4XSBbJjpoYXMoLmlucHV0LW1hc2submctaW52YWxpZC5uZy1kaXJ0eSk+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1yLTAgWyY6aGFzKC5pbnB1dC1tYXNrLm5nLWludmFsaWQubmctZGlydHkpPi5idXR0b24tY29udGFpbmVyXTpib3JkZXItY3JpdGljYWxpdHktcmVkIFsmOmhhcyguaW5wdXQtbWFzay5uZy1pbnZhbGlkLm5nLWRpcnR5KT5pbnB1dF06Ym9yZGVyLVsxcHhdIFsmOmhhcyguaW5wdXQtbWFzay5uZy1pbnZhbGlkLm5nLWRpcnR5KT5pbnB1dF06Ym9yZGVyLWNyaXRpY2FsaXR5LXJlZCc6XG4gICAgICAgICAgICBoYXNNYXNrLFxuICAgIH1cIlxuPlxuICAgIEBpZiAoX2ZpZWxkLmN1cnJlbmN5IHx8IF9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb250YWluZXIgZmxleCBoLWZ1bGwgbWluLXctMTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbC1bM3B4XSBib3JkZXIgYm9yZGVyLXItMCBib3JkZXItWyNjMWMxY2NdIHB4LVs4cHhdXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LVsjMjEyNTMzXVwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIF9maWVsZC5jdXJyZW5jeVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW5jeVNlcnZpY2UuZ2V0Q3VycmVuY3lTeW1ib2woeyBjdXJyZW5jeTogX2ZpZWxkLmN1cnJlbmN5KCkgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChoYXNNYXNrKSB7XG4gICAgICAgIDxwLWlucHV0TWFza1xuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1tYXNrXCJcbiAgICAgICAgICAgICNpbnB1dFJlZlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2lucHV0SWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAgICAgICAgIFttYXNrXT1cIm1hc2tcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBzbG90Q2hhcj1cIl9cIlxuICAgICAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICBzdHlsZUNsYXNzPVwibW91c2V0cmFwICFyb3VuZGVkLWwtWzBweF1cIlxuICAgICAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJfZmllbGQub25Gb2N1cyA/IF9maWVsZC5vbkZvY3VzKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAgIChvbkNvbXBsZXRlKT1cIl9maWVsZC5vbkNvbXBsZXRlID8gX2ZpZWxkLm9uQ29tcGxldGUoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgKG9uSW5wdXQpPVwiX2ZpZWxkLm9uSW5wdXQgPyBfZmllbGQub25JbnB1dCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgID48L3AtaW5wdXRNYXNrPlxuICAgIH0gQGVsc2UgaWYgKCFoYXNNYXNrKSB7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0UmVmXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaC1mdWxsIHctZnVsbCByb3VuZGVkLXItWzNweF0gYm9yZGVyIGJvcmRlci1bI2MxYzFjY10gcC0yIG91dGxpbmUtbm9uZSBmb2N1czpib3JkZXItWzFweF0gZm9jdXM6Ym9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAgICAgc051bWJlcklucHV0XG4gICAgICAgICAgICBbcHJlY2lzaW9uXT1cIlxuICAgICAgICAgICAgICAgIF9maWVsZC5wcmVjaXNpb25cbiAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnByZWNpc2lvbilcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5wcmVjaXNpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9maWVsZC5wcmVjaXNpb25cbiAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQuY3VycmVuY3kgJiYgX2ZpZWxkLmN1cnJlbmN5KClcbiAgICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbmNpZXNbX2ZpZWxkLmN1cnJlbmN5KCldLnByZWNpc2lvblxuICAgICAgICAgICAgICAgICAgICAgIDogMTVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc2NhbGVdPVwiXG4gICAgICAgICAgICAgICAgX2ZpZWxkLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5zY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5zY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLmN1cnJlbmN5ICYmIF9maWVsZC5jdXJyZW5jeSgpXG4gICAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW5jaWVzW19maWVsZC5jdXJyZW5jeSgpXS5zY2FsZVxuICAgICAgICAgICAgICAgICAgICAgIDogMlxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtkZWNpbWFsU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yXCJcbiAgICAgICAgICAgIFt0aG91c2FuZHNTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvclwiXG4gICAgICAgICAgICBbYWxpZ25Ub109XCJwYXJzZUFsaWduVG8oX2ZpZWxkKVwiXG4gICAgICAgICAgICBbc1Rvb2x0aXBdPVwiX2ZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJfZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJfZmllbGQuYnJvd3NlckF1dG9jb21wbGV0ZSA/ICdvbicgOiAnb2ZmJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXG4gICAgICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiX2ZpZWxkLm9uRm9jdXMgPyBfZmllbGQub25Gb2N1cygkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIC8+XG4gICAgfVxuPC9kaXY+XG5cbiJdfQ==
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsUUFBUSxFQUVSLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxVQUFVLEVBQW1CLE1BQU0sNkNBQTZDLENBQUM7QUFFMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7O0FBRTlFOztHQUVH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RSxDQUFDLG1CQUFtQixHQUFHO3dCQUMvQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW9CLENBQUMsZ0JBQWdCO3dCQUNwRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW9CLENBQUMsa0JBQWtCO3dCQUN4RSxjQUFjLEVBQUUsSUFBSTtxQkFDdkIsQ0FBQztnQkFDTixDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FDUixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsbUJBQW1CLElBQUk7Z0JBQ3BFLGtCQUFrQixFQUFFLEdBQUc7Z0JBQ3ZCLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3JCLGNBQWMsRUFBRSxJQUFJO2FBQ3ZCLENBQUM7U0FDVCxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQTBCO1FBQ25DLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO0lBQ2hHLENBQUM7d0dBL0VRLHNCQUFzQjs0RkFBdEIsc0JBQXNCLG1kQ2pDbkMsa3pJQTJGQSw0Q0Q3RGMsbUJBQW1CLGtHQUFFLE9BQU8sbUZBQUUsZUFBZSxxaUJBQUUsbUJBQW1CLDBrQkFBRSxnQkFBZ0IsMk5BQUUsaUJBQWlCOzs0RkFHeEcsc0JBQXNCO2tCQUxsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbiAgICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGN1cnJlbmNpZXMsIEN1cnJlbmN5U2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY3VycmVuY3knO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlJztcbmltcG9ydCB7IElucHV0TWFzaywgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG1hc2snO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9jdXJyZW5jeS1maWVsZCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJBbGlnbm1lbnRPcHRpb24sIE51bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9udW1iZXItaW5wdXQnO1xuaW1wb3J0IHsgRmllbGRMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgU2hvdWxkIHVzZSBiaWdudW1iZXIgaW5zdGVhZFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGaWVsZExhYmVsQ29tcG9uZW50LCBOZ0NsYXNzLCBJbnB1dE1hc2tNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRvb2x0aXBEaXJlY3RpdmUsIE51bWJlcklucHV0TW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJ2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZywgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UmVmQ29tcG9uZW50ID0gdmlld0NoaWxkPEVsZW1lbnRSZWYgfCBJbnB1dE1hc2s+KCdpbnB1dFJlZicpO1xuICAgIGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8Q3VycmVuY3lGaWVsZENvbmZpZz4oKTtcbiAgICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuXG4gICAgZmllbGRVdGlscyA9IGluamVjdChGb3JtRmllbGRVdGlsc1NlcnZpY2UpO1xuXG4gICAgcHVibGljIGN1cnJlbmNpZXMgPSBjdXJyZW5jaWVzO1xuICAgIHB1YmxpYyBtYXNrPzogc3RyaW5nO1xuXG4gICAgcHVibGljIGlucHV0UmVmID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBpbnB1dFJlZiA9IHRoaXMuaW5wdXRSZWZDb21wb25lbnQoKTtcbiAgICAgICAgaWYgKCFpbnB1dFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXRSZWYgaW5zdGFuY2VvZiBJbnB1dE1hc2spIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dFJlZi5pbnB1dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcmVhZG9ubHkgY3VycmVuY3lTZXJ2aWNlOiBDdXJyZW5jeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Mb2NhbGVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZCgpO1xuICAgICAgICB0aGlzLm1hc2sgPSB0eXBlb2YgZmllbGQubWFzayA9PT0gJ2Z1bmN0aW9uJyA/IGZpZWxkLm1hc2soKSA6IGZpZWxkLm1hc2s7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxvY2FsZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zPy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LnRob3VzYW5kc1NlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zIS5jdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyEuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMubG9jYWxlU2VydmljZS5nZXRHcm91cGluZ1NlcGFyYXRvcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmZpZWxkKCkubnVtYmVyTG9jYWxlT3B0aW9ucyEuZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zIS50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICdSJCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuZmllbGQoKS5udW1iZXJMb2NhbGVPcHRpb25zID0gdGhpcy5maWVsZCgpLm51bWJlckxvY2FsZU9wdGlvbnMgPz8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiAnLicsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiAnLCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogJ1IkJyxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwYXJzZUFsaWduVG8oZmllbGQ6IEN1cnJlbmN5RmllbGRDb25maWcpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmFsaWduVG8gPT09ICdyaWdodCcgPyBOdW1iZXJBbGlnbm1lbnRPcHRpb24uUklHSFQgOiBOdW1iZXJBbGlnbm1lbnRPcHRpb24uTEVGVDtcbiAgICB9XG59XG5cbiIsIkBsZXQgX2ZpZWxkID0gZmllbGQoKTtcbkBpZiAoaW5wdXRSZWYoKSkge1xuICAgIDxzLWZpZWxkLWxhYmVsXG4gICAgICAgIFtmaWVsZF09XCJfZmllbGRcIlxuICAgICAgICBbZmllbGRDb250YWluZXJSZWZdPVwiaW5wdXRSZWYoKVwiXG4gICAgPjwvcy1maWVsZC1sYWJlbD5cbn1cbkBsZXQgaGFzTWFzayA9ICEhX2ZpZWxkLm1hc2s7XG48ZGl2XG4gICAgY2xhc3M9XCJbaW5wdXQtaXMtaW52YWxpZD4uYnV0dG9uLWNvbnRhaW5lcj4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLVsxcHhdIFtpbnB1dC1pcy1pbnZhbGlkPi5idXR0b24tY29udGFpbmVyPi5idXR0b24tY29udGFpbmVyXTpib3JkZXItci0wIFtpbnB1dC1pcy1pbnZhbGlkPi5idXR0b24tY29udGFpbmVyPi5idXR0b24tY29udGFpbmVyXTpib3JkZXItY3JpdGljYWxpdHktcmVkIFtpbnB1dC1pcy1pbnZhbGlkPi5idXR0b24tY29udGFpbmVyPmlucHV0XTpib3JkZXItWzFweF0gW2lucHV0LWlzLWludmFsaWQ+LmJ1dHRvbi1jb250YWluZXI+aW5wdXRdOmJvcmRlci1jcml0aWNhbGl0eS1yZWQgW2lucHV0LWhhcy1mb2N1cz4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLVsxcHhdIFtpbnB1dC1oYXMtZm9jdXM+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1yLTAgW2lucHV0LWhhcy1mb2N1cz4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLXByaW1hcnkgZmxleCBoLVszNXB4XSB3LWZ1bGxcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ1smOmhhcyguaW5wdXQtbWFzay5uZy1pbnZhbGlkLm5nLWRpcnR5KT4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLVsxcHhdIFsmOmhhcyguaW5wdXQtbWFzay5uZy1pbnZhbGlkLm5nLWRpcnR5KT4uYnV0dG9uLWNvbnRhaW5lcl06Ym9yZGVyLXItMCBbJjpoYXMoLmlucHV0LW1hc2submctaW52YWxpZC5uZy1kaXJ0eSk+LmJ1dHRvbi1jb250YWluZXJdOmJvcmRlci1jcml0aWNhbGl0eS1yZWQgWyY6aGFzKC5pbnB1dC1tYXNrLm5nLWludmFsaWQubmctZGlydHkpPmlucHV0XTpib3JkZXItWzFweF0gWyY6aGFzKC5pbnB1dC1tYXNrLm5nLWludmFsaWQubmctZGlydHkpPmlucHV0XTpib3JkZXItY3JpdGljYWxpdHktcmVkJzpcbiAgICAgICAgICAgIGhhc01hc2ssXG4gICAgfVwiXG4+XG4gICAgQGlmIChfZmllbGQuY3VycmVuY3kgfHwgX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lciBmbGV4IGgtZnVsbCBtaW4tdy0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1sLVszcHhdIGJvcmRlciBib3JkZXItci0wIGJvcmRlci1bI2MxYzFjY10gcHgtWzhweF1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtWyMyMTI1MzNdXCI+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgX2ZpZWxkLmN1cnJlbmN5XG4gICAgICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbmN5U2VydmljZS5nZXRDdXJyZW5jeVN5bWJvbCh7IGN1cnJlbmN5OiBfZmllbGQuY3VycmVuY3koKSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8uY3VycmVuY3lTeW1ib2xcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICBAaWYgKGhhc01hc2spIHtcbiAgICAgICAgPHAtaW5wdXRNYXNrXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LW1hc2tcIlxuICAgICAgICAgICAgI2lucHV0UmVmXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbaW5wdXRJZF09XCJfZmllbGQuaWQgfHwgX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgICAgICAgICAgW21hc2tdPVwibWFza1wiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIHNsb3RDaGFyPVwiX1wiXG4gICAgICAgICAgICBbc1Rvb2x0aXBdPVwiX2ZpZWxkLnRvb2x0aXBcIlxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJtb3VzZXRyYXAgIXJvdW5kZWQtbC1bMHB4XVwiXG4gICAgICAgICAgICAob25CbHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIl9maWVsZC5vbkZvY3VzID8gX2ZpZWxkLm9uRm9jdXMoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAgICAgKG9uQ29tcGxldGUpPVwiX2ZpZWxkLm9uQ29tcGxldGUgPyBfZmllbGQub25Db21wbGV0ZSgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgICAob25JbnB1dCk9XCJfZmllbGQub25JbnB1dCA/IF9maWVsZC5vbklucHV0KCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgPjwvcC1pbnB1dE1hc2s+XG4gICAgfSBAZWxzZSBpZiAoIWhhc01hc2spIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtpZF09XCJfZmllbGQuaWQgfHwgX2ZpZWxkLm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtci1bM3B4XSBib3JkZXIgYm9yZGVyLVsjYzFjMWNjXSBwLTIgb3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1bMXB4XSBmb2N1czpib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgICBbbmFtZV09XCJfZmllbGQubmFtZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgICBzTnVtYmVySW5wdXRcbiAgICAgICAgICAgIFtwcmVjaXNpb25dPVwiXG4gICAgICAgICAgICAgICAgX2ZpZWxkLnByZWNpc2lvblxuICAgICAgICAgICAgICAgICAgICA/IGZpZWxkVXRpbHMuaXNGdW5jdGlvbihfZmllbGQucHJlY2lzaW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnByZWNpc2lvbilcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2ZpZWxkLnByZWNpc2lvblxuICAgICAgICAgICAgICAgICAgICA6IF9maWVsZC5jdXJyZW5jeSAmJiBfZmllbGQuY3VycmVuY3koKVxuICAgICAgICAgICAgICAgICAgICAgID8gY3VycmVuY2llc1tfZmllbGQuY3VycmVuY3koKV0ucHJlY2lzaW9uXG4gICAgICAgICAgICAgICAgICAgICAgOiAxNVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzY2FsZV09XCJcbiAgICAgICAgICAgICAgICBfZmllbGQuc2NhbGVcbiAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnNjYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnNjYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQuc2NhbGVcbiAgICAgICAgICAgICAgICAgICAgOiBfZmllbGQuY3VycmVuY3kgJiYgX2ZpZWxkLmN1cnJlbmN5KClcbiAgICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbmNpZXNbX2ZpZWxkLmN1cnJlbmN5KCldLnNjYWxlXG4gICAgICAgICAgICAgICAgICAgICAgOiAyXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3JcIlxuICAgICAgICAgICAgW3Rob3VzYW5kc1NlcGFyYXRvcl09XCJfZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yXCJcbiAgICAgICAgICAgIFthbGlnblRvXT1cInBhcnNlQWxpZ25UbyhfZmllbGQpXCJcbiAgICAgICAgICAgIFtzVG9vbHRpcF09XCJfZmllbGQudG9vbHRpcFwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbc2hvd0RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIl9maWVsZC5icm93c2VyQXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidtb3VzZXRyYXAnXCJcbiAgICAgICAgICAgIChibHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJfZmllbGQub25Gb2N1cyA/IF9maWVsZC5vbkZvY3VzKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgLz5cbiAgICB9XG48L2Rpdj5cblxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component, HostListener, input } from '@angular/core';
|
|
2
|
+
import { FileUploadModule } from '@seniorsistemas/angular-components/file-upload';
|
|
3
|
+
import { FieldLabelComponent } from '../../../components/field-label/field-label.component';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/
|
|
4
|
-
import * as i2 from "@seniorsistemas/angular-components/file-upload";
|
|
5
|
-
import * as i3 from "../../../components/field-label/field-label.component";
|
|
5
|
+
import * as i1 from "@seniorsistemas/angular-components/file-upload";
|
|
6
6
|
export class FileUploadFieldComponent {
|
|
7
7
|
changeDetectorRef;
|
|
8
8
|
elementRef;
|
|
@@ -32,11 +32,11 @@ export class FileUploadFieldComponent {
|
|
|
32
32
|
this.inputRef?.dispatchEvent(new Event('focus'));
|
|
33
33
|
}
|
|
34
34
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileUploadFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FileUploadFieldComponent, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "onClick()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"_field.id || _field.name\"\n [accept]=\"_field.accept\"\n [files]=\"_field.files\"\n [multiple]=\"_field.multiple\"\n [chooseLabel]=\"_field.chooseLabel\"\n [removeLabel]=\"_field.removeLabel\"\n [cancelLabel]=\"_field.cancelLabel\"\n [successTooltip]=\"_field.successTooltip\"\n (uploadHandler)=\"_field.onUploadFile($event, _field)\"\n (removeFile)=\"_field.onRemoveFile($event.file, _field)\"\n (cancelUpload)=\"_field.onCancelUpload($event, _field)\"\n (downloadFile)=\"_field.onDownloadFile($event, _field)\"\n [formControl]=\"formControl()\"\n [showFileUploadDate]=\"_field.showFileUploadDate\"\n>\n</s-file-upload>\n\n", dependencies: [{ kind: "
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FileUploadFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "onClick()", "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"_field.id || _field.name\"\n [accept]=\"_field.accept\"\n [files]=\"_field.files\"\n [multiple]=\"_field.multiple\"\n [chooseLabel]=\"_field.chooseLabel\"\n [removeLabel]=\"_field.removeLabel\"\n [cancelLabel]=\"_field.cancelLabel\"\n [successTooltip]=\"_field.successTooltip\"\n (uploadHandler)=\"_field.onUploadFile($event, _field)\"\n (removeFile)=\"_field.onRemoveFile($event.file, _field)\"\n (cancelUpload)=\"_field.onCancelUpload($event, _field)\"\n (downloadFile)=\"_field.onDownloadFile($event, _field)\"\n [formControl]=\"formControl()\"\n [showFileUploadDate]=\"_field.showFileUploadDate\"\n>\n</s-file-upload>\n\n", dependencies: [{ kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i1.FileUploadComponent, selector: "s-file-upload", inputs: ["id", "chooseLabel", "removeLabel", "cancelLabel", "successTooltip", "multiple", "accept", "supportedExtensions", "ariaLabelFileName", "maxFileSize", "maxCombinedFileSize", "fileLimit", "ariaLabelProgress", "ariaLabelSuccess", "ariaLabelError", "ariaLabelRemove", "formControl", "disabled", "showFileUploadDate", "permissions", "files"], outputs: ["uploadHandler", "removeFile", "cancelUpload", "downloadFile", "validateErrors"] }, { kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }] });
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileUploadFieldComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
39
|
-
args: [{ template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"_field.id || _field.name\"\n [accept]=\"_field.accept\"\n [files]=\"_field.files\"\n [multiple]=\"_field.multiple\"\n [chooseLabel]=\"_field.chooseLabel\"\n [removeLabel]=\"_field.removeLabel\"\n [cancelLabel]=\"_field.cancelLabel\"\n [successTooltip]=\"_field.successTooltip\"\n (uploadHandler)=\"_field.onUploadFile($event, _field)\"\n (removeFile)=\"_field.onRemoveFile($event.file, _field)\"\n (cancelUpload)=\"_field.onCancelUpload($event, _field)\"\n (downloadFile)=\"_field.onDownloadFile($event, _field)\"\n [formControl]=\"formControl()\"\n [showFileUploadDate]=\"_field.showFileUploadDate\"\n>\n</s-file-upload>\n\n" }]
|
|
39
|
+
args: [{ standalone: true, imports: [FileUploadModule, FieldLabelComponent], template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"_field.id || _field.name\"\n [accept]=\"_field.accept\"\n [files]=\"_field.files\"\n [multiple]=\"_field.multiple\"\n [chooseLabel]=\"_field.chooseLabel\"\n [removeLabel]=\"_field.removeLabel\"\n [cancelLabel]=\"_field.cancelLabel\"\n [successTooltip]=\"_field.successTooltip\"\n (uploadHandler)=\"_field.onUploadFile($event, _field)\"\n (removeFile)=\"_field.onRemoveFile($event.file, _field)\"\n (cancelUpload)=\"_field.onCancelUpload($event, _field)\"\n (downloadFile)=\"_field.onDownloadFile($event, _field)\"\n [formControl]=\"formControl()\"\n [showFileUploadDate]=\"_field.showFileUploadDate\"\n>\n</s-file-upload>\n\n" }]
|
|
40
40
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { onClick: [{
|
|
41
41
|
type: HostListener,
|
|
42
42
|
args: ['click']
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
44
44
|
type: HostListener,
|
|
45
45
|
args: ['document:click', ['$event']]
|
|
46
46
|
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9mb3JtLWZpZWxkL2ZpZWxkcy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLN0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7OztBQU01RixNQUFNLE9BQU8sd0JBQXdCO0lBT1o7SUFDQTtJQVByQixLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztJQUMxQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZSxDQUFDO0lBRXJDLFFBQVEsR0FBNEIsSUFBSSxDQUFDO0lBRWhELFlBQ3FCLGlCQUFvQyxFQUNwQyxVQUFzQjtRQUR0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDeEMsQ0FBQztJQUdHLE9BQU87UUFDVixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBcUIsQ0FBQztJQUM3RixDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQzt3R0FsQ1Esd0JBQXdCOzRGQUF4Qix3QkFBd0IsZ2JDWnJDLHExQkEwQkEsMkNEakJjLGdCQUFnQixzaUJBQUUsbUJBQW1COzs0RkFHdEMsd0JBQXdCO2tCQUxwQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDOytHQWV6QyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFXckIsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJsb2JGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ibG9iLWZpZWxkJztcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uL2Jhc2UtZmllbGQtY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2ZpbGUtdXBsb2FkJztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGaWxlVXBsb2FkTW9kdWxlLCBGaWVsZExhYmVsQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJ2ZpbGUtdXBsb2FkLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnLCBBZnRlclZpZXdJbml0IHtcbiAgICBmaWVsZCA9IGlucHV0LnJlcXVpcmVkPEJsb2JGaWVsZENvbmZpZz4oKTtcbiAgICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuXG4gICAgcHVibGljIGlucHV0UmVmOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICApIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb2N1c0lucHV0UmVmKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRJbnB1dFJlZigpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZj8uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JsdXInKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldElucHV0UmVmKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0UmVmID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzcGF0Y2hGb2N1c0lucHV0UmVmKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0UmVmPy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZm9jdXMnKSk7XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKSB7XG4gICAgPHMtZmllbGQtbGFiZWxcbiAgICAgICAgW2ZpZWxkXT1cIl9maWVsZFwiXG4gICAgICAgIFtmaWVsZENvbnRhaW5lclJlZl09XCJpbnB1dFJlZlwiXG4gICAgPjwvcy1maWVsZC1sYWJlbD5cbn1cblxuPHMtZmlsZS11cGxvYWRcbiAgICBbaWRdPVwiX2ZpZWxkLmlkIHx8IF9maWVsZC5uYW1lXCJcbiAgICBbYWNjZXB0XT1cIl9maWVsZC5hY2NlcHRcIlxuICAgIFtmaWxlc109XCJfZmllbGQuZmlsZXNcIlxuICAgIFttdWx0aXBsZV09XCJfZmllbGQubXVsdGlwbGVcIlxuICAgIFtjaG9vc2VMYWJlbF09XCJfZmllbGQuY2hvb3NlTGFiZWxcIlxuICAgIFtyZW1vdmVMYWJlbF09XCJfZmllbGQucmVtb3ZlTGFiZWxcIlxuICAgIFtjYW5jZWxMYWJlbF09XCJfZmllbGQuY2FuY2VsTGFiZWxcIlxuICAgIFtzdWNjZXNzVG9vbHRpcF09XCJfZmllbGQuc3VjY2Vzc1Rvb2x0aXBcIlxuICAgICh1cGxvYWRIYW5kbGVyKT1cIl9maWVsZC5vblVwbG9hZEZpbGUoJGV2ZW50LCBfZmllbGQpXCJcbiAgICAocmVtb3ZlRmlsZSk9XCJfZmllbGQub25SZW1vdmVGaWxlKCRldmVudC5maWxlLCBfZmllbGQpXCJcbiAgICAoY2FuY2VsVXBsb2FkKT1cIl9maWVsZC5vbkNhbmNlbFVwbG9hZCgkZXZlbnQsIF9maWVsZClcIlxuICAgIChkb3dubG9hZEZpbGUpPVwiX2ZpZWxkLm9uRG93bmxvYWRGaWxlKCRldmVudCwgX2ZpZWxkKVwiXG4gICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgIFtzaG93RmlsZVVwbG9hZERhdGVdPVwiX2ZpZWxkLnNob3dGaWxlVXBsb2FkRGF0ZVwiXG4+XG48L3MtZmlsZS11cGxvYWQ+XG5cbiJdfQ==
|
package/esm2022/dynamic-form/dynamic-form/form-field/fields/lookup/lookup-field.component.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Component, DestroyRef, inject, input } from '@angular/core';
|
|
2
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
2
3
|
import { delay } from 'rxjs';
|
|
3
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
|
|
6
|
+
import { LookupComponent } from '../../../components/lookup/lookup.component';
|
|
7
|
+
import { FieldLabelComponent } from '../../../components/field-label/field-label.component';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
import * as i1 from "@angular/forms";
|
|
6
|
-
import * as i2 from "@seniorsistemas/angular-components/tooltip";
|
|
7
|
-
import * as i3 from "../../../components/field-label/field-label.component";
|
|
8
|
-
import * as i4 from "../../../components/lookup/lookup.component";
|
|
9
10
|
export class LookupFieldComponent {
|
|
10
11
|
_destroyRef = inject(DestroyRef);
|
|
11
12
|
gridData = [];
|
|
@@ -31,10 +32,10 @@ export class LookupFieldComponent {
|
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
34
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LookupFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LookupFieldComponent, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple ?? false\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"lookupSuggestions\"\n [dataKey]=\"_field.dataKey\"\n [placeholder]=\"_field.placeholder\"\n [showSearch]=\"_field.showSearch ?? true\"\n [searchFields]=\"_field.searchFields\"\n [searchGridFields]=\"_field.searchGridFields\"\n [searchGridData]=\"gridData\"\n (onLookupRequest)=\"_field.onLookupRequest($event)\"\n (onSearchRequest)=\"_field.onSearchRequest($event)\"\n [lookupDisplayField]=\"_field.lookupDisplayField\"\n [searchTotalRecords]=\"searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: _field.recordsLabel,\n recordLabel: _field.recordLabel,\n emptyFieldLabel: _field.emptyFieldLabel,\n selectLabel: _field.selectLabel,\n cancelLabel: _field.cancelLabel,\n clearLabel: _field.clearLabel,\n filterLabel: _field.filterLabel,\n filterTitle: _field.filterTitle,\n searchTotalRecordsLabel: searchTotalRecordsLabel,\n searchEmptyTitle: _field.searchEmptyTitle,\n searchTitle: _field.searchTitle,\n }\"\n (onSelect)=\"_field.onSelect?.($event)\"\n (onUnselect)=\"_field.onUnselect?.($event)\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupAppendTo]=\"_field.appendTo\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n [defaultFilter]=\"_field.defaultFilter ?? []\"\n [autocompleteForceSelection]=\"_field.autocompleteForceSelection ?? true\"\n [showAddOption]=\"_field.showAddOption ?? false\"\n [showEditOption]=\"_field.showEditOption ?? false\"\n [showRemoveOption]=\"_field.showRemoveOption ?? false\"\n [sortableColumnsDisabled]=\"_field.sortableColumnsDisabled ?? []\"\n (onAdd)=\"_field.onAdd ? _field.onAdd() : null\"\n (onEdit)=\"_field.onEdit ? _field.onEdit($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onClearButtonClick)=\"_field.onClearButtonClick ? _field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n\n", dependencies: [{ kind: "
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: LookupFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple ?? false\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"lookupSuggestions\"\n [dataKey]=\"_field.dataKey\"\n [placeholder]=\"_field.placeholder\"\n [showSearch]=\"_field.showSearch ?? true\"\n [searchFields]=\"_field.searchFields\"\n [searchGridFields]=\"_field.searchGridFields\"\n [searchGridData]=\"gridData\"\n (onLookupRequest)=\"_field.onLookupRequest($event)\"\n (onSearchRequest)=\"_field.onSearchRequest($event)\"\n [lookupDisplayField]=\"_field.lookupDisplayField\"\n [searchTotalRecords]=\"searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: _field.recordsLabel,\n recordLabel: _field.recordLabel,\n emptyFieldLabel: _field.emptyFieldLabel,\n selectLabel: _field.selectLabel,\n cancelLabel: _field.cancelLabel,\n clearLabel: _field.clearLabel,\n filterLabel: _field.filterLabel,\n filterTitle: _field.filterTitle,\n searchTotalRecordsLabel: searchTotalRecordsLabel,\n searchEmptyTitle: _field.searchEmptyTitle,\n searchTitle: _field.searchTitle,\n }\"\n (onSelect)=\"_field.onSelect?.($event)\"\n (onUnselect)=\"_field.onUnselect?.($event)\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupAppendTo]=\"_field.appendTo\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n [defaultFilter]=\"_field.defaultFilter ?? []\"\n [autocompleteForceSelection]=\"_field.autocompleteForceSelection ?? true\"\n [showAddOption]=\"_field.showAddOption ?? false\"\n [showEditOption]=\"_field.showEditOption ?? false\"\n [showRemoveOption]=\"_field.showRemoveOption ?? false\"\n [sortableColumnsDisabled]=\"_field.sortableColumnsDisabled ?? []\"\n (onAdd)=\"_field.onAdd ? _field.onAdd() : null\"\n (onEdit)=\"_field.onEdit ? _field.onEdit($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onClearButtonClick)=\"_field.onClearButtonClick ? _field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n\n", dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: LookupComponent, selector: "s-lookup", inputs: ["formControlName", "id", "autocompleteForceSelection", "multiple", "dataKey", "disabled", "showSearch", "lookupSuggestions", "lookupDisplayField", "lookupDisplayFieldTooltip", "lookupEmptyMessage", "lookupAppendTo", "searchEmptyDescription", "searchGridData", "searchTotalRecords", "searchFields", "searchGridFields", "multiSortMeta", "placeholder", "sortableColumnsDisabled", "lookupRowProps", "defaultFilter", "showAddOption", "showEditOption", "showRemoveOption", "dialogFullScreen", "labelOptions"], outputs: ["onLookupRequest", "onSearchRequest", "onFocus", "onBlur", "onKeyUp", "onSelect", "onUnselect", "onClear", "onAdd", "onEdit", "onRemove", "onClearButtonClick"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
35
36
|
}
|
|
36
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LookupFieldComponent, decorators: [{
|
|
37
38
|
type: Component,
|
|
38
|
-
args: [{ template: "@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple ?? false\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"lookupSuggestions\"\n [dataKey]=\"_field.dataKey\"\n [placeholder]=\"_field.placeholder\"\n [showSearch]=\"_field.showSearch ?? true\"\n [searchFields]=\"_field.searchFields\"\n [searchGridFields]=\"_field.searchGridFields\"\n [searchGridData]=\"gridData\"\n (onLookupRequest)=\"_field.onLookupRequest($event)\"\n (onSearchRequest)=\"_field.onSearchRequest($event)\"\n [lookupDisplayField]=\"_field.lookupDisplayField\"\n [searchTotalRecords]=\"searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: _field.recordsLabel,\n recordLabel: _field.recordLabel,\n emptyFieldLabel: _field.emptyFieldLabel,\n selectLabel: _field.selectLabel,\n cancelLabel: _field.cancelLabel,\n clearLabel: _field.clearLabel,\n filterLabel: _field.filterLabel,\n filterTitle: _field.filterTitle,\n searchTotalRecordsLabel: searchTotalRecordsLabel,\n searchEmptyTitle: _field.searchEmptyTitle,\n searchTitle: _field.searchTitle,\n }\"\n (onSelect)=\"_field.onSelect?.($event)\"\n (onUnselect)=\"_field.onUnselect?.($event)\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupAppendTo]=\"_field.appendTo\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n [defaultFilter]=\"_field.defaultFilter ?? []\"\n [autocompleteForceSelection]=\"_field.autocompleteForceSelection ?? true\"\n [showAddOption]=\"_field.showAddOption ?? false\"\n [showEditOption]=\"_field.showEditOption ?? false\"\n [showRemoveOption]=\"_field.showRemoveOption ?? false\"\n [sortableColumnsDisabled]=\"_field.sortableColumnsDisabled ?? []\"\n (onAdd)=\"_field.onAdd ? _field.onAdd() : null\"\n (onEdit)=\"_field.onEdit ? _field.onEdit($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onClearButtonClick)=\"_field.onClearButtonClick ? _field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n\n" }]
|
|
39
|
+
args: [{ standalone: true, imports: [FieldLabelComponent, TooltipDirective, LookupComponent, ReactiveFormsModule], template: "@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple ?? false\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"lookupSuggestions\"\n [dataKey]=\"_field.dataKey\"\n [placeholder]=\"_field.placeholder\"\n [showSearch]=\"_field.showSearch ?? true\"\n [searchFields]=\"_field.searchFields\"\n [searchGridFields]=\"_field.searchGridFields\"\n [searchGridData]=\"gridData\"\n (onLookupRequest)=\"_field.onLookupRequest($event)\"\n (onSearchRequest)=\"_field.onSearchRequest($event)\"\n [lookupDisplayField]=\"_field.lookupDisplayField\"\n [searchTotalRecords]=\"searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: _field.recordsLabel,\n recordLabel: _field.recordLabel,\n emptyFieldLabel: _field.emptyFieldLabel,\n selectLabel: _field.selectLabel,\n cancelLabel: _field.cancelLabel,\n clearLabel: _field.clearLabel,\n filterLabel: _field.filterLabel,\n filterTitle: _field.filterTitle,\n searchTotalRecordsLabel: searchTotalRecordsLabel,\n searchEmptyTitle: _field.searchEmptyTitle,\n searchTitle: _field.searchTitle,\n }\"\n (onSelect)=\"_field.onSelect?.($event)\"\n (onUnselect)=\"_field.onUnselect?.($event)\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupAppendTo]=\"_field.appendTo\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n [defaultFilter]=\"_field.defaultFilter ?? []\"\n [autocompleteForceSelection]=\"_field.autocompleteForceSelection ?? true\"\n [showAddOption]=\"_field.showAddOption ?? false\"\n [showEditOption]=\"_field.showEditOption ?? false\"\n [showRemoveOption]=\"_field.showRemoveOption ?? false\"\n [sortableColumnsDisabled]=\"_field.sortableColumnsDisabled ?? []\"\n (onAdd)=\"_field.onAdd ? _field.onAdd() : null\"\n (onEdit)=\"_field.onEdit ? _field.onEdit($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onClearButtonClick)=\"_field.onClearButtonClick ? _field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n\n" }]
|
|
39
40
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvbG9va3VwL2xvb2t1cC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL2xvb2t1cC9sb29rdXAtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7O0FBUTVGLE1BQU0sT0FBTyxvQkFBb0I7SUFDWixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLFFBQVEsR0FBVSxFQUFFLENBQUM7SUFDckIsa0JBQWtCLEdBQVcsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFVLEVBQUUsQ0FBQztJQUM5Qix1QkFBdUIsR0FBVyxFQUFFLENBQUM7SUFFL0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7SUFDNUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWUsQ0FBQztJQUU1QyxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxhQUFhO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixLQUFLLENBQUMscUJBQXFCO2FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLEtBQUssQ0FBQyxnQkFBZ0I7YUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEQsU0FBUyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBaUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7d0dBMUJRLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG9WQ2pCakMsay9FQXdEQSw0Q0QxQ2MsbUJBQW1CLGtHQUFFLGdCQUFnQiw0TkFBRSxlQUFlLGd1QkFBRSxtQkFBbUI7OzRGQUc1RSxvQkFBb0I7a0JBTGhDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIGlucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IExvb2t1cEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2xvb2t1cC1maWVsZCc7XG5pbXBvcnQgeyBMb29rdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ZpZWxkTGFiZWxDb21wb25lbnQsIFRvb2x0aXBEaXJlY3RpdmUsIExvb2t1cENvbXBvbmVudCwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICdsb29rdXAtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBMb29rdXBGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZywgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByb3RlY3RlZCBncmlkRGF0YTogYW55W10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXIgPSAwO1xuICAgIHByb3RlY3RlZCBsb29rdXBTdWdnZXN0aW9uczogYW55W10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxMb29rdXBGaWVsZENvbmZpZz4oKTtcbiAgICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TG9va3VwRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TG9va3VwRGF0YSgpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkKCk7XG4gICAgICAgIGZpZWxkLnN1Z2dlc3Rpb25zT2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3VnZ2VzdGlvbnMpID0+ICh0aGlzLmxvb2t1cFN1Z2dlc3Rpb25zID0gc3VnZ2VzdGlvbnMpKTtcbiAgICAgICAgZmllbGQuc2VhcmNoT2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLCBkZWxheSgwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgdG90YWxSZWNvcmRzLCBncmlkRGF0YSwgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWwgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBncmlkRGF0YTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRvdGFsUmVjb3JkcyA9IHRvdGFsUmVjb3JkcztcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRvdGFsUmVjb3Jkc0xhYmVsID0gc2VhcmNoVG90YWxSZWNvcmRzTGFiZWwgYXMgc3RyaW5nO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG48cy1maWVsZC1sYWJlbCBbZmllbGRdPVwiX2ZpZWxkXCI+PC9zLWZpZWxkLWxhYmVsPlxuXG48ZGl2XG4gICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgIFtzaG93RGVsYXldPVwiNTAwXCJcbj5cbiAgICA8cy1sb29rdXBcbiAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJfZmllbGQubXVsdGlwbGUgPz8gZmFsc2VcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgIFtsb29rdXBTdWdnZXN0aW9uc109XCJsb29rdXBTdWdnZXN0aW9uc1wiXG4gICAgICAgIFtkYXRhS2V5XT1cIl9maWVsZC5kYXRhS2V5XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtzaG93U2VhcmNoXT1cIl9maWVsZC5zaG93U2VhcmNoID8/IHRydWVcIlxuICAgICAgICBbc2VhcmNoRmllbGRzXT1cIl9maWVsZC5zZWFyY2hGaWVsZHNcIlxuICAgICAgICBbc2VhcmNoR3JpZEZpZWxkc109XCJfZmllbGQuc2VhcmNoR3JpZEZpZWxkc1wiXG4gICAgICAgIFtzZWFyY2hHcmlkRGF0YV09XCJncmlkRGF0YVwiXG4gICAgICAgIChvbkxvb2t1cFJlcXVlc3QpPVwiX2ZpZWxkLm9uTG9va3VwUmVxdWVzdCgkZXZlbnQpXCJcbiAgICAgICAgKG9uU2VhcmNoUmVxdWVzdCk9XCJfZmllbGQub25TZWFyY2hSZXF1ZXN0KCRldmVudClcIlxuICAgICAgICBbbG9va3VwRGlzcGxheUZpZWxkXT1cIl9maWVsZC5sb29rdXBEaXNwbGF5RmllbGRcIlxuICAgICAgICBbc2VhcmNoVG90YWxSZWNvcmRzXT1cInNlYXJjaFRvdGFsUmVjb3Jkc1wiXG4gICAgICAgIFtsYWJlbE9wdGlvbnNdPVwie1xuICAgICAgICAgICAgcmVjb3Jkc0xhYmVsOiBfZmllbGQucmVjb3Jkc0xhYmVsLFxuICAgICAgICAgICAgcmVjb3JkTGFiZWw6IF9maWVsZC5yZWNvcmRMYWJlbCxcbiAgICAgICAgICAgIGVtcHR5RmllbGRMYWJlbDogX2ZpZWxkLmVtcHR5RmllbGRMYWJlbCxcbiAgICAgICAgICAgIHNlbGVjdExhYmVsOiBfZmllbGQuc2VsZWN0TGFiZWwsXG4gICAgICAgICAgICBjYW5jZWxMYWJlbDogX2ZpZWxkLmNhbmNlbExhYmVsLFxuICAgICAgICAgICAgY2xlYXJMYWJlbDogX2ZpZWxkLmNsZWFyTGFiZWwsXG4gICAgICAgICAgICBmaWx0ZXJMYWJlbDogX2ZpZWxkLmZpbHRlckxhYmVsLFxuICAgICAgICAgICAgZmlsdGVyVGl0bGU6IF9maWVsZC5maWx0ZXJUaXRsZSxcbiAgICAgICAgICAgIHNlYXJjaFRvdGFsUmVjb3Jkc0xhYmVsOiBzZWFyY2hUb3RhbFJlY29yZHNMYWJlbCxcbiAgICAgICAgICAgIHNlYXJjaEVtcHR5VGl0bGU6IF9maWVsZC5zZWFyY2hFbXB0eVRpdGxlLFxuICAgICAgICAgICAgc2VhcmNoVGl0bGU6IF9maWVsZC5zZWFyY2hUaXRsZSxcbiAgICAgICAgfVwiXG4gICAgICAgIChvblNlbGVjdCk9XCJfZmllbGQub25TZWxlY3Q/LigkZXZlbnQpXCJcbiAgICAgICAgKG9uVW5zZWxlY3QpPVwiX2ZpZWxkLm9uVW5zZWxlY3Q/LigkZXZlbnQpXCJcbiAgICAgICAgKG9uQ2xlYXIpPVwiX2ZpZWxkLm9uQ2xlYXIgPyBfZmllbGQub25DbGVhcigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvbkJsdXIpPVwiX2ZpZWxkLm9uQmx1ciA/IF9maWVsZC5vbkJsdXIoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICBbbG9va3VwQXBwZW5kVG9dPVwiX2ZpZWxkLmFwcGVuZFRvXCJcbiAgICAgICAgW2xvb2t1cEVtcHR5TWVzc2FnZV09XCJfZmllbGQuZW1wdHlNZXNzYWdlXCJcbiAgICAgICAgW2RlZmF1bHRGaWx0ZXJdPVwiX2ZpZWxkLmRlZmF1bHRGaWx0ZXIgPz8gW11cIlxuICAgICAgICBbYXV0b2NvbXBsZXRlRm9yY2VTZWxlY3Rpb25dPVwiX2ZpZWxkLmF1dG9jb21wbGV0ZUZvcmNlU2VsZWN0aW9uID8/IHRydWVcIlxuICAgICAgICBbc2hvd0FkZE9wdGlvbl09XCJfZmllbGQuc2hvd0FkZE9wdGlvbiA/PyBmYWxzZVwiXG4gICAgICAgIFtzaG93RWRpdE9wdGlvbl09XCJfZmllbGQuc2hvd0VkaXRPcHRpb24gPz8gZmFsc2VcIlxuICAgICAgICBbc2hvd1JlbW92ZU9wdGlvbl09XCJfZmllbGQuc2hvd1JlbW92ZU9wdGlvbiA/PyBmYWxzZVwiXG4gICAgICAgIFtzb3J0YWJsZUNvbHVtbnNEaXNhYmxlZF09XCJfZmllbGQuc29ydGFibGVDb2x1bW5zRGlzYWJsZWQgPz8gW11cIlxuICAgICAgICAob25BZGQpPVwiX2ZpZWxkLm9uQWRkID8gX2ZpZWxkLm9uQWRkKCkgOiBudWxsXCJcbiAgICAgICAgKG9uRWRpdCk9XCJfZmllbGQub25FZGl0ID8gX2ZpZWxkLm9uRWRpdCgkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvblJlbW92ZSk9XCJfZmllbGQub25SZW1vdmUgPyBfZmllbGQub25SZW1vdmUoJGV2ZW50KSA6IG51bGxcIlxuICAgICAgICAob25DbGVhckJ1dHRvbkNsaWNrKT1cIl9maWVsZC5vbkNsZWFyQnV0dG9uQ2xpY2sgPyBfZmllbGQub25DbGVhckJ1dHRvbkNsaWNrKCkgOiBudWxsXCJcbiAgICA+XG4gICAgPC9zLWxvb2t1cD5cbjwvZGl2PlxuXG4iXX0=
|
package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
/* eslint-disable @angular-eslint/no-output-on-prefix */
|
|
2
|
+
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
3
|
import { Component, EventEmitter, inject, input, Output, ViewEncapsulation, } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { ButtonComponent } from '@seniorsistemas/angular-components/button';
|
|
6
|
+
import { LocalizedNumberInputModule } from '@seniorsistemas/angular-components/localized-number-input';
|
|
7
|
+
import { NumberAlignmentOption, NumberInputModule } from '@seniorsistemas/angular-components/number-input';
|
|
8
|
+
import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
|
|
9
|
+
import { InputMaskModule } from 'primeng/inputmask';
|
|
10
|
+
import { InputTextModule } from 'primeng/inputtext';
|
|
4
11
|
import { Subject } from 'rxjs';
|
|
5
12
|
import { first, takeUntil } from 'rxjs/operators';
|
|
13
|
+
import { FieldLabelComponent } from '../../../components/field-label/field-label.component';
|
|
6
14
|
import { FormFieldUtilsService } from '../../../services/form-field-utils.service';
|
|
7
15
|
import * as i0 from "@angular/core";
|
|
8
16
|
import * as i1 from "@seniorsistemas/angular-components/locale";
|
|
9
|
-
import * as i2 from "
|
|
10
|
-
import * as i3 from "@angular/
|
|
11
|
-
import * as i4 from "@angular/
|
|
12
|
-
import * as i5 from "
|
|
17
|
+
import * as i2 from "primeng/inputmask";
|
|
18
|
+
import * as i3 from "@angular/forms";
|
|
19
|
+
import * as i4 from "@seniorsistemas/angular-components/localized-number-input";
|
|
20
|
+
import * as i5 from "@seniorsistemas/angular-components/number-input";
|
|
13
21
|
import * as i6 from "primeng/inputtext";
|
|
14
|
-
import * as i7 from "@seniorsistemas/angular-components/localized-number-input";
|
|
15
|
-
import * as i8 from "@seniorsistemas/angular-components/tooltip";
|
|
16
|
-
import * as i9 from "@seniorsistemas/angular-components/number-input";
|
|
17
|
-
import * as i10 from "../../../components/field-label/field-label.component";
|
|
18
22
|
export class NumberFieldComponent {
|
|
19
23
|
localeService;
|
|
20
24
|
elementRef;
|
|
@@ -99,11 +103,22 @@ export class NumberFieldComponent {
|
|
|
99
103
|
this.inputRef = input;
|
|
100
104
|
}
|
|
101
105
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberFieldComponent, deps: [{ token: i1.LocaleService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumberFieldComponent, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onInput: "onInput", onFocus: "onFocus", onComplete: "onComplete" }, ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!_field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"_field.mask ? fieldUtils.getFieldPropertyMask(_field.mask) : null\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if (\n _field.type === 'legacyNumber' && _field.localizedNumber && _field.alignTo === numberAlignmentOption.LEFT\n ) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n {{ _field.rightAddon.label }}\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? numberAlignmentOption.LEFT\"\n ;\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sLocalizedNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n\n", styles: ["s-number-field.ng-dirty.ng-invalid .ui-inputtext{border-color:#c13018}s-number-field.ng-dirty.ng-invalid .ui-inputtext:hover{border-color:highlight(#c13018)}.addon-button{border:1px solid #c1c1cc}.addon-button s-button button,.addon-button s-button .s-button-with-text{height:100%;min-width:40px}.addon-button--left{border-radius:5px 0 0 5px;border-right:none}.addon-button--left s-button button{border-bottom-right-radius:0;border-top-right-radius:0}.addon-button--right{border-left:none;border-radius:0 5px 5px 0}.addon-button--right s-button button{border-bottom-left-radius:0;border-top-left-radius:0}\n"], dependencies: [{ kind: "component", type:
|
|
106
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumberFieldComponent, isStandalone: true, selector: "ng-component", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onInput: "onInput", onFocus: "onFocus", onComplete: "onComplete" }, ngImport: i0, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!_field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"_field.mask ? fieldUtils.getFieldPropertyMask(_field.mask) : null\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if (\n _field.type === 'legacyNumber' && _field.localizedNumber && _field.alignTo === numberAlignmentOption.LEFT\n ) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n {{ _field.rightAddon.label }}\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? numberAlignmentOption.LEFT\"\n ;\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sLocalizedNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n\n", styles: ["s-number-field.ng-dirty.ng-invalid .ui-inputtext{border-color:#c13018}s-number-field.ng-dirty.ng-invalid .ui-inputtext:hover{border-color:highlight(#c13018)}.addon-button{border:1px solid #c1c1cc}.addon-button s-button button,.addon-button s-button .s-button-with-text{height:100%;min-width:40px}.addon-button--left{border-radius:5px 0 0 5px;border-right:none}.addon-button--left s-button button{border-bottom-right-radius:0;border-top-right-radius:0}.addon-button--right{border-left:none;border-radius:0 5px 5px 0}.addon-button--right s-button button{border-bottom-left-radius:0;border-top-left-radius:0}\n"], dependencies: [{ kind: "component", type: FieldLabelComponent, selector: "s-field-label", inputs: ["field", "fieldContainerRef"] }, { kind: "ngmodule", type: InputMaskModule }, { kind: "component", type: i2.InputMask, selector: "p-inputmask, p-inputMask, p-input-mask", inputs: ["type", "slotChar", "autoClear", "showClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "variant", "ariaLabel", "ariaLabelledBy", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autofocus", "autoFocus", "autocomplete", "keepBuffer", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown", "onClear"] }, { kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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"], outputs: ["clicked"] }, { kind: "ngmodule", type: LocalizedNumberInputModule }, { kind: "directive", type: i4.LocalizedNumberInputDirective, selector: "input[sLocalizedNumberInput]", inputs: ["decimalSeparator", "thousandsSeparator", "precision"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NumberInputModule }, { kind: "directive", type: i5.NumberInputDirective, selector: "input[sNumberInput]", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "placeholder"], outputs: ["pasteRejected"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
103
107
|
}
|
|
104
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberFieldComponent, decorators: [{
|
|
105
109
|
type: Component,
|
|
106
|
-
args: [{
|
|
110
|
+
args: [{ standalone: true, imports: [
|
|
111
|
+
FieldLabelComponent,
|
|
112
|
+
InputMaskModule,
|
|
113
|
+
TooltipDirective,
|
|
114
|
+
ReactiveFormsModule,
|
|
115
|
+
ButtonComponent,
|
|
116
|
+
LocalizedNumberInputModule,
|
|
117
|
+
NgClass,
|
|
118
|
+
NumberInputModule,
|
|
119
|
+
NgTemplateOutlet,
|
|
120
|
+
InputTextModule,
|
|
121
|
+
], encapsulation: ViewEncapsulation.None, template: "@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!_field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"_field.mask ? fieldUtils.getFieldPropertyMask(_field.mask) : null\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if (\n _field.type === 'legacyNumber' && _field.localizedNumber && _field.alignTo === numberAlignmentOption.LEFT\n ) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n {{ _field.rightAddon.label }}\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? numberAlignmentOption.LEFT\"\n ;\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sLocalizedNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n\n", styles: ["s-number-field.ng-dirty.ng-invalid .ui-inputtext{border-color:#c13018}s-number-field.ng-dirty.ng-invalid .ui-inputtext:hover{border-color:highlight(#c13018)}.addon-button{border:1px solid #c1c1cc}.addon-button s-button button,.addon-button s-button .s-button-with-text{height:100%;min-width:40px}.addon-button--left{border-radius:5px 0 0 5px;border-right:none}.addon-button--left s-button button{border-bottom-right-radius:0;border-top-right-radius:0}.addon-button--right{border-left:none;border-radius:0 5px 5px 0}.addon-button--right s-button button{border-bottom-left-radius:0;border-top-left-radius:0}\n"] }]
|
|
107
122
|
}], ctorParameters: () => [{ type: i1.LocaleService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { onInput: [{
|
|
108
123
|
type: Output
|
|
109
124
|
}], onFocus: [{
|
|
@@ -111,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
111
126
|
}], onComplete: [{
|
|
112
127
|
type: Output
|
|
113
128
|
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL251bWJlci9udW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7OztBQVNuRixNQUFNLE9BQU8sb0JBQW9CO0lBa0JSO0lBQ0E7SUFDQTtJQW5CckIsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7SUFDNUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWUsQ0FBQztJQUU1QyxVQUFVLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFHcEMsT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhELE9BQU8sR0FBc0IsSUFBSSxZ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LGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7cUJBQ3RFLENBQUM7Z0JBQ04sQ0FBQztnQkFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxDQUFDO29CQUM3QyxLQUFLLENBQUMsbUJBQW1CLEdBQUc7d0JBQ3hCLEdBQUcsS0FBSyxDQUFDLG1CQUFtQjt3QkFDNUIsY0FBYyxFQUFFLElBQUk7cUJBQ3ZCLENBQUM7Z0JBQ04sQ0FBQztZQUNMLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ1IsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixJQUFJO2dCQUN0RCxrQkFBa0IsRUFBRSxHQUFHO2dCQUN2QixnQkFBZ0IsRUFBRSxHQUFHO2dCQUNyQixjQUFjLEVBQUUsSUFBSTthQUN2QixDQUFDO1NBQ1QsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLFdBQVc7UUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQzt3R0FuR1Esb0JBQW9COzRGQUFwQixvQkFBb0IsK1lDNUJqQyx3ektBeUlBOzs0RkQ3R2Esb0JBQW9CO2tCQUxoQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUk7MklBUzlCLE9BQU87c0JBRGIsTUFBTTtnQkFHQSxPQUFPO3NCQURiLE1BQU07Z0JBR0EsVUFBVTtzQkFEaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsZSc7XG5pbXBvcnQgeyBOdW1iZXJBbGlnbm1lbnRPcHRpb24gfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL251bWJlci1pbnB1dCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZC11dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE51bWJlckZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL251bWJlci1maWVsZCc7XG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLWZpZWxkLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9udW1iZXItZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBCYXNlRmllbGRDb21wb25lbnRDb25maWcsIEFmdGVyVmlld0luaXQge1xuICAgIGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8TnVtYmVyRmllbGRDb25maWc+KCk7XG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIGZpZWxkVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbklucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGlucHV0UmVmOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMub25Mb2NhbGVTZXJ2aWNlKCk7XG5cbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKCkub25Gb2N1cykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5vbkZvY3VzPy4oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uSW5wdXQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZCgpLm9uSW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkub25JbnB1dD8uKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5vbkNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm9uQ29tcGxldGU/LihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRSZWYoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG51bWJlckFsaWdubWVudE9wdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlckFsaWdubWVudE9wdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTG9jYWxlU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkKCk7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICdSJCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID8/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICdSJCcsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbnB1dFJlZigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICB0aGlzLmlucHV0UmVmID0gaW5wdXQ7XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKSB7XG4gICAgPHMtZmllbGQtbGFiZWxcbiAgICAgICAgW2ZpZWxkXT1cIl9maWVsZFwiXG4gICAgICAgIFtmaWVsZENvbnRhaW5lclJlZl09XCJpbnB1dFJlZi5uYXRpdmVFbGVtZW50XCJcbiAgICAvPlxufVxuXG5AbGV0IGhhc01hc2sgPSAhIV9maWVsZC5tYXNrO1xuQGlmIChoYXNNYXNrKSB7XG4gICAgPHAtaW5wdXRNYXNrXG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpbnB1dElkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgW21hc2tdPVwiX2ZpZWxkLm1hc2sgPyBmaWVsZFV0aWxzLmdldEZpZWxkUHJvcGVydHlNYXNrKF9maWVsZC5tYXNrKSA6IG51bGxcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBzdHlsZUNsYXNzPVwibW91c2V0cmFwXCJcbiAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29tcGxldGUpPVwib25Db21wbGV0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAob25JbnB1dCk9XCJvbklucHV0Lm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICA+XG4gICAgPC9wLWlucHV0TWFzaz5cbn0gQGVsc2UgaWYgKCFoYXNNYXNrKSB7XG4gICAgPGRpdiBjbGFzcz1cInVpLWlucHV0Z3JvdXBcIj5cbiAgICAgICAgQGlmIChfZmllbGQubGVmdEFkZG9uKSB7XG4gICAgICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24uY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZG9uLWJ1dHRvbiBhZGRvbi1idXR0b24tLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX2ZpZWxkLmxlZnRBZGRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cIl9maWVsZC5sZWZ0QWRkb24uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJpb3JpdHldPVwiX2ZpZWxkLmxlZnRBZGRvbi5wcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRVdGlscy5maWVsZFByb3BlcnR5SXNEaXNhYmxlZChfZmllbGQubGVmdEFkZG9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJfZmllbGQubGVmdEFkZG9uLmNhbGxiYWNrKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghX2ZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IF9maWVsZC5sZWZ0QWRkb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCFfZmllbGQubGVmdEFkZG9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJfZmllbGQubGVmdEFkZG9uLmljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgX2ZpZWxkLnR5cGUgPT09ICdsZWdhY3lOdW1iZXInICYmIF9maWVsZC5sb2NhbGl6ZWROdW1iZXIgJiYgX2ZpZWxkLmFsaWduVG8gPT09IG51bWJlckFsaWdubWVudE9wdGlvbi5MRUZUXG4gICAgICAgICkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvY2FsaXplZE51bWJlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChfZmllbGQucmlnaHRBZGRvbikge1xuICAgICAgICAgICAgQGlmIChfZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkb24tYnV0dG9uIGFkZG9uLWJ1dHRvbi0tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX2ZpZWxkLnJpZ2h0QWRkb24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25DbGFzc109XCJfZmllbGQucmlnaHRBZGRvbi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJfZmllbGQucmlnaHRBZGRvbi5wcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRVdGlscy5maWVsZFByb3BlcnR5SXNEaXNhYmxlZChfZmllbGQucmlnaHRBZGRvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiX2ZpZWxkLnJpZ2h0QWRkb24uY2FsbGJhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9zLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFfZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9maWVsZC5yaWdodEFkZG9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBfZmllbGQucmlnaHRBZGRvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghX2ZpZWxkLnJpZ2h0QWRkb24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIl9maWVsZC5yaWdodEFkZG9uLmljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNpbnB1dD5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0UmVmXG4gICAgICAgIFtpZF09XCJfZmllbGQuaWQgfHwgX2ZpZWxkLm5hbWVcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgc051bWJlcklucHV0XG4gICAgICAgIFtwcmVjaXNpb25dPVwiZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5wcmVjaXNpb24pID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5wcmVjaXNpb24pIDogX2ZpZWxkLnByZWNpc2lvblwiXG4gICAgICAgIFtzY2FsZV09XCJmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnNjYWxlKSA/IGZpZWxkVXRpbHMudHJpZ2dlcihfZmllbGQuc2NhbGUpIDogX2ZpZWxkLnNjYWxlXCJcbiAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3JcIlxuICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3JcIlxuICAgICAgICBbYWxpZ25Ub109XCJfZmllbGQuYWxpZ25UbyA/PyBudW1iZXJBbGlnbm1lbnRPcHRpb24uTEVGVFwiXG4gICAgICAgIDtcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcbiAgICAgICAgcElucHV0VGV4dFxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIl9maWVsZC5icm93c2VyQXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ21vdXNldHJhcCdcIlxuICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzLm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbG9jYWxpemVkTnVtYmVyPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxuICAgICAgICBzTG9jYWxpemVkTnVtYmVySW5wdXRcbiAgICAgICAgW3ByZWNpc2lvbl09XCJmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnByZWNpc2lvbikgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnByZWNpc2lvbikgOiBfZmllbGQucHJlY2lzaW9uXCJcbiAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3JcIlxuICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3JcIlxuICAgICAgICBbc1Rvb2x0aXBdPVwiX2ZpZWxkLnRvb2x0aXBcIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiX2ZpZWxkLmJyb3dzZXJBdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxuICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXG4gICAgICAgIChibHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgIC8+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vZm9ybS1maWVsZC9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL2Zvcm0tZmllbGQvZmllbGRzL251bWJlci9udW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBR0gsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMv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O0lBQzFCLENBQUM7d0dBbkdRLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG1hQ2hEakMsd3pLQXlJQSx5cEJEeEdRLG1CQUFtQixpR0FDbkIsZUFBZSxzaUJBQ2YsZ0JBQWdCLDJOQUNoQixtQkFBbUIsMGtCQUNuQixlQUFlLHFUQUNmLDBCQUEwQix5TUFDMUIsT0FBTyxtRkFDUCxpQkFBaUIsdVFBQ2pCLGdCQUFnQixtSkFDaEIsZUFBZTs7NEZBTVYsb0JBQW9CO2tCQWxCaEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1A7d0JBQ0wsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsT0FBTzt3QkFDUCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDbEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTsySUFTOUIsT0FBTztzQkFEYixNQUFNO2dCQUdBLE9BQU87c0JBRGIsTUFBTTtnQkFHQSxVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXggKi9cbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9sb2NhbGUnO1xuaW1wb3J0IHsgTG9jYWxpemVkTnVtYmVySW5wdXRNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvY2FsaXplZC1udW1iZXItaW5wdXQnO1xuaW1wb3J0IHsgTnVtYmVyQWxpZ25tZW50T3B0aW9uLCBOdW1iZXJJbnB1dE1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbnVtYmVyLWlucHV0JztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgSW5wdXRNYXNrTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG1hc2snO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpZWxkTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTnVtYmVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucy9maWVsZHMvbnVtYmVyLWZpZWxkJztcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uL2Jhc2UtZmllbGQtY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZpZWxkTGFiZWxDb21wb25lbnQsXG4gICAgICAgIElucHV0TWFza01vZHVsZSxcbiAgICAgICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBMb2NhbGl6ZWROdW1iZXJJbnB1dE1vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgTnVtYmVySW5wdXRNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnbnVtYmVyLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9udW1iZXItZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBCYXNlRmllbGRDb21wb25lbnRDb25maWcsIEFmdGVyVmlld0luaXQge1xuICAgIGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8TnVtYmVyRmllbGRDb25maWc+KCk7XG4gICAgZm9ybUNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbD4oKTtcblxuICAgIGZpZWxkVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbklucHV0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGlucHV0UmVmOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMub25Mb2NhbGVTZXJ2aWNlKCk7XG5cbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpZWxkKCkub25Gb2N1cykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQoKS5vbkZvY3VzPy4oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9uSW5wdXQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZCgpLm9uSW5wdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkKCkub25JbnB1dD8uKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5vbkNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZCgpLm9uQ29tcGxldGU/LihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRSZWYoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG51bWJlckFsaWdubWVudE9wdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlckFsaWdubWVudE9wdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTG9jYWxlU2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkKCk7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldExvY2FsZSgpXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0RGVjaW1hbFNlcGFyYXRvcigpID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghZmllbGQubnVtYmVyTG9jYWxlT3B0aW9ucz8udGhvdXNhbmRzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmN1cnJlbmN5U3ltYm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICdSJCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnMgPSBmaWVsZC5udW1iZXJMb2NhbGVPcHRpb25zID8/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogJy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lTeW1ib2w6ICdSJCcsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbnB1dFJlZigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICB0aGlzLmlucHV0UmVmID0gaW5wdXQ7XG4gICAgfVxufVxuXG4iLCJAbGV0IF9maWVsZCA9IGZpZWxkKCk7XG5AaWYgKGlucHV0UmVmKSB7XG4gICAgPHMtZmllbGQtbGFiZWxcbiAgICAgICAgW2ZpZWxkXT1cIl9maWVsZFwiXG4gICAgICAgIFtmaWVsZENvbnRhaW5lclJlZl09XCJpbnB1dFJlZi5uYXRpdmVFbGVtZW50XCJcbiAgICAvPlxufVxuXG5AbGV0IGhhc01hc2sgPSAhIV9maWVsZC5tYXNrO1xuQGlmIChoYXNNYXNrKSB7XG4gICAgPHAtaW5wdXRNYXNrXG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpbnB1dElkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgW21hc2tdPVwiX2ZpZWxkLm1hc2sgPyBmaWVsZFV0aWxzLmdldEZpZWxkUHJvcGVydHlNYXNrKF9maWVsZC5tYXNrKSA6IG51bGxcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgc2xvdENoYXI9XCJfXCJcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBzdHlsZUNsYXNzPVwibW91c2V0cmFwXCJcbiAgICAgICAgKG9uQmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29tcGxldGUpPVwib25Db21wbGV0ZS5uZXh0KCRldmVudClcIlxuICAgICAgICAob25JbnB1dCk9XCJvbklucHV0Lm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICA+XG4gICAgPC9wLWlucHV0TWFzaz5cbn0gQGVsc2UgaWYgKCFoYXNNYXNrKSB7XG4gICAgPGRpdiBjbGFzcz1cInVpLWlucHV0Z3JvdXBcIj5cbiAgICAgICAgQGlmIChfZmllbGQubGVmdEFkZG9uKSB7XG4gICAgICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24uY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZG9uLWJ1dHRvbiBhZGRvbi1idXR0b24tLWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX2ZpZWxkLmxlZnRBZGRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cIl9maWVsZC5sZWZ0QWRkb24uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJpb3JpdHldPVwiX2ZpZWxkLmxlZnRBZGRvbi5wcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRVdGlscy5maWVsZFByb3BlcnR5SXNEaXNhYmxlZChfZmllbGQubGVmdEFkZG9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJfZmllbGQubGVmdEFkZG9uLmNhbGxiYWNrKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvcy1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghX2ZpZWxkLmxlZnRBZGRvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9maWVsZC5sZWZ0QWRkb24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IF9maWVsZC5sZWZ0QWRkb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCFfZmllbGQubGVmdEFkZG9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJfZmllbGQubGVmdEFkZG9uLmljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgX2ZpZWxkLnR5cGUgPT09ICdsZWdhY3lOdW1iZXInICYmIF9maWVsZC5sb2NhbGl6ZWROdW1iZXIgJiYgX2ZpZWxkLmFsaWduVG8gPT09IG51bWJlckFsaWdubWVudE9wdGlvbi5MRUZUXG4gICAgICAgICkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvY2FsaXplZE51bWJlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChfZmllbGQucmlnaHRBZGRvbikge1xuICAgICAgICAgICAgQGlmIChfZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWRkb24tYnV0dG9uIGFkZG9uLWJ1dHRvbi0tcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX2ZpZWxkLnJpZ2h0QWRkb24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25DbGFzc109XCJfZmllbGQucmlnaHRBZGRvbi5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJfZmllbGQucmlnaHRBZGRvbi5wcmlvcml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGRVdGlscy5maWVsZFByb3BlcnR5SXNEaXNhYmxlZChfZmllbGQucmlnaHRBZGRvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiX2ZpZWxkLnJpZ2h0QWRkb24uY2FsbGJhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9zLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCFfZmllbGQucmlnaHRBZGRvbi5jYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktaW5wdXRncm91cC1hZGRvblwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKF9maWVsZC5yaWdodEFkZG9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBfZmllbGQucmlnaHRBZGRvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghX2ZpZWxkLnJpZ2h0QWRkb24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIl9maWVsZC5yaWdodEFkZG9uLmljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNpbnB1dD5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0UmVmXG4gICAgICAgIFtpZF09XCJfZmllbGQuaWQgfHwgX2ZpZWxkLm5hbWVcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtuYW1lXT1cIl9maWVsZC5uYW1lXCJcbiAgICAgICAgc051bWJlcklucHV0XG4gICAgICAgIFtwcmVjaXNpb25dPVwiZmllbGRVdGlscy5pc0Z1bmN0aW9uKF9maWVsZC5wcmVjaXNpb24pID8gZmllbGRVdGlscy50cmlnZ2VyKF9maWVsZC5wcmVjaXNpb24pIDogX2ZpZWxkLnByZWNpc2lvblwiXG4gICAgICAgIFtzY2FsZV09XCJmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnNjYWxlKSA/IGZpZWxkVXRpbHMudHJpZ2dlcihfZmllbGQuc2NhbGUpIDogX2ZpZWxkLnNjYWxlXCJcbiAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3JcIlxuICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3JcIlxuICAgICAgICBbYWxpZ25Ub109XCJfZmllbGQuYWxpZ25UbyA/PyBudW1iZXJBbGlnbm1lbnRPcHRpb24uTEVGVFwiXG4gICAgICAgIDtcbiAgICAgICAgW3NUb29sdGlwXT1cIl9maWVsZC50b29sdGlwXCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIl9maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFtzaG93RGVsYXldPVwiNTAwXCJcbiAgICAgICAgcElucHV0VGV4dFxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIl9maWVsZC5icm93c2VyQXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ21vdXNldHJhcCdcIlxuICAgICAgICAoYmx1cik9XCJfZmllbGQub25CbHVyID8gX2ZpZWxkLm9uQmx1cigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzLm5leHQoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbCgpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbG9jYWxpemVkTnVtYmVyPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgW2lkXT1cIl9maWVsZC5pZCB8fCBfZmllbGQubmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW25hbWVdPVwiX2ZpZWxkLm5hbWVcIlxuICAgICAgICBzTG9jYWxpemVkTnVtYmVySW5wdXRcbiAgICAgICAgW3ByZWNpc2lvbl09XCJmaWVsZFV0aWxzLmlzRnVuY3Rpb24oX2ZpZWxkLnByZWNpc2lvbikgPyBmaWVsZFV0aWxzLnRyaWdnZXIoX2ZpZWxkLnByZWNpc2lvbikgOiBfZmllbGQucHJlY2lzaW9uXCJcbiAgICAgICAgW2RlY2ltYWxTZXBhcmF0b3JdPVwiX2ZpZWxkLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3JcIlxuICAgICAgICBbdGhvdXNhbmRzU2VwYXJhdG9yXT1cIl9maWVsZC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3JcIlxuICAgICAgICBbc1Rvb2x0aXBdPVwiX2ZpZWxkLnRvb2x0aXBcIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiX2ZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3Nob3dEZWxheV09XCI1MDBcIlxuICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiX2ZpZWxkLmJyb3dzZXJBdXRvY29tcGxldGUgPyAnb24nIDogJ29mZidcIlxuICAgICAgICBbbmdDbGFzc109XCInbW91c2V0cmFwJ1wiXG4gICAgICAgIChibHVyKT1cIl9maWVsZC5vbkJsdXIgPyBfZmllbGQub25CbHVyKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMubmV4dCgkZXZlbnQpXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sKClcIlxuICAgIC8+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|