@wlcm/angular 18.2.22 → 18.2.24

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 (179) hide show
  1. package/button/esm2022/index.mjs +3 -0
  2. package/button/esm2022/lib/button.module.mjs +16 -0
  3. package/button/esm2022/lib/components/button/button.component.mjs +37 -0
  4. package/button/esm2022/lib/models/button.models.mjs +2 -0
  5. package/button/esm2022/wlcm-angular-button.mjs +5 -0
  6. package/button/fesm2022/wlcm-angular-button.mjs +7 -7
  7. package/button/fesm2022/wlcm-angular-button.mjs.map +1 -1
  8. package/core/esm2022/index.mjs +17 -0
  9. package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +12 -0
  10. package/core/esm2022/lib/components/icons/calendar-icon/calendar-icon.component.mjs +12 -0
  11. package/core/esm2022/lib/components/icons/chevron-down-icon/chevron-down-icon.component.mjs +12 -0
  12. package/core/esm2022/lib/components/icons/close-icon/close-icon.component.mjs +12 -0
  13. package/core/esm2022/lib/components/icons/search-icon/search-icon.component.mjs +12 -0
  14. package/core/esm2022/lib/components/loader/loader.component.mjs +32 -0
  15. package/core/esm2022/lib/constants/_index.mjs +3 -0
  16. package/core/esm2022/lib/constants/http.constants.mjs +6 -0
  17. package/core/esm2022/lib/constants/icon.contants.mjs +15 -0
  18. package/core/esm2022/lib/constants/loader.constants.mjs +7 -0
  19. package/core/esm2022/lib/directives/_index.mjs +2 -0
  20. package/core/esm2022/lib/directives/icon.directive.mjs +49 -0
  21. package/core/esm2022/lib/models/_index.mjs +3 -0
  22. package/core/esm2022/lib/models/icon.models.mjs +7 -0
  23. package/core/esm2022/lib/models/option.models.mjs +17 -0
  24. package/core/esm2022/lib/services/scroll-detection.api.mjs +27 -0
  25. package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +20 -0
  26. package/core/esm2022/lib/utils/stream.utils.mjs +16 -0
  27. package/core/esm2022/wlcm-angular-core.mjs +5 -0
  28. package/core/fesm2022/wlcm-angular-core.mjs +24 -24
  29. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  30. package/datepicker/esm2022/index.mjs +14 -0
  31. package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +63 -0
  32. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +87 -0
  33. package/datepicker/esm2022/lib/components/range/date-range-picker-bottom-panel/date-range-picker-bottom-panel.component.mjs +19 -0
  34. package/datepicker/esm2022/lib/components/range/date-range-picker-input/date-range-picker-input.component.mjs +126 -0
  35. package/datepicker/esm2022/lib/components/range/double-calendar-range-picker/double-calendar-range-picker.component.mjs +168 -0
  36. package/datepicker/esm2022/lib/components/range/single-calendar-range-picker/single-calendar-range-picker.component.mjs +95 -0
  37. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +92 -0
  38. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +33 -0
  39. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +23 -0
  40. package/datepicker/esm2022/lib/constants/range/date-range-picker.constants.mjs +5 -0
  41. package/datepicker/esm2022/lib/constants/range/date-range-selection-model.constants.mjs +10 -0
  42. package/datepicker/esm2022/lib/constants/range/date-range-trigger-selection-model.constants.mjs +10 -0
  43. package/datepicker/esm2022/lib/datepicker.module.mjs +33 -0
  44. package/datepicker/esm2022/lib/directives/calendar.directive.mjs +15 -0
  45. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +103 -0
  46. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +105 -0
  47. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +81 -0
  48. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +81 -0
  49. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +58 -0
  50. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +51 -0
  51. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +64 -0
  52. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +67 -0
  53. package/datepicker/esm2022/lib/models/date-picker.models.mjs +29 -0
  54. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +61 -0
  55. package/datepicker/esm2022/lib/models/range/date-range-picker.models.mjs +27 -0
  56. package/datepicker/esm2022/lib/models/range/date-range-validation.models.mjs +5 -0
  57. package/datepicker/esm2022/lib/utils/range/date-range-input.validators.mjs +16 -0
  58. package/datepicker/esm2022/lib/utils/range/date-range-picker-errors.mjs +9 -0
  59. package/datepicker/esm2022/wlcm-angular-datepicker.mjs +5 -0
  60. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +63 -63
  61. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  62. package/datepicker/lib/directives/datepicker-input.base.d.ts +1 -1
  63. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +1 -1
  64. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +1 -1
  65. package/datepicker/lib/models/range/data-range-calendar.models.d.ts +1 -1
  66. package/filters/esm2022/index.mjs +6 -0
  67. package/filters/esm2022/lib/components/filters-group/filters-group.component.mjs +13 -0
  68. package/filters/esm2022/lib/constants/filter.constants.mjs +3 -0
  69. package/filters/esm2022/lib/constants/index.mjs +2 -0
  70. package/filters/esm2022/lib/directives/filter.directive.mjs +11 -0
  71. package/filters/esm2022/lib/directives/index.mjs +2 -0
  72. package/filters/esm2022/lib/filters.module.mjs +20 -0
  73. package/filters/esm2022/lib/models/array-filter.models.mjs +73 -0
  74. package/filters/esm2022/lib/models/filter.models.mjs +39 -0
  75. package/filters/esm2022/lib/models/filters-group.models.mjs +60 -0
  76. package/filters/esm2022/lib/models/index.mjs +4 -0
  77. package/filters/esm2022/wlcm-angular-filters.mjs +5 -0
  78. package/filters/fesm2022/wlcm-angular-filters.mjs +13 -13
  79. package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
  80. package/filters/lib/models/filters-group.models.d.ts +1 -1
  81. package/forms/esm2022/index.mjs +13 -0
  82. package/forms/esm2022/lib/forms/components/autocomplete/autocomplete.component.mjs +243 -0
  83. package/forms/esm2022/lib/forms/components/checkbox/checkbox.component.mjs +85 -0
  84. package/forms/esm2022/lib/forms/components/checkbox-group/checkbox-group.component.mjs +87 -0
  85. package/forms/esm2022/lib/forms/components/error/error.component.mjs +12 -0
  86. package/forms/esm2022/lib/forms/components/form-field/form-field.component.mjs +137 -0
  87. package/forms/esm2022/lib/forms/components/index.mjs +9 -0
  88. package/forms/esm2022/lib/forms/components/label/label.component.mjs +23 -0
  89. package/forms/esm2022/lib/forms/components/partials/autocomplete-suffix/autocomplete-suffix.component.mjs +19 -0
  90. package/forms/esm2022/lib/forms/components/partials/index.mjs +2 -0
  91. package/forms/esm2022/lib/forms/components/select/select.component.mjs +330 -0
  92. package/forms/esm2022/lib/forms/constants/form-elements.constants.mjs +5 -0
  93. package/forms/esm2022/lib/forms/constants/form-errors.constants.mjs +7 -0
  94. package/forms/esm2022/lib/forms/constants/form-field.constants.mjs +2 -0
  95. package/forms/esm2022/lib/forms/constants/form-state-handlers.constants.mjs +13 -0
  96. package/forms/esm2022/lib/forms/constants/index.mjs +6 -0
  97. package/forms/esm2022/lib/forms/constants/select.constants.mjs +3 -0
  98. package/forms/esm2022/lib/forms/directives/autocomplete.directive.mjs +64 -0
  99. package/forms/esm2022/lib/forms/directives/form-field-custom-container.directive.mjs +17 -0
  100. package/forms/esm2022/lib/forms/directives/form-field-hint.directive.mjs +15 -0
  101. package/forms/esm2022/lib/forms/directives/form-field-prefix.directive.mjs +22 -0
  102. package/forms/esm2022/lib/forms/directives/form-field-suffix.directive.mjs +14 -0
  103. package/forms/esm2022/lib/forms/directives/input.directive.mjs +47 -0
  104. package/forms/esm2022/lib/forms/directives/select-input-binder.directive.mjs +33 -0
  105. package/forms/esm2022/lib/forms/forms.module.mjs +64 -0
  106. package/forms/esm2022/lib/forms/models/_index.mjs +6 -0
  107. package/forms/esm2022/lib/forms/models/autocomplete.models.mjs +10 -0
  108. package/forms/esm2022/lib/forms/models/form-errors.models.mjs +2 -0
  109. package/forms/esm2022/lib/forms/models/form.models.mjs +2 -0
  110. package/forms/esm2022/lib/forms/models/input.models.mjs +2 -0
  111. package/forms/esm2022/lib/forms/models/select.models.mjs +2 -0
  112. package/forms/esm2022/lib/forms/pipes/errors-mapper.pipe.mjs +53 -0
  113. package/forms/esm2022/lib/forms/services/form-state-handler.service.mjs +19 -0
  114. package/forms/esm2022/lib/forms/services/index.mjs +3 -0
  115. package/forms/esm2022/lib/forms/services/places.api.mjs +62 -0
  116. package/forms/esm2022/wlcm-angular-forms.mjs +5 -0
  117. package/forms/fesm2022/wlcm-angular-forms.mjs +76 -67
  118. package/forms/fesm2022/wlcm-angular-forms.mjs.map +1 -1
  119. package/forms/lib/forms/components/select/select.component.d.ts +1 -0
  120. package/forms/lib/forms/models/autocomplete.models.d.ts +1 -1
  121. package/package.json +1 -1
  122. package/phone-input/esm2022/index.mjs +5 -0
  123. package/phone-input/esm2022/lib/components/country-code-select/country-code-select.component.mjs +32 -0
  124. package/phone-input/esm2022/lib/components/phone-input-container/phone-input-container.component.mjs +107 -0
  125. package/phone-input/esm2022/lib/constants/country-code-options.constants.mjs +20 -0
  126. package/phone-input/esm2022/lib/constants/phone-adapter.constants.mjs +3 -0
  127. package/phone-input/esm2022/lib/directives/phone-input.directive.mjs +155 -0
  128. package/phone-input/esm2022/lib/models/country-code.models.mjs +10 -0
  129. package/phone-input/esm2022/lib/models/phone-adapter.models.mjs +3 -0
  130. package/phone-input/esm2022/lib/models/phone.models.mjs +5 -0
  131. package/phone-input/esm2022/lib/phone-input.module.mjs +20 -0
  132. package/phone-input/esm2022/lib/pipes/phone-code.pipe.mjs +18 -0
  133. package/phone-input/esm2022/wlcm-angular-phone-input.mjs +5 -0
  134. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs +16 -16
  135. package/phone-input/fesm2022/wlcm-angular-phone-input.mjs.map +1 -1
  136. package/search-field/esm2022/index.mjs +3 -0
  137. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +39 -0
  138. package/search-field/esm2022/lib/search-field.module.mjs +18 -0
  139. package/search-field/esm2022/wlcm-angular-search-field.mjs +5 -0
  140. package/search-field/fesm2022/wlcm-angular-search-field.mjs +7 -7
  141. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  142. package/stepper/esm2022/index.mjs +11 -0
  143. package/stepper/esm2022/lib/components/step/step.component.mjs +53 -0
  144. package/stepper/esm2022/lib/components/step-header/step-header.component.mjs +81 -0
  145. package/stepper/esm2022/lib/components/stepper/stepper.component.mjs +15 -0
  146. package/stepper/esm2022/lib/components/stepper-header/stepper-header.component.mjs +16 -0
  147. package/stepper/esm2022/lib/constants/step.constants.mjs +9 -0
  148. package/stepper/esm2022/lib/constants/stepper.stepper.mjs +3 -0
  149. package/stepper/esm2022/lib/directives/load-on-active-step.directive.mjs +51 -0
  150. package/stepper/esm2022/lib/models/step.models.mjs +60 -0
  151. package/stepper/esm2022/lib/models/stepper.models.mjs +114 -0
  152. package/stepper/esm2022/lib/stepper.module.mjs +34 -0
  153. package/stepper/esm2022/wlcm-angular-stepper.mjs +5 -0
  154. package/stepper/fesm2022/wlcm-angular-stepper.mjs +25 -25
  155. package/stepper/fesm2022/wlcm-angular-stepper.mjs.map +1 -1
  156. package/stepper/lib/models/step.models.d.ts +1 -1
  157. package/stepper/lib/models/stepper.models.d.ts +1 -1
  158. package/table/esm2022/index.mjs +9 -0
  159. package/table/esm2022/lib/components/table/table.component.mjs +79 -0
  160. package/table/esm2022/lib/components/table-head/table-head.component.mjs +18 -0
  161. package/table/esm2022/lib/components/table-head-actions/table-head-actions.component.mjs +41 -0
  162. package/table/esm2022/lib/components/table-head-data/table-head-data.component.mjs +12 -0
  163. package/table/esm2022/lib/components/table-row/table-row.component.mjs +87 -0
  164. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +12 -0
  165. package/table/esm2022/lib/components/table-row-data/table-row-data.component.mjs +12 -0
  166. package/table/esm2022/lib/components/table-row-spacer/table-row-spacer.component.mjs +12 -0
  167. package/table/esm2022/lib/constants/table-row.constants.mjs +3 -0
  168. package/table/esm2022/lib/constants/table.constants.mjs +5 -0
  169. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +46 -0
  170. package/table/esm2022/lib/models/table-config-manager.models.mjs +18 -0
  171. package/table/esm2022/lib/models/table-row.models.mjs +2 -0
  172. package/table/esm2022/lib/models/table-selection-model.mjs +48 -0
  173. package/table/esm2022/lib/models/table.models.mjs +2 -0
  174. package/table/esm2022/lib/pipes/table-row-injector.pipe.mjs +24 -0
  175. package/table/esm2022/lib/table.module.mjs +38 -0
  176. package/table/esm2022/lib/utils/table-errors.utils.mjs +6 -0
  177. package/table/esm2022/wlcm-angular-table.mjs +5 -0
  178. package/table/fesm2022/wlcm-angular-table.mjs +34 -34
  179. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
