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.
Files changed (142) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/date-picker/CustomDatePickerFormat.mjs +43 -0
  3. package/esm2022/lib/date-picker/CustomDatePickerI18n.mjs +50 -0
  4. package/esm2022/lib/date-picker/date-picker.component.mjs +366 -0
  5. package/esm2022/lib/date-picker/date-picker.mjs +3 -0
  6. package/esm2022/lib/date-picker/date-picker.module.mjs +69 -0
  7. package/esm2022/lib/date-picker/date-picker.service.mjs +68 -0
  8. package/esm2022/lib/date-time-picker/date-time-picker.component.mjs +311 -0
  9. package/esm2022/lib/date-time-picker/date-time-picker.mjs +3 -0
  10. package/esm2022/lib/date-time-picker/date-time-picker.module.mjs +76 -0
  11. package/esm2022/lib/date-time-picker/date-time-picker.service.mjs +64 -0
  12. package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.component.mjs +1140 -0
  13. package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.module.mjs +93 -0
  14. package/esm2022/lib/date-time-picker-editable/date-time-picker-editable.service.mjs +85 -0
  15. package/esm2022/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.mjs +283 -0
  16. package/esm2022/lib/dialog-ag-grid-search/dialog-ag-grid-search.module.mjs +23 -0
  17. package/esm2022/lib/error-message/error-message.component.mjs +24 -0
  18. package/esm2022/lib/error-message/error-message.module.mjs +19 -0
  19. package/esm2022/lib/input-number/input-number.component.mjs +351 -0
  20. package/esm2022/lib/input-number/input-number.mjs +3 -0
  21. package/esm2022/lib/input-number/input-number.module.mjs +65 -0
  22. package/esm2022/lib/input-number/input-number.service.mjs +68 -0
  23. package/esm2022/lib/input-text/input-text.component.mjs +345 -0
  24. package/esm2022/lib/input-text/input-text.mjs +3 -0
  25. package/esm2022/lib/input-text/input-text.module.mjs +73 -0
  26. package/esm2022/lib/input-text/input-text.service.mjs +96 -0
  27. package/esm2022/lib/ng-select-multiple/ng-select-multiple.component.mjs +375 -0
  28. package/esm2022/lib/ng-select-multiple/ng-select-multiple.mjs +3 -0
  29. package/esm2022/lib/ng-select-multiple/ng-select-multiple.module.mjs +69 -0
  30. package/esm2022/lib/ng-select-multiple/ng-select-multiple.service.mjs +96 -0
  31. package/esm2022/lib/ng-select-simple/ng-select-simple.component.mjs +461 -0
  32. package/esm2022/lib/ng-select-simple/ng-select-simple.mjs +3 -0
  33. package/esm2022/lib/ng-select-simple/ng-select-simple.module.mjs +53 -0
  34. package/esm2022/lib/ng-select-simple/ng-select-simple.service.mjs +138 -0
  35. package/esm2022/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.mjs +144 -0
  36. package/esm2022/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component.mjs +27 -0
  37. package/esm2022/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayDefault.component.mjs +22 -0
  38. package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.mjs +242 -0
  39. package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component.mjs +62 -0
  40. package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-config.mjs +27 -0
  41. package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.mjs +70 -0
  42. package/esm2022/lib/sc-ag-grid/cell-render/sc-cell-render-toggle/sc-cell-render-toggle.component.mjs +45 -0
  43. package/esm2022/lib/sc-ag-grid/directives/scAgGrid.directive.mjs +25 -0
  44. package/esm2022/lib/sc-ag-grid/index.mjs +14 -0
  45. package/esm2022/lib/sc-ag-grid/input-search/input-search.component.mjs +20 -0
  46. package/esm2022/lib/sc-ag-grid/input-search/input-search.module.mjs +31 -0
  47. package/esm2022/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.mjs +564 -0
  48. package/esm2022/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.mjs +80 -0
  49. package/esm2022/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module.mjs +31 -0
  50. package/esm2022/lib/sc-ag-grid/sc-ag-grid.module.mjs +118 -0
  51. package/esm2022/lib/sc-ag-grid/sc-grid.uitl.mjs +10 -0
  52. package/esm2022/lib/sc-wizard/sc-wizard.component.mjs +75 -0
  53. package/esm2022/lib/sc-wizard/sc-wizard.module.mjs +44 -0
  54. package/esm2022/lib/text-area/text-area.component.mjs +272 -0
  55. package/esm2022/lib/text-area/text-area.mjs +3 -0
  56. package/esm2022/lib/text-area/text-area.module.mjs +60 -0
  57. package/esm2022/lib/text-area/text-area.service.mjs +54 -0
  58. package/esm2022/lib/tooltip-message/tooltip-message.component.mjs +25 -0
  59. package/esm2022/lib/tooltip-message/tooltip-message.module.mjs +21 -0
  60. package/esm2022/lib/utils/DateTimeModel.mjs +56 -0
  61. package/esm2022/lib/utils/DateTimePickerEditable.mjs +3 -0
  62. package/esm2022/lib/utils/DateUtil.mjs +196 -0
  63. package/esm2022/lib/utils/INgSelect.mjs +2 -0
  64. package/esm2022/lib/utils/IScAgGrid.mjs +7 -0
  65. package/esm2022/lib/utils/ScWizardBase.mjs +14 -0
  66. package/esm2022/lib/utils/SharedComponentsUtil.mjs +38 -0
  67. package/esm2022/lib/utils/ValidateUtil.mjs +18 -0
  68. package/esm2022/lib/utils/message-util.service.mjs +75 -0
  69. package/esm2022/ngx-sumax-erp-components.mjs +5 -0
  70. package/esm2022/public-api.mjs +33 -0
  71. package/fesm2022/ngx-sumax-erp-components.mjs +7045 -0
  72. package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -0
  73. package/index.d.ts +5 -0
  74. package/lib/date-picker/CustomDatePickerFormat.d.ts +11 -0
  75. package/lib/date-picker/CustomDatePickerI18n.d.ts +25 -0
  76. package/lib/date-picker/date-picker.component.d.ts +108 -0
  77. package/lib/date-picker/date-picker.d.ts +10 -0
  78. package/lib/date-picker/date-picker.module.d.ts +18 -0
  79. package/lib/date-picker/date-picker.service.d.ts +22 -0
  80. package/lib/date-time-picker/date-time-picker.component.d.ts +96 -0
  81. package/lib/date-time-picker/date-time-picker.d.ts +9 -0
  82. package/lib/date-time-picker/date-time-picker.module.d.ts +18 -0
  83. package/lib/date-time-picker/date-time-picker.service.d.ts +20 -0
  84. package/lib/date-time-picker-editable/date-time-picker-editable.component.d.ts +118 -0
  85. package/lib/date-time-picker-editable/date-time-picker-editable.module.d.ts +16 -0
  86. package/lib/date-time-picker-editable/date-time-picker-editable.service.d.ts +27 -0
  87. package/lib/dialog-ag-grid-search/dialog-ag-grid-search.component.d.ts +82 -0
  88. package/lib/dialog-ag-grid-search/dialog-ag-grid-search.module.d.ts +13 -0
  89. package/lib/error-message/error-message.component.d.ts +13 -0
  90. package/lib/error-message/error-message.module.d.ts +9 -0
  91. package/lib/input-number/input-number.component.d.ts +74 -0
  92. package/lib/input-number/input-number.d.ts +10 -0
  93. package/lib/input-number/input-number.module.d.ts +17 -0
  94. package/lib/input-number/input-number.service.d.ts +22 -0
  95. package/lib/input-text/input-text.component.d.ts +85 -0
  96. package/lib/input-text/input-text.d.ts +17 -0
  97. package/lib/input-text/input-text.module.d.ts +18 -0
  98. package/lib/input-text/input-text.service.d.ts +35 -0
  99. package/lib/ng-select-multiple/ng-select-multiple.component.d.ts +83 -0
  100. package/lib/ng-select-multiple/ng-select-multiple.d.ts +14 -0
  101. package/lib/ng-select-multiple/ng-select-multiple.module.d.ts +17 -0
  102. package/lib/ng-select-multiple/ng-select-multiple.service.d.ts +30 -0
  103. package/lib/ng-select-simple/ng-select-simple.component.d.ts +124 -0
  104. package/lib/ng-select-simple/ng-select-simple.d.ts +20 -0
  105. package/lib/ng-select-simple/ng-select-simple.module.d.ts +17 -0
  106. package/lib/ng-select-simple/ng-select-simple.service.d.ts +42 -0
  107. package/lib/sc-ag-grid/cell-editors/container-shared/container-shared.component.d.ts +61 -0
  108. package/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayCustom.component.d.ts +10 -0
  109. package/lib/sc-ag-grid/cell-render/no-rows-overlay/noRowsOverlayDefault.component.d.ts +9 -0
  110. package/lib/sc-ag-grid/cell-render/sc-cell-render-button/sc-cell-render-button.component.d.ts +49 -0
  111. package/lib/sc-ag-grid/cell-render/sc-cell-render-checkbox-list/sc-cell-render-checkbox-list.component.d.ts +11 -0
  112. package/lib/sc-ag-grid/cell-render/sc-cell-render-config.d.ts +20 -0
  113. package/lib/sc-ag-grid/cell-render/sc-cell-render-select/sc-cell-render-select.component.d.ts +16 -0
  114. package/lib/sc-ag-grid/cell-render/sc-cell-render-toggle/sc-cell-render-toggle.component.d.ts +16 -0
  115. package/lib/sc-ag-grid/directives/scAgGrid.directive.d.ts +10 -0
  116. package/lib/sc-ag-grid/index.d.ts +13 -0
  117. package/lib/sc-ag-grid/input-search/input-search.component.d.ts +11 -0
  118. package/lib/sc-ag-grid/input-search/input-search.module.d.ts +9 -0
  119. package/lib/sc-ag-grid/sc-ag-grid-customizable/sc-ag-grid-customizable.component.d.ts +191 -0
  120. package/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.component.d.ts +25 -0
  121. package/lib/sc-ag-grid/sc-ag-grid-pagination/sc-ag-grid-pagination.module.d.ts +9 -0
  122. package/lib/sc-ag-grid/sc-ag-grid.module.d.ts +32 -0
  123. package/lib/sc-ag-grid/sc-grid.uitl.d.ts +5 -0
  124. package/lib/sc-wizard/sc-wizard.component.d.ts +38 -0
  125. package/lib/sc-wizard/sc-wizard.module.d.ts +13 -0
  126. package/lib/text-area/text-area.component.d.ts +66 -0
  127. package/lib/text-area/text-area.d.ts +8 -0
  128. package/lib/text-area/text-area.module.d.ts +16 -0
  129. package/lib/text-area/text-area.service.d.ts +18 -0
  130. package/lib/tooltip-message/tooltip-message.component.d.ts +13 -0
  131. package/lib/tooltip-message/tooltip-message.module.d.ts +11 -0
  132. package/lib/utils/DateTimeModel.d.ts +16 -0
  133. package/lib/utils/DateTimePickerEditable.d.ts +13 -0
  134. package/lib/utils/DateUtil.d.ts +37 -0
  135. package/lib/utils/INgSelect.d.ts +6 -0
  136. package/lib/utils/IScAgGrid.d.ts +65 -0
  137. package/lib/utils/ScWizardBase.d.ts +9 -0
  138. package/lib/utils/SharedComponentsUtil.d.ts +6 -0
  139. package/lib/utils/ValidateUtil.d.ts +4 -0
  140. package/lib/utils/message-util.service.d.ts +10 -0
  141. package/package.json +32 -0
  142. 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=