@es.framework/ng.ui.core 2.0.58

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 (246) hide show
  1. package/README.md +3 -0
  2. package/attachments/README.md +3 -0
  3. package/base-crud/README.md +3 -0
  4. package/breadcrumb/README.md +3 -0
  5. package/checkbox/README.md +3 -0
  6. package/collapsible/README.md +3 -0
  7. package/color-picker/README.md +3 -0
  8. package/column-settings-popover/README.md +3 -0
  9. package/custom-switch/README.md +3 -0
  10. package/datepicker/README.md +3 -0
  11. package/deactivation-reason/README.md +3 -0
  12. package/excel-import/README.md +3 -0
  13. package/fesm2022/es.framework-ng.ui.core-attachments.mjs +217 -0
  14. package/fesm2022/es.framework-ng.ui.core-attachments.mjs.map +1 -0
  15. package/fesm2022/es.framework-ng.ui.core-base-crud.mjs +370 -0
  16. package/fesm2022/es.framework-ng.ui.core-base-crud.mjs.map +1 -0
  17. package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs +145 -0
  18. package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs.map +1 -0
  19. package/fesm2022/es.framework-ng.ui.core-checkbox.mjs +131 -0
  20. package/fesm2022/es.framework-ng.ui.core-checkbox.mjs.map +1 -0
  21. package/fesm2022/es.framework-ng.ui.core-collapsible.mjs +90 -0
  22. package/fesm2022/es.framework-ng.ui.core-collapsible.mjs.map +1 -0
  23. package/fesm2022/es.framework-ng.ui.core-color-picker.mjs +87 -0
  24. package/fesm2022/es.framework-ng.ui.core-color-picker.mjs.map +1 -0
  25. package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs +183 -0
  26. package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs.map +1 -0
  27. package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs +119 -0
  28. package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs.map +1 -0
  29. package/fesm2022/es.framework-ng.ui.core-datepicker.mjs +519 -0
  30. package/fesm2022/es.framework-ng.ui.core-datepicker.mjs.map +1 -0
  31. package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs +144 -0
  32. package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs.map +1 -0
  33. package/fesm2022/es.framework-ng.ui.core-excel-import.mjs +566 -0
  34. package/fesm2022/es.framework-ng.ui.core-excel-import.mjs.map +1 -0
  35. package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs +386 -0
  36. package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs.map +1 -0
  37. package/fesm2022/es.framework-ng.ui.core-form-button.mjs +62 -0
  38. package/fesm2022/es.framework-ng.ui.core-form-button.mjs.map +1 -0
  39. package/fesm2022/es.framework-ng.ui.core-form-field.mjs +155 -0
  40. package/fesm2022/es.framework-ng.ui.core-form-field.mjs.map +1 -0
  41. package/fesm2022/es.framework-ng.ui.core-form-template.mjs +37 -0
  42. package/fesm2022/es.framework-ng.ui.core-form-template.mjs.map +1 -0
  43. package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs +132 -0
  44. package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -0
  45. package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs +89 -0
  46. package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -0
  47. package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs +195 -0
  48. package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs.map +1 -0
  49. package/fesm2022/es.framework-ng.ui.core-formly-button.mjs +73 -0
  50. package/fesm2022/es.framework-ng.ui.core-formly-button.mjs.map +1 -0
  51. package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs +201 -0
  52. package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs.map +1 -0
  53. package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs +542 -0
  54. package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs.map +1 -0
  55. package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs +62 -0
  56. package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs.map +1 -0
  57. package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs +422 -0
  58. package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs.map +1 -0
  59. package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs +48 -0
  60. package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs.map +1 -0
  61. package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs +85 -0
  62. package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -0
  63. package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs +22 -0
  64. package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs.map +1 -0
  65. package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs +173 -0
  66. package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -0
  67. package/fesm2022/es.framework-ng.ui.core-generic-button.mjs +150 -0
  68. package/fesm2022/es.framework-ng.ui.core-generic-button.mjs.map +1 -0
  69. package/fesm2022/es.framework-ng.ui.core-generic-card.mjs +218 -0
  70. package/fesm2022/es.framework-ng.ui.core-generic-card.mjs.map +1 -0
  71. package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs +929 -0
  72. package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs.map +1 -0
  73. package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs +321 -0
  74. package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs.map +1 -0
  75. package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs +35 -0
  76. package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs.map +1 -0
  77. package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs +63 -0
  78. package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -0
  79. package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs +34 -0
  80. package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -0
  81. package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs +196 -0
  82. package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs.map +1 -0
  83. package/fesm2022/es.framework-ng.ui.core-generic-report.mjs +556 -0
  84. package/fesm2022/es.framework-ng.ui.core-generic-report.mjs.map +1 -0
  85. package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs +2995 -0
  86. package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -0
  87. package/fesm2022/es.framework-ng.ui.core-generic-search.mjs +103 -0
  88. package/fesm2022/es.framework-ng.ui.core-generic-search.mjs.map +1 -0
  89. package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs +684 -0
  90. package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs.map +1 -0
  91. package/fesm2022/es.framework-ng.ui.core-generic-table.mjs +388 -0
  92. package/fesm2022/es.framework-ng.ui.core-generic-table.mjs.map +1 -0
  93. package/fesm2022/es.framework-ng.ui.core-generic-view.mjs +465 -0
  94. package/fesm2022/es.framework-ng.ui.core-generic-view.mjs.map +1 -0
  95. package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs +31 -0
  96. package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs.map +1 -0
  97. package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs +205 -0
  98. package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs.map +1 -0
  99. package/fesm2022/es.framework-ng.ui.core-input-switch.mjs +102 -0
  100. package/fesm2022/es.framework-ng.ui.core-input-switch.mjs.map +1 -0
  101. package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs +67 -0
  102. package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs.map +1 -0
  103. package/fesm2022/es.framework-ng.ui.core-input.mjs +250 -0
  104. package/fesm2022/es.framework-ng.ui.core-input.mjs.map +1 -0
  105. package/fesm2022/es.framework-ng.ui.core-label-type.mjs +184 -0
  106. package/fesm2022/es.framework-ng.ui.core-label-type.mjs.map +1 -0
  107. package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs +66 -0
  108. package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs.map +1 -0
  109. package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs +307 -0
  110. package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs.map +1 -0
  111. package/fesm2022/es.framework-ng.ui.core-query-type.mjs +162 -0
  112. package/fesm2022/es.framework-ng.ui.core-query-type.mjs.map +1 -0
  113. package/fesm2022/es.framework-ng.ui.core-radio.mjs +120 -0
  114. package/fesm2022/es.framework-ng.ui.core-radio.mjs.map +1 -0
  115. package/fesm2022/es.framework-ng.ui.core-repeat.mjs +290 -0
  116. package/fesm2022/es.framework-ng.ui.core-repeat.mjs.map +1 -0
  117. package/fesm2022/es.framework-ng.ui.core-select.mjs +179 -0
  118. package/fesm2022/es.framework-ng.ui.core-select.mjs.map +1 -0
  119. package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs +52 -0
  120. package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs.map +1 -0
  121. package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs +53 -0
  122. package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -0
  123. package/fesm2022/es.framework-ng.ui.core-tabs.mjs +57 -0
  124. package/fesm2022/es.framework-ng.ui.core-tabs.mjs.map +1 -0
  125. package/fesm2022/es.framework-ng.ui.core-tag-type.mjs +209 -0
  126. package/fesm2022/es.framework-ng.ui.core-tag-type.mjs.map +1 -0
  127. package/fesm2022/es.framework-ng.ui.core-text-editor.mjs +58 -0
  128. package/fesm2022/es.framework-ng.ui.core-text-editor.mjs.map +1 -0
  129. package/fesm2022/es.framework-ng.ui.core-textarea.mjs +93 -0
  130. package/fesm2022/es.framework-ng.ui.core-textarea.mjs.map +1 -0
  131. package/fesm2022/es.framework-ng.ui.core-wrappers.mjs +245 -0
  132. package/fesm2022/es.framework-ng.ui.core-wrappers.mjs.map +1 -0
  133. package/fesm2022/es.framework-ng.ui.core.mjs +20 -0
  134. package/fesm2022/es.framework-ng.ui.core.mjs.map +1 -0
  135. package/filter-templates/README.md +3 -0
  136. package/form-button/README.md +3 -0
  137. package/form-field/README.md +3 -0
  138. package/form-template/README.md +3 -0
  139. package/formly-avatar-image/README.md +3 -0
  140. package/formly-avatar-label/README.md +3 -0
  141. package/formly-button/README.md +3 -0
  142. package/formly-button-selector/README.md +3 -0
  143. package/formly-presets/README.md +3 -0
  144. package/formly-prime-icon-picker/README.md +3 -0
  145. package/formly-split-button/README.md +3 -0
  146. package/formly-ui/README.md +3 -0
  147. package/formly-ui-all/README.md +3 -0
  148. package/formly-username-with-domain/README.md +3 -0
  149. package/generic-assets/README.md +3 -0
  150. package/generic-autocomplete/README.md +3 -0
  151. package/generic-button/README.md +3 -0
  152. package/generic-card/README.md +3 -0
  153. package/generic-crud-table/README.md +3 -0
  154. package/generic-dialog/README.md +3 -0
  155. package/generic-errormessage/README.md +3 -0
  156. package/generic-formly-fields/README.md +3 -0
  157. package/generic-loadingspinner/README.md +3 -0
  158. package/generic-report/README.md +3 -0
  159. package/generic-report-tabs/README.md +0 -0
  160. package/generic-search/README.md +3 -0
  161. package/generic-search-advanced/README.md +3 -0
  162. package/generic-selector/README.md +3 -0
  163. package/generic-table/README.md +3 -0
  164. package/generic-view/README.md +3 -0
  165. package/header-wrapper/README.md +3 -0
  166. package/icon-picker/README.md +3 -0
  167. package/input/README.md +3 -0
  168. package/input-switch/README.md +3 -0
  169. package/input-with-icon/README.md +3 -0
  170. package/label-type/README.md +3 -0
  171. package/loading-skeletons/README.md +3 -0
  172. package/odata-query-builder/README.md +3 -0
  173. package/package.json +264 -0
  174. package/query-type/README.md +3 -0
  175. package/radio/README.md +3 -0
  176. package/repeat/README.md +3 -0
  177. package/select/README.md +3 -0
  178. package/sidebar-cards/README.md +3 -0
  179. package/sidebar-toggles/README.md +3 -0
  180. package/styles.css +2 -0
  181. package/tabs/README.md +3 -0
  182. package/tag-type/README.md +3 -0
  183. package/text-editor/README.md +3 -0
  184. package/textarea/README.md +3 -0
  185. package/types/es.framework-ng.ui.core-attachments.d.ts +38 -0
  186. package/types/es.framework-ng.ui.core-base-crud.d.ts +74 -0
  187. package/types/es.framework-ng.ui.core-breadcrumb.d.ts +17 -0
  188. package/types/es.framework-ng.ui.core-checkbox.d.ts +33 -0
  189. package/types/es.framework-ng.ui.core-collapsible.d.ts +18 -0
  190. package/types/es.framework-ng.ui.core-color-picker.d.ts +16 -0
  191. package/types/es.framework-ng.ui.core-column-settings-popover.d.ts +46 -0
  192. package/types/es.framework-ng.ui.core-custom-switch.d.ts +19 -0
  193. package/types/es.framework-ng.ui.core-datepicker.d.ts +23 -0
  194. package/types/es.framework-ng.ui.core-deactivation-reason.d.ts +32 -0
  195. package/types/es.framework-ng.ui.core-excel-import.d.ts +69 -0
  196. package/types/es.framework-ng.ui.core-filter-templates.d.ts +57 -0
  197. package/types/es.framework-ng.ui.core-form-button.d.ts +17 -0
  198. package/types/es.framework-ng.ui.core-form-field.d.ts +30 -0
  199. package/types/es.framework-ng.ui.core-form-template.d.ts +16 -0
  200. package/types/es.framework-ng.ui.core-formly-avatar-image.d.ts +18 -0
  201. package/types/es.framework-ng.ui.core-formly-avatar-label.d.ts +36 -0
  202. package/types/es.framework-ng.ui.core-formly-button-selector.d.ts +35 -0
  203. package/types/es.framework-ng.ui.core-formly-button.d.ts +20 -0
  204. package/types/es.framework-ng.ui.core-formly-presets.d.ts +37 -0
  205. package/types/es.framework-ng.ui.core-formly-prime-icon-picker.d.ts +45 -0
  206. package/types/es.framework-ng.ui.core-formly-split-button.d.ts +23 -0
  207. package/types/es.framework-ng.ui.core-formly-ui-all.d.ts +40 -0
  208. package/types/es.framework-ng.ui.core-formly-ui.d.ts +13 -0
  209. package/types/es.framework-ng.ui.core-formly-username-with-domain.d.ts +19 -0
  210. package/types/es.framework-ng.ui.core-generic-assets.d.ts +10 -0
  211. package/types/es.framework-ng.ui.core-generic-autocomplete.d.ts +41 -0
  212. package/types/es.framework-ng.ui.core-generic-button.d.ts +39 -0
  213. package/types/es.framework-ng.ui.core-generic-card.d.ts +93 -0
  214. package/types/es.framework-ng.ui.core-generic-crud-table.d.ts +293 -0
  215. package/types/es.framework-ng.ui.core-generic-dialog.d.ts +93 -0
  216. package/types/es.framework-ng.ui.core-generic-errormessage.d.ts +17 -0
  217. package/types/es.framework-ng.ui.core-generic-formly-fields.d.ts +26 -0
  218. package/types/es.framework-ng.ui.core-generic-loadingspinner.d.ts +16 -0
  219. package/types/es.framework-ng.ui.core-generic-report-tabs.d.ts +21 -0
  220. package/types/es.framework-ng.ui.core-generic-report.d.ts +121 -0
  221. package/types/es.framework-ng.ui.core-generic-search-advanced.d.ts +305 -0
  222. package/types/es.framework-ng.ui.core-generic-search.d.ts +36 -0
  223. package/types/es.framework-ng.ui.core-generic-selector.d.ts +99 -0
  224. package/types/es.framework-ng.ui.core-generic-table.d.ts +84 -0
  225. package/types/es.framework-ng.ui.core-generic-view.d.ts +97 -0
  226. package/types/es.framework-ng.ui.core-header-wrapper.d.ts +15 -0
  227. package/types/es.framework-ng.ui.core-icon-picker.d.ts +30 -0
  228. package/types/es.framework-ng.ui.core-input-switch.d.ts +16 -0
  229. package/types/es.framework-ng.ui.core-input-with-icon.d.ts +17 -0
  230. package/types/es.framework-ng.ui.core-input.d.ts +47 -0
  231. package/types/es.framework-ng.ui.core-label-type.d.ts +38 -0
  232. package/types/es.framework-ng.ui.core-loading-skeletons.d.ts +17 -0
  233. package/types/es.framework-ng.ui.core-odata-query-builder.d.ts +87 -0
  234. package/types/es.framework-ng.ui.core-query-type.d.ts +37 -0
  235. package/types/es.framework-ng.ui.core-radio.d.ts +38 -0
  236. package/types/es.framework-ng.ui.core-repeat.d.ts +31 -0
  237. package/types/es.framework-ng.ui.core-select.d.ts +42 -0
  238. package/types/es.framework-ng.ui.core-sidebar-cards.d.ts +25 -0
  239. package/types/es.framework-ng.ui.core-sidebar-toggles.d.ts +25 -0
  240. package/types/es.framework-ng.ui.core-tabs.d.ts +17 -0
  241. package/types/es.framework-ng.ui.core-tag-type.d.ts +34 -0
  242. package/types/es.framework-ng.ui.core-text-editor.d.ts +16 -0
  243. package/types/es.framework-ng.ui.core-textarea.d.ts +36 -0
  244. package/types/es.framework-ng.ui.core-wrappers.d.ts +36 -0
  245. package/types/es.framework-ng.ui.core.d.ts +8 -0
  246. package/wrappers/README.md +3 -0
