ets-fe-ng-sdk 17.0.308 → 17.0.310
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/esm2022/lib/Reusables/reusable-comps/find-item/find-item.component.mjs +2 -2
- package/esm2022/lib/Shared/components/btn/btn.model.mjs +1 -1
- package/esm2022/lib/Shared/components/btn/btn.service.mjs +168 -164
- package/esm2022/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +2 -2
- package/esm2022/lib/Shared/components/file-upload/file-upload.component.mjs +17 -5
- package/esm2022/lib/Shared/components/form-generator/form-generator.base.component.mjs +1 -1
- package/esm2022/lib/Shared/components/form-generator/form-generator.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +1 -1
- package/esm2022/lib/Shared/components/input/input-base.component.mjs +6 -2
- package/esm2022/lib/Shared/components/input/input-basic.component.mjs +3 -7
- package/esm2022/lib/Shared/components/input/input-control.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input-td-rf.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs +6 -10
- package/esm2022/lib/Shared/components/input-table/input-table.component.mjs +2 -2
- package/esm2022/lib/Shared/components/table-input/table-input-row/table-input-row.component.mjs +2 -2
- package/esm2022/lib/Shared/components/table-plain/table-plain.component.mjs +2 -2
- package/esm2022/lib/Shared/components/webcam-media/webcam-media.component.mjs +266 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ets-fe-ng-sdk.mjs +548 -283
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Services/utility.service.d.ts +1 -1
- package/lib/Shared/components/btn/btn.component.d.ts +1 -1
- package/lib/Shared/components/btn/btn.model.d.ts +1 -1
- package/lib/Shared/components/btn/btn.service.d.ts +7 -0
- package/lib/Shared/components/file-upload/file-upload.component.d.ts +9 -3
- package/lib/Shared/components/form-generator/form-generator.base.component.d.ts +2 -0
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/components/input/input-base.component.d.ts +3 -1
- package/lib/Shared/components/input/input-basic.component.d.ts +1 -3
- package/lib/Shared/components/input/validation-message/validation-message.component.d.ts +3 -3
- package/lib/Shared/components/webcam-media/webcam-media.component.d.ts +88 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -57,11 +57,11 @@ export class InputComponent extends InputBase {
|
|
|
57
57
|
console.log(this.form);
|
|
58
58
|
}
|
|
59
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: InputComponent, isStandalone: true, selector: "app-input-old", inputs: { _inp: ["input", "_inp"], accept: "accept", autocomplete: "autocomplete", endLabel: "endLabel", endLabelTooltip: "endLabelTooltip", files: "files", hint: "hint", id: "id", inpCl: "inpCl", labelLink: "labelLink", lblCl: "lblCl", light: "light", loading: "loading", multiple: "multiple", optionsFunc: "optionsFunc", showEmptyOption: "showEmptyOption", showLabel: "showLabel", showValidation: "showValidation", showValidationMsg: "showValidationMsg", showValidationIcon: "showValidationIcon", small: "small", stacked: "stacked", theme: "theme", xsmall: "xsmall", _value: ["value", "_value"] }, providers: InputProviders, usesInheritance: true, ngImport: i0, template: "<div class=\" custom-input align-items-center {{ typeSignal() }} gx-1\" [formGroup]=\"formSignal()\" [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"formSignal()\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [ngClass]=\"{ 'w-100': stackedSignal() }\"\n [inlineHint]=\"inlineHint\"\n [showRequiredTag]=\"showRequiredTagSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\"></app-input-label>\n }\n <div class=\"d-flex align-items-center {{ inputContClassSignal() }} \">\n <div\n class=\"position-relative d-flex input-content w-100\"\n [ngClass]=\"{\n 'ms-2': !stackedSignal(),\n showValidationIcon: showValidationSignal() || showValidationIconSignal(),\n dontFormatAsInput: dontFormatAsInputSignal()\n }\">\n <ng-template #date>\n <date-input\n #dateInput\n [debug]=\"debug()\"\n [readonly]=\"readonlySignal()\"\n [id]=\"idSignal()\"\n class=\"w-100\"\n [type]=\"typeSignal()\"\n (valueChanged)=\"dateChanged($event)\"\n [value]=\"valueSignal()\"\n [inputClass]=\"inputClassSignal()\"\n [disabled]=\"disabledSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [valid]=\"validSignal()\"\n [invalid]=\"invalidSignal()\"\n [showValidation]=\"showValidationSignal()\" />\n </ng-template>\n @switch (typeSignal()) {\n <!-- DATE -->\n @case ('date') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- DATETIME-LOCAL -->\n @case ('datetime-local') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <input\n type=\"checkbox\"\n [id]=\"idSignal()\"\n [formControlName]=\"nameStrSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-debug]=\"debug()\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n placeholder=\"{{ placeholder() }}\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [checked]=\"checkedSignal()\"\n [attr.indeterminate]=\"indeterminate\" />\n }\n @case ('checkedbox') {\n <input\n type=\"checkbox\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n [checked]=\"checkedSignal()\"\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n }\n <!-- FILE -->\n @case ('file') {\n <input type=\"file\" [id]=\"idSignal()\" [class]=\"inputClassSignal()\" (change)=\"upload($event)\" [accept]=\"accept\" [attr.multiple]=\"multiple\" />\n }\n <!-- FILE BUTTON-->\n @case ('fileButton') {\n <input\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [attr.multiple]=\"multiple\"\n hidden\n #file />\n <app-btn\n class=\"w-100\"\n (mclick)=\"file.click()\"\n icon=\"upload\"\n [type]=\"files ? 'primary' : 'secondary'\"\n text=\"{{ placeholder() || labelSignal() || 'Upload' }}\"></app-btn>\n }\n <!-- SELECT -->\n @case ('select') {\n <!-- [attr.disabled]=\"disabled\" -->\n <mat-select\n #matSelectTag\n placeholder=\"{{ placeholder() }}\"\n formControlName=\"{{ nameStrSignal() }}\"\n [id]=\"idSignal()\"\n class=\"{{ cls() }} {{ inputClassSignal() }}\"\n [required]=\"requiredSignal()\"\n (selectionChange)=\"change({ target: $event })\">\n @if (showEmptyOptionSignal()) {\n <mat-option selected [value]=\"null\" class=\"empty-option\">\n {{ placeholder() }}\n </mat-option>\n }\n @for (item of options(); track iS.trackByValue($index, item)) {\n <mat-option [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"item.label\" [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\" #ele>\n {{ item.label | appTranslate: translateOptions() | async }}\n </div>\n </mat-option>\n }\n </mat-select>\n }\n <!-- TEXTAREA -->\n @case ('textarea') {\n <textarea\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [rows]=\"textareaRowsSignal()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"></textarea>\n }\n <!-- Radio -->\n @case ('radio') {\n <input\n type=\"radio\"\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [value]=\"valueSignal()\" />\n }\n <!-- Viewer -->\n @case ('viewer') {\n <input\n type=\"text\"\n [id]=\"idSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [class]=\"inputClassSignal()\"\n [readonly]=\"true\"\n [value]=\"valueSignal()\" />\n }\n <!-- PASSWORD -->\n @case ('password') {\n <input\n type=\"{{ showPasswordSignal() ? 'text' : 'password' }}\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [value]=\"valueSignal()\" />\n <div class=\"password-icons pointer\" (click)=\"showPasswordSignal.set(!showPasswordSignal())\">\n @if (showPasswordSignal()) {\n <i class=\"fa fa-eye-slash\"></i>\n } @else {\n <i class=\"fa fa-eye\"></i>\n }\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div [class]=\"inputClassSignal()\" [ngClass]=\"{ 'has-prefix': !!prefixSignal(), disabled: readonlySignal() || disabledSignal() }\">\n @if (prefixSignal()) {\n <div class=\"prefix-val\" #prefixVal>\n {{ prefixSignal() }}\n </div>\n }\n <input\n [type]=\"typeSignal()\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [id]=\"idSignal()\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-otype]=\"oTypeSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n </div>\n }\n }\n\n @if (dirtySignal() && (showValidationSignal() || showValidationIconSignal())) {\n <div [ngClass]=\"{ valid: validSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-check\"></i>\n </div>\n <div [ngClass]=\"{ pending: pendingSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div [ngClass]=\"{ invalid: invalidSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-times\"></i>\n </div>\n }\n <!-- <mat-form-field class=\"input\" appearance=\"fill\">\n <input type=\"{{inp.type}}\" matInput [formControl]=\"inp.formControl\">\n <mat-error *ngFor=\"let validation of inp.vms\">\n <ng-container *ngIf=\"validation|validator:inp.formControl:inp.formControl?.value\">\n {{validation.message|validationMsg:inp.prefix:inp.suffix}}\n </ng-container>\n </mat-error>\n </mat-form-field> -->\n </div>\n @if (endLabelSignal()) {\n <div class=\"col-auto text-primary ms-2\" (click)=\"iS.log(formSignal())\" [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message [label]=\"labelSignal()\" [control]=\"controlSignal()\" />\n}\n", styles: [".bordercheck{border:1px solid #4ef580!important;outline:0}.borderuncheck{border:1px solid red!important;outline:0}.light{font-weight:500}.validity-icon{display:none;position:absolute;top:0;left:unset;right:20px;height:100%;align-items:center}.select .validity-icon{right:30px}.valid{display:flex!important;color:#4ef580}.pending{display:flex!important;color:#ff4500}.invalid{display:flex!important;color:red}.inputform{height:41px}.invalid-label{color:red!important}input[type=checkbox]:checked{position:relative}.showValidationIcon .form-control:not(input[type=checkbox].form-control),.showValidationIcon select.form-control:not(input[type=checkbox].form-control){padding:10px 36px 10px 12px}.password-icons{position:absolute;right:20px;top:17%}[disabled]{cursor:default}.link{cursor:pointer}.option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: DateInputComponent, selector: "date-input", inputs: ["value", "inpCl", "cls", "inputClass", "valid", "max", "min", "id", "invalid", "disabled", "debug", "readonly", "type", "showValidation"], outputs: ["valueChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: i2.BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "ngmodule", type: i3.FormsModule }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i4.InputFormatDirective, selector: "input:not([matInput]):not([noformat])", inputs: ["value"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.InputLabelComponent, selector: "app-input-label", inputs: ["colored", "form", "hint", "inlineHint", "id", "invalidCheckbox", "isRequired", "label", "labelLink", "lblCl", "light", "mini", "showLabel", "showRequiredTag", "small", "stacked", "theme", "xsmall"] }, { kind: "ngmodule", type: i6.MatDatepickerModule }, { kind: "ngmodule", type: i7.MatFormFieldModule }, { kind: "ngmodule", type: i8.MatInputModule }, { kind: "ngmodule", type: i9.MatNativeDateModule }, { kind: "ngmodule", type: i9.MatOptionModule }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: i10.MatSelectModule }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: i11.MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: i3.ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i12.TranslatePipe, name: "appTranslate" }, { kind: "component", type: i13.ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"] }] }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: InputComponent, isStandalone: true, selector: "app-input-old", inputs: { _inp: ["input", "_inp"], accept: "accept", autocomplete: "autocomplete", endLabel: "endLabel", endLabelTooltip: "endLabelTooltip", files: "files", hint: "hint", id: "id", inpCl: "inpCl", labelLink: "labelLink", lblCl: "lblCl", light: "light", loading: "loading", multiple: "multiple", optionsFunc: "optionsFunc", showEmptyOption: "showEmptyOption", showLabel: "showLabel", showValidation: "showValidation", showValidationMsg: "showValidationMsg", showValidationIcon: "showValidationIcon", small: "small", stacked: "stacked", theme: "theme", xsmall: "xsmall", _value: ["value", "_value"] }, providers: InputProviders, usesInheritance: true, ngImport: i0, template: "<div class=\" custom-input align-items-center {{ typeSignal() }} gx-1\" [formGroup]=\"formSignal()\" [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"formSignal()\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [ngClass]=\"{ 'w-100': stackedSignal() }\"\n [inlineHint]=\"inlineHint\"\n [showRequiredTag]=\"showRequiredTagSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\"></app-input-label>\n }\n <div class=\"d-flex align-items-center {{ inputContClassSignal() }} \">\n <div\n class=\"position-relative d-flex input-content w-100\"\n [ngClass]=\"{\n 'ms-2': !stackedSignal(),\n showValidationIcon: showValidationSignal() || showValidationIconSignal(),\n dontFormatAsInput: dontFormatAsInputSignal()\n }\">\n <ng-template #date>\n <date-input\n #dateInput\n [debug]=\"debug()\"\n [readonly]=\"readonlySignal()\"\n [id]=\"idSignal()\"\n class=\"w-100\"\n [type]=\"typeSignal()\"\n (valueChanged)=\"dateChanged($event)\"\n [value]=\"valueSignal()\"\n [inputClass]=\"inputClassSignal()\"\n [disabled]=\"disabledSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [valid]=\"validSignal()\"\n [invalid]=\"invalidSignal()\"\n [showValidation]=\"showValidationSignal()\" />\n </ng-template>\n @switch (typeSignal()) {\n <!-- DATE -->\n @case ('date') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- DATETIME-LOCAL -->\n @case ('datetime-local') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <input\n type=\"checkbox\"\n [id]=\"idSignal()\"\n [formControlName]=\"nameStrSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-debug]=\"debug()\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n placeholder=\"{{ placeholder() }}\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [checked]=\"checkedSignal()\"\n [attr.indeterminate]=\"indeterminate\" />\n }\n @case ('checkedbox') {\n <input\n type=\"checkbox\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n [checked]=\"checkedSignal()\"\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n }\n <!-- FILE -->\n @case ('file') {\n <input type=\"file\" [id]=\"idSignal()\" [class]=\"inputClassSignal()\" (change)=\"upload($event)\" [accept]=\"accept\" [attr.multiple]=\"multiple\" />\n }\n <!-- FILE BUTTON-->\n @case ('fileButton') {\n <input\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [attr.multiple]=\"multiple\"\n hidden\n #file />\n <app-btn\n class=\"w-100\"\n (mclick)=\"file.click()\"\n icon=\"upload\"\n [type]=\"files ? 'primary' : 'secondary'\"\n text=\"{{ placeholder() || labelSignal() || 'Upload' }}\"></app-btn>\n }\n <!-- SELECT -->\n @case ('select') {\n <!-- [attr.disabled]=\"disabled\" -->\n <mat-select\n #matSelectTag\n placeholder=\"{{ placeholder() }}\"\n formControlName=\"{{ nameStrSignal() }}\"\n [id]=\"idSignal()\"\n class=\"{{ cls() }} {{ inputClassSignal() }}\"\n [required]=\"requiredSignal()\"\n (selectionChange)=\"change({ target: $event })\">\n @if (showEmptyOptionSignal()) {\n <mat-option selected [value]=\"null\" class=\"empty-option\">\n {{ placeholder() }}\n </mat-option>\n }\n @for (item of options(); track iS.trackByValue($index, item)) {\n <mat-option [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"item.label\" [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\" #ele>\n {{ item.label | appTranslate: translateOptions() | async }}\n </div>\n </mat-option>\n }\n </mat-select>\n }\n <!-- TEXTAREA -->\n @case ('textarea') {\n <textarea\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [rows]=\"textareaRowsSignal()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"></textarea>\n }\n <!-- Radio -->\n @case ('radio') {\n <input\n type=\"radio\"\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [value]=\"valueSignal()\" />\n }\n <!-- Viewer -->\n @case ('viewer') {\n <input\n type=\"text\"\n [id]=\"idSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [class]=\"inputClassSignal()\"\n [readonly]=\"true\"\n [value]=\"valueSignal()\" />\n }\n <!-- PASSWORD -->\n @case ('password') {\n <input\n type=\"{{ showPasswordSignal() ? 'text' : 'password' }}\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [value]=\"valueSignal()\" />\n <div class=\"password-icons pointer\" (click)=\"showPasswordSignal.set(!showPasswordSignal())\">\n @if (showPasswordSignal()) {\n <i class=\"fa fa-eye-slash\"></i>\n } @else {\n <i class=\"fa fa-eye\"></i>\n }\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div [class]=\"inputClassSignal()\" [ngClass]=\"{ 'has-prefix': !!prefixSignal(), disabled: readonlySignal() || disabledSignal() }\">\n @if (prefixSignal()) {\n <div class=\"prefix-val\" #prefixVal>\n {{ prefixSignal() }}\n </div>\n }\n <input\n [type]=\"typeSignal()\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [id]=\"idSignal()\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-otype]=\"oTypeSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n </div>\n }\n }\n\n @if (dirtySignal() && (showValidationSignal() || showValidationIconSignal())) {\n <div [ngClass]=\"{ valid: validSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-check\"></i>\n </div>\n <div [ngClass]=\"{ pending: pendingSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div [ngClass]=\"{ invalid: invalidSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-times\"></i>\n </div>\n }\n <!-- <mat-form-field class=\"input\" appearance=\"fill\">\n <input type=\"{{inp.type}}\" matInput [formControl]=\"inp.formControl\">\n <mat-error *ngFor=\"let validation of inp.vms\">\n <ng-container *ngIf=\"validation|validator:inp.formControl:inp.formControl?.value\">\n {{validation.message|validationMsg:inp.prefix:inp.suffix}}\n </ng-container>\n </mat-error>\n </mat-form-field> -->\n </div>\n @if (endLabelSignal()) {\n <div class=\"col-auto text-primary ms-2\" (click)=\"iS.log(formSignal())\" [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message [label]=\"labelSignal()\" [minLength]=\"minLength\" [maxLength]=\"maxLength\" [control]=\"controlSignal()\" />\n}\n", styles: [".bordercheck{border:1px solid #4ef580!important;outline:0}.borderuncheck{border:1px solid red!important;outline:0}.light{font-weight:500}.validity-icon{display:none;position:absolute;top:0;left:unset;right:20px;height:100%;align-items:center}.select .validity-icon{right:30px}.valid{display:flex!important;color:#4ef580}.pending{display:flex!important;color:#ff4500}.invalid{display:flex!important;color:red}.inputform{height:41px}.invalid-label{color:red!important}input[type=checkbox]:checked{position:relative}.showValidationIcon .form-control:not(input[type=checkbox].form-control),.showValidationIcon select.form-control:not(input[type=checkbox].form-control){padding:10px 36px 10px 12px}.password-icons{position:absolute;right:20px;top:17%}[disabled]{cursor:default}.link{cursor:pointer}.option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: DateInputComponent, selector: "date-input", inputs: ["value", "inpCl", "cls", "inputClass", "valid", "max", "min", "id", "invalid", "disabled", "debug", "readonly", "type", "showValidation"], outputs: ["valueChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: i2.BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "ngmodule", type: i3.FormsModule }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i4.InputFormatDirective, selector: "input:not([matInput]):not([noformat])", inputs: ["value"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.InputLabelComponent, selector: "app-input-label", inputs: ["colored", "form", "hint", "inlineHint", "id", "invalidCheckbox", "isRequired", "label", "labelLink", "lblCl", "light", "mini", "showLabel", "showRequiredTag", "small", "stacked", "theme", "xsmall"] }, { kind: "ngmodule", type: i6.MatDatepickerModule }, { kind: "ngmodule", type: i7.MatFormFieldModule }, { kind: "ngmodule", type: i8.MatInputModule }, { kind: "ngmodule", type: i9.MatNativeDateModule }, { kind: "ngmodule", type: i9.MatOptionModule }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: i10.MatSelectModule }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: i11.MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: i3.ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i12.TranslatePipe, name: "appTranslate" }, { kind: "component", type: i13.ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"] }] }); }
|
|
61
61
|
}
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: InputComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
|
-
args: [{ selector: 'app-input-old', standalone: true, providers: InputProviders, imports: [DateInputComponent, InputSharedModules], template: "<div class=\" custom-input align-items-center {{ typeSignal() }} gx-1\" [formGroup]=\"formSignal()\" [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"formSignal()\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [ngClass]=\"{ 'w-100': stackedSignal() }\"\n [inlineHint]=\"inlineHint\"\n [showRequiredTag]=\"showRequiredTagSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\"></app-input-label>\n }\n <div class=\"d-flex align-items-center {{ inputContClassSignal() }} \">\n <div\n class=\"position-relative d-flex input-content w-100\"\n [ngClass]=\"{\n 'ms-2': !stackedSignal(),\n showValidationIcon: showValidationSignal() || showValidationIconSignal(),\n dontFormatAsInput: dontFormatAsInputSignal()\n }\">\n <ng-template #date>\n <date-input\n #dateInput\n [debug]=\"debug()\"\n [readonly]=\"readonlySignal()\"\n [id]=\"idSignal()\"\n class=\"w-100\"\n [type]=\"typeSignal()\"\n (valueChanged)=\"dateChanged($event)\"\n [value]=\"valueSignal()\"\n [inputClass]=\"inputClassSignal()\"\n [disabled]=\"disabledSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [valid]=\"validSignal()\"\n [invalid]=\"invalidSignal()\"\n [showValidation]=\"showValidationSignal()\" />\n </ng-template>\n @switch (typeSignal()) {\n <!-- DATE -->\n @case ('date') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- DATETIME-LOCAL -->\n @case ('datetime-local') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <input\n type=\"checkbox\"\n [id]=\"idSignal()\"\n [formControlName]=\"nameStrSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-debug]=\"debug()\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n placeholder=\"{{ placeholder() }}\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [checked]=\"checkedSignal()\"\n [attr.indeterminate]=\"indeterminate\" />\n }\n @case ('checkedbox') {\n <input\n type=\"checkbox\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n [checked]=\"checkedSignal()\"\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n }\n <!-- FILE -->\n @case ('file') {\n <input type=\"file\" [id]=\"idSignal()\" [class]=\"inputClassSignal()\" (change)=\"upload($event)\" [accept]=\"accept\" [attr.multiple]=\"multiple\" />\n }\n <!-- FILE BUTTON-->\n @case ('fileButton') {\n <input\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [attr.multiple]=\"multiple\"\n hidden\n #file />\n <app-btn\n class=\"w-100\"\n (mclick)=\"file.click()\"\n icon=\"upload\"\n [type]=\"files ? 'primary' : 'secondary'\"\n text=\"{{ placeholder() || labelSignal() || 'Upload' }}\"></app-btn>\n }\n <!-- SELECT -->\n @case ('select') {\n <!-- [attr.disabled]=\"disabled\" -->\n <mat-select\n #matSelectTag\n placeholder=\"{{ placeholder() }}\"\n formControlName=\"{{ nameStrSignal() }}\"\n [id]=\"idSignal()\"\n class=\"{{ cls() }} {{ inputClassSignal() }}\"\n [required]=\"requiredSignal()\"\n (selectionChange)=\"change({ target: $event })\">\n @if (showEmptyOptionSignal()) {\n <mat-option selected [value]=\"null\" class=\"empty-option\">\n {{ placeholder() }}\n </mat-option>\n }\n @for (item of options(); track iS.trackByValue($index, item)) {\n <mat-option [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"item.label\" [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\" #ele>\n {{ item.label | appTranslate: translateOptions() | async }}\n </div>\n </mat-option>\n }\n </mat-select>\n }\n <!-- TEXTAREA -->\n @case ('textarea') {\n <textarea\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [rows]=\"textareaRowsSignal()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"></textarea>\n }\n <!-- Radio -->\n @case ('radio') {\n <input\n type=\"radio\"\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [value]=\"valueSignal()\" />\n }\n <!-- Viewer -->\n @case ('viewer') {\n <input\n type=\"text\"\n [id]=\"idSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [class]=\"inputClassSignal()\"\n [readonly]=\"true\"\n [value]=\"valueSignal()\" />\n }\n <!-- PASSWORD -->\n @case ('password') {\n <input\n type=\"{{ showPasswordSignal() ? 'text' : 'password' }}\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [value]=\"valueSignal()\" />\n <div class=\"password-icons pointer\" (click)=\"showPasswordSignal.set(!showPasswordSignal())\">\n @if (showPasswordSignal()) {\n <i class=\"fa fa-eye-slash\"></i>\n } @else {\n <i class=\"fa fa-eye\"></i>\n }\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div [class]=\"inputClassSignal()\" [ngClass]=\"{ 'has-prefix': !!prefixSignal(), disabled: readonlySignal() || disabledSignal() }\">\n @if (prefixSignal()) {\n <div class=\"prefix-val\" #prefixVal>\n {{ prefixSignal() }}\n </div>\n }\n <input\n [type]=\"typeSignal()\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [id]=\"idSignal()\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-otype]=\"oTypeSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n </div>\n }\n }\n\n @if (dirtySignal() && (showValidationSignal() || showValidationIconSignal())) {\n <div [ngClass]=\"{ valid: validSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-check\"></i>\n </div>\n <div [ngClass]=\"{ pending: pendingSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div [ngClass]=\"{ invalid: invalidSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-times\"></i>\n </div>\n }\n <!-- <mat-form-field class=\"input\" appearance=\"fill\">\n <input type=\"{{inp.type}}\" matInput [formControl]=\"inp.formControl\">\n <mat-error *ngFor=\"let validation of inp.vms\">\n <ng-container *ngIf=\"validation|validator:inp.formControl:inp.formControl?.value\">\n {{validation.message|validationMsg:inp.prefix:inp.suffix}}\n </ng-container>\n </mat-error>\n </mat-form-field> -->\n </div>\n @if (endLabelSignal()) {\n <div class=\"col-auto text-primary ms-2\" (click)=\"iS.log(formSignal())\" [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message [label]=\"labelSignal()\" [control]=\"controlSignal()\" />\n}\n", styles: [".bordercheck{border:1px solid #4ef580!important;outline:0}.borderuncheck{border:1px solid red!important;outline:0}.light{font-weight:500}.validity-icon{display:none;position:absolute;top:0;left:unset;right:20px;height:100%;align-items:center}.select .validity-icon{right:30px}.valid{display:flex!important;color:#4ef580}.pending{display:flex!important;color:#ff4500}.invalid{display:flex!important;color:red}.inputform{height:41px}.invalid-label{color:red!important}input[type=checkbox]:checked{position:relative}.showValidationIcon .form-control:not(input[type=checkbox].form-control),.showValidationIcon select.form-control:not(input[type=checkbox].form-control){padding:10px 36px 10px 12px}.password-icons{position:absolute;right:20px;top:17%}[disabled]{cursor:default}.link{cursor:pointer}.option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
|
|
64
|
+
args: [{ selector: 'app-input-old', standalone: true, providers: InputProviders, imports: [DateInputComponent, InputSharedModules], template: "<div class=\" custom-input align-items-center {{ typeSignal() }} gx-1\" [formGroup]=\"formSignal()\" [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"formSignal()\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [ngClass]=\"{ 'w-100': stackedSignal() }\"\n [inlineHint]=\"inlineHint\"\n [showRequiredTag]=\"showRequiredTagSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\"></app-input-label>\n }\n <div class=\"d-flex align-items-center {{ inputContClassSignal() }} \">\n <div\n class=\"position-relative d-flex input-content w-100\"\n [ngClass]=\"{\n 'ms-2': !stackedSignal(),\n showValidationIcon: showValidationSignal() || showValidationIconSignal(),\n dontFormatAsInput: dontFormatAsInputSignal()\n }\">\n <ng-template #date>\n <date-input\n #dateInput\n [debug]=\"debug()\"\n [readonly]=\"readonlySignal()\"\n [id]=\"idSignal()\"\n class=\"w-100\"\n [type]=\"typeSignal()\"\n (valueChanged)=\"dateChanged($event)\"\n [value]=\"valueSignal()\"\n [inputClass]=\"inputClassSignal()\"\n [disabled]=\"disabledSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [valid]=\"validSignal()\"\n [invalid]=\"invalidSignal()\"\n [showValidation]=\"showValidationSignal()\" />\n </ng-template>\n @switch (typeSignal()) {\n <!-- DATE -->\n @case ('date') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- DATETIME-LOCAL -->\n @case ('datetime-local') {\n <ng-container *ngTemplateOutlet=\"date\" />\n }\n <!-- CHECKBOX -->\n @case ('checkbox') {\n <input\n type=\"checkbox\"\n [id]=\"idSignal()\"\n [formControlName]=\"nameStrSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-debug]=\"debug()\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n placeholder=\"{{ placeholder() }}\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [checked]=\"checkedSignal()\"\n [attr.indeterminate]=\"indeterminate\" />\n }\n @case ('checkedbox') {\n <input\n type=\"checkbox\"\n class=\"{{ inpClSignal() }} d-inline-block form-control width-unset\"\n [checked]=\"checkedSignal()\"\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n }\n <!-- FILE -->\n @case ('file') {\n <input type=\"file\" [id]=\"idSignal()\" [class]=\"inputClassSignal()\" (change)=\"upload($event)\" [accept]=\"accept\" [attr.multiple]=\"multiple\" />\n }\n <!-- FILE BUTTON-->\n @case ('fileButton') {\n <input\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [attr.multiple]=\"multiple\"\n hidden\n #file />\n <app-btn\n class=\"w-100\"\n (mclick)=\"file.click()\"\n icon=\"upload\"\n [type]=\"files ? 'primary' : 'secondary'\"\n text=\"{{ placeholder() || labelSignal() || 'Upload' }}\"></app-btn>\n }\n <!-- SELECT -->\n @case ('select') {\n <!-- [attr.disabled]=\"disabled\" -->\n <mat-select\n #matSelectTag\n placeholder=\"{{ placeholder() }}\"\n formControlName=\"{{ nameStrSignal() }}\"\n [id]=\"idSignal()\"\n class=\"{{ cls() }} {{ inputClassSignal() }}\"\n [required]=\"requiredSignal()\"\n (selectionChange)=\"change({ target: $event })\">\n @if (showEmptyOptionSignal()) {\n <mat-option selected [value]=\"null\" class=\"empty-option\">\n {{ placeholder() }}\n </mat-option>\n }\n @for (item of options(); track iS.trackByValue($index, item)) {\n <mat-option [value]=\"item.value\">\n <div class=\"option\" [matTooltip]=\"item.label\" [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\" #ele>\n {{ item.label | appTranslate: translateOptions() | async }}\n </div>\n </mat-option>\n }\n </mat-select>\n }\n <!-- TEXTAREA -->\n @case ('textarea') {\n <textarea\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [rows]=\"textareaRowsSignal()\"\n [required]=\"requiredSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"></textarea>\n }\n <!-- Radio -->\n @case ('radio') {\n <input\n type=\"radio\"\n [formControlName]=\"nameStrSignal()\"\n [id]=\"idSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [value]=\"valueSignal()\" />\n }\n <!-- Viewer -->\n @case ('viewer') {\n <input\n type=\"text\"\n [id]=\"idSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [class]=\"inputClassSignal()\"\n [readonly]=\"true\"\n [value]=\"valueSignal()\" />\n }\n <!-- PASSWORD -->\n @case ('password') {\n <input\n type=\"{{ showPasswordSignal() ? 'text' : 'password' }}\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\"\n [value]=\"valueSignal()\" />\n <div class=\"password-icons pointer\" (click)=\"showPasswordSignal.set(!showPasswordSignal())\">\n @if (showPasswordSignal()) {\n <i class=\"fa fa-eye-slash\"></i>\n } @else {\n <i class=\"fa fa-eye\"></i>\n }\n </div>\n }\n <!-- DEFAULT -->\n @default {\n <div [class]=\"inputClassSignal()\" [ngClass]=\"{ 'has-prefix': !!prefixSignal(), disabled: readonlySignal() || disabledSignal() }\">\n @if (prefixSignal()) {\n <div class=\"prefix-val\" #prefixVal>\n {{ prefixSignal() }}\n </div>\n }\n <input\n [type]=\"typeSignal()\"\n [formControlName]=\"nameStrSignal()\"\n placeholder=\"{{ placeholder() }}\"\n [id]=\"idSignal()\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #ele\n [attr.data-debug]=\"debug()\"\n [attr.data-noformat]=\"computedNoFormat()\"\n [attr.data-otype]=\"oTypeSignal()\"\n [required]=\"requiredSignal()\"\n [max]=\"maxSignal()\"\n [min]=\"minSignal()\"\n [readonly]=\"readonlySignal()\"\n (change)=\"change($event)\" />\n </div>\n }\n }\n\n @if (dirtySignal() && (showValidationSignal() || showValidationIconSignal())) {\n <div [ngClass]=\"{ valid: validSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-check\"></i>\n </div>\n <div [ngClass]=\"{ pending: pendingSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-spinner fa-spin\"></i>\n </div>\n <div [ngClass]=\"{ invalid: invalidSignal() }\" class=\"validity-icon\">\n <i class=\"fa fa-times\"></i>\n </div>\n }\n <!-- <mat-form-field class=\"input\" appearance=\"fill\">\n <input type=\"{{inp.type}}\" matInput [formControl]=\"inp.formControl\">\n <mat-error *ngFor=\"let validation of inp.vms\">\n <ng-container *ngIf=\"validation|validator:inp.formControl:inp.formControl?.value\">\n {{validation.message|validationMsg:inp.prefix:inp.suffix}}\n </ng-container>\n </mat-error>\n </mat-form-field> -->\n </div>\n @if (endLabelSignal()) {\n <div class=\"col-auto text-primary ms-2\" (click)=\"iS.log(formSignal())\" [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message [label]=\"labelSignal()\" [minLength]=\"minLength\" [maxLength]=\"maxLength\" [control]=\"controlSignal()\" />\n}\n", styles: [".bordercheck{border:1px solid #4ef580!important;outline:0}.borderuncheck{border:1px solid red!important;outline:0}.light{font-weight:500}.validity-icon{display:none;position:absolute;top:0;left:unset;right:20px;height:100%;align-items:center}.select .validity-icon{right:30px}.valid{display:flex!important;color:#4ef580}.pending{display:flex!important;color:#ff4500}.invalid{display:flex!important;color:red}.inputform{height:41px}.invalid-label{color:red!important}input[type=checkbox]:checked{position:relative}.showValidationIcon .form-control:not(input[type=checkbox].form-control),.showValidationIcon select.form-control:not(input[type=checkbox].form-control){padding:10px 36px 10px 12px}.password-icons{position:absolute;right:20px;top:17%}[disabled]{cursor:default}.link{cursor:pointer}.option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
|
|
65
65
|
}], propDecorators: { _inp: [{
|
|
66
66
|
type: Input,
|
|
67
67
|
args: ['input']
|
|
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
115
115
|
type: Input,
|
|
116
116
|
args: ['value']
|
|
117
117
|
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUVuRTs7R0FFRztBQVNILE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVI3Qzs7UUFnQlcsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFLN0IsT0FBRSxHQUFXLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN0RCxVQUFLLEdBQVcsaUJBQWlCLENBQUM7UUFFbEMsVUFBSyxHQUFXLEdBQUcsQ0FBQztRQUNwQixVQUFLLEdBQVksSUFBSSxDQUFDO1FBSXRCLG9CQUFlLEdBQWEsSUFBSSxDQUFDO1FBQ2pDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUduQyxVQUFLLEdBQWUsQ0FBQyxDQUFDO0tBb0JoQztJQTlDQyxJQUFvQixJQUFJLENBQUMsQ0FBVTtRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQTBCRCxJQUFvQixNQUFNLENBQUMsQ0FBTTtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsUUFBUSxLQUFVLENBQUM7SUFFbkIsTUFBTSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0QsR0FBRztRQUNELElBQUksV0FBVyxDQUFDLFVBQVU7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQS9DVSxjQUFjO2tHQUFkLGNBQWMsb3BCQUhkLGNBQWMsaURDakIzQixta1RBc1BBLHU1QkRwT1ksa0JBQWtCOzsyRkFFakIsY0FBYztrQkFSMUIsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxhQUNMLGNBQWMsV0FDaEIsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQzs4QkFJN0IsSUFBSTtzQkFBdkIsS0FBSzt1QkFBQyxPQUFPO2dCQUtMLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR2MsTUFBTTtzQkFBekIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5wdXRQcm92aWRlcnMsIElucHV0U2hhcmVkTW9kdWxlcyB9IGZyb20gJy4vaW5wdXQtc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSAnLi9pbnB1dC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGQ0lucHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4vaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgSW5wdXRCYXNpY0NvbXBvbmVudCBpbnN0ZWFkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtb2xkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBJbnB1dFByb3ZpZGVycyxcbiAgaW1wb3J0czogW0RhdGVJbnB1dENvbXBvbmVudCwgSW5wdXRTaGFyZWRNb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEJhc2UgaW1wbGVtZW50cyBPbkluaXQgeyBcbiAgaW5wOiBGQ0lucHV0O1xuICBASW5wdXQoJ2lucHV0Jykgc2V0IF9pbnAodjogRkNJbnB1dCkge1xuICAgIHRoaXMuaW5wID0gdjtcbiAgICB0aGlzLl9mb3JtID0gdi5mb3JtO1xuICAgIHRoaXMuX25hbWUgPSB2Lm5hbWU7XG4gIH1cbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogYm9vbGVhbiA9IHRydWU7ICBcbiAgQElucHV0KCkgZW5kTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZW5kTGFiZWxUb29sdGlwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbGVzOiBGaWxlW107IFxuICBASW5wdXQoKSBoaW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuICBASW5wdXQoKSBpbnBDbDogc3RyaW5nID0gJ2NvbnRyb2wtYmctZ3JheSc7IFxuICBASW5wdXQoKSBsYWJlbExpbms6IHN0cmluZzsgXG4gIEBJbnB1dCgpIGxibENsOiBzdHJpbmcgPSAnMic7XG4gIEBJbnB1dCgpIGxpZ2h0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW47IFxuICBASW5wdXQoKSBvcHRpb25zRnVuYzogKC4uLnZhbDogYW55KSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgQElucHV0KCkgc2hvd0VtcHR5T3B0aW9uPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uTXNnOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uSWNvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNtYWxsOiBib29sZWFuO1xuICBASW5wdXQoKSBzdGFja2VkOiBib29sZWFuO1xuICBASW5wdXQoKSB0aGVtZTogSW5wdXRUaGVtZSA9IDE7IFxuICBASW5wdXQoKSB4c21hbGw6IGJvb2xlYW47IFxuICBzaG93UGFzc3dvcmQ6IGJvb2xlYW47XG4gIF9fdmFsdWU6IGFueTtcbiAgQElucHV0KCd2YWx1ZScpIHNldCBfdmFsdWUodjogYW55KSB7XG4gICAgdGhpcy5fX3ZhbHVlID0gdjtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgY2hhbmdlKGUpIHtcbiAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB0aGlzLm1jaGFuZ2UuZW1pdChlKTtcbiAgfVxuICB1cGxvYWQoZSkge1xuICAgIHRoaXMuZmlsZXMgPSBlLnRhcmdldC5maWxlcztcbiAgICB0aGlzLm1jaGFuZ2UuZW1pdChlKTtcbiAgfVxuICBsb2coKSB7XG4gICAgaWYgKGVudmlyb25tZW50LnByb2R1Y3Rpb24pIGNvbnNvbGUubG9nKHRoaXMuZm9ybSk7XG4gIH1cbn1cbnR5cGUgSW5wdXRUaGVtZSA9IDEgfCAyO1xuIiwiPGRpdiBjbGFzcz1cIiAgY3VzdG9tLWlucHV0IGFsaWduLWl0ZW1zLWNlbnRlciB7eyB0eXBlU2lnbmFsKCkgfX0gZ3gtMVwiIFtmb3JtR3JvdXBdPVwiZm9ybVNpZ25hbCgpXCIgW25nQ2xhc3NdPVwieyAnZC1mbGV4JzogIXN0YWNrZWRTaWduYWwoKSB9XCI+XG4gIEBpZiAoY29tcHV0ZWRTaG93TGFiZWwoKSkge1xuICAgIDxhcHAtaW5wdXQtbGFiZWxcbiAgICAgIFtjb2xvcmVkXT1cImNvbG9yZWRTaWduYWwoKVwiXG4gICAgICBbZm9ybV09XCJmb3JtU2lnbmFsKClcIlxuICAgICAgW2hpbnRdPVwiaGludFwiXG4gICAgICBbaWRdPVwiaWRTaWduYWwoKVwiXG4gICAgICBbaW52YWxpZENoZWNrYm94XT1cImludmFsaWRDaGVja2JveFNpZ25hbCgpXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cImlzUmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICBbbGFiZWxdPVwibGFiZWxTaWduYWwoKVwiXG4gICAgICBbbGJsQ2xdPVwibGJsQ2xcIlxuICAgICAgW2xpZ2h0XT1cImxpZ2h0XCJcbiAgICAgIFttaW5pXT1cIm1pbmlTaWduYWwoKVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICd3LTEwMCc6IHN0YWNrZWRTaWduYWwoKSB9XCJcbiAgICAgIFtpbmxpbmVIaW50XT1cImlubGluZUhpbnRcIlxuICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzaG93UmVxdWlyZWRUYWdTaWduYWwoKVwiXG4gICAgICBbc2hvd0xhYmVsXT1cInNob3dMYWJlbFNpZ25hbCgpXCJcbiAgICAgIFtzbWFsbF09XCJzbWFsbFNpZ25hbCgpXCJcbiAgICAgIFtzdGFja2VkXT1cInN0YWNrZWRTaWduYWwoKVwiXG4gICAgICBbdGhlbWVdPVwidGhlbWVcIlxuICAgICAgW3hzbWFsbF09XCJ4c21hbGxcIj48L2FwcC1pbnB1dC1sYWJlbD5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB7eyBpbnB1dENvbnRDbGFzc1NpZ25hbCgpIH19IFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGlucHV0LWNvbnRlbnQgdy0xMDBcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnbXMtMic6ICFzdGFja2VkU2lnbmFsKCksXG4gICAgICAgIHNob3dWYWxpZGF0aW9uSWNvbjogc2hvd1ZhbGlkYXRpb25TaWduYWwoKSB8fCBzaG93VmFsaWRhdGlvbkljb25TaWduYWwoKSxcbiAgICAgICAgZG9udEZvcm1hdEFzSW5wdXQ6IGRvbnRGb3JtYXRBc0lucHV0U2lnbmFsKClcbiAgICAgIH1cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGF0ZT5cbiAgICAgICAgPGRhdGUtaW5wdXRcbiAgICAgICAgICAjZGF0ZUlucHV0XG4gICAgICAgICAgW2RlYnVnXT1cImRlYnVnKClcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVNpZ25hbCgpXCJcbiAgICAgICAgICBbaWRdPVwiaWRTaWduYWwoKVwiXG4gICAgICAgICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVNpZ25hbCgpXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cImRhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVNpZ25hbCgpXCJcbiAgICAgICAgICBbaW5wdXRDbGFzc109XCJpbnB1dENsYXNzU2lnbmFsKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFNpZ25hbCgpXCJcbiAgICAgICAgICBbbWF4XT1cIm1heFNpZ25hbCgpXCJcbiAgICAgICAgICBbbWluXT1cIm1pblNpZ25hbCgpXCJcbiAgICAgICAgICBbdmFsaWRdPVwidmFsaWRTaWduYWwoKVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiaW52YWxpZFNpZ25hbCgpXCJcbiAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwic2hvd1ZhbGlkYXRpb25TaWduYWwoKVwiIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgQHN3aXRjaCAodHlwZVNpZ25hbCgpKSB7XG4gICAgICAgIDwhLS0gREFURSAtLT5cbiAgICAgICAgQGNhc2UgKCdkYXRlJykge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIERBVEVUSU1FLUxPQ0FMIC0tPlxuICAgICAgICBAY2FzZSAoJ2RhdGV0aW1lLWxvY2FsJykge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIENIRUNLQk9YIC0tPlxuICAgICAgICBAY2FzZSAoJ2NoZWNrYm94Jykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVN0clNpZ25hbCgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbm9mb3JtYXRdPVwiY29tcHV0ZWROb0Zvcm1hdCgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtZGVidWddPVwiZGVidWcoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGlucENsU2lnbmFsKCkgfX0gZC1pbmxpbmUtYmxvY2sgZm9ybS1jb250cm9sIHdpZHRoLXVuc2V0XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIoKSB9fVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTaWduYWwoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnY2hlY2tlZGJveCcpIHtcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGlucENsU2lnbmFsKCkgfX0gZC1pbmxpbmUtYmxvY2sgZm9ybS1jb250cm9sIHdpZHRoLXVuc2V0XCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnKClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJjb21wdXRlZE5vRm9ybWF0KClcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkU2lnbmFsKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U2lnbmFsKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBGSUxFIC0tPlxuICAgICAgICBAY2FzZSAoJ2ZpbGUnKSB7XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkU2lnbmFsKClcIiBbY2xhc3NdPVwiaW5wdXRDbGFzc1NpZ25hbCgpXCIgKGNoYW5nZSk9XCJ1cGxvYWQoJGV2ZW50KVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGVcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gRklMRSBCVVRUT04tLT5cbiAgICAgICAgQGNhc2UgKCdmaWxlQnV0dG9uJykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgICAgICAgIFthdHRyLm11bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgIGhpZGRlblxuICAgICAgICAgICAgI2ZpbGUgLz5cbiAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgICAobWNsaWNrKT1cImZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICBpY29uPVwidXBsb2FkXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImZpbGVzID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgdGV4dD1cInt7IHBsYWNlaG9sZGVyKCkgfHwgbGFiZWxTaWduYWwoKSB8fCAnVXBsb2FkJyB9fVwiPjwvYXBwLWJ0bj5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFNFTEVDVCAtLT5cbiAgICAgICAgQGNhc2UgKCdzZWxlY3QnKSB7XG4gICAgICAgICAgPCEtLSBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIC0tPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAjbWF0U2VsZWN0VGFnXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3sgbmFtZVN0clNpZ25hbCgpIH19XCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwie3sgY2xzKCkgfX0ge3sgaW5wdXRDbGFzc1NpZ25hbCgpIH19XCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlKHsgdGFyZ2V0OiAkZXZlbnQgfSlcIj5cbiAgICAgICAgICAgIEBpZiAoc2hvd0VtcHR5T3B0aW9uU2lnbmFsKCkpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gc2VsZWN0ZWQgW3ZhbHVlXT1cIm51bGxcIiBjbGFzcz1cImVtcHR5LW9wdGlvblwiPlxuICAgICAgICAgICAgICAgIHt7IHBsYWNlaG9sZGVyKCkgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBvcHRpb25zKCk7IHRyYWNrIGlTLnRyYWNrQnlWYWx1ZSgkaW5kZXgsIGl0ZW0pKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiIFttYXRUb29sdGlwXT1cIml0ZW0ubGFiZWxcIiBbbWF0VG9vbHRpcERpc2FibGVkXT1cImVsZS5zY3JvbGxXaWR0aCA8PSBlbGUub2Zmc2V0V2lkdGhcIiAjZWxlPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZTogdHJhbnNsYXRlT3B0aW9ucygpIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFRFWFRBUkVBIC0tPlxuICAgICAgICBAY2FzZSAoJ3RleHRhcmVhJykge1xuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJuYW1lU3RyU2lnbmFsKClcIlxuICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cImNvbXB1dGVkTm9Gb3JtYXQoKVwiXG4gICAgICAgICAgICBbcm93c109XCJ0ZXh0YXJlYVJvd3NTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTaWduYWwoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFJhZGlvIC0tPlxuICAgICAgICBAY2FzZSAoJ3JhZGlvJykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVN0clNpZ25hbCgpXCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVNpZ25hbCgpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJjb21wdXRlZE5vRm9ybWF0KClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlU2lnbmFsKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gVmlld2VyIC0tPlxuICAgICAgICBAY2FzZSAoJ3ZpZXdlcicpIHtcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIoKSB9fVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cImNvbXB1dGVkTm9Gb3JtYXQoKVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiaW5wdXRDbGFzc1NpZ25hbCgpXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVNpZ25hbCgpXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFBBU1NXT1JEIC0tPlxuICAgICAgICBAY2FzZSAoJ3Bhc3N3b3JkJykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInt7IHNob3dQYXNzd29yZFNpZ25hbCgpID8gJ3RleHQnIDogJ3Bhc3N3b3JkJyB9fVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWVTdHJTaWduYWwoKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJjb21wdXRlZE5vRm9ybWF0KClcIlxuICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbbWF4XT1cIm1heFNpZ25hbCgpXCJcbiAgICAgICAgICAgIFttaW5dPVwibWluU2lnbmFsKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U2lnbmFsKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVTaWduYWwoKVwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkLWljb25zIHBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkU2lnbmFsLnNldCghc2hvd1Bhc3N3b3JkU2lnbmFsKCkpXCI+XG4gICAgICAgICAgICBAaWYgKHNob3dQYXNzd29yZFNpZ25hbCgpKSB7XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllLXNsYXNoXCI+PC9pPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gREVGQVVMVCAtLT5cbiAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiIFtuZ0NsYXNzXT1cInsgJ2hhcy1wcmVmaXgnOiAhIXByZWZpeFNpZ25hbCgpLCBkaXNhYmxlZDogcmVhZG9ubHlTaWduYWwoKSB8fCBkaXNhYmxlZFNpZ25hbCgpIH1cIj5cbiAgICAgICAgICAgIEBpZiAocHJlZml4U2lnbmFsKCkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZWZpeC12YWxcIiAjcHJlZml4VmFsPlxuICAgICAgICAgICAgICAgIHt7IHByZWZpeFNpZ25hbCgpIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVTaWduYWwoKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVN0clNpZ25hbCgpXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlcigpIH19XCJcbiAgICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlbGUuaW5uZXJUZXh0XCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICAgI2VsZVxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnKClcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cImNvbXB1dGVkTm9Gb3JtYXQoKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtb3R5cGVdPVwib1R5cGVTaWduYWwoKVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFNpZ25hbCgpXCJcbiAgICAgICAgICAgICAgW21heF09XCJtYXhTaWduYWwoKVwiXG4gICAgICAgICAgICAgIFttaW5dPVwibWluU2lnbmFsKClcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTaWduYWwoKVwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZGlydHlTaWduYWwoKSAmJiAoc2hvd1ZhbGlkYXRpb25TaWduYWwoKSB8fCBzaG93VmFsaWRhdGlvbkljb25TaWduYWwoKSkpIHtcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHZhbGlkOiB2YWxpZFNpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHBlbmRpbmc6IHBlbmRpbmdTaWduYWwoKSB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgaW52YWxpZDogaW52YWxpZFNpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDwhLS0gPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaW5wdXRcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInt7aW5wLnR5cGV9fVwiIG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJpbnAuZm9ybUNvbnRyb2xcIj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiBpbnAudm1zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbGlkYXRpb258dmFsaWRhdG9yOmlucC5mb3JtQ29udHJvbDppbnAuZm9ybUNvbnRyb2w/LnZhbHVlXCI+XG4gICAgICAgICAgICB7e3ZhbGlkYXRpb24ubWVzc2FnZXx2YWxpZGF0aW9uTXNnOmlucC5wcmVmaXg6aW5wLnN1ZmZpeH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD4gLS0+XG4gICAgPC9kaXY+XG4gICAgQGlmIChlbmRMYWJlbFNpZ25hbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gdGV4dC1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwiaVMubG9nKGZvcm1TaWduYWwoKSlcIiBbbWF0VG9vbHRpcF09XCJlbmRMYWJlbFRvb2x0aXBTaWduYWwoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jXCI+XG4gICAgICAgIHt7IGVuZExhYmVsU2lnbmFsKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChzaG93VmFsaWRhdGlvbk1zZ1NpZ25hbCgpKSB7XG4gIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlIFtsYWJlbF09XCJsYWJlbFNpZ25hbCgpXCIgW2NvbnRyb2xdPVwiY29udHJvbFNpZ25hbCgpXCIgLz5cbn1cbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUVuRTs7R0FFRztBQVNILE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVI3Qzs7UUFnQlcsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFLN0IsT0FBRSxHQUFXLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN0RCxVQUFLLEdBQVcsaUJBQWlCLENBQUM7UUFFbEMsVUFBSyxHQUFXLEdBQUcsQ0FBQztRQUNwQixVQUFLLEdBQVksSUFBSSxDQUFDO1FBSXRCLG9CQUFlLEdBQWEsSUFBSSxDQUFDO1FBQ2pDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUduQyxVQUFLLEdBQWUsQ0FBQyxDQUFDO0tBb0JoQztJQTlDQyxJQUFvQixJQUFJLENBQUMsQ0FBVTtRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQTBCRCxJQUFvQixNQUFNLENBQUMsQ0FBTTtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsUUFBUSxLQUFVLENBQUM7SUFFbkIsTUFBTSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0QsR0FBRztRQUNELElBQUksV0FBVyxDQUFDLFVBQVU7WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQS9DVSxjQUFjO2tHQUFkLGNBQWMsb3BCQUhkLGNBQWMsaURDakIzQix1blRBc1BBLHU1QkRwT1ksa0JBQWtCOzsyRkFFakIsY0FBYztrQkFSMUIsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxhQUNMLGNBQWMsV0FDaEIsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQzs4QkFJN0IsSUFBSTtzQkFBdkIsS0FBSzt1QkFBQyxPQUFPO2dCQUtMLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR2MsTUFBTTtzQkFBekIsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5wdXRQcm92aWRlcnMsIElucHV0U2hhcmVkTW9kdWxlcyB9IGZyb20gJy4vaW5wdXQtc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSAnLi9pbnB1dC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGQ0lucHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4vaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgSW5wdXRCYXNpY0NvbXBvbmVudCBpbnN0ZWFkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtb2xkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBJbnB1dFByb3ZpZGVycyxcbiAgaW1wb3J0czogW0RhdGVJbnB1dENvbXBvbmVudCwgSW5wdXRTaGFyZWRNb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEJhc2UgaW1wbGVtZW50cyBPbkluaXQgeyBcbiAgaW5wOiBGQ0lucHV0O1xuICBASW5wdXQoJ2lucHV0Jykgc2V0IF9pbnAodjogRkNJbnB1dCkge1xuICAgIHRoaXMuaW5wID0gdjtcbiAgICB0aGlzLl9mb3JtID0gdi5mb3JtO1xuICAgIHRoaXMuX25hbWUgPSB2Lm5hbWU7XG4gIH1cbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogYm9vbGVhbiA9IHRydWU7ICBcbiAgQElucHV0KCkgZW5kTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgZW5kTGFiZWxUb29sdGlwOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbGVzOiBGaWxlW107IFxuICBASW5wdXQoKSBoaW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnaWQnICsgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuICBASW5wdXQoKSBpbnBDbDogc3RyaW5nID0gJ2NvbnRyb2wtYmctZ3JheSc7IFxuICBASW5wdXQoKSBsYWJlbExpbms6IHN0cmluZzsgXG4gIEBJbnB1dCgpIGxibENsOiBzdHJpbmcgPSAnMic7XG4gIEBJbnB1dCgpIGxpZ2h0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW47IFxuICBASW5wdXQoKSBvcHRpb25zRnVuYzogKC4uLnZhbDogYW55KSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgQElucHV0KCkgc2hvd0VtcHR5T3B0aW9uPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uTXNnOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dWYWxpZGF0aW9uSWNvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNtYWxsOiBib29sZWFuO1xuICBASW5wdXQoKSBzdGFja2VkOiBib29sZWFuO1xuICBASW5wdXQoKSB0aGVtZTogSW5wdXRUaGVtZSA9IDE7IFxuICBASW5wdXQoKSB4c21hbGw6IGJvb2xlYW47IFxuICBzaG93UGFzc3dvcmQ6IGJvb2xlYW47XG4gIF9fdmFsdWU6IGFueTtcbiAgQElucHV0KCd2YWx1ZScpIHNldCBfdmFsdWUodjogYW55KSB7XG4gICAgdGhpcy5fX3ZhbHVlID0gdjtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgY2hhbmdlKGUpIHtcbiAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB0aGlzLm1jaGFuZ2UuZW1pdChlKTtcbiAgfVxuICB1cGxvYWQoZSkge1xuICAgIHRoaXMuZmlsZXMgPSBlLnRhcmdldC5maWxlcztcbiAgICB0aGlzLm1jaGFuZ2UuZW1pdChlKTtcbiAgfVxuICBsb2coKSB7XG4gICAgaWYgKGVudmlyb25tZW50LnByb2R1Y3Rpb24pIGNvbnNvbGUubG9nKHRoaXMuZm9ybSk7XG4gIH1cbn1cbnR5cGUgSW5wdXRUaGVtZSA9IDEgfCAyO1xuIiwiPGRpdiBjbGFzcz1cIiAgY3VzdG9tLWlucHV0IGFsaWduLWl0ZW1zLWNlbnRlciB7eyB0eXBlU2lnbmFsKCkgfX0gZ3gtMVwiIFtmb3JtR3JvdXBdPVwiZm9ybVNpZ25hbCgpXCIgW25nQ2xhc3NdPVwieyAnZC1mbGV4JzogIXN0YWNrZWRTaWduYWwoKSB9XCI+XG4gIEBpZiAoY29tcHV0ZWRTaG93TGFiZWwoKSkge1xuICAgIDxhcHAtaW5wdXQtbGFiZWxcbiAgICAgIFtjb2xvcmVkXT1cImNvbG9yZWRTaWduYWwoKVwiXG4gICAgICBbZm9ybV09XCJmb3JtU2lnbmFsKClcIlxuICAgICAgW2hpbnRdPVwiaGludFwiXG4gICAgICBbaWRdPVwiaWRTaWduYWwoKVwiXG4gICAgICBbaW52YWxpZENoZWNrYm94XT1cImludmFsaWRDaGVja2JveFNpZ25hbCgpXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cImlzUmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICBbbGFiZWxdPVwibGFiZWxTaWduYWwoKVwiXG4gICAgICBbbGJsQ2xdPVwibGJsQ2xcIlxuICAgICAgW2xpZ2h0XT1cImxpZ2h0XCJcbiAgICAgIFttaW5pXT1cIm1pbmlTaWduYWwoKVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICd3LTEwMCc6IHN0YWNrZWRTaWduYWwoKSB9XCJcbiAgICAgIFtpbmxpbmVIaW50XT1cImlubGluZUhpbnRcIlxuICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzaG93UmVxdWlyZWRUYWdTaWduYWwoKVwiXG4gICAgICBbc2hvd0xhYmVsXT1cInNob3dMYWJlbFNpZ25hbCgpXCJcbiAgICAgIFtzbWFsbF09XCJzbWFsbFNpZ25hbCgpXCJcbiAgICAgIFtzdGFja2VkXT1cInN0YWNrZWRTaWduYWwoKVwiXG4gICAgICBbdGhlbWVdPVwidGhlbWVcIlxuICAgICAgW3hzbWFsbF09XCJ4c21hbGxcIj48L2FwcC1pbnB1dC1sYWJlbD5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB7eyBpbnB1dENvbnRDbGFzc1NpZ25hbCgpIH19IFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4IGlucHV0LWNvbnRlbnQgdy0xMDBcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnbXMtMic6ICFzdGFja2VkU2lnbmFsKCksXG4gICAgICAgIHNob3dWYWxpZGF0aW9uSWNvbjogc2hvd1ZhbGlkYXRpb25TaWduYWwoKSB8fCBzaG93VmFsaWRhdGlvbkljb25TaWduYWwoKSxcbiAgICAgICAgZG9udEZvcm1hdEFzSW5wdXQ6IGRvbnRGb3JtYXRBc0lucHV0U2lnbmFsKClcbiAgICAgIH1cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGF0ZT5cbiAgICAgICAgPGRhdGUtaW5wdXRcbiAgICAgICAgICAjZGF0ZUlucHV0XG4gICAgICAgICAgW2RlYnVnXT1cImRlYnVnKClcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVNpZ25hbCgpXCJcbiAgICAgICAgICBbaWRdPVwiaWRTaWduYWwoKVwiXG4gICAgICAgICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVNpZ25hbCgpXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cImRhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVNpZ25hbCgpXCJcbiAgICAgICAgICBbaW5wdXRDbGFzc109XCJpbnB1dENsYXNzU2lnbmFsKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFNpZ25hbCgpXCJcbiAgICAgICAgICBbbWF4XT1cIm1heFNpZ25hbCgpXCJcbiAgICAgICAgICBbbWluXT1cIm1pblNpZ25hbCgpXCJcbiAgICAgICAgICBbdmFsaWRdPVwidmFsaWRTaWduYWwoKVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiaW52YWxpZFNpZ25hbCgpXCJcbiAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwic2hvd1ZhbGlkYXRpb25TaWduYWwoKVwiIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgQHN3aXRjaCAodHlwZVNpZ25hbCgpKSB7XG4gICAgICAgIDwhLS0gREFURSAtLT5cbiAgICAgICAgQGNhc2UgKCdkYXRlJykge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIERBVEVUSU1FLUxPQ0FMIC0tPlxuICAgICAgICBAY2FzZSAoJ2RhdGV0aW1lLWxvY2FsJykge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIENIRUNLQk9YIC0tPlxuICAgICAgICBAY2FzZSAoJ2NoZWNrYm94Jykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVN0clNpZ25hbCgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbm9mb3JtYXRdPVwiY29tcHV0ZWROb0Zvcm1hdCgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtZGVidWddPVwiZGVidWcoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGlucENsU2lnbmFsKCkgfX0gZC1pbmxpbmUtYmxvY2sgZm9ybS1jb250cm9sIHdpZHRoLXVuc2V0XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIoKSB9fVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTaWduYWwoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnY2hlY2tlZGJveCcpIHtcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGlucENsU2lnbmFsKCkgfX0gZC1pbmxpbmUtYmxvY2sgZm9ybS1jb250cm9sIHdpZHRoLXVuc2V0XCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnKClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJjb21wdXRlZE5vRm9ybWF0KClcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkU2lnbmFsKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U2lnbmFsKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBGSUxFIC0tPlxuICAgICAgICBAY2FzZSAoJ2ZpbGUnKSB7XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkU2lnbmFsKClcIiBbY2xhc3NdPVwiaW5wdXRDbGFzc1NpZ25hbCgpXCIgKGNoYW5nZSk9XCJ1cGxvYWQoJGV2ZW50KVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgW2F0dHIubXVsdGlwbGVdPVwibXVsdGlwbGVcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gRklMRSBCVVRUT04tLT5cbiAgICAgICAgQGNhc2UgKCdmaWxlQnV0dG9uJykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgICAgICAgIFthdHRyLm11bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgIGhpZGRlblxuICAgICAgICAgICAgI2ZpbGUgLz5cbiAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgICAgICAgICAobWNsaWNrKT1cImZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICBpY29uPVwidXBsb2FkXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImZpbGVzID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICAgICAgICAgICAgdGV4dD1cInt7IHBsYWNlaG9sZGVyKCkgfHwgbGFiZWxTaWduYWwoKSB8fCAnVXBsb2FkJyB9fVwiPjwvYXBwLWJ0bj5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFNFTEVDVCAtLT5cbiAgICAgICAgQGNhc2UgKCdzZWxlY3QnKSB7XG4gICAgICAgICAgPCEtLSBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIC0tPlxuICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAjbWF0U2VsZWN0VGFnXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3sgbmFtZVN0clNpZ25hbCgpIH19XCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwie3sgY2xzKCkgfX0ge3sgaW5wdXRDbGFzc1NpZ25hbCgpIH19XCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlKHsgdGFyZ2V0OiAkZXZlbnQgfSlcIj5cbiAgICAgICAgICAgIEBpZiAoc2hvd0VtcHR5T3B0aW9uU2lnbmFsKCkpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gc2VsZWN0ZWQgW3ZhbHVlXT1cIm51bGxcIiBjbGFzcz1cImVtcHR5LW9wdGlvblwiPlxuICAgICAgICAgICAgICAgIHt7IHBsYWNlaG9sZGVyKCkgfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBvcHRpb25zKCk7IHRyYWNrIGlTLnRyYWNrQnlWYWx1ZSgkaW5kZXgsIGl0ZW0pKSB7XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiIFttYXRUb29sdGlwXT1cIml0ZW0ubGFiZWxcIiBbbWF0VG9vbHRpcERpc2FibGVkXT1cImVsZS5zY3JvbGxXaWR0aCA8PSBlbGUub2Zmc2V0V2lkdGhcIiAjZWxlPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IGFwcFRyYW5zbGF0ZTogdHJhbnNsYXRlT3B0aW9ucygpIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFRFWFRBUkVBIC0tPlxuICAgICAgICBAY2FzZSAoJ3RleHRhcmVhJykge1xuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJuYW1lU3RyU2lnbmFsKClcIlxuICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cImNvbXB1dGVkTm9Gb3JtYXQoKVwiXG4gICAgICAgICAgICBbcm93c109XCJ0ZXh0YXJlYVJvd3NTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTaWduYWwoKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFJhZGlvIC0tPlxuICAgICAgICBAY2FzZSAoJ3JhZGlvJykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVN0clNpZ25hbCgpXCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVNpZ25hbCgpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJjb21wdXRlZE5vRm9ybWF0KClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlU2lnbmFsKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gVmlld2VyIC0tPlxuICAgICAgICBAY2FzZSAoJ3ZpZXdlcicpIHtcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtpZF09XCJpZFNpZ25hbCgpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIoKSB9fVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cImNvbXB1dGVkTm9Gb3JtYXQoKVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiaW5wdXRDbGFzc1NpZ25hbCgpXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVNpZ25hbCgpXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8IS0tIFBBU1NXT1JEIC0tPlxuICAgICAgICBAY2FzZSAoJ3Bhc3N3b3JkJykge1xuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInt7IHNob3dQYXNzd29yZFNpZ25hbCgpID8gJ3RleHQnIDogJ3Bhc3N3b3JkJyB9fVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hbWVTdHJTaWduYWwoKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1ub2Zvcm1hdF09XCJjb21wdXRlZE5vRm9ybWF0KClcIlxuICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRTaWduYWwoKVwiXG4gICAgICAgICAgICBbbWF4XT1cIm1heFNpZ25hbCgpXCJcbiAgICAgICAgICAgIFttaW5dPVwibWluU2lnbmFsKClcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U2lnbmFsKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVTaWduYWwoKVwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkLWljb25zIHBvaW50ZXJcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkU2lnbmFsLnNldCghc2hvd1Bhc3N3b3JkU2lnbmFsKCkpXCI+XG4gICAgICAgICAgICBAaWYgKHNob3dQYXNzd29yZFNpZ25hbCgpKSB7XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllLXNsYXNoXCI+PC9pPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gREVGQVVMVCAtLT5cbiAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImlucHV0Q2xhc3NTaWduYWwoKVwiIFtuZ0NsYXNzXT1cInsgJ2hhcy1wcmVmaXgnOiAhIXByZWZpeFNpZ25hbCgpLCBkaXNhYmxlZDogcmVhZG9ubHlTaWduYWwoKSB8fCBkaXNhYmxlZFNpZ25hbCgpIH1cIj5cbiAgICAgICAgICAgIEBpZiAocHJlZml4U2lnbmFsKCkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByZWZpeC12YWxcIiAjcHJlZml4VmFsPlxuICAgICAgICAgICAgICAgIHt7IHByZWZpeFNpZ25hbCgpIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIFt0eXBlXT1cInR5cGVTaWduYWwoKVwiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibmFtZVN0clNpZ25hbCgpXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlcigpIH19XCJcbiAgICAgICAgICAgICAgW2lkXT1cImlkU2lnbmFsKClcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlbGUuaW5uZXJUZXh0XCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCJcbiAgICAgICAgICAgICAgI2VsZVxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWRlYnVnXT1cImRlYnVnKClcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLW5vZm9ybWF0XT1cImNvbXB1dGVkTm9Gb3JtYXQoKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtb3R5cGVdPVwib1R5cGVTaWduYWwoKVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFNpZ25hbCgpXCJcbiAgICAgICAgICAgICAgW21heF09XCJtYXhTaWduYWwoKVwiXG4gICAgICAgICAgICAgIFttaW5dPVwibWluU2lnbmFsKClcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlTaWduYWwoKVwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZGlydHlTaWduYWwoKSAmJiAoc2hvd1ZhbGlkYXRpb25TaWduYWwoKSB8fCBzaG93VmFsaWRhdGlvbkljb25TaWduYWwoKSkpIHtcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHZhbGlkOiB2YWxpZFNpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7IHBlbmRpbmc6IHBlbmRpbmdTaWduYWwoKSB9XCIgY2xhc3M9XCJ2YWxpZGl0eS1pY29uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgaW52YWxpZDogaW52YWxpZFNpZ25hbCgpIH1cIiBjbGFzcz1cInZhbGlkaXR5LWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDwhLS0gPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaW5wdXRcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInt7aW5wLnR5cGV9fVwiIG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJpbnAuZm9ybUNvbnRyb2xcIj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiBpbnAudm1zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbGlkYXRpb258dmFsaWRhdG9yOmlucC5mb3JtQ29udHJvbDppbnAuZm9ybUNvbnRyb2w/LnZhbHVlXCI+XG4gICAgICAgICAgICB7e3ZhbGlkYXRpb24ubWVzc2FnZXx2YWxpZGF0aW9uTXNnOmlucC5wcmVmaXg6aW5wLnN1ZmZpeH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD4gLS0+XG4gICAgPC9kaXY+XG4gICAgQGlmIChlbmRMYWJlbFNpZ25hbCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gdGV4dC1wcmltYXJ5IG1zLTJcIiAoY2xpY2spPVwiaVMubG9nKGZvcm1TaWduYWwoKSlcIiBbbWF0VG9vbHRpcF09XCJlbmRMYWJlbFRvb2x0aXBTaWduYWwoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jXCI+XG4gICAgICAgIHt7IGVuZExhYmVsU2lnbmFsKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmIChzaG93VmFsaWRhdGlvbk1zZ1NpZ25hbCgpKSB7XG4gIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlIFtsYWJlbF09XCJsYWJlbFNpZ25hbCgpXCIgW21pbkxlbmd0aF09XCJtaW5MZW5ndGhcIiBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiIFtjb250cm9sXT1cImNvbnRyb2xTaWduYWwoKVwiIC8+XG59XG4iXX0=
|
package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs
CHANGED
|
@@ -41,13 +41,15 @@ export class ValidationMessageComponent {
|
|
|
41
41
|
this.label = signal(undefined);
|
|
42
42
|
this.hideOverflow = input(true);
|
|
43
43
|
this.minLength = computed(() => {
|
|
44
|
-
const t = this._minLength, i = this.input()?.minLength, i2 = this.input()?.minSignal();
|
|
44
|
+
const t = this._minLength(), i = this.input()?.minLength, i2 = this.input()?.minSignal();
|
|
45
45
|
return t || i || +i2;
|
|
46
46
|
});
|
|
47
|
+
this._minLength = input(undefined, { alias: 'minLength' });
|
|
47
48
|
this.maxLength = computed(() => {
|
|
48
|
-
const t = this._maxLength, i = this.input()?.maxLength, i2 = this.input()?.maxSignal();
|
|
49
|
+
const t = this._maxLength(), i = this.input()?.maxLength, i2 = this.input()?.maxSignal();
|
|
49
50
|
return t || i || +i2;
|
|
50
51
|
});
|
|
52
|
+
this._maxLength = input(undefined, { alias: 'maxLength' });
|
|
51
53
|
this.ignoreDirtiness = input();
|
|
52
54
|
this.customMessage = input('Value is invalid');
|
|
53
55
|
this.input = signal(undefined);
|
|
@@ -83,7 +85,7 @@ export class ValidationMessageComponent {
|
|
|
83
85
|
this.sub?.unsubscribe();
|
|
84
86
|
}
|
|
85
87
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ValidationMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ValidationMessageComponent, isStandalone: true, selector: "app-validation-message", inputs: { debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, _label: { classPropertyName: "_label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, hideOverflow: { classPropertyName: "hideOverflow", publicName: "hideOverflow", isSignal: true, isRequired: false, transformFunction: null }, _minLength: { classPropertyName: "_minLength", publicName: "minLength", isSignal:
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ValidationMessageComponent, isStandalone: true, selector: "app-validation-message", inputs: { debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, _label: { classPropertyName: "_label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, hideOverflow: { classPropertyName: "hideOverflow", publicName: "hideOverflow", isSignal: true, isRequired: false, transformFunction: null }, _minLength: { classPropertyName: "_minLength", publicName: "minLength", isSignal: true, isRequired: false, transformFunction: null }, _maxLength: { classPropertyName: "_maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, ignoreDirtiness: { classPropertyName: "ignoreDirtiness", publicName: "ignoreDirtiness", isSignal: true, isRequired: false, transformFunction: null }, customMessage: { classPropertyName: "customMessage", publicName: "customMessage", isSignal: true, isRequired: false, transformFunction: null }, _control: { classPropertyName: "_control", publicName: "control", isSignal: false, isRequired: false, transformFunction: null }, _input: { classPropertyName: "_input", publicName: "input", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"text-danger\" [ngClass]=\"{ hideOverflow: hideOverflow() }\" #el>\n @for (error of computedErrors(); track error) {\n <span\n class=\"me-2 errormssg hide-scroll\"\n [matTooltip]=\"ele.innerText\"\n [matTooltipDisabled]=\"ele.scrollHeight <= ele.offsetHeight && ele.scrollWidth <= ele.offsetWidth\"\n #ele>\n {{ error | appTranslate | async }}\n </span>\n }\n</div>\n", styles: [".text-danger{margin-top:5px;min-height:25px;position:relative}.errormssg{height:25px;display:block;overflow:auto}.hideOverflow{height:25px;overflow:hidden}\n"], dependencies: [{ kind: "pipe", type: i0.forwardRef(() => AsyncPipe), name: "async" }, { kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i0.forwardRef(() => TranslatePipe), name: "appTranslate" }, { kind: "ngmodule", type: i0.forwardRef(() => MatTooltipModule) }, { kind: "directive", type: i0.forwardRef(() => i2.MatTooltip), selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
87
89
|
}
|
|
88
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ValidationMessageComponent, decorators: [{
|
|
89
91
|
type: Component,
|
|
@@ -91,12 +93,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
91
93
|
}], ctorParameters: () => [], propDecorators: { _label: [{
|
|
92
94
|
type: Input,
|
|
93
95
|
args: ['label']
|
|
94
|
-
}], _minLength: [{
|
|
95
|
-
type: Input,
|
|
96
|
-
args: ['minLength']
|
|
97
|
-
}], _maxLength: [{
|
|
98
|
-
type: Input,
|
|
99
|
-
args: ['maxLength']
|
|
100
96
|
}], _control: [{
|
|
101
97
|
type: Input,
|
|
102
98
|
args: ['control']
|
|
@@ -119,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
119
115
|
standalone: true,
|
|
120
116
|
}]
|
|
121
117
|
}] });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxJQUFJLEVBSUosUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhFLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVV2RCxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLElBQW9CLE1BQU0sQ0FBQyxDQUFTO1FBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLFFBQVEsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJ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QUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIElucHV0LFxuICBJbnB1dFNpZ25hbCxcbiAgT25Jbml0LFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxuICBTaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciwgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRVZhbGlkYXRpb25UeXBlLCBJT2JqZWN0TGl0ZXJhbCwgSVZhbGlkYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IGNvbmZpZ1ZhbGlkYXRpb25NZXNzYWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbmZpZ3MvdmFsaWRhdGlvbi1tZXNzYWdlcy5jb25maWcnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGVib3VuY2VUaW1lLCB0YXAgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZhbGlkYXRpb24tbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi92YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy9cbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgZm9yd2FyZFJlZigoKSA9PiBFcnJvck1lc3NhZ2VQaXBlKSwgTWF0VG9vbHRpcE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IHtcbiAgZGVidWcgPSBpbnB1dDxib29sZWFuPigpO1xuICBsYWJlbCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIEBJbnB1dCgnbGFiZWwnKSBzZXQgX2xhYmVsKHY6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIHRoaXMubGFiZWwuc2V0KHYpO1xuICB9XG5cbiAgaGlkZU92ZXJmbG93ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgbWluTGVuZ3RoID0gY29tcHV0ZWQ8bnVtYmVyIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgY29uc3QgdCA9IHRoaXMuX21pbkxlbmd0aCxcbiAgICAgIGkgPSB0aGlzLmlucHV0KCk/Lm1pbkxlbmd0aCxcbiAgICAgIGkyID0gdGhpcy5pbnB1dCgpPy5taW5TaWduYWwoKTtcbiAgICByZXR1cm4gdCB8fCBpIHx8ICtpMjtcbiAgfSk7XG4gIEBJbnB1dCgnbWluTGVuZ3RoJykgX21pbkxlbmd0aDogbnVtYmVyO1xuXG4gIG1heExlbmd0aCA9IGNvbXB1dGVkPG51bWJlciB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IHQgPSB0aGlzLl9tYXhMZW5ndGgsXG4gICAgICBpID0gdGhpcy5pbnB1dCgpPy5tYXhMZW5ndGgsXG4gICAgICBpMiA9IHRoaXMuaW5wdXQoKT8ubWF4U2lnbmFsKCk7XG4gICAgcmV0dXJuIHQgfHwgaSB8fCAraTI7XG4gIH0pO1xuICBASW5wdXQoJ21heExlbmd0aCcpIF9tYXhMZW5ndGg6IG51bWJlcjtcblxuICBpZ25vcmVEaXJ0aW5lc3MgPSBpbnB1dDxib29sZWFuPigpO1xuICBjdXN0b21NZXNzYWdlID0gaW5wdXQoJ1ZhbHVlIGlzIGludmFsaWQnKTtcblxuICBpbnB1dCA9IHNpZ25hbDxJbnB1dEJhc2ljQ29tcG9uZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoJ2NvbnRyb2wnKSBzZXQgX2NvbnRyb2wodjogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgaWYgKCF2KSByZXR1cm47XG4gICAgdGhpcy5vbkRlc3Ryb3koKTtcblxuICAgIGNvbnN0IHBpY2tlciA9ICgpID0+IHtcbiAgICAgIHRoaXMuZXJyb3JzLnNldCh2LmVycm9ycyBhcyBJT2JqZWN0TGl0ZXJhbCk7XG4gICAgICB0aGlzLmRpcnR5LnNldCh2LmRpcnR5KTtcbiAgICAgIHRoaXMudG91Y2hlZC5zZXQodi50b3VjaGVkKTtcbiAgICB9O1xuICAgIHBpY2tlcigpO1xuICAgIHRoaXMuc3ViID0gdi5zdGF0dXNDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDYwMCksIHRhcChwaWNrZXIpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIEBJbnB1dCgnaW5wdXQnKSBzZXQgX2lucHV0KHY6IElucHV0QmFzaWNDb21wb25lbnQpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICBpZiAoIXYpIHJldHVybjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NvbnRyb2wgPSB2Py5jb250cm9sU2lnbmFsKCk7XG4gICAgdGhpcy5pbnB1dC5zZXQodik7XG4gIH1cblxuICAvLyAgIGVycm9ycyA9IGNvbXB1dGVkPElPYmplY3RMaXRlcmFsfHVuZGVmaW5lZD4oKCk9PntcbiAgLy8gY29uc3QgY29udHJvbHNcbiAgLy8gICAgIHJldHVybiB1bmRlZmluZWRcbiAgLy8gICB9KTtcbiAgZXJyb3JzID0gc2lnbmFsPElPYmplY3RMaXRlcmFsIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHZtUyA9IGluamVjdChWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UpO1xuXG4gIGRpcnR5ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgdG91Y2hlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIC8vIGNvbXB1dGVDb3VudCA9IDA7XG4gIGNvbXB1dGVkRXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vIGNvbnNvbGUubG9nKCdFUlJPUiBjaGVjaycsICsrdGhpcy5jb21wdXRlQ291bnQpO1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuZXJyb3JzKCksXG4gICAgICB2YWxpZGF0aW9ucyA9IHRoaXMudm1TLnZhbGlkYXRpb25NZXNzYWdlcygpLFxuICAgICAgbGFiZWwgPSB0aGlzLmxhYmVsQ29tcHV0ZWQoKSxcbiAgICAgIG1heExlbmd0aCA9IHRoaXMubWF4TGVuZ3RoKCksXG4gICAgICBtaW5MZW5ndGggPSB0aGlzLm1pbkxlbmd0aCgpLFxuICAgICAgY3VzdG9tTWVzc2FnZSA9IHRoaXMuY3VzdG9tTWVzc2FnZSgpLFxuICAgICAgaWdub3JlRGlydGluZXNzID0gdGhpcy5pZ25vcmVEaXJ0aW5lc3MoKSxcbiAgICAgIGRpcnR5ID0gdGhpcy5kaXJ0eSgpLFxuICAgICAgdG91Y2hlZCA9IHRoaXMudG91Y2hlZCgpO1xuXG4gICAgcmV0dXJuIGVycm9ycyAmJiAoaWdub3JlRGlydGluZXNzIHx8IGRpcnR5IHx8IHRvdWNoZWQpXG4gICAgICA/IE9iamVjdC5lbnRyaWVzKGVycm9ycykubWFwKChbdHlwZSwgY29udHJvbE1lc3NhZ2VdKSA9PlxuICAgICAgICAgIHRoaXMudm1TLnRyYW5zZm9ybShcbiAgICAgICAgICAgIHsgbWVzc2FnZTogdmFsaWRhdGlvbnNbdHlwZSBhcyBFVmFsaWRhdGlvblR5cGVdPy5tZXNzYWdlISwgdHlwZTogdHlwZSBhcyBhbnkgfSxcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgbWF4TGVuZ3RoLFxuICAgICAgICAgICAgbWluTGVuZ3RoLFxuICAgICAgICAgICAgY29udHJvbE1lc3NhZ2UgfHwgY3VzdG9tTWVzc2FnZSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICA6IFtdO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZGVzdHJveWVyUmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3llclJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgdGhpcy5vbkRlc3Ryb3koKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGxhYmVsQ29tcHV0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgcmV0dXJuIHRoaXMubGFiZWwoKSB8fCB0aGlzLmlucHV0KCk/LmxhYmVsU2lnbmFsPy4oKTtcbiAgfSk7XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Vycm9yTWVzc2FnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVycm9yTWVzc2FnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdm1TID0gaW5qZWN0KFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSk7XG4gIHRyYW5zZm9ybSA9IHRoaXMudm1TLnRyYW5zZm9ybTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIFtuZ0NsYXNzXT1cInsgaGlkZU92ZXJmbG93OiBoaWRlT3ZlcmZsb3coKSB9XCIgI2VsPlxuICBAZm9yIChlcnJvciBvZiBjb21wdXRlZEVycm9ycygpOyB0cmFjayBlcnJvcikge1xuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cIm1lLTIgZXJyb3Jtc3NnIGhpZGUtc2Nyb2xsXCJcbiAgICAgIFttYXRUb29sdGlwXT1cImVsZS5pbm5lclRleHRcIlxuICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCJlbGUuc2Nyb2xsSGVpZ2h0IDw9IGVsZS5vZmZzZXRIZWlnaHQgJiYgZWxlLnNjcm9sbFdpZHRoIDw9IGVsZS5vZmZzZXRXaWR0aFwiXG4gICAgICAjZWxlPlxuICAgICAge3sgZXJyb3IgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxJQUFJLEVBSUosUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhFLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQVV2RCxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLElBQW9CLE1BQU0sQ0FBQyxDQUFTO1FBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLFFBQVEsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJ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Z0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBJbnB1dCxcbiAgSW5wdXRTaWduYWwsXG4gIE9uSW5pdCxcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbiAgU2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEVWYWxpZGF0aW9uVHlwZSwgSU9iamVjdExpdGVyYWwsIElWYWxpZGF0aW9uTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBjb25maWdWYWxpZGF0aW9uTWVzc2FnZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25maWdzL3ZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSB9IGZyb20gJy4vdmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC12YWxpZGF0aW9uLW1lc3NhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIGZvcndhcmRSZWYoKCkgPT4gRXJyb3JNZXNzYWdlUGlwZSksIE1hdFRvb2x0aXBNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB7XG4gIGRlYnVnID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgbGFiZWwgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBASW5wdXQoJ2xhYmVsJykgc2V0IF9sYWJlbCh2OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLmxhYmVsLnNldCh2KTtcbiAgfVxuXG4gIGhpZGVPdmVyZmxvdyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIG1pbkxlbmd0aCA9IGNvbXB1dGVkPG51bWJlciB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IHQgPSB0aGlzLl9taW5MZW5ndGgoKSxcbiAgICAgIGkgPSB0aGlzLmlucHV0KCk/Lm1pbkxlbmd0aCxcbiAgICAgIGkyID0gdGhpcy5pbnB1dCgpPy5taW5TaWduYWwoKTtcbiAgICByZXR1cm4gdCB8fCBpIHx8ICtpMjtcbiAgfSk7XG5fbWluTGVuZ3RoPWlucHV0PCBudW1iZXI+KHVuZGVmaW5lZCx7YWxpYXM6ICdtaW5MZW5ndGgnfSk7XG5cbiAgbWF4TGVuZ3RoID0gY29tcHV0ZWQ8bnVtYmVyIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgY29uc3QgdCA9IHRoaXMuX21heExlbmd0aCgpLFxuICAgICAgaSA9IHRoaXMuaW5wdXQoKT8ubWF4TGVuZ3RoLFxuICAgICAgaTIgPSB0aGlzLmlucHV0KCk/Lm1heFNpZ25hbCgpO1xuICAgIHJldHVybiB0IHx8IGkgfHwgK2kyO1xuICB9KTtcbiAgX21heExlbmd0aD1pbnB1dDwgbnVtYmVyPih1bmRlZmluZWQse2FsaWFzOiAnbWF4TGVuZ3RoJ30pO1xuXG4gIGlnbm9yZURpcnRpbmVzcyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGN1c3RvbU1lc3NhZ2UgPSBpbnB1dCgnVmFsdWUgaXMgaW52YWxpZCcpO1xuXG4gIGlucHV0ID0gc2lnbmFsPElucHV0QmFzaWNDb21wb25lbnQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgc3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgnY29udHJvbCcpIHNldCBfY29udHJvbCh2OiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICBpZiAoIXYpIHJldHVybjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuXG4gICAgY29uc3QgcGlja2VyID0gKCkgPT4ge1xuICAgICAgdGhpcy5lcnJvcnMuc2V0KHYuZXJyb3JzIGFzIElPYmplY3RMaXRlcmFsKTtcbiAgICAgIHRoaXMuZGlydHkuc2V0KHYuZGlydHkpO1xuICAgICAgdGhpcy50b3VjaGVkLnNldCh2LnRvdWNoZWQpO1xuICAgIH07XG4gICAgcGlja2VyKCk7XG4gICAgdGhpcy5zdWIgPSB2LnN0YXR1c0NoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNjAwKSwgdGFwKHBpY2tlcikpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgQElucHV0KCdpbnB1dCcpIHNldCBfaW5wdXQodjogSW5wdXRCYXNpY0NvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIGlmICghdikgcmV0dXJuO1xuICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgdGhpcy5fY29udHJvbCA9IHY/LmNvbnRyb2xTaWduYWwoKTtcbiAgICB0aGlzLmlucHV0LnNldCh2KTtcbiAgfVxuXG4gIC8vICAgZXJyb3JzID0gY29tcHV0ZWQ8SU9iamVjdExpdGVyYWx8dW5kZWZpbmVkPigoKT0+e1xuICAvLyBjb25zdCBjb250cm9sc1xuICAvLyAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAvLyAgIH0pO1xuICBlcnJvcnMgPSBzaWduYWw8SU9iamVjdExpdGVyYWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgdm1TID0gaW5qZWN0KFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSk7XG5cbiAgZGlydHkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICB0b3VjaGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgLy8gY29tcHV0ZUNvdW50ID0gMDtcbiAgY29tcHV0ZWRFcnJvcnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgLy8gY29uc29sZS5sb2coJ0VSUk9SIGNoZWNrJywgKyt0aGlzLmNvbXB1dGVDb3VudCk7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5lcnJvcnMoKSxcbiAgICAgIHZhbGlkYXRpb25zID0gdGhpcy52bVMudmFsaWRhdGlvbk1lc3NhZ2VzKCksXG4gICAgICBsYWJlbCA9IHRoaXMubGFiZWxDb21wdXRlZCgpLFxuICAgICAgbWF4TGVuZ3RoID0gdGhpcy5tYXhMZW5ndGgoKSxcbiAgICAgIG1pbkxlbmd0aCA9IHRoaXMubWluTGVuZ3RoKCksXG4gICAgICBjdXN0b21NZXNzYWdlID0gdGhpcy5jdXN0b21NZXNzYWdlKCksXG4gICAgICBpZ25vcmVEaXJ0aW5lc3MgPSB0aGlzLmlnbm9yZURpcnRpbmVzcygpLFxuICAgICAgZGlydHkgPSB0aGlzLmRpcnR5KCksXG4gICAgICB0b3VjaGVkID0gdGhpcy50b3VjaGVkKCk7XG5cbiAgICByZXR1cm4gZXJyb3JzICYmIChpZ25vcmVEaXJ0aW5lc3MgfHwgZGlydHkgfHwgdG91Y2hlZClcbiAgICAgID8gT2JqZWN0LmVudHJpZXMoZXJyb3JzKS5tYXAoKFt0eXBlLCBjb250cm9sTWVzc2FnZV0pID0+XG4gICAgICAgICAgdGhpcy52bVMudHJhbnNmb3JtKFxuICAgICAgICAgICAgeyBtZXNzYWdlOiB2YWxpZGF0aW9uc1t0eXBlIGFzIEVWYWxpZGF0aW9uVHlwZV0/Lm1lc3NhZ2UhLCB0eXBlOiB0eXBlIGFzIGFueSB9LFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBtYXhMZW5ndGgsXG4gICAgICAgICAgICBtaW5MZW5ndGgsXG4gICAgICAgICAgICBjb250cm9sTWVzc2FnZSB8fCBjdXN0b21NZXNzYWdlLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIDogW107XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBkZXN0cm95ZXJSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGVzdHJveWVyUmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgb25EZXN0cm95KCkge1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbGFiZWxDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCgpIHx8IHRoaXMuaW5wdXQoKT8ubGFiZWxTaWduYWw/LigpO1xuICB9KTtcbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZXJyb3JNZXNzYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JNZXNzYWdlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB2bVMgPSBpbmplY3QoVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlKTtcbiAgdHJhbnNmb3JtID0gdGhpcy52bVMudHJhbnNmb3JtO1xufVxuIiwiPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgW25nQ2xhc3NdPVwieyBoaWRlT3ZlcmZsb3c6IGhpZGVPdmVyZmxvdygpIH1cIiAjZWw+XG4gIEBmb3IgKGVycm9yIG9mIGNvbXB1dGVkRXJyb3JzKCk7IHRyYWNrIGVycm9yKSB7XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwibWUtMiBlcnJvcm1zc2cgaGlkZS1zY3JvbGxcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiZWxlLmlubmVyVGV4dFwiXG4gICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cImVsZS5zY3JvbGxIZWlnaHQgPD0gZWxlLm9mZnNldEhlaWdodCAmJiBlbGUuc2Nyb2xsV2lkdGggPD0gZWxlLm9mZnNldFdpZHRoXCJcbiAgICAgICNlbGU+XG4gICAgICB7eyBlcnJvciB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgPC9zcGFuPlxuICB9XG48L2Rpdj5cbiJdfQ==
|