@@ -0,0 +1,243 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, TemplateRef, ViewChild, forwardRef, inject, input, output, } from '@angular/core';
3
+ import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
4
+ import { CommonModule } from '@angular/common';
5
+ import { WlcmFormFieldComponent } from '../form-field/form-field.component';
6
+ import { WlcmLabelComponent } from '../label/label.component';
7
+ import { WlcmInputDirective } from '../../directives/input.directive';
8
+ import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, MatAutocompleteOrigin, MatAutocompleteTrigger, } from '@angular/material/autocomplete';
9
+ import { BehaviorSubject, EMPTY, Subject, concatMap, filter, first, fromEvent, map, merge, switchMap, take, tap, timer, } from 'rxjs';
10
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
11
+ import { AutocompleteDirective } from '../../directives/autocomplete.directive';
12
+ import { DEFAULT_QUERY_PARAMS } from '@wlcm/angular/core';
13
+ import { WLCM_FORM_FIELD, WLCM_INPUT, WLCM_INPUT_BINDER } from '../../constants';
14
+ import { WlcmAutocomplete } from '../../models/autocomplete.models';
15
+ import { RxLet } from '@rx-angular/template/let';
16
+ import { cloneDeep } from 'lodash-es';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@angular/common";
19
+ import * as i2 from "@angular/material/autocomplete";
20
+ import * as i3 from "@angular/material/core";
21
+ import * as i4 from "@angular/forms";
22
+ const PANEL_CLASS = 'wlcm-autocomplete-panel';
23
+ let WlcmAutocompleteComponent = class WlcmAutocompleteComponent extends WlcmAutocomplete {
24
+ constructor(formField) {
25
+ super();
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
+ if (formField) {
55
+ this._preferredOverlayOrigin = new MatAutocompleteOrigin(this.formField.inputContainer);
56
+ }
57
+ }
58
+ ngOnInit() {
59
+ this.loadOptions().pipe(first()).subscribe();
60
+ }
61
+ ngAfterViewInit() {
62
+ this.viewReady$.next();
63
+ this.autocompleteTrigger.connectedTo = this._preferredOverlayOrigin;
64
+ this.attachFocusBlurListeners();
65
+ }
66
+ displayWith(value) {
67
+ if (value instanceof Object) {
68
+ return value.viewValue;
69
+ }
70
+ return value;
71
+ }
72
+ focus() {
73
+ this.inputElement.nativeElement.focus();
74
+ }
75
+ isFocused() {
76
+ return this.inputElement?.nativeElement === document.activeElement || this.autocomplete?.isOpen;
77
+ }
78
+ loadMore() {
79
+ this._loadMore$.next();
80
+ }
81
+ writeValue(value) {
82
+ const formattedValue = this.prepareValueForPatch(value);
83
+ this.control.setValue(formattedValue);
84
+ }
85
+ registerOnChange(callback) {
86
+ this._changed = callback;
87
+ }
88
+ registerOnTouched(callback) {
89
+ this._touched = callback;
90
+ }
91
+ setDisabledState(isDisabled) {
92
+ if (isDisabled) {
93
+ return this.control.disable();
94
+ }
95
+ this.control.enable();
96
+ }
97
+ reloadOptions() {
98
+ this._reloadOptions$.next();
99
+ }
100
+ blured() {
101
+ if (!this.autocomplete.isOpen)
102
+ this._touched?.();
103
+ this.autocomplete.closed.pipe(take(1)).subscribe(() => this._touched?.());
104
+ }
105
+ validate(control) {
106
+ if (!!this.control.value) {
107
+ if (this.control.value instanceof Object)
108
+ return null;
109
+ return { ...control.errors, unselected: true, required: false };
110
+ }
111
+ return null;
112
+ }
113
+ registerOnValidatorChange(fn) {
114
+ this._onValidatorChange = fn;
115
+ }
116
+ prepareValueForPatch(value) {
117
+ if (value instanceof Object && this.selectOptionFormat() === 'ValueOnly') {
118
+ this.adjustedValue$.next(value.value);
119
+ }
120
+ return value;
121
+ }
122
+ loadOptions(query = '') {
123
+ this._loading$.next(true);
124
+ this.queryParams = { ...this.queryParams, query, page: 1 };
125
+ return this.fetchPaginatedOptions(this.queryParams).pipe(tap((paginatedData) => {
126
+ this._paginatedData = paginatedData;
127
+ this._options$.next(paginatedData.data);
128
+ this._loading$.next(false);
129
+ }));
130
+ }
131
+ handleLoadMoreEvent() {
132
+ this._loadMore$
133
+ .pipe(concatMap(() => {
134
+ if (this._paginatedData && this._paginatedData.currPage + 1 <= this._paginatedData.totalPages) {
135
+ this.queryParams.page++;
136
+ this._loading$.next(true);
137
+ return this.fetchPaginatedOptions(this.queryParams).pipe(tap((paginatedData) => {
138
+ this._paginatedData = paginatedData;
139
+ this._options$.next([...this._options$.value, ...paginatedData.data]);
140
+ this._loading$.next(false);
141
+ }));
142
+ }
143
+ return EMPTY;
144
+ }))
145
+ .subscribe();
146
+ }
147
+ handleControlValueChanges() {
148
+ merge(this.control.valueChanges, this._reloadOptions$.pipe(map(() => this.control.value)))
149
+ .pipe(untilDestroyed(this))
150
+ .pipe(filter((value) => {
151
+ let _value = value ?? '';
152
+ if (value instanceof Object && this.selectOptionFormat() === 'ValueOnly')
153
+ _value = value.value;
154
+ this._changed?.(_value);
155
+ this.selected.emit(_value);
156
+ return !(value instanceof Object);
157
+ }))
158
+ .pipe(switchMap((value) => timer(200).pipe(switchMap(() => this.loadOptions(value)))))
159
+ .subscribe();
160
+ }
161
+ attachFocusBlurListeners() {
162
+ const voidFn = () => { };
163
+ const inputFocus = fromEvent(this.inputElement.nativeElement, 'focus');
164
+ const inputBlur = fromEvent(this.inputElement.nativeElement, 'blur');
165
+ const focusObservables = [inputFocus, this.autocomplete.opened];
166
+ const blurObservables = [inputBlur, this.autocomplete.closed];
167
+ this._focusStream$.next(merge(...focusObservables).pipe(map(voidFn)));
168
+ this._blurStream$.next(merge(...blurObservables).pipe(map(() => this.control?.markAsTouched())));
169
+ }
170
+ handleAdjustedValue() {
171
+ this.viewReady$
172
+ .pipe(switchMap(() => this.adjustedValue$.pipe(filter(Boolean))))
173
+ .subscribe((value) => this._changed?.(value));
174
+ }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmAutocompleteComponent, deps: [{ token: WLCM_FORM_FIELD }], target: i0.ɵɵFactoryTarget.Component }); }
176
+ 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: [
177
+ { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: { overlayPanelClass: PANEL_CLASS } },
178
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
179
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
180
+ {
181
+ provide: WLCM_INPUT_BINDER,
182
+ useFactory: () => {
183
+ const autocomplete = inject(WlcmAutocompleteComponent, { self: true });
184
+ return { bind: () => autocomplete };
185
+ },
186
+ },
187
+ ], 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 }); }
188
+ };
189
+ WlcmAutocompleteComponent = __decorate([
190
+ UntilDestroy(),
191
+ __metadata("design:paramtypes", [Object])
192
+ ], WlcmAutocompleteComponent);
193
+ export { WlcmAutocompleteComponent };
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmAutocompleteComponent, decorators: [{
195
+ type: Component,
196
+ args: [{ selector: 'wlcm-autocomplete', exportAs: 'wlcmAutocomplete', host: { class: 'wlcm-autocomplete' }, standalone: true, imports: [
197
+ CommonModule,
198
+ MatAutocompleteModule,
199
+ AutocompleteDirective,
200
+ ReactiveFormsModule,
201
+ WlcmFormFieldComponent,
202
+ WlcmLabelComponent,
203
+ WlcmInputDirective,
204
+ RxLet,
205
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
206
+ { provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, useValue: { overlayPanelClass: PANEL_CLASS } },
207
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
208
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => WlcmAutocompleteComponent), multi: true },
209
+ {
210
+ provide: WLCM_INPUT_BINDER,
211
+ useFactory: () => {
212
+ const autocomplete = inject(WlcmAutocompleteComponent, { self: true });
213
+ return { bind: () => autocomplete };
214
+ },
215
+ },
216
+ ], 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" }]
217
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
218
+ type: Inject,
219
+ args: [WLCM_FORM_FIELD]
220
+ }] }], propDecorators: { fetchPaginatedOptions: [{
221
+ type: Input
222
+ }], label: [{
223
+ type: Input
224
+ }], required: [{
225
+ type: Input
226
+ }], placeholder: [{
227
+ type: Input
228
+ }], optionTemplate: [{
229
+ type: Input
230
+ }], queryParams: [{
231
+ type: Input,
232
+ args: [{ transform: (params) => cloneDeep(params) }]
233
+ }], inputElement: [{
234
+ type: ViewChild,
235
+ args: [WLCM_INPUT, { read: ElementRef }]
236
+ }], autocompleteTrigger: [{
237
+ type: ViewChild,
238
+ args: [MatAutocompleteTrigger]
239
+ }], autocomplete: [{
240
+ type: ViewChild,
241
+ args: [MatAutocomplete]
242
+ }] } });
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZm9ybXMvc3JjL2xpYi9mb3Jtcy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsS0FBSyxFQUVMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsR0FBRyxFQUNI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RWdFLFdBQVc7c0JBQWhGLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxNQUF1QixFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBbURoQixZQUFZO3NCQUEvRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBRUEsbUJBQW1CO3NCQUE3RCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFFRyxZQUFZO3NCQUEvQyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBJbnB1dFNpZ25hbCxcbiAgT25Jbml0LFxuICBPdXRwdXRFbWl0dGVyUmVmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtTGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2xjbUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsXG4gIE1hdEF1dG9jb21wbGV0ZSxcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICBNYXRBdXRvY29tcGxldGVPcmlnaW4sXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIEVNUFRZLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBjb25jYXRNYXAsXG4gIGZpbHRlcixcbiAgZmlyc3QsXG4gIGZyb21FdmVudCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG4gIHRpbWVyLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hdXRvY29tcGxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IERFRkFVTFRfUVVFUllfUEFSQU1TLCBXbGNtQXV0b2NvbXBsZXRlT3B0aW9uLCBXbGNtU2VsZWN0T3B0aW9uRm9ybWF0IH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdMQ01fRk9STV9GSUVMRCwgV0xDTV9JTlBVVCwgV0xDTV9JTlBVVF9CSU5ERVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbUF1dG9jb21wbGV0ZSwgV2xjbUF1dG9jb21wbGV0ZVZhbHVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dG9jb21wbGV0ZS5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbVF1ZXJ5UGFyYW1zLCBXbGNtUGFnaW5hdGVkRGF0YSB9IGZyb20gJ0B3bGNtL2NvbW1vbic7XG5pbXBvcnQgeyBXbGNtRm9ybUZpZWxkSW5wdXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQubW9kZWxzJztcbmltcG9ydCB7IFdsY21Gb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS5tb2RlbHMnO1xuaW1wb3J0IHsgUnhMZXQgfSBmcm9tICdAcngtYW5ndWxhci90ZW1wbGF0ZS9sZXQnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxudHlwZSBPcHRpb24gPSBXbGNtQXV0b2NvbXBsZXRlT3B0aW9uO1xuXG5jb25zdCBQQU5FTF9DTEFTUzogc3RyaW5nID0gJ3dsY20tYXV0b2NvbXBsZXRlLXBhbmVsJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLWF1dG9jb21wbGV0ZScsXG4gIGV4cG9ydEFzOiAnd2xjbUF1dG9jb21wbGV0ZScsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLWF1dG9jb21wbGV0ZScgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgQXV0b2NvbXBsZXRlRGlyZWN0aXZlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgV2xjbUZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBXbGNtTGFiZWxDb21wb25lbnQsXG4gICAgV2xjbUlucHV0RGlyZWN0aXZlLFxuICAgIFJ4TGV0LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLCB1c2VWYWx1ZTogeyBvdmVybGF5UGFuZWxDbGFzczogUEFORUxfQ0xBU1MgfSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21BdXRvY29tcGxldGVDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUF1dG9jb21wbGV0ZUNvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV0xDTV9JTlBVVF9CSU5ERVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IGluamVjdChXbGNtQXV0b2NvbXBsZXRlQ29tcG9uZW50LCB7IHNlbGY6IHRydWUgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgYmluZDogKCkgPT4gYXV0b2NvbXBsZXRlIH07XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21BdXRvY29tcGxldGVDb21wb25lbnRcbiAgZXh0ZW5kcyBXbGNtQXV0b2NvbXBsZXRlXG4gIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBBZnRlclZpZXdJbml0LCBXbGNtRm9ybUZpZWxkSW5wdXRcbntcbiAgQElucHV0KCkgZmV0Y2hQYWdpbmF0ZWRPcHRpb25zITogKHBhcmFtczogV2xjbVF1ZXJ5UGFyYW1zKSA9PiBPYnNlcnZhYmxlPFdsY21QYWdpbmF0ZWREYXRhPE9wdGlvbj4+O1xuXG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIG9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFdsY21BdXRvY29tcGxldGVPcHRpb24gfT47XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiAocGFyYW1zOiBXbGNtUXVlcnlQYXJhbXMpID0+IGNsb25lRGVlcChwYXJhbXMpIH0pIHF1ZXJ5UGFyYW1zOiBXbGNtUXVlcnlQYXJhbXMgPSBjbG9uZURlZXAoe1xuICAgIC4uLkRFRkFVTFRfUVVFUllfUEFSQU1TLFxuICAgIGxpbWl0OiAxNSxcbiAgfSk7XG5cbiAgc2VsZWN0T3B0aW9uRm9ybWF0OiBJbnB1dFNpZ25hbDxXbGNtU2VsZWN0T3B0aW9uRm9ybWF0PiA9IGlucHV0PFdsY21TZWxlY3RPcHRpb25Gb3JtYXQ+KCdWYWx1ZU9ubHknKTtcblxuICBub1Jlc3VsdHNUZW1wbGF0ZTogSW5wdXRTaWduYWw8VGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFdsY21BdXRvY29tcGxldGVWYWx1ZTsgbG9hZGluZzogYm9vbGVhbiB9PiB8IHVuZGVmaW5lZD4gPVxuICAgIGlucHV0KCk7XG5cbiAgc2VsZWN0ZWQ6IE91dHB1dEVtaXR0ZXJSZWY8V2xjbUF1dG9jb21wbGV0ZVZhbHVlPiA9IG91dHB1dCgpO1xuXG4gIHJlYWRvbmx5IGNvbnRyb2w6IEZvcm1Db250cm9sPFdsY21BdXRvY29tcGxldGVWYWx1ZT4gPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRNb3JlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxPcHRpb25bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9wdGlvbltdPihbXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMkOiBPYnNlcnZhYmxlPE9wdGlvbltdPiA9IHRoaXMuX29wdGlvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbG9zZWQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c1N0cmVhbSQ6IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlPHZvaWQ+PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoRU1QVFkgYXMgT2JzZXJ2YWJsZTx2b2lkPik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYmx1clN0cmVhbSQ6IEJlaGF2aW9yU3ViamVjdDxPYnNlcnZhYmxlPHZvaWQ+PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoRU1QVFkgYXMgT2JzZXJ2YWJsZTx2b2lkPik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGZvY3VzJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2ZvY3VzU3RyZWFtJC5waXBlKHN3aXRjaE1hcCgoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBzdHJlYW0pKTtcblxuICBibHVyJDogT2JzZXJ2YWJsZTx1bmtub3duPiA9IHRoaXMuX2JsdXJTdHJlYW0kLnBpcGUoc3dpdGNoTWFwKChzdHJlYW06IE9ic2VydmFibGU8dW5rbm93bj4pID0+IHN0cmVhbSkpO1xuXG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fbG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBfY2hhbmdlZD86ICh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX3RvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX29uVmFsaWRhdG9yQ2hhbmdlPzogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGFkanVzdGVkVmFsdWUkOiBCZWhhdmlvclN1YmplY3Q8V2xjbUF1dG9jb21wbGV0ZVZhbHVlIHwgbnVsbD4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8V2xjbUF1dG9jb21wbGV0ZVZhbHVlIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSBfcGFnaW5hdGVkRGF0YTogV2xjbVBhZ2luYXRlZERhdGE8T3B0aW9uPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3JlbG9hZE9wdGlvbnMkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHZpZXdSZWFkeSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX3ByZWZlcnJlZE92ZXJsYXlPcmlnaW4hOiBNYXRBdXRvY29tcGxldGVPcmlnaW47XG5cbiAgQFZpZXdDaGlsZChXTENNX0lOUFVULCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHVibGljIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGVUcmlnZ2VyKSBwcml2YXRlIGF1dG9jb21wbGV0ZVRyaWdnZXIhOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xuXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlKSBwcml2YXRlIGF1dG9jb21wbGV0ZSE6IE1hdEF1dG9jb21wbGV0ZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFdMQ01fRk9STV9GSUVMRCkgcHJpdmF0ZSBmb3JtRmllbGQ6IFdsY21Gb3JtRmllbGQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5oYW5kbGVMb2FkTW9yZUV2ZW50KCk7XG5cbiAgICB0aGlzLmhhbmRsZUNvbnRyb2xWYWx1ZUNoYW5nZXMoKTtcblxuICAgIHRoaXMuaGFuZGxlQWRqdXN0ZWRWYWx1ZSgpO1xuXG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgdGhpcy5fcHJlZmVycmVkT3ZlcmxheU9yaWdpbiA9IG5ldyBNYXRBdXRvY29tcGxldGVPcmlnaW4odGhpcy5mb3JtRmllbGQuaW5wdXRDb250YWluZXIpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE9wdGlvbnMoKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld1JlYWR5JC5uZXh0KCk7XG5cbiAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIuY29ubmVjdGVkVG8gPSB0aGlzLl9wcmVmZXJyZWRPdmVybGF5T3JpZ2luO1xuXG4gICAgdGhpcy5hdHRhY2hGb2N1c0JsdXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIGRpc3BsYXlXaXRoKHZhbHVlOiBPcHRpb24gfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgcmV0dXJuIHZhbHVlLnZpZXdWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IHx8IHRoaXMuYXV0b2NvbXBsZXRlPy5pc09wZW47XG4gIH1cblxuICBsb2FkTW9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2FkTW9yZSQubmV4dCgpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSA9IHRoaXMucHJlcGFyZVZhbHVlRm9yUGF0Y2godmFsdWUpO1xuXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZvcm1hdHRlZFZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoY2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl90b3VjaGVkID0gY2FsbGJhY2s7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICB9XG5cbiAgcmVsb2FkT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWxvYWRPcHRpb25zJC5uZXh0KCk7XG4gIH1cblxuICBibHVyZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF1dG9jb21wbGV0ZS5pc09wZW4pIHRoaXMuX3RvdWNoZWQ/LigpO1xuXG4gICAgdGhpcy5hdXRvY29tcGxldGUuY2xvc2VkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3RvdWNoZWQ/LigpKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoISF0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4geyAuLi5jb250cm9sLmVycm9ycywgdW5zZWxlY3RlZDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZVZhbHVlRm9yUGF0Y2godmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSk6IFdsY21BdXRvY29tcGxldGVWYWx1ZSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIHRoaXMuc2VsZWN0T3B0aW9uRm9ybWF0KCkgPT09ICdWYWx1ZU9ubHknKSB7XG4gICAgICB0aGlzLmFkanVzdGVkVmFsdWUkLm5leHQodmFsdWUudmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9wdGlvbnMocXVlcnk6IHN0cmluZyA9ICcnKTogT2JzZXJ2YWJsZTxXbGNtUGFnaW5hdGVkRGF0YTxPcHRpb24+PiB7XG4gICAgdGhpcy5fbG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB7IC4uLnRoaXMucXVlcnlQYXJhbXMsIHF1ZXJ5LCBwYWdlOiAxIH07XG5cbiAgICByZXR1cm4gdGhpcy5mZXRjaFBhZ2luYXRlZE9wdGlvbnModGhpcy5xdWVyeVBhcmFtcykucGlwZShcbiAgICAgIHRhcCgocGFnaW5hdGVkRGF0YTogV2xjbVBhZ2luYXRlZERhdGE8T3B0aW9uPikgPT4ge1xuICAgICAgICB0aGlzLl9wYWdpbmF0ZWREYXRhID0gcGFnaW5hdGVkRGF0YTtcblxuICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KHBhZ2luYXRlZERhdGEuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMb2FkTW9yZUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX2xvYWRNb3JlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGNvbmNhdE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3BhZ2luYXRlZERhdGEgJiYgdGhpcy5fcGFnaW5hdGVkRGF0YS5jdXJyUGFnZSArIDEgPD0gdGhpcy5fcGFnaW5hdGVkRGF0YS50b3RhbFBhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2UrKztcblxuICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dCh0cnVlKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hQYWdpbmF0ZWRPcHRpb25zKHRoaXMucXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgocGFnaW5hdGVkRGF0YTogV2xjbVBhZ2luYXRlZERhdGE8T3B0aW9uPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BhZ2luYXRlZERhdGEgPSBwYWdpbmF0ZWREYXRhO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyQubmV4dChbLi4udGhpcy5fb3B0aW9ucyQudmFsdWUsIC4uLnBhZ2luYXRlZERhdGEuZGF0YV0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250cm9sVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIG1lcmdlKHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMuX3JlbG9hZE9wdGlvbnMkLnBpcGUobWFwKCgpID0+IHRoaXMuY29udHJvbC52YWx1ZSkpKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKSA9PiB7XG4gICAgICAgICAgbGV0IF92YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlID0gdmFsdWUgPz8gJyc7XG5cbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgdGhpcy5zZWxlY3RPcHRpb25Gb3JtYXQoKSA9PT0gJ1ZhbHVlT25seScpIF92YWx1ZSA9IHZhbHVlLnZhbHVlO1xuXG4gICAgICAgICAgdGhpcy5fY2hhbmdlZD8uKF92YWx1ZSk7XG5cbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoX3ZhbHVlKTtcblxuICAgICAgICAgIHJldHVybiAhKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZTogV2xjbUF1dG9jb21wbGV0ZVZhbHVlKSA9PlxuICAgICAgICAgIHRpbWVyKDIwMCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2FkT3B0aW9ucyh2YWx1ZSBhcyBzdHJpbmcpKSksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEZvY3VzQmx1ckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBjb25zdCB2b2lkRm4gPSAoKSA9PiB7fTtcblxuICAgIGNvbnN0IGlucHV0Rm9jdXM6IE9ic2VydmFibGU8RXZlbnQ+ID0gZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdmb2N1cycpO1xuXG4gICAgY29uc3QgaW5wdXRCbHVyOiBPYnNlcnZhYmxlPEV2ZW50PiA9IGZyb21FdmVudCh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYmx1cicpO1xuXG4gICAgY29uc3QgZm9jdXNPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW2lucHV0Rm9jdXMsIHRoaXMuYXV0b2NvbXBsZXRlLm9wZW5lZF07XG5cbiAgICBjb25zdCBibHVyT2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8dW5rbm93bj5bXSA9IFtpbnB1dEJsdXIsIHRoaXMuYXV0b2NvbXBsZXRlLmNsb3NlZF07XG5cbiAgICB0aGlzLl9mb2N1c1N0cmVhbSQubmV4dChtZXJnZSguLi5mb2N1c09ic2VydmFibGVzKS5waXBlKG1hcCh2b2lkRm4pKSk7XG5cbiAgICB0aGlzLl9ibHVyU3RyZWFtJC5uZXh0KG1lcmdlKC4uLmJsdXJPYnNlcnZhYmxlcykucGlwZShtYXAoKCkgPT4gdGhpcy5jb250cm9sPy5tYXJrQXNUb3VjaGVkKCkpKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUFkanVzdGVkVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3UmVhZHkkXG4gICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hZGp1c3RlZFZhbHVlJC5waXBlKGZpbHRlcihCb29sZWFuKSkpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IFdsY21BdXRvY29tcGxldGVWYWx1ZSkgPT4gdGhpcy5fY2hhbmdlZD8uKHZhbHVlKSk7XG4gIH1cbn1cbiIsIjxpbnB1dFxuICB3bGNtSW5wdXRcbiAgdHlwZT1cInRleHRcIlxuICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgKGJsdXIpPVwiYmx1cmVkKClcIlxuLz5cblxuPG1hdC1hdXRvY29tcGxldGVcbiAgI2F1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gIHdsY21BdXRvY29tcGxldGVcbiAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXT1cInRydWVcIlxuICAocGFuZWxTY3JvbGxlZCk9XCJsb2FkTW9yZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqcnhMZXQ9XCIkYW55KG9wdGlvbnMkIHwgYXN5bmMpOyBsZXQgb3B0aW9uc1wiPlxuICAgIDxtYXQtb3B0aW9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnd2xjbS1jdXN0b20tb3B0aW9uLWNvbnRlbnQnOiBvcHRpb25UZW1wbGF0ZSB9XCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgID5cbiAgICAgIEBpZiAob3B0aW9uVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwib3B0aW9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgICB9XG4gICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgPG1hdC1vcHRpb24gW2Rpc2FibGVkXT1cInRydWVcIiAqbmdJZj1cIm9wdGlvbnMubGVuZ3RoID09PSAwXCI+XG4gICAgICBAaWYgKG5vUmVzdWx0c1RlbXBsYXRlKCkpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBub1Jlc3VsdHNUZW1wbGF0ZSgpITtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb250cm9sLnZhbHVlLCBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBkZWZhdWx0Tm9SZXN1bHRzVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29udHJvbC52YWx1ZSwgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1hdXRvY29tcGxldGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdE5vUmVzdWx0c1RlbXBsYXRlIGxldC1sb2FkaW5nPVwibG9hZGluZ1wiPlxuICBAaWYgKGxvYWRpbmcpIHtcbiAgICBQbGVhc2Ugd2FpdC4uLlxuICB9IEBlbHNlIHtcbiAgICBObyByZXN1bHRzIGZvdW5kXG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,85 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUVMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUdwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFnQnhDLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBYWhDLFlBQ1UsaUJBQW9DLEVBQ0csZ0JBQWlDO1FBRHhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBZGxGLFVBQUssR0FBb0MsS0FBSyxFQUFFLENBQUM7UUFFdkMsWUFBTyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXBELFlBQU8sR0FBZ0Is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QUksRUFBRTt3QkFDN0YsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3FCQUNsRzs7MEJBaUJFLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCO3lDQVo3QixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0U2lnbmFsLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXTENNX0ZPUk1fQ09OVFJPTCwgV0xDTV9GT1JNX0NPTlRST0xfUFJPVklERVIgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlLCBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IFdsY21Gb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLm1vZGVscyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tY2hlY2tib3gnLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1jaGVja2JveCcgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICBXTENNX0ZPUk1fQ09OVFJPTF9QUk9WSURFUixcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdsY21DaGVja2JveENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2xjbUNoZWNrYm94Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUNoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIHZhbHVlOiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcblxuICBAT3V0cHV0KCkgY2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgX2NoYW5nZWQ/OiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlZD86ICgpID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdMQ01fRk9STV9DT05UUk9MKSBwcml2YXRlIHBhcmVudEZvcm1NZW1iZXI6IFdsY21Gb3JtQ29udHJvbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMucGFyZW50Rm9ybU1lbWJlcikge1xuICAgICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNoYW5nZSh2YWx1ZTogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZWQuZW1pdCh2YWx1ZS5jaGVja2VkKTtcblxuICAgIHRoaXMuX2NoYW5nZWQ/Lih2YWx1ZS5jaGVja2VkKTtcblxuICAgIHRoaXMuX3RvdWNoZWQ/LigpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZSA9ICgpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiBudWxsO1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoY2FsbGJhY2s6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fdG91Y2hlZCA9IGNhbGxiYWNrO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShjYWxsYmFjazogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZWQgPSBjYWxsYmFjaztcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gIH1cblxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudEZvcm1NZW1iZXIuc3RhdGVDaGFuZ2VzJC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlZD8uKCk7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxtYXQtY2hlY2tib3ggW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbWF0LWNoZWNrYm94PlxuIl19
@@ -0,0 +1,87 @@
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=
@@ -0,0 +1,12 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class WlcmErrorComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: WlcmErrorComponent, isStandalone: true, selector: "wlcm-error", host: { classAttribute: "wlcm-error" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmErrorComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'wlcm-error', standalone: true, imports: [CommonModule], host: { class: 'wlcm-error' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvZXJyb3IvZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9mb3Jtcy9zcmMvbGliL2Zvcm1zL2NvbXBvbmVudHMvZXJyb3IvZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVy9DLE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDhHQ1ovQiw2QkFDQSx5RERLWSxZQUFZOzsyRkFNWCxrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxRQUNqQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBR1osdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tZXJyb3InIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Vycm9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRXJyb3JDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==