@@ -0,0 +1,120 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1 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 i2 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 '@es.framework/ng.ui.core/form-field';
14
+
15
+ class RadioModule {
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: RadioModule, imports: [CommonModule] });
18
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RadioModule, imports: [CommonModule] });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", 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: "21.1.3", ngImport: i0, type: FormlyFieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyFieldRadio, isStandalone: false, selector: "formly-field-primeng-radio", usesInheritance: true, ngImport: i0, template: `
33
+ @for (option of props.options | formlySelectOptions: field | async; track option; let index = $index) {
34
+ <div
35
+ class="p-field-radiobutton"
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
+ }
47
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.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: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.LegacyFormlySelectOptionsPipe, name: "formlySelectOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldRadio, decorators: [{
50
+ type: Component,
51
+ args: [{
52
+ selector: 'formly-field-primeng-radio',
53
+ template: `
54
+ @for (option of props.options | formlySelectOptions: field | async; track option; let index = $index) {
55
+ <div
56
+ class="p-field-radiobutton"
57
+ >
58
+ <p-radioButton
59
+ [name]="field.name || id"
60
+ [formControl]="option.disabled ? disabledControl : formControl"
61
+ [value]="option.value"
62
+ [inputId]="id + index"
63
+ >
64
+ </p-radioButton>
65
+ <label [for]="id + index" class="ml-2">{{ option.label }}</label>
66
+ </div>
67
+ }
68
+ `,
69
+ changeDetection: ChangeDetectionStrategy.OnPush,
70
+ standalone: false
71
+ }]
72
+ }] });
73
+
74
+ function withFormlyFieldRadio() {
75
+ return {
76
+ types: [
77
+ {
78
+ name: 'radio',
79
+ component: FormlyFieldRadio,
80
+ wrappers: ['form-field'],
81
+ },
82
+ ],
83
+ };
84
+ }
85
+
86
+ class FormlyRadioModule {
87
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
88
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyRadioModule, declarations: [FormlyFieldRadio], imports: [CommonModule,
89
+ ReactiveFormsModule,
90
+ RadioButtonModule,
91
+ FormlyFormFieldModule,
92
+ FormlySelectModule, i1$1.FormlyModule] });
93
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyRadioModule, imports: [CommonModule,
94
+ ReactiveFormsModule,
95
+ RadioButtonModule,
96
+ FormlyFormFieldModule,
97
+ FormlySelectModule,
98
+ FormlyModule.forChild(withFormlyFieldRadio())] });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyRadioModule, decorators: [{
101
+ type: NgModule,
102
+ args: [{
103
+ declarations: [FormlyFieldRadio],
104
+ imports: [
105
+ CommonModule,
106
+ ReactiveFormsModule,
107
+ RadioButtonModule,
108
+ FormlyFormFieldModule,
109
+ FormlySelectModule,
110
+ FormlyModule.forChild(withFormlyFieldRadio()),
111
+ ],
112
+ }]
113
+ }] });
114
+
115
+ /**
116
+ * Generated bundle index. Do not edit.
117
+ */
118
+
119
+ export { FormlyFieldRadio, FormlyRadioModule, RadioModule, withFormlyFieldRadio };
120
+ //# sourceMappingURL=es.framework-ng.ui.core-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-radio.mjs","sources":["../../../../libs/ng.ui.core/radio/src/lib/radio-module.ts","../../../../libs/ng.ui.core/radio/src/lib/radio.type.ts","../../../../libs/ng.ui.core/radio/src/lib/radio.config.ts","../../../../libs/ng.ui.core/radio/src/lib/radio.module.ts","../../../../libs/ng.ui.core/radio/src/es.framework-ng.ui.core-radio.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class RadioModule {}\n","import { Component, ChangeDetectionStrategy, Type } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\n\nimport { FormlyFieldProps } from '@es.framework/ng.ui.core/form-field';\n\ntype RadioProps = FormlyFieldProps;\n\nexport interface FormlyRadioFieldConfig extends FormlyFieldConfig<RadioProps> {\n type: 'radio' | Type<FormlyFieldRadio>;\n}\n\n@Component({\n selector: 'formly-field-primeng-radio',\n template: `\n @for (option of props.options | formlySelectOptions: field | async; track option; let index = $index) {\n <div\n class=\"p-field-radiobutton\"\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 `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone:false\n})\nexport class FormlyFieldRadio extends FieldType<FieldTypeConfig<RadioProps>> {\n get disabledControl() {\n return new UntypedFormControl({ value: this.formControl.value, disabled: true });\n }\n}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldRadio } from './radio.type';\n\nexport function withFormlyFieldRadio(): ConfigOption {\n return {\n types: [\n {\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field'],\n },\n ],\n };\n}\n","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 '@es.framework/ng.ui.core/form-field';\n\n@NgModule({\n declarations: [FormlyFieldRadio],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n RadioButtonModule,\n\n FormlyFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild(withFormlyFieldRadio()),\n ],\n})\nexport class FormlyRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
5
+ import { FieldArrayType, FormlyField } from '@ngx-formly/core';
6
+
7
+ class RepeatModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: RepeatModule, imports: [CommonModule] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatModule, imports: [CommonModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule],
16
+ }]
17
+ }] });
18
+
19
+ class RepeatTypeComponent extends FieldArrayType {
20
+ cdr;
21
+ // Return columns of the first row (for table headers)
22
+ getFirstRowColumns() {
23
+ return this.field.fieldGroup?.[0]?.fieldGroup ?? [];
24
+ }
25
+ // ✅ NEW VERSION OF YOUR FUNCTION
26
+ // getFirstRowColumns(): FormlyFieldConfig[] {
27
+ // const group = this.field.fieldGroup?.[0]?.fieldGroup ?? [];
28
+ // return group.map(f => ({
29
+ // ...f,
30
+ // type: 'label-type', // 🔥 force label-type here
31
+ // readonly: true,
32
+ // disabled: true,
33
+ // }));
34
+ // }
35
+ constructor(cdr) {
36
+ super();
37
+ this.cdr = cdr;
38
+ }
39
+ ngOnInit() {
40
+ // Subscribe to each FormArray changes
41
+ // if (this.formControl instanceof FormArray) {
42
+ this.field.formControl.valueChanges.subscribe(() => {
43
+ // Force Angular to detect changes
44
+ this.field.fieldGroup = [...this.field.fieldGroup ?? []];
45
+ this.cdr.detectChanges();
46
+ });
47
+ // }
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatTypeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: RepeatTypeComponent, isStandalone: true, selector: "formly-repeat-section", usesInheritance: true, ngImport: i0, template: `
51
+ <div class="overflow-auto bg-gray-100 border border-gray-300">
52
+ @if ((field.fieldGroup ?? []).length > 0) {
53
+ <table class="table-auto w-full border border-gray-300">
54
+ <thead>
55
+ <tr class="bg-gray-100 text-gray-700 text-sm">
56
+ <th class="w-8"></th>
57
+ @for (col of getFirstRowColumns(); track col) {
58
+ <th class="text-center border">@if (!col.hide) {<span>{{ (col.props?.label ?? '') | translate }}</span>}</th>
59
+ <!-- <th class="text-center border"><formly-field [field]="col"></formly-field></th> -->
60
+ }
61
+ <th class="w-10"></th>
62
+ </tr>
63
+ </thead>
64
+ <tbody>
65
+ @for (row of field.fieldGroup; track row; let rowIndex = $index) {
66
+ <tr class="border-t">
67
+ <td class="bg-[#fffbea] text-center text-gray-400 px-2"><i class="pi pi-bars"></i></td>
68
+ @for (col of row.fieldGroup; track col) {
69
+ <td class="bg-[#fffbea]">
70
+ <formly-field [field]="col"></formly-field>
71
+ </td>
72
+ }
73
+ <td class="text-center px-2 bg-[#fffbea]">
74
+ @if ((rowIndex !== 0 || field.props?.['canDeleteFirstRow']) && !(field.props?.['delete']?.hidden ?? false)) {
75
+ <button type="button" (click)="remove(rowIndex)" class="text-red-600 hover:text-red-800">
76
+ <i class="pi pi-trash"></i>
77
+ </button>
78
+ }
79
+ </td>
80
+ </tr>
81
+ }
82
+ </tbody>
83
+ </table>
84
+ }
85
+
86
+ @if (!(field.props?.['add']?.hidden ?? false)) {
87
+ <div class="flex justify-end">
88
+ <button
89
+ type="button"
90
+ class="inline-flex items-center gap-1 px-4 py-2 bg-primary-600 text-white text-sm font-medium hover:bg-primary-500 transition-colors duration-200 shadow-sm"
91
+ (click)="add()"
92
+ >
93
+ <span class="text-lg">+</span>
94
+ </button>
95
+ </div>
96
+ }
97
+ </div>
98
+ `, isInline: true, dependencies: [{ kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatTypeComponent, decorators: [{
101
+ type: Component,
102
+ args: [{
103
+ selector: 'formly-repeat-section',
104
+ standalone: true,
105
+ imports: [FormlyField, TranslatePipe],
106
+ template: `
107
+ <div class="overflow-auto bg-gray-100 border border-gray-300">
108
+ @if ((field.fieldGroup ?? []).length > 0) {
109
+ <table class="table-auto w-full border border-gray-300">
110
+ <thead>
111
+ <tr class="bg-gray-100 text-gray-700 text-sm">
112
+ <th class="w-8"></th>
113
+ @for (col of getFirstRowColumns(); track col) {
114
+ <th class="text-center border">@if (!col.hide) {<span>{{ (col.props?.label ?? '') | translate }}</span>}</th>
115
+ <!-- <th class="text-center border"><formly-field [field]="col"></formly-field></th> -->
116
+ }
117
+ <th class="w-10"></th>
118
+ </tr>
119
+ </thead>
120
+ <tbody>
121
+ @for (row of field.fieldGroup; track row; let rowIndex = $index) {
122
+ <tr class="border-t">
123
+ <td class="bg-[#fffbea] text-center text-gray-400 px-2"><i class="pi pi-bars"></i></td>
124
+ @for (col of row.fieldGroup; track col) {
125
+ <td class="bg-[#fffbea]">
126
+ <formly-field [field]="col"></formly-field>
127
+ </td>
128
+ }
129
+ <td class="text-center px-2 bg-[#fffbea]">
130
+ @if ((rowIndex !== 0 || field.props?.['canDeleteFirstRow']) && !(field.props?.['delete']?.hidden ?? false)) {
131
+ <button type="button" (click)="remove(rowIndex)" class="text-red-600 hover:text-red-800">
132
+ <i class="pi pi-trash"></i>
133
+ </button>
134
+ }
135
+ </td>
136
+ </tr>
137
+ }
138
+ </tbody>
139
+ </table>
140
+ }
141
+
142
+ @if (!(field.props?.['add']?.hidden ?? false)) {
143
+ <div class="flex justify-end">
144
+ <button
145
+ type="button"
146
+ class="inline-flex items-center gap-1 px-4 py-2 bg-primary-600 text-white text-sm font-medium hover:bg-primary-500 transition-colors duration-200 shadow-sm"
147
+ (click)="add()"
148
+ >
149
+ <span class="text-lg">+</span>
150
+ </button>
151
+ </div>
152
+ }
153
+ </div>
154
+ `,
155
+ }]
156
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
157
+
158
+ class RepeatTableViewType extends FieldArrayType {
159
+ get columns() {
160
+ const group = this.field?.fieldArray?.fieldGroup || [];
161
+ return group.map((f) => ({
162
+ key: f.key,
163
+ label: f.props?.label || f.key
164
+ }));
165
+ }
166
+ get rows() {
167
+ return this.model || [];
168
+ }
169
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatTableViewType, deps: null, target: i0.ɵɵFactoryTarget.Component });
170
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: RepeatTableViewType, isStandalone: true, selector: "formly-repeat-table-view", usesInheritance: true, ngImport: i0, template: `
171
+ <div class="mb-0">
172
+
173
+ <!-- <label class="block text-lg font-semibold mb-3">
174
+ {{ field.props?.label }}
175
+ </label> -->
176
+
177
+ <div class="overflow-x-auto rounded-xl border">
178
+ <table class="min-w-full bg-white border-collapse">
179
+
180
+ <thead class="bg-gray-100">
181
+ <tr>
182
+ <!-- text-left -->
183
+ @for (col of columns; track col) {
184
+ <th
185
+ class="px-4 py-3 text-right font-medium border-b"
186
+ >
187
+ {{ col.label | translate }}
188
+ </th>
189
+ }
190
+ </tr>
191
+ </thead>
192
+
193
+ <tbody>
194
+ @for (row of rows; track row; let i = $index) {
195
+ <tr
196
+ class="border-b hover:bg-gray-50">
197
+ @for (col of columns; track col) {
198
+ <td
199
+ class="px-4 py-2">
200
+ {{ row[col.key] }}
201
+ </td>
202
+ }
203
+ </tr>
204
+ }
205
+
206
+ @if (!rows || rows.length === 0) {
207
+ <tr>
208
+ <td [attr.colspan]="columns.length"
209
+ class="text-center py-6 text-gray-400">
210
+ No data
211
+ </td>
212
+ </tr>
213
+ }
214
+
215
+ </tbody>
216
+
217
+ </table>
218
+ </div>
219
+
220
+ </div>
221
+
222
+ `, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
223
+ }
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: RepeatTableViewType, decorators: [{
225
+ type: Component,
226
+ args: [{
227
+ selector: 'formly-repeat-table-view',
228
+ template: `
229
+ <div class="mb-0">
230
+
231
+ <!-- <label class="block text-lg font-semibold mb-3">
232
+ {{ field.props?.label }}
233
+ </label> -->
234
+
235
+ <div class="overflow-x-auto rounded-xl border">
236
+ <table class="min-w-full bg-white border-collapse">
237
+
238
+ <thead class="bg-gray-100">
239
+ <tr>
240
+ <!-- text-left -->
241
+ @for (col of columns; track col) {
242
+ <th
243
+ class="px-4 py-3 text-right font-medium border-b"
244
+ >
245
+ {{ col.label | translate }}
246
+ </th>
247
+ }
248
+ </tr>
249
+ </thead>
250
+
251
+ <tbody>
252
+ @for (row of rows; track row; let i = $index) {
253
+ <tr
254
+ class="border-b hover:bg-gray-50">
255
+ @for (col of columns; track col) {
256
+ <td
257
+ class="px-4 py-2">
258
+ {{ row[col.key] }}
259
+ </td>
260
+ }
261
+ </tr>
262
+ }
263
+
264
+ @if (!rows || rows.length === 0) {
265
+ <tr>
266
+ <td [attr.colspan]="columns.length"
267
+ class="text-center py-6 text-gray-400">
268
+ No data
269
+ </td>
270
+ </tr>
271
+ }
272
+
273
+ </tbody>
274
+
275
+ </table>
276
+ </div>
277
+
278
+ </div>
279
+
280
+ `,
281
+ imports: [TranslatePipe],
282
+ }]
283
+ }] });
284
+
285
+ /**
286
+ * Generated bundle index. Do not edit.
287
+ */
288
+
289
+ export { RepeatModule, RepeatTableViewType, RepeatTypeComponent };
290
+ //# sourceMappingURL=es.framework-ng.ui.core-repeat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-repeat.mjs","sources":["../../../../libs/ng.ui.core/repeat/src/lib/repeat-module.ts","../../../../libs/ng.ui.core/repeat/src/lib/repeat-section.type.ts","../../../../libs/ng.ui.core/repeat/src/lib/repeat-table-view.type.ts","../../../../libs/ng.ui.core/repeat/src/es.framework-ng.ui.core-repeat.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class RepeatModule {}\n","import { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { FieldArrayType, FormlyField, FormlyFieldConfig } from '@ngx-formly/core';\n\nimport { FormArray } from '@angular/forms';\n\n@Component({\n selector: 'formly-repeat-section',\n standalone: true,\n imports: [FormlyField, TranslatePipe],\n template: `\n <div class=\"overflow-auto bg-gray-100 border border-gray-300\">\n @if ((field.fieldGroup ?? []).length > 0) {\n <table class=\"table-auto w-full border border-gray-300\">\n <thead>\n <tr class=\"bg-gray-100 text-gray-700 text-sm\">\n <th class=\"w-8\"></th>\n @for (col of getFirstRowColumns(); track col) {\n <th class=\"text-center border\">@if (!col.hide) {<span>{{ (col.props?.label ?? '') | translate }}</span>}</th>\n <!-- <th class=\"text-center border\"><formly-field [field]=\"col\"></formly-field></th> -->\n }\n <th class=\"w-10\"></th>\n </tr>\n </thead>\n <tbody>\n @for (row of field.fieldGroup; track row; let rowIndex = $index) {\n <tr class=\"border-t\">\n <td class=\"bg-[#fffbea] text-center text-gray-400 px-2\"><i class=\"pi pi-bars\"></i></td>\n @for (col of row.fieldGroup; track col) {\n <td class=\"bg-[#fffbea]\">\n <formly-field [field]=\"col\"></formly-field>\n </td>\n }\n <td class=\"text-center px-2 bg-[#fffbea]\">\n @if ((rowIndex !== 0 || field.props?.['canDeleteFirstRow']) && !(field.props?.['delete']?.hidden ?? false)) {\n <button type=\"button\" (click)=\"remove(rowIndex)\" class=\"text-red-600 hover:text-red-800\">\n <i class=\"pi pi-trash\"></i>\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n \n @if (!(field.props?.['add']?.hidden ?? false)) {\n <div class=\"flex justify-end\">\n <button\n type=\"button\"\n class=\"inline-flex items-center gap-1 px-4 py-2 bg-primary-600 text-white text-sm font-medium hover:bg-primary-500 transition-colors duration-200 shadow-sm\"\n (click)=\"add()\"\n >\n <span class=\"text-lg\">+</span>\n </button>\n </div>\n }\n </div>\n `,\n})\nexport class RepeatTypeComponent extends FieldArrayType implements OnInit {\n // Return columns of the first row (for table headers)\n getFirstRowColumns() {\n return this.field.fieldGroup?.[0]?.fieldGroup ?? [];\n }\n // ✅ NEW VERSION OF YOUR FUNCTION\n // getFirstRowColumns(): FormlyFieldConfig[] {\n // const group = this.field.fieldGroup?.[0]?.fieldGroup ?? [];\n\n // return group.map(f => ({\n // ...f,\n // type: 'label-type', // 🔥 force label-type here\n // readonly: true,\n // disabled: true,\n // }));\n // }\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n ngOnInit() {\n\n // Subscribe to each FormArray changes\n // if (this.formControl instanceof FormArray) {\n this.field.formControl.valueChanges.subscribe(() => {\n // Force Angular to detect changes\n\n this.field.fieldGroup = [...this.field.fieldGroup ?? []];\n this.cdr.detectChanges();\n });\n // }\n }\n}\n","\nimport { Component } from '@angular/core';\nimport { FieldArrayType } from '@ngx-formly/core';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\n@Component({\n selector: 'formly-repeat-table-view',\n template: `\n <div class=\"mb-0\">\n \n <!-- <label class=\"block text-lg font-semibold mb-3\">\n {{ field.props?.label }}\n </label> -->\n \n <div class=\"overflow-x-auto rounded-xl border\">\n <table class=\"min-w-full bg-white border-collapse\">\n \n <thead class=\"bg-gray-100\">\n <tr>\n <!-- text-left -->\n @for (col of columns; track col) {\n <th\n class=\"px-4 py-3 text-right font-medium border-b\"\n >\n {{ col.label | translate }}\n </th>\n }\n </tr>\n </thead>\n \n <tbody>\n @for (row of rows; track row; let i = $index) {\n <tr\n class=\"border-b hover:bg-gray-50\">\n @for (col of columns; track col) {\n <td\n class=\"px-4 py-2\">\n {{ row[col.key] }}\n </td>\n }\n </tr>\n }\n \n @if (!rows || rows.length === 0) {\n <tr>\n <td [attr.colspan]=\"columns.length\"\n class=\"text-center py-6 text-gray-400\">\n No data\n </td>\n </tr>\n }\n \n </tbody>\n \n </table>\n </div>\n \n </div>\n \n `,\n imports: [TranslatePipe],\n})\nexport class RepeatTableViewType extends FieldArrayType {\n\n get columns() {\n const group = (this.field?.fieldArray as any)?.fieldGroup || [];\n return group.map((f :any)=> ({\n key: f.key as string,\n label: f.props?.label || f.key\n }));\n }\n\n get rows() {\n return this.model || [];\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,YAAY,CAAA;uGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAFb,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAFb,YAAY,CAAA,EAAA,CAAA;;2FAEX,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACuDK,MAAO,mBAAoB,SAAQ,cAAc,CAAA;AAgBjC,IAAA,GAAA;;IAdpB,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE;IACrD;;;;;;;;;;;AAYA,IAAA,WAAA,CAAoB,GAAsB,EAAA;AACxC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,GAAG,GAAH,GAAG;IAEvB;IACA,QAAQ,GAAA;;;QAIJ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;;AAGjD,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AACxD,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC1B,QAAA,CAAC,CAAC;;IAEN;uGA9BW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlDpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgDP,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjDO,WAAW,uEAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAmDzB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtD/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;AACrC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDP,IAAA,CAAA;AACJ,iBAAA;;;ACGK,MAAO,mBAAoB,SAAQ,cAAc,CAAA;AAErD,IAAA,IAAI,OAAO,GAAA;QACT,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,EAAE,UAAkB,EAAE,UAAU,IAAI,EAAE;QAC/D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,MAAK;YAC3B,GAAG,EAAE,CAAC,CAAC,GAAa;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;AAC5B,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE;IACzB;uGAZW,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAvDpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACS,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAEZ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAzD/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDT,EAAA,CAAA;oBACD,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA;;;AC7DD;;AAEG;;;;"}
@@ -0,0 +1,179 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i4 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1$1 from '@ngx-formly/core';
6
+ import { FieldType, FormlyAttributes, FormlyModule } from '@ngx-formly/core';
7
+ import * as i3 from 'primeng/select';
8
+ import { SelectModule as SelectModule$1 } from 'primeng/select';
9
+ import { FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';
10
+ import * as i1 from '@angular/forms';
11
+ import { ReactiveFormsModule } from '@angular/forms';
12
+ import { DatePickerModule } from 'primeng/datepicker';
13
+ import * as i5 from '@ngx-formly/core/select';
14
+ import { FormlySelectModule as FormlySelectModule$1 } from '@ngx-formly/core/select';
15
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
16
+ import * as i2 from 'primeng/api';
17
+
18
+ class SelectModule {
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: SelectModule, imports: [CommonModule] });
21
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SelectModule, imports: [CommonModule] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: SelectModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ imports: [CommonModule],
27
+ }]
28
+ }] });
29
+
30
+ class FormlyFieldSelect extends FieldType {
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldSelect, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyFieldSelect, isStandalone: true, selector: "formly-field-primeng-select", usesInheritance: true, ngImport: i0, template: `
33
+ <p-select
34
+ [options]="(props.options | formlySelectOptions: field | async) ?? []"
35
+ [formControl]="formControl"
36
+ [formlyAttributes]="field"
37
+ [showClear]="!props.required"
38
+ [appendTo]="props.appendTo"
39
+ [filter]="props.filter"
40
+ [filterBy]="props.filterBy ?? 'label'"
41
+ [optionLabel]="'label'"
42
+ [optionValue]="'value'"
43
+ (onChange)="props.change && props.change(field, $event)"
44
+ [placeholder]="(props['placeholder'] ?? '')| translate"
45
+ [styleClass]="'w-full rounded-none block'"
46
+ >
47
+ <!-- Template for each option in the dropdown -->
48
+ <ng-template let-option pTemplate="item">
49
+ <div class="flex items-center gap-2">
50
+ <!-- Example: add an icon if option has one -->
51
+ @if (option.icon) {
52
+
53
+ <i [class]="option.icon"></i>
54
+ }
55
+ <span>{{ option.label | translate }}</span>
56
+ <!-- Example: show description -->
57
+ @if (option.description) {
58
+
59
+ <small class="text-gray-500"> - {{ option.description | translate}}</small>
60
+ }
61
+ </div>
62
+ </ng-template>
63
+
64
+ <!-- Template for selected value -->
65
+ <ng-template let-selected pTemplate="selectedItem">
66
+ <div class="flex items-center gap-2">
67
+ @if (selected?.icon) {
68
+ <i [class]="selected.icon"></i>
69
+ }
70
+ <span>{{ selected?.label | translate}}</span>
71
+ </div>
72
+ </ng-template>
73
+ </p-select>
74
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: FormlyFormFieldModule }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: SelectModule$1 }, { kind: "component", type: i3.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormlySelectModule$1 }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.LegacyFormlySelectOptionsPipe, name: "formlySelectOptions" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyFieldSelect, decorators: [{
77
+ type: Component,
78
+ args: [{
79
+ selector: 'formly-field-primeng-select',
80
+ template: `
81
+ <p-select
82
+ [options]="(props.options | formlySelectOptions: field | async) ?? []"
83
+ [formControl]="formControl"
84
+ [formlyAttributes]="field"
85
+ [showClear]="!props.required"
86
+ [appendTo]="props.appendTo"
87
+ [filter]="props.filter"
88
+ [filterBy]="props.filterBy ?? 'label'"
89
+ [optionLabel]="'label'"
90
+ [optionValue]="'value'"
91
+ (onChange)="props.change && props.change(field, $event)"
92
+ [placeholder]="(props['placeholder'] ?? '')| translate"
93
+ [styleClass]="'w-full rounded-none block'"
94
+ >
95
+ <!-- Template for each option in the dropdown -->
96
+ <ng-template let-option pTemplate="item">
97
+ <div class="flex items-center gap-2">
98
+ <!-- Example: add an icon if option has one -->
99
+ @if (option.icon) {
100
+
101
+ <i [class]="option.icon"></i>
102
+ }
103
+ <span>{{ option.label | translate }}</span>
104
+ <!-- Example: show description -->
105
+ @if (option.description) {
106
+
107
+ <small class="text-gray-500"> - {{ option.description | translate}}</small>
108
+ }
109
+ </div>
110
+ </ng-template>
111
+
112
+ <!-- Template for selected value -->
113
+ <ng-template let-selected pTemplate="selectedItem">
114
+ <div class="flex items-center gap-2">
115
+ @if (selected?.icon) {
116
+ <i [class]="selected.icon"></i>
117
+ }
118
+ <span>{{ selected?.label | translate}}</span>
119
+ </div>
120
+ </ng-template>
121
+ </p-select>
122
+ `,
123
+ changeDetection: ChangeDetectionStrategy.OnPush,
124
+ standalone: true,
125
+ imports: [CommonModule,
126
+ ReactiveFormsModule,
127
+ DatePickerModule,
128
+ FormlyFormFieldModule, FormlyAttributes, SelectModule$1, FormlySelectModule$1, TranslatePipe]
129
+ }]
130
+ }] });
131
+
132
+ function withFormlyFieldSelect() {
133
+ return {
134
+ types: [
135
+ {
136
+ name: 'select',
137
+ component: FormlyFieldSelect,
138
+ wrappers: ['form-field'],
139
+ },
140
+ { name: 'enum', extends: 'select' },
141
+ ],
142
+ };
143
+ }
144
+
145
+ class FormlySelectModule {
146
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
147
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlySelectModule, imports: [CommonModule,
148
+ ReactiveFormsModule,
149
+ SelectModule$1,
150
+ FormlyFormFieldModule,
151
+ FormlySelectModule$1, i1$1.FormlyModule] });
152
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlySelectModule, imports: [CommonModule,
153
+ ReactiveFormsModule,
154
+ SelectModule$1,
155
+ FormlyFormFieldModule,
156
+ FormlySelectModule$1,
157
+ FormlyModule.forChild(withFormlyFieldSelect())] });
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlySelectModule, decorators: [{
160
+ type: NgModule,
161
+ args: [{
162
+ // declarations: [FormlyFieldSelect],
163
+ imports: [
164
+ CommonModule,
165
+ ReactiveFormsModule,
166
+ SelectModule$1,
167
+ FormlyFormFieldModule,
168
+ FormlySelectModule$1,
169
+ FormlyModule.forChild(withFormlyFieldSelect()),
170
+ ],
171
+ }]
172
+ }] });
173
+
174
+ /**
175
+ * Generated bundle index. Do not edit.
176
+ */
177
+
178
+ export { FormlyFieldSelect, FormlySelectModule, SelectModule, withFormlyFieldSelect };
179
+ //# sourceMappingURL=es.framework-ng.ui.core-select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-select.mjs","sources":["../../../../libs/ng.ui.core/select/src/lib/select-module.ts","../../../../libs/ng.ui.core/select/src/lib/select.type.ts","../../../../libs/ng.ui.core/select/src/lib/select.config.ts","../../../../libs/ng.ui.core/select/src/lib/select.module.ts","../../../../libs/ng.ui.core/select/src/es.framework-ng.ui.core-select.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class SelectModule {}\n","import { Component, ChangeDetectionStrategy, Type } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyAttributes, FormlyFieldConfig } from '@ngx-formly/core';\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\nimport { Select, SelectModule } from 'primeng/select';\nimport { FormlyFieldProps, FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { FormlySelectModule as FormlyCoreSelectModule } from '@ngx-formly/core/select';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\ninterface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\n appendTo?: Select['appendTo'];\n filter?: boolean;\n filterBy?: string;\n}\n\nexport interface FormlySelectFieldConfig extends FormlyFieldConfig<SelectProps> {\n type: 'select' | Type<FormlyFieldSelect>;\n}\n\n@Component({\n selector: 'formly-field-primeng-select',\n template: `\n <p-select\n [options]=\"(props.options | formlySelectOptions: field | async) ?? []\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [showClear]=\"!props.required\"\n [appendTo]=\"props.appendTo\"\n [filter]=\"props.filter\"\n [filterBy]=\"props.filterBy ?? 'label'\"\n [optionLabel]=\"'label'\"\n [optionValue]=\"'value'\"\n (onChange)=\"props.change && props.change(field, $event)\"\n [placeholder]=\"(props['placeholder'] ?? '')| translate\"\n [styleClass]=\"'w-full rounded-none block'\"\n >\n <!-- Template for each option in the dropdown -->\n <ng-template let-option pTemplate=\"item\">\n <div class=\"flex items-center gap-2\">\n <!-- Example: add an icon if option has one -->\n @if (option.icon) {\n\n <i [class]=\"option.icon\"></i>\n }\n <span>{{ option.label | translate }}</span>\n <!-- Example: show description -->\n @if (option.description) {\n\n <small class=\"text-gray-500\"> - {{ option.description | translate}}</small>\n }\n </div>\n </ng-template>\n\n <!-- Template for selected value -->\n <ng-template let-selected pTemplate=\"selectedItem\">\n <div class=\"flex items-center gap-2\">\n @if (selected?.icon) {\n <i [class]=\"selected.icon\"></i>\n }\n <span>{{ selected?.label | translate}}</span>\n </div>\n </ng-template>\n </p-select>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone:true,\n imports:[CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule,FormlyAttributes,SelectModule,FormlyCoreSelectModule,TranslatePipe]\n\n})\nexport class FormlyFieldSelect extends FieldType<FieldTypeConfig<SelectProps>> {}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyFieldSelect } from './select.type';\n\nexport function withFormlyFieldSelect(): ConfigOption {\n return {\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { SelectModule } from 'primeng/select';\nimport { FormlySelectModule as FormlyCoreSelectModule } from '@ngx-formly/core/select';\n\nimport { FormlyFieldSelect } from './select.type';\nimport { withFormlyFieldSelect } from './select.config';\nimport { FormlyFormFieldModule } from '@es.framework/ng.ui.core/form-field';\n\n@NgModule({\n // declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SelectModule,\n FormlyFormFieldModule,\n FormlyCoreSelectModule,\n FormlyModule.forChild(withFormlyFieldSelect()),\n ],\n})\nexport class FormlySelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectModule","FormlyCoreSelectModule","i1"],"mappings":"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"}