ets-fe-ng-sdk 17.0.430 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/Reusables/reusable-comps/find-item/find-item.component.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-comps/find-item/find-item.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-comps/watermark/watermark.component.mjs +3 -3
- package/esm2022/lib/Reusables/reusable-pages/extra-pages/extra-pages-routing.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/extra-pages/extra-pages.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/logger/logger-routing.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/logger/logger.component.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/logger/logger.interface.mjs +1 -1
- package/esm2022/lib/Reusables/reusable-pages/logger/logger.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/logger/logger.service.mjs +3 -3
- package/esm2022/lib/Reusables/reusable-pages/page-not-found/page-not-found.component.mjs +3 -3
- package/esm2022/lib/Reusables/reusable-pages/reset/reset-routing.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/reset/reset.component.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/reset/reset.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/robot/robot-routing.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/robot/robot.component.mjs +3 -3
- package/esm2022/lib/Reusables/reusable-pages/robot/robot.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/timeout-tester/timeout-tester-routing.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/timeout-tester/timeout-tester.component.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/timeout-tester/timeout-tester.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/user-activity/ua-extras/user-activity.service.mjs +3 -3
- package/esm2022/lib/Reusables/reusable-pages/version/version-routing.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/version/version.component.mjs +3 -3
- package/esm2022/lib/Reusables/reusable-pages/version/version.module.mjs +4 -4
- package/esm2022/lib/Reusables/reusable-pages/version/version.service.mjs +4 -4
- package/esm2022/lib/Services/Interceptors/authentication-interceptor.service.mjs +5 -5
- package/esm2022/lib/Services/Interceptors/global-error-handler.service.mjs +3 -3
- package/esm2022/lib/Services/Interceptors/logger-interceptor.service.mjs +5 -5
- package/esm2022/lib/Services/Interceptors/request-loader-interceptor.service.mjs +5 -5
- package/esm2022/lib/Services/Interceptors/request-timeout.service.mjs +4 -4
- package/esm2022/lib/Services/api.service.mjs +4 -4
- package/esm2022/lib/Services/app.service.mjs +3 -3
- package/esm2022/lib/Services/base.effect.mjs +3 -3
- package/esm2022/lib/Services/base.facade.service.mjs +1 -1
- package/esm2022/lib/Services/base.service.mjs +4 -4
- package/esm2022/lib/Services/cache/cache-updater.service.mjs +3 -3
- package/esm2022/lib/Services/cache/cache.service.mjs +4 -4
- package/esm2022/lib/Services/cache/local-cache.service.mjs +4 -4
- package/esm2022/lib/Services/cache/saver.service.mjs +3 -3
- package/esm2022/lib/Services/debouncer.service.mjs +4 -4
- package/esm2022/lib/Services/htmler.service.mjs +3 -3
- package/esm2022/lib/Services/input.service.mjs +4 -4
- package/esm2022/lib/Services/page-loader.service.mjs +7 -7
- package/esm2022/lib/Services/page.service.mjs +3 -3
- package/esm2022/lib/Services/route.service.mjs +4 -4
- package/esm2022/lib/Services/service-worker/check-for-update.service.mjs +4 -4
- package/esm2022/lib/Services/service-worker/handle-unrecoverable-state.service.mjs +3 -3
- package/esm2022/lib/Services/service-worker/log-update.service.mjs +4 -4
- package/esm2022/lib/Services/service-worker/prompt-update.service.mjs +3 -3
- package/esm2022/lib/Services/service-worker/service-worker.service.mjs +4 -4
- package/esm2022/lib/Services/storage.service.mjs +4 -4
- package/esm2022/lib/Services/theme.service.mjs +3 -3
- package/esm2022/lib/Services/translation.service.mjs +4 -4
- package/esm2022/lib/Services/utility.service.mjs +4 -4
- package/esm2022/lib/Services/window-security.service.mjs +4 -4
- package/esm2022/lib/Shared/classes/page-loader.class.mjs +1 -1
- package/esm2022/lib/Shared/components/add-item/add-item.component.mjs +3 -3
- package/esm2022/lib/Shared/components/autocomplete/autocomplete-td-rf/autocomplete-td-rf.component.mjs +4 -4
- package/esm2022/lib/Shared/components/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/lib/Shared/components/autocomplete/autocomplete.service.mjs +4 -4
- package/esm2022/lib/Shared/components/btn/btn-lg/btn-lg.component.mjs +3 -3
- package/esm2022/lib/Shared/components/btn/btn-link/btn-link.component.mjs +3 -3
- package/esm2022/lib/Shared/components/btn/btn.component.mjs +4 -4
- package/esm2022/lib/Shared/components/btn/btn.service.mjs +4 -4
- package/esm2022/lib/Shared/components/btn/details-btn/details-btn.component.mjs +3 -3
- package/esm2022/lib/Shared/components/card/card.component.mjs +3 -3
- package/esm2022/lib/Shared/components/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/Shared/components/confirm-dialog/confirm-dialog.service.mjs +4 -4
- package/esm2022/lib/Shared/components/core/button/button.component.mjs +3 -3
- package/esm2022/lib/Shared/components/documents-name-display/documents-name-display.component.mjs +4 -4
- package/esm2022/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +4 -4
- package/esm2022/lib/Shared/components/export-table/export-table.component.mjs +4 -4
- package/esm2022/lib/Shared/components/fields-to-display/fields-to-display.component.mjs +4 -4
- package/esm2022/lib/Shared/components/file-upload/file-upload.component.mjs +4 -4
- package/esm2022/lib/Shared/components/form-error/form-error.component.mjs +4 -4
- package/esm2022/lib/Shared/components/form-generator/form-generated-value/form-generated-value.component.mjs +6 -6
- package/esm2022/lib/Shared/components/form-generator/form-generator.base.component.mjs +11 -2
- package/esm2022/lib/Shared/components/form-generator/form-generator.component.mjs +4 -4
- package/esm2022/lib/Shared/components/form-generator/form-generator.service.mjs +3 -3
- package/esm2022/lib/Shared/components/form-link/form-link.component.mjs +3 -3
- package/esm2022/lib/Shared/components/form-tab-headers/form-tab-headers.component.mjs +3 -3
- package/esm2022/lib/Shared/components/index-comp-layout/index-comp-layout.component.mjs +7 -7
- package/esm2022/lib/Shared/components/info-dialog/info-dialog.component.mjs +4 -4
- package/esm2022/lib/Shared/components/info-dialog/info-dialog.service.mjs +4 -4
- package/esm2022/lib/Shared/components/info-icon/info-icon.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/date-input/date-input.component.mjs +5 -5
- package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +4 -4
- package/esm2022/lib/Shared/components/input/input-base.component.mjs +4 -4
- package/esm2022/lib/Shared/components/input/input-basic.component.mjs +4 -4
- package/esm2022/lib/Shared/components/input/input-control.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input-label/input-label.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input-td-rf.component.mjs +4 -4
- package/esm2022/lib/Shared/components/input/input.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input.service.mjs +4 -4
- package/esm2022/lib/Shared/components/input/inputs-pipes.pipe.mjs +26 -26
- package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs +6 -6
- package/esm2022/lib/Shared/components/input/validation-message/validation-message.service.mjs +3 -3
- package/esm2022/lib/Shared/components/input/year-month-td-rf/year-month-td-rf.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input-NgModel/input-ngmodel.component.mjs +4 -4
- package/esm2022/lib/Shared/components/input-NgModel/validation-message-ngmodel/validation-message-ngmodel.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input-table/input-table.component.mjs +4 -4
- package/esm2022/lib/Shared/components/input-table/input-table.service.mjs +3 -3
- package/esm2022/lib/Shared/components/label/label.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/loader-animations/blinking-blocks/blinking-blocks.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/loader-animations/bouncing-ball/bouncing-ball.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/loader-animations/fading-bars/fading-bars.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/loader-animations/fading-circles/fading-circles.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/loader-animations/ring-ripples/ring-ripples.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/loader.component.mjs +3 -3
- package/esm2022/lib/Shared/components/loader/spinner.component.mjs +3 -3
- package/esm2022/lib/Shared/components/modal/modal-body.directive.mjs +3 -3
- package/esm2022/lib/Shared/components/modal/modal-footer.directive.mjs +3 -3
- package/esm2022/lib/Shared/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/Shared/components/modal-form/modal-form.component.mjs +3 -3
- package/esm2022/lib/Shared/components/modal-header/modal-header.component.mjs +3 -3
- package/esm2022/lib/Shared/components/narration-history-comp/narration-history-comp.component.mjs +4 -4
- package/esm2022/lib/Shared/components/notifications/notifications.component.mjs +3 -3
- package/esm2022/lib/Shared/components/notifications/notifications.service.mjs +3 -3
- package/esm2022/lib/Shared/components/page-center-body/page-center-body.component.mjs +3 -3
- package/esm2022/lib/Shared/components/page-template/page-template.component.mjs +4 -4
- package/esm2022/lib/Shared/components/page-to-component/page-to-component.component.mjs +6 -6
- package/esm2022/lib/Shared/components/page-to-component/page-to-component.directive.mjs +3 -3
- package/esm2022/lib/Shared/components/page-to-component/page-to-component.service.mjs +3 -3
- package/esm2022/lib/Shared/components/paginator/paginator.component.mjs +4 -4
- package/esm2022/lib/Shared/components/phone-number/phone-number.component.mjs +4 -4
- package/esm2022/lib/Shared/components/phone-number/phone-number.model.mjs +1 -1
- package/esm2022/lib/Shared/components/phone-number/phone-number.service.mjs +3 -3
- package/esm2022/lib/Shared/components/rich-text-editor/rich-text-editor.component.mjs +12 -12
- package/esm2022/lib/Shared/components/rich-text-editor-rf/rich-text-editor-rf.component.mjs +12 -12
- package/esm2022/lib/Shared/components/row-actions/row-actions.component.mjs +3 -3
- package/esm2022/lib/Shared/components/svg-icon/svg-icon.component.mjs +3 -3
- package/esm2022/lib/Shared/components/svg-icon/svg-icon.service.mjs +3 -3
- package/esm2022/lib/Shared/components/table-https/table-https.component.mjs +4 -4
- package/esm2022/lib/Shared/components/table-input/table-input-row/table-input-row.component.mjs +3 -3
- package/esm2022/lib/Shared/components/table-input/table-input.component.mjs +4 -4
- package/esm2022/lib/Shared/components/table-plain/table-base.component.mjs +4 -4
- package/esm2022/lib/Shared/components/table-plain/table-plain.component.mjs +4 -4
- package/esm2022/lib/Shared/components/table-plain/table-plain.service.mjs +3 -3
- package/esm2022/lib/Shared/components/table-plain/table.pipe.mjs +20 -20
- package/esm2022/lib/Shared/components/text/text.component.mjs +3 -3
- package/esm2022/lib/Shared/components/text-area-modal/text-area-modal.component.mjs +3 -3
- package/esm2022/lib/Shared/components/text-area-modal/text-area-modal.service.mjs +3 -3
- package/esm2022/lib/Shared/components/text-case-1/text-case-1.component.mjs +4 -4
- package/esm2022/lib/Shared/components/text-case-2/text-case-2.component.mjs +3 -3
- package/esm2022/lib/Shared/components/text-case-2/text-case.service.mjs +4 -4
- package/esm2022/lib/Shared/components/text-case-input/text-case-input.component.mjs +3 -3
- package/esm2022/lib/Shared/components/toggle-input-form/toggle-input-form.component.mjs +3 -3
- package/esm2022/lib/Shared/components/translator-case/translator-case.component.mjs +3 -3
- package/esm2022/lib/Shared/components/vertical-nav/vertical-nav.component.mjs +4 -4
- package/esm2022/lib/Shared/components/view-form-buttons/view-form-buttons.component.mjs +3 -3
- package/esm2022/lib/Shared/components/webcam-media/webcam-media.component.mjs +4 -4
- package/esm2022/lib/Shared/directives/commafy-number.directive.mjs +3 -3
- package/esm2022/lib/Shared/directives/drag-drop-file-upload.directive.mjs +4 -4
- package/esm2022/lib/Shared/directives/form-invalid-class.directive.mjs +3 -3
- package/esm2022/lib/Shared/directives/index.directive.mjs +23 -23
- package/esm2022/lib/Shared/directives/input-formatter.directive.mjs +14 -14
- package/esm2022/lib/Shared/directives/integer-only.directive.mjs +4 -4
- package/esm2022/lib/Shared/directives/mHref.directive.mjs +3 -3
- package/esm2022/lib/Shared/directives/negative-number-only.directive.mjs +4 -4
- package/esm2022/lib/Shared/directives/responsiveness.directive.mjs +20 -20
- package/esm2022/lib/Shared/directives/translator.directive.mjs +4 -4
- package/esm2022/lib/Shared/models/form.class.mjs +1 -1
- package/esm2022/lib/Shared/pipes/form-invalid-class.pipe.mjs +3 -3
- package/esm2022/lib/Shared/pipes/paginator.pipe.mjs +3 -3
- package/esm2022/lib/Shared/pipes/translate.pipe.mjs +7 -7
- package/esm2022/lib/Shared/pipes/utility.pipe.mjs +134 -134
- package/esm2022/lib/Shared/prototypes/prototypes.mjs +1 -1
- package/esm2022/lib/Shared/shared.module.mjs +4 -4
- package/esm2022/lib/authentication/web-user/web-user-authentication.guard.mjs +1 -1
- package/esm2022/lib/authentication/web-user/web-user-authentication.interceptor.mjs +1 -1
- package/esm2022/lib/authentication/web-user/web-user-authentication.service.mjs +3 -3
- package/esm2022/lib/authentication/web-user/web-user-forgot-password.component.mjs +4 -4
- package/esm2022/lib/authentication/web-user/web-user-login.component.mjs +4 -4
- package/esm2022/lib/authentication/web-user/web-user-reset-password.component.mjs +4 -4
- package/esm2022/lib/configs/base-functions.mjs +1 -1
- package/fesm2022/ets-fe-ng-sdk.mjs +766 -758
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Services/utility.service.d.ts +5 -5
- package/lib/Shared/components/btn/btn.component.d.ts +3 -3
- package/lib/Shared/components/form-generator/form-generated-value/form-generated-value.component.d.ts +1 -1
- package/lib/Shared/components/form-generator/form-generator.base.component.d.ts +3 -0
- package/lib/Shared/components/index-comp-layout/index-comp-layout.component.d.ts +1 -1
- package/lib/Shared/components/input/input-base.component.d.ts +3 -7
- package/lib/Shared/components/table-https/table-https.component.d.ts +3 -3
- package/lib/Shared/components/text-case-2/text-case.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -57,10 +57,10 @@ export class InputComponent extends InputBase {
|
|
|
57
57
|
if (environment.production)
|
|
58
58
|
console.log(this.form);
|
|
59
59
|
}
|
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", 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>form().getRawValue: {{ff}}</div> -->\n@if (verbose()) {\n <div>disabledSignal: {{ disabledSignal() }}</div>\n <div>validSignal: {{ validSignal() }}</div>\n <div>invalidSignal: {{ invalidSignal() }}</div>\n <div>valueSignal: {{ valueSignal() }}</div>\n <div>hasValue: {{ hasValue() }}</div>\n <div>dirtySignal: {{ dirtySignal() }}</div>\n <div>touchedSignal: {{ touchedSignal() }}</div>\n <div>errorsSignal: {{ errorsSignaljson() }}</div>\n <div>pendingSignal: {{ pendingSignal() }}</div>\n <div>requiredSignal: {{ requiredSignal() }}</div>\n <div>pristineSignal: {{ pristineSignal() }}</div>\n <div>controlRequiredSignal: {{ controlRequiredSignal() }}</div>\n <div>isRequiredSignal: {{ isRequiredSignal() }}</div>\n <div class=\"\">onControlObtainedList Length: {{ onControlObtainedList().length }}</div>\n}\n<div\n class=\" custom-input align-items-center {{ typeSignal() }} gx-1\"\n [formGroup]=\"form() | toAny\"\n [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()\"\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\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [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\" (onSelectionChange)=\"selectedOption(item)\">\n <div\n class=\"option\"\n [matTooltip]=\"item.label\"\n [matTooltipShowDelay]=\"1000\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #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\n class=\"password-icons pointer\"\n (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\n [class]=\"inputClassSignal()\"\n [ngClass]=\"{\n 'has-prefix': !!prefixSignal(),\n disabled: readonlySignal() || disabledSignal()\n }\">\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\n class=\"col-auto text-primary ms-2\"\n (click)=\"iS.log(form())\"\n [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message\n [label]=\"labelSignal()\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [control]=\"control()\" />\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", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { 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.ToAnyPipe, name: "toAny" }, { kind: "pipe", type: i13.SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: i14.ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }] }); }
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", 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>form().getRawValue: {{ff}}</div> -->\n@if (verbose()) {\n <div>disabledSignal: {{ disabledSignal() }}</div>\n <div>validSignal: {{ validSignal() }}</div>\n <div>invalidSignal: {{ invalidSignal() }}</div>\n <div>valueSignal: {{ valueSignal() }}</div>\n <div>hasValue: {{ hasValue() }}</div>\n <div>dirtySignal: {{ dirtySignal() }}</div>\n <div>touchedSignal: {{ touchedSignal() }}</div>\n <div>errorsSignal: {{ errorsSignaljson() }}</div>\n <div>pendingSignal: {{ pendingSignal() }}</div>\n <div>requiredSignal: {{ requiredSignal() }}</div>\n <div>pristineSignal: {{ pristineSignal() }}</div>\n <div>controlRequiredSignal: {{ controlRequiredSignal() }}</div>\n <div>isRequiredSignal: {{ isRequiredSignal() }}</div>\n <div class=\"\">onControlObtainedList Length: {{ onControlObtainedList().length }}</div>\n}\n<div\n class=\" custom-input align-items-center {{ typeSignal() }} gx-1\"\n [formGroup]=\"form() | toAny\"\n [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()\"\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\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [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\" (onSelectionChange)=\"selectedOption(item)\">\n <div\n class=\"option\"\n [matTooltip]=\"item.label\"\n [matTooltipShowDelay]=\"1000\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #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\n class=\"password-icons pointer\"\n (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\n [class]=\"inputClassSignal()\"\n [ngClass]=\"{\n 'has-prefix': !!prefixSignal(),\n disabled: readonlySignal() || disabledSignal()\n }\">\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\n class=\"col-auto text-primary ms-2\"\n (click)=\"iS.log(form())\"\n [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message\n [label]=\"labelSignal()\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [control]=\"control()\" />\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", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { 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.ToAnyPipe, name: "toAny" }, { kind: "pipe", type: i13.SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: i14.ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }] }); }
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{ selector: 'app-input-old', standalone: true, providers: InputProviders, imports: [DateInputComponent, InputSharedModules], template: "<!-- <div>form().getRawValue: {{ff}}</div> -->\n@if (verbose()) {\n <div>disabledSignal: {{ disabledSignal() }}</div>\n <div>validSignal: {{ validSignal() }}</div>\n <div>invalidSignal: {{ invalidSignal() }}</div>\n <div>valueSignal: {{ valueSignal() }}</div>\n <div>hasValue: {{ hasValue() }}</div>\n <div>dirtySignal: {{ dirtySignal() }}</div>\n <div>touchedSignal: {{ touchedSignal() }}</div>\n <div>errorsSignal: {{ errorsSignaljson() }}</div>\n <div>pendingSignal: {{ pendingSignal() }}</div>\n <div>requiredSignal: {{ requiredSignal() }}</div>\n <div>pristineSignal: {{ pristineSignal() }}</div>\n <div>controlRequiredSignal: {{ controlRequiredSignal() }}</div>\n <div>isRequiredSignal: {{ isRequiredSignal() }}</div>\n <div class=\"\">onControlObtainedList Length: {{ onControlObtainedList().length }}</div>\n}\n<div\n class=\" custom-input align-items-center {{ typeSignal() }} gx-1\"\n [formGroup]=\"form() | toAny\"\n [ngClass]=\"{ 'd-flex': !stackedSignal() }\">\n @if (computedShowLabel()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()\"\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\n type=\"file\"\n [id]=\"idSignal()\"\n [class]=\"inputClassSignal()\"\n (change)=\"upload($event)\"\n [accept]=\"accept\"\n [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\" (onSelectionChange)=\"selectedOption(item)\">\n <div\n class=\"option\"\n [matTooltip]=\"item.label\"\n [matTooltipShowDelay]=\"1000\"\n [matTooltipDisabled]=\"ele.scrollWidth <= ele.offsetWidth\"\n #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\n class=\"password-icons pointer\"\n (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\n [class]=\"inputClassSignal()\"\n [ngClass]=\"{\n 'has-prefix': !!prefixSignal(),\n disabled: readonlySignal() || disabledSignal()\n }\">\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\n class=\"col-auto text-primary ms-2\"\n (click)=\"iS.log(form())\"\n [matTooltip]=\"endLabelTooltipSignal() | appTranslate | async\">\n {{ endLabelSignal() | appTranslate | async }}\n </div>\n }\n </div>\n</div>\n@if (showValidationMsgSignal()) {\n <app-validation-message\n [label]=\"labelSignal()\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"\n [control]=\"control()\" />\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"] }]
|
|
66
66
|
}], propDecorators: { _inp: [{
|
|
@@ -283,13 +283,13 @@ export class InputService {
|
|
|
283
283
|
uniqueKey: `${id}_dateFormatter`,
|
|
284
284
|
});
|
|
285
285
|
}
|
|
286
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
287
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
286
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputService, deps: [{ token: i1.DebouncerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
287
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputService, providedIn: 'root' }); }
|
|
288
288
|
}
|
|
289
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputService, decorators: [{
|
|
290
290
|
type: Injectable,
|
|
291
291
|
args: [{
|
|
292
292
|
providedIn: 'root',
|
|
293
293
|
}]
|
|
294
294
|
}], ctorParameters: () => [{ type: i1.DebouncerService }] });
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU10QyxNQUFNLE9BQU8sWUFBWTtJQXFHdkIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQU8sSUFBSSxDQUFDO1lBQ2pDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBUyxJQUFJLENBQUM7WUFDcEMsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFTLElBQUksQ0FBQztZQUN0QyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQVMsSUFBSSxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBUyxJQUFJLENBQUM7WUFDdkMsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFTLElBQUksQ0FBQztTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBbUIsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUE1R3JDLGNBQVMsR0FBRyxNQUFNLENBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLE1BQU0sQ0FBc0IsRUFBRSxDQUFDLENB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eEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFDRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0U7UUFDRCxLQUFLLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsS0FBSyxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDN0IsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO1lBQ3RFLEdBQUcsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQ25CLFFBQVEsQ0FDTixNQUFNLEVBQUUsV0FBVztnQkFDakIsT0FBTztnQkFDUCxNQUFNLEVBQUUsU0FBUztnQkFDakIsT0FBTztnQkFDUCxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsT0FBTztnQkFDUCxNQUFNLEVBQUUsRUFBRSxFQUNaLElBQUksQ0FDTDtZQUNILEdBQUcsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUN4RSxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDaEUsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxJQUFJLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDbEYsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDO1lBQzdELEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUM5RCxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDMUQsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO1lBQ3BFLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztZQUN6RCxFQUFFLEVBQUUsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQ2pFLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUM5RCxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDakUsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO1lBQ3JFLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUM5RCxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDM0QsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxTQUFTLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFGLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUN4RCxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDeEQsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO1lBQ3hFLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUN6RCxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDeEUsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLENBQUM7WUFDL0UsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDO1lBQzFFLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUMzRCxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDaEUsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO1lBQ3BFLEVBQUUsRUFBRSxDQUFDLE1BQVcs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O3FCQUN0QjtZQUNMLENBQUM7WUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFLGdCQUFnQjtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhTVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDb2RlVGl0bGUsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBPcHRpb25MYWJlbFR5cGUgfSBmcm9tICcuL2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFVkZ1bmN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3MvYmFzZS1mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlncy9pbmRleC5jb25maWcnO1xuaW1wb3J0IHsgRGVib3VuY2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL2RlYm91bmNlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50Q2hhbmdlIH0gZnJvbSAnbmd4LXF1aWxsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0U2VydmljZSB7XG4gIHJlYWRvbmx5IG9wdGlvbkxhYmVsbGVyRnVuY3Rpb25zOiB7XG4gICAgW3g6IHN0cmluZ106IChvcHRpb24pID0+IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xuICB9O1xuICByZWFkb25seSB0aW1lSG91cnMgPSBzaWduYWw8KHN0cmluZyB8IG51bWJlcilbXT4oWycxMiddKTtcbiAgcmVhZG9ubHkgdGltZU1pbnV0ZXMgPSBzaWduYWw8KHN0cmluZyB8IG51bWJlcilbXT4oW10pO1xuICByZWFkb25seSB0aW1lU2Vjb25kcyA9IHNpZ25hbDwoc3RyaW5nIHwgbnVtYmVyKVtdPihbXSk7XG4gIHJlYWRvbmx5IHRpbWVNZXJpZGllbSA9IHNpZ25hbDx7IGxhYmVsOiAnYW0nIHwgJ3BtJzsgaW5jcmVtZW50b3I6IDAgfCAxMiB9W10+KFtcbiAgICB7IGxhYmVsOiAnYW0nLCBpbmNyZW1lbnRvcjogMCB9LFxuICAgIHsgbGFiZWw6ICdwbScsIGluY3JlbWVudG9yOiAxMiB9LFxuICBdKTtcbiAgcmVhZG9ubHkgdGltZU1lcmlkaWVtTWFwID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnRpbWVNZXJpZGllbSgpXG4gICAgICAubWFwKCh4KSA9PiAoeyAuLi54LCBfbGFiZWw6IHgubGFiZWwudG9Mb3dlckNhc2UoKSB9KSlcbiAgICAgIC50b01hcCgnX2xhYmVsJyksXG4gICk7XG4gIHJlYWRvbmx5IGRhdGVMZW5ndGhJbmRleCA9IHtcbiAgICAwOiA0LFxuICAgIDE6IDIsXG4gICAgMjogMixcbiAgfTtcbiAgcmVhZG9ubHkgZGF0ZUlucHV0Q2h1bmtzOiB7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBjbGFzczogc3RyaW5nO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgc2VwZXJhdG9yPzogc3RyaW5nO1xuICAgIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IElucHV0VHlwZTtcbiAgICBsZW5ndGg6IG51bWJlcjtcbiAgICBpc1RpbWU/OiBib29sZWFuO1xuICB9W10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdkYXknLFxuICAgICAgZm9ybUNvbnRyb2xOYW1lOiAnZGF5JyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxlbmd0aDogMixcbiAgICAgIGNsYXNzOiAnY29sLTInLFxuICAgICAgd2lkdGg6ICczMnB4JyxcbiAgICAgIC8vIHNlcGVyYXRvcjogJy8nLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdtb250aCcsXG4gICAgICBmb3JtQ29udHJvbE5hbWU6ICdtb250aCcsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBsZW5ndGg6IDMsXG4gICAgICBjbGFzczogJ2NvbC0yJyxcbiAgICAgIHdpZHRoOiAnNTVweCcsXG4gICAgICBzZXBlcmF0b3I6ICcvJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAneWVhcicsXG4gICAgICBmb3JtQ29udHJvbE5hbWU6ICd5ZWFyJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxlbmd0aDogNCxcbiAgICAgIGNsYXNzOiAnY29sLTMnLFxuICAgICAgd2lkdGg6ICc0NXB4JyxcbiAgICAgIHNlcGVyYXRvcjogJy8nLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdob3VyJyxcbiAgICAgIGZvcm1Db250cm9sTmFtZTogJ2hvdXJzJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxlbmd0aDogMixcbiAgICAgIGNsYXNzOiAnY29sLWF1dG8nLFxuICAgICAgd2lkdGg6ICcyNXB4JyxcbiAgICAgIGlzVGltZTogdHJ1ZSxcbiAgICAgIHNlcGVyYXRvcjogJywnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdtaW51dGUnLFxuICAgICAgZm9ybUNvbnRyb2xOYW1lOiAnbWludXRlcycsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBsZW5ndGg6IDIsXG4gICAgICBjbGFzczogJ2NvbC1hdXRvJyxcbiAgICAgIHdpZHRoOiAnMjVweCcsXG4gICAgICBpc1RpbWU6IHRydWUsXG4gICAgICBzZXBlcmF0b3I6ICc6JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnc2Vjb25kJyxcbiAgICAgIGZvcm1Db250cm9sTmFtZTogJ3NlY29uZHMnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGVuZ3RoOiAyLFxuICAgICAgY2xhc3M6ICdjb2wtYXV0bycsXG4gICAgICB3aWR0aDogJzI1cHgnLFxuICAgICAgaXNUaW1lOiB0cnVlLFxuICAgICAgc2VwZXJhdG9yOiAnOicsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ21lcmlkaWVtJyxcbiAgICAgIGZvcm1Db250cm9sTmFtZTogJ21lcmlkaWVtJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxlbmd0aDogMixcbiAgICAgIGNsYXNzOiAnY29sLWF1dG8nLFxuICAgICAgd2lkdGg6ICcyNXB4JyxcbiAgICAgIGlzVGltZTogdHJ1ZSxcbiAgICAgIHNlcGVyYXRvcjogJzonLFxuICAgIH0sXG4gIF07XG5cbiAgZ2V0IGRhdGVGUygpIHtcbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBkYXRlOiBuZXcgRm9ybUNvbnRyb2w8RGF0ZT4obnVsbCksXG4gICAgICBob3VyczogbmV3IEZvcm1Db250cm9sPHN0cmluZz4obnVsbCksXG4gICAgICBtaW51dGVzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPihudWxsKSxcbiAgICAgIHNlY29uZHM6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KG51bGwpLFxuICAgICAgbWVyaWRpZW06IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KG51bGwpLFxuICAgICAgcmF3VmFsdWU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KG51bGwpLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRlYm91bmNlcjogRGVib3VuY2VyU2VydmljZSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmRhdGVJbnB1dENodW5rcykge1xuICAgICAgaXRlbS5wbGFjZWhvbGRlciA9ICctJy5yZXBlYXQoaXRlbS5sZW5ndGgpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpbmRleCA9IDE7IGluZGV4IDw9IDExOyBpbmRleCsrKSB7XG4gICAgICB0aGlzLnRpbWVIb3Vycy51cGRhdGUoKHRpbWVIb3VycykgPT4gdGltZUhvdXJzLmNvbmNhdChbaW5kZXhdKSk7XG4gICAgfVxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCAxMDsgaW5kZXgrKykge1xuICAgICAgdGhpcy50aW1lTWludXRlcy51cGRhdGUoKHRpbWVNaW51dGVzKSA9PiB0aW1lTWludXRlcy5jb25jYXQoWycwJyArIGluZGV4XSkpO1xuICAgICAgdGhpcy50aW1lU2Vjb25kcy51cGRhdGUoKHRpbWVTZWNvbmRzKSA9PiB0aW1lU2Vjb25kcy5jb25jYXQoWycwJyArIGluZGV4XSkpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpbmRleCA9IDEwOyBpbmRleCA8PSAxMjsgaW5kZXgrKykge1xuICAgICAgdGhpcy50aW1lTWludXRlcy51cGRhdGUoKHRpbWVNaW51dGVzKSA9PiB0aW1lTWludXRlcy5jb25jYXQoW2luZGV4XSkpO1xuICAgICAgdGhpcy50aW1lU2Vjb25kcy51cGRhdGUoKHRpbWVTZWNvbmRzKSA9PiB0aW1lU2Vjb25kcy5jb25jYXQoW2luZGV4XSkpO1xuICAgIH1cbiAgICBmb3IgKGxldCBpbmRleCA9IDEzOyBpbmRleCA8PSA1OTsgaW5kZXgrKylcbiAgICAgIHRoaXMudGltZVNlY29uZHMudXBkYXRlKCh0aW1lU2Vjb25kcykgPT4gdGltZVNlY29uZHMuY29uY2F0KFtpbmRleF0pKTtcbiAgICBjb25zdCBsYWJlbGxlciA9IHRoaXMubGFiZWxsZXI7XG4gICAgdGhpcy5vcHRpb25MYWJlbGxlckZ1bmN0aW9ucyA9IHtcbiAgICAgIGFjZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmFjY291bnRObywgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBibms6IChvcHRpb246IGFueSkgPT5cbiAgICAgICAgbGFiZWxsZXIoXG4gICAgICAgICAgb3B0aW9uPy5hY2NvdW50TmFtZSArXG4gICAgICAgICAgICAnICB8ICAnICtcbiAgICAgICAgICAgIG9wdGlvbj8uYWNjb3VudE5vICtcbiAgICAgICAgICAgICcgIHwgICcgK1xuICAgICAgICAgICAgb3B0aW9uPy5iYW5rTmFtZSArXG4gICAgICAgICAgICAnICB8ICAnICtcbiAgICAgICAgICAgIG9wdGlvbj8ubm8sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgKSxcbiAgICAgIGNjZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmNvbXBhbnlDb2RlLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIGNkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uY29kZSwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBjZHQ6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlLCBvcHRpb24/LmRlc2NyaXB0aW9uIHx8IG9wdGlvbj8udGl0bGUpLFxuICAgICAgY2Y6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlLCBvcHRpb24/LmZ1bGxOYW1lKSxcbiAgICAgIGNnOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uY29kZUdyb3VwLCBvcHRpb24/LmNvZGUpLFxuICAgICAgY2w6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlLCBvcHRpb24/LmxhYmVsKSxcbiAgICAgIGNtZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmNvbXBhbnksIG9wdGlvbj8uZGVzY3JpcHRpb24pLFxuICAgICAgY246IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlLCBvcHRpb24/Lm5hbWUpLFxuICAgICAgY3Q6IChvcHRpb246IElDb2RlVGl0bGUpID0+IGxhYmVsbGVyKG9wdGlvbj8uY29kZSwgb3B0aW9uPy50aXRsZSksXG4gICAgICBjdTogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmN1cnJDb2RlLCBvcHRpb24/LnRpdGxlKSxcbiAgICAgIGdkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uZ3JvdXAsIG9wdGlvbj8uZGVzY3JpcHRpb24pLFxuICAgICAgaGE6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5oaWVyQWdlbnRObywgb3B0aW9uPy5hZ2VudE5hbWUpLFxuICAgICAgaWQ6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5pZCwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBpZjogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmlkLCBvcHRpb24/LmZ1bGxOYW1lKSxcbiAgICAgIGlmbDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LnVzZXJJZCwgYCR7b3B0aW9uPy5maXJzdE5hbWV9ICR7b3B0aW9uPy5sYXN0TmFtZX1gKSxcbiAgICAgIGlsOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uaWQsIG9wdGlvbj8ubGFiZWwpLFxuICAgICAgaXQ6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5pZCwgb3B0aW9uPy50aXRsZSksXG4gICAgICBtZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/Lm1rdEV2ZW50Q29kZSwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBuYTogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/Lm5vLCBvcHRpb24/LmFtb3VudCksXG4gICAgICBwZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LnBheW91dE1ldGhvZCwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBwZXA6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5wZXJpbENvZGUsIG9wdGlvbj8ucGVyaWxDb2RlRGVzY3JpcHRpb24pLFxuICAgICAgcGFtOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8ucG9saWN5Tm9TdWZmaXgsIG9wdGlvbj8ubWVtYmVyTmFtZSksXG4gICAgICBuZjogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/Lm5vLCBvcHRpb24/LmZ1bGxOYW1lKSxcbiAgICAgIHRkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8udHlwZSwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICB1ZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LnVzZXJNZW51LCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIHVmOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8udXNlck5hbWUsIG9wdGlvbj8uZnVsbE5hbWUpLFxuICAgICAgdmw6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIobnVsbCwgb3B0aW9uPy5sYWJlbCksXG4gICAgICB2djogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LnZlcnNpb25Obywgb3B0aW9uPy52ZXJzaW9uRGF0ZSksXG4gICAgfTtcbiAgfVxuICBsYWJlbGxlciA9IEVWRnVuY3Rpb25zLnN0ckNvbmNhdGVuYXRvcjtcblxuICBvcHRpb25zRm9ybWF0dGVyID0gPFRSb3cgPSBhbnk+KFxuICAgIG9wdGlvbnM6IFRSb3dbXSxcbiAgICB2YWx1ZUZpZWxkPzogc3RyaW5nLFxuICAgIGZvcm1hdHRlcj86IChpdGVtOiBhbnkpID0+IHN0cmluZyxcbiAgICBsYWJlbFR5cGU/OiBPcHRpb25MYWJlbFR5cGUsXG4gICAgbGFiZWxGaWVsZD86IHN0cmluZyxcbiAgICBhdXRvUGlja1ZhbHVlRmllbGQ/OiBib29sZWFuLFxuICApOiBJT3B0aW9uPFRSb3c+W10gPT4ge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICghb3B0aW9ucz8ubGVuZ3RoKSByZXR1cm4gW107XG4gICAgaWYgKGZvcm1hdHRlcilcbiAgICAgIHJldHVybiBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgICB2YWx1ZTogdmFsdWVGaWVsZCAmJiBvcHRpb24gPyBvcHRpb24/Llt2YWx1ZUZpZWxkXSA6IG9wdGlvbixcbiAgICAgICAgbGFiZWw6IGZvcm1hdHRlcihvcHRpb24pLFxuICAgICAgICBvcmlnaW5hbFJvdzogb3B0aW9uLFxuICAgICAgfSkpO1xuICAgIGlmIChsYWJlbFR5cGUpXG4gICAgICByZXR1cm4gb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbkxhYmVsbGVyRnVuY3Rpb25zW2xhYmVsVHlwZV0ob3B0aW9uKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiB2YWx1ZUZpZWxkXG4gICAgICAgICAgICA/IG9wdGlvbj8uW3ZhbHVlRmllbGRdXG4gICAgICAgICAgICA6IGF1dG9QaWNrVmFsdWVGaWVsZFxuICAgICAgICAgICAgICA/IGZvcm1hdHRlZE9wdGlvbi52YWx1ZVxuICAgICAgICAgICAgICA6IG9wdGlvbixcbiAgICAgICAgICBsYWJlbDogZm9ybWF0dGVkT3B0aW9uLmxhYmVsLFxuICAgICAgICAgIG9yaWdpbmFsUm93OiBvcHRpb24sXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICBpZiAobGFiZWxGaWVsZClcbiAgICAgIHJldHVybiBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoe1xuICAgICAgICB2YWx1ZTogdmFsdWVGaWVsZCA/IG9wdGlvbj8uW3ZhbHVlRmllbGRdIDogb3B0aW9uLFxuICAgICAgICBsYWJlbDogb3B0aW9uPy5bbGFiZWxGaWVsZF0sXG4gICAgICAgIG9yaWdpbmFsUm93OiBvcHRpb24sXG4gICAgICB9KSk7XG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgbGFiZWw6IG9wdGlvbiBhcyBzdHJpbmcsXG4gICAgICBvcmlnaW5hbFJvdzogb3B0aW9uLFxuICAgIH0pKTtcbiAgfTtcblxuICB0cmFja0J5VmFsdWUoaW5kZXgsIGl0ZW06IElPcHRpb24pIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuICBsb2coZm9ybSkge1xuICAgIC8vIGlmICghZW52aXJvbm1lbnQucHJvZHVjdGlvbilcbiAgICBjb25zb2xlLmxvZyhmb3JtKTtcbiAgfVxuXG4gIGZvcm1hdFVzZXJJbnB1dChlOiBFdmVudCwgZm9ybTogdHlwZW9mIHRoaXMuZGF0ZUZTLCBzaG93VGltZTogYm9vbGVhbiwgaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZGVib3VuY2VyLmRlYm91bmNlcih7XG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nOiBzdHJpbmcgPSBlLnRhcmdldFsndmFsdWUnXTtcbiAgICAgICAgLy8gQXVnLiAxMCwgMjAyMy4gMDM6MDI6MDMgUE1cbiAgICAgICAgaWYgKCFkYXRlU3RyaW5nPy50cmltKCkpXG4gICAgICAgICAgZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGRhdGU6IG51bGwsXG4gICAgICAgICAgICBob3VyczogbnVsbCxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRzOiBudWxsLFxuICAgICAgICAgICAgbWVyaWRpZW06IG51bGwsXG4gICAgICAgICAgfSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGRhdGVTdHJpbmcuaW5jbHVkZXMoJy4gJykpIHtcbiAgICAgICAgICAgICAgY29uc3QgW21vbnRoQ2h1bmssIGRheVllYXJDaHVuaywgdGltZUNodW5rXSA9IGRhdGVTdHJpbmcuc3BsaXQoJy4gJyk7XG4gICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gQ29uZmlnLlNob3J0TW9udGhzTWFwW21vbnRoQ2h1bmsudG9Mb3dlckNhc2UoKV0/Lmlzb1N0cjtcbiAgICAgICAgICAgICAgY29uc3QgW2RheSwgeWVhcl0gPSBkYXlZZWFyQ2h1bms/LnNwbGl0KCcsICcpO1xuICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YCk7XG4gICAgICAgICAgICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtobXMsIG1lcmlkaWVtXSA9IHRpbWVDaHVuaz8uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBbaG91cnMsIG1pbnV0ZXMsIHNlY29uZHNdID0gaG1zPy5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgIGZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgICAgaG91cnMsXG4gICAgICAgICAgICAgICAgICBtaW51dGVzLFxuICAgICAgICAgICAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgICAgICAgICAgIG1lcmlkaWVtOiB0aGlzLnRpbWVNZXJpZGllbU1hcFttZXJpZGllbT8udG9Mb3dlckNhc2UoKV0/LmluY3JlbWVudG9yLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICBmb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNodW5rcyA9IGRhdGVTdHJpbmcuc3BsaXQoJyAnKS5maWx0ZXIoKHgpID0+IHggIT0gJycpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjaHVua3MpO1xuICAgICAgICAgICAgICAvLyBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2h1bmtzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAvLyAgIGNodW5rc1tpbmRleF0gPSBjaHVua3NbaW5kZXhdLnNwbGl0KCcuJykuam9pbignJyk7XG4gICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgLy8gY29uc3QgZGF0ZUNodW5rID0gY2h1bmtzWzBdLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGlmIChzaG93VGltZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVDaHVua3MgPSBjaHVua3NbMV0uc3BsaXQoJzonKTtcbiAgICAgICAgICAgICAgICBmb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgICAgIGNodW5rc1swXVxuICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgICAgICAgICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGQsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoJzAnLnJlcGVhdCh0aGlzLmRhdGVMZW5ndGhJbmRleFtpXSkgKyBkKS5zbGljZSgtdGhpcy5kYXRlTGVuZ3RoSW5kZXhbaV0pLFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAuam9pbignLScpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIGhvdXJzOiB0aW1lQ2h1bmtzWzBdLFxuICAgICAgICAgICAgICAgICAgbWludXRlczogdGltZUNodW5rc1sxXSxcbiAgICAgICAgICAgICAgICAgIHNlY29uZHM6IHRpbWVDaHVua3NbMl0sXG4gICAgICAgICAgICAgICAgICBtZXJpZGllbTogdGhpcy50aW1lTWVyaWRpZW1NYXBbdGltZUNodW5rc1szXT8udG9Mb3dlckNhc2UoKV0/LmluY3JlbWVudG9yLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICBmb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoY2h1bmtzWzBdLnNwbGl0KCcvJykucmV2ZXJzZSgpLmpvaW4oJy0nKSksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhjaHVua3MpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdW5pcXVlS2V5OiBgJHtpZH1fZGF0ZUZvcm1hdHRlcmAsXG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2hVc2VycyA9IChxdWVyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHVzZXJOYW1lPzogc3RyaW5nOyBmdWxsTmFtZT86IHN0cmluZyB9W10+ID0+IG9mKFtdKTtcblxuICBvbkNvbnRlbnRDaGFuZ2VkID0gPFRGIGV4dGVuZHMgeyBbeCBpbiBrZXlvZiBURl06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfT4oXG4gICAgJGV2ZW50OiBDb250ZW50Q2hhbmdlLFxuICAgIGZvcm06IEZvcm1Hcm91cDxURj4sXG4gICAgZmllbGQ6IGtleW9mIFRGLFxuICApID0+IHtcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH07XG5cbiAgaW5wdXRDbGFzcyA9IChcbiAgICBpbnBDbDogc3RyaW5nLFxuICAgIGRpcnR5PzogYm9vbGVhbixcbiAgICB2YWxpZD86IGJvb2xlYW4sXG4gICAgaW52YWxpZD86IGJvb2xlYW4sXG4gICAgc2hvd1ZhbGlkYXRpb24/OiBib29sZWFuLFxuICApID0+IHtcbiAgICBsZXQgY2xzID0gaW5wQ2wgKyAnIGZvcm0tY29udHJvbCc7XG4gICAgaWYgKHNob3dWYWxpZGF0aW9uICYmIGRpcnR5KSB7XG4gICAgICBjbHMgKz0gdmFsaWQgPyAnIGJvcmRlcmNoZWNrJyA6IGludmFsaWQgPyAnIGJvcmRlcnVuY2hlY2snIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBjbHM7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbjxUUm93ID0gYW55PiB7XG4gIHZhbHVlOiBhbnk7XG4gIG9yaWdpbmFsUm93OiBUUm93O1xuICBsYWJlbDogc3RyaW5nO1xufVxuIl19
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU10QyxNQUFNLE9BQU8sWUFBWTtJQXFHdkIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQU8sSUFBSSxDQUFDO1lBQ2pDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBUyxJQUFJLENBQUM7WUFDcEMsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFTLElBQUksQ0FBQztZQUN0QyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQVMsSUFBSSxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBUyxJQUFJLENBQUM7WUFDdkMsUUFBUSxFQUFFLElBQUksV0FBVyxDQUFTLElBQUksQ0FBQztTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBbUIsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUE1R3JDLGNBQVMsR0FBRyxNQUFNLENBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLE1BQU0sQ0FBc0IsRUFBRSxDQUFDLENB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RSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsS0FBSyxJQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxLQUFLLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRTtZQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUM3QixHQUFHLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDdEUsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FDbkIsUUFBUSxDQUNOLE1BQU0sRUFBRSxXQUFXO2dCQUNqQixPQUFPO2dCQUNQLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPO2dCQUNQLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixPQUFPO2dCQUNQLE1BQU0sRUFBRSxFQUFFLEVBQ1osSUFBSSxDQUNMO1lBQ0gsR0FBRyxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO1lBQ3hFLEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUNoRSxHQUFHLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksTUFBTSxFQUFFLEtBQUssQ0FBQztZQUNsRixFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDN0QsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQzlELEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUMxRCxHQUFHLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7WUFDcEUsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ3pELEVBQUUsRUFBRSxDQUFDLE1BQWtCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDakUsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQzlELEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQztZQUNqRSxFQUFFLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7WUFDckUsRUFBRSxFQUFFLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO1lBQzlELEVBQUUsRUFBRSxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUMzRCxHQUFHLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLFNBQVMsSUFBSSxNQUFNLEVBQUUsUUFB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QUM7d0JBQ1AsQ0FBQzt3QkFDRCx1QkFBdUI7b0JBQ3pCLENBQUM7b0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQzt3QkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QixDQUFDO1lBQ0wsQ0FBQztZQUNELFNBQVMsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBeFNVLFlBQVk7a0hBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUNvZGVUaXRsZSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4vaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEVWRnVuY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlncy9iYXNlLWZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb25maWdzL2luZGV4LmNvbmZpZyc7XG5pbXBvcnQgeyBEZWJvdW5jZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvZGVib3VuY2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRDaGFuZ2UgfSBmcm9tICduZ3gtcXVpbGwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgb3B0aW9uTGFiZWxsZXJGdW5jdGlvbnM6IHtcbiAgICBbeDogc3RyaW5nXTogKG9wdGlvbikgPT4geyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH07XG4gIH07XG4gIHJlYWRvbmx5IHRpbWVIb3VycyA9IHNpZ25hbDwoc3RyaW5nIHwgbnVtYmVyKVtdPihbJzEyJ10pO1xuICByZWFkb25seSB0aW1lTWludXRlcyA9IHNpZ25hbDwoc3RyaW5nIHwgbnVtYmVyKVtdPihbXSk7XG4gIHJlYWRvbmx5IHRpbWVTZWNvbmRzID0gc2lnbmFsPChzdHJpbmcgfCBudW1iZXIpW10+KFtdKTtcbiAgcmVhZG9ubHkgdGltZU1lcmlkaWVtID0gc2lnbmFsPHsgbGFiZWw6ICdhbScgfCAncG0nOyBpbmNyZW1lbnRvcjogMCB8IDEyIH1bXT4oW1xuICAgIHsgbGFiZWw6ICdhbScsIGluY3JlbWVudG9yOiAwIH0sXG4gICAgeyBsYWJlbDogJ3BtJywgaW5jcmVtZW50b3I6IDEyIH0sXG4gIF0pO1xuICByZWFkb25seSB0aW1lTWVyaWRpZW1NYXAgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMudGltZU1lcmlkaWVtKClcbiAgICAgIC5tYXAoKHgpID0+ICh7IC4uLngsIF9sYWJlbDogeC5sYWJlbC50b0xvd2VyQ2FzZSgpIH0pKVxuICAgICAgLnRvTWFwKCdfbGFiZWwnKSxcbiAgKTtcbiAgcmVhZG9ubHkgZGF0ZUxlbmd0aEluZGV4ID0ge1xuICAgIDA6IDQsXG4gICAgMTogMixcbiAgICAyOiAyLFxuICB9O1xuICByZWFkb25seSBkYXRlSW5wdXRDaHVua3M6IHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGNsYXNzOiBzdHJpbmc7XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICBzZXBlcmF0b3I/OiBzdHJpbmc7XG4gICAgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gICAgdHlwZTogSW5wdXRUeXBlO1xuICAgIGxlbmd0aDogbnVtYmVyO1xuICAgIGlzVGltZT86IGJvb2xlYW47XG4gIH1bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ2RheScsXG4gICAgICBmb3JtQ29udHJvbE5hbWU6ICdkYXknLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGVuZ3RoOiAyLFxuICAgICAgY2xhc3M6ICdjb2wtMicsXG4gICAgICB3aWR0aDogJzMycHgnLFxuICAgICAgLy8gc2VwZXJhdG9yOiAnLycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ21vbnRoJyxcbiAgICAgIGZvcm1Db250cm9sTmFtZTogJ21vbnRoJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxlbmd0aDogMyxcbiAgICAgIGNsYXNzOiAnY29sLTInLFxuICAgICAgd2lkdGg6ICc1NXB4JyxcbiAgICAgIHNlcGVyYXRvcjogJy8nLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICd5ZWFyJyxcbiAgICAgIGZvcm1Db250cm9sTmFtZTogJ3llYXInLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGVuZ3RoOiA0LFxuICAgICAgY2xhc3M6ICdjb2wtMycsXG4gICAgICB3aWR0aDogJzQ1cHgnLFxuICAgICAgc2VwZXJhdG9yOiAnLycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ2hvdXInLFxuICAgICAgZm9ybUNvbnRyb2xOYW1lOiAnaG91cnMnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGVuZ3RoOiAyLFxuICAgICAgY2xhc3M6ICdjb2wtYXV0bycsXG4gICAgICB3aWR0aDogJzI1cHgnLFxuICAgICAgaXNUaW1lOiB0cnVlLFxuICAgICAgc2VwZXJhdG9yOiAnLCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ21pbnV0ZScsXG4gICAgICBmb3JtQ29udHJvbE5hbWU6ICdtaW51dGVzJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxlbmd0aDogMixcbiAgICAgIGNsYXNzOiAnY29sLWF1dG8nLFxuICAgICAgd2lkdGg6ICcyNXB4JyxcbiAgICAgIGlzVGltZTogdHJ1ZSxcbiAgICAgIHNlcGVyYXRvcjogJzonLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdzZWNvbmQnLFxuICAgICAgZm9ybUNvbnRyb2xOYW1lOiAnc2Vjb25kcycsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBsZW5ndGg6IDIsXG4gICAgICBjbGFzczogJ2NvbC1hdXRvJyxcbiAgICAgIHdpZHRoOiAnMjVweCcsXG4gICAgICBpc1RpbWU6IHRydWUsXG4gICAgICBzZXBlcmF0b3I6ICc6JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnbWVyaWRpZW0nLFxuICAgICAgZm9ybUNvbnRyb2xOYW1lOiAnbWVyaWRpZW0nLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGVuZ3RoOiAyLFxuICAgICAgY2xhc3M6ICdjb2wtYXV0bycsXG4gICAgICB3aWR0aDogJzI1cHgnLFxuICAgICAgaXNUaW1lOiB0cnVlLFxuICAgICAgc2VwZXJhdG9yOiAnOicsXG4gICAgfSxcbiAgXTtcblxuICBnZXQgZGF0ZUZTKCkge1xuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGRhdGU6IG5ldyBGb3JtQ29udHJvbDxEYXRlPihudWxsKSxcbiAgICAgIGhvdXJzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPihudWxsKSxcbiAgICAgIG1pbnV0ZXM6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KG51bGwpLFxuICAgICAgc2Vjb25kczogbmV3IEZvcm1Db250cm9sPHN0cmluZz4obnVsbCksXG4gICAgICBtZXJpZGllbTogbmV3IEZvcm1Db250cm9sPG51bWJlcj4obnVsbCksXG4gICAgICByYXdWYWx1ZTogbmV3IEZvcm1Db250cm9sPHN0cmluZz4obnVsbCksXG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGVib3VuY2VyOiBEZWJvdW5jZXJTZXJ2aWNlKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZGF0ZUlucHV0Q2h1bmtzKSB7XG4gICAgICBpdGVtLnBsYWNlaG9sZGVyID0gJy0nLnJlcGVhdChpdGVtLmxlbmd0aCk7XG4gICAgfVxuICAgIGZvciAobGV0IGluZGV4ID0gMTsgaW5kZXggPD0gMTE7IGluZGV4KyspIHtcbiAgICAgIHRoaXMudGltZUhvdXJzLnVwZGF0ZSgodGltZUhvdXJzKSA9PiB0aW1lSG91cnMuY29uY2F0KFtpbmRleF0pKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IDEwOyBpbmRleCsrKSB7XG4gICAgICB0aGlzLnRpbWVNaW51dGVzLnVwZGF0ZSgodGltZU1pbnV0ZXMpID0+IHRpbWVNaW51dGVzLmNvbmNhdChbJzAnICsgaW5kZXhdKSk7XG4gICAgICB0aGlzLnRpbWVTZWNvbmRzLnVwZGF0ZSgodGltZVNlY29uZHMpID0+IHRpbWVTZWNvbmRzLmNvbmNhdChbJzAnICsgaW5kZXhdKSk7XG4gICAgfVxuICAgIGZvciAobGV0IGluZGV4ID0gMTA7IGluZGV4IDw9IDEyOyBpbmRleCsrKSB7XG4gICAgICB0aGlzLnRpbWVNaW51dGVzLnVwZGF0ZSgodGltZU1pbnV0ZXMpID0+IHRpbWVNaW51dGVzLmNvbmNhdChbaW5kZXhdKSk7XG4gICAgICB0aGlzLnRpbWVTZWNvbmRzLnVwZGF0ZSgodGltZVNlY29uZHMpID0+IHRpbWVTZWNvbmRzLmNvbmNhdChbaW5kZXhdKSk7XG4gICAgfVxuICAgIGZvciAobGV0IGluZGV4ID0gMTM7IGluZGV4IDw9IDU5OyBpbmRleCsrKVxuICAgICAgdGhpcy50aW1lU2Vjb25kcy51cGRhdGUoKHRpbWVTZWNvbmRzKSA9PiB0aW1lU2Vjb25kcy5jb25jYXQoW2luZGV4XSkpO1xuICAgIGNvbnN0IGxhYmVsbGVyID0gdGhpcy5sYWJlbGxlcjtcbiAgICB0aGlzLm9wdGlvbkxhYmVsbGVyRnVuY3Rpb25zID0ge1xuICAgICAgYWNkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uYWNjb3VudE5vLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIGJuazogKG9wdGlvbjogYW55KSA9PlxuICAgICAgICBsYWJlbGxlcihcbiAgICAgICAgICBvcHRpb24/LmFjY291bnROYW1lICtcbiAgICAgICAgICAgICcgIHwgICcgK1xuICAgICAgICAgICAgb3B0aW9uPy5hY2NvdW50Tm8gK1xuICAgICAgICAgICAgJyAgfCAgJyArXG4gICAgICAgICAgICBvcHRpb24/LmJhbmtOYW1lICtcbiAgICAgICAgICAgICcgIHwgICcgK1xuICAgICAgICAgICAgb3B0aW9uPy5ubyxcbiAgICAgICAgICBudWxsLFxuICAgICAgICApLFxuICAgICAgY2NkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uY29tcGFueUNvZGUsIG9wdGlvbj8uZGVzY3JpcHRpb24pLFxuICAgICAgY2Q6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIGNkdDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmNvZGUsIG9wdGlvbj8uZGVzY3JpcHRpb24gfHwgb3B0aW9uPy50aXRsZSksXG4gICAgICBjZjogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmNvZGUsIG9wdGlvbj8uZnVsbE5hbWUpLFxuICAgICAgY2c6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlR3JvdXAsIG9wdGlvbj8uY29kZSksXG4gICAgICBjbDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmNvZGUsIG9wdGlvbj8ubGFiZWwpLFxuICAgICAgY21kOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uY29tcGFueSwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBjbjogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmNvZGUsIG9wdGlvbj8ubmFtZSksXG4gICAgICBjdDogKG9wdGlvbjogSUNvZGVUaXRsZSkgPT4gbGFiZWxsZXIob3B0aW9uPy5jb2RlLCBvcHRpb24/LnRpdGxlKSxcbiAgICAgIGN1OiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uY3VyckNvZGUsIG9wdGlvbj8udGl0bGUpLFxuICAgICAgZ2Q6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5ncm91cCwgb3B0aW9uPy5kZXNjcmlwdGlvbiksXG4gICAgICBoYTogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmhpZXJBZ2VudE5vLCBvcHRpb24/LmFnZW50TmFtZSksXG4gICAgICBpZDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmlkLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIGlmOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8uaWQsIG9wdGlvbj8uZnVsbE5hbWUpLFxuICAgICAgaWZsOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8udXNlcklkLCBgJHtvcHRpb24/LmZpcnN0TmFtZX0gJHtvcHRpb24/Lmxhc3ROYW1lfWApLFxuICAgICAgaWw6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5pZCwgb3B0aW9uPy5sYWJlbCksXG4gICAgICBpdDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LmlkLCBvcHRpb24/LnRpdGxlKSxcbiAgICAgIG1kOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8ubWt0RXZlbnRDb2RlLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIG5hOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8ubm8sIG9wdGlvbj8uYW1vdW50KSxcbiAgICAgIHBkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8ucGF5b3V0TWV0aG9kLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIHBlcDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihvcHRpb24/LnBlcmlsQ29kZSwgb3B0aW9uPy5wZXJpbENvZGVEZXNjcmlwdGlvbiksXG4gICAgICBwYW06IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy5wb2xpY3lOb1N1ZmZpeCwgb3B0aW9uPy5tZW1iZXJOYW1lKSxcbiAgICAgIG5mOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8ubm8sIG9wdGlvbj8uZnVsbE5hbWUpLFxuICAgICAgdGQ6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy50eXBlLCBvcHRpb24/LmRlc2NyaXB0aW9uKSxcbiAgICAgIHVkOiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8udXNlck1lbnUsIG9wdGlvbj8uZGVzY3JpcHRpb24pLFxuICAgICAgdWY6IChvcHRpb246IGFueSkgPT4gbGFiZWxsZXIob3B0aW9uPy51c2VyTmFtZSwgb3B0aW9uPy5mdWxsTmFtZSksXG4gICAgICB2bDogKG9wdGlvbjogYW55KSA9PiBsYWJlbGxlcihudWxsLCBvcHRpb24/LmxhYmVsKSxcbiAgICAgIHZ2OiAob3B0aW9uOiBhbnkpID0+IGxhYmVsbGVyKG9wdGlvbj8udmVyc2lvbk5vLCBvcHRpb24/LnZlcnNpb25EYXRlKSxcbiAgICB9O1xuICB9XG4gIGxhYmVsbGVyID0gRVZGdW5jdGlvbnMuc3RyQ29uY2F0ZW5hdG9yO1xuXG4gIG9wdGlvbnNGb3JtYXR0ZXIgPSA8VFJvdyA9IGFueT4oXG4gICAgb3B0aW9uczogVFJvd1tdLFxuICAgIHZhbHVlRmllbGQ/OiBzdHJpbmcsXG4gICAgZm9ybWF0dGVyPzogKGl0ZW06IGFueSkgPT4gc3RyaW5nLFxuICAgIGxhYmVsVHlwZT86IE9wdGlvbkxhYmVsVHlwZSxcbiAgICBsYWJlbEZpZWxkPzogc3RyaW5nLFxuICAgIGF1dG9QaWNrVmFsdWVGaWVsZD86IGJvb2xlYW4sXG4gICk6IElPcHRpb248VFJvdz5bXSA9PiB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgaWYgKCFvcHRpb25zPy5sZW5ndGgpIHJldHVybiBbXTtcbiAgICBpZiAoZm9ybWF0dGVyKVxuICAgICAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICAgIHZhbHVlOiB2YWx1ZUZpZWxkICYmIG9wdGlvbiA/IG9wdGlvbj8uW3ZhbHVlRmllbGRdIDogb3B0aW9uLFxuICAgICAgICBsYWJlbDogZm9ybWF0dGVyKG9wdGlvbiksXG4gICAgICAgIG9yaWdpbmFsUm93OiBvcHRpb24sXG4gICAgICB9KSk7XG4gICAgaWYgKGxhYmVsVHlwZSlcbiAgICAgIHJldHVybiBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE9wdGlvbiA9IHRoaXMub3B0aW9uTGFiZWxsZXJGdW5jdGlvbnNbbGFiZWxUeXBlXShvcHRpb24pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlRmllbGRcbiAgICAgICAgICAgID8gb3B0aW9uPy5bdmFsdWVGaWVsZF1cbiAgICAgICAgICAgIDogYXV0b1BpY2tWYWx1ZUZpZWxkXG4gICAgICAgICAgICAgID8gZm9ybWF0dGVkT3B0aW9uLnZhbHVlXG4gICAgICAgICAgICAgIDogb3B0aW9uLFxuICAgICAgICAgIGxhYmVsOiBmb3JtYXR0ZWRPcHRpb24ubGFiZWwsXG4gICAgICAgICAgb3JpZ2luYWxSb3c6IG9wdGlvbixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIGlmIChsYWJlbEZpZWxkKVxuICAgICAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICAgIHZhbHVlOiB2YWx1ZUZpZWxkID8gb3B0aW9uPy5bdmFsdWVGaWVsZF0gOiBvcHRpb24sXG4gICAgICAgIGxhYmVsOiBvcHRpb24/LltsYWJlbEZpZWxkXSxcbiAgICAgICAgb3JpZ2luYWxSb3c6IG9wdGlvbixcbiAgICAgIH0pKTtcbiAgICByZXR1cm4gb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKHtcbiAgICAgIHZhbHVlOiBvcHRpb24sXG4gICAgICBsYWJlbDogb3B0aW9uIGFzIHN0cmluZyxcbiAgICAgIG9yaWdpbmFsUm93OiBvcHRpb24sXG4gICAgfSkpO1xuICB9O1xuXG4gIHRyYWNrQnlWYWx1ZShpbmRleCwgaXRlbTogSU9wdGlvbikge1xuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG4gIGxvZyhmb3JtKSB7XG4gICAgLy8gaWYgKCFlbnZpcm9ubWVudC5wcm9kdWN0aW9uKVxuICAgIGNvbnNvbGUubG9nKGZvcm0pO1xuICB9XG5cbiAgZm9ybWF0VXNlcklucHV0KGU6IEV2ZW50LCBmb3JtOiB0eXBlb2YgdGhpcy5kYXRlRlMsIHNob3dUaW1lOiBib29sZWFuLCBpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWJvdW5jZXIuZGVib3VuY2VyKHtcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGVTdHJpbmc6IHN0cmluZyA9IGUudGFyZ2V0Wyd2YWx1ZSddO1xuICAgICAgICAvLyBBdWcuIDEwLCAyMDIzLiAwMzowMjowMyBQTVxuICAgICAgICBpZiAoIWRhdGVTdHJpbmc/LnRyaW0oKSlcbiAgICAgICAgICBmb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZGF0ZTogbnVsbCxcbiAgICAgICAgICAgIGhvdXJzOiBudWxsLFxuICAgICAgICAgICAgbWludXRlczogbnVsbCxcbiAgICAgICAgICAgIHNlY29uZHM6IG51bGwsXG4gICAgICAgICAgICBtZXJpZGllbTogbnVsbCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoZGF0ZVN0cmluZy5pbmNsdWRlcygnLiAnKSkge1xuICAgICAgICAgICAgICBjb25zdCBbbW9udGhDaHVuaywgZGF5WWVhckNodW5rLCB0aW1lQ2h1bmtdID0gZGF0ZVN0cmluZy5zcGxpdCgnLiAnKTtcbiAgICAgICAgICAgICAgY29uc3QgbW9udGggPSBDb25maWcuU2hvcnRNb250aHNNYXBbbW9udGhDaHVuay50b0xvd2VyQ2FzZSgpXT8uaXNvU3RyO1xuICAgICAgICAgICAgICBjb25zdCBbZGF5LCB5ZWFyXSA9IGRheVllYXJDaHVuaz8uc3BsaXQoJywgJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gKTtcbiAgICAgICAgICAgICAgaWYgKHNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2htcywgbWVyaWRpZW1dID0gdGltZUNodW5rPy5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSBobXM/LnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAgICAgICBob3VycyxcbiAgICAgICAgICAgICAgICAgIG1pbnV0ZXMsXG4gICAgICAgICAgICAgICAgICBzZWNvbmRzLFxuICAgICAgICAgICAgICAgICAgbWVyaWRpZW06IHRoaXMudGltZU1lcmlkaWVtTWFwW21lcmlkaWVtPy50b0xvd2VyQ2FzZSgpXT8uaW5jcmVtZW50b3IsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgIGZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgY2h1bmtzID0gZGF0ZVN0cmluZy5zcGxpdCgnICcpLmZpbHRlcigoeCkgPT4geCAhPSAnJyk7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNodW5rcyk7XG4gICAgICAgICAgICAgIC8vIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjaHVua3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgIC8vICAgY2h1bmtzW2luZGV4XSA9IGNodW5rc1tpbmRleF0uc3BsaXQoJy4nKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAvLyBjb25zdCBkYXRlQ2h1bmsgPSBjaHVua3NbMF0uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgaWYgKHNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGltZUNodW5rcyA9IGNodW5rc1sxXS5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgIGZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgY2h1bmtzWzBdXG4gICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgICAgICAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcCgoZCwgaSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICgnMCcucmVwZWF0KHRoaXMuZGF0ZUxlbmd0aEluZGV4W2ldKSArIGQpLnNsaWNlKC10aGlzLmRhdGVMZW5ndGhJbmRleFtpXSksXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCctJyksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgaG91cnM6IHRpbWVDaHVua3NbMF0sXG4gICAgICAgICAgICAgICAgICBtaW51dGVzOiB0aW1lQ2h1bmtzWzFdLFxuICAgICAgICAgICAgICAgICAgc2Vjb25kczogdGltZUNodW5rc1syXSxcbiAgICAgICAgICAgICAgICAgIG1lcmlkaWVtOiB0aGlzLnRpbWVNZXJpZGllbU1hcFt0aW1lQ2h1bmtzWzNdPy50b0xvd2VyQ2FzZSgpXT8uaW5jcmVtZW50b3IsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgIGZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShjaHVua3NbMF0uc3BsaXQoJy8nKS5yZXZlcnNlKCkuam9pbignLScpKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGNodW5rcyk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1bmlxdWVLZXk6IGAke2lkfV9kYXRlRm9ybWF0dGVyYCxcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaFVzZXJzID0gKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgdXNlck5hbWU/OiBzdHJpbmc7IGZ1bGxOYW1lPzogc3RyaW5nIH1bXT4gPT4gb2YoW10pO1xuXG4gIG9uQ29udGVudENoYW5nZWQgPSA8VEYgZXh0ZW5kcyB7IFt4IGluIGtleW9mIFRGXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB9PihcbiAgICAkZXZlbnQ6IENvbnRlbnRDaGFuZ2UsXG4gICAgZm9ybTogRm9ybUdyb3VwPFRGPixcbiAgICBmaWVsZDoga2V5b2YgVEYsXG4gICkgPT4ge1xuICAgIC8vIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfTtcblxuICBpbnB1dENsYXNzID0gKFxuICAgIGlucENsOiBzdHJpbmcsXG4gICAgZGlydHk/OiBib29sZWFuLFxuICAgIHZhbGlkPzogYm9vbGVhbixcbiAgICBpbnZhbGlkPzogYm9vbGVhbixcbiAgICBzaG93VmFsaWRhdGlvbj86IGJvb2xlYW4sXG4gICkgPT4ge1xuICAgIGxldCBjbHMgPSBpbnBDbCArICcgZm9ybS1jb250cm9sJztcbiAgICBpZiAoc2hvd1ZhbGlkYXRpb24gJiYgZGlydHkpIHtcbiAgICAgIGNscyArPSB2YWxpZCA/ICcgYm9yZGVyY2hlY2snIDogaW52YWxpZCA/ICcgYm9yZGVydW5jaGVjaycgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGNscztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uPFRSb3cgPSBhbnk+IHtcbiAgdmFsdWU6IGFueTtcbiAgb3JpZ2luYWxSb3c6IFRSb3c7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -13,10 +13,10 @@ export class FilterOptions {
|
|
|
13
13
|
?.filter((x) => x[field].toLowerCase().includes(query)) || []),
|
|
14
14
|
];
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FilterOptions, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: FilterOptions, isStandalone: true, name: "filterOptions" }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FilterOptions, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
name: 'filterOptions',
|
|
@@ -61,10 +61,10 @@ export class OptionerPipe {
|
|
|
61
61
|
return x[labelField];
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
65
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: OptionerPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
65
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: OptionerPipe, isStandalone: true, name: "optioner" }); }
|
|
66
66
|
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: OptionerPipe, decorators: [{
|
|
68
68
|
type: Pipe,
|
|
69
69
|
args: [{
|
|
70
70
|
name: 'optioner',
|
|
@@ -75,10 +75,10 @@ export class ValidationMsg {
|
|
|
75
75
|
transform(message, prefix, suffix) {
|
|
76
76
|
return (prefix ? prefix + ' ' : '') + message + (suffix ? ' ' + suffix : '');
|
|
77
77
|
}
|
|
78
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
79
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
78
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMsg, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
79
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: ValidationMsg, isStandalone: true, name: "validationMsg" }); }
|
|
80
80
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMsg, decorators: [{
|
|
82
82
|
type: Pipe,
|
|
83
83
|
args: [{
|
|
84
84
|
name: 'validationMsg',
|
|
@@ -89,10 +89,10 @@ export class Validator {
|
|
|
89
89
|
transform(validation, control, update) {
|
|
90
90
|
return control && control?.hasError(validation?.type) && (control?.touched || control?.dirty);
|
|
91
91
|
}
|
|
92
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
93
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: Validator, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
93
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: Validator, isStandalone: true, name: "validator" }); }
|
|
94
94
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: Validator, decorators: [{
|
|
96
96
|
type: Pipe,
|
|
97
97
|
args: [{
|
|
98
98
|
name: 'validator',
|
|
@@ -112,10 +112,10 @@ export class OptionLabeller {
|
|
|
112
112
|
constructor(iS) {
|
|
113
113
|
this.iS = iS;
|
|
114
114
|
}
|
|
115
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
116
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: OptionLabeller, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
116
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: OptionLabeller, isStandalone: true, name: "optionLabeller" }); }
|
|
117
117
|
}
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: OptionLabeller, decorators: [{
|
|
119
119
|
type: Pipe,
|
|
120
120
|
args: [{
|
|
121
121
|
name: 'optionLabeller',
|
|
@@ -129,10 +129,10 @@ export class OptionsFormatter {
|
|
|
129
129
|
constructor(iS) {
|
|
130
130
|
this.iS = iS;
|
|
131
131
|
}
|
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
133
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
132
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: OptionsFormatter, deps: [{ token: i1.InputService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
133
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: OptionsFormatter, isStandalone: true, name: "optionsFormatter" }); }
|
|
134
134
|
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: OptionsFormatter, decorators: [{
|
|
136
136
|
type: Pipe,
|
|
137
137
|
args: [{
|
|
138
138
|
name: 'optionsFormatter',
|
|
@@ -144,10 +144,10 @@ export class InputClassPipe {
|
|
|
144
144
|
this.iS = inject(InputService);
|
|
145
145
|
this.transform = this.iS.inputClass;
|
|
146
146
|
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
148
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputClassPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
148
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: InputClassPipe, isStandalone: true, name: "inputClass" }); }
|
|
149
149
|
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputClassPipe, decorators: [{
|
|
151
151
|
type: Pipe,
|
|
152
152
|
args: [{
|
|
153
153
|
name: 'inputClass',
|
|
@@ -191,15 +191,15 @@ const comps = [
|
|
|
191
191
|
// RemoveUsedOptionsReactivePipe,
|
|
192
192
|
];
|
|
193
193
|
export class InputPipesModule {
|
|
194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
195
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
196
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
194
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
195
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: InputPipesModule, imports: [FilterOptions, Validator, ValidationMsg, OptionerPipe, OptionLabeller, OptionsFormatter, InputClassPipe], exports: [FilterOptions, Validator, ValidationMsg, OptionerPipe, OptionLabeller, OptionsFormatter, InputClassPipe] }); }
|
|
196
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputPipesModule }); }
|
|
197
197
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: InputPipesModule, decorators: [{
|
|
199
199
|
type: NgModule,
|
|
200
200
|
args: [{
|
|
201
201
|
imports: comps,
|
|
202
202
|
exports: comps,
|
|
203
203
|
}]
|
|
204
204
|
}] });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXBpcGVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXRzLXBpcGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU0vQyxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQUMsTUFBYSxFQUFFLEVBQUUsS0FBYSxFQUFFLFFBQWdCLE9BQU87UUFDL0QsS0FBSyxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPO1lBQ0wsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELEdBQUcsQ0FBQyxHQUFHO2lCQUNKLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqRSxDQUFDO0lBQ0os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QUo1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxLQUFLO29CQUNkLE9BQU8sRUFBRSxLQUFLO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSU9wdGlvbiwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC5zZXJ2aWNlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZmlsdGVyT3B0aW9ucycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlck9wdGlvbnMgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGFycjogYW55W10gPSBbXSwgcXVlcnk6IHN0cmluZywgZmllbGQ6IHN0cmluZyA9ICdsYWJlbCcpIHtcbiAgICBxdWVyeSA9IHF1ZXJ5Py50b0xvd2VyQ2FzZSgpPy50cmltKCk7XG4gICAgYXJyID0gYXJyID8gYXJyIDogW107XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmFyci5maWx0ZXIoKHgpID0+IHhbZmllbGRdLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChxdWVyeSkpLFxuICAgICAgLi4uKGFyclxuICAgICAgICAuZmlsdGVyKCh4KSA9PiAheFtmaWVsZF0udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHF1ZXJ5KSlcbiAgICAgICAgPy5maWx0ZXIoKHgpID0+IHhbZmllbGRdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpKSB8fCBbXSksXG4gICAgXTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdvcHRpb25lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvbmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgb3B0aW9uczogYW55W10sXG4gICAgbGFiZWxGaWVsZCxcbiAgICBpZEZpZWxkPyxcbiAgICBiYXNpYz86IGJvb2xlYW5cbiAgKTogeyB2YWx1ZTogYW55OyBsYWJlbDogc3RyaW5nIH1bXSB7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIGlmIChsYWJlbEZpZWxkICYmIGlkRmllbGQpIHtcbiAgICAgICAgcmV0dXJuIGJhc2ljXG4gICAgICAgICAgPyBvcHRpb25zLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXJyVG9TdHIobGFiZWxGaWVsZCwgeCksXG4gICAgICAgICAgICAgIHZhbHVlOiB4W2lkRmllbGRdLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgOiBvcHRpb25zLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXJyVG9TdHIobGFiZWxGaWVsZCwgeCksXG4gICAgICAgICAgICAgIHZhbHVlOiB4LFxuICAgICAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMubWFwKCh4KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiB4LFxuICAgICAgICAgIHZhbHVlOiB4LFxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbiAgYXJyVG9TdHIobGFiZWxGaWVsZDogc3RyaW5nLCB4KSB7XG4gICAgY29uc3QgZnMgPSBsYWJlbEZpZWxkLnNwbGl0KCd8Jyk7XG4gICAgaWYgKGZzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxldCBsID0gJyc7XG4gICAgICBmcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBsICs9IHhbZmllbGRdICsgJyAnO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHhbbGFiZWxGaWVsZF07XG4gICAgfVxuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3ZhbGlkYXRpb25Nc2cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTXNnIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShtZXNzYWdlOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZywgc3VmZml4Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHByZWZpeCA/IHByZWZpeCArICcgJyA6ICcnKSArIG1lc3NhZ2UgKyAoc3VmZml4ID8gJyAnICsgc3VmZml4IDogJycpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3ZhbGlkYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvciBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsaWRhdGlvbiwgY29udHJvbDogQWJzdHJhY3RDb250cm9sLCB1cGRhdGU/KSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgJiYgY29udHJvbD8uaGFzRXJyb3IodmFsaWRhdGlvbj8udHlwZSkgJiYgKGNvbnRyb2w/LnRvdWNoZWQgfHwgY29udHJvbD8uZGlydHkpO1xuICB9XG59XG5AUGlwZSh7XG4gIG5hbWU6ICdvcHRpb25MYWJlbGxlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvbkxhYmVsbGVyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShvcHRpb246IGFueSwgZm9ybWF0dGVyPywgb3B0aW9uVHlwZT86IE9wdGlvbkxhYmVsVHlwZSwgbGFiZWxGaWVsZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGZvcm1hdHRlcikgcmV0dXJuIGZvcm1hdHRlcihvcHRpb24pO1xuICAgIGlmIChvcHRpb25UeXBlKSByZXR1cm4gdGhpcy5pUy5vcHRpb25MYWJlbGxlckZ1bmN0aW9uc1tvcHRpb25UeXBlXShvcHRpb24pLmxhYmVsO1xuICAgIGlmIChsYWJlbEZpZWxkKSByZXR1cm4gb3B0aW9uW2xhYmVsRmllbGRdO1xuICAgIHJldHVybiBvcHRpb247XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHt9XG59XG5AUGlwZSh7XG4gIG5hbWU6ICdvcHRpb25zRm9ybWF0dGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uc0Zvcm1hdHRlciBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgb3B0aW9uczogYW55W10sXG4gICAgdmFsdWVGaWVsZD86IHN0cmluZyxcbiAgICBmb3JtYXR0ZXI/LFxuICAgIG9wdGlvblR5cGU/OiBPcHRpb25MYWJlbFR5cGUsXG4gICAgbGFiZWxGaWVsZD86IHN0cmluZ1xuICApOiBJT3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIob3B0aW9ucywgdmFsdWVGaWVsZCwgZm9ybWF0dGVyLCBvcHRpb25UeXBlLCBsYWJlbEZpZWxkKTtcbiAgfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaVM6IElucHV0U2VydmljZSkge31cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaW5wdXRDbGFzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGlTPWluamVjdChJbnB1dFNlcnZpY2UpXG4gIHRyYW5zZm9ybT10aGlzLmlTLmlucHV0Q2xhc3Ncbn1cbi8vIEBQaXBlKHsgbmFtZTogJ3JlbW92ZVVzZWRPcHRpb25zUmVhY3RpdmUnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG4vLyBleHBvcnQgY2xhc3MgUmVtb3ZlVXNlZE9wdGlvbnNSZWFjdGl2ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbi8vICAgLy8gdHJhbnNmb3JtPFRPcHRpb24sIFRGb3JtVmFsdWUgZXh0ZW5kcyB7IHZhbHVlPzogYW55IH0+KFxuLy8gICAvLyAgIGFycjogVE9wdGlvbltdLFxuLy8gICAvLyAgIGZvcm1BcnJheTogRm9ybUFycmF5LFxuLy8gICAvLyAgIGZvcm1WYWx1ZTogVEZvcm1WYWx1ZSxcbi8vICAgLy8gICBhcnJGaWVsZE5hbWU/OiBrZXlvZiBUT3B0aW9uLFxuLy8gICAvLyAgIGZvcm1GaWVsZE5hbWU/OiBrZXlvZiBURm9ybVZhbHVlXG4vLyAgIC8vICk6IFRPcHRpb25bXSB7XG4vLyAgIC8vICAgaWYgKCFhcnI/Lmxlbmd0aCB8fCAhZm9ybUFycmF5Py5sZW5ndGgpIHJldHVybiBbXTtcbi8vICAgLy8gICBpZiAoYXJyRmllbGROYW1lICYmIGZvcm1GaWVsZE5hbWUpXG4vLyAgIC8vICAgICByZXR1cm4gYXJyLmZpbHRlcihcbi8vICAgLy8gICAgICAgKHgpID0+XG4vLyAgIC8vICAgICAgICAgIWZvcm1BcnJheS5jb250cm9scy5zb21lKFxuLy8gICAvLyAgICAgICAgICAgKGYpID0+XG4vLyAgIC8vICAgICAgICAgICAgIGZvcm1WYWx1ZVtmb3JtRmllbGROYW1lXSAhPSAoeFthcnJGaWVsZE5hbWVdIGFzIGFueSkgJiZcbi8vICAgLy8gICAgICAgICAgICAgZltmb3JtRmllbGROYW1lXSA9PSAoeFthcnJGaWVsZE5hbWVdIGFzIGFueSlcbi8vICAgLy8gICAgICAgICApXG4vLyAgIC8vICAgICApO1xuLy8gICAvLyAgIGVsc2UgaWYgKGFyckZpZWxkTmFtZSAmJiAhZm9ybUZpZWxkTmFtZSlcbi8vICAgLy8gICAgIHJldHVybiBhcnIuZmlsdGVyKCh4KSA9PiAhZm9ybUFycmF5LnNvbWUoKGYpID0+IGYgPT0gKHhbYXJyRmllbGROYW1lXSBhcyBhbnkpKSk7XG4vLyAgIC8vICAgZWxzZSBpZiAoIWFyckZpZWxkTmFtZSAmJiBmb3JtRmllbGROYW1lKVxuLy8gICAvLyAgICAgcmV0dXJuIGFyci5maWx0ZXIoKHgpID0+ICFmb3JtQXJyYXkuc29tZSgoZikgPT4gZltmb3JtRmllbGROYW1lXSA9PSAoeCBhcyBhbnkpKSk7XG4vLyAgIC8vICAgZWxzZSByZXR1cm4gYXJyLmZpbHRlcigoeCkgPT4gZm9ybUFycmF5LnNvbWUoKGYpID0+IGYgPT0gKHggYXMgYW55KSkpO1xuLy8gICAvLyB9XG4vLyB9XG5cbmNvbnN0IGNvbXBzID0gW1xuICBGaWx0ZXJPcHRpb25zLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRpb25Nc2csXG4gIE9wdGlvbmVyUGlwZSxcbiAgT3B0aW9uTGFiZWxsZXIsXG4gIE9wdGlvbnNGb3JtYXR0ZXIsXG4gIElucHV0Q2xhc3NQaXBlLFxuICAvLyBSZW1vdmVVc2VkT3B0aW9uc1JlYWN0aXZlUGlwZSxcbl07XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBjb21wcyxcbiAgZXhwb3J0czogY29tcHMsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UGlwZXNNb2R1bGUge31cbiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXBpcGVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXRzLXBpcGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU0vQyxNQUFNLE9BQU8sYUFBYTtJQUN4QixTQUFTLENBQUMsTUFBYSxFQUFFLEVBQUUsS0FBYSxFQUFFLFFBQWdCLE9BQU87UUFDL0QsS0FBSyxHQUFHLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPO1lBQ0wsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELEdBQUcsQ0FBQyxHQUFHO2lCQUNKLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqRSxDQUFDO0lBQ0os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Y0FBYyxFQWFkLGdCQUFnQixFQWlCaEIsY0FBYzsrR0E2Q2QsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxLQUFLO29CQUNkLE9BQU8sRUFBRSxLQUFLO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSU9wdGlvbiwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRTZXJ2aWNlIH0gZnJvbSAnLi9pbnB1dC5zZXJ2aWNlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZmlsdGVyT3B0aW9ucycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlck9wdGlvbnMgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGFycjogYW55W10gPSBbXSwgcXVlcnk6IHN0cmluZywgZmllbGQ6IHN0cmluZyA9ICdsYWJlbCcpIHtcbiAgICBxdWVyeSA9IHF1ZXJ5Py50b0xvd2VyQ2FzZSgpPy50cmltKCk7XG4gICAgYXJyID0gYXJyID8gYXJyIDogW107XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmFyci5maWx0ZXIoKHgpID0+IHhbZmllbGRdLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChxdWVyeSkpLFxuICAgICAgLi4uKGFyclxuICAgICAgICAuZmlsdGVyKCh4KSA9PiAheFtmaWVsZF0udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHF1ZXJ5KSlcbiAgICAgICAgPy5maWx0ZXIoKHgpID0+IHhbZmllbGRdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpKSB8fCBbXSksXG4gICAgXTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdvcHRpb25lcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvbmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgb3B0aW9uczogYW55W10sXG4gICAgbGFiZWxGaWVsZCxcbiAgICBpZEZpZWxkPyxcbiAgICBiYXNpYz86IGJvb2xlYW5cbiAgKTogeyB2YWx1ZTogYW55OyBsYWJlbDogc3RyaW5nIH1bXSB7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIGlmIChsYWJlbEZpZWxkICYmIGlkRmllbGQpIHtcbiAgICAgICAgcmV0dXJuIGJhc2ljXG4gICAgICAgICAgPyBvcHRpb25zLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXJyVG9TdHIobGFiZWxGaWVsZCwgeCksXG4gICAgICAgICAgICAgIHZhbHVlOiB4W2lkRmllbGRdLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgOiBvcHRpb25zLm1hcCgoeCkgPT4gKHtcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXJyVG9TdHIobGFiZWxGaWVsZCwgeCksXG4gICAgICAgICAgICAgIHZhbHVlOiB4LFxuICAgICAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMubWFwKCh4KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiB4LFxuICAgICAgICAgIHZhbHVlOiB4LFxuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbiAgYXJyVG9TdHIobGFiZWxGaWVsZDogc3RyaW5nLCB4KSB7XG4gICAgY29uc3QgZnMgPSBsYWJlbEZpZWxkLnNwbGl0KCd8Jyk7XG4gICAgaWYgKGZzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGxldCBsID0gJyc7XG4gICAgICBmcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBsICs9IHhbZmllbGRdICsgJyAnO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHhbbGFiZWxGaWVsZF07XG4gICAgfVxuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3ZhbGlkYXRpb25Nc2cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTXNnIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShtZXNzYWdlOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZywgc3VmZml4Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHByZWZpeCA/IHByZWZpeCArICcgJyA6ICcnKSArIG1lc3NhZ2UgKyAoc3VmZml4ID8gJyAnICsgc3VmZml4IDogJycpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3ZhbGlkYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvciBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsaWRhdGlvbiwgY29udHJvbDogQWJzdHJhY3RDb250cm9sLCB1cGRhdGU/KSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgJiYgY29udHJvbD8uaGFzRXJyb3IodmFsaWRhdGlvbj8udHlwZSkgJiYgKGNvbnRyb2w/LnRvdWNoZWQgfHwgY29udHJvbD8uZGlydHkpO1xuICB9XG59XG5AUGlwZSh7XG4gIG5hbWU6ICdvcHRpb25MYWJlbGxlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvbkxhYmVsbGVyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShvcHRpb246IGFueSwgZm9ybWF0dGVyPywgb3B0aW9uVHlwZT86IE9wdGlvbkxhYmVsVHlwZSwgbGFiZWxGaWVsZD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGZvcm1hdHRlcikgcmV0dXJuIGZvcm1hdHRlcihvcHRpb24pO1xuICAgIGlmIChvcHRpb25UeXBlKSByZXR1cm4gdGhpcy5pUy5vcHRpb25MYWJlbGxlckZ1bmN0aW9uc1tvcHRpb25UeXBlXShvcHRpb24pLmxhYmVsO1xuICAgIGlmIChsYWJlbEZpZWxkKSByZXR1cm4gb3B0aW9uW2xhYmVsRmllbGRdO1xuICAgIHJldHVybiBvcHRpb247XG4gIH1cbiAgY29uc3RydWN0b3IocHVibGljIGlTOiBJbnB1dFNlcnZpY2UpIHt9XG59XG5AUGlwZSh7XG4gIG5hbWU6ICdvcHRpb25zRm9ybWF0dGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uc0Zvcm1hdHRlciBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oXG4gICAgb3B0aW9uczogYW55W10sXG4gICAgdmFsdWVGaWVsZD86IHN0cmluZyxcbiAgICBmb3JtYXR0ZXI/LFxuICAgIG9wdGlvblR5cGU/OiBPcHRpb25MYWJlbFR5cGUsXG4gICAgbGFiZWxGaWVsZD86IHN0cmluZ1xuICApOiBJT3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmlTLm9wdGlvbnNGb3JtYXR0ZXIob3B0aW9ucywgdmFsdWVGaWVsZCwgZm9ybWF0dGVyLCBvcHRpb25UeXBlLCBsYWJlbEZpZWxkKTtcbiAgfVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaVM6IElucHV0U2VydmljZSkge31cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaW5wdXRDbGFzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGlTPWluamVjdChJbnB1dFNlcnZpY2UpXG4gIHRyYW5zZm9ybT10aGlzLmlTLmlucHV0Q2xhc3Ncbn1cbi8vIEBQaXBlKHsgbmFtZTogJ3JlbW92ZVVzZWRPcHRpb25zUmVhY3RpdmUnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG4vLyBleHBvcnQgY2xhc3MgUmVtb3ZlVXNlZE9wdGlvbnNSZWFjdGl2ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbi8vICAgLy8gdHJhbnNmb3JtPFRPcHRpb24sIFRGb3JtVmFsdWUgZXh0ZW5kcyB7IHZhbHVlPzogYW55IH0+KFxuLy8gICAvLyAgIGFycjogVE9wdGlvbltdLFxuLy8gICAvLyAgIGZvcm1BcnJheTogRm9ybUFycmF5LFxuLy8gICAvLyAgIGZvcm1WYWx1ZTogVEZvcm1WYWx1ZSxcbi8vICAgLy8gICBhcnJGaWVsZE5hbWU/OiBrZXlvZiBUT3B0aW9uLFxuLy8gICAvLyAgIGZvcm1GaWVsZE5hbWU/OiBrZXlvZiBURm9ybVZhbHVlXG4vLyAgIC8vICk6IFRPcHRpb25bXSB7XG4vLyAgIC8vICAgaWYgKCFhcnI/Lmxlbmd0aCB8fCAhZm9ybUFycmF5Py5sZW5ndGgpIHJldHVybiBbXTtcbi8vICAgLy8gICBpZiAoYXJyRmllbGROYW1lICYmIGZvcm1GaWVsZE5hbWUpXG4vLyAgIC8vICAgICByZXR1cm4gYXJyLmZpbHRlcihcbi8vICAgLy8gICAgICAgKHgpID0+XG4vLyAgIC8vICAgICAgICAgIWZvcm1BcnJheS5jb250cm9scy5zb21lKFxuLy8gICAvLyAgICAgICAgICAgKGYpID0+XG4vLyAgIC8vICAgICAgICAgICAgIGZvcm1WYWx1ZVtmb3JtRmllbGROYW1lXSAhPSAoeFthcnJGaWVsZE5hbWVdIGFzIGFueSkgJiZcbi8vICAgLy8gICAgICAgICAgICAgZltmb3JtRmllbGROYW1lXSA9PSAoeFthcnJGaWVsZE5hbWVdIGFzIGFueSlcbi8vICAgLy8gICAgICAgICApXG4vLyAgIC8vICAgICApO1xuLy8gICAvLyAgIGVsc2UgaWYgKGFyckZpZWxkTmFtZSAmJiAhZm9ybUZpZWxkTmFtZSlcbi8vICAgLy8gICAgIHJldHVybiBhcnIuZmlsdGVyKCh4KSA9PiAhZm9ybUFycmF5LnNvbWUoKGYpID0+IGYgPT0gKHhbYXJyRmllbGROYW1lXSBhcyBhbnkpKSk7XG4vLyAgIC8vICAgZWxzZSBpZiAoIWFyckZpZWxkTmFtZSAmJiBmb3JtRmllbGROYW1lKVxuLy8gICAvLyAgICAgcmV0dXJuIGFyci5maWx0ZXIoKHgpID0+ICFmb3JtQXJyYXkuc29tZSgoZikgPT4gZltmb3JtRmllbGROYW1lXSA9PSAoeCBhcyBhbnkpKSk7XG4vLyAgIC8vICAgZWxzZSByZXR1cm4gYXJyLmZpbHRlcigoeCkgPT4gZm9ybUFycmF5LnNvbWUoKGYpID0+IGYgPT0gKHggYXMgYW55KSkpO1xuLy8gICAvLyB9XG4vLyB9XG5cbmNvbnN0IGNvbXBzID0gW1xuICBGaWx0ZXJPcHRpb25zLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRpb25Nc2csXG4gIE9wdGlvbmVyUGlwZSxcbiAgT3B0aW9uTGFiZWxsZXIsXG4gIE9wdGlvbnNGb3JtYXR0ZXIsXG4gIElucHV0Q2xhc3NQaXBlLFxuICAvLyBSZW1vdmVVc2VkT3B0aW9uc1JlYWN0aXZlUGlwZSxcbl07XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBjb21wcyxcbiAgZXhwb3J0czogY29tcHMsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0UGlwZXNNb2R1bGUge31cbiJdfQ==
|
package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs
CHANGED
|
@@ -71,10 +71,10 @@ export class ValidationMessageComponent {
|
|
|
71
71
|
return this.label() || this.input()?.labelSignal?.();
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", 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: true, 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: true, isRequired: false, transformFunction: null }, input: { classPropertyName: "input", publicName: "input", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { label: "labelChange" }, 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]=\"\n ele.scrollHeight <= ele.offsetHeight && ele.scrollWidth <= ele.offsetWidth\n \"\n [innerHTML]=\"error | appTranslate | async\"\n #ele></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(() => SDKTranslatePipe), name: "appTranslate" }, { kind: "ngmodule", type: i0.forwardRef(() => MatTooltipModule) }, { kind: "directive", type: i0.forwardRef(() => i2_1.MatTooltip), selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMessageComponent, decorators: [{
|
|
78
78
|
type: Component,
|
|
79
79
|
args: [{ selector: 'app-validation-message', standalone: true, imports: [
|
|
80
80
|
NgIf,
|
|
@@ -91,10 +91,10 @@ export class ErrorMessagePipe {
|
|
|
91
91
|
this.vmS = inject(ValidationMessageService);
|
|
92
92
|
this.transform = this.vmS.transform;
|
|
93
93
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
95
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ErrorMessagePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
95
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: ErrorMessagePipe, isStandalone: true, name: "errorMessage" }); }
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ErrorMessagePipe, decorators: [{
|
|
98
98
|
type: Pipe,
|
|
99
99
|
args: [{
|
|
100
100
|
name: 'errorMessage',
|
package/esm2022/lib/Shared/components/input/validation-message/validation-message.service.mjs
CHANGED
|
@@ -28,10 +28,10 @@ export class ValidationMessageService {
|
|
|
28
28
|
msg = msg?.replace('{{minLength}}', minLength?.toString());
|
|
29
29
|
return msg;
|
|
30
30
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMessageService, providedIn: 'root' }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ValidationMessageService, decorators: [{
|
|
35
35
|
type: Injectable,
|
|
36
36
|
args: [{
|
|
37
37
|
providedIn: 'root'
|
|
@@ -14,10 +14,10 @@ export class YearMonthTdRfComponent extends InputTD_RFComponent {
|
|
|
14
14
|
super.ngOnInit();
|
|
15
15
|
this._model = '';
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: YearMonthTdRfComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: YearMonthTdRfComponent, isStandalone: true, selector: "app-input-year-month-td-rf", inputs: { yrModel: { classPropertyName: "yrModel", publicName: "yrModel", isSignal: false, isRequired: false, transformFunction: null }, clearOnDisable: { classPropertyName: "clearOnDisable", publicName: "clearOnDisable", isSignal: true, isRequired: false, transformFunction: null }, mthModel: { classPropertyName: "mthModel", publicName: "mthModel", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { yrModelChange: "yrModelChange", mthModelChange: "mthModelChange" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n @if (showLabelSignal()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()\"\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 [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\"></app-input-label>\n }\n <div class=\"{{ stackedSignal() ? 'col-12' : 'col-md' }} position-relative\">\n <div class=\"row gx-2\">\n <div class=\"col-md-6\">\n <app-input-td-rf\n [model]=\"yrModel\"\n [endLabel]=\"miniSignal() ? 'yrs' : 'Years'\"\n [endLabelTooltip]=\"miniSignal() ? 'Years' : null\"\n [clearOnDisable]=\"clearOnDisable()\"\n (modelChange)=\"yrModelChange.emit($event)\"\n type=\"number\"\n [id]=\"idSignal()\"\n [disabled]=\"disabledSignal()\"\n [showLabel]=\"false\"\n [validators]=\"validators\"></app-input-td-rf>\n </div>\n <div class=\"col-md-6\">\n <app-input-td-rf\n [model]=\"mthModel\"\n [endLabel]=\"miniSignal() ? 'mos' : 'Months'\"\n [endLabelTooltip]=\"miniSignal() ? 'Months' : null\"\n [clearOnDisable]=\"clearOnDisable()\"\n (modelChange)=\"mthModelChange.emit($event)\"\n type=\"number\"\n [id]=\"idSignal()\"\n [disabled]=\"disabledSignal()\"\n [showLabel]=\"false\"\n [validators]=\"validators\"></app-input-td-rf>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .form-control:not(input[type=checkbox].form-control){padding:10px 12px}\n"], dependencies: [{ kind: "component", type: 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: "component", type: InputTD_RFComponent, selector: "app-input-td-rf", inputs: ["validators", "asyncValidators", "model"], outputs: ["modelChange"] }] }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: YearMonthTdRfComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{ selector: 'app-input-year-month-td-rf', standalone: true, imports: [NgIf, InputLabelComponent, InputTD_RFComponent], template: "<div class=\"row\">\n @if (showLabelSignal()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"form()\"\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 [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\"></app-input-label>\n }\n <div class=\"{{ stackedSignal() ? 'col-12' : 'col-md' }} position-relative\">\n <div class=\"row gx-2\">\n <div class=\"col-md-6\">\n <app-input-td-rf\n [model]=\"yrModel\"\n [endLabel]=\"miniSignal() ? 'yrs' : 'Years'\"\n [endLabelTooltip]=\"miniSignal() ? 'Years' : null\"\n [clearOnDisable]=\"clearOnDisable()\"\n (modelChange)=\"yrModelChange.emit($event)\"\n type=\"number\"\n [id]=\"idSignal()\"\n [disabled]=\"disabledSignal()\"\n [showLabel]=\"false\"\n [validators]=\"validators\"></app-input-td-rf>\n </div>\n <div class=\"col-md-6\">\n <app-input-td-rf\n [model]=\"mthModel\"\n [endLabel]=\"miniSignal() ? 'mos' : 'Months'\"\n [endLabelTooltip]=\"miniSignal() ? 'Months' : null\"\n [clearOnDisable]=\"clearOnDisable()\"\n (modelChange)=\"mthModelChange.emit($event)\"\n type=\"number\"\n [id]=\"idSignal()\"\n [disabled]=\"disabledSignal()\"\n [showLabel]=\"false\"\n [validators]=\"validators\"></app-input-td-rf>\n </div>\n </div>\n </div>\n</div>\n", styles: ["::ng-deep .form-control:not(input[type=checkbox].form-control){padding:10px 12px}\n"] }]
|
|
23
23
|
}], propDecorators: { yrModel: [{
|