@lucca-front/ng 21.3.0-rc.5 → 22.0.0-rc.2

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 (282) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +3 -3
  2. package/fesm2022/lucca-front-ng-activity-feed.mjs +12 -17
  3. package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
  4. package/fesm2022/lucca-front-ng-api.mjs +122 -202
  5. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  6. package/fesm2022/lucca-front-ng-app-layout.mjs +3 -3
  7. package/fesm2022/lucca-front-ng-box.mjs +3 -3
  8. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +6 -6
  9. package/fesm2022/lucca-front-ng-bubble-icon.mjs +4 -10
  10. package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-bubble-illustration.mjs +5 -10
  12. package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-callout.mjs +36 -36
  14. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-chip.mjs +4 -10
  16. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-clear.mjs +9 -15
  18. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-code.mjs +4 -4
  20. package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-color.mjs +4 -9
  22. package/fesm2022/lucca-front-ng-color.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-comment.mjs +12 -17
  24. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-container.mjs +4 -9
  26. package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-core-select-api.mjs +29 -45
  28. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-core-select-department.mjs +13 -11
  30. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +9 -9
  32. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +6 -6
  34. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +3 -3
  36. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-core-select-user.mjs +42 -42
  38. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-core-select.mjs +204 -270
  40. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-core.mjs +37 -21
  42. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-data-table.mjs +61 -60
  44. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-date.mjs +144 -164
  46. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-date2.mjs +147 -150
  48. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-department.mjs +26 -24
  50. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-dialog.mjs +92 -68
  52. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-divider.mjs +7 -14
  54. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-dropdown.mjs +69 -72
  56. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-empty-state.mjs +15 -20
  58. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-error-page.mjs +4 -9
  60. package/fesm2022/lucca-front-ng-error-page.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-establishment.mjs +81 -115
  62. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-fancy-box.mjs +5 -10
  64. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-file-upload.mjs +33 -52
  66. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-filter-pills.mjs +41 -24
  68. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-footer.mjs +4 -10
  70. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-form-field.mjs +43 -64
  72. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-form-header.mjs +4 -9
  74. package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-form-label.mjs +4 -9
  76. package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-form.mjs +6 -9
  78. package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-formly.mjs +60 -59
  80. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +53 -53
  82. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +18 -16
  84. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +9 -8
  86. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +8 -6
  88. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +64 -57
  90. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-forms.mjs +51 -109
  92. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  93. package/fesm2022/lucca-front-ng-gauge.mjs +3 -3
  94. package/fesm2022/lucca-front-ng-grid.mjs +9 -21
  95. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  96. package/fesm2022/lucca-front-ng-highlight-data.mjs +5 -27
  97. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  98. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +15 -160
  99. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-index-table.mjs +38 -44
  101. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  102. package/fesm2022/lucca-front-ng-inline-message.mjs +4 -11
  103. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  104. package/fesm2022/lucca-front-ng-input.mjs +28 -26
  105. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  106. package/fesm2022/lucca-front-ng-link.mjs +6 -6
  107. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  108. package/fesm2022/lucca-front-ng-listbox.mjs +10 -15
  109. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  110. package/fesm2022/lucca-front-ng-listing.mjs +8 -8
  111. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  112. package/fesm2022/lucca-front-ng-loading.mjs +4 -9
  113. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  114. package/fesm2022/lucca-front-ng-main-layout.mjs +6 -6
  115. package/fesm2022/lucca-front-ng-mobile-push.mjs +4 -4
  116. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  117. package/fesm2022/lucca-front-ng-modal.mjs +36 -40
  118. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  119. package/fesm2022/lucca-front-ng-multi-select.mjs +174 -203
  120. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-new-badge.mjs +3 -3
  122. package/fesm2022/lucca-front-ng-number-format.mjs +22 -25
  123. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  124. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  125. package/fesm2022/lucca-front-ng-numeric-badge.mjs +4 -9
  126. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  127. package/fesm2022/lucca-front-ng-option.mjs +159 -162
  128. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  129. package/fesm2022/lucca-front-ng-page-header.mjs +3 -3
  130. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  131. package/fesm2022/lucca-front-ng-pagination.mjs +5 -10
  132. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  133. package/fesm2022/lucca-front-ng-plg-push.mjs +5 -5
  134. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  135. package/fesm2022/lucca-front-ng-popover.mjs +144 -255
  136. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  137. package/fesm2022/lucca-front-ng-popover2.mjs +41 -69
  138. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  139. package/fesm2022/lucca-front-ng-popup.mjs +11 -11
  140. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  141. package/fesm2022/lucca-front-ng-progress-bar.mjs +4 -9
  142. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
  143. package/fesm2022/lucca-front-ng-progress-stepper.mjs +7 -12
  144. package/fesm2022/lucca-front-ng-progress-stepper.mjs.map +1 -1
  145. package/fesm2022/lucca-front-ng-read-more.mjs +5 -10
  146. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  147. package/fesm2022/lucca-front-ng-resource-card.mjs +13 -19
  148. package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
  149. package/fesm2022/lucca-front-ng-safe-content.mjs +10 -10
  150. package/fesm2022/lucca-front-ng-scroll-box.mjs +3 -3
  151. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  152. package/fesm2022/lucca-front-ng-scroll.mjs +7 -7
  153. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  154. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +8 -14
  155. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  156. package/fesm2022/lucca-front-ng-segmented-control.mjs +6 -6
  157. package/fesm2022/lucca-front-ng-select.mjs +92 -138
  158. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  159. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  160. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  161. package/fesm2022/lucca-front-ng-simple-select.mjs +43 -41
  162. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  163. package/fesm2022/lucca-front-ng-skeleton.mjs +28 -50
  164. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  165. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +6 -6
  166. package/fesm2022/lucca-front-ng-software-icon.mjs +25 -29
  167. package/fesm2022/lucca-front-ng-software-icon.mjs.map +1 -1
  168. package/fesm2022/lucca-front-ng-sortable-list.mjs +6 -6
  169. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
  170. package/fesm2022/lucca-front-ng-status-badge.mjs +4 -9
  171. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  172. package/fesm2022/lucca-front-ng-table-of-content.mjs +6 -6
  173. package/fesm2022/lucca-front-ng-tag.mjs +5 -10
  174. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  175. package/fesm2022/lucca-front-ng-text-flow.mjs +4 -4
  176. package/fesm2022/lucca-front-ng-text-flow.mjs.map +1 -1
  177. package/fesm2022/lucca-front-ng-time.mjs +68 -316
  178. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  179. package/fesm2022/lucca-front-ng-title.mjs +10 -10
  180. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  181. package/fesm2022/lucca-front-ng-toast.mjs +11 -11
  182. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  183. package/fesm2022/lucca-front-ng-tooltip.mjs +17 -17
  184. package/fesm2022/lucca-front-ng-tree-select.mjs +17 -16
  185. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  186. package/fesm2022/lucca-front-ng-user-popover.mjs +27 -32
  187. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  188. package/fesm2022/lucca-front-ng-user.mjs +139 -195
  189. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  190. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +12 -12
  191. package/package.json +5 -13
  192. package/schematics/lib/local-deps/package-lock.json +79 -17
  193. package/schematics/lib/local-deps/package.json +1 -1
  194. package/schematics/palettes/index.js +1 -12
  195. package/src/components/_picker.scss +1 -2
  196. package/types/lucca-front-ng-activity-feed.d.ts +1 -8
  197. package/types/lucca-front-ng-api.d.ts +75 -81
  198. package/types/lucca-front-ng-bubble-icon.d.ts +1 -10
  199. package/types/lucca-front-ng-bubble-illustration.d.ts +4 -10
  200. package/types/lucca-front-ng-callout.d.ts +12 -20
  201. package/types/lucca-front-ng-chip.d.ts +1 -10
  202. package/types/lucca-front-ng-clear.d.ts +6 -11
  203. package/types/lucca-front-ng-color.d.ts +1 -8
  204. package/types/lucca-front-ng-comment.d.ts +1 -8
  205. package/types/lucca-front-ng-container.d.ts +1 -8
  206. package/types/lucca-front-ng-core-select-api.d.ts +28 -28
  207. package/types/lucca-front-ng-core-select-department.d.ts +10 -10
  208. package/types/lucca-front-ng-core-select-establishment.d.ts +12 -12
  209. package/types/lucca-front-ng-core-select-job-qualification.d.ts +6 -6
  210. package/types/lucca-front-ng-core-select-occupation-category.d.ts +6 -6
  211. package/types/lucca-front-ng-core-select-user.d.ts +20 -21
  212. package/types/lucca-front-ng-core-select.d.ts +186 -185
  213. package/types/lucca-front-ng-core.d.ts +16 -10
  214. package/types/lucca-front-ng-data-table.d.ts +41 -52
  215. package/types/lucca-front-ng-date.d.ts +30 -28
  216. package/types/lucca-front-ng-date2.d.ts +98 -106
  217. package/types/lucca-front-ng-department.d.ts +2 -2
  218. package/types/lucca-front-ng-dialog.d.ts +13 -13
  219. package/types/lucca-front-ng-divider.d.ts +2 -9
  220. package/types/lucca-front-ng-dropdown.d.ts +5 -4
  221. package/types/lucca-front-ng-empty-state.d.ts +7 -15
  222. package/types/lucca-front-ng-error-page.d.ts +4 -9
  223. package/types/lucca-front-ng-establishment.d.ts +26 -27
  224. package/types/lucca-front-ng-fancy-box.d.ts +1 -8
  225. package/types/lucca-front-ng-file-upload.d.ts +24 -39
  226. package/types/lucca-front-ng-filter-pills.d.ts +37 -32
  227. package/types/lucca-front-ng-footer.d.ts +2 -11
  228. package/types/lucca-front-ng-form-field.d.ts +27 -45
  229. package/types/lucca-front-ng-form-header.d.ts +1 -8
  230. package/types/lucca-front-ng-form-label.d.ts +1 -8
  231. package/types/lucca-front-ng-form.d.ts +0 -2
  232. package/types/lucca-front-ng-forms-phone-number-input.d.ts +19 -26
  233. package/types/lucca-front-ng-forms-rich-text-input.d.ts +15 -14
  234. package/types/lucca-front-ng-forms.d.ts +54 -95
  235. package/types/lucca-front-ng-grid.d.ts +8 -23
  236. package/types/lucca-front-ng-highlight-data.d.ts +1 -16
  237. package/types/lucca-front-ng-horizontal-navigation.d.ts +3 -40
  238. package/types/lucca-front-ng-index-table.d.ts +40 -49
  239. package/types/lucca-front-ng-inline-message.d.ts +4 -11
  240. package/types/lucca-front-ng-input.d.ts +8 -8
  241. package/types/lucca-front-ng-link.d.ts +4 -4
  242. package/types/lucca-front-ng-listbox.d.ts +1 -8
  243. package/types/lucca-front-ng-loading.d.ts +1 -8
  244. package/types/lucca-front-ng-mobile-push.d.ts +1 -1
  245. package/types/lucca-front-ng-modal.d.ts +12 -12
  246. package/types/lucca-front-ng-multi-select.d.ts +55 -58
  247. package/types/lucca-front-ng-number-format.d.ts +2 -2
  248. package/types/lucca-front-ng-numeric-badge.d.ts +1 -8
  249. package/types/lucca-front-ng-option.d.ts +26 -26
  250. package/types/lucca-front-ng-page-header.d.ts +1 -1
  251. package/types/lucca-front-ng-pagination.d.ts +1 -8
  252. package/types/lucca-front-ng-popover.d.ts +53 -47
  253. package/types/lucca-front-ng-popover2.d.ts +33 -31
  254. package/types/lucca-front-ng-popup.d.ts +8 -8
  255. package/types/lucca-front-ng-progress-bar.d.ts +1 -8
  256. package/types/lucca-front-ng-progress-stepper.d.ts +1 -8
  257. package/types/lucca-front-ng-read-more.d.ts +7 -14
  258. package/types/lucca-front-ng-resource-card.d.ts +1 -10
  259. package/types/lucca-front-ng-scroll-box.d.ts +3 -3
  260. package/types/lucca-front-ng-segmented-control-tabs.d.ts +1 -3
  261. package/types/lucca-front-ng-segmented-control.d.ts +2 -4
  262. package/types/lucca-front-ng-select.d.ts +34 -32
  263. package/types/lucca-front-ng-sidepanel.d.ts +1 -1
  264. package/types/lucca-front-ng-simple-select.d.ts +16 -17
  265. package/types/lucca-front-ng-skeleton.d.ts +10 -26
  266. package/types/lucca-front-ng-software-icon.d.ts +5 -10
  267. package/types/lucca-front-ng-sortable-list.d.ts +8 -8
  268. package/types/lucca-front-ng-status-badge.d.ts +1 -8
  269. package/types/lucca-front-ng-tag.d.ts +1 -8
  270. package/types/lucca-front-ng-time.d.ts +25 -103
  271. package/types/lucca-front-ng-title.d.ts +5 -5
  272. package/types/lucca-front-ng-toast.d.ts +1 -1
  273. package/types/lucca-front-ng-tree-select.d.ts +11 -11
  274. package/types/lucca-front-ng-user-popover.d.ts +10 -9
  275. package/types/lucca-front-ng-user.d.ts +31 -45
  276. package/fesm2022/lucca-front-ng-highlight-text.mjs +0 -26
  277. package/fesm2022/lucca-front-ng-highlight-text.mjs.map +0 -1
  278. package/fesm2022/lucca-front-ng-impersonation.mjs +0 -119
  279. package/fesm2022/lucca-front-ng-impersonation.mjs.map +0 -1
  280. package/schematics/package.json +0 -3
  281. package/types/lucca-front-ng-highlight-text.d.ts +0 -12
  282. package/types/lucca-front-ng-impersonation.d.ts +0 -33
