@elite.framework/ng.ui.core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +3 -0
  2. package/attachments/README.md +3 -0
  3. package/attachments/index.d.ts +38 -0
  4. package/base-crud/README.md +3 -0
  5. package/base-crud/index.d.ts +68 -0
  6. package/breadcrumb/README.md +3 -0
  7. package/breadcrumb/index.d.ts +17 -0
  8. package/checkbox/README.md +3 -0
  9. package/checkbox/index.d.ts +33 -0
  10. package/color-picker/README.md +3 -0
  11. package/color-picker/index.d.ts +16 -0
  12. package/column-settings-popover/README.md +3 -0
  13. package/column-settings-popover/index.d.ts +46 -0
  14. package/condition-editor/README.md +3 -0
  15. package/condition-editor/index.d.ts +80 -0
  16. package/custom-switch/README.md +3 -0
  17. package/custom-switch/index.d.ts +19 -0
  18. package/datepicker/README.md +3 -0
  19. package/datepicker/index.d.ts +23 -0
  20. package/deactivation-reason/README.md +3 -0
  21. package/deactivation-reason/index.d.ts +31 -0
  22. package/fesm2022/elite.framework-ng.ui.core-attachments.mjs +217 -0
  23. package/fesm2022/elite.framework-ng.ui.core-attachments.mjs.map +1 -0
  24. package/fesm2022/elite.framework-ng.ui.core-base-crud.mjs +312 -0
  25. package/fesm2022/elite.framework-ng.ui.core-base-crud.mjs.map +1 -0
  26. package/fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs +144 -0
  27. package/fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs.map +1 -0
  28. package/fesm2022/elite.framework-ng.ui.core-checkbox.mjs +130 -0
  29. package/fesm2022/elite.framework-ng.ui.core-checkbox.mjs.map +1 -0
  30. package/fesm2022/elite.framework-ng.ui.core-color-picker.mjs +88 -0
  31. package/fesm2022/elite.framework-ng.ui.core-color-picker.mjs.map +1 -0
  32. package/fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs +184 -0
  33. package/fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs.map +1 -0
  34. package/fesm2022/elite.framework-ng.ui.core-condition-editor.mjs +782 -0
  35. package/fesm2022/elite.framework-ng.ui.core-condition-editor.mjs.map +1 -0
  36. package/fesm2022/elite.framework-ng.ui.core-custom-switch.mjs +122 -0
  37. package/fesm2022/elite.framework-ng.ui.core-custom-switch.mjs.map +1 -0
  38. package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs +206 -0
  39. package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs.map +1 -0
  40. package/fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs +142 -0
  41. package/fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs.map +1 -0
  42. package/fesm2022/elite.framework-ng.ui.core-form-button.mjs +62 -0
  43. package/fesm2022/elite.framework-ng.ui.core-form-button.mjs.map +1 -0
  44. package/fesm2022/elite.framework-ng.ui.core-form-field.mjs +155 -0
  45. package/fesm2022/elite.framework-ng.ui.core-form-field.mjs.map +1 -0
  46. package/fesm2022/elite.framework-ng.ui.core-form-template.mjs +37 -0
  47. package/fesm2022/elite.framework-ng.ui.core-form-template.mjs.map +1 -0
  48. package/fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs +112 -0
  49. package/fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -0
  50. package/fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs +90 -0
  51. package/fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -0
  52. package/fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs +179 -0
  53. package/fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs.map +1 -0
  54. package/fesm2022/elite.framework-ng.ui.core-formly-button.mjs +74 -0
  55. package/fesm2022/elite.framework-ng.ui.core-formly-button.mjs.map +1 -0
  56. package/fesm2022/elite.framework-ng.ui.core-formly-presets.mjs +201 -0
  57. package/fesm2022/elite.framework-ng.ui.core-formly-presets.mjs.map +1 -0
  58. package/fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs +62 -0
  59. package/fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs.map +1 -0
  60. package/fesm2022/elite.framework-ng.ui.core-formly-ui.mjs +416 -0
  61. package/fesm2022/elite.framework-ng.ui.core-formly-ui.mjs.map +1 -0
  62. package/fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs +88 -0
  63. package/fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -0
  64. package/fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs +175 -0
  65. package/fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -0
  66. package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs +145 -0
  67. package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs.map +1 -0
  68. package/fesm2022/elite.framework-ng.ui.core-generic-card.mjs +219 -0
  69. package/fesm2022/elite.framework-ng.ui.core-generic-card.mjs.map +1 -0
  70. package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs +398 -0
  71. package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs.map +1 -0
  72. package/fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs +35 -0
  73. package/fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs.map +1 -0
  74. package/fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs +65 -0
  75. package/fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -0
  76. package/fesm2022/elite.framework-ng.ui.core-generic-loadingspinner.mjs +35 -0
  77. package/fesm2022/elite.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -0
  78. package/fesm2022/elite.framework-ng.ui.core-generic-search.mjs +98 -0
  79. package/fesm2022/elite.framework-ng.ui.core-generic-search.mjs.map +1 -0
  80. package/fesm2022/elite.framework-ng.ui.core-generic-selector.mjs +441 -0
  81. package/fesm2022/elite.framework-ng.ui.core-generic-selector.mjs.map +1 -0
  82. package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs +226 -0
  83. package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs.map +1 -0
  84. package/fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs +31 -0
  85. package/fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs.map +1 -0
  86. package/fesm2022/elite.framework-ng.ui.core-icon-picker.mjs +207 -0
  87. package/fesm2022/elite.framework-ng.ui.core-icon-picker.mjs.map +1 -0
  88. package/fesm2022/elite.framework-ng.ui.core-input-switch.mjs +106 -0
  89. package/fesm2022/elite.framework-ng.ui.core-input-switch.mjs.map +1 -0
  90. package/fesm2022/elite.framework-ng.ui.core-input-with-icon.mjs +67 -0
  91. package/fesm2022/elite.framework-ng.ui.core-input-with-icon.mjs.map +1 -0
  92. package/fesm2022/elite.framework-ng.ui.core-input.mjs +201 -0
  93. package/fesm2022/elite.framework-ng.ui.core-input.mjs.map +1 -0
  94. package/fesm2022/elite.framework-ng.ui.core-label-type.mjs +125 -0
  95. package/fesm2022/elite.framework-ng.ui.core-label-type.mjs.map +1 -0
  96. package/fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs +308 -0
  97. package/fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs.map +1 -0
  98. package/fesm2022/elite.framework-ng.ui.core-radio.mjs +118 -0
  99. package/fesm2022/elite.framework-ng.ui.core-radio.mjs.map +1 -0
  100. package/fesm2022/elite.framework-ng.ui.core-repeat.mjs +147 -0
  101. package/fesm2022/elite.framework-ng.ui.core-repeat.mjs.map +1 -0
  102. package/fesm2022/elite.framework-ng.ui.core-select.mjs +180 -0
  103. package/fesm2022/elite.framework-ng.ui.core-select.mjs.map +1 -0
  104. package/fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs +52 -0
  105. package/fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs.map +1 -0
  106. package/fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs +53 -0
  107. package/fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -0
  108. package/fesm2022/elite.framework-ng.ui.core-tabs.mjs +57 -0
  109. package/fesm2022/elite.framework-ng.ui.core-tabs.mjs.map +1 -0
  110. package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs +204 -0
  111. package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs.map +1 -0
  112. package/fesm2022/elite.framework-ng.ui.core-text-editor.mjs +56 -0
  113. package/fesm2022/elite.framework-ng.ui.core-text-editor.mjs.map +1 -0
  114. package/fesm2022/elite.framework-ng.ui.core-textarea.mjs +95 -0
  115. package/fesm2022/elite.framework-ng.ui.core-textarea.mjs.map +1 -0
  116. package/fesm2022/elite.framework-ng.ui.core-ui-button.mjs +101 -0
  117. package/fesm2022/elite.framework-ng.ui.core-ui-button.mjs.map +1 -0
  118. package/fesm2022/elite.framework-ng.ui.core-wrappers.mjs +186 -0
  119. package/fesm2022/elite.framework-ng.ui.core-wrappers.mjs.map +1 -0
  120. package/fesm2022/elite.framework-ng.ui.core.mjs +18 -0
  121. package/fesm2022/elite.framework-ng.ui.core.mjs.map +1 -0
  122. package/form-button/README.md +3 -0
  123. package/form-button/index.d.ts +17 -0
  124. package/form-field/README.md +3 -0
  125. package/form-field/index.d.ts +30 -0
  126. package/form-template/README.md +3 -0
  127. package/form-template/index.d.ts +16 -0
  128. package/formly-avatar-image/README.md +3 -0
  129. package/formly-avatar-image/index.d.ts +18 -0
  130. package/formly-avatar-label/README.md +3 -0
  131. package/formly-avatar-label/index.d.ts +36 -0
  132. package/formly-button/README.md +3 -0
  133. package/formly-button/index.d.ts +20 -0
  134. package/formly-button-selector/README.md +3 -0
  135. package/formly-button-selector/index.d.ts +35 -0
  136. package/formly-presets/README.md +3 -0
  137. package/formly-presets/index.d.ts +37 -0
  138. package/formly-split-button/README.md +3 -0
  139. package/formly-split-button/index.d.ts +23 -0
  140. package/formly-ui/README.md +3 -0
  141. package/formly-ui/index.d.ts +42 -0
  142. package/formly-username-with-domain/README.md +3 -0
  143. package/formly-username-with-domain/index.d.ts +19 -0
  144. package/generic-autocomplete/README.md +3 -0
  145. package/generic-autocomplete/index.d.ts +41 -0
  146. package/generic-button/README.md +3 -0
  147. package/generic-button/index.d.ts +42 -0
  148. package/generic-card/README.md +3 -0
  149. package/generic-card/index.d.ts +93 -0
  150. package/generic-crud-table/README.md +3 -0
  151. package/generic-crud-table/index.d.ts +129 -0
  152. package/generic-errormessage/README.md +3 -0
  153. package/generic-errormessage/index.d.ts +17 -0
  154. package/generic-formly-fields/README.md +3 -0
  155. package/generic-formly-fields/index.d.ts +26 -0
  156. package/generic-loadingspinner/README.md +3 -0
  157. package/generic-loadingspinner/index.d.ts +16 -0
  158. package/generic-search/README.md +3 -0
  159. package/generic-search/index.d.ts +36 -0
  160. package/generic-selector/README.md +3 -0
  161. package/generic-selector/index.d.ts +73 -0
  162. package/generic-table/README.md +3 -0
  163. package/generic-table/index.d.ts +66 -0
  164. package/header-wrapper/README.md +3 -0
  165. package/header-wrapper/index.d.ts +15 -0
  166. package/icon-picker/README.md +3 -0
  167. package/icon-picker/index.d.ts +30 -0
  168. package/index.d.ts +8 -0
  169. package/input/README.md +3 -0
  170. package/input/index.d.ts +42 -0
  171. package/input-switch/README.md +3 -0
  172. package/input-switch/index.d.ts +16 -0
  173. package/input-with-icon/README.md +3 -0
  174. package/input-with-icon/index.d.ts +17 -0
  175. package/label-type/README.md +3 -0
  176. package/label-type/index.d.ts +26 -0
  177. package/odata-query-builder/README.md +3 -0
  178. package/odata-query-builder/index.d.ts +87 -0
  179. package/package.json +219 -0
  180. package/radio/README.md +3 -0
  181. package/radio/index.d.ts +38 -0
  182. package/repeat/README.md +3 -0
  183. package/repeat/index.d.ts +24 -0
  184. package/select/README.md +3 -0
  185. package/select/index.d.ts +42 -0
  186. package/sidebar-cards/README.md +3 -0
  187. package/sidebar-cards/index.d.ts +25 -0
  188. package/sidebar-toggles/README.md +3 -0
  189. package/sidebar-toggles/index.d.ts +25 -0
  190. package/tabs/README.md +3 -0
  191. package/tabs/index.d.ts +17 -0
  192. package/tag-type/README.md +3 -0
  193. package/tag-type/index.d.ts +34 -0
  194. package/text-editor/README.md +3 -0
  195. package/text-editor/index.d.ts +16 -0
  196. package/textarea/README.md +3 -0
  197. package/textarea/index.d.ts +36 -0
  198. package/ui-button/README.md +3 -0
  199. package/ui-button/index.d.ts +33 -0
  200. package/wrappers/README.md +3 -0
  201. package/wrappers/index.d.ts +31 -0
