@lucca-front/ng 20.3.3-rc.6 → 21.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/api/index.d.ts +18 -0
  2. package/breadcrumbs/index.d.ts +1 -3
  3. package/callout/index.d.ts +8 -2
  4. package/chip/index.d.ts +3 -2
  5. package/clear/index.d.ts +30 -0
  6. package/code/index.d.ts +9 -0
  7. package/container/index.d.ts +2 -2
  8. package/core/index.d.ts +6 -6
  9. package/core-select/department/index.d.ts +1 -1
  10. package/core-select/index.d.ts +2 -1
  11. package/core-select/occupation-category/index.d.ts +26 -0
  12. package/data-table/index.d.ts +68 -30
  13. package/date/index.d.ts +18 -0
  14. package/date2/index.d.ts +15 -15
  15. package/department/index.d.ts +10 -1
  16. package/divider/index.d.ts +7 -4
  17. package/dropdown/index.d.ts +6 -3
  18. package/establishment/index.d.ts +15 -0
  19. package/fancy-box/index.d.ts +2 -1
  20. package/fesm2022/lucca-front-ng-a11y.mjs +32 -32
  21. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  22. package/fesm2022/lucca-front-ng-animations.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-api.mjs +76 -59
  24. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-app-layout.mjs +8 -8
  26. package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-box.mjs +8 -8
  28. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +18 -30
  30. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-button.mjs +12 -7
  32. package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-callout.mjs +117 -64
  34. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-chip.mjs +29 -25
  36. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-clear.mjs +94 -0
  38. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -0
  39. package/fesm2022/lucca-front-ng-code.mjs +21 -0
  40. package/fesm2022/lucca-front-ng-code.mjs.map +1 -0
  41. package/fesm2022/lucca-front-ng-comment.mjs +31 -31
  42. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-container.mjs +18 -18
  44. package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-core-select-api.mjs +14 -16
  46. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-core-select-department.mjs +16 -18
  48. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +18 -19
  50. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +12 -13
  52. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +79 -0
  54. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -0
  55. package/fesm2022/lucca-front-ng-core-select-user.mjs +60 -62
  56. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-core-select.mjs +103 -113
  58. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-core.mjs +48 -49
  60. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-data-table.mjs +266 -87
  62. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-date.mjs +113 -97
  64. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-date2.mjs +134 -136
  66. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-department.mjs +56 -47
  68. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-dialog.mjs +53 -56
  70. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-divider.mjs +13 -15
  72. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-dropdown.mjs +225 -224
  74. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-empty-state.mjs +13 -9
  76. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-establishment.mjs +85 -71
  78. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-fancy-box.mjs +10 -6
  80. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-file-upload.mjs +112 -112
  82. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-filter-pills.mjs +78 -81
  84. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-footer.mjs +12 -19
  86. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-form-field.mjs +88 -88
  88. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-form-header.mjs +23 -0
  90. package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -0
  91. package/fesm2022/lucca-front-ng-form.mjs +24 -0
  92. package/fesm2022/lucca-front-ng-form.mjs.map +1 -0
  93. package/fesm2022/lucca-front-ng-formly.mjs +77 -77
  94. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  95. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +19 -20
  96. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  97. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
  98. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +3 -2
  99. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  101. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +206 -150
  102. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  103. package/fesm2022/lucca-front-ng-forms.mjs +185 -171
  104. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  105. package/fesm2022/lucca-front-ng-gauge.mjs +26 -26
  106. package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
  107. package/fesm2022/lucca-front-ng-grid.mjs +26 -26
  108. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  109. package/fesm2022/lucca-front-ng-highlight-data.mjs +20 -20
  110. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  111. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +17 -32
  112. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  113. package/fesm2022/lucca-front-ng-icon.mjs +6 -6
  114. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  115. package/fesm2022/lucca-front-ng-index-table.mjs +355 -0
  116. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -0
  117. package/fesm2022/lucca-front-ng-inline-message.mjs +4 -4
  118. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  119. package/fesm2022/lucca-front-ng-input.mjs +67 -57
  120. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-link.mjs +24 -23
  122. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-listbox.mjs +31 -31
  124. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  125. package/fesm2022/lucca-front-ng-listing.mjs +28 -24
  126. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  127. package/fesm2022/lucca-front-ng-loading.mjs +11 -11
  128. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  129. package/fesm2022/lucca-front-ng-main-layout.mjs +14 -14
  130. package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
  131. package/fesm2022/lucca-front-ng-mobile-push.mjs +39 -31
  132. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  133. package/fesm2022/lucca-front-ng-modal.mjs +57 -62
  134. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  135. package/fesm2022/lucca-front-ng-multi-select.mjs +247 -230
  136. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  137. package/fesm2022/lucca-front-ng-new-badge.mjs +4 -4
  138. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  139. package/fesm2022/lucca-front-ng-number-format.mjs +11 -13
  140. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  141. package/fesm2022/lucca-front-ng-number.mjs +11 -10
  142. package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
  143. package/fesm2022/lucca-front-ng-numeric-badge.mjs +22 -10
  144. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  145. package/fesm2022/lucca-front-ng-option.mjs +287 -240
  146. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  147. package/fesm2022/lucca-front-ng-page-header.mjs +11 -11
  148. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  149. package/fesm2022/lucca-front-ng-pagination.mjs +38 -38
  150. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  151. package/fesm2022/lucca-front-ng-plg-push.mjs +54 -5
  152. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  153. package/fesm2022/lucca-front-ng-popover.mjs +38 -28
  154. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  155. package/fesm2022/lucca-front-ng-popover2.mjs +36 -33
  156. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  157. package/fesm2022/lucca-front-ng-popup.mjs +13 -10
  158. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  159. package/fesm2022/lucca-front-ng-progress-bar.mjs +28 -0
  160. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -0
  161. package/fesm2022/lucca-front-ng-read-more.mjs +46 -78
  162. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  163. package/fesm2022/lucca-front-ng-safe-content.mjs +10 -11
  164. package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
  165. package/fesm2022/lucca-front-ng-scroll-box.mjs +46 -0
  166. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -0
  167. package/fesm2022/lucca-front-ng-scroll.mjs +10 -8
  168. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  169. package/fesm2022/lucca-front-ng-scrollBox.mjs +1 -66
  170. package/fesm2022/lucca-front-ng-scrollBox.mjs.map +1 -1
  171. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +98 -0
  172. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -0
  173. package/fesm2022/lucca-front-ng-segmented-control.mjs +71 -0
  174. package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -0
  175. package/fesm2022/lucca-front-ng-segmentedControl.mjs +1 -66
  176. package/fesm2022/lucca-front-ng-segmentedControl.mjs.map +1 -1
  177. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs +1 -93
  178. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs.map +1 -1
  179. package/fesm2022/lucca-front-ng-select.mjs +21 -20
  180. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  181. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  182. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  183. package/fesm2022/lucca-front-ng-simple-select.mjs +75 -67
  184. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  185. package/fesm2022/lucca-front-ng-skeleton.mjs +46 -44
  186. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  187. package/fesm2022/lucca-front-ng-sortable-list.mjs +49 -0
  188. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -0
  189. package/fesm2022/lucca-front-ng-status-badge.mjs +34 -0
  190. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -0
  191. package/fesm2022/lucca-front-ng-statusBadge.mjs +1 -29
  192. package/fesm2022/lucca-front-ng-statusBadge.mjs.map +1 -1
  193. package/fesm2022/lucca-front-ng-table-of-content.mjs +39 -0
  194. package/fesm2022/lucca-front-ng-table-of-content.mjs.map +1 -0
  195. package/fesm2022/lucca-front-ng-tag.mjs +35 -13
  196. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  197. package/fesm2022/lucca-front-ng-time.mjs +132 -142
  198. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  199. package/fesm2022/lucca-front-ng-title.mjs +10 -10
  200. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  201. package/fesm2022/lucca-front-ng-toast.mjs +26 -23
  202. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  203. package/fesm2022/lucca-front-ng-tooltip.mjs +40 -32
  204. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  205. package/fesm2022/lucca-front-ng-tree-select.mjs +20 -21
  206. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  207. package/fesm2022/lucca-front-ng-user-popover.mjs +23 -27
  208. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  209. package/fesm2022/lucca-front-ng-user.mjs +134 -111
  210. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  211. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +91 -0
  212. package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -0
  213. package/file-upload/index.d.ts +25 -25
  214. package/footer/index.d.ts +7 -7
  215. package/form/index.d.ts +9 -0
  216. package/form-field/index.d.ts +33 -32
  217. package/form-header/index.d.ts +9 -0
  218. package/forms/index.d.ts +39 -37
  219. package/forms/rich-text-input/index.d.ts +4 -1
  220. package/gauge/index.d.ts +17 -17
  221. package/grid/index.d.ts +14 -14
  222. package/horizontal-navigation/index.d.ts +5 -8
  223. package/index-table/index.d.ts +103 -0
  224. package/input/index.d.ts +27 -15
  225. package/link/index.d.ts +3 -4
  226. package/listbox/index.d.ts +20 -20
  227. package/listing/index.d.ts +13 -9
  228. package/loading/index.d.ts +4 -4
  229. package/main-layout/index.d.ts +3 -3
  230. package/modal/index.d.ts +3 -2
  231. package/multi-select/index.d.ts +13 -3
  232. package/number/index.d.ts +3 -0
  233. package/option/index.d.ts +58 -4
  234. package/package.json +125 -69
  235. package/page-header/index.d.ts +5 -5
  236. package/plg-push/index.d.ts +13 -1
  237. package/popover/index.d.ts +12 -0
  238. package/popup/index.d.ts +3 -0
  239. package/progress-bar/index.d.ts +14 -0
  240. package/read-more/index.d.ts +6 -12
  241. package/scroll/index.d.ts +3 -0
  242. package/scroll-box/index.d.ts +15 -0
  243. package/scrollBox/index.d.ts +1 -19
  244. package/segmented-control/index.d.ts +28 -0
  245. package/segmented-control-tabs/index.d.ts +34 -0
  246. package/segmentedControl/index.d.ts +1 -28
  247. package/segmentedControlTabs/index.d.ts +1 -34
  248. package/select/index.d.ts +5 -4
  249. package/simple-select/index.d.ts +1 -0
  250. package/skeleton/index.d.ts +2 -1
  251. package/sortable-list/index.d.ts +22 -0
  252. package/src/components/cdk/_dragDrop.scss +31 -3
  253. package/src/definitions/option/_option-item.scss +6 -0
  254. package/status-badge/index.d.ts +16 -0
  255. package/statusBadge/index.d.ts +1 -16
  256. package/table-of-content/index.d.ts +16 -0
  257. package/time/index.d.ts +30 -30
  258. package/toast/index.d.ts +3 -0
  259. package/tooltip/index.d.ts +9 -0
  260. package/user/index.d.ts +20 -3
  261. package/vertical-navigation/index.d.ts +42 -0
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-formly.mjs","sources":["../../../packages/ng/formly/types/api.ts","../../../packages/ng/formly/types/api.html","../../../packages/ng/formly/types/checkbox.ts","../../../packages/ng/formly/types/checkbox.html","../../../packages/ng/formly/types/date.ts","../../../packages/ng/formly/types/date.html","../../../packages/ng/formly/types/department.ts","../../../packages/ng/formly/types/department.html","../../../packages/ng/formly/types/establishment.ts","../../../packages/ng/formly/types/establishment.html","../../../packages/ng/formly/types/input.ts","../../../packages/ng/formly/types/input.html","../../../packages/ng/formly/types/radios.ts","../../../packages/ng/formly/types/radios.html","../../../packages/ng/formly/types/select.ts","../../../packages/ng/formly/types/select.html","../../../packages/ng/formly/types/textarea.ts","../../../packages/ng/formly/types/textarea.html","../../../packages/ng/formly/types/user.ts","../../../packages/ng/formly/types/user.html","../../../packages/ng/formly/formly.utils.ts","../../../packages/ng/formly/wrappers/error.ts","../../../packages/ng/formly/wrappers/error.html","../../../packages/ng/formly/wrappers/helper.ts","../../../packages/ng/formly/wrappers/helper.html","../../../packages/ng/formly/wrappers/icon.ts","../../../packages/ng/formly/wrappers/icon.html","../../../packages/ng/formly/wrappers/radiosfield-layout.ts","../../../packages/ng/formly/wrappers/radiosfield-layout.html","../../../packages/ng/formly/wrappers/suffix.ts","../../../packages/ng/formly/wrappers/suffix.html","../../../packages/ng/formly/wrappers/textfield-layout.ts","../../../packages/ng/formly/wrappers/textfield-layout.html","../../../packages/ng/formly/wrappers/checkbox-layout.ts","../../../packages/ng/formly/wrappers/checkbox-layout.html","../../../packages/ng/formly/formly.config.ts","../../../packages/ng/formly/formly.providers.ts","../../../packages/ng/formly/formly.module.ts","../../../packages/ng/formly/lucca-front-ng-formly.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuApiSelectInputComponent } from '@lucca-front/ng/api';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-api',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './api.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuApiSelectInputComponent],\n})\nexport class LuFormlyFieldApi extends FieldType<FieldTypeConfig> {\n\tget _api() {\n\t\treturn this.props['api'] as string;\n\t}\n\tget _filters() {\n\t\treturn (this.props['filters'] || []) as string[];\n\t}\n\tget _orderBy() {\n\t\treturn this.props['orderBy'] as string;\n\t}\n\tget _sort() {\n\t\treturn this.props['sort'] as string;\n\t}\n\tget _standard() {\n\t\treturn (this.props['standard'] || 'v3') as 'v3' | 'v4';\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-api-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[api]=\"_api\"\n\t[filters]=\"_filters\"\n\t[orderBy]=\"_orderBy\"\n\t[sort]=\"_sort\"\n\t[standard]=\"_standard\"\n/>\n<span [attr.for]=\"id\" class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-checkbox',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './checkbox.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule],\n})\nexport class LuFormlyFieldCheckbox extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<label class=\"checkbox\" [class]=\"props['mod']\">\n\t<input\n\t\tclass=\"checkbox-input\"\n\t\ttype=\"checkbox\"\n\t\t[name]=\"props['name']\"\n\t\t[id]=\"id\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t/>\n\t<span class=\"checkbox-label\">{{ props.label }}</span>\n</label>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuDateSelectInputComponent } from '@lucca-front/ng/date';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-date',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './date.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuDateSelectInputComponent],\n})\nexport class LuFormlyFieldDate extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-date-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[min]=\"props.min\"\n\t[max]=\"props.max\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuDepartmentSelectInputComponent } from '@lucca-front/ng/department';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-department',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './department.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuDepartmentSelectInputComponent],\n})\nexport class LuFormlyFieldDepartment extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-department-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuEstablishmentSelectInputComponent } from '@lucca-front/ng/establishment';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-establishment',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './establishment.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuEstablishmentSelectInputComponent],\n})\nexport class LuFormlyFieldEstablishment extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-establishment-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuInputDirective } from '@lucca-front/ng/input';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-input',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './input.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuInputDirective],\n})\nexport class LuFormlyFieldInput extends FieldType<FieldTypeConfig> {\n\tget type() {\n\t\treturn this.props.type || 'text';\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","@if (type === \"number\") {\n\t<!-- type=\"number\" has to be static in order to have NumberValueAccessor instead of DefaultValueAccessor -->\n\t<input\n\t\ttype=\"number\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n} @else {\n\t<input\n\t\t[type]=\"type\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n}\n\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-radios',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './radios.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule],\n})\nexport class LuFormlyFieldRadios extends FieldType<FieldTypeConfig> {\n\tget _options() {\n\t\treturn (this.props.options || []) as { value: unknown; label: unknown }[];\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<legend class=\"radiosfield-label\">{{ props.label }}</legend>\n<div class=\"radiosfield-input\">\n\t@for (option of _options; track $index) {\n\t\t<label class=\"radio\">\n\t\t\t<input\n\t\t\t\tclass=\"radio-input\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[name]=\"props['name']\"\n\t\t\t\t[value]=\"option.value\"\n\t\t\t\t[id]=\"id + '_' + $index\"\n\t\t\t\t[formControl]=\"formControl\"\n\t\t\t\t[formlyAttributes]=\"field\"\n\t\t\t/>\n\t\t\t<span class=\"radio-label\">{{ option.label }}</span>\n\t\t</label>\n\t}\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuInputClearerComponent, LuInputDisplayerDirective } from '@lucca-front/ng/input';\nimport { LuOptionPickerModule } from '@lucca-front/ng/option';\nimport { LuSelectInputComponent } from '@lucca-front/ng/select';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-select',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './select.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuSelectInputComponent, LuOptionPickerModule, LuInputClearerComponent, LuInputDisplayerDirective],\n})\nexport class LuFormlyFieldSelect extends FieldType<FieldTypeConfig> {\n\tget _options() {\n\t\treturn (this.props.options || []) as { value: unknown; label: unknown; name: string }[];\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[multiple]=\"props['multiple']\"\n\t[placeholder]=\"props.placeholder\"\n>\n\t<ng-container *luDisplayer=\"let option\">\n\t\t<span [class.chip]=\"props['multiple']\" [class.mod-unkillable]=\"props['multiple']\"\n\t\t\t><span class=\"pr-u-ellipsis\">{{ option.name }}</span></span\n\t\t>\n\t</ng-container>\n\t<lu-option-picker>\n\t\t@for (option of _options; track $index) {\n\t\t\t<lu-option [value]=\"option\"> {{ option.name }} </lu-option>\n\t\t}\n\t</lu-option-picker>\n\t@if (!props.required && !props[\"multiple\"]) {\n\t\t<lu-input-clearer />\n\t}\n</lu-select>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuInputDirective } from '@lucca-front/ng/input';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-input',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './textarea.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuInputDirective],\n})\nexport class LuFormlyFieldTextarea extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<textarea\n\tclass=\"textfield-input\"\n\t[name]=\"props['name']\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\tluInput\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n></textarea>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuUserSelectInputComponent } from '@lucca-front/ng/user';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-user',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './user.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuUserSelectInputComponent],\n})\nexport class LuFormlyFieldUser extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-user-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { FormlyExtension, FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function buildAddWrapperExtension(wrapperName: string, predicate: (f: FormlyFieldConfig | undefined) => boolean): FormlyExtension {\n\treturn {\n\t\tpostPopulate(field: FormlyFieldConfig) {\n\t\t\tif (predicate(field)) {\n\t\t\t\tfield.wrappers = [...(field.wrappers || []), wrapperName];\n\t\t\t}\n\t\t},\n\t};\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldTypeConfig, FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// component that display the right error message\n@Component({\n\tselector: 'lu-formly-error-message',\n\ttemplate: `\n\t\t@for (message of errorMessages; track $index) {\n\t\t\t<div class=\"textfield-messages-error\">\n\t\t\t\t{{ message }}\n\t\t\t</div>\n\t\t}\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyErrorMessage {\n\t@Input() formControl?: FormControl;\n\t@Input() field: FormlyFieldConfig;\n\n\tget errorMessages(): string[] {\n\t\tconst messages: string[] = [];\n\t\tif (this.formControl?.errors) {\n\t\t\tObject.keys(this.formControl.errors).forEach((key) => {\n\t\t\t\tif (this.field.validation?.messages?.[key]) {\n\t\t\t\t\tmessages.push(this.field.validation.messages[key] as string);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn messages;\n\t}\n}\n\n// wrapper\n@Component({\n\tselector: 'lu-formly-wrapper-error',\n\tstyleUrls: ['flex-layout.scss'],\n\ttemplateUrl: './error.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, LuFormlyErrorMessage],\n})\nexport class LuFormlyWrapperError extends FieldWrapper<FieldTypeConfig> {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget validationId() {\n\t\treturn this.field.id + '-message';\n\t}\n}\n\nexport const templateErrorExtension = buildAddWrapperExtension('error', (field) => !!field.validation);\n","<ng-container #fieldComponent />\n@if (formControl.touched && formControl.invalid) {\n\t<div class=\"textfield-messages\" [id]=\"validationId\">\n\t\t<lu-formly-error-message [formControl]=\"formControl\" [field]=\"field\" />\n\t</div>\n}\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-helper',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './helper.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyWrapperHelper extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n}\n\nexport const templateHelperExtension = buildAddWrapperExtension('helper', (field) => !!field?.props?.['helper']);\n","<ng-container #fieldComponent />\n<div class=\"textfield-messages mod-helper\">\n\t<div class=\"textfield-messages-helper\">{{ props[\"helper\"] }}</div>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-suffix',\n\tstyleUrls: ['flex-layout.scss', 'suffixes.common.scss'],\n\ttemplateUrl: './icon.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyWrapperIcon extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n}\n\nexport const templateIconExtension = buildAddWrapperExtension('icon', (field) => !!field?.props?.['icon']);\n","<ng-container #fieldComponent /><span aria-hidden=\"true\" class=\"textfield-suffix mod-icon lucca-icon\">{{ props[\"icon\"] }}</span>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-radiosfield-layout',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './radiosfield-layout.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyWrapperRadiosfieldLayout extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget mod() {\n\t\treturn (this.props['mod'] || '') as string;\n\t}\n\n\tget isRequired() {\n\t\treturn !!this.props && !!this.props.required ? 'is-required' : '';\n\t}\n\n\tget isFocused() {\n\t\treturn !!this.props && this.props['_isFocused'] ? 'is-focused' : '';\n\t}\n\n\tget isError() {\n\t\treturn this.formControl.invalid && this.formControl.touched ? 'is-error' : '';\n\t}\n}\n","<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"radiosfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-suffix',\n\tstyleUrls: ['flex-layout.scss', 'suffixes.common.scss'],\n\ttemplateUrl: './suffix.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyWrapperSuffix extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n}\n\nexport const templateSuffixExtension = buildAddWrapperExtension('suffix', (field) => !!field?.props?.['suffix'] && !field?.props?.['icon']);\n","<ng-container #fieldComponent /><span class=\"textfield-suffix\">{{ props[\"suffix\"] }}</span>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-layout',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './textfield-layout.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyWrapperTextfieldLayout extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget mod() {\n\t\treturn (this.props['mod'] || '') as string;\n\t}\n\n\tget modMultiline() {\n\t\treturn !!this.field && this.field.type === 'textarea' ? 'mod-multiline' : '';\n\t}\n\n\tget modWithSuffix() {\n\t\treturn !!this.props && !!this.props['suffix'] ? 'mod-withSuffix' : '';\n\t}\n\n\tget isRequired() {\n\t\treturn !!this.props && !!this.props.required ? 'is-required' : '';\n\t}\n\n\tget isDisabled() {\n\t\treturn !!this.props && !!this.props.disabled ? 'is-disabled' : '';\n\t}\n\n\tget isFocused() {\n\t\treturn !!this.props && this.props['_isFocused'] ? 'is-focused' : '';\n\t}\n\n\tget isError() {\n\t\treturn this.formControl.invalid && this.formControl.touched ? 'is-error' : '';\n\t}\n}\n","<label class=\"textfield\" [class]=\"[mod, modWithSuffix, modMultiline, isRequired, isFocused, isError, isDisabled]\">\n\t<ng-container #fieldComponent />\n</label>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-checkbox-layout',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './checkbox-layout.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n})\nexport class LuFormlyWrapperCheckboxLayout extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget mod() {\n\t\treturn (this.props['mod'] || '') as string;\n\t}\n\n\tget isRequired() {\n\t\treturn !!this.props && !!this.props.required ? 'is-required' : '';\n\t}\n\n\tget isFocused() {\n\t\treturn !!this.props && this.props['_isFocused'] ? 'is-focused' : '';\n\t}\n\n\tget isError() {\n\t\treturn this.formControl.invalid && this.formControl.touched ? 'is-error' : '';\n\t}\n}\n","<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"checkboxesfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n","import { ConfigOption } from '@ngx-formly/core';\n// inputs\nimport {\n\tLuFormlyFieldApi,\n\tLuFormlyFieldCheckbox,\n\tLuFormlyFieldDate,\n\tLuFormlyFieldDepartment,\n\tLuFormlyFieldEstablishment,\n\tLuFormlyFieldInput,\n\tLuFormlyFieldRadios,\n\tLuFormlyFieldSelect,\n\tLuFormlyFieldTextarea,\n\tLuFormlyFieldUser,\n} from './types/index';\n// wrappers\nimport {\n\tLuFormlyWrapperCheckboxLayout,\n\tLuFormlyWrapperError,\n\tLuFormlyWrapperHelper,\n\tLuFormlyWrapperIcon,\n\tLuFormlyWrapperRadiosfieldLayout,\n\tLuFormlyWrapperSuffix,\n\tLuFormlyWrapperTextfieldLayout,\n\ttemplateErrorExtension,\n\ttemplateHelperExtension,\n\ttemplateIconExtension,\n\ttemplateSuffixExtension,\n} from './wrappers/index';\n\nexport const LU_FORMLY_CONFIG: ConfigOption = {\n\ttypes: [\n\t\t{\n\t\t\tname: 'input',\n\t\t\tcomponent: LuFormlyFieldInput,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'radio',\n\t\t\tcomponent: LuFormlyFieldRadios,\n\t\t\twrappers: ['radiosfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'checkbox',\n\t\t\tcomponent: LuFormlyFieldCheckbox,\n\t\t\twrappers: ['checkbox-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'date',\n\t\t\tcomponent: LuFormlyFieldDate,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'textarea',\n\t\t\tcomponent: LuFormlyFieldTextarea,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'select',\n\t\t\tcomponent: LuFormlyFieldSelect,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'user',\n\t\t\tcomponent: LuFormlyFieldUser,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'api',\n\t\t\tcomponent: LuFormlyFieldApi,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'department',\n\t\t\tcomponent: LuFormlyFieldDepartment,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'establishment',\n\t\t\tcomponent: LuFormlyFieldEstablishment,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t],\n\twrappers: [\n\t\t{ name: 'helper', component: LuFormlyWrapperHelper },\n\t\t{ name: 'checkbox-layout', component: LuFormlyWrapperCheckboxLayout },\n\t\t{ name: 'radiosfield-layout', component: LuFormlyWrapperRadiosfieldLayout },\n\t\t{ name: 'textfield-layout', component: LuFormlyWrapperTextfieldLayout },\n\t\t{ name: 'suffix', component: LuFormlyWrapperSuffix },\n\t\t{ name: 'icon', component: LuFormlyWrapperIcon },\n\t\t{ name: 'error', component: LuFormlyWrapperError },\n\t],\n\textensions: [\n\t\t{ name: 'helper', extension: templateHelperExtension }, // fifth\n\t\t{ name: 'error', extension: templateErrorExtension }, // fourth\n\t\t{ name: 'suffix', extension: templateSuffixExtension }, // third\n\t\t{ name: 'icon', extension: templateIconExtension }, // second\n\t],\n};\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { LU_FORMLY_CONFIG } from './formly.config';\n\nexport function provideLuFormly(): EnvironmentProviders {\n\treturn importProvidersFrom(FormlyModule.forChild(LU_FORMLY_CONFIG));\n}\n","import { NgModule } from '@angular/core';\nimport { provideLuFormly } from './formly.providers';\n\n/**\n * @deprecated use provideLuFormly() in a lazy loaded route (and stop using formly please)\n * */\n@NgModule({\n\tproviders: [provideLuFormly()],\n})\nexport class LuFormlyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-formly.mjs","sources":["../../../packages/ng/formly/types/api.ts","../../../packages/ng/formly/types/api.html","../../../packages/ng/formly/types/checkbox.ts","../../../packages/ng/formly/types/checkbox.html","../../../packages/ng/formly/types/date.ts","../../../packages/ng/formly/types/date.html","../../../packages/ng/formly/types/department.ts","../../../packages/ng/formly/types/department.html","../../../packages/ng/formly/types/establishment.ts","../../../packages/ng/formly/types/establishment.html","../../../packages/ng/formly/types/input.ts","../../../packages/ng/formly/types/input.html","../../../packages/ng/formly/types/radios.ts","../../../packages/ng/formly/types/radios.html","../../../packages/ng/formly/types/select.ts","../../../packages/ng/formly/types/select.html","../../../packages/ng/formly/types/textarea.ts","../../../packages/ng/formly/types/textarea.html","../../../packages/ng/formly/types/user.ts","../../../packages/ng/formly/types/user.html","../../../packages/ng/formly/formly.utils.ts","../../../packages/ng/formly/wrappers/error.ts","../../../packages/ng/formly/wrappers/error.html","../../../packages/ng/formly/wrappers/helper.ts","../../../packages/ng/formly/wrappers/helper.html","../../../packages/ng/formly/wrappers/icon.ts","../../../packages/ng/formly/wrappers/icon.html","../../../packages/ng/formly/wrappers/radiosfield-layout.ts","../../../packages/ng/formly/wrappers/radiosfield-layout.html","../../../packages/ng/formly/wrappers/suffix.ts","../../../packages/ng/formly/wrappers/suffix.html","../../../packages/ng/formly/wrappers/textfield-layout.ts","../../../packages/ng/formly/wrappers/textfield-layout.html","../../../packages/ng/formly/wrappers/checkbox-layout.ts","../../../packages/ng/formly/wrappers/checkbox-layout.html","../../../packages/ng/formly/formly.config.ts","../../../packages/ng/formly/formly.providers.ts","../../../packages/ng/formly/formly.module.ts","../../../packages/ng/formly/lucca-front-ng-formly.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuApiSelectInputComponent } from '@lucca-front/ng/api';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-api',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './api.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuApiSelectInputComponent],\n})\nexport class LuFormlyFieldApi extends FieldType<FieldTypeConfig> {\n\tget _api() {\n\t\treturn this.props['api'] as string;\n\t}\n\tget _filters() {\n\t\treturn (this.props['filters'] || []) as string[];\n\t}\n\tget _orderBy() {\n\t\treturn this.props['orderBy'] as string;\n\t}\n\tget _sort() {\n\t\treturn this.props['sort'] as string;\n\t}\n\tget _standard() {\n\t\treturn (this.props['standard'] || 'v3') as 'v3' | 'v4';\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-api-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[api]=\"_api\"\n\t[filters]=\"_filters\"\n\t[orderBy]=\"_orderBy\"\n\t[sort]=\"_sort\"\n\t[standard]=\"_standard\"\n/>\n<span [attr.for]=\"id\" class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-checkbox',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './checkbox.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule],\n})\nexport class LuFormlyFieldCheckbox extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<label class=\"checkbox\" [class]=\"props['mod']\">\n\t<input\n\t\tclass=\"checkbox-input\"\n\t\ttype=\"checkbox\"\n\t\t[name]=\"props['name']\"\n\t\t[id]=\"id\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t/>\n\t<span class=\"checkbox-label\">{{ props.label }}</span>\n</label>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuDateSelectInputComponent } from '@lucca-front/ng/date';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-date',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './date.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuDateSelectInputComponent],\n})\nexport class LuFormlyFieldDate extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-date-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[min]=\"props.min\"\n\t[max]=\"props.max\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuDepartmentSelectInputComponent } from '@lucca-front/ng/department';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-department',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './department.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuDepartmentSelectInputComponent],\n})\nexport class LuFormlyFieldDepartment extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-department-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuEstablishmentSelectInputComponent } from '@lucca-front/ng/establishment';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-establishment',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './establishment.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuEstablishmentSelectInputComponent],\n})\nexport class LuFormlyFieldEstablishment extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-establishment-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuInputDirective } from '@lucca-front/ng/input';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-input',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './input.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuInputDirective],\n})\nexport class LuFormlyFieldInput extends FieldType<FieldTypeConfig> {\n\tget type() {\n\t\treturn this.props.type || 'text';\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","@if (type === \"number\") {\n\t<!-- type=\"number\" has to be static in order to have NumberValueAccessor instead of DefaultValueAccessor -->\n\t<input\n\t\ttype=\"number\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n} @else {\n\t<input\n\t\t[type]=\"type\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n}\n\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-radios',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './radios.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule],\n})\nexport class LuFormlyFieldRadios extends FieldType<FieldTypeConfig> {\n\tget _options() {\n\t\treturn (this.props.options || []) as { value: unknown; label: unknown }[];\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<legend class=\"radiosfield-label\">{{ props.label }}</legend>\n<div class=\"radiosfield-input\">\n\t@for (option of _options; track $index) {\n\t\t<label class=\"radio\">\n\t\t\t<input\n\t\t\t\tclass=\"radio-input\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[name]=\"props['name']\"\n\t\t\t\t[value]=\"option.value\"\n\t\t\t\t[id]=\"id + '_' + $index\"\n\t\t\t\t[formControl]=\"formControl\"\n\t\t\t\t[formlyAttributes]=\"field\"\n\t\t\t/>\n\t\t\t<span class=\"radio-label\">{{ option.label }}</span>\n\t\t</label>\n\t}\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { LuInputDisplayerDirective } from '@lucca-front/ng/input';\nimport { LuOptionPickerModule } from '@lucca-front/ng/option';\nimport { LuSelectInputComponent } from '@lucca-front/ng/select';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-select',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './select.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormlyModule, LuSelectInputComponent, LuOptionPickerModule, LuInputDisplayerDirective, ClearComponent],\n})\nexport class LuFormlyFieldSelect extends FieldType<FieldTypeConfig> {\n\tget _options() {\n\t\treturn (this.props.options || []) as { value: unknown; label: unknown; name: string }[];\n\t}\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[multiple]=\"props['multiple']\"\n\t[placeholder]=\"props.placeholder\"\n>\n\t<ng-container *luDisplayer=\"let option\">\n\t\t<span [class.chip]=\"props['multiple']\" [class.mod-unkillable]=\"props['multiple']\"\n\t\t\t><span class=\"pr-u-ellipsis\">{{ option.name }}</span></span\n\t\t>\n\t</ng-container>\n\t<lu-option-picker>\n\t\t@for (option of _options; track $index) {\n\t\t\t<lu-option [value]=\"option\"> {{ option.name }} </lu-option>\n\t\t}\n\t</lu-option-picker>\n\t@if (!props.required && !props[\"multiple\"]) {\n\t\t<lu-clear />\n\t}\n</lu-select>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuInputDirective } from '@lucca-front/ng/input';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-input',\n\tstyleUrl: 'formly-field.common.scss',\n\ttemplateUrl: './textarea.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuInputDirective],\n})\nexport class LuFormlyFieldTextarea extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<textarea\n\tclass=\"textfield-input\"\n\t[name]=\"props['name']\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\tluInput\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n></textarea>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuUserSelectInputComponent } from '@lucca-front/ng/user';\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\n\n@Component({\n\tselector: 'lu-formly-field-user',\n\tstyleUrls: ['formly-field.common.scss', 'select.scss'],\n\ttemplateUrl: './user.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, FormlyModule, LuUserSelectInputComponent],\n})\nexport class LuFormlyFieldUser extends FieldType<FieldTypeConfig> {\n\tfocus() {\n\t\tthis.props['_isFocused'] = true;\n\t}\n\tblur() {\n\t\tthis.props['_isFocused'] = false;\n\t}\n}\n","<lu-user-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n","import { FormlyExtension, FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function buildAddWrapperExtension(wrapperName: string, predicate: (f: FormlyFieldConfig | undefined) => boolean): FormlyExtension {\n\treturn {\n\t\tpostPopulate(field: FormlyFieldConfig) {\n\t\t\tif (predicate(field)) {\n\t\t\t\tfield.wrappers = [...(field.wrappers || []), wrapperName];\n\t\t\t}\n\t\t},\n\t};\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldTypeConfig, FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// component that display the right error message\n@Component({\n\tselector: 'lu-formly-error-message',\n\ttemplate: `\n\t\t@for (message of errorMessages; track $index) {\n\t\t\t<div class=\"textfield-messages-error\">\n\t\t\t\t{{ message }}\n\t\t\t</div>\n\t\t}\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyErrorMessage {\n\t@Input() formControl?: FormControl;\n\t@Input() field: FormlyFieldConfig;\n\n\tget errorMessages(): string[] {\n\t\tconst messages: string[] = [];\n\t\tif (this.formControl?.errors) {\n\t\t\tObject.keys(this.formControl.errors).forEach((key) => {\n\t\t\t\tif (this.field.validation?.messages?.[key]) {\n\t\t\t\t\tmessages.push(this.field.validation.messages[key] as string);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn messages;\n\t}\n}\n\n// wrapper\n@Component({\n\tselector: 'lu-formly-wrapper-error',\n\tstyleUrls: ['flex-layout.scss'],\n\ttemplateUrl: './error.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [ReactiveFormsModule, LuFormlyErrorMessage],\n})\nexport class LuFormlyWrapperError extends FieldWrapper<FieldTypeConfig> {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget validationId() {\n\t\treturn this.field.id + '-message';\n\t}\n}\n\nexport const templateErrorExtension = buildAddWrapperExtension('error', (field) => !!field.validation);\n","<ng-container #fieldComponent />\n@if (formControl.touched && formControl.invalid) {\n\t<div class=\"textfield-messages\" [id]=\"validationId\">\n\t\t<lu-formly-error-message [formControl]=\"formControl\" [field]=\"field\" />\n\t</div>\n}\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-helper',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './helper.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyWrapperHelper extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n}\n\nexport const templateHelperExtension = buildAddWrapperExtension('helper', (field) => !!field?.props?.['helper']);\n","<ng-container #fieldComponent />\n<div class=\"textfield-messages mod-helper\">\n\t<div class=\"textfield-messages-helper\">{{ props[\"helper\"] }}</div>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-suffix',\n\tstyleUrls: ['flex-layout.scss', 'suffixes.common.scss'],\n\ttemplateUrl: './icon.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyWrapperIcon extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n}\n\nexport const templateIconExtension = buildAddWrapperExtension('icon', (field) => !!field?.props?.['icon']);\n","<ng-container #fieldComponent /><span aria-hidden=\"true\" class=\"textfield-suffix mod-icon lucca-icon\">{{ props[\"icon\"] }}</span>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-radiosfield-layout',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './radiosfield-layout.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyWrapperRadiosfieldLayout extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget mod() {\n\t\treturn (this.props['mod'] || '') as string;\n\t}\n\n\tget isRequired() {\n\t\treturn !!this.props && !!this.props.required ? 'is-required' : '';\n\t}\n\n\tget isFocused() {\n\t\treturn !!this.props && this.props['_isFocused'] ? 'is-focused' : '';\n\t}\n\n\tget isError() {\n\t\treturn this.formControl.invalid && this.formControl.touched ? 'is-error' : '';\n\t}\n}\n","<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"radiosfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { buildAddWrapperExtension } from '../formly.utils';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-suffix',\n\tstyleUrls: ['flex-layout.scss', 'suffixes.common.scss'],\n\ttemplateUrl: './suffix.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyWrapperSuffix extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n}\n\nexport const templateSuffixExtension = buildAddWrapperExtension('suffix', (field) => !!field?.props?.['suffix'] && !field?.props?.['icon']);\n","<ng-container #fieldComponent /><span class=\"textfield-suffix\">{{ props[\"suffix\"] }}</span>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-layout',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './textfield-layout.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyWrapperTextfieldLayout extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget mod() {\n\t\treturn (this.props['mod'] || '') as string;\n\t}\n\n\tget modMultiline() {\n\t\treturn !!this.field && this.field.type === 'textarea' ? 'mod-multiline' : '';\n\t}\n\n\tget modWithSuffix() {\n\t\treturn !!this.props && !!this.props['suffix'] ? 'mod-withSuffix' : '';\n\t}\n\n\tget isRequired() {\n\t\treturn !!this.props && !!this.props.required ? 'is-required' : '';\n\t}\n\n\tget isDisabled() {\n\t\treturn !!this.props && !!this.props.disabled ? 'is-disabled' : '';\n\t}\n\n\tget isFocused() {\n\t\treturn !!this.props && this.props['_isFocused'] ? 'is-focused' : '';\n\t}\n\n\tget isError() {\n\t\treturn this.formControl.invalid && this.formControl.touched ? 'is-error' : '';\n\t}\n}\n","<label class=\"textfield\" [class]=\"[mod, modWithSuffix, modMultiline, isRequired, isFocused, isError, isDisabled]\">\n\t<ng-container #fieldComponent />\n</label>\n","import { ChangeDetectionStrategy, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FieldWrapper } from '@ngx-formly/core';\n\n// wrapper component\n@Component({\n\tselector: 'lu-formly-wrapper-checkbox-layout',\n\tstyleUrl: 'flex-layout.scss',\n\ttemplateUrl: './checkbox-layout.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuFormlyWrapperCheckboxLayout extends FieldWrapper {\n\t@ViewChild('fieldComponent', { read: ViewContainerRef, static: true })\n\toverride fieldComponent: ViewContainerRef;\n\n\tget mod() {\n\t\treturn (this.props['mod'] || '') as string;\n\t}\n\n\tget isRequired() {\n\t\treturn !!this.props && !!this.props.required ? 'is-required' : '';\n\t}\n\n\tget isFocused() {\n\t\treturn !!this.props && this.props['_isFocused'] ? 'is-focused' : '';\n\t}\n\n\tget isError() {\n\t\treturn this.formControl.invalid && this.formControl.touched ? 'is-error' : '';\n\t}\n}\n","<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"checkboxesfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n","import { ConfigOption } from '@ngx-formly/core';\n// inputs\nimport {\n\tLuFormlyFieldApi,\n\tLuFormlyFieldCheckbox,\n\tLuFormlyFieldDate,\n\tLuFormlyFieldDepartment,\n\tLuFormlyFieldEstablishment,\n\tLuFormlyFieldInput,\n\tLuFormlyFieldRadios,\n\tLuFormlyFieldSelect,\n\tLuFormlyFieldTextarea,\n\tLuFormlyFieldUser,\n} from './types/index';\n// wrappers\nimport {\n\tLuFormlyWrapperCheckboxLayout,\n\tLuFormlyWrapperError,\n\tLuFormlyWrapperHelper,\n\tLuFormlyWrapperIcon,\n\tLuFormlyWrapperRadiosfieldLayout,\n\tLuFormlyWrapperSuffix,\n\tLuFormlyWrapperTextfieldLayout,\n\ttemplateErrorExtension,\n\ttemplateHelperExtension,\n\ttemplateIconExtension,\n\ttemplateSuffixExtension,\n} from './wrappers/index';\n\nexport const LU_FORMLY_CONFIG: ConfigOption = {\n\ttypes: [\n\t\t{\n\t\t\tname: 'input',\n\t\t\tcomponent: LuFormlyFieldInput,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'radio',\n\t\t\tcomponent: LuFormlyFieldRadios,\n\t\t\twrappers: ['radiosfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'checkbox',\n\t\t\tcomponent: LuFormlyFieldCheckbox,\n\t\t\twrappers: ['checkbox-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'date',\n\t\t\tcomponent: LuFormlyFieldDate,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'textarea',\n\t\t\tcomponent: LuFormlyFieldTextarea,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'select',\n\t\t\tcomponent: LuFormlyFieldSelect,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'user',\n\t\t\tcomponent: LuFormlyFieldUser,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'api',\n\t\t\tcomponent: LuFormlyFieldApi,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'department',\n\t\t\tcomponent: LuFormlyFieldDepartment,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t\t{\n\t\t\tname: 'establishment',\n\t\t\tcomponent: LuFormlyFieldEstablishment,\n\t\t\twrappers: ['textfield-layout'],\n\t\t},\n\t],\n\twrappers: [\n\t\t{ name: 'helper', component: LuFormlyWrapperHelper },\n\t\t{ name: 'checkbox-layout', component: LuFormlyWrapperCheckboxLayout },\n\t\t{ name: 'radiosfield-layout', component: LuFormlyWrapperRadiosfieldLayout },\n\t\t{ name: 'textfield-layout', component: LuFormlyWrapperTextfieldLayout },\n\t\t{ name: 'suffix', component: LuFormlyWrapperSuffix },\n\t\t{ name: 'icon', component: LuFormlyWrapperIcon },\n\t\t{ name: 'error', component: LuFormlyWrapperError },\n\t],\n\textensions: [\n\t\t{ name: 'helper', extension: templateHelperExtension }, // fifth\n\t\t{ name: 'error', extension: templateErrorExtension }, // fourth\n\t\t{ name: 'suffix', extension: templateSuffixExtension }, // third\n\t\t{ name: 'icon', extension: templateIconExtension }, // second\n\t],\n};\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { LU_FORMLY_CONFIG } from './formly.config';\n\nexport function provideLuFormly(): EnvironmentProviders {\n\treturn importProvidersFrom(FormlyModule.forChild(LU_FORMLY_CONFIG));\n}\n","import { NgModule } from '@angular/core';\nimport { provideLuFormly } from './formly.providers';\n\n/**\n * @deprecated use provideLuFormly() in a lazy loaded route (and stop using formly please)\n * */\n@NgModule({\n\tproviders: [provideLuFormly()],\n})\nexport class LuFormlyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ function tryParsePhoneNumber(phoneNumber, countryCode) {
46
46
  class PhoneNumberInputComponent {
47
47
  constructor() {
48
48
  this.#locale = inject(LOCALE_ID);
49
- this.noAutoPlaceholder = input(false, ...(ngDevMode ? [{ debugName: "noAutoPlaceholder" }] : []));
49
+ this.noAutoPlaceholder = input(false);
50
50
  this.disabled = false;
51
51
  this.#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });
52
52
  this.prefixEntries = getCountries()
@@ -61,15 +61,15 @@ class PhoneNumberInputComponent {
61
61
  *
62
62
  * You can use CountryCode to make sure it's properly typed on your end, string is also accepted
63
63
  */
64
- this.allowedCountries = input([], ...(ngDevMode ? [{ debugName: "allowedCountries" }] : []));
64
+ this.allowedCountries = input([]);
65
65
  this.#prefixEntries = computed(() => {
66
66
  const whitelist = this.allowedCountries();
67
67
  if (whitelist.length === 0) {
68
68
  return this.prefixEntries;
69
69
  }
70
70
  return this.prefixEntries.filter((e) => whitelist.includes(e.country));
71
- }, ...(ngDevMode ? [{ debugName: "#prefixEntries" }] : []));
72
- this.query = signal('', ...(ngDevMode ? [{ debugName: "query" }] : []));
71
+ });
72
+ this.query = signal('');
73
73
  this.prefixesDisplay = computed(() => {
74
74
  const query = this.query();
75
75
  if (query === '') {
@@ -78,17 +78,17 @@ class PhoneNumberInputComponent {
78
78
  return this.#prefixEntries().filter((entry) => {
79
79
  return entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name.toLowerCase().includes(query.toLowerCase());
80
80
  });
81
- }, ...(ngDevMode ? [{ debugName: "prefixesDisplay" }] : []));
82
- this.defaultCountryCode = input(undefined, ...(ngDevMode ? [{ debugName: "defaultCountryCode", alias: 'country' }] : [{ alias: 'country' }]));
81
+ });
82
+ this.defaultCountryCode = input(undefined, { alias: 'country' });
83
83
  this.countryChange = output();