@@ -1,43 +1,25 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, Provider, OnInit, TemplateRef, PipeTransform, OnChanges, OnDestroy, Type, SimpleChanges, ElementRef, AfterViewInit, Signal, EventEmitter, WritableSignal, ChangeDetectorRef } from '@angular/core';
2
+ import { InjectionToken, OnDestroy, ElementRef, Signal, EventEmitter, TemplateRef, WritableSignal, OnInit, ChangeDetectorRef, Type, Provider, PipeTransform } from '@angular/core';
3
3
  import * as _lucca_front_ng_filter_pills from '@lucca-front/ng/filter-pills';
4
4
  import { FilterPillInputComponent } from '@lucca-front/ng/filter-pills';
5
5
  import { OverlayConfig, OverlayRef } from '@angular/cdk/overlay';
6
6
  import { ControlValueAccessor } from '@angular/forms';
7
7
  import { PortalContent, LuTranslation } from '@lucca-front/ng/core';
8
8
  import * as rxjs from 'rxjs';
9
- import { BehaviorSubject, Observable, Subject, ReplaySubject } from 'rxjs';
9
+ import { Observable, Subject, BehaviorSubject, ReplaySubject } from 'rxjs';
10
+ import * as _lucca_front_ng_core_select from '@lucca-front/ng/core-select';
10
11
  import { Highlightable } from '@angular/cdk/a11y';
