@wlcm/angular 17.7.43 → 17.7.44

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 (180) hide show
  1. package/button/fesm2022/wlcm-angular-button.mjs +7 -7
  2. package/button/fesm2022/wlcm-angular-button.mjs.map +1 -1
  3. package/core/fesm2022/wlcm-angular-core.mjs +24 -24
  4. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  5. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +61 -61
  6. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  7. package/datepicker/lib/directives/datepicker-input.base.d.ts +1 -1
  8. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +1 -1
  9. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +1 -1
  10. package/datepicker/lib/models/range/data-range-calendar.models.d.ts +1 -1
  11. package/filters/fesm2022/wlcm-angular-filters.mjs +13 -13
  12. package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
  13. package/filters/lib/models/filters-group.models.d.ts +1 -1
  14. package/forms/fesm2022/wlcm-angular-forms.mjs +76 -67
  15. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  16. package/forms/lib/forms/components/select/select.component.d.ts +1 -0
  17. package/forms/lib/forms/models/autocomplete.models.d.ts +1 -1
  18. package/forms/lib/forms/models/select.models.d.ts +1 -1
  19. package/package.json +1 -1
  20. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs +16 -16
  21. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -1
  22. package/search-field/fesm2022/wlcm-angular-search-field.mjs +7 -7
  23. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  24. package/stepper/fesm2022/wlcm-angular-stepper.mjs +25 -25
  25. package/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -1
  26. package/stepper/lib/models/step.models.d.ts +1 -1
  27. package/stepper/lib/models/stepper.models.d.ts +1 -1
  28. package/table/fesm2022/wlcm-angular-table.mjs +34 -34
  29. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
  30. package/button/esm2022/index.mjs +0 -3
  31. package/button/esm2022/lib/button.module.mjs +0 -16
  32. package/button/esm2022/lib/components/button/button.component.mjs +0 -37
  33. package/button/esm2022/lib/models/button.models.mjs +0 -2
  34. package/button/esm2022/wlcm-angular-button.mjs +0 -5
  35. package/core/esm2022/index.mjs +0 -17
  36. package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +0 -12
  37. package/core/esm2022/lib/components/icons/calendar-icon/calendar-icon.component.mjs +0 -12
  38. package/core/esm2022/lib/components/icons/chevron-down-icon/chevron-down-icon.component.mjs +0 -12
  39. package/core/esm2022/lib/components/icons/close-icon/close-icon.component.mjs +0 -12
  40. package/core/esm2022/lib/components/icons/search-icon/search-icon.component.mjs +0 -12
  41. package/core/esm2022/lib/components/loader/loader.component.mjs +0 -32
  42. package/core/esm2022/lib/constants/_index.mjs +0 -3
  43. package/core/esm2022/lib/constants/http.constants.mjs +0 -6
  44. package/core/esm2022/lib/constants/icon.contants.mjs +0 -15
  45. package/core/esm2022/lib/constants/loader.constants.mjs +0 -7
  46. package/core/esm2022/lib/directives/_index.mjs +0 -2
  47. package/core/esm2022/lib/directives/icon.directive.mjs +0 -49
  48. package/core/esm2022/lib/models/_index.mjs +0 -3
  49. package/core/esm2022/lib/models/icon.models.mjs +0 -7
  50. package/core/esm2022/lib/models/option.models.mjs +0 -17
  51. package/core/esm2022/lib/services/scroll-detection.api.mjs +0 -27
  52. package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +0 -20
  53. package/core/esm2022/lib/utils/stream.utils.mjs +0 -16
  54. package/core/esm2022/wlcm-angular-core.mjs +0 -5
  55. package/datepicker/esm2022/index.mjs +0 -14
  56. package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +0 -63
  57. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +0 -87
  58. package/datepicker/esm2022/lib/components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +0 -19
  59. package/datepicker/esm2022/lib/components/range/date-range-picker-input/date-range-picker-input.component.mjs +0 -126
  60. package/datepicker/esm2022/lib/components/range/double-calendar-range-picker/double-calendar-range-picker.component.mjs +0 -168
  61. package/datepicker/esm2022/lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component.mjs +0 -95
  62. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +0 -92
  63. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +0 -33
  64. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +0 -23
  65. package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +0 -5
  66. package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +0 -10
  67. package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +0 -10
  68. package/datepicker/esm2022/lib/datepicker.module.mjs +0 -33
  69. package/datepicker/esm2022/lib/directives/calendar.directive.mjs +0 -15
  70. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +0 -103
  71. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +0 -105
  72. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +0 -81
  73. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +0 -81
  74. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +0 -58
  75. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +0 -51
  76. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +0 -64
  77. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +0 -67
  78. package/datepicker/esm2022/lib/models/date-picker.models.mjs +0 -29
  79. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +0 -61
  80. package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +0 -27
  81. package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +0 -5
  82. package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +0 -16
  83. package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +0 -9
  84. package/datepicker/esm2022/wlcm-angular-datepicker.mjs +0 -5
  85. package/filters/esm2022/index.mjs +0 -6
  86. package/filters/esm2022/lib/components/filters-group/filters-group.component.mjs +0 -13
  87. package/filters/esm2022/lib/constants/filter.constants.mjs +0 -3
  88. package/filters/esm2022/lib/constants/index.mjs +0 -2
  89. package/filters/esm2022/lib/directives/filter.directive.mjs +0 -11
  90. package/filters/esm2022/lib/directives/index.mjs +0 -2
  91. package/filters/esm2022/lib/filters.module.mjs +0 -20
  92. package/filters/esm2022/lib/models/array-filter.models.mjs +0 -73
  93. package/filters/esm2022/lib/models/filter.models.mjs +0 -39
  94. package/filters/esm2022/lib/models/filters-group.models.mjs +0 -60
  95. package/filters/esm2022/lib/models/index.mjs +0 -4
  96. package/filters/esm2022/wlcm-angular-filters.mjs +0 -5
  97. package/forms/esm2022/index.mjs +0 -13
  98. package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +0 -235
  99. package/forms/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +0 -85
  100. package/forms/esm2022/lib/forms/components/checkbox-group/checkbox-group.component.mjs +0 -87
  101. package/forms/esm2022/lib/forms/components/error/error.component.mjs +0 -12
  102. package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +0 -137
  103. package/forms/esm2022/lib/forms/components/index.mjs +0 -9
  104. package/forms/esm2022/lib/forms/components/label/label.component.mjs +0 -23
  105. package/forms/esm2022/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.mjs +0 -19
  106. package/forms/esm2022/lib/forms/components/partials/index.mjs +0 -2
  107. package/forms/esm2022/lib/forms/components/select/select.component.mjs +0 -324
  108. package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +0 -5
  109. package/forms/esm2022/lib/forms/constants/form-errors.constants.mjs +0 -7
  110. package/forms/esm2022/lib/forms/constants/form-field.constants.mjs +0 -2
  111. package/forms/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +0 -13
  112. package/forms/esm2022/lib/forms/constants/index.mjs +0 -6
  113. package/forms/esm2022/lib/forms/constants/select.constants.mjs +0 -3
  114. package/forms/esm2022/lib/forms/directives/autocomplete.directive.mjs +0 -64
  115. package/forms/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +0 -17
  116. package/forms/esm2022/lib/forms/directives/form-field-hint.directive.mjs +0 -15
  117. package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +0 -22
  118. package/forms/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +0 -14
  119. package/forms/esm2022/lib/forms/directives/input.directive.mjs +0 -47
  120. package/forms/esm2022/lib/forms/directives/select-input-binder.directive.mjs +0 -33
  121. package/forms/esm2022/lib/forms/forms.module.mjs +0 -64
  122. package/forms/esm2022/lib/forms/models/_index.mjs +0 -6
  123. package/forms/esm2022/lib/forms/models/autocomplete.models.mjs +0 -10
  124. package/forms/esm2022/lib/forms/models/form-errors.models.mjs +0 -2
  125. package/forms/esm2022/lib/forms/models/form.models.mjs +0 -2
  126. package/forms/esm2022/lib/forms/models/input.models.mjs +0 -2
  127. package/forms/esm2022/lib/forms/models/select.models.mjs +0 -2
  128. package/forms/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +0 -53
  129. package/forms/esm2022/lib/forms/services/form-state-handler.service.mjs +0 -19
  130. package/forms/esm2022/lib/forms/services/index.mjs +0 -3
  131. package/forms/esm2022/lib/forms/services/places.api.mjs +0 -62
  132. package/forms/esm2022/wlcm-angular-forms.mjs +0 -5
  133. package/phone-input/esm2022/index.mjs +0 -5
  134. package/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +0 -32
  135. package/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +0 -107
  136. package/phone-input/esm2022/lib/constants/country-code-options.constants.mjs +0 -20
  137. package/phone-input/esm2022/lib/constants/phone-adapter.constants.mjs +0 -3
  138. package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +0 -155
  139. package/phone-input/esm2022/lib/models/country-code.models.mjs +0 -10
  140. package/phone-input/esm2022/lib/models/phone-adapter.models.mjs +0 -3
  141. package/phone-input/esm2022/lib/models/phone.models.mjs +0 -5
  142. package/phone-input/esm2022/lib/phone-input.module.mjs +0 -20
  143. package/phone-input/esm2022/lib/pipes/phone-code.pipe.mjs +0 -18
  144. package/phone-input/esm2022/wlcm-angular-phone-input.mjs +0 -5
  145. package/search-field/esm2022/index.mjs +0 -3
  146. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +0 -41
  147. package/search-field/esm2022/lib/search-field.module.mjs +0 -18
  148. package/search-field/esm2022/wlcm-angular-search-field.mjs +0 -5
  149. package/stepper/esm2022/index.mjs +0 -11
  150. package/stepper/esm2022/lib/components/step/step.component.mjs +0 -53
  151. package/stepper/esm2022/lib/components/step-header/step-header.component.mjs +0 -81
  152. package/stepper/esm2022/lib/components/stepper/stepper.component.mjs +0 -15
  153. package/stepper/esm2022/lib/components/stepper-header/stepper-header.component.mjs +0 -16
  154. package/stepper/esm2022/lib/constants/step.constants.mjs +0 -9
  155. package/stepper/esm2022/lib/constants/stepper.stepper.mjs +0 -3
  156. package/stepper/esm2022/lib/directives/load-on-active-step.directive.mjs +0 -51
  157. package/stepper/esm2022/lib/models/step.models.mjs +0 -60
  158. package/stepper/esm2022/lib/models/stepper.models.mjs +0 -114
  159. package/stepper/esm2022/lib/stepper.module.mjs +0 -34
  160. package/stepper/esm2022/wlcm-angular-stepper.mjs +0 -5
  161. package/table/esm2022/index.mjs +0 -9
  162. package/table/esm2022/lib/components/table/table.component.mjs +0 -79
  163. package/table/esm2022/lib/components/table-head/table-head.component.mjs +0 -18
  164. package/table/esm2022/lib/components/table-head-actions/table-head-actions.component.mjs +0 -41
  165. package/table/esm2022/lib/components/table-head-data/table-head-data.component.mjs +0 -12
  166. package/table/esm2022/lib/components/table-row/table-row.component.mjs +0 -87
  167. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +0 -12
  168. package/table/esm2022/lib/components/table-row-data/table-row-data.component.mjs +0 -12
  169. package/table/esm2022/lib/components/table-row-spacer/table-row-spacer.component.mjs +0 -12
  170. package/table/esm2022/lib/constants/table-row.constants.mjs +0 -3
  171. package/table/esm2022/lib/constants/table.constants.mjs +0 -5
  172. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +0 -46
  173. package/table/esm2022/lib/models/table-config-manager.models.mjs +0 -18
  174. package/table/esm2022/lib/models/table-row.models.mjs +0 -2
  175. package/table/esm2022/lib/models/table-selection-model.mjs +0 -48
  176. package/table/esm2022/lib/models/table.models.mjs +0 -2
  177. package/table/esm2022/lib/pipes/table-row-injector.pipe.mjs +0 -24
  178. package/table/esm2022/lib/table.module.mjs +0 -38
  179. package/table/esm2022/lib/utils/table-errors.utils.mjs +0 -6
  180. package/table/esm2022/wlcm-angular-table.mjs +0 -5