84
- this.countryCodeSelected = signal(undefined, ...(ngDevMode ? [{ debugName: "countryCodeSelected" }] : []));
85
- this.countryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode(), ...(ngDevMode ? [{ debugName: "countryCode" }] : []));
84
+ this.countryCodeSelected = signal(undefined);
85
+ this.countryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());
86
86
  this.placeholder = computed(() => {
87
87
  const exampleNumber = this.noAutoPlaceholder() === false ? getExampleNumber(this.countryCode(), examples) : undefined;
88
88
  return exampleNumber?.formatNational() ?? '';
89
- }, ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
90
- this.displayedNumber = signal(undefined, ...(ngDevMode ? [{ debugName: "displayedNumber" }] : []));
91
- this.prefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()), ...(ngDevMode ? [{ debugName: "prefixEntry" }] : []));
89
+ });
90
+ this.displayedNumber = signal(undefined);
91
+ this.prefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));
92
92
  this.getPrefixKey = (prefix) => prefix?.country;
93
93
  this.prefixComparator = (a, b) => this.getPrefixKey(a) === this.getPrefixKey(b);
94
94
  }
@@ -174,8 +174,8 @@ class PhoneNumberInputComponent {
174
174
  validate(control) {
175
175
  return PhoneNumberValidators.validPhoneNumber(control, this.countryCode());
176
176
  }
177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PhoneNumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.12", type: PhoneNumberInputComponent, isStandalone: true, selector: "lu-phone-number-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: false, isRequired: false, transformFunction: null }, noAutoPlaceholder: { classPropertyName: "noAutoPlaceholder", publicName: "noAutoPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, allowedCountries: { classPropertyName: "allowedCountries", publicName: "allowedCountries", isSignal: true, isRequired: false, transformFunction: null }, defaultCountryCode: { classPropertyName: "defaultCountryCode", publicName: "country", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { countryChange: "countryChange" }, providers: [
177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: PhoneNumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: PhoneNumberInputComponent, isStandalone: true, selector: "lu-phone-number-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: false, isRequired: false, transformFunction: null }, noAutoPlaceholder: { classPropertyName: "noAutoPlaceholder", publicName: "noAutoPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, allowedCountries: { classPropertyName: "allowedCountries", publicName: "allowedCountries", isSignal: true, isRequired: false, transformFunction: null }, defaultCountryCode: { classPropertyName: "defaultCountryCode", publicName: "country", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { countryChange: "countryChange" }, providers: [
179
179
  {
180
180
  provide: NG_VALUE_ACCESSOR,
181
181
  useExisting: forwardRef(() => PhoneNumberInputComponent),
@@ -188,9 +188,9 @@ class PhoneNumberInputComponent {
188
188
  },
189
189
  ], ngImport: i0, template: "<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete ? (autocomplete === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete ? (autocomplete === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n", styles: ["@layer components{.phoneNumber-fieldset{border:0;padding:0;gap:var(--pr-t-spacings-100);inline-size:17.5rem;display:flex}.phoneNumber-fieldset-select .simpleSelect-field-input{inline-size:21px}.phoneNumber-fieldset-textfield{flex-grow:1}.phoneNumber-option-flag{vertical-align:top;margin-block-start:var(--pr-t-spacings-50);margin-inline-end:var(--pr-t-spacings-100)}.phoneNumber-countryCode-flag{display:block}}\n"], dependencies: [{ kind: "component", type: LuSimpleSelectInputComponent, selector: "lu-simple-select", inputs: ["autocomplete"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: LuDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerSelect"] }, { kind: "directive", type: LuOptionDirective, selector: "[luOption]", inputs: ["luOptionSelect"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
190
190
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PhoneNumberInputComponent, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: PhoneNumberInputComponent, decorators: [{
192
192
  type: Component,
193
- args: [{ selector: 'lu-phone-number-input', standalone: true, imports: [LuSimpleSelectInputComponent, TextInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, FormFieldComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
193
+ args: [{ selector: 'lu-phone-number-input', imports: [LuSimpleSelectInputComponent, TextInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, FormFieldComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
194
194
  {
195
195
  provide: NG_VALUE_ACCESSOR,
196
196
  useExisting: forwardRef(() => PhoneNumberInputComponent),
@@ -206,7 +206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
206
206
  type: Input
207
207
  }], autocomplete: [{
208
208
  type: Input
209
- }], noAutoPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "noAutoPlaceholder", required: false }] }], allowedCountries: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowedCountries", required: false }] }], defaultCountryCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "country", required: false }] }], countryChange: [{ type: i0.Output, args: ["countryChange"] }] } });
209
+ }] } });
210
210
 
211
211
  class PhoneNumberFormatter {
212
212
  static format(phoneNumber, format = 'NATIONAL') {
@@ -218,14 +218,13 @@ class PhoneNumberFormatPipe {
218
218
  transform(value, format = 'NATIONAL') {
219
219
  return PhoneNumberFormatter.format(value, format);
220
220
  }
221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PhoneNumberFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
222
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.12", ngImport: i0, type: PhoneNumberFormatPipe, isStandalone: true, name: "luPhoneNumberFormat" }); }
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: PhoneNumberFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
222
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: PhoneNumberFormatPipe, isStandalone: true, name: "luPhoneNumberFormat" }); }
223
223
  }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PhoneNumberFormatPipe, decorators: [{
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: PhoneNumberFormatPipe, decorators: [{
225
225
  type: Pipe,
226
226
  args: [{
227
227
  name: 'luPhoneNumberFormat',
228
- standalone: true,
229
228
  }]
230
229
  }] });
231
230
 
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms-phone-number-input.mjs","sources":["../../../packages/ng/forms/phone-number-input/validators.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.html","../../../packages/ng/forms/phone-number-input/formatter.ts","../../../packages/ng/forms/phone-number-input/phone-number-format.pipe.ts","../../../packages/ng/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.ts"],"sourcesContent":["import { AbstractControl } from '@angular/forms';\nimport { validatePhoneNumberLength, isValidPhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport class PhoneNumberValidators {\n\tstatic validPhoneNumber(control: AbstractControl<string>, countryCode?: CountryCode) {\n\t\tif (control.value) {\n\t\t\tconst reason = validatePhoneNumberLength(control.value, countryCode);\n\t\t\tif (reason) {\n\t\t\t\treturn { validPhoneNumber: reason };\n\t\t\t}\n\t\t\tif (!isValidPhoneNumber(control.value, countryCode)) {\n\t\t\t\treturn { validPhoneNumber: 'INVALID' };\n\t\t\t}\n\t\t}\n\t\t// Else, everything is fine !\n\t\treturn null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, Input, input, LOCALE_ID, output, signal, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { LuDisplayerDirective, LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { TextInputComponent } from '@lucca-front/ng/forms';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { type CountryCallingCode, formatIncompletePhoneNumber, getCountries, getCountryCallingCode, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\nimport { CountryCode, E164Number } from './types';\nimport { PhoneNumberValidators } from './validators';\n\ninterface PrefixEntry {\n\tcountry: CountryCode;\n\tprefix: CountryCallingCode;\n\tname: string;\n}\n\ntype ParsePhoneNumberResult = {\n\tnumber: E164Number;\n\tcountry?: CountryCode;\n\tnationalNumber?: string;\n\tisValid: boolean;\n};\n\nfunction tryParsePhoneNumber(phoneNumber: string, countryCode?: CountryCode): ParsePhoneNumberResult {\n\ttry {\n\t\tconst parsedNumber = parsePhoneNumber(phoneNumber, countryCode);\n\t\treturn {\n\t\t\tcountry: parsedNumber.country,\n\t\t\tnumber: parsedNumber.number,\n\t\t\tnationalNumber: parsedNumber.formatNational(),\n\t\t\tisValid: parsedNumber.isValid(),\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tnumber: phoneNumber as E164Number,\n\t\t\tnationalNumber: phoneNumber,\n\t\t\tisValid: false,\n\t\t};\n\t}\n}\n\n@Component({\n\tselector: 'lu-phone-number-input',\n\tstandalone: true,\n\timports: [LuSimpleSelectInputComponent, TextInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, FormFieldComponent],\n\ttemplateUrl: './phone-number-input.component.html',\n\tstyleUrl: './phone-number-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator {\n\t#locale = inject(LOCALE_ID);\n\n\t@Input() label: string;\n\n\t@Input() autocomplete?: 'off' | 'tel';\n\n\tnoAutoPlaceholder = input<boolean>(false);\n\n\t#onChange?: (value: E164Number) => void;\n\n\t#onTouched?: () => void;\n\n\tdisabled = false;\n\n\t#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });\n\n\tprefixEntries = getCountries()\n\t\t.map((country) => ({\n\t\t\tcountry,\n\t\t\tprefix: getCountryCallingCode(country),\n\t\t\tname: this.#displayNames.of(country),\n\t\t}))\n\t\t.sort((a, b) => a.name.localeCompare(b.name));\n\n\t/**\n\t * Which countries should be shown? Defaults to empty array which means all of them.\n\t *\n\t * You can use CountryCode to make sure it's properly typed on your end, string is also accepted\n\t */\n\tallowedCountries = input<ReadonlyArray<CountryCode | string>>([]);\n\n\t#prefixEntries = computed(() => {\n\t\tconst whitelist = this.allowedCountries();\n\t\tif (whitelist.length === 0) {\n\t\t\treturn this.prefixEntries;\n\t\t}\n\t\treturn this.prefixEntries.filter((e) => whitelist.includes(e.country));\n\t});\n\n\tquery = signal('');\n\n\tprotected prefixesDisplay = computed(() => {\n\t\tconst query = this.query();\n\t\tif (query === '') {\n\t\t\treturn this.#prefixEntries();\n\t\t}\n\t\treturn this.#prefixEntries().filter((entry) => {\n\t\t\treturn entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name.toLowerCase().includes(query.toLowerCase());\n\t\t});\n\t});\n\n\tdefaultCountryCode = input<CountryCode>(undefined, { alias: 'country' });\n\n\tcountryChange = output<CountryCode>();\n\n\tcountryCodeSelected = signal<CountryCode | undefined>(undefined);\n\n\tcountryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());\n\n\tplaceholder = computed(() => {\n\t\tconst exampleNumber = this.noAutoPlaceholder() === false ? getExampleNumber(this.countryCode(), examples) : undefined;\n\t\treturn exampleNumber?.formatNational() ?? '';\n\t});\n\n\tdisplayedNumber = signal<string | undefined>(undefined);\n\n\tprefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));\n\n\tprotected getPrefixKey = (prefix: PrefixEntry) => prefix?.country;\n\n\tprotected prefixComparator = (a: PrefixEntry, b: PrefixEntry) => this.getPrefixKey(a) === this.getPrefixKey(b);\n\n\twriteValue(value: string): void {\n\t\ttry {\n\t\t\tif (value) {\n\t\t\t\tconst { country, number, nationalNumber } = tryParsePhoneNumber(value, this.countryCode());\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tif (value !== number) {\n\t\t\t\t\tthis.#onChange?.(number);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.displayedNumber.set(undefined);\n\t\t\t}\n\t\t} catch {\n\t\t\tthis.displayedNumber.set(value);\n\t\t}\n\t\tthis.formatNationalNumber();\n\t}\n\n\tregisterOnChange(fn: (value: E164Number) => void): void {\n\t\tthis.#onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.#onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tupdatePrefix(prefixEntry: PrefixEntry) {\n\t\tthis.countryCodeSelected.set(prefixEntry.country);\n\t\tthis.countryChange.emit(prefixEntry.country);\n\t\tthis.touched();\n\t\tthis.updateModel();\n\t\tthis.formatNationalNumber();\n\t}\n\n\tupdateNumber(number: string) {\n\t\tthis.displayedNumber.set(number);\n\t\tthis.updateModel();\n\t}\n\n\tupdateModel(): void {\n\t\tconst displayedNumber = this.displayedNumber();\n\t\tconst countryCode = this.countryCode();\n\n\t\ttry {\n\t\t\tconst { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (country && country !== countryCode) {\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tthis.countryChange.emit(country);\n\t\t\t}\n\t\t\tthis.#onChange?.(number);\n\t\t\treturn;\n\t\t} catch {\n\t\t\tthis.#onChange?.(displayedNumber as E164Number);\n\t\t}\n\t}\n\n\ttouched(): void {\n\t\tthis.#onTouched?.();\n\t}\n\n\tformatNationalNumber(): void {\n\t\tconst countryCode = this.countryCode();\n\t\tconst displayedNumber = this.displayedNumber();\n\t\ttry {\n\t\t\tconst { isValid, nationalNumber } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (isValid) {\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t} else if (countryCode) {\n\t\t\t\tthis.displayedNumber.set(formatIncompletePhoneNumber(displayedNumber, countryCode));\n\t\t\t}\n\t\t} catch {\n\t\t\t// do nothing\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl<string, string>): ValidationErrors {\n\t\treturn PhoneNumberValidators.validPhoneNumber(control, this.countryCode());\n\t}\n}\n","<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete ? (autocomplete === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete ? (autocomplete === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n","import { E164Number, NumberFormat } from './types';\nimport { parsePhoneNumber } from 'libphonenumber-js';\n\nexport class PhoneNumberFormatter {\n\tstatic format(phoneNumber: E164Number, format: NumberFormat = 'NATIONAL'): string {\n\t\treturn parsePhoneNumber(phoneNumber).format(format);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { E164Number, NumberFormat } from './types';\nimport { PhoneNumberFormatter } from './formatter';\n\n@Pipe({\n\tname: 'luPhoneNumberFormat',\n\tstandalone: true,\n})\nexport class PhoneNumberFormatPipe implements PipeTransform {\n\ttransform(value: E164Number, format: NumberFormat = 'NATIONAL'): unknown {\n\t\treturn PhoneNumberFormatter.format(value, format);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-forms-phone-number-input.mjs","sources":["../../../packages/ng/forms/phone-number-input/validators.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.html","../../../packages/ng/forms/phone-number-input/formatter.ts","../../../packages/ng/forms/phone-number-input/phone-number-format.pipe.ts","../../../packages/ng/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.ts"],"sourcesContent":["import { AbstractControl } from '@angular/forms';\nimport { validatePhoneNumberLength, isValidPhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport class PhoneNumberValidators {\n\tstatic validPhoneNumber(control: AbstractControl<string>, countryCode?: CountryCode) {\n\t\tif (control.value) {\n\t\t\tconst reason = validatePhoneNumberLength(control.value, countryCode);\n\t\t\tif (reason) {\n\t\t\t\treturn { validPhoneNumber: reason };\n\t\t\t}\n\t\t\tif (!isValidPhoneNumber(control.value, countryCode)) {\n\t\t\t\treturn { validPhoneNumber: 'INVALID' };\n\t\t\t}\n\t\t}\n\t\t// Else, everything is fine !\n\t\treturn null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, Input, input, LOCALE_ID, output, signal, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { LuDisplayerDirective, LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { TextInputComponent } from '@lucca-front/ng/forms';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { type CountryCallingCode, formatIncompletePhoneNumber, getCountries, getCountryCallingCode, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\nimport { CountryCode, E164Number } from './types';\nimport { PhoneNumberValidators } from './validators';\n\ninterface PrefixEntry {\n\tcountry: CountryCode;\n\tprefix: CountryCallingCode;\n\tname: string;\n}\n\ntype ParsePhoneNumberResult = {\n\tnumber: E164Number;\n\tcountry?: CountryCode;\n\tnationalNumber?: string;\n\tisValid: boolean;\n};\n\nfunction tryParsePhoneNumber(phoneNumber: string, countryCode?: CountryCode): ParsePhoneNumberResult {\n\ttry {\n\t\tconst parsedNumber = parsePhoneNumber(phoneNumber, countryCode);\n\t\treturn {\n\t\t\tcountry: parsedNumber.country,\n\t\t\tnumber: parsedNumber.number,\n\t\t\tnationalNumber: parsedNumber.formatNational(),\n\t\t\tisValid: parsedNumber.isValid(),\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tnumber: phoneNumber as E164Number,\n\t\t\tnationalNumber: phoneNumber,\n\t\t\tisValid: false,\n\t\t};\n\t}\n}\n\n@Component({\n\tselector: 'lu-phone-number-input',\n\timports: [LuSimpleSelectInputComponent, TextInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, FormFieldComponent],\n\ttemplateUrl: './phone-number-input.component.html',\n\tstyleUrl: './phone-number-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator {\n\t#locale = inject(LOCALE_ID);\n\n\t@Input() label: string;\n\n\t@Input() autocomplete?: 'off' | 'tel';\n\n\tnoAutoPlaceholder = input<boolean>(false);\n\n\t#onChange?: (value: E164Number) => void;\n\n\t#onTouched?: () => void;\n\n\tdisabled = false;\n\n\t#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });\n\n\tprefixEntries = getCountries()\n\t\t.map((country) => ({\n\t\t\tcountry,\n\t\t\tprefix: getCountryCallingCode(country),\n\t\t\tname: this.#displayNames.of(country),\n\t\t}))\n\t\t.sort((a, b) => a.name.localeCompare(b.name));\n\n\t/**\n\t * Which countries should be shown? Defaults to empty array which means all of them.\n\t *\n\t * You can use CountryCode to make sure it's properly typed on your end, string is also accepted\n\t */\n\tallowedCountries = input<ReadonlyArray<CountryCode | string>>([]);\n\n\t#prefixEntries = computed(() => {\n\t\tconst whitelist = this.allowedCountries();\n\t\tif (whitelist.length === 0) {\n\t\t\treturn this.prefixEntries;\n\t\t}\n\t\treturn this.prefixEntries.filter((e) => whitelist.includes(e.country));\n\t});\n\n\tquery = signal('');\n\n\tprotected prefixesDisplay = computed(() => {\n\t\tconst query = this.query();\n\t\tif (query === '') {\n\t\t\treturn this.#prefixEntries();\n\t\t}\n\t\treturn this.#prefixEntries().filter((entry) => {\n\t\t\treturn entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name.toLowerCase().includes(query.toLowerCase());\n\t\t});\n\t});\n\n\tdefaultCountryCode = input<CountryCode>(undefined, { alias: 'country' });\n\n\tcountryChange = output<CountryCode>();\n\n\tcountryCodeSelected = signal<CountryCode | undefined>(undefined);\n\n\tcountryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());\n\n\tplaceholder = computed(() => {\n\t\tconst exampleNumber = this.noAutoPlaceholder() === false ? getExampleNumber(this.countryCode(), examples) : undefined;\n\t\treturn exampleNumber?.formatNational() ?? '';\n\t});\n\n\tdisplayedNumber = signal<string | undefined>(undefined);\n\n\tprefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));\n\n\tprotected getPrefixKey = (prefix: PrefixEntry) => prefix?.country;\n\n\tprotected prefixComparator = (a: PrefixEntry, b: PrefixEntry) => this.getPrefixKey(a) === this.getPrefixKey(b);\n\n\twriteValue(value: string): void {\n\t\ttry {\n\t\t\tif (value) {\n\t\t\t\tconst { country, number, nationalNumber } = tryParsePhoneNumber(value, this.countryCode());\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tif (value !== number) {\n\t\t\t\t\tthis.#onChange?.(number);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.displayedNumber.set(undefined);\n\t\t\t}\n\t\t} catch {\n\t\t\tthis.displayedNumber.set(value);\n\t\t}\n\t\tthis.formatNationalNumber();\n\t}\n\n\tregisterOnChange(fn: (value: E164Number) => void): void {\n\t\tthis.#onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.#onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tupdatePrefix(prefixEntry: PrefixEntry) {\n\t\tthis.countryCodeSelected.set(prefixEntry.country);\n\t\tthis.countryChange.emit(prefixEntry.country);\n\t\tthis.touched();\n\t\tthis.updateModel();\n\t\tthis.formatNationalNumber();\n\t}\n\n\tupdateNumber(number: string) {\n\t\tthis.displayedNumber.set(number);\n\t\tthis.updateModel();\n\t}\n\n\tupdateModel(): void {\n\t\tconst displayedNumber = this.displayedNumber();\n\t\tconst countryCode = this.countryCode();\n\n\t\ttry {\n\t\t\tconst { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (country && country !== countryCode) {\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tthis.countryChange.emit(country);\n\t\t\t}\n\t\t\tthis.#onChange?.(number);\n\t\t\treturn;\n\t\t} catch {\n\t\t\tthis.#onChange?.(displayedNumber as E164Number);\n\t\t}\n\t}\n\n\ttouched(): void {\n\t\tthis.#onTouched?.();\n\t}\n\n\tformatNationalNumber(): void {\n\t\tconst countryCode = this.countryCode();\n\t\tconst displayedNumber = this.displayedNumber();\n\t\ttry {\n\t\t\tconst { isValid, nationalNumber } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (isValid) {\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t} else if (countryCode) {\n\t\t\t\tthis.displayedNumber.set(formatIncompletePhoneNumber(displayedNumber, countryCode));\n\t\t\t}\n\t\t} catch {\n\t\t\t// do nothing\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl<string, string>): ValidationErrors {\n\t\treturn PhoneNumberValidators.validPhoneNumber(control, this.countryCode());\n\t}\n}\n","<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete ? (autocomplete === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete ? (autocomplete === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n","import { E164Number, NumberFormat } from './types';\nimport { parsePhoneNumber } from 'libphonenumber-js';\n\nexport class PhoneNumberFormatter {\n\tstatic format(phoneNumber: E164Number, format: NumberFormat = 'NATIONAL'): string {\n\t\treturn parsePhoneNumber(phoneNumber).format(format);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PhoneNumberFormatter } from './formatter';\nimport { E164Number, NumberFormat } from './types';\n\n@Pipe({\n\tname: 'luPhoneNumberFormat',\n})\nexport class PhoneNumberFormatPipe implements PipeTransform {\n\ttransform(value: E164Number, format: NumberFormat = 'NATIONAL'): unknown {\n\t\treturn PhoneNumberFormatter.format(value, format);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms-rich-text-input-formatters-html.mjs","sources":["../../../packages/ng/forms/rich-text-input/formatters/html/html-formatter.ts","../../../packages/ng/forms/rich-text-input/formatters/html/lucca-front-ng-forms-rich-text-input-formatters-html.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html';\nimport { registerRichText } from '@lexical/rich-text';\nimport { RICH_TEXT_FORMATTER, RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';\nimport { sanitize } from 'isomorphic-dompurify';\nimport { $getRoot, $insertNodes, LexicalEditor } from 'lexical';\n\nexport class HtmlFormatter extends RichTextFormatter {\n\toverride registerTextPlugin(editor: LexicalEditor) {\n\t\treturn registerRichText(editor);\n\t}\n\n\toverride parse(editor: LexicalEditor, htmlString?: string | null): void {\n\t\tconst parser = new DOMParser();\n\t\tconst dom = parser.parseFromString(\n\t\t\tsanitize(htmlString, {\n\t\t\t\tFORBID_ATTR: ['style', 'class'],\n\t\t\t}),\n\t\t\t'text/html',\n\t\t);\n\n\t\teditor.update(() => {\n\t\t\t// Once you have the DOM instance it's easy to generate LexicalNodes.\n\t\t\tconst nodes = $generateNodesFromDOM(editor, dom);\n\n\t\t\t// Select the root\n\t\t\t$getRoot().clear();\n\t\t\t$getRoot().select();\n\n\t\t\t// Insert them at a selection.\n\t\t\t$insertNodes(nodes);\n\t\t});\n\t}\n\n\toverride format(editor: LexicalEditor): string {\n\t\tlet result = '';\n\t\teditor.getEditorState().read(() => (result = $generateHtmlFromNodes(editor)));\n\t\treturn sanitize(result, {\n\t\t\tFORBID_ATTR: ['style', 'class'],\n\t\t});\n\t}\n}\n\nexport function provideLuRichTextHTMLFormatter(): Provider {\n\treturn {\n\t\tprovide: RICH_TEXT_FORMATTER,\n\t\tuseFactory: () => new HtmlFormatter(),\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAOM,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AAC1C,IAAA,kBAAkB,CAAC,MAAqB,EAAA;AAChD,QAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC;IAChC;IAES,KAAK,CAAC,MAAqB,EAAE,UAA0B,EAAA;AAC/D,QAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CACjC,QAAQ,CAAC,UAAU,EAAE;AACpB,YAAA,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SAC/B,CAAC,EACF,WAAW,CACX;AAED,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;;YAElB,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC;;AAGhD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE;AAClB,YAAA,QAAQ,EAAE,CAAC,MAAM,EAAE;;YAGnB,YAAY,CAAC,KAAK,CAAC;AACpB,QAAA,CAAC,CAAC;IACH;AAES,IAAA,MAAM,CAAC,MAAqB,EAAA;QACpC,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,OAAO,QAAQ,CAAC,MAAM,EAAE;AACvB,YAAA,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AAC/B,SAAA,CAAC;IACH;AACA;SAEe,8BAA8B,GAAA;IAC7C,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,UAAU,EAAE,MAAM,IAAI,aAAa,EAAE;KACrC;AACF;;AChDA;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-forms-rich-text-input-formatters-html.mjs","sources":["../../../packages/ng/forms/rich-text-input/formatters/html/html-formatter.ts","../../../packages/ng/forms/rich-text-input/formatters/html/lucca-front-ng-forms-rich-text-input-formatters-html.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html';\nimport { registerRichText } from '@lexical/rich-text';\nimport { RICH_TEXT_FORMATTER, RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';\nimport { sanitize } from 'isomorphic-dompurify';\nimport { $getRoot, $insertNodes, LexicalEditor } from 'lexical';\n\nexport class HtmlFormatter extends RichTextFormatter {\n\toverride registerTextPlugin(editor: LexicalEditor) {\n\t\treturn registerRichText(editor);\n\t}\n\n\toverride parse(editor: LexicalEditor, htmlString?: string | null): void {\n\t\tconst parser = new DOMParser();\n\t\tconst dom = parser.parseFromString(\n\t\t\tsanitize(htmlString, {\n\t\t\t\tFORBID_ATTR: ['style', 'class'],\n\t\t\t}),\n\t\t\t'text/html',\n\t\t);\n\n\t\teditor.update(() => {\n\t\t\t// Once you have the DOM instance it's easy to generate LexicalNodes.\n\t\t\tconst nodes = $generateNodesFromDOM(editor, dom);\n\n\t\t\t// Select the root\n\t\t\t$getRoot().clear();\n\t\t\t$getRoot().select();\n\n\t\t\t// Insert them at a selection.\n\t\t\t$insertNodes(nodes);\n\t\t});\n\t}\n\n\toverride format(editor: LexicalEditor): string {\n\t\tlet result = '';\n\t\teditor.getEditorState().read(() => (result = $generateHtmlFromNodes(editor)));\n\t\treturn sanitize(result, {\n\t\t\tFORBID_ATTR: ['style', 'class'],\n\t\t});\n\t}\n}\n\nexport function provideLuRichTextHTMLFormatter(): Provider {\n\treturn {\n\t\tprovide: RICH_TEXT_FORMATTER,\n\t\tuseFactory: () => new HtmlFormatter(),\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAOM,MAAO,aAAc,SAAQ,iBAAiB,CAAA;AAC1C,IAAA,kBAAkB,CAAC,MAAqB,EAAA;AAChD,QAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC;;IAGvB,KAAK,CAAC,MAAqB,EAAE,UAA0B,EAAA;AAC/D,QAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CACjC,QAAQ,CAAC,UAAU,EAAE;AACpB,YAAA,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SAC/B,CAAC,EACF,WAAW,CACX;AAED,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;;YAElB,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC;;AAGhD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE;AAClB,YAAA,QAAQ,EAAE,CAAC,MAAM,EAAE;;YAGnB,YAAY,CAAC,KAAK,CAAC;AACpB,SAAC,CAAC;;AAGM,IAAA,MAAM,CAAC,MAAqB,EAAA;QACpC,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,OAAO,QAAQ,CAAC,MAAM,EAAE;AACvB,YAAA,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AAC/B,SAAA,CAAC;;AAEH;SAEe,8BAA8B,GAAA;IAC7C,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,UAAU,EAAE,MAAM,IAAI,aAAa,EAAE;KACrC;AACF;;AChDA;;AAEG;;;;"}
@@ -1,5 +1,6 @@
1
- import { UNORDERED_LIST, HEADING, ORDERED_LIST, BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, INLINE_CODE, ITALIC_STAR, ITALIC_UNDERSCORE, STRIKETHROUGH, LINK, $convertFromMarkdownString, $convertToMarkdownString } from '@lexical/markdown';
1
+ import { UNORDERED_LIST, HEADING, ORDERED_LIST, BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, INLINE_CODE, ITALIC_STAR, ITALIC_UNDERSCORE, STRIKETHROUGH, LINK, registerMarkdownShortcuts, $convertFromMarkdownString, $convertToMarkdownString } from '@lexical/markdown';
2
2
  import { registerRichText } from '@lexical/rich-text';
3
+ import { mergeRegister } from '@lexical/utils';
3
4
  import { RichTextFormatter, RICH_TEXT_FORMATTER } from '@lucca-front/ng/forms/rich-text-input';
4
5
  import { sanitize } from 'isomorphic-dompurify';
5
6
 
@@ -26,7 +27,7 @@ class MarkdownFormatter extends RichTextFormatter {
26
27
  }
27
28
  }
28
29
  registerTextPlugin(editor) {
29
- return registerRichText(editor);
30
+ return mergeRegister(registerMarkdownShortcuts(editor, this.#transformers), registerRichText(editor));
30
31
  }
31
32
  parse(editor, markdown) {
32
33
  editor.update(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs","sources":["../../../packages/ng/forms/rich-text-input/formatters/markdown/markdown-formatter.ts","../../../packages/ng/forms/rich-text-input/formatters/markdown/lucca-front-ng-forms-rich-text-input-formatters-markdown.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport {\n\t$convertFromMarkdownString,\n\t$convertToMarkdownString,\n\tBOLD_ITALIC_STAR,\n\tBOLD_ITALIC_UNDERSCORE,\n\tBOLD_STAR,\n\tBOLD_UNDERSCORE,\n\tHEADING,\n\tINLINE_CODE,\n\tITALIC_STAR,\n\tITALIC_UNDERSCORE,\n\tLINK,\n\tORDERED_LIST,\n\tSTRIKETHROUGH,\n\tTransformer,\n\tUNORDERED_LIST,\n} from '@lexical/markdown';\nimport { registerRichText } from '@lexical/rich-text';\nimport { RICH_TEXT_FORMATTER, RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';\nimport { sanitize } from 'isomorphic-dompurify';\nimport { LexicalEditor } from 'lexical';\n\nexport const DEFAULT_MARKDOWN_TRANSFORMERS: Transformer[] = [\n\tUNORDERED_LIST,\n\tHEADING,\n\tORDERED_LIST,\n\tBOLD_ITALIC_STAR,\n\tBOLD_ITALIC_UNDERSCORE,\n\tBOLD_STAR,\n\tBOLD_UNDERSCORE,\n\tINLINE_CODE,\n\tITALIC_STAR,\n\tITALIC_UNDERSCORE,\n\tSTRIKETHROUGH,\n\tLINK,\n];\n\nexport class MarkdownFormatter extends RichTextFormatter {\n\t#transformers: Transformer[] = DEFAULT_MARKDOWN_TRANSFORMERS;\n\n\tconstructor(transformers?: Transformer[]) {\n\t\tsuper();\n\t\tif (transformers) {\n\t\t\tthis.#transformers = transformers;\n\t\t}\n\t}\n\n\toverride registerTextPlugin(editor: LexicalEditor) {\n\t\treturn registerRichText(editor);\n\t}\n\n\toverride parse(editor: LexicalEditor, markdown?: string | null): void {\n\t\teditor.update(() => {\n\t\t\t$convertFromMarkdownString(sanitize(markdown ?? ''), this.#transformers, null, true);\n\t\t});\n\t}\n\n\toverride format(editor: LexicalEditor): string {\n\t\tlet result = '';\n\t\teditor.getEditorState().read(() => (result = $convertToMarkdownString(this.#transformers, null, true)));\n\t\treturn sanitize(result);\n\t}\n}\n\nexport function provideLuRichTextMarkdownFormatter(transformers?: Transformer[]): Provider {\n\treturn {\n\t\tprovide: RICH_TEXT_FORMATTER,\n\t\tuseFactory: () => new MarkdownFormatter(transformers),\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAuBO,MAAM,6BAA6B,GAAkB;IAC3D,cAAc;IACd,OAAO;IACP,YAAY;IACZ,gBAAgB;IAChB,sBAAsB;IACtB,SAAS;IACT,eAAe;IACf,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,IAAI;;AAGC,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;IACvD,aAAa,GAAkB,6BAA6B;AAE5D,IAAA,WAAA,CAAY,YAA4B,EAAA;AACvC,QAAA,KAAK,EAAE;QACP,IAAI,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;QAClC;IACD;AAES,IAAA,kBAAkB,CAAC,MAAqB,EAAA;AAChD,QAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC;IAChC;IAES,KAAK,CAAC,MAAqB,EAAE,QAAwB,EAAA;AAC7D,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AACrF,QAAA,CAAC,CAAC;IACH;AAES,IAAA,MAAM,CAAC,MAAqB,EAAA;QACpC,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACvG,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB;AACA;AAEK,SAAU,kCAAkC,CAAC,YAA4B,EAAA;IAC9E,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC;KACrD;AACF;;ACtEA;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs","sources":["../../../packages/ng/forms/rich-text-input/formatters/markdown/markdown-formatter.ts","../../../packages/ng/forms/rich-text-input/formatters/markdown/lucca-front-ng-forms-rich-text-input-formatters-markdown.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport {\n\t$convertFromMarkdownString,\n\t$convertToMarkdownString,\n\tBOLD_ITALIC_STAR,\n\tBOLD_ITALIC_UNDERSCORE,\n\tBOLD_STAR,\n\tBOLD_UNDERSCORE,\n\tHEADING,\n\tINLINE_CODE,\n\tITALIC_STAR,\n\tITALIC_UNDERSCORE,\n\tLINK,\n\tORDERED_LIST,\n\tregisterMarkdownShortcuts,\n\tSTRIKETHROUGH,\n\tTransformer,\n\tUNORDERED_LIST,\n} from '@lexical/markdown';\nimport { registerRichText } from '@lexical/rich-text';\nimport { mergeRegister } from '@lexical/utils';\nimport { RICH_TEXT_FORMATTER, RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';\nimport { sanitize } from 'isomorphic-dompurify';\nimport { LexicalEditor } from 'lexical';\n\nexport const DEFAULT_MARKDOWN_TRANSFORMERS: Transformer[] = [\n\tUNORDERED_LIST,\n\tHEADING,\n\tORDERED_LIST,\n\tBOLD_ITALIC_STAR,\n\tBOLD_ITALIC_UNDERSCORE,\n\tBOLD_STAR,\n\tBOLD_UNDERSCORE,\n\tINLINE_CODE,\n\tITALIC_STAR,\n\tITALIC_UNDERSCORE,\n\tSTRIKETHROUGH,\n\tLINK,\n];\n\nexport class MarkdownFormatter extends RichTextFormatter {\n\t#transformers: Transformer[] = DEFAULT_MARKDOWN_TRANSFORMERS;\n\n\tconstructor(transformers?: Transformer[]) {\n\t\tsuper();\n\t\tif (transformers) {\n\t\t\tthis.#transformers = transformers;\n\t\t}\n\t}\n\n\toverride registerTextPlugin(editor: LexicalEditor): () => void {\n\t\treturn mergeRegister(registerMarkdownShortcuts(editor, this.#transformers), registerRichText(editor));\n\t}\n\n\toverride parse(editor: LexicalEditor, markdown?: string | null): void {\n\t\teditor.update(() => {\n\t\t\t$convertFromMarkdownString(sanitize(markdown ?? ''), this.#transformers, null, true);\n\t\t});\n\t}\n\n\toverride format(editor: LexicalEditor): string {\n\t\tlet result = '';\n\t\teditor.getEditorState().read(() => (result = $convertToMarkdownString(this.#transformers, null, true)));\n\t\treturn sanitize(result);\n\t}\n}\n\nexport function provideLuRichTextMarkdownFormatter(transformers?: Transformer[]): Provider {\n\treturn {\n\t\tprovide: RICH_TEXT_FORMATTER,\n\t\tuseFactory: () => new MarkdownFormatter(transformers),\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAyBa,MAAA,6BAA6B,GAAkB;IAC3D,cAAc;IACd,OAAO;IACP,YAAY;IACZ,gBAAgB;IAChB,sBAAsB;IACtB,SAAS;IACT,eAAe;IACf,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,IAAI;;AAGC,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;IACvD,aAAa,GAAkB,6BAA6B;AAE5D,IAAA,WAAA,CAAY,YAA4B,EAAA;AACvC,QAAA,KAAK,EAAE;QACP,IAAI,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;;;AAI1B,IAAA,kBAAkB,CAAC,MAAqB,EAAA;AAChD,QAAA,OAAO,aAAa,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;;IAG7F,KAAK,CAAC,MAAqB,EAAE,QAAwB,EAAA;AAC7D,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,0BAA0B,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AACrF,SAAC,CAAC;;AAGM,IAAA,MAAM,CAAC,MAAqB,EAAA;QACpC,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACvG,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC;;AAExB;AAEK,SAAU,kCAAkC,CAAC,YAA4B,EAAA;IAC9E,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC;KACrD;AACF;;ACxEA;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs","sources":["../../../packages/ng/forms/rich-text-input/formatters/plain-text/plain-text-formatter.ts","../../../packages/ng/forms/rich-text-input/formatters/plain-text/lucca-front-ng-forms-rich-text-input-formatters-plain-text.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { $convertFromMarkdownString, $convertToMarkdownString, Transformer } from '@lexical/markdown';\nimport { registerPlainText } from '@lexical/plain-text';\nimport { RICH_TEXT_FORMATTER, RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';\nimport { LexicalEditor } from 'lexical';\n\nconst DEFAULT_PLAIN_TEXT_MD_TRANSFORMERS: Transformer[] = [];\n\nexport class PlainTextFormatter extends RichTextFormatter {\n\t#transformers: Transformer[] = DEFAULT_PLAIN_TEXT_MD_TRANSFORMERS;\n\treadonly #shouldPreserveNewLinesInMarkdown = true;\n\n\tconstructor(transformers?: Transformer[]) {\n\t\tsuper();\n\t\tif (transformers) {\n\t\t\tthis.#transformers = transformers;\n\t\t}\n\t}\n\n\toverride registerTextPlugin(editor: LexicalEditor) {\n\t\treturn registerPlainText(editor);\n\t}\n\n\toverride parse(editor: LexicalEditor, markdown?: string | null): void {\n\t\teditor.update(() => {\n\t\t\t$convertFromMarkdownString(markdown ?? '', this.#transformers, undefined, this.#shouldPreserveNewLinesInMarkdown);\n\t\t});\n\t\t$convertFromMarkdownString(markdown ?? '', this.#transformers, undefined, this.#shouldPreserveNewLinesInMarkdown);\n\t}\n\n\toverride format(editor: LexicalEditor): string {\n\t\tlet result = '';\n\t\teditor.getEditorState().read(() => (result = $convertToMarkdownString(this.#transformers, undefined, this.#shouldPreserveNewLinesInMarkdown)));\n\t\treturn result;\n\t}\n}\n\nexport function provideLuRichTextPlainTextFormatter(transformers?: Transformer[]): Provider {\n\treturn {\n\t\tprovide: RICH_TEXT_FORMATTER,\n\t\tuseFactory: () => new PlainTextFormatter(transformers),\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAMA,MAAM,kCAAkC,GAAkB,EAAE;AAEtD,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;IACxD,aAAa,GAAkB,kCAAkC;IACxD,iCAAiC,GAAG,IAAI;AAEjD,IAAA,WAAA,CAAY,YAA4B,EAAA;AACvC,QAAA,KAAK,EAAE;QACP,IAAI,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;QAClC;IACD;AAES,IAAA,kBAAkB,CAAC,MAAqB,EAAA;AAChD,QAAA,OAAO,iBAAiB,CAAC,MAAM,CAAC;IACjC;IAES,KAAK,CAAC,MAAqB,EAAE,QAAwB,EAAA;AAC7D,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,0BAA0B,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,iCAAiC,CAAC;AAClH,QAAA,CAAC,CAAC;AACF,QAAA,0BAA0B,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,iCAAiC,CAAC;IAClH;AAES,IAAA,MAAM,CAAC,MAAqB,EAAA;QACpC,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAC9I,QAAA,OAAO,MAAM;IACd;AACA;AAEK,SAAU,mCAAmC,CAAC,YAA4B,EAAA;IAC/E,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC;KACtD;AACF;;AC1CA;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs","sources":["../../../packages/ng/forms/rich-text-input/formatters/plain-text/plain-text-formatter.ts","../../../packages/ng/forms/rich-text-input/formatters/plain-text/lucca-front-ng-forms-rich-text-input-formatters-plain-text.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { $convertFromMarkdownString, $convertToMarkdownString, Transformer } from '@lexical/markdown';\nimport { registerPlainText } from '@lexical/plain-text';\nimport { RICH_TEXT_FORMATTER, RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';\nimport { LexicalEditor } from 'lexical';\n\nconst DEFAULT_PLAIN_TEXT_MD_TRANSFORMERS: Transformer[] = [];\n\nexport class PlainTextFormatter extends RichTextFormatter {\n\t#transformers: Transformer[] = DEFAULT_PLAIN_TEXT_MD_TRANSFORMERS;\n\treadonly #shouldPreserveNewLinesInMarkdown = true;\n\n\tconstructor(transformers?: Transformer[]) {\n\t\tsuper();\n\t\tif (transformers) {\n\t\t\tthis.#transformers = transformers;\n\t\t}\n\t}\n\n\toverride registerTextPlugin(editor: LexicalEditor) {\n\t\treturn registerPlainText(editor);\n\t}\n\n\toverride parse(editor: LexicalEditor, markdown?: string | null): void {\n\t\teditor.update(() => {\n\t\t\t$convertFromMarkdownString(markdown ?? '', this.#transformers, undefined, this.#shouldPreserveNewLinesInMarkdown);\n\t\t});\n\t\t$convertFromMarkdownString(markdown ?? '', this.#transformers, undefined, this.#shouldPreserveNewLinesInMarkdown);\n\t}\n\n\toverride format(editor: LexicalEditor): string {\n\t\tlet result = '';\n\t\teditor.getEditorState().read(() => (result = $convertToMarkdownString(this.#transformers, undefined, this.#shouldPreserveNewLinesInMarkdown)));\n\t\treturn result;\n\t}\n}\n\nexport function provideLuRichTextPlainTextFormatter(transformers?: Transformer[]): Provider {\n\treturn {\n\t\tprovide: RICH_TEXT_FORMATTER,\n\t\tuseFactory: () => new PlainTextFormatter(transformers),\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAMA,MAAM,kCAAkC,GAAkB,EAAE;AAEtD,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;IACxD,aAAa,GAAkB,kCAAkC;IACxD,iCAAiC,GAAG,IAAI;AAEjD,IAAA,WAAA,CAAY,YAA4B,EAAA;AACvC,QAAA,KAAK,EAAE;QACP,IAAI,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;;;AAI1B,IAAA,kBAAkB,CAAC,MAAqB,EAAA;AAChD,QAAA,OAAO,iBAAiB,CAAC,MAAM,CAAC;;IAGxB,KAAK,CAAC,MAAqB,EAAE,QAAwB,EAAA;AAC7D,QAAA,MAAM,CAAC,MAAM,CAAC,MAAK;AAClB,YAAA,0BAA0B,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,iCAAiC,CAAC;AAClH,SAAC,CAAC;AACF,QAAA,0BAA0B,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,iCAAiC,CAAC;;AAGzG,IAAA,MAAM,CAAC,MAAqB,EAAA;QACpC,IAAI,MAAM,GAAG,EAAE;QACf,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAC9I,QAAA,OAAO,MAAM;;AAEd;AAEK,SAAU,mCAAmC,CAAC,YAA4B,EAAA;IAC/E,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,MAAM,IAAI,kBAAkB,CAAC,YAAY,CAAC;KACtD;AACF;;AC1CA;;AAEG;;;;"}