11
12
 
12
- interface ILuOptionContext<T> {
13
- isDisabled$: BehaviorSubject<boolean>;
14
- option$: BehaviorSubject<T | undefined>;
15
- destroy(): void;
16
- }
17
- declare const LU_OPTION_CONTEXT: InjectionToken<ILuOptionContext<unknown>>;
18
- declare function provideOptionContext(): Provider;
19
-
20
- declare class LuSimpleSelectDefaultOptionComponent {
21
- context: ILuOptionContext<{
22
- name?: string;
23
- }>;
24
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuSimpleSelectDefaultOptionComponent, never>;
25
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LuSimpleSelectDefaultOptionComponent, "lu-simple-select-default-option", never, {}, {}, never, never, true, never>;
26
- }
27
-
28
- declare class LuDisabledOptionDirective {
29
- private context;
30
- set isDisabled(disabled: boolean | null);
31
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuDisabledOptionDirective, never>;
32
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuDisabledOptionDirective, "[luDisabledOption]", never, { "isDisabled": { "alias": "luDisabledOption"; "required": false; }; }, {}, never, never, true, never>;
33
- }
34
-
35
13
  interface LuOptionContext<T> {
36
14
  $implicit: T;
37
15
  }
38
16
  interface LuOptionGroupByContext<T, TGroup> {
39
17
  $implicit: LuOptionGroup<T, TGroup>;
40
18
  }
