@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 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-form-field.mjs","sources":["../../../../libs/ng.ui.core/form-field/src/lib/form-field.wrapper.ts","../../../../libs/ng.ui.core/form-field/src/lib/form-field.config.ts","../../../../libs/ng.ui.core/form-field/src/lib/form-field.module.ts","../../../../libs/ng.ui.core/form-field/src/es.framework-ng.ui.core-form-field.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/prefer-standalone */\nimport { Component } from '@angular/core';\nimport {\n FieldWrapper,\n FormlyFieldConfig,\n FormlyFieldProps as CoreFormlyFieldProps\n} from '@ngx-formly/core';\n\nexport interface FormlyFieldProps extends CoreFormlyFieldProps {\n hideRequiredMarker?: boolean;\n hideLabel?: boolean;\n}\n\n@Component({\n selector: 'formly-wrapper-primeng-form-field',\n standalone: false,\n template: `\n <div class=\"p-field\">\n <!-- text-lg -->\n @if (props.label && props.hideLabel !== true) {\n <label [for]=\"id\" class=\"font-bold\">\n {{ props.label | translate }}\n @if (props.required && props.hideRequiredMarker !== true) {\n <span aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"mb-2\"></div>\n <ng-container #fieldComponent></ng-container>\n\n @if (showError) {\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n `,\n})\nexport class FormlyWrapperFormField extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\n\n\n@Component({\n selector: 'formly-wrapper-primeng-form-field-no',\n standalone: false,\n template: `\n <div class=\"p-field\">\n <!-- text-lg -->\n @if (props.label && props.hideLabel !== true) {\n <label [for]=\"id\" class=\"font-bold\">\n @if (props.required && props.hideRequiredMarker !== true) {\n <span aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <ng-container #fieldComponent></ng-container>\n\n @if (showError) {\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n `,\n})\nexport class FormlyWrapperFormFieldNo extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\n\nexport function withFormlyFormField(): ConfigOption {\n return {\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n {\n name: 'form-field-no',\n component: FormlyWrapperFormFieldNo,\n },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule, LegacyFormlyValidationMessage, } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\nimport { withFormlyFormField } from './form-field.config';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\n@NgModule({\n declarations: [\n\n FormlyWrapperFormField,\n FormlyWrapperFormFieldNo,\n // FormlyFormFieldWrapperComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()),TranslatePipe],\n exports:[FormlyWrapperFormField]\n})\nexport class FormlyFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FieldType } from '@ngx-formly/core';
5
+ import { SafeHtmlPipe } from 'primeng/menu';
6
+
7
+ class FormTemplateModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormTemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormTemplateModule, imports: [CommonModule] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormTemplateModule, imports: [CommonModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormTemplateModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule],
16
+ }]
17
+ }] });
18
+
19
+ class FormlyTemplateType extends FieldType {
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyTemplateType, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: FormlyTemplateType, isStandalone: true, selector: "formly-template", usesInheritance: true, ngImport: i0, template: `<div [innerHTML]="to['innerHTML'] | safeHtml"></div>`, isInline: true, dependencies: [{ kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyTemplateType, decorators: [{
24
+ type: Component,
25
+ args: [{
26
+ imports: [SafeHtmlPipe],
27
+ selector: 'formly-template',
28
+ template: `<div [innerHTML]="to['innerHTML'] | safeHtml"></div>`,
29
+ }]
30
+ }] });
31
+
32
+ /**
33
+ * Generated bundle index. Do not edit.
34
+ */
35
+
36
+ export { FormTemplateModule, FormlyTemplateType };
37
+ //# sourceMappingURL=es.framework-ng.ui.core-form-template.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-form-template.mjs","sources":["../../../../libs/ng.ui.core/form-template/src/lib/form-template-module.ts","../../../../libs/ng.ui.core/form-template/src/lib/template.type.ts","../../../../libs/ng.ui.core/form-template/src/es.framework-ng.ui.core-form-template.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormTemplateModule {}\n","import { FieldType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { Component } from '@angular/core';\r\nimport { SafeHtmlPipe } from 'primeng/menu';\r\n\r\n@Component({\r\n imports:[SafeHtmlPipe],\r\n selector: 'formly-template',\r\n template: `<div [innerHTML]=\"to['innerHTML'] | safeHtml\"></div>`,\r\n})\r\nexport class FormlyTemplateType extends FieldType {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,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,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACIK,MAAO,kBAAmB,SAAQ,SAAS,CAAA;uGAApC,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFnB,CAAA,oDAAA,CAAsD,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAFvD,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA;;2FAIV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAC,CAAC,YAAY,CAAC;AACtB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA,oDAAA,CAAsD;AACjE,iBAAA;;;ACRD;;AAEG;;;;"}
@@ -0,0 +1,132 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import * as i2 from '@ngx-formly/core';
7
+ import { FieldType, FormlyModule } from '@ngx-formly/core';
8
+ import * as i3 from 'primeng/avatar';
9
+ import { AvatarModule } from 'primeng/avatar';
10
+
11
+ class FormlyAvatarImageModule {
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarImageModule, imports: [CommonModule] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarImageModule, imports: [CommonModule] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarImageModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ imports: [CommonModule],
20
+ }]
21
+ }] });
22
+
23
+ class FormlyAvatarImageComponent extends FieldType {
24
+ get type() {
25
+ return this.field.type;
26
+ }
27
+ get displayValue() {
28
+ const value = this.formControl?.value;
29
+ const baseUrl = this.field.props['baseUrl'] || '';
30
+ const defaultImage = this.field.props['defaultImage'] || '';
31
+ if (value) {
32
+ return baseUrl ? `${baseUrl}${value}` : value;
33
+ }
34
+ return defaultImage;
35
+ }
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarImageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyAvatarImageComponent, isStandalone: true, selector: "formly-field-avatar-image", usesInheritance: true, ngImport: i0, template: `
38
+ <div [ngClass]="field.props['containerClass'] || ''">
39
+ @if (field.props.label && field.props['hideLabel'] !== true) {
40
+ <label [for]="id" class="p-formgroup-inline block text-sm font-medium text-gray-700">
41
+ {{ field.props.label }}
42
+ @if (field.props.required) {
43
+ <span class="text-red-500">*</span>
44
+ }
45
+ </label>
46
+ }
47
+ <div class="mt-1 flex items-center">
48
+ <p-avatar
49
+ [image]="displayValue"
50
+ [size]="field.props['size'] || 'large'"
51
+ [shape]="field.props['shape'] || 'circle'"
52
+ [style]="field.props['avatarStyle'] || ''"
53
+ [styleClass]="field.props['avatarClass'] || ''"
54
+ (onClick)="field.props['onClick'] && field.props['onClick']($event)"
55
+
56
+ ></p-avatar>
57
+ <!-- (onImageError)="field.props['onImageError'] && field.props['onImageError']($event)" -->
58
+ @if (field.props['showPlaceholder']) {
59
+ <div class="ml-4">
60
+ <span class="text-gray-500">{{ field.props['placeholderText'] || 'No image selected' }}</span>
61
+ </div>
62
+ }
63
+ </div>
64
+ @if (showError) {
65
+ <small class="mt-1 text-sm text-red-600">
66
+ <formly-validation-message [field]="field"></formly-validation-message>
67
+ </small>
68
+ }
69
+ @if (field.props.description) {
70
+ <small class="mt-1 text-sm text-gray-500">{{ field.props.description }}</small>
71
+ }
72
+ </div>
73
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2.LegacyFormlyValidationMessage, selector: "formly-validation-message" }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i3.Avatar, selector: "p-avatar", inputs: ["label", "icon", "image", "size", "shape", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }] });
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarImageComponent, decorators: [{
76
+ type: Component,
77
+ args: [{
78
+ selector: 'formly-field-avatar-image',
79
+ standalone: true,
80
+ imports: [
81
+ CommonModule,
82
+ ReactiveFormsModule,
83
+ FormlyModule,
84
+ AvatarModule
85
+ ],
86
+ template: `
87
+ <div [ngClass]="field.props['containerClass'] || ''">
88
+ @if (field.props.label && field.props['hideLabel'] !== true) {
89
+ <label [for]="id" class="p-formgroup-inline block text-sm font-medium text-gray-700">
90
+ {{ field.props.label }}
91
+ @if (field.props.required) {
92
+ <span class="text-red-500">*</span>
93
+ }
94
+ </label>
95
+ }
96
+ <div class="mt-1 flex items-center">
97
+ <p-avatar
98
+ [image]="displayValue"
99
+ [size]="field.props['size'] || 'large'"
100
+ [shape]="field.props['shape'] || 'circle'"
101
+ [style]="field.props['avatarStyle'] || ''"
102
+ [styleClass]="field.props['avatarClass'] || ''"
103
+ (onClick)="field.props['onClick'] && field.props['onClick']($event)"
104
+
105
+ ></p-avatar>
106
+ <!-- (onImageError)="field.props['onImageError'] && field.props['onImageError']($event)" -->
107
+ @if (field.props['showPlaceholder']) {
108
+ <div class="ml-4">
109
+ <span class="text-gray-500">{{ field.props['placeholderText'] || 'No image selected' }}</span>
110
+ </div>
111
+ }
112
+ </div>
113
+ @if (showError) {
114
+ <small class="mt-1 text-sm text-red-600">
115
+ <formly-validation-message [field]="field"></formly-validation-message>
116
+ </small>
117
+ }
118
+ @if (field.props.description) {
119
+ <small class="mt-1 text-sm text-gray-500">{{ field.props.description }}</small>
120
+ }
121
+ </div>
122
+ `,
123
+ // changeDetection: ChangeDetectionStrategy.OnPush,
124
+ }]
125
+ }] });
126
+
127
+ /**
128
+ * Generated bundle index. Do not edit.
129
+ */
130
+
131
+ export { FormlyAvatarImageComponent, FormlyAvatarImageModule };
132
+ //# sourceMappingURL=es.framework-ng.ui.core-formly-avatar-image.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-formly-avatar-image.mjs","sources":["../../../../libs/ng.ui.core/formly-avatar-image/src/lib/formly-avatar-image-module.ts","../../../../libs/ng.ui.core/formly-avatar-image/src/lib/formly-avatar-image.ts","../../../../libs/ng.ui.core/formly-avatar-image/src/es.framework-ng.ui.core-formly-avatar-image.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormlyAvatarImageModule {}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { AvatarModule } from 'primeng/avatar';\r\n\r\n@Component({\r\n selector: 'formly-field-avatar-image',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormlyModule,\r\n AvatarModule\r\n ],\r\n template: `\n <div [ngClass]=\"field.props['containerClass'] || ''\">\n @if (field.props.label && field.props['hideLabel'] !== true) {\n <label [for]=\"id\" class=\"p-formgroup-inline block text-sm font-medium text-gray-700\">\n {{ field.props.label }}\n @if (field.props.required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n <div class=\"mt-1 flex items-center\">\n <p-avatar\n [image]=\"displayValue\"\n [size]=\"field.props['size'] || 'large'\"\n [shape]=\"field.props['shape'] || 'circle'\"\n [style]=\"field.props['avatarStyle'] || ''\"\n [styleClass]=\"field.props['avatarClass'] || ''\"\n (onClick)=\"field.props['onClick'] && field.props['onClick']($event)\"\n \n ></p-avatar>\n <!-- (onImageError)=\"field.props['onImageError'] && field.props['onImageError']($event)\" -->\n @if (field.props['showPlaceholder']) {\n <div class=\"ml-4\">\n <span class=\"text-gray-500\">{{ field.props['placeholderText'] || 'No image selected' }}</span>\n </div>\n }\n </div>\n @if (showError) {\n <small class=\"mt-1 text-sm text-red-600\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n @if (field.props.description) {\n <small class=\"mt-1 text-sm text-gray-500\">{{ field.props.description }}</small>\n }\n </div>\n `,\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormlyAvatarImageComponent extends FieldType<FieldTypeConfig> {\r\n get type() {\r\n return this.field.type as string;\r\n }\r\n get displayValue(): any {\r\n const value = this.formControl?.value;\r\n const baseUrl = this.field.props['baseUrl'] || '';\r\n const defaultImage = this.field.props['defaultImage'] || '';\r\n\r\n if (value) {\r\n return baseUrl ? `${baseUrl}${value}` : value;\r\n }\r\n\r\n return defaultImage;\r\n}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
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 { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { FieldType } from '@ngx-formly/core';
7
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
8
+ import { ButtonModule } from 'primeng/button';
9
+
10
+ class FormlyAvatarLabelModule {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarLabelModule, imports: [CommonModule] });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarLabelModule, imports: [CommonModule] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarLabelModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [CommonModule],
19
+ }]
20
+ }] });
21
+
22
+ class FormlyAvatarLabelComponent extends FieldType {
23
+ get to() {
24
+ return this.field.props;
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyAvatarLabelComponent, isStandalone: true, selector: "formly-avatar-label", usesInheritance: true, ngImport: i0, template: `
28
+ <div class="flex flex-col text-gray-700 text-sm mb-4">
29
+ <div class="flex items-center w-full min-h-[30px]">
30
+ <div
31
+ class="w-7 h-7 rounded-full flex items-center justify-center bg-gray-200 text-gray-600 text-base mr-2 flex-shrink-0"
32
+ >
33
+ {{ to.username ? (to.username | slice:0:1) : '?' }}
34
+ </div>
35
+
36
+ @if (to.showUsername) {
37
+ <div class="flex items-center gap-1 ml-4 w-full">
38
+ <span class="text-gray-500">{{ (to.prefixLabel ?? '') | translate }}:</span>
39
+
40
+ <span class="font-medium text-gray-800 text-sm">
41
+ {{ to.username || ('COMMON.USER' | translate) }}
42
+ </span>
43
+ </div>
44
+ }
45
+
46
+
47
+ </div>
48
+ </div>
49
+ `, isInline: true, styles: [".formly-avatar-label img{border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyAvatarLabelComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'formly-avatar-label', template: `
54
+ <div class="flex flex-col text-gray-700 text-sm mb-4">
55
+ <div class="flex items-center w-full min-h-[30px]">
56
+ <div
57
+ class="w-7 h-7 rounded-full flex items-center justify-center bg-gray-200 text-gray-600 text-base mr-2 flex-shrink-0"
58
+ >
59
+ {{ to.username ? (to.username | slice:0:1) : '?' }}
60
+ </div>
61
+
62
+ @if (to.showUsername) {
63
+ <div class="flex items-center gap-1 ml-4 w-full">
64
+ <span class="text-gray-500">{{ (to.prefixLabel ?? '') | translate }}:</span>
65
+
66
+ <span class="font-medium text-gray-800 text-sm">
67
+ {{ to.username || ('COMMON.USER' | translate) }}
68
+ </span>
69
+ </div>
70
+ }
71
+
72
+
73
+ </div>
74
+ </div>
75
+ `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
76
+ CommonModule,
77
+ ButtonModule,
78
+ FormsModule,
79
+ ReactiveFormsModule,
80
+ TranslatePipe
81
+ ], styles: [".formly-avatar-label img{border-radius:50%}\n"] }]
82
+ }] });
83
+
84
+ /**
85
+ * Generated bundle index. Do not edit.
86
+ */
87
+
88
+ export { FormlyAvatarLabelComponent, FormlyAvatarLabelModule };
89
+ //# sourceMappingURL=es.framework-ng.ui.core-formly-avatar-label.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-formly-avatar-label.mjs","sources":["../../../../libs/ng.ui.core/formly-avatar-label/src/lib/formly-avatar-label-module.ts","../../../../libs/ng.ui.core/formly-avatar-label/src/lib/formly-avatar-label.ts","../../../../libs/ng.ui.core/formly-avatar-label/src/es.framework-ng.ui.core-formly-avatar-label.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormlyAvatarLabelModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { ButtonModule } from 'primeng/button';\n\ninterface AvatarLabelProps {\n /**\n * The username or display name, shown as text and used for avatar initial\n */\n username?: string;\n\n /**\n * Prefix label shown before username (e.g. \"FROM\"), expected to be a translatable key\n */\n prefixLabel?: string;\n\n /**\n * Additional CSS classes to customize wrapper div if needed\n */\n styleClass?: string;\n\n /**\n * Whether the button should be disabled (optional)\n */\n disabled?: boolean;\n showUsername?: boolean;\n}\n\n@Component({\n selector: 'formly-avatar-label',\n template: `\n <div class=\"flex flex-col text-gray-700 text-sm mb-4\">\n <div class=\"flex items-center w-full min-h-[30px]\">\n <div\n class=\"w-7 h-7 rounded-full flex items-center justify-center bg-gray-200 text-gray-600 text-base mr-2 flex-shrink-0\"\n >\n {{ to.username ? (to.username | slice:0:1) : '?' }}\n </div>\n\n @if (to.showUsername) {\n <div class=\"flex items-center gap-1 ml-4 w-full\">\n <span class=\"text-gray-500\">{{ (to.prefixLabel ?? '') | translate }}:</span>\n\n <span class=\"font-medium text-gray-800 text-sm\">\n {{ to.username || ('COMMON.USER' | translate) }}\n </span>\n </div>\n }\n\n\n </div>\n</div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [`\n .formly-avatar-label img {\n border-radius: 50%;\n }\n `],\n imports: [\n CommonModule,\n ButtonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslatePipe\n ],\n})\nexport class FormlyAvatarLabelComponent extends FieldType {\n\n override get to(): AvatarLabelProps {\n return this.field.props as AvatarLabelProps;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAMa,uBAAuB,CAAA;uGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YAFxB,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,uBAAuB,YAFxB,YAAY,CAAA,EAAA,CAAA;;2FAEX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACgEK,MAAO,0BAA2B,SAAQ,SAAS,CAAA;AAEvD,IAAA,IAAa,EAAE,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAyB;IAC7C;uGAJW,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArC3B;;;;;;;;;;;;;;;;;;;;;;GAsBT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAQD,YAAY,8BACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,+EACnB,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAGF,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAvCtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,QAAA,EACrB;;;;;;;;;;;;;;;;;;;;;;GAsBT,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EAMrC;wBACV,YAAY;wBACZ,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB;AACC,qBAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;;;ACnEH;;AAEG;;;;"}
@@ -0,0 +1,195 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, ViewChild, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FieldType } from '@ngx-formly/core';
5
+ import * as i2 from 'primeng/button';
6
+ import { ButtonModule } from 'primeng/button';
7
+ import * as i4 from 'primeng/popover';
8
+ import { PopoverModule } from 'primeng/popover';
9
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
10
+ import * as i1 from '@es.framework/ng.core/services';
11
+ import * as i3 from 'primeng/api';
12
+
13
+ class FormlyButtonSelectorModule {
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonSelectorModule, imports: [CommonModule] });
16
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonSelectorModule, imports: [CommonModule] });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonSelectorModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: [CommonModule],
22
+ }]
23
+ }] });
24
+
25
+ // formly-selection-button.component.ts
26
+ class FormlySelectionButtonComponent extends FieldType {
27
+ translate;
28
+ popover;
29
+ constructor(translate) {
30
+ super();
31
+ this.translate = translate;
32
+ }
33
+ getButtonLabel() {
34
+ const value = this.formControl.value;
35
+ const options = this.props.options ?? [];
36
+ const selected = options.find(opt => opt[this.props.optionValue] === value);
37
+ if (selected) {
38
+ const labelKey = selected[this.props.optionLabel] ?? '';
39
+ return labelKey ? this.translate.instant(labelKey) : String(selected[this.props.optionLabel] ?? '');
40
+ }
41
+ // fallback to provided buttonLabel (could be a translation key)
42
+ if (this.props.buttonLabel) {
43
+ return this.translate.instant(this.props.buttonLabel);
44
+ }
45
+ return '';
46
+ }
47
+ getButtonIcon() {
48
+ const value = this.formControl.value;
49
+ const options = this.props.options ?? [];
50
+ const selected = options.find(opt => opt[this.props.optionValue] === value);
51
+ if (selected && selected.icon) {
52
+ return selected.icon;
53
+ }
54
+ return this.props.buttonIcon;
55
+ }
56
+ onSelect(value) {
57
+ // حدّد القيمة في الفورم
58
+ this.formControl.setValue(value);
59
+ // اغلاق البوبوفر
60
+ try {
61
+ this.popover?.hide();
62
+ }
63
+ catch (e) {
64
+ // تجاهل لو ما اشتغل hide لسبب ما
65
+ }
66
+ // نفّذ callback إن وُجد
67
+ if (this.props.onSelect) {
68
+ this.props.onSelect(value);
69
+ }
70
+ }
71
+ ngOnInit() {
72
+ const options = this.props.options ?? [];
73
+ const defaultValue = (this.formControl.value != null) ? this.formControl.value : options[0]?.[this.props.optionValue];
74
+ if (defaultValue != null) {
75
+ this.formControl.setValue(defaultValue);
76
+ }
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlySelectionButtonComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlySelectionButtonComponent, isStandalone: true, selector: "formly-selection-button", viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
80
+ <p-button
81
+ type="button"
82
+ [label]="getButtonLabel()"
83
+ [icon]="getButtonIcon()"
84
+ (click)="popover.toggle($event)"
85
+ styleClass="p-button-secondary p-button-outlined p-button-sm"
86
+ ></p-button>
87
+
88
+ <p-popover #popover [style]="{'min-width': '250px'}">
89
+ <ng-template pTemplate="content">
90
+ <div class="flex flex-col p-2">
91
+ @if (props.popoverHeader) {
92
+ <div class="text-xs text-gray-500 mb-2">
93
+ {{ props.popoverHeader | translate }}
94
+ </div>
95
+ }
96
+
97
+ @for (option of props.options || []; track option) {
98
+ <div
99
+ class="flex items-center p-2 hover:bg-gray-100 cursor-pointer rounded"
100
+ (click)="onSelect(option[props.optionValue])"
101
+ >
102
+ @if (option.icon) {
103
+ <i [class]="option.icon" class="mr-2 text-lg"></i>
104
+ }
105
+ <div class="flex flex-col">
106
+ <span class="font-medium">{{ (option[props.optionLabel] || '') | translate }}</span>
107
+ @if (option.description) {
108
+ <span class="text-xs text-gray-500">{{ option.description | translate }}</span>
109
+ }
110
+ </div>
111
+ @if (formControl.value === option[props.optionValue]) {
112
+ <i class="pi pi-check ml-auto text-blue-500 text-lg"></i>
113
+ }
114
+ </div>
115
+ }
116
+
117
+ @if (!(props.options?.length)) {
118
+ <div class="p-3 text-gray-500">
119
+ {{ 'COMMON.NO_DATA' | translate }}
120
+ </div>
121
+ }
122
+ </div>
123
+ </ng-template>
124
+ </p-popover>
125
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i4.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlySelectionButtonComponent, decorators: [{
128
+ type: Component,
129
+ args: [{
130
+ selector: 'formly-selection-button',
131
+ standalone: true,
132
+ imports: [
133
+ ButtonModule,
134
+ PopoverModule,
135
+ TranslatePipe
136
+ ],
137
+ template: `
138
+ <p-button
139
+ type="button"
140
+ [label]="getButtonLabel()"
141
+ [icon]="getButtonIcon()"
142
+ (click)="popover.toggle($event)"
143
+ styleClass="p-button-secondary p-button-outlined p-button-sm"
144
+ ></p-button>
145
+
146
+ <p-popover #popover [style]="{'min-width': '250px'}">
147
+ <ng-template pTemplate="content">
148
+ <div class="flex flex-col p-2">
149
+ @if (props.popoverHeader) {
150
+ <div class="text-xs text-gray-500 mb-2">
151
+ {{ props.popoverHeader | translate }}
152
+ </div>
153
+ }
154
+
155
+ @for (option of props.options || []; track option) {
156
+ <div
157
+ class="flex items-center p-2 hover:bg-gray-100 cursor-pointer rounded"
158
+ (click)="onSelect(option[props.optionValue])"
159
+ >
160
+ @if (option.icon) {
161
+ <i [class]="option.icon" class="mr-2 text-lg"></i>
162
+ }
163
+ <div class="flex flex-col">
164
+ <span class="font-medium">{{ (option[props.optionLabel] || '') | translate }}</span>
165
+ @if (option.description) {
166
+ <span class="text-xs text-gray-500">{{ option.description | translate }}</span>
167
+ }
168
+ </div>
169
+ @if (formControl.value === option[props.optionValue]) {
170
+ <i class="pi pi-check ml-auto text-blue-500 text-lg"></i>
171
+ }
172
+ </div>
173
+ }
174
+
175
+ @if (!(props.options?.length)) {
176
+ <div class="p-3 text-gray-500">
177
+ {{ 'COMMON.NO_DATA' | translate }}
178
+ </div>
179
+ }
180
+ </div>
181
+ </ng-template>
182
+ </p-popover>
183
+ `,
184
+ }]
185
+ }], ctorParameters: () => [{ type: i1.LocalizationService }], propDecorators: { popover: [{
186
+ type: ViewChild,
187
+ args: ['popover']
188
+ }] } });
189
+
190
+ /**
191
+ * Generated bundle index. Do not edit.
192
+ */
193
+
194
+ export { FormlyButtonSelectorModule, FormlySelectionButtonComponent };
195
+ //# sourceMappingURL=es.framework-ng.ui.core-formly-button-selector.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-formly-button-selector.mjs","sources":["../../../../libs/ng.ui.core/formly-button-selector/src/lib/formly-button-selector-module.ts","../../../../libs/ng.ui.core/formly-button-selector/src/lib/formly-button-selector.ts","../../../../libs/ng.ui.core/formly-button-selector/src/es.framework-ng.ui.core-formly-button-selector.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormlyButtonSelectorModule {}\n","// formly-selection-button.component.ts\n\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\n\nimport { ButtonModule } from 'primeng/button';\nimport { PopoverModule } from 'primeng/popover';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { Popover } from 'primeng/popover';\nimport { LocalizationService } from '@es.framework/ng.core/services';\n\ninterface SelectionButtonProps {\n options?: any[]; // مصفوفة الخيارات (قد تكون undefined)\n optionLabel: string; // حقل النص في كل خيار\n optionValue: string; // حقل القيمة في كل خيار\n popoverHeader?: string;\n buttonLabel?: string;\n buttonIcon?: string;\n onSelect?: (value: any) => void;\n}\n\n@Component({\n selector: 'formly-selection-button',\n standalone: true,\n imports: [\n ButtonModule,\n PopoverModule,\n TranslatePipe\n],\n template: `\n <p-button\n type=\"button\"\n [label]=\"getButtonLabel()\"\n [icon]=\"getButtonIcon()\"\n (click)=\"popover.toggle($event)\"\n styleClass=\"p-button-secondary p-button-outlined p-button-sm\"\n ></p-button>\n \n <p-popover #popover [style]=\"{'min-width': '250px'}\">\n <ng-template pTemplate=\"content\">\n <div class=\"flex flex-col p-2\">\n @if (props.popoverHeader) {\n <div class=\"text-xs text-gray-500 mb-2\">\n {{ props.popoverHeader | translate }}\n </div>\n }\n \n @for (option of props.options || []; track option) {\n <div\n class=\"flex items-center p-2 hover:bg-gray-100 cursor-pointer rounded\"\n (click)=\"onSelect(option[props.optionValue])\"\n >\n @if (option.icon) {\n <i [class]=\"option.icon\" class=\"mr-2 text-lg\"></i>\n }\n <div class=\"flex flex-col\">\n <span class=\"font-medium\">{{ (option[props.optionLabel] || '') | translate }}</span>\n @if (option.description) {\n <span class=\"text-xs text-gray-500\">{{ option.description | translate }}</span>\n }\n </div>\n @if (formControl.value === option[props.optionValue]) {\n <i class=\"pi pi-check ml-auto text-blue-500 text-lg\"></i>\n }\n </div>\n }\n \n @if (!(props.options?.length)) {\n <div class=\"p-3 text-gray-500\">\n {{ 'COMMON.NO_DATA' | translate }}\n </div>\n }\n </div>\n </ng-template>\n </p-popover>\n `,\n})\nexport class FormlySelectionButtonComponent extends FieldType<FieldTypeConfig<SelectionButtonProps>> implements OnInit {\n @ViewChild('popover') popover!: Popover;\n\n constructor(private translate: LocalizationService) {\n super();\n }\n\n getButtonLabel(): string {\n const value = this.formControl.value;\n const options = this.props.options ?? [];\n const selected = options.find(opt => opt[this.props.optionValue] === value);\n\n if (selected) {\n const labelKey = selected[this.props.optionLabel] ?? '';\n return labelKey ? this.translate.instant(labelKey) : String(selected[this.props.optionLabel] ?? '');\n }\n\n // fallback to provided buttonLabel (could be a translation key)\n if (this.props.buttonLabel) {\n return this.translate.instant(this.props.buttonLabel);\n }\n\n return '';\n }\n\n getButtonIcon(): string | undefined {\n const value = this.formControl.value;\n const options = this.props.options ?? [];\n const selected = options.find(opt => opt[this.props.optionValue] === value);\n\n if (selected && selected.icon) {\n return selected.icon;\n }\n\n return this.props.buttonIcon;\n }\n\n onSelect(value: any): void {\n // حدّد القيمة في الفورم\n this.formControl.setValue(value);\n\n // اغلاق البوبوفر\n try {\n this.popover?.hide();\n } catch (e) {\n // تجاهل لو ما اشتغل hide لسبب ما\n }\n\n // نفّذ callback إن وُجد\n if (this.props.onSelect) {\n this.props.onSelect(value);\n }\n }\n\n ngOnInit(): void {\n const options = this.props.options ?? [];\n const defaultValue = (this.formControl.value != null) ? this.formControl.value : options[0]?.[this.props.optionValue];\n if (defaultValue != null) {\n this.formControl.setValue(defaultValue);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { FieldType } from '@ngx-formly/core';
6
+ import { TranslatePipe } from '@es.framework/ng.core/pipes';
7
+ import * as i1 from 'primeng/button';
8
+ import { ButtonModule } from 'primeng/button';
9
+
10
+ class FormlyButtonModule {
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonModule, imports: [CommonModule] });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonModule, imports: [CommonModule] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [CommonModule],
19
+ }]
20
+ }] });
21
+
22
+ class FormlyButtonComponent extends FieldType {
23
+ get to() {
24
+ return this.field.props;
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: FormlyButtonComponent, isStandalone: true, selector: "formly-button", usesInheritance: true, ngImport: i0, template: `
28
+ <div class="flex items-cente flex-col text-gray-700 text-sm mb-4" style="flex-direction: row-reverse;">
29
+ <button
30
+ pButton
31
+ pRipple
32
+ type="button"
33
+ icon="pi pi-expand"
34
+ class="p-button-text p-button-sm"
35
+ (click)="to.onExpand && to.onExpand(field, model)"
36
+ ></button>
37
+ </div>
38
+
39
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i1.ButtonDirective, selector: "[pButton]", inputs: ["ptButtonDirective", "hostName", "text", "plain", "raised", "size", "outlined", "rounded", "iconPos", "loadingIcon", "fluid", "label", "icon", "loading", "buttonProps", "severity"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyButtonComponent, decorators: [{
42
+ type: Component,
43
+ args: [{
44
+ selector: 'formly-button',
45
+ template: `
46
+ <div class="flex items-cente flex-col text-gray-700 text-sm mb-4" style="flex-direction: row-reverse;">
47
+ <button
48
+ pButton
49
+ pRipple
50
+ type="button"
51
+ icon="pi pi-expand"
52
+ class="p-button-text p-button-sm"
53
+ (click)="to.onExpand && to.onExpand(field, model)"
54
+ ></button>
55
+ </div>
56
+
57
+ `,
58
+ imports: [
59
+ ButtonModule,
60
+ FormsModule,
61
+ ReactiveFormsModule,
62
+ TranslatePipe
63
+ ],
64
+ changeDetection: ChangeDetectionStrategy.OnPush,
65
+ }]
66
+ }] });
67
+
68
+ /**
69
+ * Generated bundle index. Do not edit.
70
+ */
71
+
72
+ export { FormlyButtonComponent, FormlyButtonModule };
73
+ //# sourceMappingURL=es.framework-ng.ui.core-formly-button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.framework-ng.ui.core-formly-button.mjs","sources":["../../../../libs/ng.ui.core/formly-button/src/lib/formly-button-module.ts","../../../../libs/ng.ui.core/formly-button/src/lib/formly-button.ts","../../../../libs/ng.ui.core/formly-button/src/es.framework-ng.ui.core-formly-button.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormlyButtonModule {}\n","\nimport { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\nimport { ButtonModule } from 'primeng/button';\n\ninterface TemplateOptions {\n onExpand?: (field: any, model: any) => void;\n // other props...\n}\n\n@Component({\n selector: 'formly-button',\n template: `\n <div class=\"flex items-cente flex-col text-gray-700 text-sm mb-4\" style=\"flex-direction: row-reverse;\">\n<button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-expand\"\n class=\"p-button-text p-button-sm\"\n (click)=\"to.onExpand && to.onExpand(field, model)\"\n ></button>\n </div>\n\n `,\n imports: [\n ButtonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslatePipe\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyButtonComponent extends FieldType {\n\n override get to(): TemplateOptions {\n return this.field.props as TemplateOptions;\n}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAMa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,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,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;AC8BK,MAAO,qBAAsB,SAAQ,SAAS,CAAA;AAElD,IAAA,IAAa,EAAE,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAwB;IAC5C;uGAJa,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArBtB;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;AACA,oBAAA,OAAO,EAAE;wBACR,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB;AACH,qBAAA;oBACC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;AClCD;;AAEG;;;;"}