ngx-vector-components 5.172.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/assets/styles/_primeng-custom-theme.scss +697 -141
  3. package/assets/styles/_spinner.scss +2 -1
  4. package/assets/styles/_styles.scss +20 -1
  5. package/assets/styles/_variables.scss +35 -1
  6. package/fesm2022/ngx-vector-components.mjs +397 -273
  7. package/fesm2022/ngx-vector-components.mjs.map +1 -1
  8. package/lib/components/drawer/drawer.component.d.ts +21 -0
  9. package/lib/components/drawer/drawer.module.d.ts +9 -0
  10. package/lib/components/drawer/index.d.ts +2 -0
  11. package/lib/components/fields/data-table/data-table.component.d.ts +2 -2
  12. package/lib/components/fields/fields.module.d.ts +5 -5
  13. package/lib/components/fields/input-switch-field/input-switch-field.component.d.ts +3 -2
  14. package/lib/components/fields/select-button-field/select-button-field.component.d.ts +4 -1
  15. package/lib/components/fields/text-field/text-field.component.d.ts +1 -1
  16. package/lib/components/index.d.ts +1 -0
  17. package/lib/config/index.d.ts +14 -0
  18. package/lib/models/profile.model.d.ts +2 -1
  19. package/package.json +13 -14
  20. package/public-api.d.ts +1 -0
  21. package/esm2022/lib/components/badge/badge.component.mjs +0 -39
  22. package/esm2022/lib/components/badge/badge.module.mjs +0 -19
  23. package/esm2022/lib/components/badge/index.mjs +0 -3
  24. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -74
  25. package/esm2022/lib/components/breadcrumb/breadcrumb.module.mjs +0 -18
  26. package/esm2022/lib/components/breadcrumb/index.mjs +0 -3
  27. package/esm2022/lib/components/crud-base/crud-base.component.mjs +0 -47
  28. package/esm2022/lib/components/crud-base/index.mjs +0 -2
  29. package/esm2022/lib/components/crud-footer/crud-footer.component.mjs +0 -40
  30. package/esm2022/lib/components/crud-footer/crud-footer.module.mjs +0 -20
  31. package/esm2022/lib/components/crud-footer/index.mjs +0 -3
  32. package/esm2022/lib/components/crud-header/crud-header.component.mjs +0 -30
  33. package/esm2022/lib/components/crud-header/crud-header.module.mjs +0 -19
  34. package/esm2022/lib/components/crud-header/index.mjs +0 -3
  35. package/esm2022/lib/components/crud-history/crud-history.component.mjs +0 -100
  36. package/esm2022/lib/components/crud-history/crud-history.module.mjs +0 -21
  37. package/esm2022/lib/components/crud-history/index.mjs +0 -3
  38. package/esm2022/lib/components/fields/button/button.component.mjs +0 -48
  39. package/esm2022/lib/components/fields/button/index.mjs +0 -2
  40. package/esm2022/lib/components/fields/calendar-field/calendar-field.component.mjs +0 -107
  41. package/esm2022/lib/components/fields/calendar-field/index.mjs +0 -2
  42. package/esm2022/lib/components/fields/checkbox-field/checkbox-field.component.mjs +0 -62
  43. package/esm2022/lib/components/fields/checkbox-field/index.mjs +0 -2
  44. package/esm2022/lib/components/fields/currency-field/currency-field.component.mjs +0 -103
  45. package/esm2022/lib/components/fields/currency-field/index.mjs +0 -2
  46. package/esm2022/lib/components/fields/data-table/data-table.component.mjs +0 -454
  47. package/esm2022/lib/components/fields/data-table/index.mjs +0 -2
  48. package/esm2022/lib/components/fields/dropdown-field/dropdown-field.component.mjs +0 -308
  49. package/esm2022/lib/components/fields/dropdown-field/index.mjs +0 -2
  50. package/esm2022/lib/components/fields/field-error-message/field-error-message.component.mjs +0 -35
  51. package/esm2022/lib/components/fields/field-error-message/index.mjs +0 -2
  52. package/esm2022/lib/components/fields/fields.module.mjs +0 -229
  53. package/esm2022/lib/components/fields/filters/filters.component.mjs +0 -212
  54. package/esm2022/lib/components/fields/filters/index.mjs +0 -2
  55. package/esm2022/lib/components/fields/index.mjs +0 -21
  56. package/esm2022/lib/components/fields/input-number-field/index.mjs +0 -2
  57. package/esm2022/lib/components/fields/input-number-field/input-number-field.component.mjs +0 -88
  58. package/esm2022/lib/components/fields/input-otp/index.mjs +0 -2
  59. package/esm2022/lib/components/fields/input-otp/input-otp.component.mjs +0 -50
  60. package/esm2022/lib/components/fields/input-switch-field/index.mjs +0 -2
  61. package/esm2022/lib/components/fields/input-switch-field/input-switch-field.component.mjs +0 -21
  62. package/esm2022/lib/components/fields/multiselect-field/index.mjs +0 -2
  63. package/esm2022/lib/components/fields/multiselect-field/multiselect-field.component.mjs +0 -315
  64. package/esm2022/lib/components/fields/percentage-field/index.mjs +0 -2
  65. package/esm2022/lib/components/fields/percentage-field/percentage-field.component.mjs +0 -54
  66. package/esm2022/lib/components/fields/radio-button-field/index.mjs +0 -2
  67. package/esm2022/lib/components/fields/radio-button-field/radio-button-field.component.mjs +0 -62
  68. package/esm2022/lib/components/fields/range-value/index.mjs +0 -2
  69. package/esm2022/lib/components/fields/range-value/range-value.component.mjs +0 -72
  70. package/esm2022/lib/components/fields/search-field/index.mjs +0 -2
  71. package/esm2022/lib/components/fields/search-field/search-field.component.mjs +0 -33
  72. package/esm2022/lib/components/fields/select-button-field/index.mjs +0 -2
  73. package/esm2022/lib/components/fields/select-button-field/select-button-field.component.mjs +0 -23
  74. package/esm2022/lib/components/fields/text-field/index.mjs +0 -2
  75. package/esm2022/lib/components/fields/text-field/text-field.component.mjs +0 -277
  76. package/esm2022/lib/components/fields/textarea-field/index.mjs +0 -2
  77. package/esm2022/lib/components/fields/textarea-field/textarea-field.component.mjs +0 -81
  78. package/esm2022/lib/components/generic-error-modal/generic-error-modal.component.mjs +0 -33
  79. package/esm2022/lib/components/generic-error-modal/generic-error-modal.module.mjs +0 -20
  80. package/esm2022/lib/components/generic-error-modal/index.mjs +0 -3
  81. package/esm2022/lib/components/generic-modal/generic-modal.component.mjs +0 -66
  82. package/esm2022/lib/components/generic-modal/generic-modal.module.mjs +0 -20
  83. package/esm2022/lib/components/generic-modal/index.mjs +0 -3
  84. package/esm2022/lib/components/index.mjs +0 -15
  85. package/esm2022/lib/components/menu/index.mjs +0 -4
  86. package/esm2022/lib/components/menu/menu.component.mjs +0 -306
  87. package/esm2022/lib/components/menu/menu.module.mjs +0 -20
  88. package/esm2022/lib/components/menu/sub-menus-list/sub-menus-list.component.mjs +0 -41
  89. package/esm2022/lib/components/panel/index.mjs +0 -3
  90. package/esm2022/lib/components/panel/panel.component.mjs +0 -15
  91. package/esm2022/lib/components/panel/panel.module.mjs +0 -19
  92. package/esm2022/lib/components/score/index.mjs +0 -3
  93. package/esm2022/lib/components/score/score.component.mjs +0 -17
  94. package/esm2022/lib/components/score/score.module.mjs +0 -16
  95. package/esm2022/lib/components/stepper/index.mjs +0 -3
  96. package/esm2022/lib/components/stepper/stepper.component.mjs +0 -47
  97. package/esm2022/lib/components/stepper/stepper.module.mjs +0 -19
  98. package/esm2022/lib/components/top-bar/index.mjs +0 -3
  99. package/esm2022/lib/components/top-bar/top-bar.component.mjs +0 -158
  100. package/esm2022/lib/components/top-bar/top-bar.module.mjs +0 -21
  101. package/esm2022/lib/guards/crud-list-has-items.guard.mjs +0 -11
  102. package/esm2022/lib/guards/get-token-by-guid.guard.mjs +0 -41
  103. package/esm2022/lib/guards/has-permission.guard.mjs +0 -15
  104. package/esm2022/lib/guards/index.mjs +0 -6
  105. package/esm2022/lib/guards/role.guard.mjs +0 -14
  106. package/esm2022/lib/guards/token-is-present.guard.mjs +0 -14
  107. package/esm2022/lib/injections/index.mjs +0 -5
  108. package/esm2022/lib/interceptors/http-interceptor.mjs +0 -186
  109. package/esm2022/lib/interceptors/index.mjs +0 -2
  110. package/esm2022/lib/models/app-name.enum.mjs +0 -10
  111. package/esm2022/lib/models/boolean-type.enum.mjs +0 -6
  112. package/esm2022/lib/models/crud-history.model.mjs +0 -3
  113. package/esm2022/lib/models/crud-mode.enum.mjs +0 -7
  114. package/esm2022/lib/models/currency.enum.mjs +0 -7
  115. package/esm2022/lib/models/data-table.model.mjs +0 -23
  116. package/esm2022/lib/models/document-type.enum.mjs +0 -6
  117. package/esm2022/lib/models/filters.model.mjs +0 -2
  118. package/esm2022/lib/models/generic-modal.model.mjs +0 -2
  119. package/esm2022/lib/models/http-response.model.mjs +0 -2
  120. package/esm2022/lib/models/index.mjs +0 -19
  121. package/esm2022/lib/models/ip-info.enum.mjs +0 -2
  122. package/esm2022/lib/models/list-item.model.mjs +0 -2
  123. package/esm2022/lib/models/locale.enum.mjs +0 -7
  124. package/esm2022/lib/models/menu-item.model.mjs +0 -2
  125. package/esm2022/lib/models/message-status.enum.mjs +0 -8
  126. package/esm2022/lib/models/profile.model.mjs +0 -711
  127. package/esm2022/lib/models/role.enum.mjs +0 -5
  128. package/esm2022/lib/models/status.enum.mjs +0 -9
  129. package/esm2022/lib/models/topbar.model.mjs +0 -2
  130. package/esm2022/lib/models/vector-app.model.mjs +0 -2
  131. package/esm2022/lib/models/vector-notification.model.mjs +0 -2
  132. package/esm2022/lib/models/view.enum.mjs +0 -9
  133. package/esm2022/lib/pipes/currency-brl.pipe.mjs +0 -18
  134. package/esm2022/lib/pipes/format-document.pipe.mjs +0 -17
  135. package/esm2022/lib/pipes/index.mjs +0 -9
  136. package/esm2022/lib/pipes/mask.pipe.mjs +0 -21
  137. package/esm2022/lib/pipes/not-hidden.pipe.mjs +0 -16
  138. package/esm2022/lib/pipes/only-active.pipe.mjs +0 -16
  139. package/esm2022/lib/pipes/pipes.module.mjs +0 -50
  140. package/esm2022/lib/pipes/remove-last-child.pipe.mjs +0 -18
  141. package/esm2022/lib/pipes/unread-notifications.pipe.mjs +0 -15
  142. package/esm2022/lib/resolvers/get-selected-crud-item.resolver.mjs +0 -17
  143. package/esm2022/lib/resolvers/index.mjs +0 -2
  144. package/esm2022/lib/services/auth.service.mjs +0 -78
  145. package/esm2022/lib/services/base-dropdown.mjs +0 -2
  146. package/esm2022/lib/services/breadcrumb.service.mjs +0 -22
  147. package/esm2022/lib/services/crud-base.service.mjs +0 -14
  148. package/esm2022/lib/services/enum.service.mjs +0 -43
  149. package/esm2022/lib/services/error-message.service.mjs +0 -16
  150. package/esm2022/lib/services/geolocation.service.mjs +0 -23
  151. package/esm2022/lib/services/index.mjs +0 -14
  152. package/esm2022/lib/services/loading.service.mjs +0 -15
  153. package/esm2022/lib/services/menu.service.mjs +0 -154
  154. package/esm2022/lib/services/modal.service.mjs +0 -15
  155. package/esm2022/lib/services/notifications.service.mjs +0 -64
  156. package/esm2022/lib/services/profile.service.mjs +0 -115
  157. package/esm2022/lib/services/storage.service.mjs +0 -104
  158. package/esm2022/lib/shared/shared.module.mjs +0 -19
  159. package/esm2022/lib/utils/cpf-cnpj-validator.util.mjs +0 -109
  160. package/esm2022/lib/utils/file.util.mjs +0 -15
  161. package/esm2022/lib/utils/index.mjs +0 -8
  162. package/esm2022/lib/utils/mask.util.mjs +0 -82
  163. package/esm2022/lib/utils/object.util.mjs +0 -27
  164. package/esm2022/lib/utils/string.util.mjs +0 -52
  165. package/esm2022/lib/utils/validation.util.mjs +0 -279
  166. package/esm2022/lib/utils/window.util.mjs +0 -9
  167. package/esm2022/ngx-vector-components.mjs +0 -5
  168. package/esm2022/public-api.mjs +0 -10