19
+ interface LuOptionGrouping<TOption, TGroup> {
20
+ selector: (option: TOption) => TGroup;
21
+ content: PortalContent<LuOptionGroupByContext<TOption, TGroup>>;
22
+ }
41
23
  interface LuOptionGroup<T, TGroup> {
42
24
  key: TGroup;
43
25
  options: T[];
@@ -58,117 +40,26 @@ declare abstract class ɵIsSelectedStrategy<TOption> {
58
40
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ɵIsSelectedStrategy<any>>;
59
41
  }
60
42
 
61
- interface LuOptionGrouping<TOption, TGroup> {
62
- selector: (option: TOption) => TGroup;
63
- content: PortalContent<LuOptionGroupByContext<TOption, TGroup>>;
64
- }
65
- declare class LuOptionGroupDirective<TOption, TValue, TGroup> implements LuOptionGrouping<TOption, TGroup>, OnInit {
66
- select: ALuSelectInputComponent<TOption, TValue>;
67
- selector: (option: TOption) => TGroup;
68
- readonly content: TemplateRef<LuOptionGroupByContext<TOption, TGroup>>;
69
- static ngTemplateContextGuard<TOption, TValue, TGroup>(_dir: LuOptionGroupDirective<TOption, TValue, TGroup>, _ctx: unknown): _ctx is LuOptionGroupByContext<TOption, TGroup>;
70
- ngOnInit(): void;
71
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionGroupDirective<any, any, any>, never>;
72
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuOptionGroupDirective<any, any, any>, "[luOptionGroup]", never, { "select": { "alias": "luOptionGroupSelect"; "required": false; }; "selector": { "alias": "luOptionGroupBy"; "required": false; }; }, {}, never, never, true, never>;
73
- }
74
-
75
- /**
76
- * Generate groups with a O(n) complexity. Note that the options must be sorted by group.
77
- */
78
- declare function generateGroups<T, TGroup>(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];
79
- declare class LuOptionGroupPipe<T, TGroup> implements PipeTransform {
80
- transform(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];
81
- transform(options: T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>;
82
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionGroupPipe<any, any>, never>;
83
- static ɵpipe: _angular_core.ɵɵPipeDeclaration<LuOptionGroupPipe<any, any>, "luOptionGroup", true>;
84
- }
85
-
86
- declare class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {
87
- luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;
88
- luOptionOutletValue: T | undefined;
89
- luOptionShowNull: boolean;
90
- private viewContainerRef;
91
- private injector;
92
- private embeddedViewRef?;
93
- private componentRef?;
94
- private optionContext;
95
- ngOnChanges(changes: SimpleChanges): void;
96
- ngOnDestroy(): void;
97
- private clearContainer;
98
- private createComponent;
99
- private updateRefValue;
100
- static ngTemplateContextGuard<T>(_dir: LuOptionOutletDirective<T>, _ctx: unknown): _ctx is void;
101
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionOutletDirective<any>, never>;
102
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuOptionOutletDirective<any>, "[luOptionOutlet]", never, { "luOptionOutlet": { "alias": "luOptionOutlet"; "required": false; }; "luOptionOutletValue": { "alias": "luOptionOutletValue"; "required": false; }; "luOptionShowNull": { "alias": "luOptionShowNull"; "required": false; }; }, {}, never, never, true, never>;
103
- }
104
-
105
- interface OptionTranslate {
106
- onlyParent: string;
107
- onlyChildren: string;
108
- }
109
-
110
- type GroupTemplateLocation = 'group-header' | 'option' | 'none';
111
- /**
112
- * In order to avoid a blinking when we go from empty clue to a clue
113
- * We need to delay the change of group displayer location by waiting for the options to be updated.
114
- */
115
- declare function getGroupTemplateLocation(hasGrouping$: Observable<boolean>, clueChange$: Observable<string>, options$: Observable<readonly unknown[]>, searchable?: boolean): Observable<GroupTemplateLocation>;
116
-
117
43
  declare class CoreSelectPanelElement<T> implements Highlightable, OnDestroy {
118
44
  #private;
119
45
  readonly elementRef: ElementRef<HTMLElement>;
120
- id: _angular_core.WritableSignal<string>;
121
- elementId: _angular_core.InputSignal<string>;
122
- idAttribute: _angular_core.Signal<string>;
123
- isSelected: _angular_core.ModelSignal<boolean>;
124
- option: _angular_core.InputSignal<T>;
125
- isHighlighted: _angular_core.WritableSignal<boolean>;
46
+ readonly id: _angular_core.WritableSignal<string>;
47
+ readonly elementId: _angular_core.InputSignal<string>;
48
+ readonly idAttribute: _angular_core.Signal<string>;
49
+ readonly isSelected: _angular_core.ModelSignal<boolean>;
50
+ readonly option: _angular_core.InputSignal<T>;
51
+ readonly disabledInput: _angular_core.InputSignal<boolean>;
52
+ readonly disabledRef: _angular_core.WritableSignal<boolean>;
53
+ readonly isHighlighted: _angular_core.WritableSignal<boolean>;
126
54
  selected: _angular_core.OutputEmitterRef<void>;
127
- disabled: boolean;
55
+ get disabled(): boolean;
56
+ set disabled(disabled: boolean);
128
57
  constructor();
129
58
  ngOnDestroy(): void;
130
59
  setActiveStyles(): void;
131
60
  setInactiveStyles(): void;
132
61
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CoreSelectPanelElement<any>, never>;
133
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CoreSelectPanelElement<any>, "[luCoreSelectPanelElement]", ["luCoreSelectPanelElement"], { "elementId": { "alias": "elementId"; "required": false; "isSignal": true; }; "isSelected": { "alias": "isSelected"; "required": false; "isSignal": true; }; "option": { "alias": "option"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "isSelected": "isSelectedChange"; "selected": "selected"; }, never, never, true, never>;
134
- }
135
-
136
- declare class LuOptionComponent<T> implements AfterViewInit, OnDestroy, OnInit {
137
- protected selectableItem: CoreSelectPanelElement<any>;
138
- readonly intl: _angular_core.InputSignalWithTransform<OptionTranslate, Partial<OptionTranslate>>;
139
- hasOptionItemClass: boolean;
140
- optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;
141
- option?: T;
142
- grouping?: LuOptionGrouping<T, unknown>;
143
- hasChildren: _angular_core.InputSignalWithTransform<boolean, unknown>;
144
- onlyParent: _angular_core.OutputEmitterRef<void>;
145
- onlyChildren: _angular_core.OutputEmitterRef<void>;
146
- groupIndex: _angular_core.InputSignal<number>;
147
- optionIndex: _angular_core.InputSignalWithTransform<string, string | number>;
148
- scrollIntoViewOptions: ScrollIntoViewOptions;
149
- groupTemplateLocation: _angular_core.InputSignal<GroupTemplateLocation>;
150
- private optionContext?;
151
- private cdr;
152
- private subscription?;
153
- get id(): string;
154
- protected elementRef: ElementRef<HTMLElement>;
155
- protected selectId: number;
156
- constructor();
157
- ngOnInit(): void;
158
- ngOnDestroy(): void;
159
- ngAfterViewInit(): void;
160
- selectOption($event: Event): void;
161
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionComponent<any>, never>;
162
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LuOptionComponent<any>, "lu-select-option", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "optionTpl": { "alias": "optionTpl"; "required": false; }; "option": { "alias": "option"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "hasChildren": { "alias": "hasChildren"; "required": false; "isSignal": true; }; "groupIndex": { "alias": "groupIndex"; "required": false; "isSignal": true; }; "optionIndex": { "alias": "optionIndex"; "required": true; "isSignal": true; }; "scrollIntoViewOptions": { "alias": "scrollIntoViewOptions"; "required": false; }; "groupTemplateLocation": { "alias": "groupTemplateLocation"; "required": false; "isSignal": true; }; }, { "onlyParent": "onlyParent"; "onlyChildren": "onlyChildren"; }, never, never, true, never>;
163
- }
164
-
165
- declare class LuOptionDirective<TOption, TValue> {
166
- private templateRef;
167
- set select(select: ALuSelectInputComponent<TOption, TValue>);
168
- constructor(templateRef: TemplateRef<LuOptionContext<TOption>>);
169
- static ngTemplateContextGuard<TOption, TValue>(_dir: LuOptionDirective<TOption, TValue>, _ctx: unknown): _ctx is LuOptionContext<TOption>;
170
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionDirective<any, any>, never>;
171
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuOptionDirective<any, any>, "[luOption]", never, { "select": { "alias": "luOptionSelect"; "required": false; }; }, {}, never, never, true, never>;
62
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CoreSelectPanelElement<any>, "[luCoreSelectPanelElement]", ["luCoreSelectPanelElement"], { "elementId": { "alias": "elementId"; "required": false; "isSignal": true; }; "isSelected": { "alias": "isSelected"; "required": false; "isSignal": true; }; "option": { "alias": "option"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "isSelected": "isSelectedChange"; "selected": "selected"; }, never, never, true, never>;
172
63
  }
173
64
 
174
65
  interface CoreSelectKeyManagerOptions<T> {
@@ -214,6 +105,13 @@ declare abstract class LuSelectPanelRef<TOption, TValue> {
214
105
  close(): void;
215
106
  }
216
107
 
108
+ type GroupTemplateLocation = 'group-header' | 'option' | 'none';
109
+ /**
110
+ * In order to avoid a blinking when we go from empty clue to a clue
111
+ * We need to delay the change of group displayer location by waiting for the options to be updated.
112
+ */
113
+ declare function getGroupTemplateLocation(hasGrouping$: Observable<boolean>, clueChange$: Observable<string>, options$: Observable<readonly unknown[]>, searchable?: boolean): Observable<GroupTemplateLocation>;
114
+
217
115
  interface CoreSelectPanelInstance<T = unknown> {
218
116
  options: WritableSignal<CoreSelectPanelElement<T>[]>;
219
117
  }
@@ -248,49 +146,53 @@ declare abstract class ALuSelectInputComponent<TOption, TValue> implements OnDes
248
146
  protected filterPillHost: _lucca_front_ng_filter_pills.FilterPillComponent;
249
147
  protected afterCloseFn?: () => void;
250
148
  protected updatePositionFn?: () => void;
251
- filterPillMode: boolean;
252
- ignorePresentation: _angular_core.InputSignalWithTransform<boolean, unknown>;
149
+ protected filterPillMode: boolean;
150
+ readonly ignorePresentation: _angular_core.InputSignalWithTransform<boolean, unknown>;
253
151
  selectParent$?: Subject<void>;
254
152
  selectChildren$?: Subject<void>;
255
- panelClosed: _angular_core.OutputEmitterRef<void>;
256
- panelOpened: _angular_core.OutputEmitterRef<void>;
257
- highlightedOption: _angular_core.OutputEmitterRef<TOption>;
258
- private inputElementRef;
259
- placeholder$: BehaviorSubject<string>;
260
- disabled$: BehaviorSubject<boolean>;
261
- filterPillDisabled: Signal<boolean>;
262
- prefix: _angular_core.InputSignal<PortalContent>;
263
- set placeholder(value: string);
264
- set clearable(value: boolean);
265
- get clearable(): boolean;
153
+ readonly panelClosed: _angular_core.OutputEmitterRef<void>;
154
+ readonly panelOpened: _angular_core.OutputEmitterRef<void>;
155
+ readonly highlightedOption: _angular_core.OutputEmitterRef<TOption>;
156
+ private readonly inputElementRef;
157
+ readonly disabled$: BehaviorSubject<boolean>;
158
+ readonly filterPillDisabled: Signal<boolean>;
159
+ readonly prefix: _angular_core.InputSignal<PortalContent>;
160
+ readonly placeholder: _angular_core.InputSignal<string>;
161
+ readonly clearableInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
162
+ readonly isClearable: Signal<boolean>;
266
163
  get searchable(): boolean;
267
- protected computedAddOptionLabel: Signal<PortalContent>;
268
- set addOptionLabel(label: PortalContent);
164
+ protected readonly computedAddOptionLabel: Signal<PortalContent>;
165
+ readonly addOptionLabelInput: _angular_core.InputSignal<PortalContent>;
269
166
  get addOptionLabel(): PortalContent;
270
- set addOptionStrategy(strategy: CoreSelectAddOptionStrategy);
167
+ readonly addOptionStrategy: _angular_core.InputSignal<CoreSelectAddOptionStrategy>;
271
168
  protected get isSelectedClass(): boolean;
272
169
  protected get isSearchFilledClass(): boolean;
273
170
  protected abstract hasValue(): boolean;
274
171
  get isPanelOpen(): boolean;
275
- isPanelOpen$: BehaviorSubject<boolean>;
276
- activeDescendant$: BehaviorSubject<string>;
172
+ readonly isPanelOpen$: BehaviorSubject<boolean>;
173
+ readonly activeDescendant$: BehaviorSubject<string>;
277
174
  get ariaControls(): string;
278
- overlayConfig?: OverlayConfig;
279
- set loading(value: boolean);
280
- set options(options: readonly TOption[]);
281
- optionComparer: LuOptionComparer<TOption>;
282
- optionKey: (option: TOption) => unknown;
283
- noClueIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
284
- inputTabindex: _angular_core.InputSignal<number>;
285
- compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
286
- colorPicker: _angular_core.InputSignalWithTransform<boolean, unknown>;
175
+ readonly overlayConfig: _angular_core.InputSignal<OverlayConfig>;
176
+ readonly loadingInput: _angular_core.InputSignal<boolean>;
177
+ readonly optionsInput: _angular_core.InputSignal<TOption[]>;
178
+ readonly optionComparerInput: _angular_core.InputSignal<LuOptionComparer<TOption>>;
179
+ readonly optionKeyInput: _angular_core.InputSignal<(option: TOption) => unknown>;
180
+ readonly noClueIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
181
+ readonly inputTabindex: _angular_core.InputSignal<number>;
182
+ readonly compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
183
+ readonly colorPicker: _angular_core.InputSignalWithTransform<boolean, unknown>;
287
184
  protected get isNoClueIconClass(): boolean;
288
- optionTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<LuOptionContext<TOption>>>;
289
- valueTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<LuOptionContext<TOption>>>;
290
- panelHeaderTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<void>>;
291
- panelFooterTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<void>>;
292
- displayerTpl: Signal<Type<unknown> | TemplateRef<LuOptionContext<TOption>>>;
293
- groupingSignal: _angular_core.WritableSignal<LuOptionGrouping<TOption, unknown>>;
185
+ readonly options: _angular_core.WritableSignal<TOption[]>;
186
+ readonly loading: _angular_core.WritableSignal<boolean>;
187
+ readonly clearable: _angular_core.WritableSignal<boolean>;
188
+ readonly optionComparer: _angular_core.WritableSignal<LuOptionComparer<TOption>>;
189
+ readonly optionKey: _angular_core.WritableSignal<(option: TOption) => unknown>;
190
+ readonly optionTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<LuOptionContext<TOption>>>;
191
+ readonly valueTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<LuOptionContext<TOption>>>;
192
+ readonly panelHeaderTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<void>>;
193
+ readonly panelFooterTpl: _angular_core.ModelSignal<Type<unknown> | TemplateRef<void>>;
194
+ readonly displayerTpl: Signal<Type<unknown> | TemplateRef<LuOptionContext<TOption>>>;
195
+ readonly groupingSignal: _angular_core.WritableSignal<LuOptionGrouping<TOption, unknown>>;
294
196
  /**
295
197
  * @deprecated use groupingSignal
296
198
  */
@@ -300,36 +202,35 @@ declare abstract class ALuSelectInputComponent<TOption, TValue> implements OnDes
300
202
  */
301
203
  set grouping(grouping: LuOptionGrouping<TOption, unknown> | undefined);
302
204
  treeGenerator?: TreeGenerator<TOption, TreeNode<TOption>>;
303
- clueChange$: Subject<string>;
205
+ readonly clueChange$: Subject<string>;
304
206
  clueChange: _angular_core.OutputRef<string>;
305
- nextPage$: Subject<void>;
207
+ readonly nextPage$: Subject<void>;
306
208
  nextPage: _angular_core.OutputRef<void>;
307
- previousPage: _angular_core.OutputEmitterRef<void>;
308
- addOption: _angular_core.OutputEmitterRef<string>;
309
- valueSignal: _angular_core.WritableSignal<TValue>;
310
- isFilterPillEmpty: Signal<boolean>;
311
- isFilterPillClearable: Signal<boolean>;
312
- get value(): TValue;
313
- protected set value(value: TValue);
314
- get inputPlaceholder(): string | null;
209
+ readonly previousPage: _angular_core.OutputEmitterRef<void>;
210
+ readonly addOption: _angular_core.OutputEmitterRef<string>;
211
+ readonly valueSignal: _angular_core.WritableSignal<TValue>;
212
+ readonly isFilterPillEmpty: Signal<boolean>;
213
+ readonly isFilterPillClearable: Signal<boolean>;
214
+ get value(): TValue | null;
215
+ protected set value(value: TValue | null);
216
+ get inputPlaceholder(): string | null | undefined;
315
217
  clueChanged(clue: string, skipPanelOpen?: boolean): void;
316
- protected _value?: TValue;
317
- options$: ReplaySubject<readonly TOption[]>;
318
- loading$: BehaviorSubject<boolean>;
218
+ protected _value: TValue | null;
219
+ readonly options$: ReplaySubject<readonly TOption[]>;
220
+ readonly loading$: Observable<boolean>;
319
221
  clue: string | null;
320
222
  lastEmittedClue: string;
321
- clue$: Observable<string>;
322
- addOptionStrategy$: BehaviorSubject<CoreSelectAddOptionStrategy>;
223
+ readonly clue$: Observable<string>;
323
224
  shouldDisplayAddOption$: Observable<boolean>;
324
225
  protected onChange?: (value: TValue | null) => void;
325
226
  protected onTouched?: () => void;
326
227
  get panelRef(): LuSelectPanelRef<TOption, TValue> | undefined;
327
228
  protected _panelRef?: LuSelectPanelRef<TOption, TValue>;
328
- protected destroyed$: Subject<void>;
229
+ protected readonly destroyed$: Subject<void>;
329
230
  constructor();
330
231
  onClickOpenPanel($event: Event): void;
331
232
  onKeyDownNavigation(event: Event): void;
332
- registerOnChange(onChange: (value: TValue) => void): void;
233
+ registerOnChange(onChange: (value: TValue | null) => void): void;
333
234
  registerOnTouched(onTouched: () => void): void;
334
235
  setDisabledState(isDisabled: boolean): void;
335
236
  ngOnDestroy(): void;
@@ -342,8 +243,8 @@ declare abstract class ALuSelectInputComponent<TOption, TValue> implements OnDes
342
243
  focusInput(): void;
343
244
  protected emptyClue(): void;
344
245
  closePanel(): void;
345
- writeValue(value: TValue): void;
346
- updateValue(value: TValue, skipPanelOpen?: boolean, noClear?: boolean): void;
246
+ writeValue(value: TValue | null): void;
247
+ updateValue(value: TValue | null, skipPanelOpen?: boolean, noClear?: boolean): void;
347
248
  clearFilterPillValue(): void;
348
249
  registerFilterPillClosePopover(closeFn: () => void): void;
349
250
  registerFilterPillUpdatePosition(updatePositionFn: () => void): void;
@@ -351,16 +252,15 @@ declare abstract class ALuSelectInputComponent<TOption, TValue> implements OnDes
351
252
  onFilterPillOpened(): void;
352
253
  onFilterPillClosed(): void;
353
254
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ALuSelectInputComponent<any, any>, never>;
354
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ALuSelectInputComponent<any, any>, never, never, { "ignorePresentation": { "alias": "ignorePresentation"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "addOptionLabel": { "alias": "addOptionLabel"; "required": false; }; "addOptionStrategy": { "alias": "addOptionStrategy"; "required": false; }; "overlayConfig": { "alias": "overlayConfig"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "options": { "alias": "options"; "required": false; }; "optionComparer": { "alias": "optionComparer"; "required": false; }; "optionKey": { "alias": "optionKey"; "required": false; }; "noClueIcon": { "alias": "noClueIcon"; "required": false; "isSignal": true; }; "inputTabindex": { "alias": "inputTabindex"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "colorPicker": { "alias": "colorPicker"; "required": false; "isSignal": true; }; "optionTpl": { "alias": "optionTpl"; "required": false; "isSignal": true; }; "valueTpl": { "alias": "valueTpl"; "required": false; "isSignal": true; }; "panelHeaderTpl": { "alias": "panelHeaderTpl"; "required": false; "isSignal": true; }; "panelFooterTpl": { "alias": "panelFooterTpl"; "required": false; "isSignal": true; }; }, { "panelClosed": "panelClosed"; "panelOpened": "panelOpened"; "highlightedOption": "highlightedOption"; "optionTpl": "optionTplChange"; "valueTpl": "valueTplChange"; "panelHeaderTpl": "panelHeaderTplChange"; "panelFooterTpl": "panelFooterTplChange"; "clueChange": "clueChange"; "nextPage": "nextPage"; "previousPage": "previousPage"; "addOption": "addOption"; }, never, never, true, never>;
355
- static ngAcceptInputType_clearable: unknown;
255
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ALuSelectInputComponent<any, any>, never, never, { "ignorePresentation": { "alias": "ignorePresentation"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "clearableInput": { "alias": "clearable"; "required": false; "isSignal": true; }; "addOptionLabelInput": { "alias": "addOptionLabel"; "required": false; "isSignal": true; }; "addOptionStrategy": { "alias": "addOptionStrategy"; "required": false; "isSignal": true; }; "overlayConfig": { "alias": "overlayConfig"; "required": false; "isSignal": true; }; "loadingInput": { "alias": "loading"; "required": false; "isSignal": true; }; "optionsInput": { "alias": "options"; "required": false; "isSignal": true; }; "optionComparerInput": { "alias": "optionComparer"; "required": false; "isSignal": true; }; "optionKeyInput": { "alias": "optionKey"; "required": false; "isSignal": true; }; "noClueIcon": { "alias": "noClueIcon"; "required": false; "isSignal": true; }; "inputTabindex": { "alias": "inputTabindex"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "colorPicker": { "alias": "colorPicker"; "required": false; "isSignal": true; }; "optionTpl": { "alias": "optionTpl"; "required": false; "isSignal": true; }; "valueTpl": { "alias": "valueTpl"; "required": false; "isSignal": true; }; "panelHeaderTpl": { "alias": "panelHeaderTpl"; "required": false; "isSignal": true; }; "panelFooterTpl": { "alias": "panelFooterTpl"; "required": false; "isSignal": true; }; }, { "panelClosed": "panelClosed"; "panelOpened": "panelOpened"; "highlightedOption": "highlightedOption"; "optionTpl": "optionTplChange"; "valueTpl": "valueTplChange"; "panelHeaderTpl": "panelHeaderTplChange"; "panelFooterTpl": "panelFooterTplChange"; "clueChange": "clueChange"; "nextPage": "nextPage"; "previousPage": "previousPage"; "addOption": "addOption"; }, never, never, true, never>;
356
256
  }
357
257
 
358
258
  declare function provideLuSelectLabelsAndIds(): Provider[];
359
259
  declare function addAttributesOnCdkContainer(overlayRef: OverlayRef, selectLabelId: string, selectId: number): void;
360
260
 
361
261
  declare class LuCoreSelectTotalCountDirective implements CoreSelectApiTotalCountProvider {
362
- totalCount: _angular_core.InputSignal<number>;
363
- totalCount$: rxjs.Observable<number>;
262
+ readonly totalCount: _angular_core.InputSignal<number>;
263
+ readonly totalCount$: rxjs.Observable<number>;
364
264
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuCoreSelectTotalCountDirective, never>;
365
265
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuCoreSelectTotalCountDirective, "lu-simple-select[totalCount],lu-multi-select[totalCount]", never, { "totalCount": { "alias": "totalCount"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
366
266
  }
@@ -373,11 +273,11 @@ declare class TreeDisplayPipe<T> implements PipeTransform {
373
273
 
374
274
  declare class LuDisplayerDirective<TOption, TValue> {
375
275
  private templateRef;
376
- set select(select: ALuSelectInputComponent<TOption, TValue>);
276
+ readonly select: _angular_core.InputSignal<ALuSelectInputComponent<TOption, TValue>>;
377
277
  constructor(templateRef: TemplateRef<LuOptionContext<TOption>>);
378
278
  static ngTemplateContextGuard<TOption, TValue>(_dir: LuDisplayerDirective<TOption, TValue>, _ctx: unknown): _ctx is LuOptionContext<TOption>;
379
279
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuDisplayerDirective<any, any>, never>;
380
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuDisplayerDirective<any, any>, "[luDisplayer]", never, { "select": { "alias": "luDisplayerSelect"; "required": false; }; }, {}, never, never, true, never>;
280
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuDisplayerDirective<any, any>, "[luDisplayer]", never, { "select": { "alias": "luDisplayerSelect"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
381
281
  }
382
282
 
383
283
  declare class LuCoreSelectNoClueDirective {
@@ -386,6 +286,107 @@ declare class LuCoreSelectNoClueDirective {
386
286
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuCoreSelectNoClueDirective, "lu-simple-select[noClue],lu-multi-select[noClue]", never, {}, {}, never, never, true, never>;
387
287
  }
388
288
 
289
+ interface ILuOptionContext<T> {
290
+ isDisabled$: BehaviorSubject<boolean>;
291
+ option$: BehaviorSubject<T | undefined>;
292
+ destroy(): void;
293
+ }
294
+ declare const LU_OPTION_CONTEXT: InjectionToken<ILuOptionContext<unknown>>;
295
+ declare function provideOptionContext(): Provider;
296
+
297
+ declare class LuSimpleSelectDefaultOptionComponent {
298
+ context: ILuOptionContext<{
299
+ name?: string;
300
+ }>;
301
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuSimpleSelectDefaultOptionComponent, never>;
302
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LuSimpleSelectDefaultOptionComponent, "lu-simple-select-default-option", never, {}, {}, never, never, true, never>;
303
+ }
304
+
305
+ declare class LuDisabledOptionDirective {
306
+ readonly isDisabled: _angular_core.InputSignal<boolean>;
307
+ private context;
308
+ constructor();
309
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuDisabledOptionDirective, never>;
310
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuDisabledOptionDirective, "[luDisabledOption]", never, { "isDisabled": { "alias": "luDisabledOption"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
311
+ }
312
+
313
+ declare class LuOptionGroupDirective<TOption, TValue, TGroup> {
314
+ readonly select: _angular_core.InputSignal<ALuSelectInputComponent<TOption, TValue>>;
315
+ readonly selector: _angular_core.InputSignal<(option: TOption) => TGroup>;
316
+ readonly content: TemplateRef<LuOptionGroupByContext<TOption, TGroup>>;
317
+ static ngTemplateContextGuard<TOption, TValue, TGroup>(_dir: LuOptionGroupDirective<TOption, TValue, TGroup>, _ctx: unknown): _ctx is LuOptionGroupByContext<TOption, TGroup>;
318
+ constructor();
319
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionGroupDirective<any, any, any>, never>;
320
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuOptionGroupDirective<any, any, any>, "[luOptionGroup]", never, { "select": { "alias": "luOptionGroupSelect"; "required": true; "isSignal": true; }; "selector": { "alias": "luOptionGroupBy"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
321
+ }
322
+
323
+ /**
324
+ * Generate groups with a O(n) complexity. Note that the options must be sorted by group.
325
+ */
326
+ declare function generateGroups<T, TGroup>(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];
327
+ declare class LuOptionGroupPipe<T, TGroup> implements PipeTransform {
328
+ transform(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];
329
+ transform(options: T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>;
330
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionGroupPipe<any, any>, never>;
331
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<LuOptionGroupPipe<any, any>, "luOptionGroup", true>;
332
+ }
333
+
334
+ declare class LuOptionOutletDirective<T> implements OnDestroy {
335
+ readonly luOptionOutlet: _angular_core.InputSignal<Type<unknown> | TemplateRef<LuOptionContext<T>>>;
336
+ readonly luOptionOutletValue: _angular_core.InputSignal<T>;
337
+ readonly luOptionShowNull: _angular_core.InputSignal<boolean>;
338
+ private viewContainerRef;
339
+ private injector;
340
+ private embeddedViewRef?;
341
+ private componentRef?;
342
+ private optionContext;
343
+ constructor();
344
+ ngOnDestroy(): void;
345
+ private clearContainer;
346
+ static ngTemplateContextGuard<T>(_dir: LuOptionOutletDirective<T>, _ctx: unknown): _ctx is void;
347
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionOutletDirective<any>, never>;
348
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuOptionOutletDirective<any>, "[luOptionOutlet]", never, { "luOptionOutlet": { "alias": "luOptionOutlet"; "required": false; "isSignal": true; }; "luOptionOutletValue": { "alias": "luOptionOutletValue"; "required": false; "isSignal": true; }; "luOptionShowNull": { "alias": "luOptionShowNull"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
349
+ }
350
+
351
+ interface OptionTranslate {
352
+ onlyParent: string;
353
+ onlyChildren: string;
354
+ }
355
+
356
+ declare class LuOptionComponent<T> implements OnInit {
357
+ protected selectableItem: CoreSelectPanelElement<any>;
358
+ readonly intl: _angular_core.InputSignalWithTransform<OptionTranslate, Partial<OptionTranslate>>;
359
+ readonly optionTpl: _angular_core.InputSignal<Type<unknown> | TemplateRef<LuOptionContext<T>>>;
360
+ readonly option: _angular_core.InputSignal<T>;
361
+ readonly grouping: _angular_core.InputSignal<LuOptionGrouping<T, unknown>>;
362
+ readonly hasChildren: _angular_core.InputSignalWithTransform<boolean, unknown>;
363
+ readonly onlyParent: _angular_core.OutputEmitterRef<void>;
364
+ readonly onlyChildren: _angular_core.OutputEmitterRef<void>;
365
+ readonly groupIndex: _angular_core.InputSignal<number>;
366
+ readonly optionIndex: _angular_core.InputSignalWithTransform<string, string | number>;
367
+ readonly scrollIntoViewOptions: _angular_core.InputSignal<ScrollIntoViewOptions>;
368
+ readonly groupTemplateLocation: _angular_core.InputSignal<GroupTemplateLocation>;
369
+ readonly optionContext: _angular_core.Signal<_lucca_front_ng_core_select.ILuOptionContext<unknown>>;
370
+ private cdr;
371
+ get id(): string;
372
+ protected elementRef: ElementRef<HTMLElement>;
373
+ protected selectId: number;
374
+ constructor();
375
+ ngOnInit(): void;
376
+ selectOption($event: Event): void;
377
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionComponent<any>, never>;
378
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LuOptionComponent<any>, "lu-select-option", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "optionTpl": { "alias": "optionTpl"; "required": false; "isSignal": true; }; "option": { "alias": "option"; "required": false; "isSignal": true; }; "grouping": { "alias": "grouping"; "required": false; "isSignal": true; }; "hasChildren": { "alias": "hasChildren"; "required": false; "isSignal": true; }; "groupIndex": { "alias": "groupIndex"; "required": false; "isSignal": true; }; "optionIndex": { "alias": "optionIndex"; "required": true; "isSignal": true; }; "scrollIntoViewOptions": { "alias": "scrollIntoViewOptions"; "required": false; "isSignal": true; }; "groupTemplateLocation": { "alias": "groupTemplateLocation"; "required": false; "isSignal": true; }; }, { "onlyParent": "onlyParent"; "onlyChildren": "onlyChildren"; }, never, never, true, never>;
379
+ }
380
+
381
+ declare class LuOptionDirective<TOption, TValue> {
382
+ private templateRef;
383
+ readonly select: _angular_core.InputSignal<ALuSelectInputComponent<TOption, TValue>>;
384
+ constructor(templateRef: TemplateRef<LuOptionContext<TOption>>);
385
+ static ngTemplateContextGuard<TOption, TValue>(_dir: LuOptionDirective<TOption, TValue>, _ctx: unknown): _ctx is LuOptionContext<TOption>;
386
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuOptionDirective<any, any>, never>;
387
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuOptionDirective<any, any>, "[luOption]", never, { "select": { "alias": "luOptionSelect"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
388
+ }
389
+
389
390
  declare const applySearchDelimiter: (clue: string, delimiter: string) => string;
390
391
 
391
392
  declare class LuIsOptionSelectedPipe<T> implements PipeTransform {
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { PipeTransform, InjectionToken, TemplateRef, Type, OnDestroy, Signal, EffectCleanupRegisterFn, CreateEffectOptions, EffectRef, InputOptionsWithTransform } from '@angular/core';
2
+ import { PipeTransform, InjectionToken, TemplateRef, Type, OnDestroy, Signal, input, EffectCleanupRegisterFn, CreateEffectOptions, EffectRef, InputOptionsWithTransform } from '@angular/core';
3
3
  import { UrlTree, ActivatedRoute, Params } from '@angular/router';
4
4
  export { DecorativePalette, PrClass as LuClass, Palette } from '@lucca/prisme/core';
5
5
 
@@ -60,7 +60,7 @@ interface ILuDateAdapter<D> {
60
60
  isValid(d: D): boolean;
61
61
  compare(a: D, b: D, granularity: LuDateGranularity): number;
62
62
  isParsable(text: string, granularity?: LuDateGranularity): boolean;
63
- parse(text: string, granularity?: LuDateGranularity): D;
63
+ parse(text: string, granularity?: LuDateGranularity): D | undefined;
64
64
  format(d: D, format: string): string;
65
65
  clone(d: D): D;
66
66
  getYear(d: D): number;
@@ -77,7 +77,7 @@ declare abstract class ALuDateAdapter<D> implements ILuDateAdapter<D> {
77
77
  abstract isValid(d: D): boolean;
78
78
  compare(a: D, b: D, granularity: LuDateGranularity): number;
79
79
  abstract isParsable(text: string, granularity?: LuDateGranularity): boolean;
80
- abstract parse(text: string, granularity?: LuDateGranularity): D;
80
+ abstract parse(text: string, granularity?: LuDateGranularity): D | undefined;
81
81
  abstract format(d: D, format: string): string;
82
82
  abstract clone(d: D): D;
83
83
  abstract getYear(d: D): number;
@@ -102,7 +102,7 @@ declare class LuNativeDateAdapter extends ALuDateAdapter<Date> implements ILuDat
102
102
  private initOrder;
103
103
  private extract;
104
104
  isParsable(text: string, granularity?: LuDateGranularity): boolean;
105
- parse(text: string, granularity?: LuDateGranularity): Date;
105
+ parse(text: string, granularity?: LuDateGranularity): Date | undefined;
106
106
  format(d: Date, format: string): string;
107
107
  forge(year: number, month: number, date: number): Date;
108
108
  forgeToday(): Date;
@@ -138,7 +138,7 @@ declare class LuStringDateAdapter extends ALuDateAdapter<string> implements ILuD
138
138
  getDay(d: string): number;
139
139
  add(d: string, count: number, granularity: LuDateGranularity): string;
140
140
  protected stringToDate(s: string): Date;
141
- protected dateToString(d: Date): string;
141
+ protected dateToString(d: Date | undefined): string | undefined;
142
142
  static ɵfac: i0.ɵɵFactoryDeclaration<LuStringDateAdapter, never>;
143
143
  static ɵprov: i0.ɵɵInjectableDeclaration<LuStringDateAdapter>;
144
144
  }
@@ -174,19 +174,20 @@ declare function generateId(): string;
174
174
  type Nil = null | undefined;
175
175
  declare const isNil: <T>(value: T | Nil) => value is Nil;
176
176
  declare const isNotNil: <T>(value: T) => value is NonNullable<T>;
177
+ declare function assertNotNil<T>(input: T, errorMessage?: string): asserts input is NonNullable<T>;
177
178
  declare const isNilOrEmptyString: (str: string | Nil) => str is Nil | "";
178
179
  declare const isNotNilOrEmptyString: (str: string | Nil) => str is string;
179
180
 
180
181
  type PortalContent<T = unknown> = string | TemplateRef<T> | Type<unknown>;
181
182
  declare const PORTAL_CONTEXT: InjectionToken<unknown>;
182
183
 
183
- declare class PortalDirective<T = unknown> implements OnDestroy {
184
+ declare class PortalDirective<T extends object = object> implements OnDestroy {
184
185
  private viewContainerRef;
185
186
  private renderer;
186
187
  private templateRef;
187
188
  private injector;
188
- luPortal: i0.InputSignal<PortalContent<T>>;
189
- luPortalContext: i0.InputSignal<T>;
189
+ readonly luPortal: i0.InputSignal<PortalContent<T>>;
190
+ readonly luPortalContext: i0.InputSignal<T>;
190
191
  private createdTextElement;
191
192
  private embeddedViewRef?;
192
193
  private componentRef?;
@@ -200,7 +201,7 @@ declare class PortalDirective<T = unknown> implements OnDestroy {
200
201
  * @see https://github.com/angular/angular/pull/51887
201
202
  */
202
203
  private updateEmbeddedViewContext;
203
- static ngTemplateContextGuard<T>(_dir: PortalDirective<T>, _ctx: unknown): _ctx is void;
204
+ static ngTemplateContextGuard<T extends object>(_dir: PortalDirective<T>, _ctx: unknown): _ctx is void;
204
205
  static ɵfac: i0.ɵɵFactoryDeclaration<PortalDirective<any>, never>;
205
206
  static ɵdir: i0.ɵɵDirectiveDeclaration<PortalDirective<any>, "[luPortal]", never, { "luPortal": { "alias": "luPortal"; "required": true; "isSignal": true; }; "luPortalContext": { "alias": "luPortalContext"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
206
207
  }
@@ -235,6 +236,11 @@ type EffectWithDepsInput = ReadonlyArray<Signal<unknown>> | Record<string, Signa
235
236
  * La plupart du temps, seule la lecture des signaux est intéressante à tracker, pas les actions qui en découlent.
236
237
  */
237
238
  declare function ɵeffectWithDeps<const T extends EffectWithDepsInput>(dependencies: T, action: (...values: [...SignalsValue<T>, EffectCleanupRegisterFn]) => unknown, options?: CreateEffectOptions): EffectRef;
239
+ /**
240
+ * Utilitaire pour synchroniser un input signal avec une props via un setter.
241
+ * Évite la répétition des ɵeffectWithDeps + isNotNil.
242
+ */
243
+ declare function syncInputSignal<T>(signal: ReturnType<typeof input<T>>, setter: (value: T) => void): void;
238
244
 
239
245
  /**
240
246
  * @deprecated use `LuTranslation` instead.
@@ -286,5 +292,5 @@ interface ILuTree<T> {
286
292
  disabled?: boolean;
287
293
  }
288
294
 
289
- export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuNativeDateAdapter, LuStringDateAdapter, LuTypeGuardPipe, PORTAL_CONTEXT, PortalDirective, defaultBreakpoints, generateId, getIntl, intlInputOptions, isNil, isNilOrEmptyString, isNotNil, isNotNilOrEmptyString, isRouterLinkParam, luDefaultNativeDateAdapterOptions, ɵeffectWithDeps };
295
+ export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuNativeDateAdapter, LuStringDateAdapter, LuTypeGuardPipe, PORTAL_CONTEXT, PortalDirective, assertNotNil, defaultBreakpoints, generateId, getIntl, intlInputOptions, isNil, isNilOrEmptyString, isNotNil, isNotNilOrEmptyString, isRouterLinkParam, luDefaultNativeDateAdapterOptions, syncInputSignal, ɵeffectWithDeps };
290
296
  export type { At, Breakpoint, EffectWithDepsInput, EnumValue, ILuDateAdapter, ILuGroup, ILuNativeDateAdapterOptions, ILuOnCloseSubscriber, ILuOnOpenSubscriber, ILuOnScrollBottomSubscriber, ILuTranslation, ILuTree, LuDateGranularity, LuTranslation, PortalContent, ResponsiveConfig, ResponsiveProperty, RouterLinkParam };