@@ -1,60 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ContentChildren, Directive, QueryList } from '@angular/core';
3
- import { BehaviorSubject, combineLatest, map, startWith, switchMap } from 'rxjs';
4
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
5
- import { WLCM_FILTER } from '../constants/filter.constants';
6
- import * as i0 from "@angular/core";
7
- let WlcmFiltersGroup = class WlcmFiltersGroup {
8
- constructor() {
9
- this._size$ = new BehaviorSubject(0);
10
- this.size$ = this._size$.asObservable();
11
- }
12
- ngAfterContentInit() {
13
- this.handleFiltersListChange();
14
- }
15
- resetAll() {
16
- this.filters.forEach((filter) => filter.reset());
17
- }
18
- getAppliedFilters() {
19
- const appliedFilters = {};
20
- this.filters.forEach((filter) => {
21
- appliedFilters[filter.key] = filter.getAppliedFilters();
22
- });
23
- return appliedFilters;
24
- }
25
- cacheValues() {
26
- this.filters.forEach((filter) => filter.cacheValue());
27
- }
28
- restoreCachedValues() {
29
- this.filters.forEach((filter) => filter.restoreCachedValue());
30
- }
31
- get size() {
32
- return this._size$.value;
33
- }
34
- handleFiltersListChange() {
35
- this.filters.changes
36
- .pipe(untilDestroyed(this))
37
- .pipe(startWith(this.filters))
38
- .pipe(switchMap((filters) => this.handleSizeChange(filters.toArray())))
39
- .subscribe();
40
- }
41
- handleSizeChange(list) {
42
- return combineLatest(list.map((filter) => filter.size$)).pipe(map((sizes) => {
43
- this._size$.next(sizes.reduce((a, b) => a + b, 0));
44
- return list;
45
- }));
46
- }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: WlcmFiltersGroup, queries: [{ propertyName: "filters", predicate: WLCM_FILTER, descendants: true }], ngImport: i0 }); }
49
- };
50
- WlcmFiltersGroup = __decorate([
51
- UntilDestroy()
52
- ], WlcmFiltersGroup);
53
- export { WlcmFiltersGroup };
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersGroup, decorators: [{
55
- type: Directive
56
- }], propDecorators: { filters: [{
57
- type: ContentChildren,
58
- args: [WLCM_FILTER, { descendants: true }]
59
- }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1ncm91cC5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9tb2RlbHMvZmlsdGVycy1ncm91cC5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBT3JELElBQWUsZ0JBQWdCLEdBQS9CLE1BQWUsZ0JBQWdCO0lBQS9CO1FBQ1ksV0FBTSxHQUE0QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqRSxVQUFLLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7S0FtRGpFO0lBL0NDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBa0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sY0FBYyxHQUF1QixFQUFFLENBQUM7UUFFOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUU7WUFDMUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBa0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzthQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM3RixTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBa0I7UUFDekMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQWtCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVuRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzhHQXJEbUIsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isa0RBS25CLFdBQVc7O0FBTFIsZ0JBQWdCO0lBRnJDLFlBQVksRUFBRTtHQUVPLGdCQUFnQixDQXNEckM7OzJGQXREcUIsZ0JBQWdCO2tCQURyQyxTQUFTOzhCQU11RCxPQUFPO3NCQUFyRSxlQUFlO3VCQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgV0xDTV9GSUxURVIgfSBmcm9tICcuLi9jb25zdGFudHMvZmlsdGVyLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIubW9kZWxzJztcblxuZXhwb3J0IHR5cGUgV2xjbUFwcGxpZWRGaWx0ZXJzID0geyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG5cbkBVbnRpbERlc3Ryb3koKVxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV2xjbUZpbHRlcnNHcm91cCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaXplJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuXG4gIHJlYWRvbmx5IHNpemUkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLl9zaXplJC5hc09ic2VydmFibGUoKTtcblxuICBAQ29udGVudENoaWxkcmVuKFdMQ01fRklMVEVSLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHByb3RlY3RlZCBmaWx0ZXJzITogUXVlcnlMaXN0PFdsY21GaWx0ZXI+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUZpbHRlcnNMaXN0Q2hhbmdlKCk7XG4gIH1cblxuICByZXNldEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyOiBXbGNtRmlsdGVyKSA9PiBmaWx0ZXIucmVzZXQoKSk7XG4gIH1cblxuICBnZXRBcHBsaWVkRmlsdGVycygpOiBXbGNtQXBwbGllZEZpbHRlcnMge1xuICAgIGNvbnN0IGFwcGxpZWRGaWx0ZXJzOiBXbGNtQXBwbGllZEZpbHRlcnMgPSB7fTtcblxuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKChmaWx0ZXI6IFdsY21GaWx0ZXIpID0+IHtcbiAgICAgIGFwcGxpZWRGaWx0ZXJzW2ZpbHRlci5rZXldID0gZmlsdGVyLmdldEFwcGxpZWRGaWx0ZXJzKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXBwbGllZEZpbHRlcnM7XG4gIH1cblxuICBjYWNoZVZhbHVlcygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyOiBXbGNtRmlsdGVyKSA9PiBmaWx0ZXIuY2FjaGVWYWx1ZSgpKTtcbiAgfVxuXG4gIHJlc3RvcmVDYWNoZWRWYWx1ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goKGZpbHRlcjogV2xjbUZpbHRlcikgPT4gZmlsdGVyLnJlc3RvcmVDYWNoZWRWYWx1ZSgpKTtcbiAgfVxuXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemUkLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGaWx0ZXJzTGlzdENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnMuY2hhbmdlc1xuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJzKSlcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgoZmlsdGVyczogUXVlcnlMaXN0PFdsY21GaWx0ZXI+KSA9PiB0aGlzLmhhbmRsZVNpemVDaGFuZ2UoZmlsdGVycy50b0FycmF5KCkpKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2l6ZUNoYW5nZShsaXN0OiBXbGNtRmlsdGVyW10pOiBPYnNlcnZhYmxlPFdsY21GaWx0ZXJbXT4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGxpc3QubWFwKChmaWx0ZXI6IFdsY21GaWx0ZXIpID0+IGZpbHRlci5zaXplJCkpLnBpcGUoXG4gICAgICBtYXAoKHNpemVzOiBudW1iZXJbXSkgPT4ge1xuICAgICAgICB0aGlzLl9zaXplJC5uZXh0KHNpemVzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApKTtcblxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './filter.models';
2
- export * from './array-filter.models';
3
- export * from './filters-group.models';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbHRlci5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcnJheS1maWx0ZXIubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycy1ncm91cC5tb2RlbHMnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2xjbS1hbmd1bGFyLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL3dsY20tYW5ndWxhci1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,13 +0,0 @@
1
- export * from './lib/forms/forms.module';
2
- export * from './lib/forms/models/_index';
3
- export * from './lib/forms/constants/index';
4
- export * from './lib/forms/directives/form-field-custom-container.directive';
5
- export * from './lib/forms/directives/select-input-binder.directive';
6
- export * from './lib/forms/directives/form-field-prefix.directive';
7
- export * from './lib/forms/directives/form-field-suffix.directive';
8
- export * from './lib/forms/directives/form-field-hint.directive';
9
- export * from './lib/forms/constants/form-field.constants';
10
- export * from './lib/forms/directives/input.directive';
11
- export * from './lib/forms/services/places.api';
12
- export * from './lib/forms/components';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2Zvcm1zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2Zvcm1zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9tb2RlbHMvX2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2NvbnN0YW50cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtY3VzdG9tLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvZGlyZWN0aXZlcy9zZWxlY3QtaW5wdXQtYmluZGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtcHJlZml4LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtc3VmZml4LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9kaXJlY3RpdmVzL2Zvcm0tZmllbGQtaGludC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvY29uc3RhbnRzL2Zvcm0tZmllbGQuY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2RpcmVjdGl2ZXMvaW5wdXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL3NlcnZpY2VzL3BsYWNlcy5hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvY29tcG9uZW50cyc7XG4iXX0=
@@ -1,235 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectionStrategy, Component, ElementRef, Inject, Injector, Input, TemplateRef, ViewChild, forwardRef, inject, input, output, runInInjectionContext, } from '@angular/core';
3
- import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
4
- import { CommonModule } from '@angular/common';
5
- import { WlcmInputDirective } from '../../directives/input.directive';
6
- import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, MatAutocompleteTrigger, } from '@angular/material/autocomplete';
7
- import { BehaviorSubject, EMPTY, Subject, concatMap, filter, first, fromEvent, map, merge, switchMap, take, tap, timer, } from 'rxjs';
8
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
9
- import { AutocompleteDirective } from '../../directives/autocomplete.directive';
10
- import { DEFAULT_QUERY_PARAMS } from '@wlcm/angular/core';
11
- import { WLCM_FORM_FIELD, WLCM_INPUT, WLCM_INPUT_BINDER } from '../../constants';
12
- import { WlcmAutocomplete } from '../../models/autocomplete.models';
13
- import { RxLet } from '@rx-angular/template/let';
14
- import { cloneDeep } from 'lodash-es';
15
- import { CdkOverlayOrigin } from '@angular/cdk/overlay';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "@angular/common";
18
- import * as i2 from "@angular/material/autocomplete";
19
- import * as i3 from "@angular/material/core";
20
- import * as i4 from "@angular/forms";
21
- const PANEL_CLASS = 'wlcm-autocomplete-panel';
22
- let WlcmAutocompleteComponent = class WlcmAutocompleteComponent extends WlcmAutocomplete {
23
- constructor(injector, formField) {
24
- super();
25
- this.injector = injector;
26
- this.formField = formField;
27
- this.required = false;
28
- this.placeholder = '';
29
- this.queryParams = cloneDeep({
30
- ...DEFAULT_QUERY_PARAMS,
31
- limit: 15,
32
- });
33
- this.selectOptionFormat = input('ValueOnly');
34
- this.noResultsTemplate = input();
35
- this.selected = output();
36
- this.control = new FormControl('');
37
- this._loadMore$ = new Subject();
38
- this._options$ = new BehaviorSubject([]);
39
- this.options$ = this._options$.asObservable();
40
- this.closed$ = new Subject();
41
- this._focusStream$ = new BehaviorSubject(EMPTY);
42
- this._blurStream$ = new BehaviorSubject(EMPTY);
43
- this._loading$ = new BehaviorSubject(false);
44
- this.focus$ = this._focusStream$.pipe(switchMap((stream) => stream));
45
- this.blur$ = this._blurStream$.pipe(switchMap((stream) => stream));
46
- this.loading$ = this._loading$.asObservable();
47
- this.adjustedValue$ = new BehaviorSubject(null);
48
- this._paginatedData = null;
49
- this._reloadOptions$ = new Subject();
50
- this.viewReady$ = new Subject();
51
- this.handleLoadMoreEvent();
52
- this.handleControlValueChanges();
53
- this.handleAdjustedValue();
54
- }
55
- ngOnInit() {
56
- this.loadOptions().pipe(first()).subscribe();
57
- }
58
- ngAfterViewInit() {
59
- this.viewReady$.next();
60
- runInInjectionContext(this.injector, () => {
61
- if (this.formField) {
62
- this.autocompleteTrigger.connectedTo = new CdkOverlayOrigin(this.formField.inputContainer);
63
- }
64
- });
65
- this.attachFocusBlurListeners();
66
- }
67
- displayWith(value) {
68
- if (value instanceof Object) {
69
- return value.viewValue;
70
- }
71
- return value;
72
- }
73
- focus() {
74
- this.inputElement.nativeElement.focus();
75
- }
76
- isFocused() {
77
- return this.inputElement?.nativeElement === document.activeElement || this.autocomplete?.isOpen;
78
- }
79
- loadMore() {
80
- this._loadMore$.next();
81
- }
82
- writeValue(value) {
83
- const formattedValue = this.prepareValueForPatch(value);
84
- this.control.setValue(formattedValue);
85
- }
86
- registerOnChange(callback) {
87
- this._changed = callback;
88
- }
89
- registerOnTouched(callback) {
90
- this._touched = callback;
91
- }
92
- setDisabledState(isDisabled) {
93
- if (isDisabled) {
94
- return this.control.disable();
95
- }
96
- this.control.enable();
97
- }
98
- reloadOptions() {
99
- this._reloadOptions$.next();
100
- }
101
- blured() {
102
- if (!this.autocomplete.isOpen)
103
- this._touched?.();
104
- this.autocomplete.closed.pipe(take(1)).subscribe(() => this._touched?.());
105
- }
106
- validate(control) {
107
- if (!!this.control.value) {
108
- if (this.control.value instanceof Object)
109
- return null;
110
- return { ...control.errors, unselected: true, required: false };
111
- }
112
- return null;
113
- }
114
- registerOnValidatorChange(fn) {
115
- this._onValidatorChange = fn;
116
- }
117
- prepareValueForPatch(value) {
118
- if (value instanceof Object && this.selectOptionFormat() === 'ValueOnly') {
119
- this.adjustedValue$.next(value.value);
120
- }
121
- return value;
122
- }
123
- loadOptions(query = '') {
124
- this._loading$.next(true);
125
- this.queryParams = { ...this.queryParams, query, page: 1 };
126
- return this.fetchPaginatedOptions(this.queryParams).pipe(tap((paginatedData) => {
127
- this._paginatedData = paginatedData;
128
- this._options$.next(paginatedData.data);
129
- this._loading$.next(false);
130
- }));
131
- }
132
- handleLoadMoreEvent() {
133
- this._loadMore$
134
- .pipe(concatMap(() => {
135
- if (this._paginatedData && this._paginatedData.currPage + 1 <= this._paginatedData.totalPages) {
136
- this.queryParams.page++;
137
- this._loading$.next(true);
138
- return this.fetchPaginatedOptions(this.queryParams).pipe(tap((paginatedData) => {
139
- this._paginatedData = paginatedData;
140
- this._options$.next([...this._options$.value, ...paginatedData.data]);
141
- this._loading$.next(false);
142
- }));
143
- }
144
- return EMPTY;
145
- }))
146
- .subscribe();
147
- }
148
- handleControlValueChanges() {
149
- merge(this.control.valueChanges, this._reloadOptions$.pipe(map(() => this.control.value)))
150
- .pipe(untilDestroyed(this))
151
- .pipe(filter((value) => {
152
- let _value = value ?? '';
153
- if (value instanceof Object && this.selectOptionFormat() === 'ValueOnly')
154
- _value = value.value;
155
- this._changed?.(_value);
156
- this.selected.emit(_value);
157
- return !(value instanceof Object);
158
- }))
159
- .pipe(switchMap((value) => timer(200).pipe(switchMap(() => this.loadOptions(value)))))
160
- .subscribe();
161
- }
162
- attachFocusBlurListeners() {
163
- const voidFn = () => { };
164
- const inputFocus = fromEvent(this.inputElement.nativeElement, 'focus');
165
- const inputBlur = fromEvent(this.inputElement.nativeElement, 'blur');
166
- const focusObservables = [inputFocus, this.autocomplete.opened];
167
- const blurObservables = [inputBlur, this.autocomplete.closed];
168
- this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));
169
- this._blurStream$.next(merge(...blurObservables).pipe(map(() => this.control?.markAsTouched())));
170
- }
171
- handleAdjustedValue() {
172
- this.viewReady$
173
- .pipe(switchMap(() => this.adjustedValue$.pipe(filter(Boolean))))
174
- .subscribe((value) => this._changed?.(value));
175
- }
176
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmAutocompleteComponent, deps: [{ token: i0.Injector }, { token: WLCM_FORM_FIELD }], target: i0.ɵɵFactoryTarget.Component }); }
177
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: WlcmAutocompleteComponent, isStandalone: true, selector: "wlcm-autocomplete", inputs: { fetchPaginatedOptions: { classPropertyName: "fetchPaginatedOptions", publicName: "fetchPaginatedOptions", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: false, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: false, isRequired: false, transformFunction: (params) => cloneDeep(params) }, selectOptionFormat: { classPropertyName: "selectOptionFormat", publicName: "selectOptionFormat", isSignal: true, isRequired: false, transformFunction: null }, noResultsTemplate: { classPropertyName: "noResultsTemplate", publicName: "noResultsTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, host: { classAttribute: "wlcm-autocomplete" }, providers: [
178
- { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: { overlayPanelClass: PANEL_CLASS } },
179
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
180
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
181
- {
182
- provide: WLCM_INPUT_BINDER,
183
- useFactory: () => {
184
- const autocomplete = inject(WlcmAutocompleteComponent, { self: true });
185
- return { bind: () => autocomplete };
186
- },
187
- },
188
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: WLCM_INPUT, descendants: true, read: ElementRef }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "autocomplete", first: true, predicate: MatAutocomplete, descendants: true }], exportAs: ["wlcmAutocomplete"], usesInheritance: true, ngImport: i0, template: "<input\n wlcmInput\n type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"blured()\"\n/>\n\n<mat-autocomplete\n #autocomplete=\"matAutocomplete\"\n wlcmAutocomplete\n [disableRipple]=\"true\"\n [displayWith]=\"displayWith\"\n [hideSingleSelectionIndicator]=\"true\"\n (panelScrolled)=\"loadMore()\"\n>\n <ng-container *rxLet=\"$any(options$ | async); let options\">\n <mat-option\n *ngFor=\"let option of options\"\n [ngClass]=\"{ 'wlcm-custom-option-content': optionTemplate }\"\n [value]=\"option\"\n >\n @if (optionTemplate) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\"\n ></ng-container>\n } @else {\n {{ option.viewValue }}\n }\n </mat-option>\n\n <mat-option [disabled]=\"true\" *ngIf=\"options.length === 0\">\n @if (noResultsTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n noResultsTemplate()!;\n context: { $implicit: control.value, loading: loading$ | async }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n defaultNoResultsTemplate;\n context: { $implicit: control.value, loading: loading$ | async }\n \"\n ></ng-container>\n }\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n\n<ng-template #defaultNoResultsTemplate let-loading=\"loading\">\n @if (loading) {\n Please wait...\n } @else {\n No results found\n }\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: AutocompleteDirective, selector: "[wlcmAutocomplete]", outputs: ["panelScrolled"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: WlcmInputDirective, selector: "[wlcmInput]" }, { kind: "directive", type: RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
189
- };
190
- WlcmAutocompleteComponent = __decorate([
191
- UntilDestroy(),
192
- __metadata("design:paramtypes", [Injector, Object])
193
- ], WlcmAutocompleteComponent);
194
- export { WlcmAutocompleteComponent };
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmAutocompleteComponent, decorators: [{
196
- type: Component,
197
- args: [{ selector: 'wlcm-autocomplete', exportAs: 'wlcmAutocomplete', host: { class: 'wlcm-autocomplete' }, standalone: true, imports: [CommonModule, MatAutocompleteModule, AutocompleteDirective, ReactiveFormsModule, WlcmInputDirective, RxLet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
198
- { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: { overlayPanelClass: PANEL_CLASS } },
199
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
200
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
201
- {
202
- provide: WLCM_INPUT_BINDER,
203
- useFactory: () => {
204
- const autocomplete = inject(WlcmAutocompleteComponent, { self: true });
205
- return { bind: () => autocomplete };
206
- },
207
- },
208
- ], template: "<input\n wlcmInput\n type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"blured()\"\n/>\n\n<mat-autocomplete\n #autocomplete=\"matAutocomplete\"\n wlcmAutocomplete\n [disableRipple]=\"true\"\n [displayWith]=\"displayWith\"\n [hideSingleSelectionIndicator]=\"true\"\n (panelScrolled)=\"loadMore()\"\n>\n <ng-container *rxLet=\"$any(options$ | async); let options\">\n <mat-option\n *ngFor=\"let option of options\"\n [ngClass]=\"{ 'wlcm-custom-option-content': optionTemplate }\"\n [value]=\"option\"\n >\n @if (optionTemplate) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate; context: { $implicit: option }\"\n ></ng-container>\n } @else {\n {{ option.viewValue }}\n }\n </mat-option>\n\n <mat-option [disabled]=\"true\" *ngIf=\"options.length === 0\">\n @if (noResultsTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n noResultsTemplate()!;\n context: { $implicit: control.value, loading: loading$ | async }\n \"\n ></ng-container>\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n defaultNoResultsTemplate;\n context: { $implicit: control.value, loading: loading$ | async }\n \"\n ></ng-container>\n }\n </mat-option>\n </ng-container>\n</mat-autocomplete>\n\n<ng-template #defaultNoResultsTemplate let-loading=\"loading\">\n @if (loading) {\n Please wait...\n } @else {\n No results found\n }\n</ng-template>\n" }]
209
- }], ctorParameters: () => [{ type: i0.Injector }, { type: undefined, decorators: [{
210
- type: Inject,
211
- args: [WLCM_FORM_FIELD]
212
- }] }], propDecorators: { fetchPaginatedOptions: [{
213
- type: Input
214
- }], label: [{
215
- type: Input
216
- }], required: [{
217
- type: Input
218
- }], placeholder: [{
219
- type: Input
220
- }], optionTemplate: [{
221
- type: Input
222
- }], queryParams: [{
223
- type: Input,
224
- args: [{ transform: (params) => cloneDeep(params) }]
225
- }], inputElement: [{
226
- type: ViewChild,
227
- args: [WLCM_INPUT, { read: ElementRef }]
228
- }], autocompleteTrigger: [{
229
- type: ViewChild,
230
- args: [MatAutocompleteTrigger]
231
- }], autocomplete: [{
232
- type: ViewChild,
233
- args: [MatAutocomplete]
234
- }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsbUJBQW1CLEdBR3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsZUFBZSxFQUNmLHFCQUFxQixFQUVyQixzQkFBc0IsR0FDdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssRUFFTCxPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEVBQ0wsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEVBQ0gsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQWtELE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0sa0NBQWtDLENBQUM7QUFJM0YsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUl4RCxNQUFNLFdBQVcsR0FBVyx5QkFBeUIsQ0FBQztBQTBCL0MsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFDWCxTQUFRLGdCQUFnQjtJQW9FeEIsWUFDVSxRQUFrQixFQUNPLFNBQXdCO1FBRXpELEtBQUssRUFBRSxDQUFDO1FBSEEsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNPLGNBQVMsR0FBVCxTQUFTLENBQWU7UUEvRGxELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFJb0MsZ0JBQVcsR0FBb0IsU0FBUyxDQUFDO1lBQzdHLEdBQUcsb0JBQW9CO1lBQ3ZCLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsdUJBQWtCLEdBQXdDLEtBQUssQ0FBeUIsV0FBVyxDQUFDLENBQUM7UUFFckcsc0JBQWlCLEdBQ2YsS0FBSyxFQUFFLENBQUM7UUFFVixhQUFRLEdBQTRDLE1BQU0sRUFBRSxDQUFDO1FBRXBELFlBQU8sR0FBdUMsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUQsZUFBVSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTFDLGNBQVMsR0FBOEIsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFdkUsYUFBUSxHQUF5QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRS9ELFlBQU8sR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6QyxrQkFBYSxHQUFzQyxJQUFJLGVBQWUsQ0FBQyxLQUF5QixDQUFDLENBQUM7UUFFbEcsaUJBQVksR0FBc0MsSUFBSSxlQUFlLENBQUMsS0FBeUIsQ0FBQyxDQUFDO1FBRWpHLGNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEYsV0FBTSxHQUF3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFHLFVBQUssR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBMkIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUV4RyxhQUFRLEdBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFRdEQsbUJBQWMsR0FDcEIsSUFBSSxlQUFlLENBQStCLElBQUksQ0FBQyxDQUFDO1FBRWxELG1CQUFjLEdBQXFDLElBQUksQ0FBQztRQUV4RCxvQkFBZSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRS9DLGVBQVUsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWNoRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdkIscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzdGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBc0I7UUFDaEMsSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxLQUFLLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDbEcsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBNEI7UUFDckMsTUFBTSxjQUFjLEdBQTBCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0Q7UUFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQW9CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUVqRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFlBQVksTUFBTTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV0RCxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFjO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQTRCO1FBQ3ZELElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFnQixFQUFFO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUUzRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN0RCxHQUFHLENBQUMsQ0FBQyxhQUF3QyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7WUFFcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxVQUFVO2FBQ1osSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzlGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXhCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUUxQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN0RCxHQUFHLENBQUMsQ0FBQyxhQUF3QyxFQUFFLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO29CQUVwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFFdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDdkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsS0FBNEIsRUFBRSxFQUFFO1lBQ3RDLElBQUksTUFBTSxHQUEwQixLQUFLLElBQUksRUFBRSxDQUFDO1lBRWhELElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxXQUFXO2dCQUFFLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBRS9GLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUUzQixPQUFPLENBQUMsQ0FBQyxLQUFLLFlBQVksTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQ0g7YUFDQSxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsS0FBNEIsRUFBRSxFQUFFLENBQ3pDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBZSxDQUFDLENBQUMsQ0FBQyxDQUNwRSxDQUNGO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFeEIsTUFBTSxVQUFVLEdBQXNCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUxRixNQUFNLFNBQVMsR0FBc0IsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhGLE1BQU0sZ0JBQWdCLEdBQTBCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkYsTUFBTSxlQUFlLEdBQTBCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsVUFBVTthQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoRSxTQUFTLENBQUMsQ0FBQyxLQUE0QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDOzhHQWxRVSx5QkFBeUIsMENBdUUxQixlQUFlO2tHQXZFZCx5QkFBeUIscTRCQWNoQixDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsOFpBNUJ2RDtZQUNULEVBQUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzNGLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3JHLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqRztnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFO29CQUNmLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUV2RSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN0QyxDQUFDO2FBQ0Y7U0FDRix3RUFpRVUsVUFBVSwyQkFBVSxVQUFVLG1FQUU5QixzQkFBc0IsK0VBRXRCLGVBQWUsdUdDbks1QixvbERBMkRBLHlERG1CWSxZQUFZLHlqQkFBRSxxQkFBcUIseTFCQUFFLHFCQUFxQiwwRkFBRSxtQkFBbUIsMGtCQUFFLGtCQUFrQix3REFBRSxLQUFLOztBQWtCekcseUJBQXlCO0lBeEJyQyxZQUFZLEVBQUU7cUNBOEZPLFFBQVE7R0F0RWpCLHlCQUF5QixDQW1RckM7OzJGQW5RWSx5QkFBeUI7a0JBdkJyQyxTQUFTOytCQUNFLG1CQUFtQixZQUNuQixrQkFBa0IsUUFDdEIsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxtQkFHcEcsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsRUFBRTt3QkFDM0YsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUNyRyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUNqRzs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixVQUFVLEVBQUUsR0FBRyxFQUFFO2dDQUNmLE1BQU0sWUFBWSxHQUFHLE1BQU0sNEJBQTRCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0NBRXZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQ3RDLENBQUM7eUJBQ0Y7cUJBQ0Y7OzBCQXlFRSxNQUFNOzJCQUFDLGVBQWU7eUNBbkVoQixxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVnRSxXQUFXO3NCQUFoRixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsTUFBdUIsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQWlEaEIsWUFBWTtzQkFBL0QsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUVBLG1CQUFtQjtzQkFBN0QsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRUcsWUFBWTtzQkFBL0MsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPbkluaXQsXG4gIE91dHB1dEVtaXR0ZXJSZWYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2xjbUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vbGFiZWwvbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21JbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIE1BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLFxuICBNYXRBdXRvY29tcGxldGUsXG4gIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgTWF0QXV0b2NvbXBsZXRlT3JpZ2luLFxuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBFTVBUWSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29uY2F0TWFwLFxuICBmaWx0ZXIsXG4gIGZpcnN0LFxuICBmcm9tRXZlbnQsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxuICB0aW1lcixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBERUZBVUxUX1FVRVJZX1BBUkFNUywgV2xjbUF1dG9jb21wbGV0ZU9wdGlvbiwgV2xjbVNlbGVjdE9wdGlvbkZvcm1hdCB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fRklFTEQsIFdMQ01fSU5QVVQsIFdMQ01fSU5QVVRfQklOREVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21BdXRvY29tcGxldGUsIFdsY21BdXRvY29tcGxldGVWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUubW9kZWxzJztcbmltcG9ydCB7IFdsY21RdWVyeVBhcmFtcywgV2xjbVBhZ2luYXRlZERhdGEgfSBmcm9tICdAd2xjbS9jb21tb24nO1xuaW1wb3J0IHsgV2xjbUZvcm1GaWVsZElucHV0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lucHV0Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWxzJztcbmltcG9ydCB7IFJ4TGV0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvbGV0JztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG50eXBlIE9wdGlvbiA9IFdsY21BdXRvY29tcGxldGVPcHRpb247XG5cbmNvbnN0IFBBTkVMX0NMQVNTOiBzdHJpbmcgPSAnd2xjbS1hdXRvY29tcGxldGUtcGFuZWwnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tYXV0b2NvbXBsZXRlJyxcbiAgZXhwb3J0QXM6ICd3bGNtQXV0b2NvbXBsZXRlJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tYXV0b2NvbXBsZXRlJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRBdXRvY29tcGxldGVNb2R1bGUsIEF1dG9jb21wbGV0ZURpcmVjdGl2ZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgV2xjbUlucHV0RGlyZWN0aXZlLCBSeExldF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsIHVzZVZhbHVlOiB7IG92ZXJsYXlQYW5lbENsYXNzOiBQQU5FTF9DTEFTUyB9IH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUF1dG9jb21wbGV0ZUNvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtQXV0b2NvbXBsZXRlQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXTENNX0lOUFVUX0JJTkRFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gaW5qZWN0KFdsY21BdXRvY29tcGxldGVDb21wb25lbnQsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICAgICAgICByZXR1cm4geyBiaW5kOiAoKSA9PiBhdXRvY29tcGxldGUgfTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBleHRlbmRzIFdsY21BdXRvY29tcGxldGVcbiAgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIEFmdGVyVmlld0luaXQsIFdsY21Gb3JtRmllbGRJbnB1dFxue1xuICBASW5wdXQoKSBmZXRjaFBhZ2luYXRlZE9wdGlvbnMhOiAocGFyYW1zOiBXbGNtUXVlcnlQYXJhbXMpID0+IE9ic2VydmFibGU8V2xjbVBhZ2luYXRlZERhdGE8T3B0aW9uPj47XG5cbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgb3B0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogV2xjbUF1dG9jb21wbGV0ZU9wdGlvbiB9PjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IChwYXJhbXM6IFdsY21RdWVyeVBhcmFtcykgPT4gY2xvbmVEZWVwKHBhcmFtcykgfSkgcXVlcnlQYXJhbXM6IFdsY21RdWVyeVBhcmFtcyA9IGNsb25lRGVlcCh7XG4gICAgLi4uREVGQVVMVF9RVUVSWV9QQVJBTVMsXG4gICAgbGltaXQ6IDE1LFxuICB9KTtcblxuICBzZWxlY3RPcHRpb25Gb3JtYXQ6IElucHV0U2lnbmFsPFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+ID0gaW5wdXQ8V2xjbVNlbGVjdE9wdGlvbkZvcm1hdD4oJ1ZhbHVlT25seScpO1xuXG4gIG5vUmVzdWx0c1RlbXBsYXRlOiBJbnB1dFNpZ25hbDxUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogV2xjbUF1dG9jb21wbGV0ZVZhbHVlOyBsb2FkaW5nOiBib29sZWFuIH0+IHwgdW5kZWZpbmVkPiA9XG4gICAgaW5wdXQoKTtcblxuICBzZWxlY3RlZDogT3V0cHV0RW1pdHRlclJlZjxXbGNtQXV0b2NvbXBsZXRlVmFsdWU+ID0gb3V0cHV0KCk7XG5cbiAgcmVhZG9ubHkgY29udHJvbDogRm9ybUNvbnRyb2w8V2xjbUF1dG9jb21wbGV0ZVZhbHVlPiA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZE1vcmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zJDogQmVoYXZpb3JTdWJqZWN0PE9wdGlvbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3B0aW9uW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9ucyQ6IE9ic2VydmFibGU8T3B0aW9uW10+ID0gdGhpcy5fb3B0aW9ucyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsb3NlZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ibHVyU3RyZWFtJDogQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8dm9pZD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChFTVBUWSBhcyBPYnNlcnZhYmxlPHZvaWQ+KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgZm9jdXMkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gdGhpcy5fZm9jdXNTdHJlYW0kLnBpcGUoc3dpdGNoTWFwKChzdHJlYW06IE9ic2VydmFibGU8dW5rbm93bj4pID0+IHN0cmVhbSkpO1xuXG4gIGJsdXIkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gdGhpcy5fYmx1clN0cmVhbSQucGlwZShzd2l0Y2hNYXAoKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPikgPT4gc3RyZWFtKSk7XG5cbiAgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIF9jaGFuZ2VkPzogKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfb25WYWxpZGF0b3JDaGFuZ2U/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgYWRqdXN0ZWRWYWx1ZSQ6IEJlaGF2aW9yU3ViamVjdDxXbGNtQXV0b2NvbXBsZXRlVmFsdWUgfCBudWxsPiA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxXbGNtQXV0b2NvbXBsZXRlVmFsdWUgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIF9wYWdpbmF0ZWREYXRhOiBXbGNtUGFnaW5hdGVkRGF0YTxPcHRpb24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfcmVsb2FkT3B0aW9ucyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgdmlld1JlYWR5JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQFZpZXdDaGlsZChXTENNX0lOUFVULCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHVibGljIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyKSBwcml2YXRlIGF1dG9jb21wbGV0ZVRyaWdnZXIhOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlKSBwcml2YXRlIGF1dG9jb21wbGV0ZSE6IE1hdEF1dG9jb21wbGV0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KFdMQ01fRk9STV9GSUVMRCkgcHJpdmF0ZSBmb3JtRmllbGQ6IFdsY21Gb3JtRmllbGQsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmhhbmRsZUxvYWRNb3JlRXZlbnQoKTtcblxuICAgIHRoaXMuaGFuZGxlQ29udHJvbFZhbHVlQ2hhbmdlcygpO1xuXG4gICAgdGhpcy5oYW5kbGVBZGp1c3RlZFZhbHVlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRPcHRpb25zKCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdSZWFkeSQubmV4dCgpO1xuXG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1GaWVsZCkge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIuY29ubmVjdGVkVG8gPSBuZXcgQ2RrT3ZlcmxheU9yaWdpbih0aGlzLmZvcm1GaWVsZC5pbnB1dENvbnRhaW5lcik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmF0dGFjaEZvY3VzQmx1ckxpc3RlbmVycygpO1xuICB9XG5cbiAgZGlzcGxheVdpdGgodmFsdWU6IE9wdGlvbiB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICByZXR1cm4gdmFsdWUudmlld1ZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGlzRm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgdGhpcy5hdXRvY29tcGxldGU/LmlzT3BlbjtcbiAgfVxuXG4gIGxvYWRNb3JlKCk6IHZvaWQge1xuICAgIHRoaXMuX2xvYWRNb3JlJC5uZXh0KCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlID0gdGhpcy5wcmVwYXJlVmFsdWVGb3JQYXRjaCh2YWx1ZSk7XG5cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZm9ybWF0dGVkVmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFuZ2VkID0gY2FsbGJhY2s7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3RvdWNoZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gIH1cblxuICByZWxvYWRPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbG9hZE9wdGlvbnMkLm5leHQoKTtcbiAgfVxuXG4gIGJsdXJlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXV0b2NvbXBsZXRlLmlzT3BlbikgdGhpcy5fdG91Y2hlZD8uKCk7XG5cbiAgICB0aGlzLmF1dG9jb21wbGV0ZS5jbG9zZWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdG91Y2hlZD8uKCkpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghIXRoaXMuY29udHJvbC52YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIHJldHVybiB7IC4uLmNvbnRyb2wuZXJyb3JzLCB1bnNlbGVjdGVkOiB0cnVlLCByZXF1aXJlZDogZmFsc2UgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlVmFsdWVGb3JQYXRjaCh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgdGhpcy5zZWxlY3RPcHRpb25Gb3JtYXQoKSA9PT0gJ1ZhbHVlT25seScpIHtcbiAgICAgIHRoaXMuYWRqdXN0ZWRWYWx1ZSQubmV4dCh2YWx1ZS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3B0aW9ucyhxdWVyeTogc3RyaW5nID0gJycpOiBPYnNlcnZhYmxlPFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4+IHtcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHsgLi4udGhpcy5xdWVyeVBhcmFtcywgcXVlcnksIHBhZ2U6IDEgfTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoUGFnaW5hdGVkT3B0aW9ucyh0aGlzLnF1ZXJ5UGFyYW1zKS5waXBlKFxuICAgICAgdGFwKChwYWdpbmF0ZWREYXRhOiBXbGNtUGFnaW5hdGVkRGF0YTxPcHRpb24+KSA9PiB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRlZERhdGEgPSBwYWdpbmF0ZWREYXRhO1xuXG4gICAgICAgIHRoaXMuX29wdGlvbnMkLm5leHQocGFnaW5hdGVkRGF0YS5kYXRhKTtcblxuICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxvYWRNb3JlRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fbG9hZE1vcmUkXG4gICAgICAucGlwZShcbiAgICAgICAgY29uY2F0TWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcGFnaW5hdGVkRGF0YSAmJiB0aGlzLl9wYWdpbmF0ZWREYXRhLmN1cnJQYWdlICsgMSA8PSB0aGlzLl9wYWdpbmF0ZWREYXRhLnRvdGFsUGFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZSsrO1xuXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFBhZ2luYXRlZE9wdGlvbnModGhpcy5xdWVyeVBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgdGFwKChwYWdpbmF0ZWREYXRhOiBXbGNtUGFnaW5hdGVkRGF0YTxPcHRpb24+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGFnaW5hdGVkRGF0YSA9IHBhZ2luYXRlZERhdGE7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KFsuLi50aGlzLl9vcHRpb25zJC52YWx1ZSwgLi4ucGFnaW5hdGVkRGF0YS5kYXRhXSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbnRyb2xWYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgbWVyZ2UodGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcywgdGhpcy5fcmVsb2FkT3B0aW9ucyQucGlwZShtYXAoKCkgPT4gdGhpcy5jb250cm9sLnZhbHVlKSkpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUpID0+IHtcbiAgICAgICAgICBsZXQgX3ZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUgPSB2YWx1ZSA/PyAnJztcblxuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiB0aGlzLnNlbGVjdE9wdGlvbkZvcm1hdCgpID09PSAnVmFsdWVPbmx5JykgX3ZhbHVlID0gdmFsdWUudmFsdWU7XG5cbiAgICAgICAgICB0aGlzLl9jaGFuZ2VkPy4oX3ZhbHVlKTtcblxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdChfdmFsdWUpO1xuXG4gICAgICAgICAgcmV0dXJuICEodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlOiBXbGNtQXV0b2NvbXBsZXRlVmFsdWUpID0+XG4gICAgICAgICAgdGltZXIoMjAwKS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWRPcHRpb25zKHZhbHVlIGFzIHN0cmluZykpKSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRm9jdXNCbHVyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZvaWRGbiA9ICgpID0+IHt9O1xuXG4gICAgY29uc3QgaW5wdXRGb2N1czogT2JzZXJ2YWJsZTxFdmVudD4gPSBmcm9tRXZlbnQodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2ZvY3VzJyk7XG5cbiAgICBjb25zdCBpbnB1dEJsdXI6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdibHVyJyk7XG5cbiAgICBjb25zdCBmb2N1c09ic2VydmFibGVzOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSBbaW5wdXRGb2N1cywgdGhpcy5hdXRvY29tcGxldGUub3BlbmVkXTtcblxuICAgIGNvbnN0IGJsdXJPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW2lucHV0Qmx1ciwgdGhpcy5hdXRvY29tcGxldGUuY2xvc2VkXTtcblxuICAgIHRoaXMuX2ZvY3VzU3RyZWFtJC5uZXh0KG1lcmdlKC4uLmZvY3VzT2JzZXJ2YWJsZXMpLnBpcGUobWFwKHZvaWRGbikpKTtcblxuICAgIHRoaXMuX2JsdXJTdHJlYW0kLm5leHQobWVyZ2UoLi4uYmx1ck9ic2VydmFibGVzKS5waXBlKG1hcCgoKSA9PiB0aGlzLmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWRqdXN0ZWRWYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdSZWFkeSRcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmFkanVzdGVkVmFsdWUkLnBpcGUoZmlsdGVyKEJvb2xlYW4pKSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKSA9PiB0aGlzLl9jaGFuZ2VkPy4odmFsdWUpKTtcbiAgfVxufVxuIiwiPGlucHV0XG4gIHdsY21JbnB1dFxuICB0eXBlPVwidGV4dFwiXG4gIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAoYmx1cik9XCJibHVyZWQoKVwiXG4vPlxuXG48bWF0LWF1dG9jb21wbGV0ZVxuICAjYXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgd2xjbUF1dG9jb21wbGV0ZVxuICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcbiAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoXCJcbiAgW2hpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JdPVwidHJ1ZVwiXG4gIChwYW5lbFNjcm9sbGVkKT1cImxvYWRNb3JlKClcIlxuPlxuICA8bmctY29udGFpbmVyICpyeExldD1cIiRhbnkob3B0aW9ucyQgfCBhc3luYyk7IGxldCBvcHRpb25zXCI+XG4gICAgPG1hdC1vcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICBbbmdDbGFzc109XCJ7ICd3bGNtLWN1c3RvbS1vcHRpb24tY29udGVudCc6IG9wdGlvblRlbXBsYXRlIH1cIlxuICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXG4gICAgPlxuICAgICAgQGlmIChvcHRpb25UZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHt7IG9wdGlvbi52aWV3VmFsdWUgfX1cbiAgICAgIH1cbiAgICA8L21hdC1vcHRpb24+XG5cbiAgICA8bWF0LW9wdGlvbiBbZGlzYWJsZWRdPVwidHJ1ZVwiICpuZ0lmPVwib3B0aW9ucy5sZW5ndGggPT09IDBcIj5cbiAgICAgIEBpZiAobm9SZXN1bHRzVGVtcGxhdGUoKSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIG5vUmVzdWx0c1RlbXBsYXRlKCkhO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbnRyb2wudmFsdWUsIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMgfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRlZmF1bHROb1Jlc3VsdHNUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb250cm9sLnZhbHVlLCBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Tm9SZXN1bHRzVGVtcGxhdGUgbGV0LWxvYWRpbmc9XCJsb2FkaW5nXCI+XG4gIEBpZiAobG9hZGluZykge1xuICAgIFBsZWFzZSB3YWl0Li4uXG4gIH0gQGVsc2Uge1xuICAgIE5vIHJlc3VsdHMgZm91bmRcbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,85 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectorRef, Component, EventEmitter, Inject, Optional, Output, forwardRef, input, } from '@angular/core';
3
- import { WLCM_FORM_CONTROL, WLCM_FORM_CONTROL_PROVIDER } from '../../constants';
4
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
5
- import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
6
- import { MatCheckboxModule } from '@angular/material/checkbox';
7
- import { CommonModule } from '@angular/common';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/material/checkbox";
10
- import * as i2 from "@angular/forms";
11
- let WlcmCheckboxComponent = class WlcmCheckboxComponent {
12
- constructor(changeDetectorRef, parentFormMember) {
13
- this.changeDetectorRef = changeDetectorRef;
14
- this.parentFormMember = parentFormMember;
15
- this.value = input();
16
- this.changed = new EventEmitter();
17
- this.control = new FormControl(false);
18
- this.validate = () => null;
19
- if (this.parentFormMember) {
20
- this.handleStateChange();
21
- }
22
- }
23
- handleChange(value) {
24
- this.changed.emit(value.checked);
25
- this._changed?.(value.checked);
26
- this._touched?.();
27
- }
28
- writeValue(value) {
29
- this.control.setValue(value);
30
- }
31
- registerOnChange(callback) {
32
- this._changed = callback;
33
- }
34
- registerOnTouched(callback) {
35
- this._touched = callback;
36
- }
37
- registerOnValidatorChange(callback) {
38
- this._validatorChanged = callback;
39
- }
40
- setDisabledState(isDisabled) {
41
- if (isDisabled) {
42
- return this.control.disable();
43
- }
44
- this.control.enable();
45
- }
46
- get checked() {
47
- return this.control.value;
48
- }
49
- set checked(value) {
50
- this.control.setValue(value);
51
- }
52
- handleStateChange() {
53
- this.parentFormMember.stateChanges$.pipe(untilDestroyed(this)).subscribe(() => {
54
- this._validatorChanged?.();
55
- this.changeDetectorRef.markForCheck();
56
- });
57
- }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: WLCM_FORM_CONTROL, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: WlcmCheckboxComponent, isStandalone: true, selector: "wlcm-checkbox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed" }, host: { classAttribute: "wlcm-checkbox" }, providers: [
60
- WLCM_FORM_CONTROL_PROVIDER,
61
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },
62
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },
63
- ], ngImport: i0, template: "<mat-checkbox [formControl]=\"control\" (change)=\"handleChange($event)\">\n <ng-content></ng-content>\n</mat-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
64
- };
65
- WlcmCheckboxComponent = __decorate([
66
- UntilDestroy(),
67
- __metadata("design:paramtypes", [ChangeDetectorRef, Object])
68
- ], WlcmCheckboxComponent);
69
- export { WlcmCheckboxComponent };
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmCheckboxComponent, decorators: [{
71
- type: Component,
72
- args: [{ selector: 'wlcm-checkbox', host: { class: 'wlcm-checkbox' }, standalone: true, imports: [CommonModule, MatCheckboxModule, ReactiveFormsModule], providers: [
73
- WLCM_FORM_CONTROL_PROVIDER,
74
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },
75
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxComponent), multi: true },
76
- ], template: "<mat-checkbox [formControl]=\"control\" (change)=\"handleChange($event)\">\n <ng-content></ng-content>\n</mat-checkbox>\n" }]
77
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
78
- type: Optional
79
- }, {
80
- type: Inject,
81
- args: [WLCM_FORM_CONTROL]
82
- }] }], propDecorators: { changed: [{
83
- type: Output
84
- }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUVMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFnQnhDLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBYWhDLFlBQ1UsaUJBQW9DLEVBQ0csZ0JBQWlDO1FBRHhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBZGxGLFVBQUssR0FBb0MsS0FBSyxFQUFFLENBQUM7UUFFdkMsWUFBTyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXBELFlBQU8sR0FBZ0IsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUF1QnhELGFBQVEsR0FBRyxHQUE0QixFQUFFLENBQUMsSUFBSSxDQUFDO1FBakI3QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQXdCO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsUUFBa0M7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQW9CO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxRQUFvQjtRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1RSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBRTNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdEVVLHFCQUFxQixtREFlVixpQkFBaUI7a0dBZjVCLHFCQUFxQiw0UUFOckI7WUFDVCwwQkFBMEI7WUFDMUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzdGLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQ2xHLDBCQ3RDSCw0SEFHQSx5REQ0QlksWUFBWSw4QkFBRSxpQkFBaUIsb1lBQUUsbUJBQW1COztBQVNuRCxxQkFBcUI7SUFkakMsWUFBWSxFQUFFO3FDQTRCZ0IsaUJBQWlCO0dBZG5DLHFCQUFxQixDQXVFakM7OzJGQXZFWSxxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0UsZUFBZSxRQUNuQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLGFBR3BEO3dCQUNULDBCQUEwQjt3QkFDMUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDN0YsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3FCQUNsRzs7MEJBaUJFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCO3lDQVo3QixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0U2lnbmFsLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fQ09OVFJPTCwgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlLCBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IFdsY21Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVscyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tY2hlY2tib3gnLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1jaGVja2JveCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21DaGVja2JveENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUNoZWNrYm94Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUNoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIHZhbHVlOiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcblxuICBAT3V0cHV0KCkgY2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgX2NoYW5nZWQ/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdMQ01fRk9STV9DT05UUk9MKSBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNoYW5nZSh2YWx1ZTogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZWQuZW1pdCh2YWx1ZS5jaGVja2VkKTtcblxuICAgIHRoaXMuX2NoYW5nZWQ/Lih2YWx1ZS5jaGVja2VkKTtcblxuICAgIHRoaXMuX3RvdWNoZWQ/LigpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZSA9ICgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiBudWxsO1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gIH1cblxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudEZvcm1NZW1iZXIuc3RhdGVDaGFuZ2VzJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxtYXQtY2hlY2tib3ggW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbWF0LWNoZWNrYm94PlxuIl19
@@ -1,87 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { CommonModule } from '@angular/common';
3
- import { Component, computed, contentChildren, effect, forwardRef, signal, } from '@angular/core';
4
- import { WlcmCheckboxComponent } from '../checkbox/checkbox.component';
5
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
6
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
7
- import { Subject, merge, takeUntil, tap } from 'rxjs';
8
- import * as i0 from "@angular/core";
9
- let WlcmCheckboxGroupComponent = class WlcmCheckboxGroupComponent {
10
- constructor() {
11
- this.checkboxes = contentChildren(WlcmCheckboxComponent);
12
- this.checkboxesMap = computed(() => {
13
- return new Map(this.checkboxes().map((checkbox) => [checkbox.value(), checkbox]));
14
- });
15
- this.values = signal(new Set());
16
- this.checkboxesListUpdated = new Subject();
17
- this.validate = () => null;
18
- effect(() => this.handleCheckboxesToggle(this.checkboxes()));
19
- }
20
- ngAfterContentInit() {
21
- this.updateCheckboxes(this.values());
22
- }
23
- writeValue(value) {
24
- this.values.set(new Set(value));
25
- if (this.checkboxes())
26
- this.updateCheckboxes(this.values());
27
- }
28
- registerOnChange(callback) {
29
- this._changed = callback;
30
- }
31
- registerOnTouched(callback) {
32
- this._touched = callback;
33
- }
34
- registerOnValidatorChange(callback) {
35
- this._validatorChanged = callback;
36
- }
37
- updateControl(values) {
38
- this._changed?.(Array.from(values.values()));
39
- this._touched?.();
40
- }
41
- updateCheckboxes(values) {
42
- const checkboxesMap = this.checkboxesMap();
43
- for (const checkbox of checkboxesMap.values()) {
44
- checkbox.checked = values.has(checkbox.value());
45
- }
46
- }
47
- handleCheckboxesToggle(checkboxes) {
48
- this.checkboxesListUpdated.next();
49
- const handleCheck = (checkbox) => {
50
- this.values.update((values) => {
51
- if (checkbox.checked) {
52
- values.add(checkbox.value());
53
- }
54
- else {
55
- values.delete(checkbox.value());
56
- }
57
- this.updateControl(values);
58
- return values;
59
- });
60
- };
61
- const changeHandlers = Array.from(checkboxes.values()).map((checkbox) => {
62
- return checkbox.changed.asObservable().pipe(tap(() => handleCheck(checkbox)));
63
- });
64
- merge(...changeHandlers)
65
- .pipe(untilDestroyed(this))
66
- .pipe(takeUntil(this.checkboxesListUpdated))
67
- .subscribe();
68
- }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmCheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.6", type: WlcmCheckboxGroupComponent, isStandalone: true, selector: "wlcm-checkbox-group", host: { classAttribute: "wlcm-checkbox-group" }, providers: [
71
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },
72
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },
73
- ], queries: [{ propertyName: "checkboxes", predicate: WlcmCheckboxComponent, isSignal: true }], ngImport: i0, template: "<ng-content select=\"wlcm-checkbox\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
74
- };
75
- WlcmCheckboxGroupComponent = __decorate([
76
- UntilDestroy(),
77
- __metadata("design:paramtypes", [])
78
- ], WlcmCheckboxGroupComponent);
79
- export { WlcmCheckboxGroupComponent };
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmCheckboxGroupComponent, decorators: [{
81
- type: Component,
82
- args: [{ selector: 'wlcm-checkbox-group', host: { class: 'wlcm-checkbox-group' }, standalone: true, imports: [CommonModule], providers: [
83
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },
84
- { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmCheckboxGroupComponent), multi: true },
85
- ], template: "<ng-content select=\"wlcm-checkbox\"></ng-content>\n" }]
86
- }], ctorParameters: () => [] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUdULFFBQVEsRUFDUixlQUFlLEVBQ2YsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUF3QixhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWUzRCxJQUFNLDBCQUEwQixHQUFoQyxNQUFNLDBCQUEwQjtJQWlCckM7UUFoQkEsZUFBVSxHQUE2QyxlQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV0RixrQkFBYSxHQUErQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hGLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFB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IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIFNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21DaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1jaGVja2JveC1ncm91cCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWNoZWNrYm94LWdyb3VwJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXbGNtQ2hlY2tib3hHcm91cENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUNoZWNrYm94R3JvdXBDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtQ2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBjaGVja2JveGVzOiBTaWduYWw8cmVhZG9ubHkgV2xjbUNoZWNrYm94Q29tcG9uZW50W10+ID0gY29udGVudENoaWxkcmVuKFdsY21DaGVja2JveENvbXBvbmVudCk7XG5cbiAgcHJpdmF0ZSBjaGVja2JveGVzTWFwOiBTaWduYWw8TWFwPHN0cmluZywgV2xjbUNoZWNrYm94Q29tcG9uZW50Pj4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBNYXAodGhpcy5jaGVja2JveGVzKCkubWFwKChjaGVja2JveDogV2xjbUNoZWNrYm94Q29tcG9uZW50KSA9PiBbY2hlY2tib3gudmFsdWUoKSEsIGNoZWNrYm94XSkpO1xuICB9KTtcblxuICBwcml2YXRlIHZhbHVlczogV3JpdGFibGVTaWduYWw8U2V0PHN0cmluZz4+ID0gc2lnbmFsKG5ldyBTZXQoKSk7XG5cbiAgcHJpdmF0ZSBjaGVja2JveGVzTGlzdFVwZGF0ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2NoYW5nZWQ/OiAodmFsdWU6IHN0cmluZ1tdKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3RvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3ZhbGlkYXRvckNoYW5nZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB0aGlzLmhhbmRsZUNoZWNrYm94ZXNUb2dnbGUodGhpcy5jaGVja2JveGVzKCkpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUNoZWNrYm94ZXModGhpcy52YWx1ZXMoKSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzLnNldChuZXcgU2V0KHZhbHVlKSk7XG5cbiAgICBpZiAodGhpcy5jaGVja2JveGVzKCkpIHRoaXMudXBkYXRlQ2hlY2tib3hlcyh0aGlzLnZhbHVlcygpKTtcbiAgfVxuXG4gIHZhbGlkYXRlID0gKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IG51bGw7XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShjYWxsYmFjazogKHZhbHVlOiBzdHJpbmdbXSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29udHJvbCh2YWx1ZXM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZD8uKEFycmF5LmZyb20odmFsdWVzLnZhbHVlcygpKSk7XG5cbiAgICB0aGlzLl90b3VjaGVkPy4oKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hlY2tib3hlcyh2YWx1ZXM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgY29uc3QgY2hlY2tib3hlc01hcDogTWFwPHN0cmluZywgV2xjbUNoZWNrYm94Q29tcG9uZW50PiA9IHRoaXMuY2hlY2tib3hlc01hcCgpO1xuXG4gICAgZm9yIChjb25zdCBjaGVja2JveCBvZiBjaGVja2JveGVzTWFwLnZhbHVlcygpKSB7XG4gICAgICBjaGVja2JveC5jaGVja2VkID0gdmFsdWVzLmhhcyhjaGVja2JveC52YWx1ZSgpISk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDaGVja2JveGVzVG9nZ2xlKGNoZWNrYm94ZXM6IHJlYWRvbmx5IFdsY21DaGVja2JveENvbXBvbmVudFtdKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2JveGVzTGlzdFVwZGF0ZWQubmV4dCgpO1xuXG4gICAgY29uc3QgaGFuZGxlQ2hlY2sgPSAoY2hlY2tib3g6IFdsY21DaGVja2JveENvbXBvbmVudCkgPT4ge1xuICAgICAgdGhpcy52YWx1ZXMudXBkYXRlKCh2YWx1ZXM6IFNldDxzdHJpbmc+KSA9PiB7XG4gICAgICAgIGlmIChjaGVja2JveC5jaGVja2VkKSB7XG4gICAgICAgICAgdmFsdWVzLmFkZChjaGVja2JveC52YWx1ZSgpISk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVzLmRlbGV0ZShjaGVja2JveC52YWx1ZSgpISk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRyb2wodmFsdWVzKTtcblxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoYW5nZUhhbmRsZXJzOiBPYnNlcnZhYmxlPHVua25vd24+W10gPSBBcnJheS5mcm9tKGNoZWNrYm94ZXMudmFsdWVzKCkpLm1hcChcbiAgICAgIChjaGVja2JveDogV2xjbUNoZWNrYm94Q29tcG9uZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBjaGVja2JveC5jaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFwKCgpID0+IGhhbmRsZUNoZWNrKGNoZWNrYm94KSkpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgbWVyZ2UoLi4uY2hhbmdlSGFuZGxlcnMpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNoZWNrYm94ZXNMaXN0VXBkYXRlZCkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIndsY20tY2hlY2tib3hcIj48L25nLWNvbnRlbnQ+XG4iXX0=