@@ -0,0 +1,308 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, EventEmitter, Output, Input, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { FormGroup } from '@angular/forms';
6
+ import { FormlyForm } from '@ngx-formly/core';
7
+
8
+ class OdataQueryBuilderModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: OdataQueryBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: OdataQueryBuilderModule, imports: [CommonModule] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: OdataQueryBuilderModule, imports: [CommonModule] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: OdataQueryBuilderModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule],
17
+ }]
18
+ }] });
19
+
20
+ class ODataQueryBuilderComponent {
21
+ set entityFields(fields) {
22
+ this._entityFields = fields || [];
23
+ this.updateFieldOptions();
24
+ }
25
+ get entityFields() {
26
+ return this._entityFields;
27
+ }
28
+ _entityFields = [];
29
+ queryChange = new EventEmitter();
30
+ form = new FormGroup({});
31
+ model = {
32
+ conditionGroups: [
33
+ {
34
+ operator: 'and',
35
+ conditions: []
36
+ }
37
+ ],
38
+ orderBy: [],
39
+ groupBy: [],
40
+ top: null,
41
+ skip: null
42
+ };
43
+ fields = [
44
+ {
45
+ key: 'conditionGroups',
46
+ type: 'repeat',
47
+ props: {
48
+ addText: 'Add Condition Group',
49
+ required: true
50
+ },
51
+ fieldArray: {
52
+ fieldGroup: [
53
+ {
54
+ key: 'operator',
55
+ type: 'select',
56
+ props: {
57
+ label: 'Group Operator',
58
+ required: true,
59
+ options: [
60
+ { value: 'and', label: 'AND' },
61
+ { value: 'or', label: 'OR' }
62
+ ]
63
+ }
64
+ },
65
+ {
66
+ key: 'conditions',
67
+ type: 'repeat',
68
+ props: {
69
+ addText: 'Add Condition',
70
+ required: true
71
+ },
72
+ fieldArray: {
73
+ fieldGroup: [
74
+ {
75
+ key: 'field',
76
+ type: 'select',
77
+ props: {
78
+ label: 'Field',
79
+ required: true,
80
+ options: []
81
+ }
82
+ },
83
+ {
84
+ key: 'operator',
85
+ type: 'select',
86
+ props: {
87
+ label: 'Operator',
88
+ required: true,
89
+ options: [
90
+ { value: 'eq', label: 'Equals' },
91
+ { value: 'ne', label: 'Not Equals' },
92
+ { value: 'gt', label: 'Greater Than' },
93
+ { value: 'ge', label: 'Greater or Equal' },
94
+ { value: 'lt', label: 'Less Than' },
95
+ { value: 'le', label: 'Less or Equal' },
96
+ { value: 'contains', label: 'Contains' },
97
+ { value: 'startswith', label: 'Starts With' },
98
+ { value: 'endswith', label: 'Ends With' }
99
+ ]
100
+ }
101
+ },
102
+ {
103
+ key: 'value',
104
+ type: 'input',
105
+ props: {
106
+ label: 'Value',
107
+ required: true
108
+ },
109
+ expressions: {
110
+ 'props.type': (field) => {
111
+ const model = field.model;
112
+ if (!model?.field)
113
+ return 'string';
114
+ const selectedField = this.entityFields.find(f => f.value === model.field);
115
+ return selectedField?.type || 'string';
116
+ }
117
+ }
118
+ }
119
+ ]
120
+ }
121
+ }
122
+ ]
123
+ }
124
+ },
125
+ {
126
+ key: 'orderBy',
127
+ type: 'repeat',
128
+ props: {
129
+ addText: 'Add Order By'
130
+ },
131
+ fieldArray: {
132
+ fieldGroup: [
133
+ {
134
+ key: 'field',
135
+ type: 'select',
136
+ props: {
137
+ label: 'Field',
138
+ required: true,
139
+ options: []
140
+ }
141
+ },
142
+ {
143
+ key: 'direction',
144
+ type: 'select',
145
+ props: {
146
+ label: 'Direction',
147
+ required: true,
148
+ options: [
149
+ { value: 'asc', label: 'Ascending' },
150
+ { value: 'desc', label: 'Descending' }
151
+ ]
152
+ }
153
+ }
154
+ ]
155
+ }
156
+ },
157
+ {
158
+ key: 'groupBy',
159
+ type: 'repeat',
160
+ props: {
161
+ addText: 'Add Group By'
162
+ },
163
+ fieldArray: {
164
+ fieldGroup: [
165
+ {
166
+ key: 'field',
167
+ type: 'select',
168
+ props: {
169
+ label: 'Field',
170
+ required: true,
171
+ options: []
172
+ }
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ {
178
+ key: 'top',
179
+ type: 'input',
180
+ props: {
181
+ label: 'Top',
182
+ type: 'number',
183
+ min: 1
184
+ }
185
+ },
186
+ {
187
+ key: 'skip',
188
+ type: 'input',
189
+ props: {
190
+ label: 'Skip',
191
+ type: 'number',
192
+ min: 0
193
+ }
194
+ }
195
+ ];
196
+ updateFieldOptions() {
197
+ const fieldOptions = this.entityFields.map(f => ({ value: f.value, label: f.label }));
198
+ // Update conditions field options in all groups
199
+ const conditionGroupsField = this.fields.find(f => f.key === 'conditionGroups');
200
+ if (conditionGroupsField && conditionGroupsField.fieldArray?.fieldGroup) {
201
+ const conditionsField = conditionGroupsField.fieldArray.fieldGroup.find(f => f.key === 'conditions');
202
+ if (conditionsField && conditionsField.fieldArray?.fieldGroup) {
203
+ const fieldSelect = conditionsField.fieldArray.fieldGroup.find(f => f.key === 'field');
204
+ if (fieldSelect) {
205
+ fieldSelect.props.options = fieldOptions;
206
+ }
207
+ }
208
+ }
209
+ // Update orderBy field options
210
+ const orderByField = this.fields.find(f => f.key === 'orderBy');
211
+ if (orderByField && orderByField.fieldArray?.fieldGroup) {
212
+ const fieldSelect = orderByField.fieldArray.fieldGroup.find(f => f.key === 'field');
213
+ if (fieldSelect) {
214
+ fieldSelect.props.options = fieldOptions;
215
+ }
216
+ }
217
+ // Update groupBy field options
218
+ const groupByField = this.fields.find(f => f.key === 'groupBy');
219
+ if (groupByField && groupByField.fieldArray?.fieldGroup) {
220
+ const fieldSelect = groupByField.fieldArray.fieldGroup.find(f => f.key === 'field');
221
+ if (fieldSelect) {
222
+ fieldSelect.props.options = fieldOptions;
223
+ }
224
+ }
225
+ }
226
+ buildQuery() {
227
+ const queryParts = [];
228
+ // Handle condition groups
229
+ if (this.model.conditionGroups?.length > 0) {
230
+ const groupFilters = this.model.conditionGroups
231
+ .filter((group) => group.conditions?.length > 0)
232
+ .map((group) => {
233
+ const conditionParts = group.conditions
234
+ .filter((cond) => cond.field && cond.operator && cond.value !== undefined && cond.value !== null)
235
+ .map((cond) => {
236
+ const field = this.entityFields.find(f => f.value === cond.field);
237
+ let value = cond.value;
238
+ if (field?.type === 'string') {
239
+ value = `'${String(value).replace(/'/g, "''")}'`; // Escape single quotes
240
+ }
241
+ else if (field?.type === 'date' && value) {
242
+ value = new Date(value).toISOString();
243
+ }
244
+ else if (field?.type === 'boolean') {
245
+ value = value ? 'true' : 'false';
246
+ }
247
+ return `${cond.field} ${cond.operator} ${value}`;
248
+ });
249
+ if (conditionParts.length > 0) {
250
+ return conditionParts.length > 1
251
+ ? `(${conditionParts.join(` ${group.operator} `)})`
252
+ : conditionParts[0];
253
+ }
254
+ return null;
255
+ })
256
+ .filter(Boolean);
257
+ if (groupFilters.length > 0) {
258
+ queryParts.push(`$filter=${groupFilters.join(' and ')}`);
259
+ }
260
+ }
261
+ // Handle order by
262
+ if (this.model.orderBy?.length > 0) {
263
+ const orderParts = this.model.orderBy
264
+ .filter((order) => order.field && order.direction)
265
+ .map((order) => `${order.field} ${order.direction}`);
266
+ if (orderParts.length > 0) {
267
+ queryParts.push(`$orderby=${orderParts.join(', ')}`);
268
+ }
269
+ }
270
+ // Handle group by
271
+ if (this.model.groupBy?.length > 0) {
272
+ const groupParts = this.model.groupBy
273
+ .filter((group) => group.field)
274
+ .map((group) => group.field);
275
+ if (groupParts.length > 0) {
276
+ queryParts.push(`$groupby=${groupParts.join(',')}`);
277
+ }
278
+ }
279
+ // Handle top
280
+ if (this.model.top) {
281
+ queryParts.push(`$top=${this.model.top}`);
282
+ }
283
+ // Handle skip
284
+ if (this.model.skip) {
285
+ queryParts.push(`$skip=${this.model.skip}`);
286
+ }
287
+ const query = queryParts.join('&');
288
+ this.queryChange.emit(query);
289
+ return query;
290
+ }
291
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: ODataQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
292
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: ODataQueryBuilderComponent, isStandalone: true, selector: "app-odata-query-builder", inputs: { entityFields: "entityFields" }, outputs: { queryChange: "queryChange" }, ngImport: i0, template: "<div class=\"p-4 bg-white rounded-lg shadow-md\">\r\n <h2 class=\"text-xl font-semibold mb-4 text-gray-800\">OData Query Builder</h2>\r\n\r\n <formly-form\r\n [form]=\"form\"\r\n [model]=\"model\"\r\n [fields]=\"fields\"\r\n class=\"space-y-4\"\r\n ></formly-form>\r\n\r\n <div class=\"mt-6 flex justify-end space-x-3\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n label=\"Reset\"\r\n icon=\"pi pi-refresh\"\r\n class=\"p-button-outlined\"\r\n (click)=\"form.reset()\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n label=\"Build Query\"\r\n icon=\"pi pi-cog\"\r\n (click)=\"buildQuery()\"\r\n ></button>\r\n </div>\r\n\r\n <div *ngIf=\"form.valid && form.dirty\" class=\"mt-6 p-4 bg-gray-50 rounded\">\r\n <h3 class=\"font-medium text-gray-700 mb-2\">Generated OData Query:</h3>\r\n <pre class=\"p-3 bg-gray-100 rounded text-sm overflow-x-auto\">{{ buildQuery() }}</pre>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }] });
293
+ }
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: ODataQueryBuilderComponent, decorators: [{
295
+ type: Component,
296
+ args: [{ selector: 'app-odata-query-builder', imports: [CommonModule, FormlyForm], template: "<div class=\"p-4 bg-white rounded-lg shadow-md\">\r\n <h2 class=\"text-xl font-semibold mb-4 text-gray-800\">OData Query Builder</h2>\r\n\r\n <formly-form\r\n [form]=\"form\"\r\n [model]=\"model\"\r\n [fields]=\"fields\"\r\n class=\"space-y-4\"\r\n ></formly-form>\r\n\r\n <div class=\"mt-6 flex justify-end space-x-3\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n label=\"Reset\"\r\n icon=\"pi pi-refresh\"\r\n class=\"p-button-outlined\"\r\n (click)=\"form.reset()\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n label=\"Build Query\"\r\n icon=\"pi pi-cog\"\r\n (click)=\"buildQuery()\"\r\n ></button>\r\n </div>\r\n\r\n <div *ngIf=\"form.valid && form.dirty\" class=\"mt-6 p-4 bg-gray-50 rounded\">\r\n <h3 class=\"font-medium text-gray-700 mb-2\">Generated OData Query:</h3>\r\n <pre class=\"p-3 bg-gray-100 rounded text-sm overflow-x-auto\">{{ buildQuery() }}</pre>\r\n </div>\r\n</div>\r\n" }]
297
+ }], propDecorators: { entityFields: [{
298
+ type: Input
299
+ }], queryChange: [{
300
+ type: Output
301
+ }] } });
302
+
303
+ /**
304
+ * Generated bundle index. Do not edit.
305
+ */
306
+
307
+ export { ODataQueryBuilderComponent, OdataQueryBuilderModule };
308
+ //# sourceMappingURL=elite.framework-ng.ui.core-odata-query-builder.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elite.framework-ng.ui.core-odata-query-builder.mjs","sources":["../tmp-esm2022/odata-query-builder/lib/odata-query-builder-module.js","../tmp-esm2022/odata-query-builder/lib/odata-query-builder.component.js","../tmp-esm2022/odata-query-builder/elite.framework-ng.ui.core-odata-query-builder.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class OdataQueryBuilderModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OdataQueryBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: OdataQueryBuilderModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OdataQueryBuilderModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OdataQueryBuilderModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEtcXVlcnktYnVpbGRlci1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvb2RhdGEtcXVlcnktYnVpbGRlci9zcmMvbGliL29kYXRhLXF1ZXJ5LWJ1aWxkZXItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sdUJBQXVCO3VHQUF2Qix1QkFBdUI7d0dBQXZCLHVCQUF1QixZQUZ4QixZQUFZO3dHQUVYLHVCQUF1QixZQUZ4QixZQUFZOzsyRkFFWCx1QkFBdUI7a0JBSG5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgT2RhdGFRdWVyeUJ1aWxkZXJNb2R1bGUge31cbiJdfQ==","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class ODataQueryBuilderComponent {\n set entityFields(fields) {\n this._entityFields = fields || [];\n this.updateFieldOptions();\n }\n get entityFields() {\n return this._entityFields;\n }\n _entityFields = [];\n queryChange = new EventEmitter();\n form = new FormGroup({});\n model = {\n conditionGroups: [\n {\n operator: 'and',\n conditions: []\n }\n ],\n orderBy: [],\n groupBy: [],\n top: null,\n skip: null\n };\n fields = [\n {\n key: 'conditionGroups',\n type: 'repeat',\n props: {\n addText: 'Add Condition Group',\n required: true\n },\n fieldArray: {\n fieldGroup: [\n {\n key: 'operator',\n type: 'select',\n props: {\n label: 'Group Operator',\n required: true,\n options: [\n { value: 'and', label: 'AND' },\n { value: 'or', label: 'OR' }\n ]\n }\n },\n {\n key: 'conditions',\n type: 'repeat',\n props: {\n addText: 'Add Condition',\n required: true\n },\n fieldArray: {\n fieldGroup: [\n {\n key: 'field',\n type: 'select',\n props: {\n label: 'Field',\n required: true,\n options: []\n }\n },\n {\n key: 'operator',\n type: 'select',\n props: {\n label: 'Operator',\n required: true,\n options: [\n { value: 'eq', label: 'Equals' },\n { value: 'ne', label: 'Not Equals' },\n { value: 'gt', label: 'Greater Than' },\n { value: 'ge', label: 'Greater or Equal' },\n { value: 'lt', label: 'Less Than' },\n { value: 'le', label: 'Less or Equal' },\n { value: 'contains', label: 'Contains' },\n { value: 'startswith', label: 'Starts With' },\n { value: 'endswith', label: 'Ends With' }\n ]\n }\n },\n {\n key: 'value',\n type: 'input',\n props: {\n label: 'Value',\n required: true\n },\n expressions: {\n 'props.type': (field) => {\n const model = field.model;\n if (!model?.field)\n return 'string';\n const selectedField = this.entityFields.find(f => f.value === model.field);\n return selectedField?.type || 'string';\n }\n }\n }\n ]\n }\n }\n ]\n }\n },\n {\n key: 'orderBy',\n type: 'repeat',\n props: {\n addText: 'Add Order By'\n },\n fieldArray: {\n fieldGroup: [\n {\n key: 'field',\n type: 'select',\n props: {\n label: 'Field',\n required: true,\n options: []\n }\n },\n {\n key: 'direction',\n type: 'select',\n props: {\n label: 'Direction',\n required: true,\n options: [\n { value: 'asc', label: 'Ascending' },\n { value: 'desc', label: 'Descending' }\n ]\n }\n }\n ]\n }\n },\n {\n key: 'groupBy',\n type: 'repeat',\n props: {\n addText: 'Add Group By'\n },\n fieldArray: {\n fieldGroup: [\n {\n key: 'field',\n type: 'select',\n props: {\n label: 'Field',\n required: true,\n options: []\n }\n }\n ]\n }\n },\n {\n key: 'top',\n type: 'input',\n props: {\n label: 'Top',\n type: 'number',\n min: 1\n }\n },\n {\n key: 'skip',\n type: 'input',\n props: {\n label: 'Skip',\n type: 'number',\n min: 0\n }\n }\n ];\n updateFieldOptions() {\n const fieldOptions = this.entityFields.map(f => ({ value: f.value, label: f.label }));\n // Update conditions field options in all groups\n const conditionGroupsField = this.fields.find(f => f.key === 'conditionGroups');\n if (conditionGroupsField && conditionGroupsField.fieldArray?.fieldGroup) {\n const conditionsField = conditionGroupsField.fieldArray.fieldGroup.find(f => f.key === 'conditions');\n if (conditionsField && conditionsField.fieldArray?.fieldGroup) {\n const fieldSelect = conditionsField.fieldArray.fieldGroup.find(f => f.key === 'field');\n if (fieldSelect) {\n fieldSelect.props.options = fieldOptions;\n }\n }\n }\n // Update orderBy field options\n const orderByField = this.fields.find(f => f.key === 'orderBy');\n if (orderByField && orderByField.fieldArray?.fieldGroup) {\n const fieldSelect = orderByField.fieldArray.fieldGroup.find(f => f.key === 'field');\n if (fieldSelect) {\n fieldSelect.props.options = fieldOptions;\n }\n }\n // Update groupBy field options\n const groupByField = this.fields.find(f => f.key === 'groupBy');\n if (groupByField && groupByField.fieldArray?.fieldGroup) {\n const fieldSelect = groupByField.fieldArray.fieldGroup.find(f => f.key === 'field');\n if (fieldSelect) {\n fieldSelect.props.options = fieldOptions;\n }\n }\n }\n buildQuery() {\n const queryParts = [];\n // Handle condition groups\n if (this.model.conditionGroups?.length > 0) {\n const groupFilters = this.model.conditionGroups\n .filter((group) => group.conditions?.length > 0)\n .map((group) => {\n const conditionParts = group.conditions\n .filter((cond) => cond.field && cond.operator && cond.value !== undefined && cond.value !== null)\n .map((cond) => {\n const field = this.entityFields.find(f => f.value === cond.field);\n let value = cond.value;\n if (field?.type === 'string') {\n value = `'${String(value).replace(/'/g, \"''\")}'`; // Escape single quotes\n }\n else if (field?.type === 'date' && value) {\n value = new Date(value).toISOString();\n }\n else if (field?.type === 'boolean') {\n value = value ? 'true' : 'false';\n }\n return `${cond.field} ${cond.operator} ${value}`;\n });\n if (conditionParts.length > 0) {\n return conditionParts.length > 1\n ? `(${conditionParts.join(` ${group.operator} `)})`\n : conditionParts[0];\n }\n return null;\n })\n .filter(Boolean);\n if (groupFilters.length > 0) {\n queryParts.push(`$filter=${groupFilters.join(' and ')}`);\n }\n }\n // Handle order by\n if (this.model.orderBy?.length > 0) {\n const orderParts = this.model.orderBy\n .filter((order) => order.field && order.direction)\n .map((order) => `${order.field} ${order.direction}`);\n if (orderParts.length > 0) {\n queryParts.push(`$orderby=${orderParts.join(', ')}`);\n }\n }\n // Handle group by\n if (this.model.groupBy?.length > 0) {\n const groupParts = this.model.groupBy\n .filter((group) => group.field)\n .map((group) => group.field);\n if (groupParts.length > 0) {\n queryParts.push(`$groupby=${groupParts.join(',')}`);\n }\n }\n // Handle top\n if (this.model.top) {\n queryParts.push(`$top=${this.model.top}`);\n }\n // Handle skip\n if (this.model.skip) {\n queryParts.push(`$skip=${this.model.skip}`);\n }\n const query = queryParts.join('&');\n this.queryChange.emit(query);\n return query;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ODataQueryBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ODataQueryBuilderComponent, isStandalone: true, selector: \"app-odata-query-builder\", inputs: { entityFields: \"entityFields\" }, outputs: { queryChange: \"queryChange\" }, ngImport: i0, template: \"<div class=\\\"p-4 bg-white rounded-lg shadow-md\\\">\\r\\n <h2 class=\\\"text-xl font-semibold mb-4 text-gray-800\\\">OData Query Builder</h2>\\r\\n\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [fields]=\\\"fields\\\"\\r\\n class=\\\"space-y-4\\\"\\r\\n ></formly-form>\\r\\n\\r\\n <div class=\\\"mt-6 flex justify-end space-x-3\\\">\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n label=\\\"Reset\\\"\\r\\n icon=\\\"pi pi-refresh\\\"\\r\\n class=\\\"p-button-outlined\\\"\\r\\n (click)=\\\"form.reset()\\\"\\r\\n ></button>\\r\\n\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n label=\\\"Build Query\\\"\\r\\n icon=\\\"pi pi-cog\\\"\\r\\n (click)=\\\"buildQuery()\\\"\\r\\n ></button>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"form.valid && form.dirty\\\" class=\\\"mt-6 p-4 bg-gray-50 rounded\\\">\\r\\n <h3 class=\\\"font-medium text-gray-700 mb-2\\\">Generated OData Query:</h3>\\r\\n <pre class=\\\"p-3 bg-gray-100 rounded text-sm overflow-x-auto\\\">{{ buildQuery() }}</pre>\\r\\n </div>\\r\\n</div>\\r\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ODataQueryBuilderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-odata-query-builder', imports: [CommonModule, FormlyForm], template: \"<div class=\\\"p-4 bg-white rounded-lg shadow-md\\\">\\r\\n <h2 class=\\\"text-xl font-semibold mb-4 text-gray-800\\\">OData Query Builder</h2>\\r\\n\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [fields]=\\\"fields\\\"\\r\\n class=\\\"space-y-4\\\"\\r\\n ></formly-form>\\r\\n\\r\\n <div class=\\\"mt-6 flex justify-end space-x-3\\\">\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n label=\\\"Reset\\\"\\r\\n icon=\\\"pi pi-refresh\\\"\\r\\n class=\\\"p-button-outlined\\\"\\r\\n (click)=\\\"form.reset()\\\"\\r\\n ></button>\\r\\n\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n label=\\\"Build Query\\\"\\r\\n icon=\\\"pi pi-cog\\\"\\r\\n (click)=\\\"buildQuery()\\\"\\r\\n ></button>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"form.valid && form.dirty\\\" class=\\\"mt-6 p-4 bg-gray-50 rounded\\\">\\r\\n <h3 class=\\\"font-medium text-gray-700 mb-2\\\">Generated OData Query:</h3>\\r\\n <pre class=\\\"p-3 bg-gray-100 rounded text-sm overflow-x-auto\\\">{{ buildQuery() }}</pre>\\r\\n </div>\\r\\n</div>\\r\\n\" }]\n }], propDecorators: { entityFields: [{\n type: Input\n }], queryChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEtcXVlcnktYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvb2RhdGEtcXVlcnktYnVpbGRlci9zcmMvbGliL29kYXRhLXF1ZXJ5LWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL29kYXRhLXF1ZXJ5LWJ1aWxkZXIvc3JjL2xpYi9vZGF0YS1xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBdUMsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFnRC9DLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsSUFBYSxZQUFZLENBQUMsTUFBcUI7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNPLGFBQWEsR0FBa0IsRUFBRSxDQUFDO0lBRWhDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRW5ELElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixLQUFLLEdBQWU7UUFDbEIsZUFBZSxFQUFFO1lBQ2Y7Z0JBQ0UsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsVUFBVSxFQUFFLEVBQUU7YUFDZjtTQUNGO1FB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O1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7dUdBalNVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLHNLQ3BEdkMscy9CQWtDQSx5RERnQlksWUFBWSxtSUFBQyxVQUFVOzsyRkFFdEIsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHlCQUF5QixXQUcxQixDQUFDLFlBQVksRUFBQyxVQUFVLENBQUM7OEJBR3JCLFlBQVk7c0JBQXhCLEtBQUs7Z0JBU0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZpZWxkUHJvcHMsIEZvcm1seUZvcm0gfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRW50aXR5RmllbGQgfSBmcm9tICcuL29kYXRhLXR5cGVzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmludGVyZmFjZSBDb25kaXRpb25Hcm91cCB7XHJcbiAgb3BlcmF0b3I6ICdhbmQnIHwgJ29yJztcclxuICBjb25kaXRpb25zOiBDb25kaXRpb25bXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIENvbmRpdGlvbiB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICBvcGVyYXRvcjogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbn1cclxuXHJcbmludGVyZmFjZSBPcmRlckJ5IHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG4gIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYyc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBHcm91cEJ5IHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUXVlcnlNb2RlbCB7XHJcbiAgY29uZGl0aW9uR3JvdXBzOiBDb25kaXRpb25Hcm91cFtdO1xyXG4gIG9yZGVyQnk6IE9yZGVyQnlbXTtcclxuICBncm91cEJ5OiBHcm91cEJ5W107XHJcbiAgdG9wOiBudW1iZXIgfCBudWxsO1xyXG4gIHNraXA6IG51bWJlciB8IG51bGw7XHJcbn1cclxuXHJcbmludGVyZmFjZSBGaWVsZFNlbGVjdFByb3BzIGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XHJcbiAgb3B0aW9uczogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJlcGVhdEZpZWxkUHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcclxuICBhZGRUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBGaWVsZEFycmF5Q29uZmlnIGV4dGVuZHMgRm9ybWx5RmllbGRDb25maWcge1xyXG4gIGZpZWxkR3JvdXA6IEZvcm1seUZpZWxkQ29uZmlnW107XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW9kYXRhLXF1ZXJ5LWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vZGF0YS1xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vZGF0YS1xdWVyeS1idWlsZGVyLmNvbXBvbmVudC5jc3MnXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLEZvcm1seUZvcm1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPRGF0YVF1ZXJ5QnVpbGRlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgc2V0IGVudGl0eUZpZWxkcyhmaWVsZHM6IEVudGl0eUZpZWxkW10pIHtcclxuICAgIHRoaXMuX2VudGl0eUZpZWxkcyA9IGZpZWxkcyB8fCBbXTtcclxuICAgIHRoaXMudXBkYXRlRmllbGRPcHRpb25zKCk7XHJcbiAgfVxyXG4gIGdldCBlbnRpdHlGaWVsZHMoKTogRW50aXR5RmllbGRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RmllbGRzO1xyXG4gIH1cclxuICBwcml2YXRlIF9lbnRpdHlGaWVsZHM6IEVudGl0eUZpZWxkW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIHF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBtb2RlbDogUXVlcnlNb2RlbCA9IHtcclxuICAgIGNvbmRpdGlvbkdyb3VwczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxyXG4gICAgICAgIGNvbmRpdGlvbnM6IFtdXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBvcmRlckJ5OiBbXSxcclxuICAgIGdyb3VwQnk6IFtdLFxyXG4gICAgdG9wOiBudWxsLFxyXG4gICAgc2tpcDogbnVsbFxyXG4gIH07XHJcblxyXG4gIGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtcclxuICAgIHtcclxuICAgICAga2V5OiAnY29uZGl0aW9uR3JvdXBzJyxcclxuICAgICAgdHlwZTogJ3JlcGVhdCcsXHJcbiAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgYWRkVGV4dDogJ0FkZCBDb25kaXRpb24gR3JvdXAnLFxyXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICAgIH0gYXMgUmVwZWF0RmllbGRQcm9wcyxcclxuICAgICAgZmllbGRBcnJheToge1xyXG4gICAgICAgIGZpZWxkR3JvdXA6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAga2V5OiAnb3BlcmF0b3InLFxyXG4gICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgICBsYWJlbDogJ0dyb3VwIE9wZXJhdG9yJyxcclxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnYW5kJywgbGFiZWw6ICdBTkQnIH0sXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnb3InLCBsYWJlbDogJ09SJyB9XHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9IGFzIEZpZWxkU2VsZWN0UHJvcHNcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleTogJ2NvbmRpdGlvbnMnLFxyXG4gICAgICAgICAgICB0eXBlOiAncmVwZWF0JyxcclxuICAgICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgICBhZGRUZXh0OiAnQWRkIENvbmRpdGlvbicsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgICAgICAgICAgfSBhcyBSZXBlYXRGaWVsZFByb3BzLFxyXG4gICAgICAgICAgICBmaWVsZEFycmF5OiB7XHJcbiAgICAgICAgICAgICAgZmllbGRHcm91cDogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBrZXk6ICdmaWVsZCcsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmllbGQnLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtdXHJcbiAgICAgICAgICAgICAgICAgIH0gYXMgRmllbGRTZWxlY3RQcm9wc1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAga2V5OiAnb3BlcmF0b3InLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ09wZXJhdG9yJyxcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZXEnLCBsYWJlbDogJ0VxdWFscycgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICduZScsIGxhYmVsOiAnTm90IEVxdWFscycgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAnR3JlYXRlciBUaGFuJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2dlJywgbGFiZWw6ICdHcmVhdGVyIG9yIEVxdWFsJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2x0JywgbGFiZWw6ICdMZXNzIFRoYW4nIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnbGUnLCBsYWJlbDogJ0xlc3Mgb3IgRXF1YWwnIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ0NvbnRhaW5zJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ3N0YXJ0c3dpdGgnLCBsYWJlbDogJ1N0YXJ0cyBXaXRoJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2VuZHN3aXRoJywgbGFiZWw6ICdFbmRzIFdpdGgnIH1cclxuICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgIH0gYXMgRmllbGRTZWxlY3RQcm9wc1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAga2V5OiAndmFsdWUnLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxyXG4gICAgICAgICAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmFsdWUnLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJ3Byb3BzLnR5cGUnOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlbCA9IGZpZWxkLm1vZGVsIGFzIENvbmRpdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kZWw/LmZpZWxkKSByZXR1cm4gJ3N0cmluZyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gdGhpcy5lbnRpdHlGaWVsZHMuZmluZChmID0+IGYudmFsdWUgPT09IG1vZGVsLmZpZWxkKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEZpZWxkPy50eXBlIHx8ICdzdHJpbmcnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSBhcyBGaWVsZEFycmF5Q29uZmlnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9IGFzIEZpZWxkQXJyYXlDb25maWdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGtleTogJ29yZGVyQnknLFxyXG4gICAgICB0eXBlOiAncmVwZWF0JyxcclxuICAgICAgcHJvcHM6IHtcclxuICAgICAgICBhZGRUZXh0OiAnQWRkIE9yZGVyIEJ5J1xyXG4gICAgICB9IGFzIFJlcGVhdEZpZWxkUHJvcHMsXHJcbiAgICAgIGZpZWxkQXJyYXk6IHtcclxuICAgICAgICBmaWVsZEdyb3VwOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleTogJ2ZpZWxkJyxcclxuICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXHJcbiAgICAgICAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgICAgICAgbGFiZWw6ICdGaWVsZCcsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgb3B0aW9uczogW11cclxuICAgICAgICAgICAgfSBhcyBGaWVsZFNlbGVjdFByb3BzXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBrZXk6ICdkaXJlY3Rpb24nLFxyXG4gICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgICBsYWJlbDogJ0RpcmVjdGlvbicsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2FzYycsIGxhYmVsOiAnQXNjZW5kaW5nJyB9LFxyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2Rlc2MnLCBsYWJlbDogJ0Rlc2NlbmRpbmcnIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0gYXMgRmllbGRTZWxlY3RQcm9wc1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBhcyBGaWVsZEFycmF5Q29uZmlnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBrZXk6ICdncm91cEJ5JyxcclxuICAgICAgdHlwZTogJ3JlcGVhdCcsXHJcbiAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgYWRkVGV4dDogJ0FkZCBHcm91cCBCeSdcclxuICAgICAgfSBhcyBSZXBlYXRGaWVsZFByb3BzLFxyXG4gICAgICBmaWVsZEFycmF5OiB7XHJcbiAgICAgICAgZmllbGRHcm91cDogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBrZXk6ICdmaWVsZCcsXHJcbiAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICAgIGxhYmVsOiAnRmllbGQnLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgIG9wdGlvbnM6IFtdXHJcbiAgICAgICAgICAgIH0gYXMgRmllbGRTZWxlY3RQcm9wc1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBhcyBGaWVsZEFycmF5Q29uZmlnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBrZXk6ICd0b3AnLFxyXG4gICAgICB0eXBlOiAnaW5wdXQnLFxyXG4gICAgICBwcm9wczoge1xyXG4gICAgICAgIGxhYmVsOiAnVG9wJyxcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBtaW46IDFcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAga2V5OiAnc2tpcCcsXHJcbiAgICAgIHR5cGU6ICdpbnB1dCcsXHJcbiAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgbGFiZWw6ICdTa2lwJyxcclxuICAgICAgICB0eXBlOiAnbnVtYmVyJyxcclxuICAgICAgICBtaW46IDBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIF07XHJcblxyXG5cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGaWVsZE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWVsZE9wdGlvbnMgPSB0aGlzLmVudGl0eUZpZWxkcy5tYXAoZiA9PiAoeyB2YWx1ZTogZi52YWx1ZSwgbGFiZWw6IGYubGFiZWwgfSkpO1xyXG5cclxuICAgIC8vIFVwZGF0ZSBjb25kaXRpb25zIGZpZWxkIG9wdGlvbnMgaW4gYWxsIGdyb3Vwc1xyXG4gICAgY29uc3QgY29uZGl0aW9uR3JvdXBzRmllbGQgPSB0aGlzLmZpZWxkcy5maW5kKGYgPT4gZi5rZXkgPT09ICdjb25kaXRpb25Hcm91cHMnKTtcclxuICAgIGlmIChjb25kaXRpb25Hcm91cHNGaWVsZCAmJiAoY29uZGl0aW9uR3JvdXBzRmllbGQuZmllbGRBcnJheSBhcyBGaWVsZEFycmF5Q29uZmlnKT8uZmllbGRHcm91cCkge1xyXG4gICAgICBjb25zdCBjb25kaXRpb25zRmllbGQgPSAoY29uZGl0aW9uR3JvdXBzRmllbGQuZmllbGRBcnJheSBhcyBGaWVsZEFycmF5Q29uZmlnKS5maWVsZEdyb3VwLmZpbmQoZiA9PiBmLmtleSA9PT0gJ2NvbmRpdGlvbnMnKTtcclxuICAgICAgaWYgKGNvbmRpdGlvbnNGaWVsZCAmJiAoY29uZGl0aW9uc0ZpZWxkLmZpZWxkQXJyYXkgYXMgRmllbGRBcnJheUNvbmZpZyk/LmZpZWxkR3JvdXApIHtcclxuICAgICAgICBjb25zdCBmaWVsZFNlbGVjdCA9IChjb25kaXRpb25zRmllbGQuZmllbGRBcnJheSBhcyBGaWVsZEFycmF5Q29uZmlnKS5maWVsZEdyb3VwLmZpbmQoZiA9PiBmLmtleSA9PT0gJ2ZpZWxkJyk7XHJcbiAgICAgICAgaWYgKGZpZWxkU2VsZWN0KSB7XHJcbiAgICAgICAgICAoZmllbGRTZWxlY3QucHJvcHMgYXMgRmllbGRTZWxlY3RQcm9wcykub3B0aW9ucyA9IGZpZWxkT3B0aW9ucztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBVcGRhdGUgb3JkZXJCeSBmaWVsZCBvcHRpb25zXHJcbiAgICBjb25zdCBvcmRlckJ5RmllbGQgPSB0aGlzLmZpZWxkcy5maW5kKGYgPT4gZi5rZXkgPT09ICdvcmRlckJ5Jyk7XHJcbiAgICBpZiAob3JkZXJCeUZpZWxkICYmIChvcmRlckJ5RmllbGQuZmllbGRBcnJheSBhcyBGaWVsZEFycmF5Q29uZmlnKT8uZmllbGRHcm91cCkge1xyXG4gICAgICBjb25zdCBmaWVsZFNlbGVjdCA9IChvcmRlckJ5RmllbGQuZmllbGRBcnJheSBhcyBGaWVsZEFycmF5Q29uZmlnKS5maWVsZEdyb3VwLmZpbmQoZiA9PiBmLmtleSA9PT0gJ2ZpZWxkJyk7XHJcbiAgICAgIGlmIChmaWVsZFNlbGVjdCkge1xyXG4gICAgICAgIChmaWVsZFNlbGVjdC5wcm9wcyBhcyBGaWVsZFNlbGVjdFByb3BzKS5vcHRpb25zID0gZmllbGRPcHRpb25zO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGdyb3VwQnkgZmllbGQgb3B0aW9uc1xyXG4gICAgY29uc3QgZ3JvdXBCeUZpZWxkID0gdGhpcy5maWVsZHMuZmluZChmID0+IGYua2V5ID09PSAnZ3JvdXBCeScpO1xyXG4gICAgaWYgKGdyb3VwQnlGaWVsZCAmJiAoZ3JvdXBCeUZpZWxkLmZpZWxkQXJyYXkgYXMgRmllbGRBcnJheUNvbmZpZyk/LmZpZWxkR3JvdXApIHtcclxuICAgICAgY29uc3QgZmllbGRTZWxlY3QgPSAoZ3JvdXBCeUZpZWxkLmZpZWxkQXJyYXkgYXMgRmllbGRBcnJheUNvbmZpZykuZmllbGRHcm91cC5maW5kKGYgPT4gZi5rZXkgPT09ICdmaWVsZCcpO1xyXG4gICAgICBpZiAoZmllbGRTZWxlY3QpIHtcclxuICAgICAgICAoZmllbGRTZWxlY3QucHJvcHMgYXMgRmllbGRTZWxlY3RQcm9wcykub3B0aW9ucyA9IGZpZWxkT3B0aW9ucztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnVpbGRRdWVyeSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcXVlcnlQYXJ0cyA9IFtdO1xyXG5cclxuICAgIC8vIEhhbmRsZSBjb25kaXRpb24gZ3JvdXBzXHJcbiAgICBpZiAodGhpcy5tb2RlbC5jb25kaXRpb25Hcm91cHM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZ3JvdXBGaWx0ZXJzID0gdGhpcy5tb2RlbC5jb25kaXRpb25Hcm91cHNcclxuICAgICAgICAuZmlsdGVyKChncm91cDogQ29uZGl0aW9uR3JvdXApID0+IGdyb3VwLmNvbmRpdGlvbnM/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgLm1hcCgoZ3JvdXA6IENvbmRpdGlvbkdyb3VwKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb25kaXRpb25QYXJ0cyA9IGdyb3VwLmNvbmRpdGlvbnNcclxuICAgICAgICAgICAgLmZpbHRlcigoY29uZDogQ29uZGl0aW9uKSA9PiBjb25kLmZpZWxkICYmIGNvbmQub3BlcmF0b3IgJiYgY29uZC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGNvbmQudmFsdWUgIT09IG51bGwpXHJcbiAgICAgICAgICAgIC5tYXAoKGNvbmQ6IENvbmRpdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5lbnRpdHlGaWVsZHMuZmluZChmID0+IGYudmFsdWUgPT09IGNvbmQuZmllbGQpO1xyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNvbmQudmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gYCcke1N0cmluZyh2YWx1ZSkucmVwbGFjZSgvJy9nLCBcIicnXCIpfSdgOyAvLyBFc2NhcGUgc2luZ2xlIHF1b3Rlc1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQ/LnR5cGUgPT09ICdkYXRlJyAmJiB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkPy50eXBlID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGAke2NvbmQuZmllbGR9ICR7Y29uZC5vcGVyYXRvcn0gJHt2YWx1ZX1gO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBpZiAoY29uZGl0aW9uUGFydHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uUGFydHMubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICAgID8gYCgke2NvbmRpdGlvblBhcnRzLmpvaW4oYCAke2dyb3VwLm9wZXJhdG9yfSBgKX0pYFxyXG4gICAgICAgICAgICAgIDogY29uZGl0aW9uUGFydHNbMF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XHJcblxyXG4gICAgICBpZiAoZ3JvdXBGaWx0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBxdWVyeVBhcnRzLnB1c2goYCRmaWx0ZXI9JHtncm91cEZpbHRlcnMuam9pbignIGFuZCAnKX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhbmRsZSBvcmRlciBieVxyXG4gICAgaWYgKHRoaXMubW9kZWwub3JkZXJCeT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBvcmRlclBhcnRzID0gdGhpcy5tb2RlbC5vcmRlckJ5XHJcbiAgICAgICAgLmZpbHRlcigob3JkZXI6IE9yZGVyQnkpID0+IG9yZGVyLmZpZWxkICYmIG9yZGVyLmRpcmVjdGlvbilcclxuICAgICAgICAubWFwKChvcmRlcjogT3JkZXJCeSkgPT4gYCR7b3JkZXIuZmllbGR9ICR7b3JkZXIuZGlyZWN0aW9ufWApO1xyXG5cclxuICAgICAgaWYgKG9yZGVyUGFydHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5UGFydHMucHVzaChgJG9yZGVyYnk9JHtvcmRlclBhcnRzLmpvaW4oJywgJyl9YCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBIYW5kbGUgZ3JvdXAgYnlcclxuICAgIGlmICh0aGlzLm1vZGVsLmdyb3VwQnk/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZ3JvdXBQYXJ0cyA9IHRoaXMubW9kZWwuZ3JvdXBCeVxyXG4gICAgICAgIC5maWx0ZXIoKGdyb3VwOiBHcm91cEJ5KSA9PiBncm91cC5maWVsZClcclxuICAgICAgICAubWFwKChncm91cDogR3JvdXBCeSkgPT4gZ3JvdXAuZmllbGQpO1xyXG5cclxuICAgICAgaWYgKGdyb3VwUGFydHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5UGFydHMucHVzaChgJGdyb3VwYnk9JHtncm91cFBhcnRzLmpvaW4oJywnKX1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhbmRsZSB0b3BcclxuICAgIGlmICh0aGlzLm1vZGVsLnRvcCkge1xyXG4gICAgICBxdWVyeVBhcnRzLnB1c2goYCR0b3A9JHt0aGlzLm1vZGVsLnRvcH1gKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBIYW5kbGUgc2tpcFxyXG4gICAgaWYgKHRoaXMubW9kZWwuc2tpcCkge1xyXG4gICAgICBxdWVyeVBhcnRzLnB1c2goYCRza2lwPSR7dGhpcy5tb2RlbC5za2lwfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHF1ZXJ5ID0gcXVlcnlQYXJ0cy5qb2luKCcmJyk7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQocXVlcnkpO1xyXG4gICAgcmV0dXJuIHF1ZXJ5O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicC00IGJnLXdoaXRlIHJvdW5kZWQtbGcgc2hhZG93LW1kXCI+XHJcbiAgPGgyIGNsYXNzPVwidGV4dC14bCBmb250LXNlbWlib2xkIG1iLTQgdGV4dC1ncmF5LTgwMFwiPk9EYXRhIFF1ZXJ5IEJ1aWxkZXI8L2gyPlxyXG5cclxuICA8Zm9ybWx5LWZvcm1cclxuICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgIGNsYXNzPVwic3BhY2UteS00XCJcclxuICA+PC9mb3JtbHktZm9ybT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm10LTYgZmxleCBqdXN0aWZ5LWVuZCBzcGFjZS14LTNcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgcEJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgbGFiZWw9XCJSZXNldFwiXHJcbiAgICAgIGljb249XCJwaSBwaS1yZWZyZXNoXCJcclxuICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZFwiXHJcbiAgICAgIChjbGljayk9XCJmb3JtLnJlc2V0KClcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgcEJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgbGFiZWw9XCJCdWlsZCBRdWVyeVwiXHJcbiAgICAgIGljb249XCJwaSBwaS1jb2dcIlxyXG4gICAgICAoY2xpY2spPVwiYnVpbGRRdWVyeSgpXCJcclxuICAgID48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImZvcm0udmFsaWQgJiYgZm9ybS5kaXJ0eVwiIGNsYXNzPVwibXQtNiBwLTQgYmctZ3JheS01MCByb3VuZGVkXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIG1iLTJcIj5HZW5lcmF0ZWQgT0RhdGEgUXVlcnk6PC9oMz5cclxuICAgIDxwcmUgY2xhc3M9XCJwLTMgYmctZ3JheS0xMDAgcm91bmRlZCB0ZXh0LXNtIG92ZXJmbG93LXgtYXV0b1wiPnt7IGJ1aWxkUXVlcnkoKSB9fTwvcHJlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtb2RhdGEtcXVlcnktYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9vZGF0YS1xdWVyeS1idWlsZGVyL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1vZGF0YS1xdWVyeS1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@angular/forms';
6
+ import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i1$1 from '@ngx-formly/core';
8
+ import { FieldType, FormlyModule } from '@ngx-formly/core';
9
+ import * as i3 from 'primeng/radiobutton';
10
+ import { RadioButtonModule } from 'primeng/radiobutton';
11
+ import * as i4 from '@ngx-formly/core/select';
12
+ import { FormlySelectModule } from '@ngx-formly/core/select';
13
+ import { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';
14
+
15
+ class RadioModule {
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: RadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: RadioModule, imports: [CommonModule] });
18
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: RadioModule, imports: [CommonModule] });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: RadioModule, decorators: [{
21
+ type: NgModule,
22
+ args: [{
23
+ imports: [CommonModule],
24
+ }]
25
+ }] });
26
+
27
+ class FormlyFieldRadio extends FieldType {
28
+ get disabledControl() {
29
+ return new UntypedFormControl({ value: this.formControl.value, disabled: true });
30
+ }
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyFieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: FormlyFieldRadio, isStandalone: false, selector: "formly-field-primeng-radio", usesInheritance: true, ngImport: i0, template: `
33
+ <div
34
+ class="p-field-radiobutton"
35
+ *ngFor="let option of props.options | formlySelectOptions: field | async; let index = index"
36
+ >
37
+ <p-radioButton
38
+ [name]="field.name || id"
39
+ [formControl]="option.disabled ? disabledControl : formControl"
40
+ [value]="option.value"
41
+ [inputId]="id + index"
42
+ >
43
+ </p-radioButton>
44
+ <label [for]="id + index" class="ml-2">{{ option.label }}</label>
45
+ </div>
46
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "styleClass", "autofocus", "binary", "variant", "size"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.LegacyFormlySelectOptionsPipe, name: "formlySelectOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyFieldRadio, decorators: [{
49
+ type: Component,
50
+ args: [{
51
+ selector: 'formly-field-primeng-radio',
52
+ template: `
53
+ <div
54
+ class="p-field-radiobutton"
55
+ *ngFor="let option of props.options | formlySelectOptions: field | async; let index = index"
56
+ >
57
+ <p-radioButton
58
+ [name]="field.name || id"
59
+ [formControl]="option.disabled ? disabledControl : formControl"
60
+ [value]="option.value"
61
+ [inputId]="id + index"
62
+ >
63
+ </p-radioButton>
64
+ <label [for]="id + index" class="ml-2">{{ option.label }}</label>
65
+ </div>
66
+ `,
67
+ changeDetection: ChangeDetectionStrategy.OnPush,
68
+ standalone: false
69
+ }]
70
+ }] });
71
+
72
+ function withFormlyFieldRadio() {
73
+ return {
74
+ types: [
75
+ {
76
+ name: 'radio',
77
+ component: FormlyFieldRadio,
78
+ wrappers: ['form-field'],
79
+ },
80
+ ],
81
+ };
82
+ }
83
+
84
+ class FormlyRadioModule {
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: FormlyRadioModule, declarations: [FormlyFieldRadio], imports: [CommonModule,
87
+ ReactiveFormsModule,
88
+ RadioButtonModule,
89
+ FormlyFormFieldModule,
90
+ FormlySelectModule, i1$1.FormlyModule] });
91
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyRadioModule, imports: [CommonModule,
92
+ ReactiveFormsModule,
93
+ RadioButtonModule,
94
+ FormlyFormFieldModule,
95
+ FormlySelectModule,
96
+ FormlyModule.forChild(withFormlyFieldRadio())] });
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyRadioModule, decorators: [{
99
+ type: NgModule,
100
+ args: [{
101
+ declarations: [FormlyFieldRadio],
102
+ imports: [
103
+ CommonModule,
104
+ ReactiveFormsModule,
105
+ RadioButtonModule,
106
+ FormlyFormFieldModule,
107
+ FormlySelectModule,
108
+ FormlyModule.forChild(withFormlyFieldRadio()),
109
+ ],
110
+ }]
111
+ }] });
112
+
113
+ /**
114
+ * Generated bundle index. Do not edit.
115
+ */
116
+
117
+ export { FormlyFieldRadio, FormlyRadioModule, RadioModule, withFormlyFieldRadio };
118
+ //# sourceMappingURL=elite.framework-ng.ui.core-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elite.framework-ng.ui.core-radio.mjs","sources":["../tmp-esm2022/radio/lib/radio-module.js","../tmp-esm2022/radio/lib/radio.type.js","../tmp-esm2022/radio/lib/radio.config.js","../tmp-esm2022/radio/lib/radio.module.js","../tmp-esm2022/radio/elite.framework-ng.ui.core-radio.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class RadioModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: RadioModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RadioModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RadioModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3JhZGlvL3NyYy9saWIvcmFkaW8tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sV0FBVzt1R0FBWCxXQUFXO3dHQUFYLFdBQVcsWUFGWixZQUFZO3dHQUVYLFdBQVcsWUFGWixZQUFZOzsyRkFFWCxXQUFXO2tCQUh2QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvTW9kdWxlIHt9XG4iXX0=","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"primeng/radiobutton\";\nimport * as i4 from \"@ngx-formly/core/select\";\nexport class FormlyFieldRadio extends FieldType {\n get disabledControl() {\n return new UntypedFormControl({ value: this.formControl.value, disabled: true });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: FormlyFieldRadio, isStandalone: false, selector: \"formly-field-primeng-radio\", usesInheritance: true, ngImport: i0, template: `\n <div\n class=\"p-field-radiobutton\"\n *ngFor=\"let option of props.options | formlySelectOptions: field | async; let index = index\"\n >\n <p-radioButton\n [name]=\"field.name || id\"\n [formControl]=\"option.disabled ? disabledControl : formControl\"\n [value]=\"option.value\"\n [inputId]=\"id + index\"\n >\n </p-radioButton>\n <label [for]=\"id + index\" class=\"ml-2\">{{ option.label }}</label>\n </div>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: i3.RadioButton, selector: \"p-radioButton, p-radiobutton, p-radio-button\", inputs: [\"value\", \"tabindex\", \"inputId\", \"ariaLabelledBy\", \"ariaLabel\", \"styleClass\", \"autofocus\", \"binary\", \"variant\", \"size\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i4.LegacyFormlySelectOptionsPipe, name: \"formlySelectOptions\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldRadio, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-primeng-radio',\n template: `\n <div\n class=\"p-field-radiobutton\"\n *ngFor=\"let option of props.options | formlySelectOptions: field | async; let index = index\"\n >\n <p-radioButton\n [name]=\"field.name || id\"\n [formControl]=\"option.disabled ? disabledControl : formControl\"\n [value]=\"option.value\"\n [inputId]=\"id + index\"\n >\n </p-radioButton>\n <label [for]=\"id + index\" class=\"ml-2\">{{ option.label }}</label>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9yYWRpby9zcmMvbGliL3JhZGlvLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFzQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUE4QmpGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUFzQztJQUMxRSxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7dUdBSFUsZ0JBQWdCOzJGQUFoQixnQkFBZ0IsOEdBbEJqQjs7Ozs7Ozs7Ozs7Ozs7R0FjVDs7MkZBSVUsZ0JBQWdCO2tCQXBCNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBQyxLQUFLO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5pbXBvcnQgeyBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2Zvcm0tZmllbGQnO1xuXG50eXBlIFJhZGlvUHJvcHMgPSBGb3JtbHlGaWVsZFByb3BzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1seVJhZGlvRmllbGRDb25maWcgZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxSYWRpb1Byb3BzPiB7XG4gIHR5cGU6ICdyYWRpbycgfCBUeXBlPEZvcm1seUZpZWxkUmFkaW8+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktZmllbGQtcHJpbWVuZy1yYWRpbycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwLWZpZWxkLXJhZGlvYnV0dG9uXCJcbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcHJvcHMub3B0aW9ucyB8IGZvcm1seVNlbGVjdE9wdGlvbnM6IGZpZWxkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICA+XG4gICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICBbbmFtZV09XCJmaWVsZC5uYW1lIHx8IGlkXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cIm9wdGlvbi5kaXNhYmxlZCA/IGRpc2FibGVkQ29udHJvbCA6IGZvcm1Db250cm9sXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIFtpbnB1dElkXT1cImlkICsgaW5kZXhcIlxuICAgICAgPlxuICAgICAgPC9wLXJhZGlvQnV0dG9uPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWQgKyBpbmRleFwiIGNsYXNzPVwibWwtMlwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOmZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkUmFkaW8gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFJhZGlvUHJvcHM+PiB7XG4gIGdldCBkaXNhYmxlZENvbnRyb2woKSB7XG4gICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5mb3JtQ29udHJvbC52YWx1ZSwgZGlzYWJsZWQ6IHRydWUgfSk7XG4gIH1cbn1cbiJdfQ==","import { FormlyFieldRadio } from './radio.type';\nexport function withFormlyFieldRadio() {\n return {\n types: [\n {\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field'],\n },\n ],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3JhZGlvL3NyYy9saWIvcmFkaW8uY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU87UUFDTCxLQUFLLEVBQUU7WUFDTDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDekI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnT3B0aW9uIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZFJhZGlvIH0gZnJvbSAnLi9yYWRpby50eXBlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhGb3JtbHlGaWVsZFJhZGlvKCk6IENvbmZpZ09wdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3JhZGlvJyxcbiAgICAgICAgY29tcG9uZW50OiBGb3JtbHlGaWVsZFJhZGlvLFxuICAgICAgICB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { FormlyFieldRadio } from './radio.type';\nimport { withFormlyFieldRadio } from './radio.config';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-formly/core\";\nexport class FormlyRadioModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyRadioModule, declarations: [FormlyFieldRadio], imports: [CommonModule,\n ReactiveFormsModule,\n RadioButtonModule,\n FormlyFormFieldModule,\n FormlySelectModule, i1.FormlyModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyRadioModule, imports: [CommonModule,\n ReactiveFormsModule,\n RadioButtonModule,\n FormlyFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldRadio())] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyRadioModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldRadio],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n RadioButtonModule,\n FormlyFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldRadio()),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3JhZGlvL3NyYy9saWIvcmFkaW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQWMvRSxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixpQkFYYixnQkFBZ0IsYUFFN0IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFFakIscUJBQXFCO1lBQ3JCLGtCQUFrQjt3R0FJVCxpQkFBaUIsWUFUMUIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFFakIscUJBQXFCO1lBQ3JCLGtCQUFrQjtZQUNsQixZQUFZLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUM7OzJGQUdwQyxpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUVqQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO3FCQUM5QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5U2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZS9zZWxlY3QnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IEZvcm1seUZpZWxkUmFkaW8gfSBmcm9tICcuL3JhZGlvLnR5cGUnO1xuaW1wb3J0IHsgd2l0aEZvcm1seUZpZWxkUmFkaW8gfSBmcm9tICcuL3JhZGlvLmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtbHlGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZm9ybS1maWVsZCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0Zvcm1seUZpZWxkUmFkaW9dLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXG5cbiAgICBGb3JtbHlGb3JtRmllbGRNb2R1bGUsXG4gICAgRm9ybWx5U2VsZWN0TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh3aXRoRm9ybWx5RmllbGRSYWRpbygpKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5UmFkaW9Nb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtcmFkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvcmFkaW8vc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLXJhZGlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}