ngx-sumax-erp-components 0.0.1
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/README.md +24 -0
- package/esm2022/lib/date-picker/CustomDatePickerFormat.mjs +43 -0
- package/esm2022/lib/date-picker/CustomDatePickerI18n.mjs +50 -0
- package/esm2022/lib/date-picker/date-picker.component.mjs +366 -0
- package/esm2022/lib/date-picker/date-picker.mjs +3 -0
- package/esm2022/lib/date-picker/date-picker.module.mjs +69 -0
- package/esm2022/lib/date-picker/date-picker.service.mjs +68 -0
- package/esm2022/lib/date-time-picker/date-time-picker.component.mjs +311 -0
- package/esm2022/lib/date-time-picker/date-time-picker.mjs +3 -0
- package/esm2022/lib/date-time-picker/date-time-picker.module.mjs +76 -0
- package/esm2022/lib/date-time-picker/date-time-picker.service.mjs +64 -0
- package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.component.mjs +1140 -0
- package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.module.mjs +93 -0
- package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.service.mjs +85 -0
- package/esm2022/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.mjs +283 -0
- package/esm2022/lib/dialog-ag-grid-search/dialog-ag-grid-search.module.mjs +23 -0
- package/esm2022/lib/error-message/error-message.component.mjs +24 -0
- package/esm2022/lib/error-message/error-message.module.mjs +19 -0
- package/esm2022/lib/input-number/input-number.component.mjs +351 -0
- package/esm2022/lib/input-number/input-number.mjs +3 -0
- package/esm2022/lib/input-number/input-number.module.mjs +65 -0
- package/esm2022/lib/input-number/input-number.service.mjs +68 -0
- package/esm2022/lib/input-text/input-text.component.mjs +345 -0
- package/esm2022/lib/input-text/input-text.mjs +3 -0
- package/esm2022/lib/input-text/input-text.module.mjs +73 -0
- package/esm2022/lib/input-text/input-text.service.mjs +96 -0
- package/esm2022/lib/ng-select-multiple/ng-select-multiple.component.mjs +375 -0
- package/esm2022/lib/ng-select-multiple/ng-select-multiple.mjs +3 -0
- package/esm2022/lib/ng-select-multiple/ng-select-multiple.module.mjs +69 -0
- package/esm2022/lib/ng-select-multiple/ng-select-multiple.service.mjs +96 -0
- package/esm2022/lib/ng-select-simple/ng-select-simple.component.mjs +461 -0
- package/esm2022/lib/ng-select-simple/ng-select-simple.mjs +3 -0
- package/esm2022/lib/ng-select-simple/ng-select-simple.module.mjs +53 -0
- package/esm2022/lib/ng-select-simple/ng-select-simple.service.mjs +138 -0
- package/esm2022/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.mjs +144 -0
- package/esm2022/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component.mjs +27 -0
- package/esm2022/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayDefault.component.mjs +22 -0
- package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.mjs +242 -0
- package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component.mjs +62 -0
- package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-config.mjs +27 -0
- package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.mjs +70 -0
- package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-toggle/sc-cell-render-toggle.component.mjs +45 -0
- package/esm2022/lib/sc-ag-grid/directives/scAgGrid.directive.mjs +25 -0
- package/esm2022/lib/sc-ag-grid/index.mjs +14 -0
- package/esm2022/lib/sc-ag-grid/input-search/input-search.component.mjs +20 -0
- package/esm2022/lib/sc-ag-grid/input-search/input-search.module.mjs +31 -0
- package/esm2022/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.mjs +564 -0
- package/esm2022/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.mjs +80 -0
- package/esm2022/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module.mjs +31 -0
- package/esm2022/lib/sc-ag-grid/sc-ag-grid.module.mjs +118 -0
- package/esm2022/lib/sc-ag-grid/sc-grid.uitl.mjs +10 -0
- package/esm2022/lib/sc-wizard/sc-wizard.component.mjs +75 -0
- package/esm2022/lib/sc-wizard/sc-wizard.module.mjs +44 -0
- package/esm2022/lib/text-area/text-area.component.mjs +272 -0
- package/esm2022/lib/text-area/text-area.mjs +3 -0
- package/esm2022/lib/text-area/text-area.module.mjs +60 -0
- package/esm2022/lib/text-area/text-area.service.mjs +54 -0
- package/esm2022/lib/tooltip-message/tooltip-message.component.mjs +25 -0
- package/esm2022/lib/tooltip-message/tooltip-message.module.mjs +21 -0
- package/esm2022/lib/utils/DateTimeModel.mjs +56 -0
- package/esm2022/lib/utils/DateTimePickerEditable.mjs +3 -0
- package/esm2022/lib/utils/DateUtil.mjs +196 -0
- package/esm2022/lib/utils/INgSelect.mjs +2 -0
- package/esm2022/lib/utils/IScAgGrid.mjs +7 -0
- package/esm2022/lib/utils/ScWizardBase.mjs +14 -0
- package/esm2022/lib/utils/SharedComponentsUtil.mjs +38 -0
- package/esm2022/lib/utils/ValidateUtil.mjs +18 -0
- package/esm2022/lib/utils/message-util.service.mjs +75 -0
- package/esm2022/ngx-sumax-erp-components.mjs +5 -0
- package/esm2022/public-api.mjs +33 -0
- package/fesm2022/ngx-sumax-erp-components.mjs +7045 -0
- package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/date-picker/CustomDatePickerFormat.d.ts +11 -0
- package/lib/date-picker/CustomDatePickerI18n.d.ts +25 -0
- package/lib/date-picker/date-picker.component.d.ts +108 -0
- package/lib/date-picker/date-picker.d.ts +10 -0
- package/lib/date-picker/date-picker.module.d.ts +18 -0
- package/lib/date-picker/date-picker.service.d.ts +22 -0
- package/lib/date-time-picker/date-time-picker.component.d.ts +96 -0
- package/lib/date-time-picker/date-time-picker.d.ts +9 -0
- package/lib/date-time-picker/date-time-picker.module.d.ts +18 -0
- package/lib/date-time-picker/date-time-picker.service.d.ts +20 -0
- package/lib/date-time-picker-editable/date-time-picker-editable.component.d.ts +118 -0
- package/lib/date-time-picker-editable/date-time-picker-editable.module.d.ts +16 -0
- package/lib/date-time-picker-editable/date-time-picker-editable.service.d.ts +27 -0
- package/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.d.ts +82 -0
- package/lib/dialog-ag-grid-search/dialog-ag-grid-search.module.d.ts +13 -0
- package/lib/error-message/error-message.component.d.ts +13 -0
- package/lib/error-message/error-message.module.d.ts +9 -0
- package/lib/input-number/input-number.component.d.ts +74 -0
- package/lib/input-number/input-number.d.ts +10 -0
- package/lib/input-number/input-number.module.d.ts +17 -0
- package/lib/input-number/input-number.service.d.ts +22 -0
- package/lib/input-text/input-text.component.d.ts +85 -0
- package/lib/input-text/input-text.d.ts +17 -0
- package/lib/input-text/input-text.module.d.ts +18 -0
- package/lib/input-text/input-text.service.d.ts +35 -0
- package/lib/ng-select-multiple/ng-select-multiple.component.d.ts +83 -0
- package/lib/ng-select-multiple/ng-select-multiple.d.ts +14 -0
- package/lib/ng-select-multiple/ng-select-multiple.module.d.ts +17 -0
- package/lib/ng-select-multiple/ng-select-multiple.service.d.ts +30 -0
- package/lib/ng-select-simple/ng-select-simple.component.d.ts +124 -0
- package/lib/ng-select-simple/ng-select-simple.d.ts +20 -0
- package/lib/ng-select-simple/ng-select-simple.module.d.ts +17 -0
- package/lib/ng-select-simple/ng-select-simple.service.d.ts +42 -0
- package/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.d.ts +61 -0
- package/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component.d.ts +10 -0
- package/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayDefault.component.d.ts +9 -0
- package/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.d.ts +49 -0
- package/lib/sc-ag-grid/cell-render/sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component.d.ts +11 -0
- package/lib/sc-ag-grid/cell-render/sc-cell-render-config.d.ts +20 -0
- package/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.d.ts +16 -0
- package/lib/sc-ag-grid/cell-render/sc-cell-render-toggle/sc-cell-render-toggle.component.d.ts +16 -0
- package/lib/sc-ag-grid/directives/scAgGrid.directive.d.ts +10 -0
- package/lib/sc-ag-grid/index.d.ts +13 -0
- package/lib/sc-ag-grid/input-search/input-search.component.d.ts +11 -0
- package/lib/sc-ag-grid/input-search/input-search.module.d.ts +9 -0
- package/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.d.ts +191 -0
- package/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.d.ts +25 -0
- package/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module.d.ts +9 -0
- package/lib/sc-ag-grid/sc-ag-grid.module.d.ts +32 -0
- package/lib/sc-ag-grid/sc-grid.uitl.d.ts +5 -0
- package/lib/sc-wizard/sc-wizard.component.d.ts +38 -0
- package/lib/sc-wizard/sc-wizard.module.d.ts +13 -0
- package/lib/text-area/text-area.component.d.ts +66 -0
- package/lib/text-area/text-area.d.ts +8 -0
- package/lib/text-area/text-area.module.d.ts +16 -0
- package/lib/text-area/text-area.service.d.ts +18 -0
- package/lib/tooltip-message/tooltip-message.component.d.ts +13 -0
- package/lib/tooltip-message/tooltip-message.module.d.ts +11 -0
- package/lib/utils/DateTimeModel.d.ts +16 -0
- package/lib/utils/DateTimePickerEditable.d.ts +13 -0
- package/lib/utils/DateUtil.d.ts +37 -0
- package/lib/utils/INgSelect.d.ts +6 -0
- package/lib/utils/IScAgGrid.d.ts +65 -0
- package/lib/utils/ScWizardBase.d.ts +9 -0
- package/lib/utils/SharedComponentsUtil.d.ts +6 -0
- package/lib/utils/ValidateUtil.d.ts +4 -0
- package/lib/utils/message-util.service.d.ts +10 -0
- package/package.json +32 -0
- package/public-api.d.ts +29 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class InputNumberService {
|
|
4
|
+
constructor(decimals = -1, formatCero = false, btnEnable = false, bold = false, validatorMessage = false, tooltipMessage = true, submitted = true, validatorAlert = false) {
|
|
5
|
+
this.decimals = decimals;
|
|
6
|
+
this.formatCero = formatCero;
|
|
7
|
+
this.btnEnable = btnEnable;
|
|
8
|
+
this.bold = bold;
|
|
9
|
+
this.validatorMessage = validatorMessage;
|
|
10
|
+
this.tooltipMessage = tooltipMessage;
|
|
11
|
+
this.submitted = submitted;
|
|
12
|
+
this.validatorAlert = validatorAlert;
|
|
13
|
+
}
|
|
14
|
+
getDecimals() {
|
|
15
|
+
return this.decimals;
|
|
16
|
+
}
|
|
17
|
+
getFormatCero() {
|
|
18
|
+
return this.formatCero;
|
|
19
|
+
}
|
|
20
|
+
getBtnEnable() {
|
|
21
|
+
return this.btnEnable;
|
|
22
|
+
}
|
|
23
|
+
getBold() {
|
|
24
|
+
return this.bold;
|
|
25
|
+
}
|
|
26
|
+
getValidatorMessage() {
|
|
27
|
+
return this.validatorMessage;
|
|
28
|
+
}
|
|
29
|
+
getTooltipMessage() {
|
|
30
|
+
return this.tooltipMessage;
|
|
31
|
+
}
|
|
32
|
+
getSubmitted() {
|
|
33
|
+
return this.submitted;
|
|
34
|
+
}
|
|
35
|
+
getValidatorAlert() {
|
|
36
|
+
return this.validatorAlert;
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberService, deps: [{ token: "INPUT_NUMBER_DECIMALS" }, { token: "INPUT_NUMBER_FORMAT_CERO" }, { token: "INPUT_NUMBER_BTN_ENABLE" }, { token: "INPUT_NUMBER_BOLD" }, { token: "INPUT_NUMBER_VALIDATOR_MESSAGE" }, { token: "INPUT_NUMBER_TOOLTIP_MESSAGE" }, { token: "INPUT_NUMBER_SUBMITTED" }, { token: "INPUT_NUMBER_VALIDATOR_ALERT" }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberService }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputNumberService, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
44
|
+
type: Inject,
|
|
45
|
+
args: ["INPUT_NUMBER_DECIMALS"]
|
|
46
|
+
}] }, { type: undefined, decorators: [{
|
|
47
|
+
type: Inject,
|
|
48
|
+
args: ["INPUT_NUMBER_FORMAT_CERO"]
|
|
49
|
+
}] }, { type: undefined, decorators: [{
|
|
50
|
+
type: Inject,
|
|
51
|
+
args: ["INPUT_NUMBER_BTN_ENABLE"]
|
|
52
|
+
}] }, { type: undefined, decorators: [{
|
|
53
|
+
type: Inject,
|
|
54
|
+
args: ["INPUT_NUMBER_BOLD"]
|
|
55
|
+
}] }, { type: undefined, decorators: [{
|
|
56
|
+
type: Inject,
|
|
57
|
+
args: ["INPUT_NUMBER_VALIDATOR_MESSAGE"]
|
|
58
|
+
}] }, { type: undefined, decorators: [{
|
|
59
|
+
type: Inject,
|
|
60
|
+
args: ["INPUT_NUMBER_TOOLTIP_MESSAGE"]
|
|
61
|
+
}] }, { type: undefined, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: ["INPUT_NUMBER_SUBMITTED"]
|
|
64
|
+
}] }, { type: undefined, decorators: [{
|
|
65
|
+
type: Inject,
|
|
66
|
+
args: ["INPUT_NUMBER_VALIDATOR_ALERT"]
|
|
67
|
+
}] }] });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUMyQyxXQUFtQixDQUFDLENBQUMsRUFDbEIsYUFBc0IsS0FBSyxFQUM1QixZQUFxQixLQUFLLEVBQ2hDLE9BQWdCLEtBQUssRUFDUixtQkFBNEIsS0FBSyxFQUNuQyxpQkFBMEIsSUFBSSxFQUNwQyxZQUFxQixJQUFJLEVBQ25CLGlCQUEwQixLQUFLO1FBUHRDLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDbEIsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDaEMsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFDUixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7SUFDOUUsQ0FBQztJQUVHLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ00sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBQ00saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQ00sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNNLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzsrR0FuQ1Usa0JBQWtCLGtCQUVuQix1QkFBdUIsYUFDdkIsMEJBQTBCLGFBQzFCLHlCQUF5QixhQUN6QixtQkFBbUIsYUFDbkIsZ0NBQWdDLGFBQ2hDLDhCQUE4QixhQUM5Qix3QkFBd0IsYUFDeEIsOEJBQThCO21IQVQ3QixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUNqQyxNQUFNOzJCQUFDLHlCQUF5Qjs7MEJBQ2hDLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxnQ0FBZ0M7OzBCQUN2QyxNQUFNOzJCQUFDLDhCQUE4Qjs7MEJBQ3JDLE1BQU07MkJBQUMsd0JBQXdCOzswQkFDL0IsTUFBTTsyQkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW5wdXROdW1iZXJTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoXCJJTlBVVF9OVU1CRVJfREVDSU1BTFNcIikgcHJpdmF0ZSBkZWNpbWFsczogbnVtYmVyID0gLTEsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfTlVNQkVSX0ZPUk1BVF9DRVJPXCIpIHByaXZhdGUgZm9ybWF0Q2VybzogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgQEluamVjdChcIklOUFVUX05VTUJFUl9CVE5fRU5BQkxFXCIpIHByaXZhdGUgYnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfTlVNQkVSX0JPTERcIikgcHJpdmF0ZSBib2xkOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfTlVNQkVSX1ZBTElEQVRPUl9NRVNTQUdFXCIpIHByaXZhdGUgdmFsaWRhdG9yTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgQEluamVjdChcIklOUFVUX05VTUJFUl9UT09MVElQX01FU1NBR0VcIikgcHJpdmF0ZSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfTlVNQkVSX1NVQk1JVFRFRFwiKSBwcml2YXRlIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfTlVNQkVSX1ZBTElEQVRPUl9BTEVSVFwiKSBwcml2YXRlIHZhbGlkYXRvckFsZXJ0OiBib29sZWFuID0gZmFsc2VcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBnZXREZWNpbWFscygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbHM7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRGb3JtYXRDZXJvKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0Q2VybztcclxuICB9XHJcbiAgcHVibGljIGdldEJ0bkVuYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmJ0bkVuYWJsZTtcclxuICB9XHJcbiAgcHVibGljIGdldEJvbGQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5ib2xkO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0VmFsaWRhdG9yTWVzc2FnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRvck1lc3NhZ2U7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRUb29sdGlwTWVzc2FnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2x0aXBNZXNzYWdlO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0U3VibWl0dGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VibWl0dGVkO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0VmFsaWRhdG9yQWxlcnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3JBbGVydDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, forwardRef, } from "@angular/core";
|
|
2
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
|
+
import { SharedComponentsUtil } from "../utils/SharedComponentsUtil";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../utils/message-util.service";
|
|
6
|
+
import * as i2 from "./input-text.service";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "../error-message/error-message.component";
|
|
10
|
+
import * as i6 from "../tooltip-message/tooltip-message.component";
|
|
11
|
+
import * as i7 from "@angular/material/tooltip";
|
|
12
|
+
import * as i8 from "ngx-mask";
|
|
13
|
+
export class InputTextComponent {
|
|
14
|
+
constructor(messageUtilService, inputTextService, _render) {
|
|
15
|
+
this.messageUtilService = messageUtilService;
|
|
16
|
+
this.inputTextService = inputTextService;
|
|
17
|
+
this._render = _render;
|
|
18
|
+
this.format = "M";
|
|
19
|
+
this.type = "text";
|
|
20
|
+
this.showLabel = true;
|
|
21
|
+
this.label = "";
|
|
22
|
+
this.btnEnable = false;
|
|
23
|
+
this.autocomplete = "no-autocomplete-input-text";
|
|
24
|
+
this.bold = false;
|
|
25
|
+
this.inputMask = null;
|
|
26
|
+
this.showMaskTyped = false;
|
|
27
|
+
this.required = false;
|
|
28
|
+
this.textRight = false;
|
|
29
|
+
this.disabled = false;
|
|
30
|
+
this.readonly = false;
|
|
31
|
+
this.validatorMessage = false;
|
|
32
|
+
this.tooltipMessage = true;
|
|
33
|
+
this.maxLength = null;
|
|
34
|
+
this.submitted = true;
|
|
35
|
+
this.validatorAlert = false;
|
|
36
|
+
this.setNgClass = "";
|
|
37
|
+
this.patterns = "";
|
|
38
|
+
this.placeholder = "";
|
|
39
|
+
this.labelInfo = false;
|
|
40
|
+
this.textLabelInfo = "";
|
|
41
|
+
this.controlCharClearReplace = false;
|
|
42
|
+
this.replaceRegex = {};
|
|
43
|
+
this.clearRegex = "";
|
|
44
|
+
this.onNext = new EventEmitter();
|
|
45
|
+
this.onBack = new EventEmitter();
|
|
46
|
+
this.change = new EventEmitter();
|
|
47
|
+
this.blur = new EventEmitter();
|
|
48
|
+
this.onfocus = new EventEmitter();
|
|
49
|
+
this.onchange = new EventEmitter();
|
|
50
|
+
this.onfocusout = new EventEmitter();
|
|
51
|
+
this.controls = null;
|
|
52
|
+
this.sharedComponentsUtil = new SharedComponentsUtil();
|
|
53
|
+
this._initValue = false;
|
|
54
|
+
this.showPassword = false;
|
|
55
|
+
this.onChange = (_) => { };
|
|
56
|
+
this.onValidationChange = () => { };
|
|
57
|
+
this.onTouch = () => { };
|
|
58
|
+
this.focus = () => {
|
|
59
|
+
this.nativeElement?.focus();
|
|
60
|
+
this.nativeElement?.select();
|
|
61
|
+
};
|
|
62
|
+
this.format = this.inputTextService.getFormat();
|
|
63
|
+
this.showLabel = this.inputTextService.getShowLabel();
|
|
64
|
+
this.btnEnable = this.inputTextService.getBtnEnable();
|
|
65
|
+
this.bold = this.inputTextService.getBold();
|
|
66
|
+
this.textRight = this.inputTextService.getTextRight();
|
|
67
|
+
this.validatorMessage = this.inputTextService.getValidatorMessage();
|
|
68
|
+
this.tooltipMessage = this.inputTextService.getTooltipMessage();
|
|
69
|
+
this.submitted = this.inputTextService.getSubmitted();
|
|
70
|
+
this.validatorAlert = this.inputTextService.getValidatorAlert();
|
|
71
|
+
this.controlCharClearReplace = this.inputTextService.getControlCharClearReplace();
|
|
72
|
+
this.replaceRegex = this.inputTextService.getReplaceRegex();
|
|
73
|
+
this.clearRegex = this.inputTextService.getClearRegex();
|
|
74
|
+
}
|
|
75
|
+
ngOnChanges(changes) {
|
|
76
|
+
if (changes["submitted"]) {
|
|
77
|
+
if (this.controls != null && changes["submitted"].currentValue) {
|
|
78
|
+
this.controls.markAsDirty();
|
|
79
|
+
this.controls.markAsTouched();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
ngOnInit() { }
|
|
84
|
+
ngAfterViewInit() { }
|
|
85
|
+
get nativeElement() {
|
|
86
|
+
return this._inputText.nativeElement;
|
|
87
|
+
}
|
|
88
|
+
onBlur(value) {
|
|
89
|
+
this.onTouch();
|
|
90
|
+
this.blur.emit(this.formatInput(value));
|
|
91
|
+
}
|
|
92
|
+
onFocus(value) {
|
|
93
|
+
if (value.trim() !== "") {
|
|
94
|
+
this.nativeElement?.select();
|
|
95
|
+
this.onfocus.emit(value.trim());
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
onInput(value) {
|
|
99
|
+
const newValue = this.formatInput(value);
|
|
100
|
+
this.onTouch();
|
|
101
|
+
this.onChange(newValue);
|
|
102
|
+
this.onValidationChange();
|
|
103
|
+
this.onchange.emit(newValue);
|
|
104
|
+
this.change.emit(newValue);
|
|
105
|
+
}
|
|
106
|
+
writeValue(value) {
|
|
107
|
+
if (value) {
|
|
108
|
+
this.value = this.formatInput(value);
|
|
109
|
+
if (this.controls) {
|
|
110
|
+
this._render.setProperty(this.controls, "value", this.value);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.value = null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
registerOnChange(fn) {
|
|
118
|
+
this.onChange = fn;
|
|
119
|
+
}
|
|
120
|
+
registerOnTouched(fn) {
|
|
121
|
+
this.onTouch = fn;
|
|
122
|
+
}
|
|
123
|
+
setDisabledState(isDisabled) {
|
|
124
|
+
this.disabled = isDisabled;
|
|
125
|
+
}
|
|
126
|
+
validate(control) {
|
|
127
|
+
this.controls = control;
|
|
128
|
+
if (!this._initValue) {
|
|
129
|
+
if (this.value) {
|
|
130
|
+
this._render.setProperty(this.controls, "value", this.value);
|
|
131
|
+
}
|
|
132
|
+
this._initValue = true;
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
registerOnValidatorChange(fn) {
|
|
137
|
+
this.onValidationChange = fn;
|
|
138
|
+
}
|
|
139
|
+
formatInput(value) {
|
|
140
|
+
if (value !== null && value.toString().trim() !== "") {
|
|
141
|
+
let newValue = value.toString().trim();
|
|
142
|
+
if (this.format === "M")
|
|
143
|
+
newValue = newValue.toUpperCase();
|
|
144
|
+
if (this.format === "m")
|
|
145
|
+
newValue = newValue.toLowerCase();
|
|
146
|
+
if (this.controlCharClearReplace) {
|
|
147
|
+
newValue = this.clearCharacters(newValue);
|
|
148
|
+
newValue = this.replaceCharacters(newValue);
|
|
149
|
+
}
|
|
150
|
+
return newValue;
|
|
151
|
+
}
|
|
152
|
+
return value;
|
|
153
|
+
}
|
|
154
|
+
enterKeyUp() {
|
|
155
|
+
if (!this.disabled) {
|
|
156
|
+
this.writeValue(this.value);
|
|
157
|
+
let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);
|
|
158
|
+
if (validator.error) {
|
|
159
|
+
this.messageUtilService.getMessageError("000046", "Error", validator.message);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (this.next != undefined) {
|
|
164
|
+
if (this.next.disabled || this.next.readonly) {
|
|
165
|
+
if (this.nextIsDisable != undefined) {
|
|
166
|
+
this.nextIsDisable.focus();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.next.focus();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
if (this.nextIsDisable != undefined) {
|
|
175
|
+
this.nextIsDisable.focus();
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
this.onNext.emit();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
arrowUpKeyUp() {
|
|
183
|
+
if (!this.disabled) {
|
|
184
|
+
let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);
|
|
185
|
+
if (validator.error) {
|
|
186
|
+
this.messageUtilService.getMessageError("000046", "Error", validator.message);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (this.back != undefined) {
|
|
191
|
+
if (this.back.disabled || this.back.readonly) {
|
|
192
|
+
if (this.backIsDisable != undefined) {
|
|
193
|
+
this.backIsDisable.focus();
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
this.back.focus();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
if (this.backIsDisable != undefined) {
|
|
202
|
+
this.backIsDisable.focus();
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.onBack.emit();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
onFocusOut(evt) {
|
|
210
|
+
this.onfocusout.emit(evt);
|
|
211
|
+
if (this.btnEnable) {
|
|
212
|
+
this.disabled = true;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
clickEnable() {
|
|
216
|
+
this.disabled = false;
|
|
217
|
+
this.readonly = false;
|
|
218
|
+
setTimeout(() => {
|
|
219
|
+
this.focus();
|
|
220
|
+
}, 150);
|
|
221
|
+
}
|
|
222
|
+
clickShowPassword() {
|
|
223
|
+
this.showPassword = !this.showPassword;
|
|
224
|
+
}
|
|
225
|
+
clearCharacters(text) {
|
|
226
|
+
if (!text)
|
|
227
|
+
return text;
|
|
228
|
+
const regexPattern = `[${this.clearRegex}]`;
|
|
229
|
+
let formattedString = text.replace(new RegExp(regexPattern, 'g'), '');
|
|
230
|
+
return formattedString;
|
|
231
|
+
}
|
|
232
|
+
replaceCharacters(text) {
|
|
233
|
+
if (!text)
|
|
234
|
+
return text;
|
|
235
|
+
const regexReplace = Object.keys(this.replaceRegex).join('');
|
|
236
|
+
const regexPattern = `[${regexReplace}]`;
|
|
237
|
+
return text.replace(new RegExp(regexPattern, 'g'), (char) => this.replaceRegex[char] || char);
|
|
238
|
+
}
|
|
239
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextComponent, deps: [{ token: i1.MessageUtilService }, { token: i2.InputTextService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
240
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: InputTextComponent, selector: "input-text", inputs: { format: "format", type: "type", showLabel: "showLabel", label: "label", btnEnable: "btnEnable", autocomplete: "autocomplete", bold: "bold", inputMask: "inputMask", showMaskTyped: "showMaskTyped", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", required: "required", textRight: "textRight", disabled: "disabled", readonly: "readonly", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", maxLength: "maxLength", submitted: "submitted", validatorAlert: "validatorAlert", setNgClass: "setNgClass", patterns: "patterns", placeholder: "placeholder", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", controlCharClearReplace: "controlCharClearReplace", replaceRegex: "replaceRegex", clearRegex: "clearRegex" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", blur: "blur", onfocus: "onfocus", onchange: "onchange", onfocusout: "onfocusout" }, providers: [
|
|
241
|
+
{
|
|
242
|
+
provide: NG_VALUE_ACCESSOR,
|
|
243
|
+
useExisting: forwardRef(() => InputTextComponent),
|
|
244
|
+
multi: true,
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
provide: NG_VALIDATORS,
|
|
248
|
+
useExisting: forwardRef(() => InputTextComponent),
|
|
249
|
+
multi: true,
|
|
250
|
+
},
|
|
251
|
+
], viewQueries: [{ propertyName: "_inputText", first: true, predicate: ["inputText"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"w-100 position-relative\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n\r\n <input\r\n *ngIf=\"inputMask != null\"\r\n #inputText\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [mask]=\"inputMask\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [patterns]=\"patterns\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n <input\r\n *ngIf=\"inputMask == null\"\r\n #inputText\r\n [type]=\"type === 'password' ? (showPassword ? 'text' : 'password') : type\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [attr.maxLength]=\"maxLength\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"type === 'password'\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickShowPassword()\">\r\n <i\r\n [class.fa-eye]=\"showPassword\"\r\n [class.fa-eye-slash]=\"!showPassword\"\r\n class=\"far px-1\"\r\n [matTooltip]=\"!showPassword ? 'Mostrar' : 'Ocultar'\"\r\n matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n <i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.btn-password{position:absolute;right:.3em;top:50%;transform:translateY(-50%);font-size:.8em;border:0;outline:0;border-radius:50%}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.errorMessageComponent, selector: "error-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "component", type: i6.tooltipMessageComponent, selector: "tooltip-message", inputs: ["tooltipMessage", "validatorMessage", "controls", "label", "submitted"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i8.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] }); }
|
|
252
|
+
}
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextComponent, decorators: [{
|
|
254
|
+
type: Component,
|
|
255
|
+
args: [{ selector: "input-text", providers: [
|
|
256
|
+
{
|
|
257
|
+
provide: NG_VALUE_ACCESSOR,
|
|
258
|
+
useExisting: forwardRef(() => InputTextComponent),
|
|
259
|
+
multi: true,
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
provide: NG_VALIDATORS,
|
|
263
|
+
useExisting: forwardRef(() => InputTextComponent),
|
|
264
|
+
multi: true,
|
|
265
|
+
},
|
|
266
|
+
], template: "<label *ngIf=\"label != null && label != '' && showLabel\" class=\"d-flex sumax-label mb-0 p-0\"\r\n ><span [title]=\"label\" style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis\">{{ label }}</span>\r\n <span *ngIf=\"required\" class=\"ml-1\" [class.text-danger]=\"controls?.errors != null\"> *</span>\r\n <span *ngIf=\"labelInfo\">\r\n <i class=\"fa fa-exclamation-circle text-info ms-2\" [matTooltip]=\"textLabelInfo\" matTooltipClass=\"bg-info\"></i>\r\n </span>\r\n</label>\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"w-100 position-relative\">\r\n <tooltip-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></tooltip-message>\r\n\r\n <input\r\n *ngIf=\"inputMask != null\"\r\n #inputText\r\n type=\"text\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [mask]=\"inputMask\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [patterns]=\"patterns\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n <input\r\n *ngIf=\"inputMask == null\"\r\n #inputText\r\n [type]=\"type === 'password' ? (showPassword ? 'text' : 'password') : type\"\r\n class=\"form-control form-control-sm\"\r\n [class.text-uppercase]=\"format === 'M'\"\r\n [class.text-lowercase]=\"format === 'm'\"\r\n [class.text-end]=\"textRight\"\r\n [attr.autocomplete]=\"autocomplete\"\r\n [placeholder]=\"placeholder\"\r\n [class.is-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [attr.maxLength]=\"maxLength\"\r\n (blur)=\"onBlur($any($event.target).value)\"\r\n (input)=\"onInput($any($event.target).value)\"\r\n (focusout)=\"onFocusOut($any($event.target).value)\"\r\n (focus)=\"onFocus($any($event.target).value)\"\r\n (keyup.enter)=\"enterKeyUp()\"\r\n (keyup.ArrowUp)=\"arrowUpKeyUp()\"\r\n [ngClass]=\"setNgClass\"\r\n [(ngModel)]=\"value\"\r\n [class.bold]=\"bold\" />\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"type === 'password'\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickShowPassword()\">\r\n <i\r\n [class.fa-eye]=\"showPassword\"\r\n [class.fa-eye-slash]=\"!showPassword\"\r\n class=\"far px-1\"\r\n [matTooltip]=\"!showPassword ? 'Mostrar' : 'Ocultar'\"\r\n matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <div class=\"bd-highlight\" *ngIf=\"btnEnable\">\r\n <button type=\"button\" class=\"btn btn-info p-0 rounded-0 h-100\" (click)=\"clickEnable()\">\r\n <i class=\"fa fa-check text-white px-1\" [matTooltip]=\"'Habilitar'\" matTooltipClass=\"bg-info\"></i>\r\n </button>\r\n </div>\r\n <ng-content select=\"[more-buttons]\"></ng-content>\r\n </div>\r\n</div>\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [submitted]=\"submitted\"\r\n [tooltipMessage]=\"tooltipMessage\"></error-message>\r\n", styles: [".sumax-label{color:#646c9a!important}.btn-password{position:absolute;right:.3em;top:50%;transform:translateY(-50%);font-size:.8em;border:0;outline:0;border-radius:50%}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:10px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.bold{color:#000;font-weight:700}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc3545;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.was-validated .form-control:invalid,.form-control.is-invalid{background-image:none;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #fde6e8!important}.form-control:focus,.form-control:active{border-color:#007eff;box-shadow:inset 0 1px 1px #00000013,0 0 0 3px #007eff1a!important}\n"] }]
|
|
267
|
+
}], ctorParameters: () => [{ type: i1.MessageUtilService }, { type: i2.InputTextService }, { type: i0.Renderer2 }], propDecorators: { format: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], type: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], showLabel: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], label: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], btnEnable: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], autocomplete: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], bold: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], inputMask: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], showMaskTyped: [{
|
|
284
|
+
type: Input
|
|
285
|
+
}], next: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], nextIsDisable: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], back: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], backIsDisable: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], required: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}], textRight: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], disabled: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], readonly: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], validatorMessage: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], tooltipMessage: [{
|
|
304
|
+
type: Input
|
|
305
|
+
}], maxLength: [{
|
|
306
|
+
type: Input
|
|
307
|
+
}], submitted: [{
|
|
308
|
+
type: Input
|
|
309
|
+
}], validatorAlert: [{
|
|
310
|
+
type: Input
|
|
311
|
+
}], setNgClass: [{
|
|
312
|
+
type: Input
|
|
313
|
+
}], patterns: [{
|
|
314
|
+
type: Input
|
|
315
|
+
}], placeholder: [{
|
|
316
|
+
type: Input
|
|
317
|
+
}], labelInfo: [{
|
|
318
|
+
type: Input
|
|
319
|
+
}], textLabelInfo: [{
|
|
320
|
+
type: Input
|
|
321
|
+
}], controlCharClearReplace: [{
|
|
322
|
+
type: Input
|
|
323
|
+
}], replaceRegex: [{
|
|
324
|
+
type: Input
|
|
325
|
+
}], clearRegex: [{
|
|
326
|
+
type: Input
|
|
327
|
+
}], onNext: [{
|
|
328
|
+
type: Output
|
|
329
|
+
}], onBack: [{
|
|
330
|
+
type: Output
|
|
331
|
+
}], change: [{
|
|
332
|
+
type: Output
|
|
333
|
+
}], blur: [{
|
|
334
|
+
type: Output
|
|
335
|
+
}], onfocus: [{
|
|
336
|
+
type: Output
|
|
337
|
+
}], onchange: [{
|
|
338
|
+
type: Output
|
|
339
|
+
}], onfocusout: [{
|
|
340
|
+
type: Output
|
|
341
|
+
}], _inputText: [{
|
|
342
|
+
type: ViewChild,
|
|
343
|
+
args: ["inputText"]
|
|
344
|
+
}] } });
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF5QyxhQUFhLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7QUFxQnJFLE1BQU0sT0FBTyxrQkFBa0I7SUFnRDdCLFlBQ1Usa0JBQXNDLEVBQ3RDLGdCQUFrQyxFQUNsQyxPQUFrQjtRQUZsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQWxEbkIsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUNyQixTQUFJLEdBQVMsTUFBTSxDQUFDO1FBQ3BCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQVcsNEJBQTRCLENBQUM7UUFDcEQsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUsvQixhQUFRLEdBQVks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c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFaUIsVUFBVTtzQkFBakMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRTZXJ2aWNlIH0gZnJvbSBcIi4vaW5wdXQtdGV4dC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VVdGlsU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9tZXNzYWdlLXV0aWwuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaGFyZWRDb21wb25lbnRzVXRpbCB9IGZyb20gXCIuLi91dGlscy9TaGFyZWRDb21wb25lbnRzVXRpbFwiO1xyXG5cclxuZXhwb3J0IHR5cGUgVHlwZSA9IFwidGV4dFwiIHwgXCJwYXNzd29yZFwiIHwgXCJlbWFpbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaW5wdXQtdGV4dFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbnB1dC10ZXh0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgZm9ybWF0OiBzdHJpbmcgPSBcIk1cIjtcclxuICBASW5wdXQoKSB0eXBlOiBUeXBlID0gXCJ0ZXh0XCI7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbDogYW55ID0gXCJcIjtcclxuICBASW5wdXQoKSBidG5FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyA9IFwibm8tYXV0b2NvbXBsZXRlLWlucHV0LXRleHRcIjtcclxuICBASW5wdXQoKSBib2xkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaW5wdXRNYXNrOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBzaG93TWFza1R5cGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbmV4dDogYW55O1xyXG4gIEBJbnB1dCgpIG5leHRJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSBiYWNrOiBhbnk7XHJcbiAgQElucHV0KCkgYmFja0lzRGlzYWJsZTogYW55O1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGV4dFJpZ2h0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yQWxlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXROZ0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBhdHRlcm5zOiBhbnkgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgY29udHJvbENoYXJDbGVhclJlcGxhY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSByZXBsYWNlUmVnZXg6IHtba2V5OnN0cmluZ106IHN0cmluZ30gPSB7fTtcclxuICBASW5wdXQoKSBjbGVhclJlZ2V4OiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBPdXRwdXQoKSBvbk5leHQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25mb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25mb2N1c291dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dFRleHRcIikgX2lucHV0VGV4dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gbnVsbDtcclxuICB2YWx1ZTogYW55O1xyXG4gIHNoYXJlZENvbXBvbmVudHNVdGlsID0gbmV3IFNoYXJlZENvbXBvbmVudHNVdGlsKCk7XHJcbiAgX2luaXRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICBzaG93UGFzc3dvcmQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VVdGlsU2VydmljZTogTWVzc2FnZVV0aWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbnB1dFRleHRTZXJ2aWNlOiBJbnB1dFRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyOiBSZW5kZXJlcjJcclxuICApIHtcclxuICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5pbnB1dFRleHRTZXJ2aWNlLmdldEZvcm1hdCgpO1xyXG4gICAgdGhpcy5zaG93TGFiZWwgPSB0aGlzLmlucHV0VGV4dFNlcnZpY2UuZ2V0U2hvd0xhYmVsKCk7XHJcbiAgICB0aGlzLmJ0bkVuYWJsZSA9IHRoaXMuaW5wdXRUZXh0U2VydmljZS5nZXRCdG5FbmFibGUoKTtcclxuICAgIHRoaXMuYm9sZCA9IHRoaXMuaW5wdXRUZXh0U2VydmljZS5nZXRCb2xkKCk7XHJcbiAgICB0aGlzLnRleHRSaWdodCA9IHRoaXMuaW5wdXRUZXh0U2VydmljZS5nZXRUZXh0UmlnaHQoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yTWVzc2FnZSA9IHRoaXMuaW5wdXRUZXh0U2VydmljZS5nZXRWYWxpZGF0b3JNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5pbnB1dFRleHRTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRoaXMuaW5wdXRUZXh0U2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLmlucHV0VGV4dFNlcnZpY2UuZ2V0VmFsaWRhdG9yQWxlcnQoKTtcclxuICAgIHRoaXMuY29udHJvbENoYXJDbGVhclJlcGxhY2UgPSB0aGlzLmlucHV0VGV4dFNlcnZpY2UuZ2V0Q29udHJvbENoYXJDbGVhclJlcGxhY2UoKTtcclxuICAgIHRoaXMucmVwbGFjZVJlZ2V4ID0gdGhpcy5pbnB1dFRleHRTZXJ2aWNlLmdldFJlcGxhY2VSZWdleCgpO1xyXG4gICAgdGhpcy5jbGVhclJlZ2V4ID0gdGhpcy5pbnB1dFRleHRTZXJ2aWNlLmdldENsZWFyUmVnZXgoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzIChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcInN1Ym1pdHRlZFwiXSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scyAhPSBudWxsICYmIGNoYW5nZXNbXCJzdWJtaXR0ZWRcIl0uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCAoKSB7IH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0ICgpOiB2b2lkIHsgfVxyXG5cclxuICBnZXQgbmF0aXZlRWxlbWVudCAoKTogSFRNTElucHV0RWxlbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5wdXRUZXh0Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICBvblZhbGlkYXRpb25DaGFuZ2UgPSAoKSA9PiB7IH07XHJcbiAgb25Ub3VjaCA9ICgpID0+IHsgfTtcclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIHRoaXMubmF0aXZlRWxlbWVudD8uc2VsZWN0KCk7XHJcbiAgfTtcclxuXHJcbiAgb25CbHVyICh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgIHRoaXMuYmx1ci5lbWl0KHRoaXMuZm9ybWF0SW5wdXQodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMgKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZS50cmltKCkgIT09IFwiXCIpIHtcclxuICAgICAgdGhpcy5uYXRpdmVFbGVtZW50Py5zZWxlY3QoKTtcclxuICAgICAgdGhpcy5vbmZvY3VzLmVtaXQodmFsdWUudHJpbSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQgKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5mb3JtYXRJbnB1dCh2YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG5ld1ZhbHVlKTtcclxuICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB0aGlzLm9uY2hhbmdlLmVtaXQobmV3VmFsdWUpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlICh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZm9ybWF0SW5wdXQodmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scykge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlci5zZXRQcm9wZXJ0eSh0aGlzLmNvbnRyb2xzLCBcInZhbHVlXCIsIHRoaXMudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UgKGZuOiAodjogYW55KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZCAoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlIChpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuICAgIHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG4gICAgaWYgKCF0aGlzLl9pbml0VmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXIuc2V0UHJvcGVydHkodGhpcy5jb250cm9scywgXCJ2YWx1ZVwiLCB0aGlzLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9pbml0VmFsdWUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIGZvcm1hdElucHV0ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS50b1N0cmluZygpLnRyaW0oKSAhPT0gXCJcIikge1xyXG4gICAgICBsZXQgbmV3VmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnRyaW0oKTtcclxuICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSBcIk1cIikgbmV3VmFsdWUgPSBuZXdWYWx1ZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICBpZiAodGhpcy5mb3JtYXQgPT09IFwibVwiKSBuZXdWYWx1ZSA9IG5ld1ZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sQ2hhckNsZWFyUmVwbGFjZSkge1xyXG4gICAgICAgIG5ld1ZhbHVlID0gdGhpcy5jbGVhckNoYXJhY3RlcnMobmV3VmFsdWUpO1xyXG4gICAgICAgIG5ld1ZhbHVlID0gdGhpcy5yZXBsYWNlQ2hhcmFjdGVycyhuZXdWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGVudGVyS2V5VXAgKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV4dC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25OZXh0LmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXJyb3dVcEtleVVwICgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yID0gdGhpcy5zaGFyZWRDb21wb25lbnRzVXRpbC5zdG9wQnlWYWxpZGF0b3IodGhpcy5jb250cm9scywgdGhpcy52YWxpZGF0b3JBbGVydCwgdGhpcy5sYWJlbCk7XHJcbiAgICAgIGlmICh2YWxpZGF0b3IuZXJyb3IpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VVdGlsU2VydmljZS5nZXRNZXNzYWdlRXJyb3IoXCIwMDAwNDZcIiwgXCJFcnJvclwiLCB2YWxpZGF0b3IubWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5iYWNrICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAodGhpcy5iYWNrLmRpc2FibGVkIHx8IHRoaXMuYmFjay5yZWFkb25seSkge1xyXG4gICAgICAgIGlmICh0aGlzLmJhY2tJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmJhY2tJc0Rpc2FibGUuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5iYWNrLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmJhY2tJc0Rpc2FibGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vbkJhY2suZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzT3V0IChldnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbmZvY3Vzb3V0LmVtaXQoZXZ0KTtcclxuICAgIGlmICh0aGlzLmJ0bkVuYWJsZSkge1xyXG4gICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsaWNrRW5hYmxlICgpIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMucmVhZG9ubHkgPSBmYWxzZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB9LCAxNTApO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tTaG93UGFzc3dvcmQgKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93UGFzc3dvcmQgPSAhdGhpcy5zaG93UGFzc3dvcmQ7XHJcbiAgfVxyXG5cclxuICBjbGVhckNoYXJhY3RlcnModGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghdGV4dCkgcmV0dXJuIHRleHQ7XHJcbiAgICBjb25zdCByZWdleFBhdHRlcm4gPSBgWyR7dGhpcy5jbGVhclJlZ2V4fV1gO1xyXG4gICAgbGV0IGZvcm1hdHRlZFN0cmluZyA9IHRleHQucmVwbGFjZShuZXcgUmVnRXhwKHJlZ2V4UGF0dGVybiwgJ2cnKSwgJycpO1xyXG4gICAgcmV0dXJuIGZvcm1hdHRlZFN0cmluZztcclxuICB9XHJcblxyXG4gIHJlcGxhY2VDaGFyYWN0ZXJzKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRleHQpIHJldHVybiB0ZXh0O1xyXG4gICAgY29uc3QgcmVnZXhSZXBsYWNlID0gT2JqZWN0LmtleXModGhpcy5yZXBsYWNlUmVnZXgpLmpvaW4oJycpO1xyXG4gICAgY29uc3QgcmVnZXhQYXR0ZXJuID0gYFske3JlZ2V4UmVwbGFjZX1dYDtcclxuICAgIHJldHVybiB0ZXh0LnJlcGxhY2UobmV3IFJlZ0V4cChyZWdleFBhdHRlcm4sICdnJyksIChjaGFyKSA9PiB0aGlzLnJlcGxhY2VSZWdleFtjaGFyXSB8fCBjaGFyKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsICE9IG51bGwgJiYgbGFiZWwgIT0gJycgJiYgc2hvd0xhYmVsXCIgY2xhc3M9XCJkLWZsZXggc3VtYXgtbGFiZWwgbWItMCBwLTBcIlxyXG4gID48c3BhbiBbdGl0bGVdPVwibGFiZWxcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXCI+e3sgbGFiZWwgfX08L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwibWwtMVwiIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGxcIj4gKjwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImxhYmVsSW5mb1wiPlxyXG4gICAgPGkgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGUgdGV4dC1pbmZvIG1zLTJcIiBbbWF0VG9vbHRpcF09XCJ0ZXh0TGFiZWxJbmZvXCIgbWF0VG9vbHRpcENsYXNzPVwiYmctaW5mb1wiPjwvaT5cclxuICA8L3NwYW4+XHJcbjwvbGFiZWw+XHJcbjxkaXZcclxuICBbY2xhc3MuaW5wdXQtaWNvbl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICBbY2xhc3MucmlnaHRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICA8dG9vbHRpcC1tZXNzYWdlXHJcbiAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gICAgICAgIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gICAgICAgIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICAgICAgICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L3Rvb2x0aXAtbWVzc2FnZT5cclxuXHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICpuZ0lmPVwiaW5wdXRNYXNrICE9IG51bGxcIlxyXG4gICAgICAgICNpbnB1dFRleHRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcclxuICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwiZm9ybWF0ID09PSAnTSdcIlxyXG4gICAgICAgIFtjbGFzcy50ZXh0LWxvd2VyY2FzZV09XCJmb3JtYXQgPT09ICdtJ1wiXHJcbiAgICAgICAgW2NsYXNzLnRleHQtZW5kXT1cInRleHRSaWdodFwiXHJcbiAgICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgW21hc2tdPVwiaW5wdXRNYXNrXCJcclxuICAgICAgICBbc2hvd01hc2tUeXBlZF09XCJzaG93TWFza1R5cGVkXCJcclxuICAgICAgICBbcGF0dGVybnNdPVwicGF0dGVybnNcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImVudGVyS2V5VXAoKVwiXHJcbiAgICAgICAgKGtleXVwLkFycm93VXApPVwiYXJyb3dVcEtleVVwKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInNldE5nQ2xhc3NcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgIFtjbGFzcy5ib2xkXT1cImJvbGRcIiAvPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAqbmdJZj1cImlucHV0TWFzayA9PSBudWxsXCJcclxuICAgICAgICAjaW5wdXRUZXh0XHJcbiAgICAgICAgW3R5cGVdPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyA/IChzaG93UGFzc3dvcmQgPyAndGV4dCcgOiAncGFzc3dvcmQnKSA6IHR5cGVcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiXHJcbiAgICAgICAgW2NsYXNzLnRleHQtdXBwZXJjYXNlXT1cImZvcm1hdCA9PT0gJ00nXCJcclxuICAgICAgICBbY2xhc3MudGV4dC1sb3dlcmNhc2VdPVwiZm9ybWF0ID09PSAnbSdcIlxyXG4gICAgICAgIFtjbGFzcy50ZXh0LWVuZF09XCJ0ZXh0UmlnaHRcIlxyXG4gICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgIFthdHRyLm1heExlbmd0aF09XCJtYXhMZW5ndGhcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxyXG4gICAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXHJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImVudGVyS2V5VXAoKVwiXHJcbiAgICAgICAgKGtleXVwLkFycm93VXApPVwiYXJyb3dVcEtleVVwKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInNldE5nQ2xhc3NcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgIFtjbGFzcy5ib2xkXT1cImJvbGRcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYmQtaGlnaGxpZ2h0XCIgKm5nSWY9XCJ0eXBlID09PSAncGFzc3dvcmQnXCI+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIHAtMCByb3VuZGVkLTAgaC0xMDBcIiAoY2xpY2spPVwiY2xpY2tTaG93UGFzc3dvcmQoKVwiPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBbY2xhc3MuZmEtZXllXT1cInNob3dQYXNzd29yZFwiXHJcbiAgICAgICAgICBbY2xhc3MuZmEtZXllLXNsYXNoXT1cIiFzaG93UGFzc3dvcmRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJmYXIgcHgtMVwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCIhc2hvd1Bhc3N3b3JkID8gJ01vc3RyYXInIDogJ09jdWx0YXInXCJcclxuICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYmQtaGlnaGxpZ2h0XCIgKm5nSWY9XCJidG5FbmFibGVcIj5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWluZm8gcC0wIHJvdW5kZWQtMCBoLTEwMFwiIChjbGljayk9XCJjbGlja0VuYWJsZSgpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVjayB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInSGFiaWxpdGFyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbW9yZS1idXR0b25zXVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxlcnJvci1tZXNzYWdlXHJcbiAgW2xhYmVsXT1cImxhYmVsXCJcclxuICBbY29udHJvbHNdPVwiY29udHJvbHNcIlxyXG4gIFt2YWxpZGF0b3JNZXNzYWdlXT1cInZhbGlkYXRvck1lc3NhZ2VcIlxyXG4gIFtzdWJtaXR0ZWRdPVwic3VibWl0dGVkXCJcclxuICBbdG9vbHRpcE1lc3NhZ2VdPVwidG9vbHRpcE1lc3NhZ2VcIj48L2Vycm9yLW1lc3NhZ2U+XHJcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class InputText {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvaW5wdXQtdGV4dC9pbnB1dC10ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0NBYXJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIElucHV0VGV4dCB7XHJcbiAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgYnRuRW5hYmxlPzogYm9vbGVhbjtcclxuICBib2xkPzogYm9vbGVhbjtcclxuICB0ZXh0UmlnaHQ/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvck1lc3NhZ2U/OiBib29sZWFuO1xyXG4gIHRvb2x0aXBNZXNzYWdlPzogYm9vbGVhbjtcclxuICBzdWJtaXR0ZWQ/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvckFsZXJ0PzogYm9vbGVhbjtcclxuICBjb250cm9sQ2hhckNsZWFyUmVwbGFjZT86IGJvb2xlYW47XHJcbiAgcmVwbGFjZVJlZ2V4Pzoge1trZXk6c3RyaW5nXTogc3RyaW5nfTtcclxuICBjbGVhclJlZ2V4Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGb3JtYXQgPSBcIk1cIiB8IFwibVwiIHwgXCJNblwiO1xyXG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { NgModule } from "@angular/core";
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
4
|
+
import { MatIconModule } from "@angular/material/icon";
|
|
5
|
+
import { MatTooltipModule } from "@angular/material/tooltip";
|
|
6
|
+
import { RouterModule } from "@angular/router";
|
|
7
|
+
import { NgxMaskDirective, provideNgxMask } from "ngx-mask";
|
|
8
|
+
import { ErrorMessageModule } from "../error-message/error-message.module";
|
|
9
|
+
import { TooltipMessageModule } from "../tooltip-message/tooltip-message.module";
|
|
10
|
+
import { InputText } from "./input-text";
|
|
11
|
+
import { InputTextComponent } from "./input-text.component";
|
|
12
|
+
import { InputTextService } from "./input-text.service";
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class InputTextModule {
|
|
15
|
+
static forRoot(inputText = new InputText()) {
|
|
16
|
+
return {
|
|
17
|
+
ngModule: InputTextModule,
|
|
18
|
+
providers: [
|
|
19
|
+
{ provide: "INPUT_TEXT_FORMAT", useValue: inputText.format },
|
|
20
|
+
{ provide: "INPUT_TEXT_SHOW_LABEL", useValue: inputText.showLabel },
|
|
21
|
+
{ provide: "INPUT_TEXT_BTN_ENABLE", useValue: inputText.btnEnable },
|
|
22
|
+
{ provide: "INPUT_TEXT_BOLD", useValue: inputText.bold },
|
|
23
|
+
{ provide: "INPUT_TEXT_TEXT_RIGHT", useValue: inputText.textRight },
|
|
24
|
+
{ provide: "INPUT_TEXT_VALIDATOR_MESSAGE", useValue: inputText.validatorMessage },
|
|
25
|
+
{ provide: "INPUT_TEXT_TOOLTIP_MESSAGE", useValue: inputText.tooltipMessage },
|
|
26
|
+
{ provide: "INPUT_TEXT_SUBMITTED", useValue: inputText.submitted },
|
|
27
|
+
{ provide: "INPUT_TEXT_VALIDATOR_ALERT", useValue: inputText.validatorAlert },
|
|
28
|
+
{ provide: "INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX", useValue: inputText.controlCharClearReplace },
|
|
29
|
+
{ provide: "INPUT_TEXT_REPLACE_REGEX", useValue: inputText.replaceRegex },
|
|
30
|
+
{ provide: "INPUT_TEXT_CLEAR_REGEX", useValue: inputText.clearRegex },
|
|
31
|
+
InputTextService
|
|
32
|
+
],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
36
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: InputTextModule, declarations: [InputTextComponent], imports: [CommonModule,
|
|
37
|
+
RouterModule,
|
|
38
|
+
FormsModule,
|
|
39
|
+
ReactiveFormsModule,
|
|
40
|
+
ErrorMessageModule,
|
|
41
|
+
TooltipMessageModule,
|
|
42
|
+
MatIconModule,
|
|
43
|
+
MatTooltipModule,
|
|
44
|
+
NgxMaskDirective], exports: [InputTextComponent] }); }
|
|
45
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextModule, providers: [provideNgxMask({ validation: false })], imports: [CommonModule,
|
|
46
|
+
RouterModule,
|
|
47
|
+
FormsModule,
|
|
48
|
+
ReactiveFormsModule,
|
|
49
|
+
ErrorMessageModule,
|
|
50
|
+
TooltipMessageModule,
|
|
51
|
+
MatIconModule,
|
|
52
|
+
MatTooltipModule] }); }
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextModule, decorators: [{
|
|
55
|
+
type: NgModule,
|
|
56
|
+
args: [{
|
|
57
|
+
declarations: [InputTextComponent],
|
|
58
|
+
imports: [
|
|
59
|
+
CommonModule,
|
|
60
|
+
RouterModule,
|
|
61
|
+
FormsModule,
|
|
62
|
+
ReactiveFormsModule,
|
|
63
|
+
ErrorMessageModule,
|
|
64
|
+
TooltipMessageModule,
|
|
65
|
+
MatIconModule,
|
|
66
|
+
MatTooltipModule,
|
|
67
|
+
NgxMaskDirective,
|
|
68
|
+
],
|
|
69
|
+
exports: [InputTextComponent],
|
|
70
|
+
providers: [provideNgxMask({ validation: false })],
|
|
71
|
+
}]
|
|
72
|
+
}] });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFrQnhELE1BQU0sT0FBTyxlQUFlO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBdUIsSUFBSSxTQUFTLEVBQUU7UUFDbkQsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUU7Z0JBQ25FLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsU0FBUyxFQUFFO2dCQUNuRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDeEQsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUU7Z0JBQ25FLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ2pGLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsY0FBYyxFQUFFO2dCQUM3RSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRTtnQkFDbEUsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxjQUFjLEVBQUU7Z0JBQzdFLEVBQUUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsdUJBQXVCLEVBQUU7Z0JBQ2xHLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFO2dCQUN6RSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRTtnQkFDckUsZ0JBQWdCO2FBQ2pCO1NBRUYsQ0FBQztJQUNKLENBQUM7K0dBckJVLGVBQWU7Z0hBQWYsZUFBZSxpQkFmWCxrQkFBa0IsYUFFL0IsWUFBWTtZQUNaLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixnQkFBZ0IsYUFFUixrQkFBa0I7Z0hBR2pCLGVBQWUsYUFGZixDQUFDLGNBQWMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBWGhELFlBQVk7WUFDWixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixnQkFBZ0I7OzRGQU1QLGVBQWU7a0JBaEIzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTmd4TWFza0RpcmVjdGl2ZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tIFwibmd4LW1hc2tcIjtcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlTW9kdWxlIH0gZnJvbSBcIi4uL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5tb2R1bGVcIjtcclxuaW1wb3J0IHsgVG9vbHRpcE1lc3NhZ2VNb2R1bGUgfSBmcm9tIFwiLi4vdG9vbHRpcC1tZXNzYWdlL3Rvb2x0aXAtbWVzc2FnZS5tb2R1bGVcIjtcclxuaW1wb3J0IHsgSW5wdXRUZXh0IH0gZnJvbSBcIi4vaW5wdXQtdGV4dFwiO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tIFwiLi9pbnB1dC10ZXh0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRTZXJ2aWNlIH0gZnJvbSBcIi4vaW5wdXQtdGV4dC5zZXJ2aWNlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0lucHV0VGV4dENvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRXJyb3JNZXNzYWdlTW9kdWxlLFxyXG4gICAgVG9vbHRpcE1lc3NhZ2VNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbSW5wdXRUZXh0Q29tcG9uZW50XSxcclxuICBwcm92aWRlcnM6IFtwcm92aWRlTmd4TWFzayh7IHZhbGlkYXRpb246IGZhbHNlIH0pXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGV4dE1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoaW5wdXRUZXh0OiBJbnB1dFRleHQgPSBuZXcgSW5wdXRUZXh0KCkpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElucHV0VGV4dE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IElucHV0VGV4dE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBcIklOUFVUX1RFWFRfRk9STUFUXCIsIHVzZVZhbHVlOiBpbnB1dFRleHQuZm9ybWF0IH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBcIklOUFVUX1RFWFRfU0hPV19MQUJFTFwiLCB1c2VWYWx1ZTogaW5wdXRUZXh0LnNob3dMYWJlbCB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogXCJJTlBVVF9URVhUX0JUTl9FTkFCTEVcIiwgdXNlVmFsdWU6IGlucHV0VGV4dC5idG5FbmFibGUgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFwiSU5QVVRfVEVYVF9CT0xEXCIsIHVzZVZhbHVlOiBpbnB1dFRleHQuYm9sZCB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogXCJJTlBVVF9URVhUX1RFWFRfUklHSFRcIiwgdXNlVmFsdWU6IGlucHV0VGV4dC50ZXh0UmlnaHQgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFwiSU5QVVRfVEVYVF9WQUxJREFUT1JfTUVTU0FHRVwiLCB1c2VWYWx1ZTogaW5wdXRUZXh0LnZhbGlkYXRvck1lc3NhZ2UgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFwiSU5QVVRfVEVYVF9UT09MVElQX01FU1NBR0VcIiwgdXNlVmFsdWU6IGlucHV0VGV4dC50b29sdGlwTWVzc2FnZSB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogXCJJTlBVVF9URVhUX1NVQk1JVFRFRFwiLCB1c2VWYWx1ZTogaW5wdXRUZXh0LnN1Ym1pdHRlZCB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogXCJJTlBVVF9URVhUX1ZBTElEQVRPUl9BTEVSVFwiLCB1c2VWYWx1ZTogaW5wdXRUZXh0LnZhbGlkYXRvckFsZXJ0IH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBcIklOUFVUX1RFWFRfQ09OVFJPTF9DTEVBUl9SRVBMQUNFX1JFR0VYXCIsIHVzZVZhbHVlOiBpbnB1dFRleHQuY29udHJvbENoYXJDbGVhclJlcGxhY2UgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IFwiSU5QVVRfVEVYVF9SRVBMQUNFX1JFR0VYXCIsIHVzZVZhbHVlOiBpbnB1dFRleHQucmVwbGFjZVJlZ2V4IH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBcIklOUFVUX1RFWFRfQ0xFQVJfUkVHRVhcIiwgdXNlVmFsdWU6IGlucHV0VGV4dC5jbGVhclJlZ2V4IH0sXHJcbiAgICAgICAgSW5wdXRUZXh0U2VydmljZVxyXG4gICAgICBdLFxyXG4gICAgIFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|