@@ -1,229 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
- import { TranslateModule } from '@ngx-translate/core';
4
- import { AutoCompleteModule } from 'primeng/autocomplete';
5
- import { ButtonModule } from 'primeng/button';
6
- import { CalendarModule } from 'primeng/calendar';
7
- import { CheckboxModule } from 'primeng/checkbox';
8
- import { DialogModule } from 'primeng/dialog';
9
- import { DropdownModule } from 'primeng/dropdown';
10
- import { FileUploadModule } from 'primeng/fileupload';
11
- import { InputMaskModule } from 'primeng/inputmask';
12
- import { InputNumberModule } from 'primeng/inputnumber';
13
- import { InputOtpModule } from 'primeng/inputotp';
14
- import { InputSwitchModule } from 'primeng/inputswitch';
15
- import { InputTextModule } from 'primeng/inputtext';
16
- import { InputTextareaModule } from 'primeng/inputtextarea';
17
- import { KeyFilterModule } from 'primeng/keyfilter';
18
- import { MenuModule } from 'primeng/menu';
19
- import { MultiSelectModule } from 'primeng/multiselect';
20
- import { RadioButtonModule } from 'primeng/radiobutton';
21
- import { SelectButtonModule } from 'primeng/selectbutton';
22
- import { SliderModule } from 'primeng/slider';
23
- import { TableModule } from 'primeng/table';
24
- import { TabViewModule } from 'primeng/tabview';
25
- import { SharedModule } from '../../shared/shared.module';
26
- import { BadgeModule } from '../badge';
27
- import { PanelModule } from '../panel';
28
- import { ScoreModule } from '../score';
29
- import { ButtonComponent } from './button';
30
- import { CalendarComponent } from './calendar-field';
31
- import { CheckboxFieldComponent } from './checkbox-field';
32
- import { CurrencyFieldComponent } from './currency-field';
33
- import { DataTableComponent } from './data-table';
34
- import { DropdownFieldComponent } from './dropdown-field';
35
- import { FieldErrorMessageComponent } from './field-error-message';
36
- import { FiltersComponent } from './filters';
37
- import { InputNumberFieldComponent } from './input-number-field';
38
- import { InputOtpComponent } from './input-otp';
39
- import { InputSwitchFieldComponent } from './input-switch-field';
40
- import { MultiselectFieldComponent } from './multiselect-field';
41
- import { PercentageFieldComponent } from './percentage-field';
42
- import { RadioButtonFieldComponent } from './radio-button-field';
43
- import { RangeValueComponent } from './range-value';
44
- import { SearchFieldComponent } from './search-field';
45
- import { SelectButtonFieldComponent } from './select-button-field';
46
- import { TextFieldComponent } from './text-field';
47
- import { TextareaFieldComponent } from './textarea-field';
48
- import * as i0 from "@angular/core";
49
- export class FieldsModule {
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
51
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FieldsModule, declarations: [DataTableComponent,
52
- TextFieldComponent,
53
- CheckboxFieldComponent,
54
- ButtonComponent,
55
- CalendarComponent,
56
- MultiselectFieldComponent,
57
- DropdownFieldComponent,
58
- RangeValueComponent,
59
- SearchFieldComponent,
60
- RadioButtonFieldComponent,
61
- CurrencyFieldComponent,
62
- PercentageFieldComponent,
63
- FiltersComponent,
64
- TextareaFieldComponent,
65
- FieldErrorMessageComponent,
66
- SelectButtonFieldComponent,
67
- InputNumberFieldComponent,
68
- InputSwitchFieldComponent,
69
- InputOtpComponent], imports: [SharedModule,
70
- FormsModule,
71
- ReactiveFormsModule,
72
- KeyFilterModule,
73
- InputTextModule,
74
- CheckboxModule,
75
- InputMaskModule,
76
- CalendarModule,
77
- MultiSelectModule,
78
- DropdownModule,
79
- AutoCompleteModule,
80
- SliderModule,
81
- RadioButtonModule,
82
- FileUploadModule,
83
- DialogModule,
84
- InputNumberModule,
85
- PanelModule,
86
- TabViewModule,
87
- ButtonModule,
88
- InputTextareaModule,
89
- SelectButtonModule,
90
- InputNumberModule,
91
- BadgeModule,
92
- ScoreModule,
93
- TranslateModule,
94
- InputSwitchModule,
95
- MenuModule,
96
- TableModule,
97
- InputOtpModule], exports: [DataTableComponent,
98
- TextFieldComponent,
99
- CheckboxFieldComponent,
100
- ButtonComponent,
101
- CalendarComponent,
102
- MultiselectFieldComponent,
103
- DropdownFieldComponent,
104
- RangeValueComponent,
105
- SearchFieldComponent,
106
- RadioButtonFieldComponent,
107
- FileUploadModule,
108
- DialogModule,
109
- CurrencyFieldComponent,
110
- PercentageFieldComponent,
111
- FiltersComponent,
112
- TextareaFieldComponent,
113
- FieldErrorMessageComponent,
114
- SelectButtonFieldComponent,
115
- InputNumberFieldComponent,
116
- InputSwitchFieldComponent,
117
- InputOtpComponent] }); }
118
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldsModule, imports: [SharedModule,
119
- FormsModule,
120
- ReactiveFormsModule,
121
- KeyFilterModule,
122
- InputTextModule,
123
- CheckboxModule,
124
- InputMaskModule,
125
- CalendarModule,
126
- MultiSelectModule,
127
- DropdownModule,
128
- AutoCompleteModule,
129
- SliderModule,
130
- RadioButtonModule,
131
- FileUploadModule,
132
- DialogModule,
133
- InputNumberModule,
134
- PanelModule,
135
- TabViewModule,
136
- ButtonModule,
137
- InputTextareaModule,
138
- SelectButtonModule,
139
- InputNumberModule,
140
- BadgeModule,
141
- ScoreModule,
142
- TranslateModule,
143
- InputSwitchModule,
144
- MenuModule,
145
- TableModule,
146
- InputOtpModule, FileUploadModule,
147
- DialogModule] }); }
148
- }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldsModule, decorators: [{
150
- type: NgModule,
151
- args: [{
152
- imports: [
153
- SharedModule,
154
- FormsModule,
155
- ReactiveFormsModule,
156
- KeyFilterModule,
157
- InputTextModule,
158
- CheckboxModule,
159
- InputMaskModule,
160
- CalendarModule,
161
- MultiSelectModule,
162
- DropdownModule,
163
- AutoCompleteModule,
164
- SliderModule,
165
- RadioButtonModule,
166
- FileUploadModule,
167
- DialogModule,
168
- InputNumberModule,
169
- PanelModule,
170
- TabViewModule,
171
- ButtonModule,
172
- InputTextareaModule,
173
- SelectButtonModule,
174
- InputNumberModule,
175
- BadgeModule,
176
- ScoreModule,
177
- TranslateModule,
178
- InputSwitchModule,
179
- MenuModule,
180
- TableModule,
181
- InputOtpModule,
182
- ],
183
- declarations: [
184
- DataTableComponent,
185
- TextFieldComponent,
186
- CheckboxFieldComponent,
187
- ButtonComponent,
188
- CalendarComponent,
189
- MultiselectFieldComponent,
190
- DropdownFieldComponent,
191
- RangeValueComponent,
192
- SearchFieldComponent,
193
- RadioButtonFieldComponent,
194
- CurrencyFieldComponent,
195
- PercentageFieldComponent,
196
- FiltersComponent,
197
- TextareaFieldComponent,
198
- FieldErrorMessageComponent,
199
- SelectButtonFieldComponent,
200
- InputNumberFieldComponent,
201
- InputSwitchFieldComponent,
202
- InputOtpComponent,
203
- ],
204
- exports: [
205
- DataTableComponent,
206
- TextFieldComponent,
207
- CheckboxFieldComponent,
208
- ButtonComponent,
209
- CalendarComponent,
210
- MultiselectFieldComponent,
211
- DropdownFieldComponent,
212
- RangeValueComponent,
213
- SearchFieldComponent,
214
- RadioButtonFieldComponent,
215
- FileUploadModule,
216
- DialogModule,
217
- CurrencyFieldComponent,
218
- PercentageFieldComponent,
219
- FiltersComponent,
220
- TextareaFieldComponent,
221
- FieldErrorMessageComponent,
222
- SelectButtonFieldComponent,
223
- InputNumberFieldComponent,
224
- InputSwitchFieldComponent,
225
- InputOtpComponent,
226
- ],
227
- }]
228
- }] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRzL2ZpZWxkcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBK0UxRCxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBNUNyQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLHlCQUF5QjtZQUN6QixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix5QkFBeUI7WUFDekIsc0JBQXNCO1lBQ3RCLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFDaEIsc0JBQXNCO1lBQ3RCLDBCQUEwQjtZQUMxQiwwQkFBMEI7WUFDMUIseUJBQXlCO1lBQ3pCLHlCQUF5QjtZQUN6QixpQkFBaUIsYUFqRGpCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixXQUFXO1lBQ1gsYUFBYTtZQUNiLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixXQUFXO1lBQ1gsV0FBVztZQUNYLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsVUFBVTtZQUNWLFdBQVc7WUFDWCxjQUFjLGFBd0JkLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsc0JBQXNCO1lBQ3RCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIseUJBQXlCO1lBQ3pCLHNCQUFzQjtZQUN0QixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6QixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLHNCQUFzQjtZQUN0Qix3QkFBd0I7WUFDeEIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0QiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLHlCQUF5QjtZQUN6Qix5QkFBeUI7WUFDekIsaUJBQWlCO2dIQUdSLFlBQVksWUEzRXJCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixXQUFXO1lBQ1gsYUFBYTtZQUNiLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixXQUFXO1lBQ1gsV0FBVztZQUNYLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsVUFBVTtZQUNWLFdBQVc7WUFDWCxjQUFjLEVBa0NkLGdCQUFnQjtZQUNoQixZQUFZOzs0RkFZSCxZQUFZO2tCQTdFeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxjQUFjO3FCQUNmO29CQUNELFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIseUJBQXlCO3dCQUN6QixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLHlCQUF5Qjt3QkFDekIsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBJbnB1dE1hc2tNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bWFzayc7XG5pbXBvcnQgeyBJbnB1dE51bWJlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXRudW1iZXInO1xuaW1wb3J0IHsgSW5wdXRPdHBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0b3RwJztcbmltcG9ydCB7IElucHV0U3dpdGNoTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHN3aXRjaCc7XG5pbXBvcnQgeyBJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XG5pbXBvcnQgeyBJbnB1dFRleHRhcmVhTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcbmltcG9ydCB7IEtleUZpbHRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcva2V5ZmlsdGVyJztcbmltcG9ydCB7IE1lbnVNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lbnUnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYWRpb2J1dHRvbic7XG5pbXBvcnQgeyBTZWxlY3RCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NlbGVjdGJ1dHRvbic7XG5pbXBvcnQgeyBTbGlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NsaWRlcic7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgVGFiVmlld01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFidmlldyc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJy4uL2JhZGdlJztcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSAnLi4vcGFuZWwnO1xuaW1wb3J0IHsgU2NvcmVNb2R1bGUgfSBmcm9tICcuLi9zY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbic7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItZmllbGQnO1xuaW1wb3J0IHsgQ2hlY2tib3hGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gtZmllbGQnO1xuaW1wb3J0IHsgQ3VycmVuY3lGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY3VycmVuY3ktZmllbGQnO1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlJztcbmltcG9ydCB7IERyb3Bkb3duRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLWZpZWxkJztcbmltcG9ydCB7IEZpZWxkRXJyb3JNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9maWVsZC1lcnJvci1tZXNzYWdlJztcbmltcG9ydCB7IEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcnMnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtbnVtYmVyLWZpZWxkJztcbmltcG9ydCB7IElucHV0T3RwQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1vdHAnO1xuaW1wb3J0IHsgSW5wdXRTd2l0Y2hGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc3dpdGNoLWZpZWxkJztcbmltcG9ydCB7IE11bHRpc2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL211bHRpc2VsZWN0LWZpZWxkJztcbmltcG9ydCB7IFBlcmNlbnRhZ2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcGVyY2VudGFnZS1maWVsZCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1idXR0b24tZmllbGQnO1xuaW1wb3J0IHsgUmFuZ2VWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vcmFuZ2UtdmFsdWUnO1xuaW1wb3J0IHsgU2VhcmNoRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBTZWxlY3RCdXR0b25GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWJ1dHRvbi1maWVsZCc7XG5pbXBvcnQgeyBUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgVGV4dGFyZWFGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEtZmllbGQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgS2V5RmlsdGVyTW9kdWxlLFxuICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICBDaGVja2JveE1vZHVsZSxcbiAgICBJbnB1dE1hc2tNb2R1bGUsXG4gICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgTXVsdGlTZWxlY3RNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgIFNsaWRlck1vZHVsZSxcbiAgICBSYWRpb0J1dHRvbk1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBJbnB1dE51bWJlck1vZHVsZSxcbiAgICBQYW5lbE1vZHVsZSxcbiAgICBUYWJWaWV3TW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJbnB1dFRleHRhcmVhTW9kdWxlLFxuICAgIFNlbGVjdEJ1dHRvbk1vZHVsZSxcbiAgICBJbnB1dE51bWJlck1vZHVsZSxcbiAgICBCYWRnZU1vZHVsZSxcbiAgICBTY29yZU1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRTd2l0Y2hNb2R1bGUsXG4gICAgTWVudU1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBJbnB1dE90cE1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIFRleHRGaWVsZENvbXBvbmVudCxcbiAgICBDaGVja2JveEZpZWxkQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBNdWx0aXNlbGVjdEZpZWxkQ29tcG9uZW50LFxuICAgIERyb3Bkb3duRmllbGRDb21wb25lbnQsXG4gICAgUmFuZ2VWYWx1ZUNvbXBvbmVudCxcbiAgICBTZWFyY2hGaWVsZENvbXBvbmVudCxcbiAgICBSYWRpb0J1dHRvbkZpZWxkQ29tcG9uZW50LFxuICAgIEN1cnJlbmN5RmllbGRDb21wb25lbnQsXG4gICAgUGVyY2VudGFnZUZpZWxkQ29tcG9uZW50LFxuICAgIEZpbHRlcnNDb21wb25lbnQsXG4gICAgVGV4dGFyZWFGaWVsZENvbXBvbmVudCxcbiAgICBGaWVsZEVycm9yTWVzc2FnZUNvbXBvbmVudCxcbiAgICBTZWxlY3RCdXR0b25GaWVsZENvbXBvbmVudCxcbiAgICBJbnB1dE51bWJlckZpZWxkQ29tcG9uZW50LFxuICAgIElucHV0U3dpdGNoRmllbGRDb21wb25lbnQsXG4gICAgSW5wdXRPdHBDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgVGV4dEZpZWxkQ29tcG9uZW50LFxuICAgIENoZWNrYm94RmllbGRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgIE11bHRpc2VsZWN0RmllbGRDb21wb25lbnQsXG4gICAgRHJvcGRvd25GaWVsZENvbXBvbmVudCxcbiAgICBSYW5nZVZhbHVlQ29tcG9uZW50LFxuICAgIFNlYXJjaEZpZWxkQ29tcG9uZW50LFxuICAgIFJhZGlvQnV0dG9uRmllbGRDb21wb25lbnQsXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgQ3VycmVuY3lGaWVsZENvbXBvbmVudCxcbiAgICBQZXJjZW50YWdlRmllbGRDb21wb25lbnQsXG4gICAgRmlsdGVyc0NvbXBvbmVudCxcbiAgICBUZXh0YXJlYUZpZWxkQ29tcG9uZW50LFxuICAgIEZpZWxkRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxuICAgIFNlbGVjdEJ1dHRvbkZpZWxkQ29tcG9uZW50LFxuICAgIElucHV0TnVtYmVyRmllbGRDb21wb25lbnQsXG4gICAgSW5wdXRTd2l0Y2hGaWVsZENvbXBvbmVudCxcbiAgICBJbnB1dE90cENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRzTW9kdWxlIHt9XG4iXX0=
@@ -1,212 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
- import { Subscription } from 'rxjs';
4
- import { ObjectUtil, ValidationUtil } from '../../../utils';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "primeng/tooltip";
9
- import * as i4 from "@angular/forms";
10
- import * as i5 from "../text-field/text-field.component";
11
- import * as i6 from "../button/button.component";
12
- import * as i7 from "../calendar-field/calendar-field.component";
13
- import * as i8 from "../multiselect-field/multiselect-field.component";
14
- import * as i9 from "../dropdown-field/dropdown-field.component";
15
- import * as i10 from "../currency-field/currency-field.component";
16
- import * as i11 from "../select-button-field/select-button-field.component";
17
- import * as i12 from "../../../pipes/not-hidden.pipe";
18
- import * as i13 from "@ngx-translate/core";
19
- export var FieldType;
20
- (function (FieldType) {
21
- FieldType[FieldType["DROPDOWN"] = 0] = "DROPDOWN";
22
- FieldType[FieldType["TEXT"] = 1] = "TEXT";
23
- FieldType[FieldType["DATE"] = 2] = "DATE";
24
- FieldType[FieldType["NUMBER"] = 3] = "NUMBER";
25
- FieldType[FieldType["CURRENCY"] = 4] = "CURRENCY";
26
- FieldType[FieldType["DYNAMIC_DROPDOWN"] = 5] = "DYNAMIC_DROPDOWN";
27
- FieldType[FieldType["SELECT_BUTTON"] = 6] = "SELECT_BUTTON";
28
- FieldType[FieldType["DATE_RANGE"] = 7] = "DATE_RANGE";
29
- FieldType[FieldType["MULTISELECT"] = 8] = "MULTISELECT";
30
- })(FieldType || (FieldType = {}));
31
- export class FiltersComponent {
32
- set fields(_fields) {
33
- const isFirstSet = !this._fields.length && _fields?.length;
34
- this._fields = _fields;
35
- this.formGroup = new UntypedFormGroup({});
36
- this.fieldsSubscription.unsubscribe();
37
- this.fieldsSubscription = new Subscription();
38
- this.fields?.forEach((field) => {
39
- if (field?.defaultValue && typeof field?.defaultValue === 'object') {
40
- field.initiateValue = !!field.defaultValue?.code;
41
- }
42
- else {
43
- field.initiateValue = !!field.defaultValue;
44
- }
45
- if (field.type === FieldType.DATE_RANGE) {
46
- this.formGroup.addControl(field.name, new UntypedFormGroup({
47
- startDate: new UntypedFormControl({ value: field.defaultValue?.startDate, disabled: field.readonly }, [
48
- ...this.buildValidators(field),
49
- ValidationUtil.lowerThanOrEqualTo('endDate'),
50
- ]),
51
- endDate: new UntypedFormControl({ value: field.defaultValue?.endDate, disabled: field.readonly }, [
52
- ...this.buildValidators(field),
53
- ValidationUtil.greaterThanOrEqualTo('startDate'),
54
- ]),
55
- }));
56
- }
57
- else {
58
- if (field.controler) {
59
- this.formGroup.addControl(field.name, field.controler);
60
- }
61
- else {
62
- this.formGroup.addControl(field.name, new UntypedFormControl({ value: field.defaultValue, disabled: field.readonly }, this.buildValidators(field)));
63
- }
64
- }
65
- if (!field.limitScrollPage) {
66
- field.limitScrollPage = 20;
67
- }
68
- });
69
- this.fields
70
- ?.filter((field) => field.dependencies)
71
- .forEach((field) => {
72
- field.dependencies?.forEach((dependency) => {
73
- this.fieldsSubscription.add(this.formGroup.get(dependency)?.valueChanges.subscribe((value) => {
74
- this.formGroup.get(field.name)?.reset();
75
- }));
76
- });
77
- });
78
- this.patchFormFromQueryParams({ ...this.activatedRoute.snapshot.queryParams });
79
- if (this._fields?.length && this.formGroup.valid && isFirstSet) {
80
- this.search();
81
- }
82
- this.formBuilded.emit();
83
- this.fieldsSubscription.add(this.activatedRoute.queryParams.subscribe((queryParams) => {
84
- this.patchFormFromQueryParams({ ...queryParams });
85
- }));
86
- }
87
- get fields() {
88
- return this._fields;
89
- }
90
- get hideFilters() {
91
- return !this.fields?.filter((item) => !item.hidden).length;
92
- }
93
- constructor(activatedRoute) {
94
- this.activatedRoute = activatedRoute;
95
- this.onSearch = new EventEmitter();
96
- this.formBuilded = new EventEmitter();
97
- this.fieldTypes = FieldType;
98
- this.formGroup = new UntypedFormGroup({});
99
- this._fields = [];
100
- this.fieldsSubscription = new Subscription();
101
- }
102
- ngOnInit() { }
103
- ngOnDestroy() {
104
- this.fieldsSubscription.unsubscribe();
105
- }
106
- search() {
107
- this.formGroup.markAllAsTouched();
108
- if (this.formGroup.valid) {
109
- const filterValue = this.formGroup.getRawValue();
110
- Object.keys(filterValue).forEach((key) => {
111
- if (filterValue[key]?.hasOwnProperty('code')) {
112
- filterValue[key] = filterValue[key].code;
113
- }
114
- if (!ObjectUtil.isValid(filterValue[key])) {
115
- const fieldType = this.fields.find((field) => field.name === key)?.type ?? FieldType.TEXT;
116
- filterValue[key] = [FieldType.DROPDOWN, FieldType.NUMBER].includes(fieldType) ? -1 : '';
117
- }
118
- });
119
- this.onSearch.emit(filterValue);
120
- }
121
- }
122
- isTextFieldType(field) {
123
- return [FieldType.TEXT, FieldType.NUMBER].includes(field.type);
124
- }
125
- getFieldDependencies(field) {
126
- if (!field.dependencies) {
127
- return undefined;
128
- }
129
- return field.dependencies.reduce((prev, curr) => {
130
- let depValue = this.formGroup.get(curr)?.value?.code;
131
- if (!ObjectUtil.isValid(depValue)) {
132
- depValue = -1;
133
- }
134
- return {
135
- ...prev,
136
- [curr]: depValue,
137
- };
138
- }, {});
139
- }
140
- getGridClass(field) {
141
- switch (field.size) {
142
- case 'small':
143
- return 'md:col-1';
144
- case 'medium':
145
- return 'md:col-3';
146
- case 'large':
147
- return 'md:col-4';
148
- case 'largest':
149
- return 'md:col-8';
150
- case 'full':
151
- return 'md:col-12';
152
- default:
153
- return 'md:col-4';
154
- }
155
- }
156
- patchFormFromQueryParams(queryParams) {
157
- if (Object.keys(queryParams).length) {
158
- this.fields.forEach((field) => {
159
- if (queryParams.hasOwnProperty(field.name)) {
160
- try {
161
- queryParams[field.name] = queryParams[field.name]
162
- ? JSON.parse(queryParams[field.name])
163
- : queryParams[field.name];
164
- }
165
- catch (_) { }
166
- if (field.type === FieldType.DATE_RANGE) {
167
- queryParams[field.name] = {
168
- startDate: queryParams[field.name].startDate ? new Date(queryParams[field.name].startDate) : undefined,
169
- endDate: queryParams[field.name].endDate ? new Date(queryParams[field.name].endDate) : undefined,
170
- };
171
- }
172
- if (field.type === FieldType.DATE) {
173
- queryParams[field.name] = queryParams[field.name] ? new Date(queryParams[field.name]) : undefined;
174
- }
175
- }
176
- });
177
- this.formGroup.patchValue(queryParams);
178
- }
179
- }
180
- buildValidators(field) {
181
- const validators = [];
182
- if (field.required) {
183
- validators.push(Validators.required);
184
- }
185
- if (field.minLength) {
186
- validators.push(Validators.minLength(field.minLength));
187
- }
188
- if (field.maxLength) {
189
- validators.push(Validators.maxLength(field.maxLength));
190
- }
191
- if (field.min) {
192
- validators.push(Validators.min(field.min));
193
- }
194
- if (field.max) {
195
- validators.push(Validators.max(field.max));
196
- }
197
- return validators;
198
- }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
200
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n <label\n >{{ field.label }}\n <i\n *ngIf=\"field.tooltip\"\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\n pTooltip=\"{{ field.tooltip }}\"\n tooltipPosition=\"bottom\"\n ></i\n ></label>\n <vector-text-field\n *ngIf=\"isTextFieldType(field)\"\n [control]=\"formGroup.get(field.name)\"\n [mask]=\"field.mask\"\n [label]=\"field.placeholder\"\n [isRequired]=\"field.required\"\n [numeric]=\"field.type === fieldTypes.NUMBER\"\n [class]=\"field.class\"\n ></vector-text-field>\n <vector-dropdown-field\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\n [dynamicFilters]=\"field.filterTypes\"\n [disabled]=\"field.disabled\"\n [options]=\"field.options || []\"\n [service]=\"field.service\"\n [isRequired]=\"field.required\"\n [minLengthToService]=\"field.minLengthToService || 0\"\n [control]=\"formGroup.get(field.name)\"\n [paged]=\"false\"\n [dependencies]=\"getFieldDependencies(field)\"\n [initialLoad]=\"field.initiateValue\"\n [limitScrollPage]=\"field.limitScrollPage\"\n ></vector-dropdown-field>\n <vector-currency-field\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\n [control]=\"formGroup.get(field.name)\"\n [outlined]=\"true\"\n [disabled]=\"field.disabled\"\n ></vector-currency-field>\n <vector-calendar-field\n *ngIf=\"field.type === fieldTypes.DATE\"\n [control]=\"formGroup.get(field.name)\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n [disabled]=\"field.disabled\"\n [min]=\"field.dateMin\"\n [max]=\"field.dateMax\"\n ></vector-calendar-field>\n <vector-select-button-field\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options\"\n (click)=\"search()\"\n [disabled]=\"field.disabled\"\n >\n </vector-select-button-field>\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.startDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n [disabled]=\"field.disabled\"\n [min]=\"field.dateMin\"\n ></vector-calendar-field>\n At\u00E9\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.endDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n [disabled]=\"field.disabled\"\n [max]=\"field.dateMax\"\n ></vector-calendar-field>\n </div>\n <vector-multiselect-field\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options || []\"\n [disabled]=\"field.disabled\"\n >\n </vector-multiselect-field>\n </div>\n <div class=\"search-button sm:col-4\">\n <vector-button\n [label]=\"'app.label.search' | translate\"\n (click)=\"search()\"\n [disabled]=\"!formGroup.valid\"\n [round]=\"true\"\n type=\"default-filled\"\n ></vector-button>\n </div>\n</div>\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px;display:flex;justify-content:flex-end}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "numericPositive", "numericDotComma", "decimal", "onlyText", "noSpecialCharacters", "alphaNumeric", "alphaNumericAndWhitespace", "mask", "autoClear", "readonly", "rightIcon", "centered", "_enableDocumentTypeChoice", "enableDocumentTypeChoice", "hiddenErrorMessage", "leftLabel", "control", "inputId", "slotChar", "disabled", "pattern"], outputs: ["blurEvent", "inputEvent", "enterKeyPress", "backSpaceKeyPress", "focusEvent", "onDocumentTypeChange"] }, { kind: "component", type: i6.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "round", "style", "loading"], outputs: ["onClick"] }, { kind: "component", type: i7.CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage", "showTime", "showSeconds", "stepMinute", "stepHour", "stepSecond", "timeOnly", "hourFormat"], outputs: ["onFocus", "onBlur", "onInput", "onSelect"] }, { kind: "component", type: i8.MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: ["pagedSugestion", "isRequired", "control", "label", "options", "filter", "showSelectAllOption", "display", "paged", "disabled", "minLengthToService", "initialLoad", "service", "filterVirtualScrool", "showHeader", "showFlags", "dependencies", "limitScrollPage", "forceSelection", "showFlagsOptions"], outputs: ["onChange", "onClosePanel"] }, { kind: "component", type: i9.DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isNgContent", "forceSelection", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad", "disabled", "limitScrollPage", "inputId"], outputs: ["onFocus", "onChange"] }, { kind: "component", type: i10.CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "numberOfDecimals", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "localePrefix", "currencyPrefix", "disabled", "centered", "inputId"], outputs: ["onBlur"] }, { kind: "component", type: i11.SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control", "disabled"] }, { kind: "pipe", type: i12.NotHiddenPipe, name: "notHidden" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, decorators: [{
203
- type: Component,
204
- args: [{ selector: 'vector-filters', template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\n <label\n >{{ field.label }}\n <i\n *ngIf=\"field.tooltip\"\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\n pTooltip=\"{{ field.tooltip }}\"\n tooltipPosition=\"bottom\"\n ></i\n ></label>\n <vector-text-field\n *ngIf=\"isTextFieldType(field)\"\n [control]=\"formGroup.get(field.name)\"\n [mask]=\"field.mask\"\n [label]=\"field.placeholder\"\n [isRequired]=\"field.required\"\n [numeric]=\"field.type === fieldTypes.NUMBER\"\n [class]=\"field.class\"\n ></vector-text-field>\n <vector-dropdown-field\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\n [dynamicFilters]=\"field.filterTypes\"\n [disabled]=\"field.disabled\"\n [options]=\"field.options || []\"\n [service]=\"field.service\"\n [isRequired]=\"field.required\"\n [minLengthToService]=\"field.minLengthToService || 0\"\n [control]=\"formGroup.get(field.name)\"\n [paged]=\"false\"\n [dependencies]=\"getFieldDependencies(field)\"\n [initialLoad]=\"field.initiateValue\"\n [limitScrollPage]=\"field.limitScrollPage\"\n ></vector-dropdown-field>\n <vector-currency-field\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\n [control]=\"formGroup.get(field.name)\"\n [outlined]=\"true\"\n [disabled]=\"field.disabled\"\n ></vector-currency-field>\n <vector-calendar-field\n *ngIf=\"field.type === fieldTypes.DATE\"\n [control]=\"formGroup.get(field.name)\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n [disabled]=\"field.disabled\"\n [min]=\"field.dateMin\"\n [max]=\"field.dateMax\"\n ></vector-calendar-field>\n <vector-select-button-field\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options\"\n (click)=\"search()\"\n [disabled]=\"field.disabled\"\n >\n </vector-select-button-field>\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.startDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n [disabled]=\"field.disabled\"\n [min]=\"field.dateMin\"\n ></vector-calendar-field>\n At\u00E9\n <vector-calendar-field\n [control]=\"formGroup.get(field.name + '.endDate')\"\n [isRequired]=\"field.required\"\n [label]=\"field.placeholder || ''\"\n [disabled]=\"field.disabled\"\n [max]=\"field.dateMax\"\n ></vector-calendar-field>\n </div>\n <vector-multiselect-field\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\n [control]=\"formGroup.get(field.name)\"\n [options]=\"field.options || []\"\n [disabled]=\"field.disabled\"\n >\n </vector-multiselect-field>\n </div>\n <div class=\"search-button sm:col-4\">\n <vector-button\n [label]=\"'app.label.search' | translate\"\n (click)=\"search()\"\n [disabled]=\"!formGroup.valid\"\n [round]=\"true\"\n type=\"default-filled\"\n ></vector-button>\n </div>\n</div>\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px;display:flex;justify-content:flex-end}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"] }]
205
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }], propDecorators: { fields: [{
206
- type: Input
207
- }], onSearch: [{
208
- type: Output
209
- }], formBuilded: [{
210
- type: Output
211
- }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUU1RCxNQUFNLENBQU4sSUFBWSxTQVVYO0FBVkQsV0FBWSxTQUFTO0lBQ25CLGlEQUFRLENBQUE7SUFDUix5Q0FBSSxDQUFBO0lBQ0oseUNBQUksQ0FBQTtJQUNKLDZDQUFNLENBQUE7SUFDTixpREFBUSxDQUFBO0lBQ1IsaUVBQWdCLENBQUE7SUFDaEIsMkRBQWEsQ0FBQTtJQUNiLHFEQUFVLENBQUE7SUFDVix1REFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVZXLFNBQVMsS0FBVCxTQUFTLFFBVXBCO0FBcUNELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsSUFDVyxNQUFNLENBQUMsT0FBc0I7UUFDdEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUUs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O0lBQ3BCLENBQUM7K0dBbk1VLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG1KQ3ZEN0IsbTVHQTRGQTs7NEZEckNhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxnQkFBZ0I7bUZBTWYsTUFBTTtzQkFEaEIsS0FBSztnQkF3RUMsUUFBUTtzQkFEZCxNQUFNO2dCQUdBLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEJhc2VEcm9wZG93biB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE9iamVjdFV0aWwsIFZhbGlkYXRpb25VdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgZW51bSBGaWVsZFR5cGUge1xuICBEUk9QRE9XTixcbiAgVEVYVCxcbiAgREFURSxcbiAgTlVNQkVSLFxuICBDVVJSRU5DWSxcbiAgRFlOQU1JQ19EUk9QRE9XTixcbiAgU0VMRUNUX0JVVFRPTixcbiAgREFURV9SQU5HRSxcbiAgTVVMVElTRUxFQ1QsXG59XG5cbmV4cG9ydCB0eXBlIEZpbHRlckZpZWxkID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IEZpZWxkVHlwZTtcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgbWFzaz86IHN0cmluZztcbiAgb3B0aW9ucz86IExpc3RJdGVtW107XG4gIGZpbHRlclR5cGVzPzogTGlzdEl0ZW1bXTtcbiAgc2VydmljZT86IEJhc2VEcm9wZG93bjtcbiAgZGVmYXVsdFZhbHVlPzogYW55O1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgZGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gIHNpemU/OiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ2xhcmdlc3QnIHwgJ2Z1bGwnO1xuICBtaW5MZW5ndGhUb1NlcnZpY2U/OiBudW1iZXI7XG4gIGluaXRpYXRlVmFsdWU/OiBib29sZWFuO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBjb250cm9sZXI/OiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIGRhdGVNaW4/OiBEYXRlO1xuICBkYXRlTWF4PzogRGF0ZTtcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGxpbWl0U2Nyb2xsUGFnZT86IG51bWJlcjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlY3Rvci1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKF9maWVsZHM6IEZpbHRlckZpZWxkW10pIHtcbiAgICBjb25zdCBpc0ZpcnN0U2V0ID0gIXRoaXMuX2ZpZWxkcy5sZW5ndGggJiYgX2ZpZWxkcz8ubGVuZ3RoO1xuICAgIHRoaXMuX2ZpZWxkcyA9IF9maWVsZHM7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICB0aGlzLmZpZWxkc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZmllbGRzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgdGhpcy5maWVsZHM/LmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQ/LmRlZmF1bHRWYWx1ZSAmJiB0eXBlb2YgZmllbGQ/LmRlZmF1bHRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZmllbGQuaW5pdGlhdGVWYWx1ZSA9ICEhZmllbGQuZGVmYXVsdFZhbHVlPy5jb2RlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGQuaW5pdGlhdGVWYWx1ZSA9ICEhZmllbGQuZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5EQVRFX1JBTkdFKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBzdGFydERhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlPy5zdGFydERhdGUsIGRpc2FibGVkOiBmaWVsZC5yZWFkb25seSB9LCBbXG4gICAgICAgICAgICAgIC4uLnRoaXMuYnVpbGRWYWxpZGF0b3JzKGZpZWxkKSxcbiAgICAgICAgICAgICAgVmFsaWRhdGlvblV0aWwubG93ZXJUaGFuT3JFcXVhbFRvKCdlbmREYXRlJyksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIGVuZERhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlPy5lbmREYXRlLCBkaXNhYmxlZDogZmllbGQucmVhZG9ubHkgfSwgW1xuICAgICAgICAgICAgICAuLi50aGlzLmJ1aWxkVmFsaWRhdG9ycyhmaWVsZCksXG4gICAgICAgICAgICAgIFZhbGlkYXRpb25VdGlsLmdyZWF0ZXJUaGFuT3JFcXVhbFRvKCdzdGFydERhdGUnKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZmllbGQuY29udHJvbGVyKSB7XG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbChmaWVsZC5uYW1lLCBmaWVsZC5jb250cm9sZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUsIGRpc2FibGVkOiBmaWVsZC5yZWFkb25seSB9LCB0aGlzLmJ1aWxkVmFsaWRhdG9ycyhmaWVsZCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWZpZWxkLmxpbWl0U2Nyb2xsUGFnZSkge1xuICAgICAgICBmaWVsZC5saW1pdFNjcm9sbFBhZ2UgPSAyMDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZmllbGRzXG4gICAgICA/LmZpbHRlcigoZmllbGQpID0+IGZpZWxkLmRlcGVuZGVuY2llcylcbiAgICAgIC5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBmaWVsZC5kZXBlbmRlbmNpZXM/LmZvckVhY2goKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICB0aGlzLmZpZWxkc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZGVwZW5kZW5jeSk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKT8ucmVzZXQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMucGF0Y2hGb3JtRnJvbVF1ZXJ5UGFyYW1zKHsgLi4udGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICh0aGlzLl9maWVsZHM/Lmxlbmd0aCAmJiB0aGlzLmZvcm1Hcm91cC52YWxpZCAmJiBpc0ZpcnN0U2V0KSB7XG4gICAgICB0aGlzLnNlYXJjaCgpO1xuICAgIH1cbiAgICB0aGlzLmZvcm1CdWlsZGVkLmVtaXQoKTtcblxuICAgIHRoaXMuZmllbGRzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChxdWVyeVBhcmFtcykgPT4ge1xuICAgICAgICB0aGlzLnBhdGNoRm9ybUZyb21RdWVyeVBhcmFtcyh7IC4uLnF1ZXJ5UGFyYW1zIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KClcbiAgcHVibGljIGZvcm1CdWlsZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBnZXQgZmllbGRzKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZHM7XG4gIH1cblxuICBwdWJsaWMgZmllbGRUeXBlcyA9IEZpZWxkVHlwZTtcbiAgcHVibGljIGZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcblxuICBwcml2YXRlIF9maWVsZHM6IEZpbHRlckZpZWxkW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWVsZHNTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgZ2V0IGhpZGVGaWx0ZXJzKCkge1xuICAgIHJldHVybiAhdGhpcy5maWVsZHM/LmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uaGlkZGVuKS5sZW5ndGg7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5maWVsZHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2goKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgICAgT2JqZWN0LmtleXMoZmlsdGVyVmFsdWUpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoZmlsdGVyVmFsdWVba2V5XT8uaGFzT3duUHJvcGVydHkoJ2NvZGUnKSkge1xuICAgICAgICAgIGZpbHRlclZhbHVlW2tleV0gPSBmaWx0ZXJWYWx1ZVtrZXldLmNvZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzVmFsaWQoZmlsdGVyVmFsdWVba2V5XSkpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZFR5cGUgPSB0aGlzLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0ga2V5KT8udHlwZSA/PyBGaWVsZFR5cGUuVEVYVDtcbiAgICAgICAgICBmaWx0ZXJWYWx1ZVtrZXldID0gW0ZpZWxkVHlwZS5EUk9QRE9XTiwgRmllbGRUeXBlLk5VTUJFUl0uaW5jbHVkZXMoZmllbGRUeXBlKSA/IC0xIDogJyc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KGZpbHRlclZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNUZXh0RmllbGRUeXBlKGZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuICAgIHJldHVybiBbRmllbGRUeXBlLlRFWFQsIEZpZWxkVHlwZS5OVU1CRVJdLmluY2x1ZGVzKGZpZWxkLnR5cGUpO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkRGVwZW5kZW5jaWVzKGZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuICAgIGlmICghZmllbGQuZGVwZW5kZW5jaWVzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGQuZGVwZW5kZW5jaWVzLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgbGV0IGRlcFZhbHVlOiBhbnkgPSB0aGlzLmZvcm1Hcm91cC5nZXQoY3Vycik/LnZhbHVlPy5jb2RlO1xuICAgICAgaWYgKCFPYmplY3RVdGlsLmlzVmFsaWQoZGVwVmFsdWUpKSB7XG4gICAgICAgIGRlcFZhbHVlID0gLTE7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBbY3Vycl06IGRlcFZhbHVlLFxuICAgICAgfTtcbiAgICB9LCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0R3JpZENsYXNzKGZpZWxkOiBGaWx0ZXJGaWVsZCkge1xuICAgIHN3aXRjaCAoZmllbGQuc2l6ZSkge1xuICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgICByZXR1cm4gJ21kOmNvbC0xJztcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHJldHVybiAnbWQ6Y29sLTMnO1xuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICByZXR1cm4gJ21kOmNvbC00JztcbiAgICAgIGNhc2UgJ2xhcmdlc3QnOlxuICAgICAgICByZXR1cm4gJ21kOmNvbC04JztcbiAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICByZXR1cm4gJ21kOmNvbC0xMic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ21kOmNvbC00JztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhdGNoRm9ybUZyb21RdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogYW55KSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChxdWVyeVBhcmFtcy5oYXNPd25Qcm9wZXJ0eShmaWVsZC5uYW1lKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtc1tmaWVsZC5uYW1lXSA9IHF1ZXJ5UGFyYW1zW2ZpZWxkLm5hbWVdXG4gICAgICAgICAgICAgID8gSlNPTi5wYXJzZShxdWVyeVBhcmFtc1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICAgICAgOiBxdWVyeVBhcmFtc1tmaWVsZC5uYW1lXTtcbiAgICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuREFURV9SQU5HRSkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXNbZmllbGQubmFtZV0gPSB7XG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogcXVlcnlQYXJhbXNbZmllbGQubmFtZV0uc3RhcnREYXRlID8gbmV3IERhdGUocXVlcnlQYXJhbXNbZmllbGQubmFtZV0uc3RhcnREYXRlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgZW5kRGF0ZTogcXVlcnlQYXJhbXNbZmllbGQubmFtZV0uZW5kRGF0ZSA/IG5ldyBEYXRlKHF1ZXJ5UGFyYW1zW2ZpZWxkLm5hbWVdLmVuZERhdGUpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5EQVRFKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtc1tmaWVsZC5uYW1lXSA9IHF1ZXJ5UGFyYW1zW2ZpZWxkLm5hbWVdID8gbmV3IERhdGUocXVlcnlQYXJhbXNbZmllbGQubmFtZV0pIDogdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHF1ZXJ5UGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVmFsaWRhdG9ycyhmaWVsZDogRmlsdGVyRmllbGQpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIGlmIChmaWVsZC5taW5MZW5ndGgpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChmaWVsZC5taW5MZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKGZpZWxkLm1heExlbmd0aCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoZmllbGQubWluKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oZmllbGQubWluKSk7XG4gICAgfVxuICAgIGlmIChmaWVsZC5tYXgpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChmaWVsZC5tYXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncmlkIGZpbHRlci1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdkaXNwbGF5LW5vbmUnOiBoaWRlRmlsdGVycyB9XCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzIHwgbm90SGlkZGVuXCIgY2xhc3M9XCJmaWVsZCBjb2wtMTIgc206Y29sLTgge3sgZ2V0R3JpZENsYXNzKGZpZWxkKSB9fVwiPlxuICAgIDxsYWJlbFxuICAgICAgPnt7IGZpZWxkLmxhYmVsIH19XG4gICAgICA8aVxuICAgICAgICAqbmdJZj1cImZpZWxkLnRvb2x0aXBcIlxuICAgICAgICBjbGFzcz1cImZhcyBmYS1pbmZvLWNpcmNsZSBtdC0xIHBsLTIgY2hcIlxuICAgICAgICBwVG9vbHRpcD1cInt7IGZpZWxkLnRvb2x0aXAgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgPjwvaVxuICAgID48L2xhYmVsPlxuICAgIDx2ZWN0b3ItdGV4dC1maWVsZFxuICAgICAgKm5nSWY9XCJpc1RleHRGaWVsZFR5cGUoZmllbGQpXCJcbiAgICAgIFtjb250cm9sXT1cImZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSlcIlxuICAgICAgW21hc2tdPVwiZmllbGQubWFza1wiXG4gICAgICBbbGFiZWxdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgW2lzUmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgW251bWVyaWNdPVwiZmllbGQudHlwZSA9PT0gZmllbGRUeXBlcy5OVU1CRVJcIlxuICAgICAgW2NsYXNzXT1cImZpZWxkLmNsYXNzXCJcbiAgICA+PC92ZWN0b3ItdGV4dC1maWVsZD5cbiAgICA8dmVjdG9yLWRyb3Bkb3duLWZpZWxkXG4gICAgICAqbmdJZj1cIltmaWVsZFR5cGVzLkRZTkFNSUNfRFJPUERPV04sIGZpZWxkVHlwZXMuRFJPUERPV05dLmluY2x1ZGVzKGZpZWxkLnR5cGUpXCJcbiAgICAgIFtkeW5hbWljRmlsdGVyc109XCJmaWVsZC5maWx0ZXJUeXBlc1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgW29wdGlvbnNdPVwiZmllbGQub3B0aW9ucyB8fCBbXVwiXG4gICAgICBbc2VydmljZV09XCJmaWVsZC5zZXJ2aWNlXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFttaW5MZW5ndGhUb1NlcnZpY2VdPVwiZmllbGQubWluTGVuZ3RoVG9TZXJ2aWNlIHx8IDBcIlxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKVwiXG4gICAgICBbcGFnZWRdPVwiZmFsc2VcIlxuICAgICAgW2RlcGVuZGVuY2llc109XCJnZXRGaWVsZERlcGVuZGVuY2llcyhmaWVsZClcIlxuICAgICAgW2luaXRpYWxMb2FkXT1cImZpZWxkLmluaXRpYXRlVmFsdWVcIlxuICAgICAgW2xpbWl0U2Nyb2xsUGFnZV09XCJmaWVsZC5saW1pdFNjcm9sbFBhZ2VcIlxuICAgID48L3ZlY3Rvci1kcm9wZG93bi1maWVsZD5cbiAgICA8dmVjdG9yLWN1cnJlbmN5LWZpZWxkXG4gICAgICAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGZpZWxkVHlwZXMuQ1VSUkVOQ1lcIlxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKVwiXG4gICAgICBbb3V0bGluZWRdPVwidHJ1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgID48L3ZlY3Rvci1jdXJyZW5jeS1maWVsZD5cbiAgICA8dmVjdG9yLWNhbGVuZGFyLWZpZWxkXG4gICAgICAqbmdJZj1cImZpZWxkLnR5cGUgPT09IGZpZWxkVHlwZXMuREFURVwiXG4gICAgICBbY29udHJvbF09XCJmb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpXCJcbiAgICAgIFtpc1JlcXVpcmVkXT1cImZpZWxkLnJlcXVpcmVkXCJcbiAgICAgIFtsYWJlbF09XCJmaWVsZC5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgW21pbl09XCJmaWVsZC5kYXRlTWluXCJcbiAgICAgIFttYXhdPVwiZmllbGQuZGF0ZU1heFwiXG4gICAgPjwvdmVjdG9yLWNhbGVuZGFyLWZpZWxkPlxuICAgIDx2ZWN0b3Itc2VsZWN0LWJ1dHRvbi1maWVsZFxuICAgICAgKm5nSWY9XCJmaWVsZC50eXBlID09PSBmaWVsZFR5cGVzLlNFTEVDVF9CVVRUT05cIlxuICAgICAgW2NvbnRyb2xdPVwiZm9ybUdyb3VwLmdldChmaWVsZC5uYW1lKVwiXG4gICAgICBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgIChjbGljayk9XCJzZWFyY2goKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgID5cbiAgICA8L3ZlY3Rvci1zZWxlY3QtYnV0dG9uLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC50eXBlID09PSBmaWVsZFR5cGVzLkRBVEVfUkFOR0VcIiBjbGFzcz1cInJhbmdlLWRhdGUtY29udGFpbmVyXCI+XG4gICAgICA8dmVjdG9yLWNhbGVuZGFyLWZpZWxkXG4gICAgICAgIFtjb250cm9sXT1cImZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSArICcuc3RhcnREYXRlJylcIlxuICAgICAgICBbaXNSZXF1aXJlZF09XCJmaWVsZC5yZXF1aXJlZFwiXG4gICAgICAgIFtsYWJlbF09XCJmaWVsZC5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiXG4gICAgICAgIFttaW5dPVwiZmllbGQuZGF0ZU1pblwiXG4gICAgICA+PC92ZWN0b3ItY2FsZW5kYXItZmllbGQ+XG4gICAgICBBdMOpXG4gICAgICA8dmVjdG9yLWNhbGVuZGFyLWZpZWxkXG4gICAgICAgIFtjb250cm9sXT1cImZvcm1Hcm91cC5nZXQoZmllbGQubmFtZSArICcuZW5kRGF0ZScpXCJcbiAgICAgICAgW2lzUmVxdWlyZWRdPVwiZmllbGQucmVxdWlyZWRcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgICBbbWF4XT1cImZpZWxkLmRhdGVNYXhcIlxuICAgICAgPjwvdmVjdG9yLWNhbGVuZGFyLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDx2ZWN0b3ItbXVsdGlzZWxlY3QtZmllbGRcbiAgICAgICpuZ0lmPVwiZmllbGQudHlwZSA9PT0gZmllbGRUeXBlcy5NVUxUSVNFTEVDVFwiXG4gICAgICBbY29udHJvbF09XCJmb3JtR3JvdXAuZ2V0KGZpZWxkLm5hbWUpXCJcbiAgICAgIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnMgfHwgW11cIlxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLmRpc2FibGVkXCJcbiAgICA+XG4gICAgPC92ZWN0b3ItbXVsdGlzZWxlY3QtZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJ1dHRvbiBzbTpjb2wtNFwiPlxuICAgIDx2ZWN0b3ItYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiJ2FwcC5sYWJlbC5zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJzZWFyY2goKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWZvcm1Hcm91cC52YWxpZFwiXG4gICAgICBbcm91bmRdPVwidHJ1ZVwiXG4gICAgICB0eXBlPVwiZGVmYXVsdC1maWxsZWRcIlxuICAgID48L3ZlY3Rvci1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './filters.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9maWx0ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbHRlcnMuY29tcG9uZW50JztcbiJdfQ==
@@ -1,21 +0,0 @@
1
- export * from './button';
2
- export * from './calendar-field';
3
- export * from './checkbox-field';
4
- export * from './currency-field';
5
- export * from './data-table';
6
- export * from './dropdown-field';
7
- export * from './field-error-message';
8
- export * from './fields.module';
9
- export * from './filters';
10
- export * from './input-number-field';
11
- export * from './input-otp';
12
- export * from './input-switch-field';
13
- export * from './multiselect-field';
14
- export * from './percentage-field';
15
- export * from './radio-button-field';
16
- export * from './range-value';
17
- export * from './search-field';
18
- export * from './select-button-field';
19
- export * from './text-field';
20
- export * from './textarea-field';
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLWZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gtZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeS1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLWVycm9yLW1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LW51bWJlci1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LW90cCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LXN3aXRjaC1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpc2VsZWN0LWZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vcGVyY2VudGFnZS1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWJ1dHRvbi1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLXZhbHVlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWZpZWxkJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWJ1dHRvbi1maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQtZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0YXJlYS1maWVsZCc7XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './input-number-field.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9pbnB1dC1udW1iZXItZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXQtbnVtYmVyLWZpZWxkLmNvbXBvbmVudCc7XG4iXX0=