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,96 @@
|
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class InputTextService {
|
|
4
|
+
constructor(format = "M", showLabel = true, btnEnable = false, bold = false, textRight = false, validatorMessage = false, tooltipMessage = true, submitted = true, validatorAlert = false, controlCharClearReplace = false, replaceRegex = {}, clearRegex = '') {
|
|
5
|
+
this.format = format;
|
|
6
|
+
this.showLabel = showLabel;
|
|
7
|
+
this.btnEnable = btnEnable;
|
|
8
|
+
this.bold = bold;
|
|
9
|
+
this.textRight = textRight;
|
|
10
|
+
this.validatorMessage = validatorMessage;
|
|
11
|
+
this.tooltipMessage = tooltipMessage;
|
|
12
|
+
this.submitted = submitted;
|
|
13
|
+
this.validatorAlert = validatorAlert;
|
|
14
|
+
this.controlCharClearReplace = controlCharClearReplace;
|
|
15
|
+
this.replaceRegex = replaceRegex;
|
|
16
|
+
this.clearRegex = clearRegex;
|
|
17
|
+
}
|
|
18
|
+
getFormat() {
|
|
19
|
+
return this.format;
|
|
20
|
+
}
|
|
21
|
+
getShowLabel() {
|
|
22
|
+
return this.showLabel;
|
|
23
|
+
}
|
|
24
|
+
getBtnEnable() {
|
|
25
|
+
return this.btnEnable;
|
|
26
|
+
}
|
|
27
|
+
getBold() {
|
|
28
|
+
return this.bold;
|
|
29
|
+
}
|
|
30
|
+
getTextRight() {
|
|
31
|
+
return this.textRight;
|
|
32
|
+
}
|
|
33
|
+
getValidatorMessage() {
|
|
34
|
+
return this.validatorMessage;
|
|
35
|
+
}
|
|
36
|
+
getTooltipMessage() {
|
|
37
|
+
return this.tooltipMessage;
|
|
38
|
+
}
|
|
39
|
+
getSubmitted() {
|
|
40
|
+
return this.submitted;
|
|
41
|
+
}
|
|
42
|
+
getValidatorAlert() {
|
|
43
|
+
return this.validatorAlert;
|
|
44
|
+
}
|
|
45
|
+
getControlCharClearReplace() {
|
|
46
|
+
return this.controlCharClearReplace;
|
|
47
|
+
}
|
|
48
|
+
getReplaceRegex() {
|
|
49
|
+
return this.replaceRegex;
|
|
50
|
+
}
|
|
51
|
+
getClearRegex() {
|
|
52
|
+
return this.clearRegex;
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextService, deps: [{ token: "INPUT_TEXT_FORMAT" }, { token: "INPUT_TEXT_SHOW_LABEL" }, { token: "INPUT_TEXT_BTN_ENABLE" }, { token: "INPUT_TEXT_BOLD" }, { token: "INPUT_TEXT_TEXT_RIGHT" }, { token: "INPUT_TEXT_VALIDATOR_MESSAGE" }, { token: "INPUT_TEXT_TOOLTIP_MESSAGE" }, { token: "INPUT_TEXT_SUBMITTED" }, { token: "INPUT_TEXT_VALIDATOR_ALERT" }, { token: "INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX" }, { token: "INPUT_TEXT_REPLACE_REGEX" }, { token: "INPUT_TEXT_CLEAR_REGEX" }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextService }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: InputTextService, decorators: [{
|
|
58
|
+
type: Injectable
|
|
59
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
60
|
+
type: Inject,
|
|
61
|
+
args: ["INPUT_TEXT_FORMAT"]
|
|
62
|
+
}] }, { type: undefined, decorators: [{
|
|
63
|
+
type: Inject,
|
|
64
|
+
args: ["INPUT_TEXT_SHOW_LABEL"]
|
|
65
|
+
}] }, { type: undefined, decorators: [{
|
|
66
|
+
type: Inject,
|
|
67
|
+
args: ["INPUT_TEXT_BTN_ENABLE"]
|
|
68
|
+
}] }, { type: undefined, decorators: [{
|
|
69
|
+
type: Inject,
|
|
70
|
+
args: ["INPUT_TEXT_BOLD"]
|
|
71
|
+
}] }, { type: undefined, decorators: [{
|
|
72
|
+
type: Inject,
|
|
73
|
+
args: ["INPUT_TEXT_TEXT_RIGHT"]
|
|
74
|
+
}] }, { type: undefined, decorators: [{
|
|
75
|
+
type: Inject,
|
|
76
|
+
args: ["INPUT_TEXT_VALIDATOR_MESSAGE"]
|
|
77
|
+
}] }, { type: undefined, decorators: [{
|
|
78
|
+
type: Inject,
|
|
79
|
+
args: ["INPUT_TEXT_TOOLTIP_MESSAGE"]
|
|
80
|
+
}] }, { type: undefined, decorators: [{
|
|
81
|
+
type: Inject,
|
|
82
|
+
args: ["INPUT_TEXT_SUBMITTED"]
|
|
83
|
+
}] }, { type: undefined, decorators: [{
|
|
84
|
+
type: Inject,
|
|
85
|
+
args: ["INPUT_TEXT_VALIDATOR_ALERT"]
|
|
86
|
+
}] }, { type: undefined, decorators: [{
|
|
87
|
+
type: Inject,
|
|
88
|
+
args: ["INPUT_TEXT_CONTROL_CLEAR_REPLACE_REGEX"]
|
|
89
|
+
}] }, { type: undefined, decorators: [{
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: ["INPUT_TEXT_REPLACE_REGEX"]
|
|
92
|
+
}] }, { type: undefined, decorators: [{
|
|
93
|
+
type: Inject,
|
|
94
|
+
args: ["INPUT_TEXT_CLEAR_REGEX"]
|
|
95
|
+
}] }] });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9pbnB1dC10ZXh0L2lucHV0LXRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUN1QyxTQUFpQixHQUFHLEVBQ2hCLFlBQXFCLElBQUksRUFDekIsWUFBcUIsS0FBSyxFQUNoQyxPQUFnQixLQUFLLEVBQ2YsWUFBcUIsS0FBSyxFQUNuQixtQkFBNEIsS0FBSyxFQUNuQyxpQkFBMEIsSUFBSSxFQUNwQyxZQUFxQixJQUFJLEVBQ25CLGlCQUEwQixLQUFLLEVBQ25CLDBCQUFtQyxLQUFLLEVBQ3RELGVBQXVDLEVBQUUsRUFDM0MsYUFBcUIsRUFBRTtRQVg1QixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQ2hDLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQ25CLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBaUI7UUFDdEQsaUJBQVksR0FBWixZQUFZLENBQTZCO1FBQzNDLGVBQVUsR0FBVixVQUFVLENBQWE7SUFDaEUsQ0FBQztJQUVHLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ00sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ00sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBQ00saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQ00sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNNLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUNNLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBQ00sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7K0dBbkRVLGdCQUFnQixrQkFFakIsbUJBQW1CLGFBQ25CLHVCQUF1QixhQUN2Qix1QkFBdUIsYUFDdkIsaUJBQWlCLGFBQ2pCLHVCQUF1QixhQUN2Qiw4QkFBOEIsYUFDOUIsNEJBQTRCLGFBQzVCLHNCQUFzQixhQUN0Qiw0QkFBNEIsYUFDNUIsd0NBQXdDLGFBQ3hDLDBCQUEwQixhQUMxQix3QkFBd0I7bUhBYnZCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBQzlCLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBQzlCLE1BQU07MkJBQUMsOEJBQThCOzswQkFDckMsTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUNuQyxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQzdCLE1BQU07MkJBQUMsNEJBQTRCOzswQkFDbkMsTUFBTTsyQkFBQyx3Q0FBd0M7OzBCQUMvQyxNQUFNOzJCQUFDLDBCQUEwQjs7MEJBQ2pDLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybWF0IH0gZnJvbSBcIi4vaW5wdXQtdGV4dFwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUZXh0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9GT1JNQVRcIikgcHJpdmF0ZSBmb3JtYXQ6IEZvcm1hdCA9IFwiTVwiLFxyXG4gICAgQEluamVjdChcIklOUFVUX1RFWFRfU0hPV19MQUJFTFwiKSBwcml2YXRlIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9CVE5fRU5BQkxFXCIpIHByaXZhdGUgYnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9CT0xEXCIpIHByaXZhdGUgYm9sZDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgQEluamVjdChcIklOUFVUX1RFWFRfVEVYVF9SSUdIVFwiKSBwcml2YXRlIHRleHRSaWdodDogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgQEluamVjdChcIklOUFVUX1RFWFRfVkFMSURBVE9SX01FU1NBR0VcIikgcHJpdmF0ZSB2YWxpZGF0b3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9UT09MVElQX01FU1NBR0VcIikgcHJpdmF0ZSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWUsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9TVUJNSVRURURcIikgcHJpdmF0ZSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgQEluamVjdChcIklOUFVUX1RFWFRfVkFMSURBVE9SX0FMRVJUXCIpIHByaXZhdGUgdmFsaWRhdG9yQWxlcnQ6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIEBJbmplY3QoXCJJTlBVVF9URVhUX0NPTlRST0xfQ0xFQVJfUkVQTEFDRV9SRUdFWFwiKSBwcml2YXRlIGNvbnRyb2xDaGFyQ2xlYXJSZXBsYWNlOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9SRVBMQUNFX1JFR0VYXCIpIHByaXZhdGUgcmVwbGFjZVJlZ2V4OiB7W2tleTpzdHJpbmddOiBzdHJpbmd9ID0ge30sXHJcbiAgICBASW5qZWN0KFwiSU5QVVRfVEVYVF9DTEVBUl9SRUdFWFwiKSBwcml2YXRlIGNsZWFyUmVnZXg6IHN0cmluZyA9ICcnXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0Rm9ybWF0KCk6IEZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRTaG93TGFiZWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93TGFiZWw7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRCdG5FbmFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5idG5FbmFibGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRCb2xkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYm9sZDtcclxuICB9XHJcbiAgcHVibGljIGdldFRleHRSaWdodCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRleHRSaWdodDtcclxuICB9XHJcbiAgcHVibGljIGdldFZhbGlkYXRvck1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3JNZXNzYWdlO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0VG9vbHRpcE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50b29sdGlwTWVzc2FnZTtcclxuICB9XHJcbiAgcHVibGljIGdldFN1Ym1pdHRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnN1Ym1pdHRlZDtcclxuICB9XHJcbiAgcHVibGljIGdldFZhbGlkYXRvckFsZXJ0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdG9yQWxlcnQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRDb250cm9sQ2hhckNsZWFyUmVwbGFjZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xDaGFyQ2xlYXJSZXBsYWNlO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0UmVwbGFjZVJlZ2V4KCk6IHtba2V5OnN0cmluZ106IHN0cmluZ30ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVwbGFjZVJlZ2V4O1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0Q2xlYXJSZWdleCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xlYXJSZWdleDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { isObservable } from 'rxjs';
|
|
4
|
+
import { shareReplay } from 'rxjs/operators';
|
|
5
|
+
import { SharedComponentsUtil } from '../utils/SharedComponentsUtil';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../utils/message-util.service";
|
|
8
|
+
import * as i2 from "./ng-select-multiple.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "../error-message/error-message.component";
|
|
12
|
+
import * as i6 from "../tooltip-message/tooltip-message.component";
|
|
13
|
+
import * as i7 from "@ng-select/ng-select";
|
|
14
|
+
import * as i8 from "@angular/material/checkbox";
|
|
15
|
+
import * as i9 from "@angular/material/tooltip";
|
|
16
|
+
export class NgSelectMultipleComponent {
|
|
17
|
+
constructor(cdrf, messageUtilService, ngSelectMultipleService) {
|
|
18
|
+
this.cdrf = cdrf;
|
|
19
|
+
this.messageUtilService = messageUtilService;
|
|
20
|
+
this.ngSelectMultipleService = ngSelectMultipleService;
|
|
21
|
+
this.onChange = (_) => { };
|
|
22
|
+
this.onTouched = () => { };
|
|
23
|
+
this.onValidationChange = () => { };
|
|
24
|
+
this.showlimit = 2;
|
|
25
|
+
this.showLabel = true;
|
|
26
|
+
this.label = null;
|
|
27
|
+
this.autocomplete = "no-autocomplete-ng-select";
|
|
28
|
+
this.Header = true;
|
|
29
|
+
this.Footer = true;
|
|
30
|
+
this.required = false;
|
|
31
|
+
this.disabled = false;
|
|
32
|
+
this.readonly = false;
|
|
33
|
+
this.openWhenFocus = false;
|
|
34
|
+
this.markFirst = false;
|
|
35
|
+
this.labelInfo = false;
|
|
36
|
+
this.textLabelInfo = '';
|
|
37
|
+
this.validatorMessage = false;
|
|
38
|
+
this.tooltipMessage = true;
|
|
39
|
+
this.validatorAlert = false;
|
|
40
|
+
this.submitted = true;
|
|
41
|
+
this.refresh = false;
|
|
42
|
+
this.isForFilter = true;
|
|
43
|
+
this.appendTo = "body";
|
|
44
|
+
this.Language = {
|
|
45
|
+
Selected: 'Seleccionados',
|
|
46
|
+
SelectAll: 'TODOS',
|
|
47
|
+
UnselectAll: 'NINGUNO',
|
|
48
|
+
All: 'TODOS'
|
|
49
|
+
};
|
|
50
|
+
this.virtualScroll = true;
|
|
51
|
+
this.loading = true;
|
|
52
|
+
this.loadingText = "Cargando...";
|
|
53
|
+
//EVENTS
|
|
54
|
+
this.onNext = new EventEmitter();
|
|
55
|
+
this.onBack = new EventEmitter();
|
|
56
|
+
this.change = new EventEmitter();
|
|
57
|
+
this.blur = new EventEmitter();
|
|
58
|
+
this.onfocus = new EventEmitter();
|
|
59
|
+
this.onrefresh = new EventEmitter();
|
|
60
|
+
this.sharedComponentsUtil = new SharedComponentsUtil();
|
|
61
|
+
this.checkedAll = false;
|
|
62
|
+
this.checkedIndeterminate = false;
|
|
63
|
+
this.subscriptions = [];
|
|
64
|
+
this.focus = () => {
|
|
65
|
+
this.ngSelectMultiple.focus();
|
|
66
|
+
if (this.openWhenFocus) {
|
|
67
|
+
this.ngSelectMultiple.open();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
this.close = () => {
|
|
71
|
+
this.ngSelectMultiple.close();
|
|
72
|
+
};
|
|
73
|
+
this.showlimit = this.ngSelectMultipleService.getShowlimit();
|
|
74
|
+
this.Header = this.ngSelectMultipleService.getHeader();
|
|
75
|
+
this.Footer = this.ngSelectMultipleService.getFooter();
|
|
76
|
+
this.validatorMessage = this.ngSelectMultipleService.getValidatorMessage();
|
|
77
|
+
this.tooltipMessage = this.ngSelectMultipleService.getTooltipMessage();
|
|
78
|
+
this.openWhenFocus = this.ngSelectMultipleService.getOpenWhenFocus();
|
|
79
|
+
this.submitted = this.ngSelectMultipleService.getSubmitted();
|
|
80
|
+
this.validatorAlert = this.ngSelectMultipleService.getValidatorAlert();
|
|
81
|
+
this.appendTo = this.ngSelectMultipleService.getAppendTo();
|
|
82
|
+
this.loadingText = this.ngSelectMultipleService.getLoadingText();
|
|
83
|
+
this.markFirst = this.ngSelectMultipleService.getMarkFirst();
|
|
84
|
+
this.virtualScroll = this.ngSelectMultipleService.getVirtualScroll();
|
|
85
|
+
}
|
|
86
|
+
ngOnDestroy() {
|
|
87
|
+
this.subscriptions.forEach(s => s.unsubscribe());
|
|
88
|
+
}
|
|
89
|
+
validate(control) {
|
|
90
|
+
this.controls = control;
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
registerOnValidatorChange(fn) {
|
|
94
|
+
this.onValidationChange = fn;
|
|
95
|
+
}
|
|
96
|
+
ngOnChanges(changes) {
|
|
97
|
+
if (changes['items']) {
|
|
98
|
+
this.loading = true;
|
|
99
|
+
if (isObservable(this.items)) {
|
|
100
|
+
this.carga();
|
|
101
|
+
// this.setAll();
|
|
102
|
+
// this.items$ = this.items.pipe(finalize(() => {
|
|
103
|
+
// this.loading = false;
|
|
104
|
+
// this.cdrf.markForCheck();
|
|
105
|
+
// })).subscribe(res => {
|
|
106
|
+
// this.cdrf.markForCheck();
|
|
107
|
+
// })
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.all = this.items;
|
|
111
|
+
this.loading = false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (changes['submitted']) {
|
|
115
|
+
if (this.controls !== undefined && changes['submitted'].currentValue) {
|
|
116
|
+
this.controls.markAsDirty();
|
|
117
|
+
this.controls.markAsTouched();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async carga() {
|
|
122
|
+
this.all = await new Promise((resolve, reject) => {
|
|
123
|
+
this.items = this.items.pipe(shareReplay({ refCount: true }));
|
|
124
|
+
const subscription = this.items.subscribe(res => {
|
|
125
|
+
resolve(res);
|
|
126
|
+
});
|
|
127
|
+
this.subscriptions.push(subscription);
|
|
128
|
+
});
|
|
129
|
+
this.loading = false;
|
|
130
|
+
}
|
|
131
|
+
checkIfObservable(items) {
|
|
132
|
+
if (isObservable(items))
|
|
133
|
+
return true;
|
|
134
|
+
else
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
eventFocus(e) {
|
|
138
|
+
this.onfocus.emit(e);
|
|
139
|
+
if (this.openWhenFocus) {
|
|
140
|
+
this.ngSelectMultiple.open();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
eventBlur(e) {
|
|
144
|
+
this.onTouched();
|
|
145
|
+
this.onValidationChange();
|
|
146
|
+
this.blur.emit(e);
|
|
147
|
+
}
|
|
148
|
+
onRefresh() {
|
|
149
|
+
this.onrefresh.emit();
|
|
150
|
+
}
|
|
151
|
+
ngOnInit() {
|
|
152
|
+
if (isObservable(this.items)) {
|
|
153
|
+
//this.setAll();
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.all = this.items;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
setAll() {
|
|
160
|
+
const subscription = this.items.subscribe(res => {
|
|
161
|
+
this.all = res;
|
|
162
|
+
});
|
|
163
|
+
this.subscriptions.push(subscription);
|
|
164
|
+
}
|
|
165
|
+
writeValue(value) {
|
|
166
|
+
if (value) {
|
|
167
|
+
this._value = value;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this._value = [];
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
registerOnChange(fn) {
|
|
174
|
+
this.onChange = fn;
|
|
175
|
+
}
|
|
176
|
+
registerOnTouched(fn) {
|
|
177
|
+
this.onTouched = fn;
|
|
178
|
+
}
|
|
179
|
+
setDisabledState(isDisabled) {
|
|
180
|
+
this.disabled = isDisabled;
|
|
181
|
+
}
|
|
182
|
+
selectAll(e) {
|
|
183
|
+
if (e.checked) {
|
|
184
|
+
this.writeValue(this.all);
|
|
185
|
+
if (this.isForFilter) {
|
|
186
|
+
this.onChange(null);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
this.onChange(this.all);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
this.writeValue([]);
|
|
194
|
+
this.onChange([]);
|
|
195
|
+
}
|
|
196
|
+
this.checkedIndeterminate = false;
|
|
197
|
+
this.ngSelectMultiple.focus();
|
|
198
|
+
this.cdrf.markForCheck;
|
|
199
|
+
}
|
|
200
|
+
eventChange(e) {
|
|
201
|
+
if (e.length == this.all.length) {
|
|
202
|
+
this.checkedAll = true;
|
|
203
|
+
this.checkedIndeterminate = false;
|
|
204
|
+
}
|
|
205
|
+
else if (e.length == 0) {
|
|
206
|
+
this.checkedAll = false;
|
|
207
|
+
this.checkedIndeterminate = false;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
this.checkedAll = false;
|
|
211
|
+
this.checkedIndeterminate = true;
|
|
212
|
+
}
|
|
213
|
+
this.writeValue(e);
|
|
214
|
+
this.onChange(e);
|
|
215
|
+
this.change.emit(e);
|
|
216
|
+
}
|
|
217
|
+
rightKeyUp() {
|
|
218
|
+
this.ngSelectMultiple.close();
|
|
219
|
+
if (!this.disabled) {
|
|
220
|
+
let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);
|
|
221
|
+
if (validator.error) {
|
|
222
|
+
this.messageUtilService.getMessageError("000046", "Error", validator.message);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (this.next != undefined) {
|
|
227
|
+
if (this.next.disabled || this.next.readonly) {
|
|
228
|
+
if (this.nextIsDisable != undefined) {
|
|
229
|
+
this.nextIsDisable.focus();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this.next.focus();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
if (this.nextIsDisable != undefined) {
|
|
238
|
+
this.nextIsDisable.focus();
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
this.onNext.emit();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
leftKeyUp() {
|
|
246
|
+
this.ngSelectMultiple.close();
|
|
247
|
+
if (!this.disabled) {
|
|
248
|
+
let validator = this.sharedComponentsUtil.stopByValidator(this.controls, this.validatorAlert, this.label);
|
|
249
|
+
if (validator.error) {
|
|
250
|
+
this.messageUtilService.getMessageError("000046", "Error", validator.message);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (this.back != undefined) {
|
|
255
|
+
if (this.back.disabled || this.back.readonly) {
|
|
256
|
+
if (this.backIsDisable != undefined) {
|
|
257
|
+
this.backIsDisable.focus();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
this.back.focus();
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
if (this.backIsDisable != undefined) {
|
|
266
|
+
this.backIsDisable.focus();
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
this.onBack.emit();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgSelectMultipleComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.MessageUtilService }, { token: i2.NgSelectMultipleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
274
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: NgSelectMultipleComponent, selector: "ng-select-multiple", inputs: { items: "items", showlimit: "showlimit", showLabel: "showLabel", label: "label", autocomplete: "autocomplete", Header: "Header", Footer: "Footer", required: "required", next: "next", nextIsDisable: "nextIsDisable", back: "back", backIsDisable: "backIsDisable", disabled: "disabled", readonly: "readonly", openWhenFocus: "openWhenFocus", markFirst: "markFirst", labelInfo: "labelInfo", textLabelInfo: "textLabelInfo", validatorMessage: "validatorMessage", tooltipMessage: "tooltipMessage", validatorAlert: "validatorAlert", submitted: "submitted", refresh: "refresh", isForFilter: "isForFilter", appendTo: "appendTo", Language: "Language", virtualScroll: "virtualScroll", loading: "loading", loadingText: "loadingText" }, outputs: { onNext: "onNext", onBack: "onBack", change: "change", blur: "blur", onfocus: "onfocus", onrefresh: "onrefresh" }, providers: [
|
|
275
|
+
{
|
|
276
|
+
provide: NG_VALUE_ACCESSOR,
|
|
277
|
+
useExisting: forwardRef(() => NgSelectMultipleComponent),
|
|
278
|
+
multi: true
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
provide: NG_VALIDATORS,
|
|
282
|
+
useExisting: forwardRef(() => NgSelectMultipleComponent),
|
|
283
|
+
multi: true,
|
|
284
|
+
}
|
|
285
|
+
], viewQueries: [{ propertyName: "ngSelectMultiple", first: true, predicate: ["ngSelectMultiple"], 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\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"position-relative\" [class.app-ng-selec-container]=\"refresh\" [class.w-100]=\"!refresh\">\r\n <!-- tooltip-message es el icono de error -->\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 <ng-select\r\n #ngSelectMultiple\r\n [class]=\"refresh ? 'app-ng-select' : 'w-100'\"\r\n [items]=\"$any(checkIfObservable(items) ? (items | async) : items)\"\r\n [(ngModel)]=\"_value\"\r\n [readonly]=\"disabled || readonly\"\r\n (change)=\"eventChange($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [multiple]=\"true\"\r\n placeholder=\"Seleccionar\"\r\n [closeOnSelect]=\"false\"\r\n [appendTo]=\"appendTo\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [markFirst]=\"markFirst\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n (keyup.ArrowRight)=\"rightKeyUp()\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [clearSearchOnAdd]=\"true\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <ng-template ng-header-tmp *ngIf=\"Header\">\r\n <mat-checkbox\r\n class=\"ng-multiselect-checkbox\"\r\n [color]=\"'primary'\"\r\n [(ngModel)]=\"checkedAll\"\r\n [indeterminate]=\"checkedIndeterminate\"\r\n (change)=\"selectAll($event)\">\r\n <span *ngIf=\"!checkedAll\">{{ Language.SelectAll }}</span>\r\n <span *ngIf=\"checkedAll\">{{ Language.UnselectAll }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length != _value.length\">\r\n <div class=\"ng-value\" *ngFor=\"let item of items | slice: 0 : showlimit\">\r\n <span class=\"ng-value-label\"> {{ $any(item).label }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">\u00D7</span>\r\n </div>\r\n <div class=\"ng-value\" *ngIf=\"items.length > showlimit\">\r\n <span class=\"ng-value-label\">+{{ items.length - showlimit }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <mat-checkbox class=\"ng-multiselect-checkbox\" id=\"item-{{ index }}\" color=\"primary\" [checked]=\"item$.selected\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length == _value.length\">\r\n <div class=\"ng-value\">\r\n <span class=\"ng-value-label\">{{ Language.All }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-footer-tmp *ngIf=\"Footer\"> {{ Language.Selected }}: {{ _value.length }} </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\">refresh</mat-icon> -->\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" 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\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n", styles: ["ng-select-simple{display:block}.sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:9px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.upperCase .ng-select-container .ng-value-container .ng-input>input{text-transform:uppercase}.app-ng-select-button{width:34px}.app-ng-select-button button{width:100%}.app-ng-selec-container{width:calc(100% - 34px)}.app-ng-select-action{width:20%}.app-ng-select-action button{width:50%}.overflow-box{padding:5px;height:100px;border:1px solid #999;overflow:hidden}.ng-dropdown-panel{width:auto!important;max-width:550px;min-width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i7.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i7.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i7.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i7.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "directive", type: i7.NgFooterTemplateDirective, selector: "[ng-footer-tmp]" }, { kind: "component", type: i8.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.SlicePipe, name: "slice" }] }); }
|
|
286
|
+
}
|
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgSelectMultipleComponent, decorators: [{
|
|
288
|
+
type: Component,
|
|
289
|
+
args: [{ selector: 'ng-select-multiple', providers: [
|
|
290
|
+
{
|
|
291
|
+
provide: NG_VALUE_ACCESSOR,
|
|
292
|
+
useExisting: forwardRef(() => NgSelectMultipleComponent),
|
|
293
|
+
multi: true
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
provide: NG_VALIDATORS,
|
|
297
|
+
useExisting: forwardRef(() => NgSelectMultipleComponent),
|
|
298
|
+
multi: true,
|
|
299
|
+
}
|
|
300
|
+
], 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\r\n<div\r\n [class.input-icon]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.refresh]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted && refresh\"\r\n [class.right]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <div class=\"d-flex\">\r\n <div class=\"position-relative\" [class.app-ng-selec-container]=\"refresh\" [class.w-100]=\"!refresh\">\r\n <!-- tooltip-message es el icono de error -->\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 <ng-select\r\n #ngSelectMultiple\r\n [class]=\"refresh ? 'app-ng-select' : 'w-100'\"\r\n [items]=\"$any(checkIfObservable(items) ? (items | async) : items)\"\r\n [(ngModel)]=\"_value\"\r\n [readonly]=\"disabled || readonly\"\r\n (change)=\"eventChange($event)\"\r\n (focus)=\"eventFocus($event)\"\r\n (blur)=\"eventBlur($event)\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [multiple]=\"true\"\r\n placeholder=\"Seleccionar\"\r\n [closeOnSelect]=\"false\"\r\n [appendTo]=\"appendTo\"\r\n [inputAttrs]=\"{ autocomplete: autocomplete }\"\r\n [markFirst]=\"markFirst\"\r\n (keyup.ArrowLeft)=\"leftKeyUp()\"\r\n (keyup.ArrowRight)=\"rightKeyUp()\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"loadingText\"\r\n [clearSearchOnAdd]=\"true\"\r\n [class.ng-select-invalid]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\"\r\n [class.ng-select-touched]=\"controls?.errors != null && (controls?.dirty || controls?.touched) && submitted\">\r\n <ng-template ng-header-tmp *ngIf=\"Header\">\r\n <mat-checkbox\r\n class=\"ng-multiselect-checkbox\"\r\n [color]=\"'primary'\"\r\n [(ngModel)]=\"checkedAll\"\r\n [indeterminate]=\"checkedIndeterminate\"\r\n (change)=\"selectAll($event)\">\r\n <span *ngIf=\"!checkedAll\">{{ Language.SelectAll }}</span>\r\n <span *ngIf=\"checkedAll\">{{ Language.UnselectAll }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length != _value.length\">\r\n <div class=\"ng-value\" *ngFor=\"let item of items | slice: 0 : showlimit\">\r\n <span class=\"ng-value-label\"> {{ $any(item).label }}</span>\r\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">\u00D7</span>\r\n </div>\r\n <div class=\"ng-value\" *ngIf=\"items.length > showlimit\">\r\n <span class=\"ng-value-label\">+{{ items.length - showlimit }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <mat-checkbox class=\"ng-multiselect-checkbox\" id=\"item-{{ index }}\" color=\"primary\" [checked]=\"item$.selected\">\r\n <span data-toggle=\"tooltip\" title=\"{{ item.label }}\">{{ item.label }}</span>\r\n </mat-checkbox>\r\n </ng-template>\r\n\r\n <ng-template\r\n ng-multi-label-tmp\r\n let-items=\"items\"\r\n let-clear=\"clear\"\r\n *ngIf=\"$any(checkIfObservable(items) ? (items | async) : items)?.length == _value.length\">\r\n <div class=\"ng-value\">\r\n <span class=\"ng-value-label\">{{ Language.All }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ng-footer-tmp *ngIf=\"Footer\"> {{ Language.Selected }}: {{ _value.length }} </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"app-ng-select-button bd-highlight\" *ngIf=\"refresh\">\r\n <button\r\n *ngIf=\"refresh\"\r\n type=\"button\"\r\n [disabled]=\"disabled || readonly\"\r\n class=\"btn btn-info p-0 rounded-0 h-100\"\r\n (click)=\"onRefresh()\">\r\n <!-- <mat-icon class=\"text-white pt-1\" style=\"font-size: 18px;\" [matTooltip]=\"'Refrescar'\" matTooltipClass=\"bg-info\">refresh</mat-icon> -->\r\n <i class=\"fa fa-refresh text-white px-1\" [matTooltip]=\"'Refrescar'\" 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\r\n<!-- error-message es el mansaje que aparece abajo del componente -->\r\n<error-message\r\n [label]=\"label\"\r\n [controls]=\"controls\"\r\n [validatorMessage]=\"validatorMessage\"\r\n [tooltipMessage]=\"tooltipMessage\"\r\n [submitted]=\"submitted\"></error-message>\r\n", styles: ["ng-select-simple{display:block}.sumax-label{color:#646c9a!important}.input-icon tooltip-message{color:#ccc;position:absolute;z-index:3;font-size:16px;text-align:center;right:9px;top:50%;transform:translateY(-50%)}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.upperCase .ng-select-container .ng-value-container .ng-input>input{text-transform:uppercase}.app-ng-select-button{width:34px}.app-ng-select-button button{width:100%}.app-ng-selec-container{width:calc(100% - 34px)}.app-ng-select-action{width:20%}.app-ng-select-action button{width:50%}.overflow-box{padding:5px;height:100px;border:1px solid #999;overflow:hidden}.ng-dropdown-panel{width:auto!important;max-width:550px;min-width:100%}\n"] }]
|
|
301
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.MessageUtilService }, { type: i2.NgSelectMultipleService }], propDecorators: { ngSelectMultiple: [{
|
|
302
|
+
type: ViewChild,
|
|
303
|
+
args: ['ngSelectMultiple']
|
|
304
|
+
}], items: [{
|
|
305
|
+
type: Input
|
|
306
|
+
}], showlimit: [{
|
|
307
|
+
type: Input
|
|
308
|
+
}], showLabel: [{
|
|
309
|
+
type: Input
|
|
310
|
+
}], label: [{
|
|
311
|
+
type: Input
|
|
312
|
+
}], autocomplete: [{
|
|
313
|
+
type: Input
|
|
314
|
+
}], Header: [{
|
|
315
|
+
type: Input
|
|
316
|
+
}], Footer: [{
|
|
317
|
+
type: Input
|
|
318
|
+
}], required: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}], next: [{
|
|
321
|
+
type: Input
|
|
322
|
+
}], nextIsDisable: [{
|
|
323
|
+
type: Input
|
|
324
|
+
}], back: [{
|
|
325
|
+
type: Input
|
|
326
|
+
}], backIsDisable: [{
|
|
327
|
+
type: Input
|
|
328
|
+
}], disabled: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], readonly: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}], openWhenFocus: [{
|
|
333
|
+
type: Input
|
|
334
|
+
}], markFirst: [{
|
|
335
|
+
type: Input
|
|
336
|
+
}], labelInfo: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], textLabelInfo: [{
|
|
339
|
+
type: Input
|
|
340
|
+
}], validatorMessage: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], tooltipMessage: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], validatorAlert: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], submitted: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}], refresh: [{
|
|
349
|
+
type: Input
|
|
350
|
+
}], isForFilter: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], appendTo: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}], Language: [{
|
|
355
|
+
type: Input
|
|
356
|
+
}], virtualScroll: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], loading: [{
|
|
359
|
+
type: Input
|
|
360
|
+
}], loadingText: [{
|
|
361
|
+
type: Input
|
|
362
|
+
}], onNext: [{
|
|
363
|
+
type: Output
|
|
364
|
+
}], onBack: [{
|
|
365
|
+
type: Output
|
|
366
|
+
}], change: [{
|
|
367
|
+
type: Output
|
|
368
|
+
}], blur: [{
|
|
369
|
+
type: Output
|
|
370
|
+
}], onfocus: [{
|
|
371
|
+
type: Output
|
|
372
|
+
}], onrefresh: [{
|
|
373
|
+
type: Output
|
|
374
|
+
}] } });
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zdW1heC1lcnAtY29tcG9uZW50L3NyYy9saWIvbmctc2VsZWN0LW11bHRpcGxlL25nLXNlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL25nLXNlbGVjdC1tdWx0aXBsZS9uZy1zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlKLE9BQU8sRUFBbUIsYUFBYSxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBRXJHLE9BQU8sRUFBNEIsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFvQnJFLE1BQU0sT0FBTyx5QkFBeUI7SUE4RHBDLFlBQ1UsSUFBdUIsRUFDdkIsa0JBQXNDLEVBQ3RDLHVCQUFnRDtRQUZoRCxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUE1RDFELGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsR0FBRyxFQUFFLEdBQUcs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QXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE11bHRpcGxlU2VydmljZSB9IGZyb20gJy4vbmctc2VsZWN0LW11bHRpcGxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaGFyZWRDb21wb25lbnRzVXRpbCB9IGZyb20gJy4uL3V0aWxzL1NoYXJlZENvbXBvbmVudHNVdGlsJztcclxuaW1wb3J0IHsgTWVzc2FnZVV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvbWVzc2FnZS11dGlsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZy1zZWxlY3QtbXVsdGlwbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9uZy1zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25nLXNlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTmdTZWxlY3RNdWx0aXBsZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ1NlbGVjdE11bHRpcGxlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdTZWxlY3RNdWx0aXBsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnbmdTZWxlY3RNdWx0aXBsZScpIG5nU2VsZWN0TXVsdGlwbGUhOiBOZ1NlbGVjdENvbXBvbmVudDtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG4gIG9uVmFsaWRhdGlvbkNoYW5nZSA9ICgpID0+IHsgfTtcclxuXHJcbiAgQElucHV0KCkgaXRlbXMhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBASW5wdXQoKSBzaG93bGltaXQ6IG51bWJlciA9IDI7XHJcbiAgQElucHV0KCkgc2hvd0xhYmVsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbDogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyA9IFwibm8tYXV0b2NvbXBsZXRlLW5nLXNlbGVjdFwiO1xyXG4gIEBJbnB1dCgpIEhlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgRm9vdGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG5leHQ6IGFueTtcclxuICBASW5wdXQoKSBuZXh0SXNEaXNhYmxlOiBhbnk7XHJcbiAgQElucHV0KCkgYmFjazogYW55O1xyXG4gIEBJbnB1dCgpIGJhY2tJc0Rpc2FibGU6IGFueTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb3BlbldoZW5Gb2N1czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1hcmtGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxhYmVsSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRleHRMYWJlbEluZm86IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0b29sdGlwTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgdmFsaWRhdG9yQWxlcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0ZvckZpbHRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgYXBwZW5kVG86IGFueSA9IFwiYm9keVwiXHJcbiAgQElucHV0KCkgTGFuZ3VhZ2U6IGFueSA9IHtcclxuICAgIFNlbGVjdGVkOiAnU2VsZWNjaW9uYWRvcycsXHJcbiAgICBTZWxlY3RBbGw6ICdUT0RPUycsXHJcbiAgICBVbnNlbGVjdEFsbDogJ05JTkdVTk8nLFxyXG4gICAgQWxsOiAnVE9ET1MnXHJcbiAgfTtcclxuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbG9hZGluZ1RleHQ6IHN0cmluZyA9IFwiQ2FyZ2FuZG8uLi5cIjtcclxuXHJcbiAgLy9FVkVOVFNcclxuICBAT3V0cHV0KCkgb25OZXh0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25CYWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbnJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHNoYXJlZENvbXBvbmVudHNVdGlsID0gbmV3IFNoYXJlZENvbXBvbmVudHNVdGlsKCk7XHJcblxyXG4gIF92YWx1ZTogYW55O1xyXG4gIGNvbnRyb2xzOiBhbnk7XHJcbiAgYWxsOiBhbnk7XHJcbiAgY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gIGNoZWNrZWRJbmRldGVybWluYXRlID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcmY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlVXRpbFNlcnZpY2U6IE1lc3NhZ2VVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdTZWxlY3RNdWx0aXBsZVNlcnZpY2U6IE5nU2VsZWN0TXVsdGlwbGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNob3dsaW1pdCA9IHRoaXMubmdTZWxlY3RNdWx0aXBsZVNlcnZpY2UuZ2V0U2hvd2xpbWl0KCk7XHJcbiAgICB0aGlzLkhlYWRlciA9IHRoaXMubmdTZWxlY3RNdWx0aXBsZVNlcnZpY2UuZ2V0SGVhZGVyKCk7XHJcbiAgICB0aGlzLkZvb3RlciA9IHRoaXMubmdTZWxlY3RNdWx0aXBsZVNlcnZpY2UuZ2V0Rm9vdGVyKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB0aGlzLm5nU2VsZWN0TXVsdGlwbGVTZXJ2aWNlLmdldFZhbGlkYXRvck1lc3NhZ2UoKTtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSB0aGlzLm5nU2VsZWN0TXVsdGlwbGVTZXJ2aWNlLmdldFRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICB0aGlzLm9wZW5XaGVuRm9jdXMgPSB0aGlzLm5nU2VsZWN0TXVsdGlwbGVTZXJ2aWNlLmdldE9wZW5XaGVuRm9jdXMoKTtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdGhpcy5uZ1NlbGVjdE11bHRpcGxlU2VydmljZS5nZXRTdWJtaXR0ZWQoKTtcclxuICAgIHRoaXMudmFsaWRhdG9yQWxlcnQgPSB0aGlzLm5nU2VsZWN0TXVsdGlwbGVTZXJ2aWNlLmdldFZhbGlkYXRvckFsZXJ0KCk7XHJcbiAgICB0aGlzLmFwcGVuZFRvID0gdGhpcy5uZ1NlbGVjdE11bHRpcGxlU2VydmljZS5nZXRBcHBlbmRUbygpO1xyXG4gICAgdGhpcy5sb2FkaW5nVGV4dCA9IHRoaXMubmdTZWxlY3RNdWx0aXBsZVNlcnZpY2UuZ2V0TG9hZGluZ1RleHQoKTtcclxuICAgIHRoaXMubWFya0ZpcnN0ID0gdGhpcy5uZ1NlbGVjdE11bHRpcGxlU2VydmljZS5nZXRNYXJrRmlyc3QoKTtcclxuICAgIHRoaXMudmlydHVhbFNjcm9sbCA9IHRoaXMubmdTZWxlY3RNdWx0aXBsZVNlcnZpY2UuZ2V0VmlydHVhbFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcclxuICAgIHRoaXMuY29udHJvbHMgPSBjb250cm9sO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblZhbGlkYXRpb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGlmIChpc09ic2VydmFibGUodGhpcy5pdGVtcykpIHtcclxuICAgICAgICB0aGlzLmNhcmdhKCk7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRBbGwoKTtcclxuICAgICAgICAvLyB0aGlzLml0ZW1zJCA9IHRoaXMuaXRlbXMucGlwZShmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAvLyAgIHRoaXMuY2RyZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAvLyB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLmNkcmYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFsbCA9IHRoaXMuaXRlbXM7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydzdWJtaXR0ZWQnXSkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9scyAhPT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3N1Ym1pdHRlZCddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMubWFya0FzRGlydHkoKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2FyZ2EoKSB7XHJcbiAgICB0aGlzLmFsbCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMucGlwZShzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pKTtcclxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5pdGVtcy5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICByZXNvbHZlKHJlcyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrSWZPYnNlcnZhYmxlKGl0ZW1zOiBhbnkpIHtcclxuICAgIGlmIChpc09ic2VydmFibGUoaXRlbXMpKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZXZlbnRGb2N1cyhlOiBhbnkpIHtcclxuICAgIHRoaXMub25mb2N1cy5lbWl0KGUpO1xyXG4gICAgaWYgKHRoaXMub3BlbldoZW5Gb2N1cykge1xyXG4gICAgICB0aGlzLm5nU2VsZWN0TXVsdGlwbGUub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXZlbnRCbHVyKGU6IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgIHRoaXMub25WYWxpZGF0aW9uQ2hhbmdlKCk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uZ1NlbGVjdE11bHRpcGxlLmZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vcGVuV2hlbkZvY3VzKSB7XHJcbiAgICAgIHRoaXMubmdTZWxlY3RNdWx0aXBsZS5vcGVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uUmVmcmVzaCgpIHtcclxuICAgIHRoaXMub25yZWZyZXNoLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uZ1NlbGVjdE11bHRpcGxlLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHRoaXMuaXRlbXMpKSB7XHJcbiAgICAgIC8vdGhpcy5zZXRBbGwoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmFsbCA9IHRoaXMuaXRlbXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldEFsbCgpIHtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaXRlbXMuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuYWxsID0gcmVzO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKGU6IGFueSkge1xyXG4gICAgaWYgKGUuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5hbGwpO1xyXG4gICAgICBpZih0aGlzLmlzRm9yRmlsdGVyKXtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuYWxsKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53cml0ZVZhbHVlKFtdKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZShbXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrZWRJbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICB0aGlzLm5nU2VsZWN0TXVsdGlwbGUuZm9jdXMoKTtcclxuICAgIHRoaXMuY2RyZi5tYXJrRm9yQ2hlY2s7XHJcbiAgfVxyXG5cclxuICBldmVudENoYW5nZShlOiBhbnkpIHtcclxuICAgIGlmIChlLmxlbmd0aCA9PSB0aGlzLmFsbC5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQWxsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jaGVja2VkSW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZEFsbCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNoZWNrZWRJbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrZWRBbGwgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jaGVja2VkSW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLndyaXRlVmFsdWUoZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGUpO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdChlKTtcclxuXHJcbiAgfVxyXG5cclxuICByaWdodEtleVVwKCkge1xyXG4gICAgdGhpcy5uZ1NlbGVjdE11bHRpcGxlLmNsb3NlKCk7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubmV4dCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMubmV4dC5kaXNhYmxlZCB8fCB0aGlzLm5leHQucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5uZXh0SXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV4dC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5uZXh0SXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubmV4dElzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25OZXh0LmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGVmdEtleVVwKCkge1xyXG4gICAgdGhpcy5uZ1NlbGVjdE11bHRpcGxlLmNsb3NlKCk7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgbGV0IHZhbGlkYXRvciA9IHRoaXMuc2hhcmVkQ29tcG9uZW50c1V0aWwuc3RvcEJ5VmFsaWRhdG9yKHRoaXMuY29udHJvbHMsIHRoaXMudmFsaWRhdG9yQWxlcnQsIHRoaXMubGFiZWwpO1xyXG4gICAgICBpZiAodmFsaWRhdG9yLmVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlVXRpbFNlcnZpY2UuZ2V0TWVzc2FnZUVycm9yKFwiMDAwMDQ2XCIsIFwiRXJyb3JcIiwgdmFsaWRhdG9yLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYmFjayAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuYmFjay5kaXNhYmxlZCB8fCB0aGlzLmJhY2sucmVhZG9ubHkpIHtcclxuICAgICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5iYWNrSXNEaXNhYmxlLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFjay5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5iYWNrSXNEaXNhYmxlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYmFja0lzRGlzYWJsZS5mb2N1cygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25CYWNrLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxhYmVsICpuZ0lmPVwibGFiZWwgIT0gbnVsbCAmJiBsYWJlbCAhPSAnJyAmJiBzaG93TGFiZWxcIiBjbGFzcz1cImQtZmxleCBzdW1heC1sYWJlbCBtYi0wIHAtMFwiXHJcbiAgPjxzcGFuIFt0aXRsZV09XCJsYWJlbFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcIj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJtbC0xXCIgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImNvbnRyb2xzPy5lcnJvcnMgIT0gbnVsbFwiPiAqPC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwibGFiZWxJbmZvXCI+XHJcbiAgICA8aSBjbGFzcz1cImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB0ZXh0LWluZm8gbXMtMlwiIFttYXRUb29sdGlwXT1cInRleHRMYWJlbEluZm9cIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+PC9pPlxyXG4gIDwvc3Bhbj5cclxuPC9sYWJlbD5cclxuXHJcbjxkaXZcclxuICBbY2xhc3MuaW5wdXQtaWNvbl09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICBbY2xhc3MucmVmcmVzaF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkICYmIHJlZnJlc2hcIlxyXG4gIFtjbGFzcy5yaWdodF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCIgW2NsYXNzLmFwcC1uZy1zZWxlYy1jb250YWluZXJdPVwicmVmcmVzaFwiIFtjbGFzcy53LTEwMF09XCIhcmVmcmVzaFwiPlxyXG4gICAgICA8IS0tIHRvb2x0aXAtbWVzc2FnZSBlcyBlbCBpY29ubyBkZSBlcnJvciAtLT5cclxuICAgICAgPHRvb2x0aXAtbWVzc2FnZVxyXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgICAgW2NvbnRyb2xzXT1cImNvbnRyb2xzXCJcclxuICAgICAgICBbdmFsaWRhdG9yTWVzc2FnZV09XCJ2YWxpZGF0b3JNZXNzYWdlXCJcclxuICAgICAgICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiXHJcbiAgICAgICAgW3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCI+PC90b29sdGlwLW1lc3NhZ2U+XHJcbiAgICAgIDxuZy1zZWxlY3RcclxuICAgICAgICAjbmdTZWxlY3RNdWx0aXBsZVxyXG4gICAgICAgIFtjbGFzc109XCJyZWZyZXNoID8gJ2FwcC1uZy1zZWxlY3QnIDogJ3ctMTAwJ1wiXHJcbiAgICAgICAgW2l0ZW1zXT1cIiRhbnkoY2hlY2tJZk9ic2VydmFibGUoaXRlbXMpID8gKGl0ZW1zIHwgYXN5bmMpIDogaXRlbXMpXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cIl92YWx1ZVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAoY2hhbmdlKT1cImV2ZW50Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJldmVudEZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cImV2ZW50Qmx1cigkZXZlbnQpXCJcclxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY2Npb25hclwiXHJcbiAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiZmFsc2VcIlxyXG4gICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXHJcbiAgICAgICAgW2lucHV0QXR0cnNdPVwieyBhdXRvY29tcGxldGU6IGF1dG9jb21wbGV0ZSB9XCJcclxuICAgICAgICBbbWFya0ZpcnN0XT1cIm1hcmtGaXJzdFwiXHJcbiAgICAgICAgKGtleXVwLkFycm93TGVmdCk9XCJsZWZ0S2V5VXAoKVwiXHJcbiAgICAgICAgKGtleXVwLkFycm93UmlnaHQpPVwicmlnaHRLZXlVcCgpXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICBbbG9hZGluZ1RleHRdPVwibG9hZGluZ1RleHRcIlxyXG4gICAgICAgIFtjbGVhclNlYXJjaE9uQWRkXT1cInRydWVcIlxyXG4gICAgICAgIFtjbGFzcy5uZy1zZWxlY3QtaW52YWxpZF09XCJjb250cm9scz8uZXJyb3JzICE9IG51bGwgJiYgKGNvbnRyb2xzPy5kaXJ0eSB8fCBjb250cm9scz8udG91Y2hlZCkgJiYgc3VibWl0dGVkXCJcclxuICAgICAgICBbY2xhc3Mubmctc2VsZWN0LXRvdWNoZWRdPVwiY29udHJvbHM/LmVycm9ycyAhPSBudWxsICYmIChjb250cm9scz8uZGlydHkgfHwgY29udHJvbHM/LnRvdWNoZWQpICYmIHN1Ym1pdHRlZFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1oZWFkZXItdG1wICpuZ0lmPVwiSGVhZGVyXCI+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICAgIGNsYXNzPVwibmctbXVsdGlzZWxlY3QtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbY29sb3JdPVwiJ3ByaW1hcnknXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGVja2VkQWxsXCJcclxuICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiY2hlY2tlZEluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgICAoY2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNoZWNrZWRBbGxcIj57eyBMYW5ndWFnZS5TZWxlY3RBbGwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2hlY2tlZEFsbFwiPnt7IExhbmd1YWdlLlVuc2VsZWN0QWxsIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBuZy1tdWx0aS1sYWJlbC10bXBcclxuICAgICAgICAgIGxldC1pdGVtcz1cIml0ZW1zXCJcclxuICAgICAgICAgIGxldC1jbGVhcj1cImNsZWFyXCJcclxuICAgICAgICAgICpuZ0lmPVwiJGFueShjaGVja0lmT2JzZXJ2YWJsZShpdGVtcykgPyAoaXRlbXMgfCBhc3luYykgOiBpdGVtcyk/Lmxlbmd0aCAhPSBfdmFsdWUubGVuZ3RoXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmctdmFsdWVcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IHNsaWNlOiAwIDogc2hvd2xpbWl0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj4ge3sgJGFueShpdGVtKS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuZy12YWx1ZS1pY29uIHJpZ2h0XCIgKGNsaWNrKT1cImNsZWFyKGl0ZW0pXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+w5c8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy12YWx1ZVwiICpuZ0lmPVwiaXRlbXMubGVuZ3RoID4gc2hvd2xpbWl0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj4re3sgaXRlbXMubGVuZ3RoIC0gc2hvd2xpbWl0IH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWl0ZW0kPVwiaXRlbSRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cIm5nLW11bHRpc2VsZWN0LWNoZWNrYm94XCIgaWQ9XCJpdGVtLXt7IGluZGV4IH19XCIgY29sb3I9XCJwcmltYXJ5XCIgW2NoZWNrZWRdPVwiaXRlbSQuc2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPHNwYW4gZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgbmctbXVsdGktbGFiZWwtdG1wXHJcbiAgICAgICAgICBsZXQtaXRlbXM9XCJpdGVtc1wiXHJcbiAgICAgICAgICBsZXQtY2xlYXI9XCJjbGVhclwiXHJcbiAgICAgICAgICAqbmdJZj1cIiRhbnkoY2hlY2tJZk9ic2VydmFibGUoaXRlbXMpID8gKGl0ZW1zIHwgYXN5bmMpIDogaXRlbXMpPy5sZW5ndGggPT0gX3ZhbHVlLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLXZhbHVlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj57eyBMYW5ndWFnZS5BbGwgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmctZm9vdGVyLXRtcCAqbmdJZj1cIkZvb3RlclwiPiB7eyBMYW5ndWFnZS5TZWxlY3RlZCB9fToge3sgX3ZhbHVlLmxlbmd0aCB9fSA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXNlbGVjdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFwcC1uZy1zZWxlY3QtYnV0dG9uIGJkLWhpZ2hsaWdodFwiICpuZ0lmPVwicmVmcmVzaFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJyZWZyZXNoXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIHAtMCByb3VuZGVkLTAgaC0xMDBcIlxyXG4gICAgICAgIChjbGljayk9XCJvblJlZnJlc2goKVwiPlxyXG4gICAgICAgIDwhLS0gPG1hdC1pY29uIGNsYXNzPVwidGV4dC13aGl0ZSBwdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7XCIgW21hdFRvb2x0aXBdPVwiJ1JlZnJlc2NhcidcIiBtYXRUb29sdGlwQ2xhc3M9XCJiZy1pbmZvXCI+cmVmcmVzaDwvbWF0LWljb24+IC0tPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaCB0ZXh0LXdoaXRlIHB4LTFcIiBbbWF0VG9vbHRpcF09XCInUmVmcmVzY2FyJ1wiIG1hdFRvb2x0aXBDbGFzcz1cImJnLWluZm9cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbW9yZS1idXR0b25zXVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIGVycm9yLW1lc3NhZ2UgZXMgZWwgbWFuc2FqZSBxdWUgYXBhcmVjZSBhYmFqbyBkZWwgY29tcG9uZW50ZSAtLT5cclxuPGVycm9yLW1lc3NhZ2VcclxuICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gIFtjb250cm9sc109XCJjb250cm9sc1wiXHJcbiAgW3ZhbGlkYXRvck1lc3NhZ2VdPVwidmFsaWRhdG9yTWVzc2FnZVwiXHJcbiAgW3Rvb2x0aXBNZXNzYWdlXT1cInRvb2x0aXBNZXNzYWdlXCJcclxuICBbc3VibWl0dGVkXT1cInN1Ym1pdHRlZFwiPjwvZXJyb3ItbWVzc2FnZT5cclxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class NgSelectMultiple {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2VsZWN0LW11bHRpcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9uZy1zZWxlY3QtbXVsdGlwbGUvbmctc2VsZWN0LW11bHRpcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7Q0FhNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgTmdTZWxlY3RNdWx0aXBsZSB7XHJcbiAgc2hvd2xpbWl0PzogbnVtYmVyO1xyXG4gIEhlYWRlcj86IGJvb2xlYW47XHJcbiAgRm9vdGVyPzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JNZXNzYWdlPzogYm9vbGVhbjtcclxuICB0b29sdGlwTWVzc2FnZT86IGJvb2xlYW47XHJcbiAgb3BlbldoZW5Gb2N1cz86IGJvb2xlYW47XHJcbiAgc3VibWl0dGVkPzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JBbGVydD86IGJvb2xlYW47XHJcbiAgYXBwZW5kVG8/OiBzdHJpbmc7XHJcbiAgbG9hZGluZ1RleHQ/OiBzdHJpbmc7XHJcbiAgbWFya0ZpcnN0PzogYm9vbGVhbjtcclxuICB2aXJ0dWFsU2Nyb2xsPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|