@lucca-front/ng 21.4.3-rc.1 → 21.4.4

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 (253) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +23 -16
  2. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-activity-feed.mjs +27 -18
  4. package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-api.mjs +42 -42
  6. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-app-layout.mjs +4 -4
  8. package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-box.mjs +5 -4
  10. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +12 -9
  12. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-bubble-icon.mjs +19 -11
  14. package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-bubble-illustration.mjs +13 -8
  16. package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-callout.mjs +90 -57
  18. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-chip.mjs +21 -12
  20. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-clear.mjs +11 -7
  22. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-code.mjs +3 -3
  24. package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-color.mjs +9 -6
  26. package/fesm2022/lucca-front-ng-color.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-comment.mjs +44 -27
  28. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-container.mjs +7 -5
  30. package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-core-select-api.mjs +31 -20
  32. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-core-select-department.mjs +22 -14
  34. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +21 -15
  36. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +12 -9
  38. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +9 -6
  40. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-core-select-user.mjs +73 -53
  42. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-core-select.mjs +144 -79
  44. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-core.mjs +55 -18
  46. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-data-table.mjs +105 -67
  48. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-date.mjs +45 -43
  50. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-date2.mjs +188 -106
  52. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-department.mjs +26 -25
  54. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-dialog.mjs +87 -61
  56. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-divider.mjs +7 -5
  58. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-dropdown.mjs +42 -41
  60. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-empty-state.mjs +49 -29
  62. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-error-page.mjs +10 -7
  64. package/fesm2022/lucca-front-ng-error-page.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-establishment.mjs +36 -35
  66. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-fancy-box.mjs +17 -10
  68. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-file-upload.mjs +94 -51
  70. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-filter-pills.mjs +84 -52
  72. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-footer.mjs +10 -7
  74. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-form-field.mjs +90 -55
  76. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-form-header.mjs +5 -4
  78. package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-form-label.mjs +15 -9
  80. package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-form.mjs +3 -3
  82. package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-formly.mjs +58 -58
  84. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +33 -20
  86. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +3 -3
  88. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +6 -6
  90. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +3 -3
  92. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  93. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +168 -91
  94. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  95. package/fesm2022/lucca-front-ng-forms.mjs +244 -149
  96. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  97. package/fesm2022/lucca-front-ng-gauge.mjs +23 -13
  98. package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
  99. package/fesm2022/lucca-front-ng-grid.mjs +24 -15
  100. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  101. package/fesm2022/lucca-front-ng-highlight-data.mjs +26 -15
  102. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  103. package/fesm2022/lucca-front-ng-highlight-text.mjs +7 -5
  104. package/fesm2022/lucca-front-ng-highlight-text.mjs.map +1 -1
  105. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +35 -23
  106. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  107. package/fesm2022/lucca-front-ng-impersonation.mjs +14 -9
  108. package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
  109. package/fesm2022/lucca-front-ng-index-table.mjs +64 -48
  110. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  111. package/fesm2022/lucca-front-ng-inline-message.mjs +9 -6
  112. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  113. package/fesm2022/lucca-front-ng-input.mjs +27 -24
  114. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  115. package/fesm2022/lucca-front-ng-link.mjs +49 -21
  116. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  117. package/fesm2022/lucca-front-ng-listbox.mjs +25 -17
  118. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  119. package/fesm2022/lucca-front-ng-listing.mjs +14 -10
  120. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-loading.mjs +7 -5
  122. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-main-layout.mjs +6 -6
  124. package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
  125. package/fesm2022/lucca-front-ng-mobile-push.mjs +5 -4
  126. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  127. package/fesm2022/lucca-front-ng-modal.mjs +24 -23
  128. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  129. package/fesm2022/lucca-front-ng-multi-select.mjs +204 -133
  130. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  131. package/fesm2022/lucca-front-ng-new-badge.mjs +5 -4
  132. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  133. package/fesm2022/lucca-front-ng-number-format.mjs +14 -10
  134. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  135. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  136. package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
  137. package/fesm2022/lucca-front-ng-numeric-badge.mjs +23 -12
  138. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  139. package/fesm2022/lucca-front-ng-option.mjs +136 -132
  140. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  141. package/fesm2022/lucca-front-ng-page-header.mjs +11 -7
  142. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  143. package/fesm2022/lucca-front-ng-pagination.mjs +13 -8
  144. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  145. package/fesm2022/lucca-front-ng-plg-push.mjs +9 -6
  146. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  147. package/fesm2022/lucca-front-ng-popover.mjs +19 -18
  148. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  149. package/fesm2022/lucca-front-ng-popover2.mjs +36 -23
  150. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  151. package/fesm2022/lucca-front-ng-popup.mjs +10 -10
  152. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  153. package/fesm2022/lucca-front-ng-progress-bar.mjs +7 -5
  154. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
  155. package/fesm2022/lucca-front-ng-progress-stepper.mjs +16 -11
  156. package/fesm2022/lucca-front-ng-progress-stepper.mjs.map +1 -1
  157. package/fesm2022/lucca-front-ng-read-more.mjs +35 -17
  158. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  159. package/fesm2022/lucca-front-ng-resource-card.mjs +19 -16
  160. package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
  161. package/fesm2022/lucca-front-ng-safe-content.mjs +10 -10
  162. package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
  163. package/fesm2022/lucca-front-ng-scroll-box.mjs +7 -5
  164. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  165. package/fesm2022/lucca-front-ng-scroll.mjs +14 -10
  166. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  167. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +18 -12
  168. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  169. package/fesm2022/lucca-front-ng-segmented-control.mjs +10 -8
  170. package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
  171. package/fesm2022/lucca-front-ng-select.mjs +14 -14
  172. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  173. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  174. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  175. package/fesm2022/lucca-front-ng-simple-select.mjs +27 -35
  176. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  177. package/fesm2022/lucca-front-ng-skeleton.mjs +65 -46
  178. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  179. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +16 -11
  180. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
  181. package/fesm2022/lucca-front-ng-software-icon.mjs +11 -7
  182. package/fesm2022/lucca-front-ng-software-icon.mjs.map +1 -1
  183. package/fesm2022/lucca-front-ng-sortable-list.mjs +13 -10
  184. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
  185. package/fesm2022/lucca-front-ng-status-badge.mjs +9 -6
  186. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  187. package/fesm2022/lucca-front-ng-table-of-content.mjs +8 -7
  188. package/fesm2022/lucca-front-ng-table-of-content.mjs.map +1 -1
  189. package/fesm2022/lucca-front-ng-tag.mjs +15 -9
  190. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  191. package/fesm2022/lucca-front-ng-text-flow.mjs +3 -3
  192. package/fesm2022/lucca-front-ng-text-flow.mjs.map +1 -1
  193. package/fesm2022/lucca-front-ng-time.mjs +142 -83
  194. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  195. package/fesm2022/lucca-front-ng-title.mjs +27 -14
  196. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  197. package/fesm2022/lucca-front-ng-toast.mjs +16 -13
  198. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  199. package/fesm2022/lucca-front-ng-tooltip.mjs +63 -39
  200. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  201. package/fesm2022/lucca-front-ng-tree-select.mjs +20 -13
  202. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  203. package/fesm2022/lucca-front-ng-user-popover.mjs +25 -20
  204. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  205. package/fesm2022/lucca-front-ng-user.mjs +94 -77
  206. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  207. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +32 -22
  208. package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
  209. package/package.json +8 -8
  210. package/schematics/action-icon/index.js +34 -1
  211. package/schematics/action-icon/migration.spec.js +38 -5
  212. package/schematics/alignment-utilities/migration.spec.js +38 -5
  213. package/schematics/cdn-urls/migration.spec.js +38 -5
  214. package/schematics/class-prefix/migration.spec.js +38 -5
  215. package/schematics/color-text/migration.spec.js +38 -5
  216. package/schematics/component-path/migration.spec.js +38 -5
  217. package/schematics/deprecated-resolver/migration.spec.js +36 -3
  218. package/schematics/empty-state-title/migration.spec.js +36 -3
  219. package/schematics/lib/css-mapper.js +36 -3
  220. package/schematics/lib/lf-schematic-context.js +34 -1
  221. package/schematics/lib/local-deps/postcss.js +34 -1
  222. package/schematics/lib/migration-test.js +11 -3
  223. package/schematics/lu-button/migration.spec.js +35 -2
  224. package/schematics/lu-container/migration.spec.js +35 -2
  225. package/schematics/lu-grid/migration.js +24 -16
  226. package/schematics/lu-grid/migration.spec.js +35 -2
  227. package/schematics/lu-icon/migration.spec.js +35 -2
  228. package/schematics/lu-loading/migration.spec.js +35 -2
  229. package/schematics/lu-select/migration.spec.js +35 -2
  230. package/schematics/lu-text-input/migration.spec.js +35 -2
  231. package/schematics/new-icons/index.js +35 -2
  232. package/schematics/new-icons/migration.spec.js +38 -5
  233. package/schematics/palettes/index.js +28 -8
  234. package/schematics/palettes/migration.spec.js +38 -5
  235. package/schematics/tokens-radius/migration.spec.js +38 -5
  236. package/schematics/tokens-spacing/migration.spec.js +38 -5
  237. package/schematics/tokens-typo/migration.spec.js +38 -5
  238. package/types/lucca-front-ng-comment.d.ts +2 -1
  239. package/types/lucca-front-ng-core-select.d.ts +13 -1
  240. package/types/lucca-front-ng-core.d.ts +20 -1
  241. package/types/lucca-front-ng-dialog.d.ts +4 -3
  242. package/types/lucca-front-ng-file-upload.d.ts +3 -1
  243. package/types/lucca-front-ng-filter-pills.d.ts +1 -0
  244. package/types/lucca-front-ng-forms-phone-number-input.d.ts +3 -3
  245. package/types/lucca-front-ng-forms-rich-text-input.d.ts +5 -1
  246. package/types/lucca-front-ng-forms.d.ts +14 -5
  247. package/types/lucca-front-ng-input.d.ts +2 -1
  248. package/types/lucca-front-ng-multi-select.d.ts +29 -5
  249. package/types/lucca-front-ng-numeric-badge.d.ts +1 -0
  250. package/types/lucca-front-ng-read-more.d.ts +6 -1
  251. package/types/lucca-front-ng-simple-select.d.ts +1 -3
  252. package/types/lucca-front-ng-sortable-list.d.ts +2 -1
  253. package/types/lucca-front-ng-title.d.ts +6 -5
@@ -1,17 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Pipe, signal, computed, forwardRef, HostListener, ChangeDetectionStrategy, Component, Injector, ChangeDetectorRef, ElementRef, Injectable, input, model, viewChild, ViewContainerRef, booleanAttribute, numberAttribute, HostBinding, Input, ViewEncapsulation, DestroyRef, Directive, effect, ViewChild } from '@angular/core';
2
+ import { InjectionToken, inject, Pipe, signal, computed, forwardRef, ChangeDetectionStrategy, Component, Injector, ChangeDetectorRef, ElementRef, Injectable, input, model, viewChild, ViewContainerRef, LOCALE_ID, booleanAttribute, numberAttribute, HostListener, HostBinding, Input, ViewEncapsulation, DestroyRef, Directive, effect, ViewChild } from '@angular/core';
3
3
  import { toSignal, toObservable, takeUntilDestroyed, outputToObservable } from '@angular/core/rxjs-interop';
4
- import { PortalDirective, intlInputOptions, isNotNil, ɵeffectWithDeps as _effectWithDeps, isNil } from '@lucca-front/ng/core';
5
- import * as i1$2 from '@lucca-front/ng/core-select';
6
- import { LuSelectPanelRef, ɵIsSelectedStrategy as _IsSelectedStrategy, SELECT_ID, CoreSelectKeyManager, ɵgetGroupTemplateLocation as _getGroupTemplateLocation, ɵLuOptionComponent as _LuOptionComponent, ɵCoreSelectPanelElement as _CoreSelectPanelElement, LuIsOptionSelectedPipe, ɵLuOptionGroupPipe as _LuOptionGroupPipe, TreeDisplayPipe, SELECT_PANEL_INSTANCE, SELECT_LABEL_ID, addAttributesOnCdkContainer, ALuSelectInputComponent, LU_CORE_SELECT_TRANSLATIONS, ɵLuOptionOutletDirective as _LuOptionOutletDirective, provideLuSelectLabelsAndIds, LU_OPTION_CONTEXT, CORE_SELECT_API_TOTAL_COUNT_PROVIDER } from '@lucca-front/ng/core-select';
7
- import * as i1 from '@angular/common';
4
+ import { PortalDirective, getPushPanelViewportMargin, intlInputOptions, isNotNil, ɵeffectWithDeps as _effectWithDeps, isNil } from '@lucca-front/ng/core';
5
+ import * as i1$1 from '@lucca-front/ng/core-select';
6
+ import { LuSelectPanelRef, ɵIsSelectedStrategy as _IsSelectedStrategy, SELECT_ID, ɵinjectPointerNavigation as _injectPointerNavigation, CoreSelectKeyManager, ɵgetGroupTemplateLocation as _getGroupTemplateLocation, ɵLuOptionComponent as _LuOptionComponent, ɵCoreSelectPanelElement as _CoreSelectPanelElement, LuIsOptionSelectedPipe, ɵLuOptionGroupPipe as _LuOptionGroupPipe, TreeDisplayPipe, SELECT_PANEL_INSTANCE, SELECT_LABEL_ID, addAttributesOnCdkContainer, ALuSelectInputComponent, LU_CORE_SELECT_TRANSLATIONS, ɵLuOptionOutletDirective as _LuOptionOutletDirective, provideLuSelectLabelsAndIds, LU_OPTION_CONTEXT, CORE_SELECT_API_TOTAL_COUNT_PROVIDER } from '@lucca-front/ng/core-select';
8
7
  import { NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
9
8
  import * as i2 from '@angular/forms';
10
9
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
11
10
  import { ClearComponent } from '@lucca-front/ng/clear';
12
11
  import { FilterPillDisplayerDirective, FilterPillLabelDirective, FILTER_PILL_INPUT_COMPONENT } from '@lucca-front/ng/filter-pills';
13
- import * as i1$1 from '@lucca-front/ng/form-field';
14
- import { ɵPresentationDisplayDefaultDirective as _PresentationDisplayDefaultDirective, PresentationDisplayDirective, InputDirective, FormFieldComponent } from '@lucca-front/ng/form-field';
12
+ import * as i1 from '@lucca-front/ng/form-field';
13
+ import { ɵPresentationDisplayDefaultDirective as _PresentationDisplayDefaultDirective, InputDirective, FormFieldComponent } from '@lucca-front/ng/form-field';
15
14
  import { LuTooltipModule } from '@lucca-front/ng/tooltip';
16
15
  import { IconComponent as IconComponent$1 } from '@lucca/prisme/icon';
17
16
  import { EMPTY, takeUntil, Subject, of, BehaviorSubject } from 'rxjs';
@@ -167,6 +166,53 @@ const LU_MULTI_SELECT_TRANSLATIONS = new InjectionToken('LuMultiSelectTranslatio
167
166
  });
168
167
  const luMultiSelectTranslations = Translations$1;
169
168
 
169
+ /**
170
+ * Returns the `itemCount - 1` separators `Intl.ListFormat` puts between `itemCount` items, so they can be
171
+ * interleaved with values rendered by a template rather than by `format()`.
172
+ *
173
+ * @example
174
+ * ```ts
175
+ * listSeparators(new Intl.ListFormat('fr-FR'), 3); // [', ', ' et ']
176
+ * ```
177
+ */
178
+ function listSeparators(listFormat, itemCount) {
179
+ return listFormat
180
+ .formatToParts(Array.from({ length: itemCount }, (_, index) => `${index}`))
181
+ .filter(({ type }) => type === 'literal')
182
+ .map(({ value }) => value);
183
+ }
184
+ function selectionToQueryParams(key, value, selector) {
185
+ if (value.mode === 'all' || value.mode === 'none') {
186
+ return {};
187
+ }
188
+ return { [value.mode === 'include' ? key : `-${key}`]: value.values.map(selector).join(',') };
189
+ }
190
+ /**
191
+ * Transforms a selection from withSelectAll, the complete list of options and a getKey function to a list of options.
192
+ *
193
+ * @example
194
+ * ```ts
195
+ * const selection = { mode: 'exclude', values: [{ id: 1, name: 'foo' }] };
196
+ * const allOptions = [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }, { id: 3, name: 'baz' }];
197
+ *
198
+ * const selectedOptions = selectionToOptions(selection, allOptions, (o) => o.id);
199
+ * ```
200
+ */
201
+ function selectionToOptions(selection, options, getKeyFn) {
202
+ switch (selection.mode) {
203
+ case 'include':
204
+ return selection.values;
205
+ case 'exclude': {
206
+ const excludedKeys = new Set(selection.values.map(getKeyFn));
207
+ return options.filter((o) => !excludedKeys.has(getKeyFn(o)));
208
+ }
209
+ case 'all':
210
+ return options;
211
+ case 'none':
212
+ return [];
213
+ }
214
+ }
215
+
170
216
  class LuMultiSelectPanelRef extends LuSelectPanelRef {
171
217
  }
172
218
 
@@ -181,10 +227,10 @@ class LuOptionsGroupContextPipe {
181
227
  isGroupSelected: this.#selectionStrategy.isGroupSelected(groupOptions, notSelectedOptions),
182
228
  };
183
229
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuOptionsGroupContextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
185
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: LuOptionsGroupContextPipe, isStandalone: true, name: "luOptionsGroupContext" }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuOptionsGroupContextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
231
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: LuOptionsGroupContextPipe, isStandalone: true, name: "luOptionsGroupContext" }); }
186
232
  }
187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuOptionsGroupContextPipe, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuOptionsGroupContextPipe, decorators: [{
188
234
  type: Pipe,
189
235
  args: [{
190
236
  name: 'luOptionsGroupContext',
@@ -211,8 +257,9 @@ class LuMultiSelectPanelComponent {
211
257
  this.trackBranchesBy = (_, option) => this.optionKey(option.node);
212
258
  this.selectedOptions = this.selectInput.value || [];
213
259
  this.optionTpl = this.selectInput.optionTpl;
214
- this.options = signal([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
215
- this.pointerNavigation = signal(false, ...(ngDevMode ? [{ debugName: "pointerNavigation" }] : /* istanbul ignore next */ []));
260
+ this.options = signal([], /* @ts-ignore */
261
+ ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
262
+ this.pointerNavigation = _injectPointerNavigation();
216
263
  this.keyManager = inject(CoreSelectKeyManager);
217
264
  this.someGroupOptionEnabled = computed(() => {
218
265
  return (groupOptions) => {
@@ -221,18 +268,13 @@ class LuMultiSelectPanelComponent {
221
268
  .map((o) => this.optionKey(o.option()));
222
269
  return groupOptions.some((option) => !disabledOptionIds.includes(this.optionKey(option)));
223
270
  };
224
- }, ...(ngDevMode ? [{ debugName: "someGroupOptionEnabled" }] : /* istanbul ignore next */ []));
271
+ }, /* @ts-ignore */
272
+ ...(ngDevMode ? [{ debugName: "someGroupOptionEnabled" }] : /* istanbul ignore next */ []));
225
273
  this.hasGrouping$ = toObservable(this.grouping).pipe(map((grouping) => !!grouping));
226
274
  this.clueChange$ = this.selectInput.clue$;
227
275
  this.shouldDisplayAddOption$ = this.selectInput.shouldDisplayAddOption$;
228
276
  this.groupTemplateLocation$ = _getGroupTemplateLocation(this.hasGrouping$, this.clueChange$, this.options$, this.searchable);
229
277
  }
230
- onKeydown() {
231
- this.pointerNavigation.set(false);
232
- }
233
- onMousemove() {
234
- this.pointerNavigation.set(true);
235
- }
236
278
  onScroll(evt) {
237
279
  if (!(evt.target instanceof HTMLElement)) {
238
280
  return;
@@ -287,8 +329,8 @@ class LuMultiSelectPanelComponent {
287
329
  this.keyManager.highlightOption(this.selectedOptions[0]);
288
330
  }
289
331
  }
290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
291
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: LuMultiSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "document:keydown": "onKeydown()", "document:mousemove": "onMousemove()" } }, providers: [
332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
333
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LuMultiSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", providers: [
292
334
  CoreSelectKeyManager,
293
335
  {
294
336
  provide: SELECT_PANEL_INSTANCE,
@@ -296,7 +338,7 @@ class LuMultiSelectPanelComponent {
296
338
  },
297
339
  ], ngImport: i0, template: "@if (\n\t{\n\t\toptions: (options$ | async) || [],\n\t\tclueChange: (clueChange$ | async) || \"\",\n\t\tgroupTemplateLocation: groupTemplateLocation$ | async,\n\t\tshouldDisplayAddOption: shouldDisplayAddOption$ | async,\n\t};\n\tas ctx\n) {\n\t<div class=\"lu-picker-panel lu-option-picker-panel mod-multiple\" data-testid=\"dialog-panel\">\n\t\t<div\n\t\t\tclass=\"lu-picker-content\"\n\t\t\t[class.is-loading]=\"loading()\"\n\t\t\t[class.is-filled]=\"ctx.options.length > 0\"\n\t\t\ttabindex=\"0\"\n\t\t\trole=\"listbox\"\n\t\t\taria-multiselectable=\"true\"\n\t\t\t(scroll)=\"onScroll($event)\"\n\t\t>\n\t\t\t@if (selectInput.panelHeaderTpl(); as tpl) {\n\t\t\t\t<div>\n\t\t\t\t\t<ng-container *luPortal=\"tpl\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t@if (grouping() && ctx.groupTemplateLocation === \"group-header\") {\n\t\t\t\t\t@for (\n\t\t\t\t\t\tgroup of ctx.options | luOptionGroup: grouping().selector;\n\t\t\t\t\t\ttrack trackGroupsBy(groupIndex, group);\n\t\t\t\t\t\tlet groupIndex = $index\n\t\t\t\t\t) {\n\t\t\t\t\t\t<div class=\"lu-picker-content-group\" role=\"group\" attr.aria-labelledby=\"lu-select-{{ selectId }}-group-{{ groupIndex }}\">\n\t\t\t\t\t\t\t@let groupCtx = group.options | luOptionsGroupContext: selectedOptions : optionComparer;\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t\t\t\t\telementId=\"lu-select-{{ selectId }}-group-{{ groupIndex }}\"\n\t\t\t\t\t\t\t\tclass=\"lu-picker-content-option-group-title\"\n\t\t\t\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t\t\t\t(selected)=\"toggleOptions(groupCtx.notSelectedOptions, group.options)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span #groupingTitleRef>\n\t\t\t\t\t\t\t\t\t<ng-container *luPortal=\"grouping().content; context: { $implicit: group }\" />\n\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t@if (someGroupOptionEnabled()(group.options)) {\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tclass=\"link\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"toggleOptions(groupCtx.notSelectedOptions, group.options)\"\n\t\t\t\t\t\t\t\t\t\t[id]=\"selectId + '-group-' + group.key\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"pr-u-mask\">{{ groupingTitleRef.innerText }}\u00A0\u2013 </span\n\t\t\t\t\t\t\t\t\t\t>{{ groupCtx.isGroupSelected ? intl().unselectAll : intl().selectAll }}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"optionsList\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: group.options, groupIndex: groupIndex }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@if (!grouping() || ctx.groupTemplateLocation !== \"group-header\") {\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\" />\n\t\t\t\t}\n\t\t\t\t<ng-template #optionsList let-options let-groupIndex=\"groupIndex\">\n\t\t\t\t\t@if (treeGenerator) {\n\t\t\t\t\t\t@for (branch of options | luTreeDisplay: treeGenerator; let index = $index; track trackBranchesBy(index, branch)) {\n\t\t\t\t\t\t\t<lu-tree-branch\n\t\t\t\t\t\t\t\t[branch]=\"branch\"\n\t\t\t\t\t\t\t\t[optionTpl]=\"optionTpl()\"\n\t\t\t\t\t\t\t\t[selectedOptions]=\"selectedOptions\"\n\t\t\t\t\t\t\t\t[optionComparer]=\"optionComparer\"\n\t\t\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t\t\t(toggleOne)=\"toggleOption($event)\"\n\t\t\t\t\t\t\t\t(selectMany)=\"toggleOptions($event, [])\"\n\t\t\t\t\t\t\t\t(unselectMany)=\"toggleOptions([], $event)\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t@for (option of options; track trackOptionsBy(index, option); let index = $index) {\n\t\t\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t\t\t[optionTpl]=\"optionTpl()\"\n\t\t\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t\t\t[grouping]=\"ctx.groupTemplateLocation === 'option' ? grouping() : undefined\"\n\t\t\t\t\t\t\t\t[groupIndex]=\"groupIndex\"\n\t\t\t\t\t\t\t\t[groupTemplateLocation]=\"ctx.groupTemplateLocation\"\n\t\t\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected: optionComparer : selectedOptions\"\n\t\t\t\t\t\t\t\t(selected)=\"toggleOption(option)\"\n\t\t\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t\t\t\t[class.withAddOption]=\"ctx.shouldDisplayAddOption\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t</ng-template>\n\t\t\t\t@if (ctx.options.length === 0 && !loading()) {\n\t\t\t\t\t<div class=\"lu-picker-content-option-emptyState\">\n\t\t\t\t\t\t{{ ctx.clueChange.length ? intl().emptyResults : intl().emptyOptions }}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t@if (loading()) {\n\t\t\t\t<div class=\"lu-picker-content-loading\">\n\t\t\t\t\t<div class=\"loading\">{{ intl().loading }}</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (ctx.shouldDisplayAddOption) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"addOption palette-product\"\n\t\t\t\t\t[class.is-stuck]=\"true\"\n\t\t\t\t\t(click)=\"selectInput.emitAddOption()\"\n\t\t\t\t\t(selected)=\"selectInput.emitAddOption()\"\n\t\t\t\t\telementId=\"picker-content-add\"\n\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t>\n\t\t\t\t\t<div class=\"addOption-content\">\n\t\t\t\t\t\t<lu-icon icon=\"mathsPlus\" />\n\t\t\t\t\t\t<ng-container *luPortal=\"selectInput.addOptionLabel\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n}\n", styles: ["@layer components{.optionItem-groupKey{padding-block:var(--components-options-item-padding-vertical) var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-horizontal);font:var(--pr-t-font-body-S);inline-size:100%;text-align:start;color:var(--palettes-neutral-600);margin:0}}@layer components{.addOption{position:sticky;inset-block-end:0;background-color:var(--pr-t-elevation-surface-raised)}}@layer mods{.addOption.is-highlighted .addOption-content{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.addOption.is-stuck{margin-block-start:var(--pr-t-spacings-100);box-shadow:0 0 0 4px var(--pr-t-elevation-surface-raised),0 0 0 1px color-mix(in srgb,var(--palettes-neutral-400) 8%,transparent),0 0 4px 4px color-mix(in srgb,var(--palettes-neutral-400) 32%,transparent),0 0 8px 4px color-mix(in srgb,var(--palettes-neutral-400) 24%,transparent)}}@layer components{.addOption-content{--components-button-font: var(--pr-t-font-body-M);--components-button-borderRadius: var(--pr-t-border-radius-default);--components-button-paddingBlock: var(--pr-t-spacings-100);--components-button-paddingInline: var(--pr-t-spacings-150);--components-button-paddingBlockStart: var(--components-button-paddingBlock);--components-button-paddingBlockEnd: var(--components-button-paddingBlock);--components-button-paddingInlineStart: var(--components-button-paddingInline);--components-button-paddingInlineEnd: var(--components-button-paddingInline);--components-button-padding: var(--components-button-paddingBlockStart) var(--components-button-paddingInlineEnd) var(--components-button-paddingBlockEnd) var(--components-button-paddingInlineStart);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: var(--pr-t-elevation-shadow-button);--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--components-button-arrow-transform: none;--components-button-AI-background-opacity: 25%;--components-button-font-size: var(--pr-t-font-body-M-fontSize);--components-button-line-height: var(--pr-t-font-body-M-lineHeight);--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--components-button-borderRadius);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);inline-size:var(--components-button-width);min-inline-size:var(--components-button-minWidth);font:var(--components-button-font);font-size:var(--components-button-font-size);line-height:var(--components-button-line-height);font-weight:var(--pr-t-font-fontWeight-semibold);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;text-wrap:balance;text-align:center;border:0}.addOption-content,.addOption-content:is(a){color:var(--components-button-color)}.addOption-content .lucca-icon{display:block}.addOption-content .button-icon{--icon-size: 1.5rem}.addOption-content:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.addOption-content:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.addOption-content:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:var(--components-button-borderRadius)}.addOption-content:active{--components-button-backgroundColor: var(--palettes-900, var(--palettes-product-900))}.addOption-content:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.addOption-content:disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.addOption-content{--components-button-width: 100%;--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.addOption-content:hover,.addOption-content:focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.addOption-content:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.addOption-content:disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.addOption-content{justify-content:left;--components-button-padding: var(--pr-t-spacings-50)}}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: _LuOptionComponent, selector: "lu-select-option", inputs: ["intl", "optionTpl", "option", "grouping", "hasChildren", "groupIndex", "optionIndex", "scrollIntoViewOptions", "groupTemplateLocation"], outputs: ["onlyParent", "onlyChildren"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "directive", type: _CoreSelectPanelElement, selector: "[luCoreSelectPanelElement]", inputs: ["elementId", "isSelected", "option", "disabled"], outputs: ["isSelectedChange", "selected"], exportAs: ["luCoreSelectPanelElement"] }, { kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "component", type: TreeBranchComponent, selector: "lu-tree-branch", inputs: ["branch", "optionTpl", "optionIndex", "optionComparer", "selectedOptions", "simpleMode", "depth"], outputs: ["toggleOne", "selectMany", "unselectMany"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: LuIsOptionSelectedPipe, name: "luIsOptionSelected" }, { kind: "pipe", type: _LuOptionGroupPipe, name: "luOptionGroup" }, { kind: "pipe", type: LuOptionsGroupContextPipe, name: "luOptionsGroupContext" }, { kind: "pipe", type: TreeDisplayPipe, name: "luTreeDisplay" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
298
340
  }
299
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectPanelComponent, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectPanelComponent, decorators: [{
300
342
  type: Component,
301
343
  args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
302
344
  A11yModule,
@@ -319,13 +361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
319
361
  useExisting: forwardRef(() => LuMultiSelectPanelComponent),
320
362
  },
321
363
  ], template: "@if (\n\t{\n\t\toptions: (options$ | async) || [],\n\t\tclueChange: (clueChange$ | async) || \"\",\n\t\tgroupTemplateLocation: groupTemplateLocation$ | async,\n\t\tshouldDisplayAddOption: shouldDisplayAddOption$ | async,\n\t};\n\tas ctx\n) {\n\t<div class=\"lu-picker-panel lu-option-picker-panel mod-multiple\" data-testid=\"dialog-panel\">\n\t\t<div\n\t\t\tclass=\"lu-picker-content\"\n\t\t\t[class.is-loading]=\"loading()\"\n\t\t\t[class.is-filled]=\"ctx.options.length > 0\"\n\t\t\ttabindex=\"0\"\n\t\t\trole=\"listbox\"\n\t\t\taria-multiselectable=\"true\"\n\t\t\t(scroll)=\"onScroll($event)\"\n\t\t>\n\t\t\t@if (selectInput.panelHeaderTpl(); as tpl) {\n\t\t\t\t<div>\n\t\t\t\t\t<ng-container *luPortal=\"tpl\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"lu-picker-content-option\">\n\t\t\t\t@if (grouping() && ctx.groupTemplateLocation === \"group-header\") {\n\t\t\t\t\t@for (\n\t\t\t\t\t\tgroup of ctx.options | luOptionGroup: grouping().selector;\n\t\t\t\t\t\ttrack trackGroupsBy(groupIndex, group);\n\t\t\t\t\t\tlet groupIndex = $index\n\t\t\t\t\t) {\n\t\t\t\t\t\t<div class=\"lu-picker-content-group\" role=\"group\" attr.aria-labelledby=\"lu-select-{{ selectId }}-group-{{ groupIndex }}\">\n\t\t\t\t\t\t\t@let groupCtx = group.options | luOptionsGroupContext: selectedOptions : optionComparer;\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t\t\t\t\telementId=\"lu-select-{{ selectId }}-group-{{ groupIndex }}\"\n\t\t\t\t\t\t\t\tclass=\"lu-picker-content-option-group-title\"\n\t\t\t\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t\t\t\t(selected)=\"toggleOptions(groupCtx.notSelectedOptions, group.options)\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span #groupingTitleRef>\n\t\t\t\t\t\t\t\t\t<ng-container *luPortal=\"grouping().content; context: { $implicit: group }\" />\n\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t@if (someGroupOptionEnabled()(group.options)) {\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tclass=\"link\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"toggleOptions(groupCtx.notSelectedOptions, group.options)\"\n\t\t\t\t\t\t\t\t\t\t[id]=\"selectId + '-group-' + group.key\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"pr-u-mask\">{{ groupingTitleRef.innerText }}\u00A0\u2013 </span\n\t\t\t\t\t\t\t\t\t\t>{{ groupCtx.isGroupSelected ? intl().unselectAll : intl().selectAll }}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"optionsList\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: group.options, groupIndex: groupIndex }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@if (!grouping() || ctx.groupTemplateLocation !== \"group-header\") {\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\" />\n\t\t\t\t}\n\t\t\t\t<ng-template #optionsList let-options let-groupIndex=\"groupIndex\">\n\t\t\t\t\t@if (treeGenerator) {\n\t\t\t\t\t\t@for (branch of options | luTreeDisplay: treeGenerator; let index = $index; track trackBranchesBy(index, branch)) {\n\t\t\t\t\t\t\t<lu-tree-branch\n\t\t\t\t\t\t\t\t[branch]=\"branch\"\n\t\t\t\t\t\t\t\t[optionTpl]=\"optionTpl()\"\n\t\t\t\t\t\t\t\t[selectedOptions]=\"selectedOptions\"\n\t\t\t\t\t\t\t\t[optionComparer]=\"optionComparer\"\n\t\t\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t\t\t(toggleOne)=\"toggleOption($event)\"\n\t\t\t\t\t\t\t\t(selectMany)=\"toggleOptions($event, [])\"\n\t\t\t\t\t\t\t\t(unselectMany)=\"toggleOptions([], $event)\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t@for (option of options; track trackOptionsBy(index, option); let index = $index) {\n\t\t\t\t\t\t\t<lu-select-option\n\t\t\t\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t\t\t\t[optionTpl]=\"optionTpl()\"\n\t\t\t\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t\t\t\t[grouping]=\"ctx.groupTemplateLocation === 'option' ? grouping() : undefined\"\n\t\t\t\t\t\t\t\t[groupIndex]=\"groupIndex\"\n\t\t\t\t\t\t\t\t[groupTemplateLocation]=\"ctx.groupTemplateLocation\"\n\t\t\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected: optionComparer : selectedOptions\"\n\t\t\t\t\t\t\t\t(selected)=\"toggleOption(option)\"\n\t\t\t\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t\t\t\t\t[class.withAddOption]=\"ctx.shouldDisplayAddOption\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t</ng-template>\n\t\t\t\t@if (ctx.options.length === 0 && !loading()) {\n\t\t\t\t\t<div class=\"lu-picker-content-option-emptyState\">\n\t\t\t\t\t\t{{ ctx.clueChange.length ? intl().emptyResults : intl().emptyOptions }}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t@if (loading()) {\n\t\t\t\t<div class=\"lu-picker-content-loading\">\n\t\t\t\t\t<div class=\"loading\">{{ intl().loading }}</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (ctx.shouldDisplayAddOption) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"addOption palette-product\"\n\t\t\t\t\t[class.is-stuck]=\"true\"\n\t\t\t\t\t(click)=\"selectInput.emitAddOption()\"\n\t\t\t\t\t(selected)=\"selectInput.emitAddOption()\"\n\t\t\t\t\telementId=\"picker-content-add\"\n\t\t\t\t\tluCoreSelectPanelElement\n\t\t\t\t>\n\t\t\t\t\t<div class=\"addOption-content\">\n\t\t\t\t\t\t<lu-icon icon=\"mathsPlus\" />\n\t\t\t\t\t\t<ng-container *luPortal=\"selectInput.addOptionLabel\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t</div>\n}\n", styles: ["@layer components{.optionItem-groupKey{padding-block:var(--components-options-item-padding-vertical) var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-horizontal);font:var(--pr-t-font-body-S);inline-size:100%;text-align:start;color:var(--palettes-neutral-600);margin:0}}@layer components{.addOption{position:sticky;inset-block-end:0;background-color:var(--pr-t-elevation-surface-raised)}}@layer mods{.addOption.is-highlighted .addOption-content{--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.addOption.is-stuck{margin-block-start:var(--pr-t-spacings-100);box-shadow:0 0 0 4px var(--pr-t-elevation-surface-raised),0 0 0 1px color-mix(in srgb,var(--palettes-neutral-400) 8%,transparent),0 0 4px 4px color-mix(in srgb,var(--palettes-neutral-400) 32%,transparent),0 0 8px 4px color-mix(in srgb,var(--palettes-neutral-400) 24%,transparent)}}@layer components{.addOption-content{--components-button-font: var(--pr-t-font-body-M);--components-button-borderRadius: var(--pr-t-border-radius-default);--components-button-paddingBlock: var(--pr-t-spacings-100);--components-button-paddingInline: var(--pr-t-spacings-150);--components-button-paddingBlockStart: var(--components-button-paddingBlock);--components-button-paddingBlockEnd: var(--components-button-paddingBlock);--components-button-paddingInlineStart: var(--components-button-paddingInline);--components-button-paddingInlineEnd: var(--components-button-paddingInline);--components-button-padding: var(--components-button-paddingBlockStart) var(--components-button-paddingInlineEnd) var(--components-button-paddingBlockEnd) var(--components-button-paddingInlineStart);--components-button-gap: var(--pr-t-spacings-100);--components-button-opacity: 1;--components-button-cursor: pointer;--components-button-pointerEvents: auto;--components-button-width: auto;--components-button-minWidth: none;--components-button-userSelect: auto;--components-button-boxShadow: var(--pr-t-elevation-shadow-button);--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-700, var(--palettes-product-700));--components-button-arrow-transform: none;--components-button-AI-background-opacity: 25%;--components-button-font-size: var(--pr-t-font-body-M-fontSize);--components-button-line-height: var(--pr-t-font-body-M-lineHeight);--icon-size: 1.5rem;background-color:var(--components-button-backgroundColor);box-shadow:var(--components-button-boxShadow);border-radius:var(--components-button-borderRadius);padding:var(--components-button-padding);transition-property:background-color,color,border-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);inline-size:var(--components-button-width);min-inline-size:var(--components-button-minWidth);font:var(--components-button-font);font-size:var(--components-button-font-size);line-height:var(--components-button-line-height);font-weight:var(--pr-t-font-fontWeight-semibold);gap:var(--components-button-gap);pointer-events:var(--components-button-pointerEvents);-webkit-user-select:var(--components-button-userSelect);user-select:var(--components-button-userSelect);opacity:var(--components-button-opacity);cursor:var(--components-button-cursor);transition-timing-function:ease;display:inline-flex;align-items:center;justify-content:center;position:relative;text-decoration:none;vertical-align:middle;text-wrap:balance;text-align:center;border:0}.addOption-content,.addOption-content:is(a){color:var(--components-button-color)}.addOption-content .lucca-icon{display:block}.addOption-content .button-icon{--icon-size: 1.5rem}.addOption-content:not(.mod-outlined,.mod-outline) .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.addOption-content:hover{--components-button-color: var(--palettes-0, var(--palettes-text, var(--palettes-product-0)));--components-button-backgroundColor: var(--palettes-800, var(--palettes-product-800))}.addOption-content:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:var(--components-button-borderRadius)}.addOption-content:active{--components-button-backgroundColor: var(--palettes-900, var(--palettes-product-900))}.addOption-content:disabled{--components-button-cursor: default;--components-button-color: var(--palettes-neutral-500);--components-button-backgroundColor: var(--commons-disabled-background);--components-button-pointerEvents: none}.addOption-content:disabled .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.addOption-content{--components-button-width: 100%;--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.addOption-content:hover,.addOption-content:focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.addOption-content:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.addOption-content:disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.addOption-content{justify-content:left;--components-button-padding: var(--pr-t-spacings-50)}}\n"] }]
322
- }], propDecorators: { onKeydown: [{
323
- type: HostListener,
324
- args: ['document:keydown']
325
- }], onMousemove: [{
326
- type: HostListener,
327
- args: ['document:mousemove']
328
- }] } });
364
+ }] });
329
365
 
330
366
  class BaseMultiSelectPanelRef extends LuMultiSelectPanelRef {
331
367
  constructor(parentInjector, selectInput) {
@@ -426,7 +462,7 @@ class LuMultiSelectPanelRefFactory {
426
462
  .flexibleConnectedTo(this.elementRef)
427
463
  .withGrowAfterOpen(true)
428
464
  .withLockedPosition(false)
429
- .withViewportMargin(8)
465
+ .withViewportMargin(getPushPanelViewportMargin(this.elementRef.nativeElement, 8))
430
466
  .withPositions([
431
467
  this.buildPosition('bottom', 'right', config),
432
468
  this.buildPosition('bottom', 'left', config),
@@ -457,31 +493,58 @@ class LuMultiSelectPanelRefFactory {
457
493
  ...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),
458
494
  };
459
495
  }
460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectPanelRefFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
461
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectPanelRefFactory }); }
496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectPanelRefFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
497
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectPanelRefFactory }); }
462
498
  }
463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectPanelRefFactory, decorators: [{
499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectPanelRefFactory, decorators: [{
464
500
  type: Injectable
465
501
  }] });
466
502
 
467
503
  class LuMultiSelectInputComponent extends ALuSelectInputComponent {
468
504
  constructor() {
469
505
  super(...arguments);
470
- this.intl = input(...intlInputOptions(LU_CORE_SELECT_TRANSLATIONS, LU_MULTI_SELECT_TRANSLATIONS), ...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
471
- this.valuesTpl = model(LuMultiSelectDefaultDisplayerComponent, ...(ngDevMode ? [{ debugName: "valuesTpl" }] : /* istanbul ignore next */ []));
506
+ this.intl = input(...intlInputOptions(LU_CORE_SELECT_TRANSLATIONS, LU_MULTI_SELECT_TRANSLATIONS), /* @ts-ignore */
507
+ ...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
508
+ this.valuesTpl = model(LuMultiSelectDefaultDisplayerComponent, /* @ts-ignore */
509
+ ...(ngDevMode ? [{ debugName: "valuesTpl" }] : /* istanbul ignore next */ []));
472
510
  this.maxValuesShown = 500;
473
511
  this.keepSearchAfterSelection = false;
512
+ /**
513
+ * @deprecated use filterPillLabelPluralFn
514
+ */
515
+ this.filterPillLabelPlural = input(undefined, /* @ts-ignore */
516
+ ...(ngDevMode ? [{ debugName: "filterPillLabelPlural" }] : /* istanbul ignore next */ []));
517
+ this.filterPillLabelPluralFn = input(undefined, /* @ts-ignore */
518
+ ...(ngDevMode ? [{ debugName: "filterPillLabelPluralFn" }] : /* istanbul ignore next */ []));
519
+ this.filterPillLabelPluralValue = computed(() => {
520
+ const label = this.filterPillLabelPluralFn();
521
+ const count = this.valueLength();
522
+ if (label) {
523
+ return label(count);
524
+ }
525
+ return `${count} ${this.filterPillLabelPlural()}`;
526
+ }, /* @ts-ignore */
527
+ ...(ngDevMode ? [{ debugName: "filterPillLabelPluralValue" }] : /* istanbul ignore next */ []));
474
528
  this.selectParent$ = new Subject();
475
529
  this.selectChildren$ = new Subject();
476
- this.hideCombobox = computed(() => this.valueSignal()?.length > 1, ...(ngDevMode ? [{ debugName: "hideCombobox" }] : /* istanbul ignore next */ []));
530
+ this.hideCombobox = computed(() => this.valueSignal()?.length > 1, /* @ts-ignore */
531
+ ...(ngDevMode ? [{ debugName: "hideCombobox" }] : /* istanbul ignore next */ []));
477
532
  this.filterPillPanelAnchorRef = viewChild('filterPillPanelAnchor', { ...(ngDevMode ? { debugName: "filterPillPanelAnchorRef" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
478
533
  this.isFilterPillEmpty = computed(() => {
479
534
  const valueSignal = this.valueSignal();
480
535
  return !valueSignal || valueSignal.length === 0;
481
- }, ...(ngDevMode ? [{ debugName: "isFilterPillEmpty" }] : /* istanbul ignore next */ []));
482
- this.valueLength = computed(() => this.valueSignal()?.length ?? 0, ...(ngDevMode ? [{ debugName: "valueLength" }] : /* istanbul ignore next */ []));
483
- this.useSingleOptionDisplayer = signal(true, ...(ngDevMode ? [{ debugName: "useSingleOptionDisplayer" }] : /* istanbul ignore next */ []));
536
+ }, /* @ts-ignore */
537
+ ...(ngDevMode ? [{ debugName: "isFilterPillEmpty" }] : /* istanbul ignore next */ []));
538
+ this.valueLength = computed(() => this.valueSignal()?.length ?? 0, /* @ts-ignore */
539
+ ...(ngDevMode ? [{ debugName: "valueLength" }] : /* istanbul ignore next */ []));
540
+ this.useSingleOptionDisplayer = signal(true, /* @ts-ignore */
541
+ ...(ngDevMode ? [{ debugName: "useSingleOptionDisplayer" }] : /* istanbul ignore next */ []));
542
+ this.singleOptionForDisplay = computed(() => this.valueSignal()?.[0], /* @ts-ignore */
543
+ ...(ngDevMode ? [{ debugName: "singleOptionForDisplay" }] : /* istanbul ignore next */ []));
484
544
  this._value = [];
545
+ this.#listFormat = new Intl.ListFormat(inject(LOCALE_ID));
546
+ this.presentationSeparators = computed(() => listSeparators(this.#listFormat, this.valueSignal()?.length ?? 0), /* @ts-ignore */
547
+ ...(ngDevMode ? [{ debugName: "presentationSeparators" }] : /* istanbul ignore next */ []));
485
548
  this.panelRefFactory = inject(LuMultiSelectPanelRefFactory);
486
549
  /**
487
550
  * This is used to tell the displayer to focus on the input element
@@ -494,6 +557,7 @@ class LuMultiSelectInputComponent extends ALuSelectInputComponent {
494
557
  get filterPillClass() {
495
558
  return this.filterPillMode;
496
559
  }
560
+ #listFormat;
497
561
  get panelRef() {
498
562
  return this._panelRef;
499
563
  }
@@ -549,8 +613,8 @@ class LuMultiSelectInputComponent extends ALuSelectInputComponent {
549
613
  super.ngOnDestroy();
550
614
  this.focusInput$.complete();
551
615
  }
552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
553
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: LuMultiSelectInputComponent, isStandalone: true, selector: "lu-multi-select", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, valuesTpl: { classPropertyName: "valuesTpl", publicName: "valuesTpl", isSignal: true, isRequired: false, transformFunction: null }, maxValuesShown: { classPropertyName: "maxValuesShown", publicName: "maxValuesShown", isSignal: false, isRequired: false, transformFunction: numberAttribute }, keepSearchAfterSelection: { classPropertyName: "keepSearchAfterSelection", publicName: "keepSearchAfterSelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterPillLabelPlural: { classPropertyName: "filterPillLabelPlural", publicName: "filterPillLabelPlural", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valuesTpl: "valuesTplChange" }, host: { listeners: { "keydown.control.enter": "selectParentOnly()", "keydown.shift.enter": "selectChildrenOnly()" }, properties: { "class.mod-filterPill": "this.filterPillClass" }, classAttribute: "multiSelect" }, providers: [
616
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
617
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LuMultiSelectInputComponent, isStandalone: true, selector: "lu-multi-select", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, valuesTpl: { classPropertyName: "valuesTpl", publicName: "valuesTpl", isSignal: true, isRequired: false, transformFunction: null }, maxValuesShown: { classPropertyName: "maxValuesShown", publicName: "maxValuesShown", isSignal: false, isRequired: false, transformFunction: numberAttribute }, keepSearchAfterSelection: { classPropertyName: "keepSearchAfterSelection", publicName: "keepSearchAfterSelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterPillLabelPlural: { classPropertyName: "filterPillLabelPlural", publicName: "filterPillLabelPlural", isSignal: true, isRequired: false, transformFunction: null }, filterPillLabelPluralFn: { classPropertyName: "filterPillLabelPluralFn", publicName: "filterPillLabelPluralFn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valuesTpl: "valuesTplChange" }, host: { listeners: { "keydown.control.enter": "selectParentOnly()", "keydown.shift.enter": "selectChildrenOnly()" }, properties: { "class.mod-filterPill": "this.filterPillClass" }, classAttribute: "multiSelect" }, providers: [
554
618
  {
555
619
  provide: NG_VALUE_ACCESSOR,
556
620
  useExisting: forwardRef(() => LuMultiSelectInputComponent),
@@ -566,9 +630,9 @@ class LuMultiSelectInputComponent extends ALuSelectInputComponent {
566
630
  provide: FILTER_PILL_INPUT_COMPONENT,
567
631
  useExisting: forwardRef(() => LuMultiSelectInputComponent),
568
632
  },
569
- ], viewQueries: [{ propertyName: "filterPillPanelAnchorRef", first: true, predicate: ["filterPillPanelAnchor"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *luOptionOutlet=\"valuesTpl(); value: value || []\" />\n\n@if (!filterPillMode) {\n\t@if (hasValue() && clearable && (disabled$ | async) === false) {\n\t\t<lu-clear class=\"multipleSelect-clear\" (onClear)=\"clearValue($event)\">{{ intl().clear }}</lu-clear>\n\t}\n\n\t<lu-icon icon=\"arrowChevronBottom\" class=\"multipleSelect-arrow\" />\n\t<lu-icon icon=\"searchMagnifyingGlass\" class=\"multipleSelect-searchIcon\" />\n}\n\n<ng-container #filterPillPanelAnchor />\n<ng-container *luFilterPillDisplayer>\n\t<div class=\"multipleSelect-displayer-filter\">\n\t\t@if (useSingleOptionDisplayer() && valueLength() === 1) {\n\t\t\t<div class=\"multipleSelect-pill-displayer-chip\">\n\t\t\t\t<ng-container *luOptionOutlet=\"displayerTpl(); value: value[0]\" />\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-container>\n<ng-container *luFilterPillLabel=\"let label = label; let colon = colon\">\n\t@let minCount = useSingleOptionDisplayer() ? 1 : 0;\n\t@if (valueLength() > minCount) {\n\t\t<span class=\"multipleSelect-pill-displayer-label\">{{ valueLength() }}\u00A0{{ filterPillLabelPlural }}</span>\n\t} @else {\n\t\t{{ label }}\n\t\t@if (valueLength() === 1) {\n\t\t\t{{ colon }}\n\t\t}\n\t}\n</ng-container>\n@if (!ignorePresentation()) {\n\t<ng-container *luPresentationDisplayDefault>\n\t\t@for (v of value; track $index) {\n\t\t\t@if ($last) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"noComma; context: { $implicit: v }\" />\n\t\t\t} @else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"comma; context: { $implicit: v }\" />\n\t\t\t}\n\t\t} @empty {\n\t\t\t<span aria-hidden=\"true\" data-content-before=\"\u2013\"></span>\n\t\t}\n\t</ng-container>\n}\n\n<ng-template #comma let-value><ng-container *luOptionOutlet=\"displayerTpl(); value: value\" />, </ng-template>\n\n<ng-template #noComma let-value>\n\t<ng-container *luOptionOutlet=\"displayerTpl(); value: value\" />\n</ng-template>\n", styles: ["@layer components{.multiSelect{--components-multiSelect-font: var(--pr-t-font-body-M);--components-multiSelect-padding: var(--pr-t-spacings-100);--components-multiSelect-gap: var(--pr-t-spacings-100);--components-multiSelect-background: var(--pr-t-color-input-background);--components-multiSelect-border-color: var(--pr-t-color-input-border);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon);--components-multiSelect-displayer-suffix-display: contents;display:flex;box-shadow:0 0 0 1px var(--components-multiSelect-border-color);background-color:var(--components-multiSelect-background);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);align-items:flex-end;gap:var(--components-multiSelect-gap);cursor:pointer}.multiSelect:hover{--components-multiSelect-border-color: var(--pr-t-color-input-border-hover)}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multipleSelect-displayer{display:flex;gap:var(--pr-t-spacings-50);flex-wrap:wrap;flex:1}.multipleSelect-displayer-suffix{display:var(--components-multiSelect-displayer-suffix-display);gap:var(--pr-t-spacings-50);flex:1;order:1}.multipleSelect-displayer-chip.chip{min-inline-size:0;--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}.multipleSelect-displayer-chip-value{max-inline-size:8.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multipleSelect-displayer-search{display:block;min-inline-size:2rem;inline-size:auto;flex:1;order:1;border:0;padding:0;outline:none;color:var(--pr-t-color-input-text);font:var(--components-multiSelect-font);background-color:transparent;cursor:pointer}.multipleSelect-displayer-search::placeholder{color:var(--components-multiSelect-placeholder)}.multipleSelect-displayer-label{font:var(--components-multiSelect-font)}.multipleSelect-clear{margin-block-end:var(--pr-t-spacings-50)}.multipleSelect-arrow,.multipleSelect-searchIcon{--icon-size: 1.5rem;color:var(--components-multiSelect-arrow-color);transition-property:transform;transition-duration:var(--commons-animations-durations-standard)}.multipleSelect-searchIcon{display:none}.multipleSelect-pill-displayer-chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multipleSelect-pill-displayer-label{font-weight:var(--pr-t-font-fontWeight-semibold)}.multiSelect-field-icon{order:1}}@layer mods{.multiSelect.mod-S{--components-multiSelect-font: var(--pr-t-font-body-S);--components-multiSelect-padding: var(--pr-t-spacings-75);--components-multiSelect-gap: var(--pr-t-spacings-75)}.multiSelect.mod-S .multipleSelect-arrow,.multiSelect.mod-S .multipleSelect-searchIcon{--icon-size: 1.25rem}.multiSelect.mod-S .multipleSelect-clear.clear,.multiSelect.mod-S .multipleSelect-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.multiSelect.mod-S .multipleSelect-displayer-chip.chip,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip){--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.multiSelect.mod-S .multipleSelect-displayer-chip.chip .lucca-icon,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip) .lucca-icon{--icon-size: .75rem}.multiSelect.mod-filterPill{--components-multiSelect-displayer-suffix-display: flex;flex-direction:column;align-items:stretch;box-shadow:none;padding:0;gap:0;inline-size:26.5rem;max-inline-size:calc(100vw - 2.5rem)}.multiSelect.mod-filterPill .multipleSelect-displayer{box-shadow:0 0 0 1px var(--components-multiSelect-border-color);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);z-index:1;position:relative;max-block-size:min(14rem,80vh);overflow:auto}.multiSelect.mod-filterPill .lu-picker-content{animation:none;box-shadow:none;border-radius:0;background-color:transparent;padding:var(--pr-t-spacings-50);margin:var(--pr-t-spacings-75) calc(var(--pr-t-spacings-100) * -1) calc(var(--pr-t-spacings-100) * -1)}.multiSelect.mod-filterPill .lu-picker-content lu-simple-select-default-option.pr-u-ellipsis{white-space:normal!important}.multiSelect.mod-filterPill:has(.multipleSelect-displayer-search:focus-visible){outline:none}.multiSelect.mod-filterPill .multipleSelect-displayer:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect.mod-filterPill.is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search:not(:focus),.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect:has(.multipleSelect-displayer-search[aria-invalid=true]){--components-multiSelect-border-color: var(--pr-t-color-input-border-critical);--components-multiSelect-background: var(--pr-t-color-input-background-critical);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder-critical)}.multiSelect:has(.multipleSelect-displayer-search:disabled){--components-multiSelect-background: var(--commons-disabled-background);--components-multiSelect-placeholder: var(--commons-disabled-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon-disabled);pointer-events:none}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip .chip-kill{display:none}.multiSelect:has([aria-expanded=true]) .multipleSelect-arrow{transform:rotate(180deg)}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow{display:none}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon{display:inline-flex;transform:none}}@layer components{.multipleSelect-displayer-filter{min-inline-size:0;display:flex;gap:.5ch}.multipleSelect-displayer-filter:empty{display:none}}@layer components{.clear{--components-clear-display: grid;--components-clear-size: 1rem;--components-clear-background: var(--palettes-800, var(--palettes-neutral-800));--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;display:var(--components-clear-display);grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";align-items:normal;flex-shrink:0;inline-size:var(--components-clear-size);block-size:var(--components-clear-size);border-radius:var(--pr-t-border-radius-full)}.clear:before,.clear:after{content:\"\";grid-area:main}.clear:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-clear-background)}.clear:after{-webkit-mask-image:var(--components-clear-background-image);mask-image:var(--components-clear-background-image);-webkit-mask-size:var(--components-clear-size);mask-size:var(--components-clear-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-clear-cross-color)}.clear:hover{--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background: var(--palettes-700, var(--palettes-neutral-700))}.clear:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:50%}.clear:active{--components-clear-background: var(--palettes-900, var(--palettes-neutral-900))}.clear .lucca-icon{display:none}}@layer mods{.clear.mod-S{--components-clear-size: .75rem;--icon-size: .75rem}.clear.mod-inverted{--components-clear-cross-color: var(--palettes-800, var(--palettes-neutral-800));--components-clear-background: var(--palettes-0, var(--palettes-neutral-0))}.clear.mod-inverted:hover{--components-clear-background: var(--palettes-50, var(--palettes-neutral-50))}.clear.mod-inverted:active{--components-clear-background: var(--palettes-100, var(--palettes-neutral-100))}.clear[disabled]{cursor:default;--components-clear-cross-color: var(--palettes-neutral-500)}.clear[disabled],.clear[disabled]:hover,.clear[disabled]:active{--components-clear-background: var(--palettes-neutral-300)}.clear[hidden],.filterPill[disabled] .clear,.filterPill:not(.is-filled) .clear,.textfield-input[disabled] .clear,.textfield-input:not(.is-filled) .clear{--components-clear-display: none}.multiSelect.is-selected:has(.multipleSelect-clear) .clear{--components-clear-display: grid}}@layer components{.chip{--components-chip-font: var(--pr-t-font-body-S);--components-chip-backgroundColor: var(--palettes-100, var(--palettes-neutral-100));--components-chip-color: var(--palettes-800, var(--pr-t-color-text));--components-chip-borderRadius: var(--pr-t-border-radius-default);--components-chip-kill-size: .75rem;--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-neutral-800));--components-chip-kill-cross-color: var(--palettes-text, var(--palettes-neutral-text));--components-chip-kill-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");--components-chip-fontSize: var(--pr-t-font-body-S-fontSize);--components-chip-lineHeight: var(--pr-t-font-body-S-lineHeight);background-color:var(--components-chip-backgroundColor);border:none;border-radius:var(--components-chip-borderRadius);color:var(--components-chip-color);display:inline-flex;align-items:center;position:relative;vertical-align:middle;padding-block:calc(var(--pr-t-spacings-50) / 2);padding-inline:var(--pr-t-spacings-100);font:var(--components-chip-font);max-inline-size:100%}.chip .lucca-icon{--icon-size: 1rem;margin-inline-end:var(--pr-t-spacings-50)}.chip-content{outline:none}.chip-kill{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";place-items:center;inline-size:var(--pr-t-spacings-300);block-size:var(--pr-t-spacings-300);margin:calc(var(--pr-t-spacings-75) * -1);margin-inline-start:var(--pr-t-spacings-25);flex-shrink:0;cursor:pointer}.chip-kill:before,.chip-kill:after{content:\"\";grid-area:main;inline-size:var(--components-chip-kill-size);block-size:var(--components-chip-kill-size)}.chip-kill:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-chip-kill-disk-color)}.chip-kill:after{-webkit-mask-image:var(--components-chip-kill-background-image);mask-image:var(--components-chip-kill-background-image);-webkit-mask-size:var(--components-chip-kill-size);mask-size:var(--components-chip-kill-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-chip-kill-cross-color)}.chip-kill:hover{--components-chip-kill-disk-color: var(--palettes-700, var(--palettes-neutral-700))}.chip-kill:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:-4px;border-radius:var(--pr-t-border-radius-full)}.chip-kill:active{--components-chip-kill-disk-color: var(--palettes-900, var(--palettes-neutral-900))}}@layer mods{.chip.mod-S{--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.chip.mod-S .lucca-icon{--icon-size: .75rem}.chip.mod-unkillable .chip-kill{display:none}.chip.mod-clickable{cursor:pointer;text-decoration:none}.chip.is-disabled{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.chip.is-disabled .chip-kill{display:none}.chip:has(.chip-content:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}.chip.mod-product{--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}}\n"], dependencies: [{ kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: _LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue", "luOptionShowNull"] }, { kind: "directive", type: FilterPillDisplayerDirective, selector: "[luFilterPillDisplayer]" }, { kind: "directive", type: FilterPillLabelDirective, selector: "[luFilterPillLabel]" }, { kind: "component", type: ClearComponent, selector: "lu-clear", inputs: ["intl", "size", "disabled", "palette", "inverted"], outputs: ["onClear"], exportAs: ["luClearer"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: _PresentationDisplayDefaultDirective, selector: "[luPresentationDisplayDefault]" }, { kind: "component", type: IconComponent$1, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
633
+ ], viewQueries: [{ propertyName: "filterPillPanelAnchorRef", first: true, predicate: ["filterPillPanelAnchor"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *luOptionOutlet=\"valuesTpl(); value: value || []\" />\n\n@if (!filterPillMode) {\n\t@if (hasValue() && clearable && (disabled$ | async) === false) {\n\t\t<lu-clear class=\"multipleSelect-clear\" (onClear)=\"clearValue($event)\">{{ intl().clear }}</lu-clear>\n\t}\n\n\t<lu-icon icon=\"arrowChevronBottom\" class=\"multipleSelect-arrow\" />\n\t<lu-icon icon=\"searchMagnifyingGlass\" class=\"multipleSelect-searchIcon\" />\n}\n\n<ng-container #filterPillPanelAnchor />\n<ng-container *luFilterPillDisplayer>\n\t<div class=\"multipleSelect-displayer-filter\">\n\t\t@if (useSingleOptionDisplayer() && valueLength() === 1 && singleOptionForDisplay() !== undefined) {\n\t\t\t<div class=\"multipleSelect-pill-displayer-chip\">\n\t\t\t\t<ng-container *luOptionOutlet=\"displayerTpl(); value: singleOptionForDisplay()\" />\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-container>\n<ng-container *luFilterPillLabel=\"let label = label; let colon = colon\">\n\t@let minCount = useSingleOptionDisplayer() ? 1 : 0;\n\t@if (valueLength() > minCount) {\n\t\t<span class=\"multipleSelect-pill-displayer-label\">{{ filterPillLabelPluralValue() }}</span>\n\t} @else {\n\t\t{{ label }}{{ valueLength() === 1 ? colon : \"\" }}\n\t}\n</ng-container>\n@if (!ignorePresentation()) {\n\t<ng-container *luPresentationDisplayDefault>\n\t\t@for (v of value; track $index) {\n\t\t\t<ng-container *luOptionOutlet=\"displayerTpl(); value: v\" />\n\n\t\t\t@let separator = presentationSeparators()[$index];\n\n\t\t\t@if (separator) {\n\t\t\t\t<ng-container>{{ separator }}</ng-container>\n\t\t\t}\n\t\t} @empty {\n\t\t\t<span aria-hidden=\"true\" data-content-before=\"\u2013\"></span>\n\t\t}\n\t</ng-container>\n}\n", styles: ["@layer components{.multiSelect{--components-multiSelect-font: var(--pr-t-font-body-M);--components-multiSelect-padding: var(--pr-t-spacings-100);--components-multiSelect-gap: var(--pr-t-spacings-100);--components-multiSelect-background: var(--pr-t-color-input-background);--components-multiSelect-border-color: var(--pr-t-color-input-border);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon);--components-multiSelect-displayer-suffix-display: contents;display:flex;box-shadow:0 0 0 1px var(--components-multiSelect-border-color);background-color:var(--components-multiSelect-background);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);align-items:flex-end;gap:var(--components-multiSelect-gap);cursor:pointer}.multiSelect:hover{--components-multiSelect-border-color: var(--pr-t-color-input-border-hover)}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multipleSelect-displayer{display:flex;gap:var(--pr-t-spacings-50);flex-wrap:wrap;flex:1}.multipleSelect-displayer-suffix{display:var(--components-multiSelect-displayer-suffix-display);gap:var(--pr-t-spacings-50);flex:1;order:1}.multipleSelect-displayer-chip.chip{min-inline-size:0;--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}.multipleSelect-displayer-chip-value{max-inline-size:8.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multipleSelect-displayer-search{display:block;min-inline-size:2rem;inline-size:auto;flex:1;order:1;border:0;padding:0;outline:none;color:var(--pr-t-color-input-text);font:var(--components-multiSelect-font);background-color:transparent;cursor:pointer}.multipleSelect-displayer-search::placeholder{color:var(--components-multiSelect-placeholder)}.multipleSelect-displayer-label{font:var(--components-multiSelect-font)}.multipleSelect-clear{margin-block-end:var(--pr-t-spacings-50)}.multipleSelect-arrow,.multipleSelect-searchIcon{--icon-size: 1.5rem;color:var(--components-multiSelect-arrow-color);transition-property:transform;transition-duration:var(--commons-animations-durations-standard)}.multipleSelect-searchIcon{display:none}.multipleSelect-pill-displayer-chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multipleSelect-pill-displayer-label{font-weight:var(--pr-t-font-fontWeight-semibold)}.multiSelect-field-icon{order:1}}@layer mods{.multiSelect.mod-S{--components-multiSelect-font: var(--pr-t-font-body-S);--components-multiSelect-padding: var(--pr-t-spacings-75);--components-multiSelect-gap: var(--pr-t-spacings-75)}.multiSelect.mod-S .multipleSelect-arrow,.multiSelect.mod-S .multipleSelect-searchIcon{--icon-size: 1.25rem}.multiSelect.mod-S .multipleSelect-clear.clear,.multiSelect.mod-S .multipleSelect-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.multiSelect.mod-S .multipleSelect-displayer-chip.chip,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip){--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.multiSelect.mod-S .multipleSelect-displayer-chip.chip .lucca-icon,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip) .lucca-icon{--icon-size: .75rem}.multiSelect.mod-filterPill{--components-multiSelect-displayer-suffix-display: flex;flex-direction:column;align-items:stretch;box-shadow:none;padding:0;gap:0;inline-size:26.5rem;max-inline-size:calc(100vw - 2.5rem)}.multiSelect.mod-filterPill .multipleSelect-displayer{box-shadow:0 0 0 1px var(--components-multiSelect-border-color);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);z-index:1;position:relative;max-block-size:min(14rem,80vh);overflow:auto}.multiSelect.mod-filterPill .lu-picker-content{animation:none;box-shadow:none;border-radius:0;background-color:transparent;padding:var(--pr-t-spacings-50);margin:var(--pr-t-spacings-75) calc(var(--pr-t-spacings-100) * -1) calc(var(--pr-t-spacings-100) * -1)}.multiSelect.mod-filterPill .lu-picker-content lu-simple-select-default-option.pr-u-ellipsis{white-space:normal!important}.multiSelect.mod-filterPill:has(.multipleSelect-displayer-search:focus-visible){outline:none}.multiSelect.mod-filterPill .multipleSelect-displayer:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect.mod-filterPill.is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search:not(:focus),.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect:has(.multipleSelect-displayer-search[aria-invalid=true]){--components-multiSelect-border-color: var(--pr-t-color-input-border-critical);--components-multiSelect-background: var(--pr-t-color-input-background-critical);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder-critical)}.multiSelect:has(.multipleSelect-displayer-search:disabled){--components-multiSelect-background: var(--pr-t-color-input-background-disabled);--components-multiSelect-placeholder: var(--commons-disabled-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon-disabled);pointer-events:none}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip .chip-kill{display:none}.multiSelect:has([aria-expanded=true]) .multipleSelect-arrow{transform:rotate(180deg)}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow{display:none}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon{display:inline-flex;transform:none}}@layer components{.multipleSelect-displayer-filter{min-inline-size:0;display:flex;gap:.5ch}.multipleSelect-displayer-filter:empty{display:none}}@layer components{.clear{--components-clear-display: grid;--components-clear-size: 1rem;--components-clear-background: var(--palettes-800, var(--palettes-neutral-800));--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;display:var(--components-clear-display);grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";align-items:normal;flex-shrink:0;inline-size:var(--components-clear-size);block-size:var(--components-clear-size);border-radius:var(--pr-t-border-radius-full)}.clear:before,.clear:after{content:\"\";grid-area:main}.clear:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-clear-background)}.clear:after{-webkit-mask-image:var(--components-clear-background-image);mask-image:var(--components-clear-background-image);-webkit-mask-size:var(--components-clear-size);mask-size:var(--components-clear-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-clear-cross-color)}.clear:hover{--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background: var(--palettes-700, var(--palettes-neutral-700))}.clear:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:50%}.clear:active{--components-clear-background: var(--palettes-900, var(--palettes-neutral-900))}.clear .lucca-icon{display:none}}@layer mods{.clear.mod-S{--components-clear-size: .75rem;--icon-size: .75rem}.clear.mod-inverted{--components-clear-cross-color: var(--palettes-800, var(--palettes-neutral-800));--components-clear-background: var(--palettes-0, var(--palettes-neutral-0))}.clear.mod-inverted:hover{--components-clear-background: var(--palettes-50, var(--palettes-neutral-50))}.clear.mod-inverted:active{--components-clear-background: var(--palettes-100, var(--palettes-neutral-100))}.clear[disabled]{cursor:default;--components-clear-cross-color: var(--palettes-neutral-500)}.clear[disabled],.clear[disabled]:hover,.clear[disabled]:active{--components-clear-background: var(--palettes-neutral-300)}.clear[hidden],.filterPill[disabled] .clear,.filterPill:not(.is-filled) .clear,.textfield-input[disabled] .clear,.textfield-input:not(.is-filled) .clear{--components-clear-display: none}.multiSelect.is-selected:has(.multipleSelect-clear) .clear{--components-clear-display: grid}}@layer components{.chip{--components-chip-font: var(--pr-t-font-body-S);--components-chip-backgroundColor: var(--palettes-100, var(--palettes-neutral-100));--components-chip-color: var(--palettes-800, var(--pr-t-color-text));--components-chip-borderRadius: var(--pr-t-border-radius-default);--components-chip-kill-size: .75rem;--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-neutral-800));--components-chip-kill-cross-color: var(--palettes-text, var(--palettes-neutral-text));--components-chip-kill-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");--components-chip-fontSize: var(--pr-t-font-body-S-fontSize);--components-chip-lineHeight: var(--pr-t-font-body-S-lineHeight);background-color:var(--components-chip-backgroundColor);border:none;border-radius:var(--components-chip-borderRadius);color:var(--components-chip-color);display:inline-flex;align-items:center;position:relative;vertical-align:middle;padding-block:calc(var(--pr-t-spacings-50) / 2);padding-inline:var(--pr-t-spacings-100);font:var(--components-chip-font);max-inline-size:100%}.chip .lucca-icon{--icon-size: 1rem;margin-inline-end:var(--pr-t-spacings-50)}.chip-content{outline:none}.chip-kill{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";place-items:center;inline-size:var(--pr-t-spacings-300);block-size:var(--pr-t-spacings-300);margin:calc(var(--pr-t-spacings-75) * -1);margin-inline-start:var(--pr-t-spacings-25);flex-shrink:0;cursor:pointer}.chip-kill:before,.chip-kill:after{content:\"\";grid-area:main;inline-size:var(--components-chip-kill-size);block-size:var(--components-chip-kill-size)}.chip-kill:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-chip-kill-disk-color)}.chip-kill:after{-webkit-mask-image:var(--components-chip-kill-background-image);mask-image:var(--components-chip-kill-background-image);-webkit-mask-size:var(--components-chip-kill-size);mask-size:var(--components-chip-kill-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-chip-kill-cross-color)}.chip-kill:hover{--components-chip-kill-disk-color: var(--palettes-700, var(--palettes-neutral-700))}.chip-kill:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:-4px;border-radius:var(--pr-t-border-radius-full)}.chip-kill:active{--components-chip-kill-disk-color: var(--palettes-900, var(--palettes-neutral-900))}}@layer mods{.chip.mod-S{--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.chip.mod-S .lucca-icon{--icon-size: .75rem}.chip.mod-unkillable .chip-kill{display:none}.chip.mod-clickable{cursor:pointer;text-decoration:none}.chip.is-disabled{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.chip.is-disabled .chip-kill{display:none}.chip:has(.chip-content:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}.chip.mod-product{--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}}\n"], dependencies: [{ kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: _LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue", "luOptionShowNull"] }, { kind: "directive", type: FilterPillDisplayerDirective, selector: "[luFilterPillDisplayer]" }, { kind: "directive", type: FilterPillLabelDirective, selector: "[luFilterPillLabel]" }, { kind: "component", type: ClearComponent, selector: "lu-clear", inputs: ["intl", "size", "disabled", "palette", "inverted"], outputs: ["onClear"], exportAs: ["luClearer"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: _PresentationDisplayDefaultDirective, selector: "[luPresentationDisplayDefault]" }, { kind: "component", type: IconComponent$1, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
570
634
  }
571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectInputComponent, decorators: [{
635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectInputComponent, decorators: [{
572
636
  type: Component,
573
637
  args: [{ selector: 'lu-multi-select', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
574
638
  AsyncPipe,
@@ -577,7 +641,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
577
641
  FilterPillDisplayerDirective,
578
642
  FilterPillLabelDirective,
579
643
  ClearComponent,
580
- PresentationDisplayDirective,
581
644
  CommonModule,
582
645
  _PresentationDisplayDefaultDirective,
583
646
  IconComponent$1,
@@ -599,16 +662,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
599
662
  },
600
663
  ], host: {
601
664
  class: 'multiSelect',
602
- }, encapsulation: ViewEncapsulation.None, template: "<ng-container *luOptionOutlet=\"valuesTpl(); value: value || []\" />\n\n@if (!filterPillMode) {\n\t@if (hasValue() && clearable && (disabled$ | async) === false) {\n\t\t<lu-clear class=\"multipleSelect-clear\" (onClear)=\"clearValue($event)\">{{ intl().clear }}</lu-clear>\n\t}\n\n\t<lu-icon icon=\"arrowChevronBottom\" class=\"multipleSelect-arrow\" />\n\t<lu-icon icon=\"searchMagnifyingGlass\" class=\"multipleSelect-searchIcon\" />\n}\n\n<ng-container #filterPillPanelAnchor />\n<ng-container *luFilterPillDisplayer>\n\t<div class=\"multipleSelect-displayer-filter\">\n\t\t@if (useSingleOptionDisplayer() && valueLength() === 1) {\n\t\t\t<div class=\"multipleSelect-pill-displayer-chip\">\n\t\t\t\t<ng-container *luOptionOutlet=\"displayerTpl(); value: value[0]\" />\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-container>\n<ng-container *luFilterPillLabel=\"let label = label; let colon = colon\">\n\t@let minCount = useSingleOptionDisplayer() ? 1 : 0;\n\t@if (valueLength() > minCount) {\n\t\t<span class=\"multipleSelect-pill-displayer-label\">{{ valueLength() }}\u00A0{{ filterPillLabelPlural }}</span>\n\t} @else {\n\t\t{{ label }}\n\t\t@if (valueLength() === 1) {\n\t\t\t{{ colon }}\n\t\t}\n\t}\n</ng-container>\n@if (!ignorePresentation()) {\n\t<ng-container *luPresentationDisplayDefault>\n\t\t@for (v of value; track $index) {\n\t\t\t@if ($last) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"noComma; context: { $implicit: v }\" />\n\t\t\t} @else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"comma; context: { $implicit: v }\" />\n\t\t\t}\n\t\t} @empty {\n\t\t\t<span aria-hidden=\"true\" data-content-before=\"\u2013\"></span>\n\t\t}\n\t</ng-container>\n}\n\n<ng-template #comma let-value><ng-container *luOptionOutlet=\"displayerTpl(); value: value\" />, </ng-template>\n\n<ng-template #noComma let-value>\n\t<ng-container *luOptionOutlet=\"displayerTpl(); value: value\" />\n</ng-template>\n", styles: ["@layer components{.multiSelect{--components-multiSelect-font: var(--pr-t-font-body-M);--components-multiSelect-padding: var(--pr-t-spacings-100);--components-multiSelect-gap: var(--pr-t-spacings-100);--components-multiSelect-background: var(--pr-t-color-input-background);--components-multiSelect-border-color: var(--pr-t-color-input-border);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon);--components-multiSelect-displayer-suffix-display: contents;display:flex;box-shadow:0 0 0 1px var(--components-multiSelect-border-color);background-color:var(--components-multiSelect-background);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);align-items:flex-end;gap:var(--components-multiSelect-gap);cursor:pointer}.multiSelect:hover{--components-multiSelect-border-color: var(--pr-t-color-input-border-hover)}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multipleSelect-displayer{display:flex;gap:var(--pr-t-spacings-50);flex-wrap:wrap;flex:1}.multipleSelect-displayer-suffix{display:var(--components-multiSelect-displayer-suffix-display);gap:var(--pr-t-spacings-50);flex:1;order:1}.multipleSelect-displayer-chip.chip{min-inline-size:0;--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}.multipleSelect-displayer-chip-value{max-inline-size:8.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multipleSelect-displayer-search{display:block;min-inline-size:2rem;inline-size:auto;flex:1;order:1;border:0;padding:0;outline:none;color:var(--pr-t-color-input-text);font:var(--components-multiSelect-font);background-color:transparent;cursor:pointer}.multipleSelect-displayer-search::placeholder{color:var(--components-multiSelect-placeholder)}.multipleSelect-displayer-label{font:var(--components-multiSelect-font)}.multipleSelect-clear{margin-block-end:var(--pr-t-spacings-50)}.multipleSelect-arrow,.multipleSelect-searchIcon{--icon-size: 1.5rem;color:var(--components-multiSelect-arrow-color);transition-property:transform;transition-duration:var(--commons-animations-durations-standard)}.multipleSelect-searchIcon{display:none}.multipleSelect-pill-displayer-chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multipleSelect-pill-displayer-label{font-weight:var(--pr-t-font-fontWeight-semibold)}.multiSelect-field-icon{order:1}}@layer mods{.multiSelect.mod-S{--components-multiSelect-font: var(--pr-t-font-body-S);--components-multiSelect-padding: var(--pr-t-spacings-75);--components-multiSelect-gap: var(--pr-t-spacings-75)}.multiSelect.mod-S .multipleSelect-arrow,.multiSelect.mod-S .multipleSelect-searchIcon{--icon-size: 1.25rem}.multiSelect.mod-S .multipleSelect-clear.clear,.multiSelect.mod-S .multipleSelect-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.multiSelect.mod-S .multipleSelect-displayer-chip.chip,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip){--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.multiSelect.mod-S .multipleSelect-displayer-chip.chip .lucca-icon,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip) .lucca-icon{--icon-size: .75rem}.multiSelect.mod-filterPill{--components-multiSelect-displayer-suffix-display: flex;flex-direction:column;align-items:stretch;box-shadow:none;padding:0;gap:0;inline-size:26.5rem;max-inline-size:calc(100vw - 2.5rem)}.multiSelect.mod-filterPill .multipleSelect-displayer{box-shadow:0 0 0 1px var(--components-multiSelect-border-color);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);z-index:1;position:relative;max-block-size:min(14rem,80vh);overflow:auto}.multiSelect.mod-filterPill .lu-picker-content{animation:none;box-shadow:none;border-radius:0;background-color:transparent;padding:var(--pr-t-spacings-50);margin:var(--pr-t-spacings-75) calc(var(--pr-t-spacings-100) * -1) calc(var(--pr-t-spacings-100) * -1)}.multiSelect.mod-filterPill .lu-picker-content lu-simple-select-default-option.pr-u-ellipsis{white-space:normal!important}.multiSelect.mod-filterPill:has(.multipleSelect-displayer-search:focus-visible){outline:none}.multiSelect.mod-filterPill .multipleSelect-displayer:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect.mod-filterPill.is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search:not(:focus),.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect:has(.multipleSelect-displayer-search[aria-invalid=true]){--components-multiSelect-border-color: var(--pr-t-color-input-border-critical);--components-multiSelect-background: var(--pr-t-color-input-background-critical);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder-critical)}.multiSelect:has(.multipleSelect-displayer-search:disabled){--components-multiSelect-background: var(--commons-disabled-background);--components-multiSelect-placeholder: var(--commons-disabled-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon-disabled);pointer-events:none}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip .chip-kill{display:none}.multiSelect:has([aria-expanded=true]) .multipleSelect-arrow{transform:rotate(180deg)}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow{display:none}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon{display:inline-flex;transform:none}}@layer components{.multipleSelect-displayer-filter{min-inline-size:0;display:flex;gap:.5ch}.multipleSelect-displayer-filter:empty{display:none}}@layer components{.clear{--components-clear-display: grid;--components-clear-size: 1rem;--components-clear-background: var(--palettes-800, var(--palettes-neutral-800));--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;display:var(--components-clear-display);grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";align-items:normal;flex-shrink:0;inline-size:var(--components-clear-size);block-size:var(--components-clear-size);border-radius:var(--pr-t-border-radius-full)}.clear:before,.clear:after{content:\"\";grid-area:main}.clear:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-clear-background)}.clear:after{-webkit-mask-image:var(--components-clear-background-image);mask-image:var(--components-clear-background-image);-webkit-mask-size:var(--components-clear-size);mask-size:var(--components-clear-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-clear-cross-color)}.clear:hover{--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background: var(--palettes-700, var(--palettes-neutral-700))}.clear:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:50%}.clear:active{--components-clear-background: var(--palettes-900, var(--palettes-neutral-900))}.clear .lucca-icon{display:none}}@layer mods{.clear.mod-S{--components-clear-size: .75rem;--icon-size: .75rem}.clear.mod-inverted{--components-clear-cross-color: var(--palettes-800, var(--palettes-neutral-800));--components-clear-background: var(--palettes-0, var(--palettes-neutral-0))}.clear.mod-inverted:hover{--components-clear-background: var(--palettes-50, var(--palettes-neutral-50))}.clear.mod-inverted:active{--components-clear-background: var(--palettes-100, var(--palettes-neutral-100))}.clear[disabled]{cursor:default;--components-clear-cross-color: var(--palettes-neutral-500)}.clear[disabled],.clear[disabled]:hover,.clear[disabled]:active{--components-clear-background: var(--palettes-neutral-300)}.clear[hidden],.filterPill[disabled] .clear,.filterPill:not(.is-filled) .clear,.textfield-input[disabled] .clear,.textfield-input:not(.is-filled) .clear{--components-clear-display: none}.multiSelect.is-selected:has(.multipleSelect-clear) .clear{--components-clear-display: grid}}@layer components{.chip{--components-chip-font: var(--pr-t-font-body-S);--components-chip-backgroundColor: var(--palettes-100, var(--palettes-neutral-100));--components-chip-color: var(--palettes-800, var(--pr-t-color-text));--components-chip-borderRadius: var(--pr-t-border-radius-default);--components-chip-kill-size: .75rem;--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-neutral-800));--components-chip-kill-cross-color: var(--palettes-text, var(--palettes-neutral-text));--components-chip-kill-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");--components-chip-fontSize: var(--pr-t-font-body-S-fontSize);--components-chip-lineHeight: var(--pr-t-font-body-S-lineHeight);background-color:var(--components-chip-backgroundColor);border:none;border-radius:var(--components-chip-borderRadius);color:var(--components-chip-color);display:inline-flex;align-items:center;position:relative;vertical-align:middle;padding-block:calc(var(--pr-t-spacings-50) / 2);padding-inline:var(--pr-t-spacings-100);font:var(--components-chip-font);max-inline-size:100%}.chip .lucca-icon{--icon-size: 1rem;margin-inline-end:var(--pr-t-spacings-50)}.chip-content{outline:none}.chip-kill{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";place-items:center;inline-size:var(--pr-t-spacings-300);block-size:var(--pr-t-spacings-300);margin:calc(var(--pr-t-spacings-75) * -1);margin-inline-start:var(--pr-t-spacings-25);flex-shrink:0;cursor:pointer}.chip-kill:before,.chip-kill:after{content:\"\";grid-area:main;inline-size:var(--components-chip-kill-size);block-size:var(--components-chip-kill-size)}.chip-kill:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-chip-kill-disk-color)}.chip-kill:after{-webkit-mask-image:var(--components-chip-kill-background-image);mask-image:var(--components-chip-kill-background-image);-webkit-mask-size:var(--components-chip-kill-size);mask-size:var(--components-chip-kill-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-chip-kill-cross-color)}.chip-kill:hover{--components-chip-kill-disk-color: var(--palettes-700, var(--palettes-neutral-700))}.chip-kill:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:-4px;border-radius:var(--pr-t-border-radius-full)}.chip-kill:active{--components-chip-kill-disk-color: var(--palettes-900, var(--palettes-neutral-900))}}@layer mods{.chip.mod-S{--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.chip.mod-S .lucca-icon{--icon-size: .75rem}.chip.mod-unkillable .chip-kill{display:none}.chip.mod-clickable{cursor:pointer;text-decoration:none}.chip.is-disabled{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.chip.is-disabled .chip-kill{display:none}.chip:has(.chip-content:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}.chip.mod-product{--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}}\n"] }]
665
+ }, encapsulation: ViewEncapsulation.None, template: "<ng-container *luOptionOutlet=\"valuesTpl(); value: value || []\" />\n\n@if (!filterPillMode) {\n\t@if (hasValue() && clearable && (disabled$ | async) === false) {\n\t\t<lu-clear class=\"multipleSelect-clear\" (onClear)=\"clearValue($event)\">{{ intl().clear }}</lu-clear>\n\t}\n\n\t<lu-icon icon=\"arrowChevronBottom\" class=\"multipleSelect-arrow\" />\n\t<lu-icon icon=\"searchMagnifyingGlass\" class=\"multipleSelect-searchIcon\" />\n}\n\n<ng-container #filterPillPanelAnchor />\n<ng-container *luFilterPillDisplayer>\n\t<div class=\"multipleSelect-displayer-filter\">\n\t\t@if (useSingleOptionDisplayer() && valueLength() === 1 && singleOptionForDisplay() !== undefined) {\n\t\t\t<div class=\"multipleSelect-pill-displayer-chip\">\n\t\t\t\t<ng-container *luOptionOutlet=\"displayerTpl(); value: singleOptionForDisplay()\" />\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-container>\n<ng-container *luFilterPillLabel=\"let label = label; let colon = colon\">\n\t@let minCount = useSingleOptionDisplayer() ? 1 : 0;\n\t@if (valueLength() > minCount) {\n\t\t<span class=\"multipleSelect-pill-displayer-label\">{{ filterPillLabelPluralValue() }}</span>\n\t} @else {\n\t\t{{ label }}{{ valueLength() === 1 ? colon : \"\" }}\n\t}\n</ng-container>\n@if (!ignorePresentation()) {\n\t<ng-container *luPresentationDisplayDefault>\n\t\t@for (v of value; track $index) {\n\t\t\t<ng-container *luOptionOutlet=\"displayerTpl(); value: v\" />\n\n\t\t\t@let separator = presentationSeparators()[$index];\n\n\t\t\t@if (separator) {\n\t\t\t\t<ng-container>{{ separator }}</ng-container>\n\t\t\t}\n\t\t} @empty {\n\t\t\t<span aria-hidden=\"true\" data-content-before=\"\u2013\"></span>\n\t\t}\n\t</ng-container>\n}\n", styles: ["@layer components{.multiSelect{--components-multiSelect-font: var(--pr-t-font-body-M);--components-multiSelect-padding: var(--pr-t-spacings-100);--components-multiSelect-gap: var(--pr-t-spacings-100);--components-multiSelect-background: var(--pr-t-color-input-background);--components-multiSelect-border-color: var(--pr-t-color-input-border);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon);--components-multiSelect-displayer-suffix-display: contents;display:flex;box-shadow:0 0 0 1px var(--components-multiSelect-border-color);background-color:var(--components-multiSelect-background);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);align-items:flex-end;gap:var(--components-multiSelect-gap);cursor:pointer}.multiSelect:hover{--components-multiSelect-border-color: var(--pr-t-color-input-border-hover)}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multipleSelect-displayer{display:flex;gap:var(--pr-t-spacings-50);flex-wrap:wrap;flex:1}.multipleSelect-displayer-suffix{display:var(--components-multiSelect-displayer-suffix-display);gap:var(--pr-t-spacings-50);flex:1;order:1}.multipleSelect-displayer-chip.chip{min-inline-size:0;--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}.multipleSelect-displayer-chip-value{max-inline-size:8.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multipleSelect-displayer-search{display:block;min-inline-size:2rem;inline-size:auto;flex:1;order:1;border:0;padding:0;outline:none;color:var(--pr-t-color-input-text);font:var(--components-multiSelect-font);background-color:transparent;cursor:pointer}.multipleSelect-displayer-search::placeholder{color:var(--components-multiSelect-placeholder)}.multipleSelect-displayer-label{font:var(--components-multiSelect-font)}.multipleSelect-clear{margin-block-end:var(--pr-t-spacings-50)}.multipleSelect-arrow,.multipleSelect-searchIcon{--icon-size: 1.5rem;color:var(--components-multiSelect-arrow-color);transition-property:transform;transition-duration:var(--commons-animations-durations-standard)}.multipleSelect-searchIcon{display:none}.multipleSelect-pill-displayer-chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multipleSelect-pill-displayer-label{font-weight:var(--pr-t-font-fontWeight-semibold)}.multiSelect-field-icon{order:1}}@layer mods{.multiSelect.mod-S{--components-multiSelect-font: var(--pr-t-font-body-S);--components-multiSelect-padding: var(--pr-t-spacings-75);--components-multiSelect-gap: var(--pr-t-spacings-75)}.multiSelect.mod-S .multipleSelect-arrow,.multiSelect.mod-S .multipleSelect-searchIcon{--icon-size: 1.25rem}.multiSelect.mod-S .multipleSelect-clear.clear,.multiSelect.mod-S .multipleSelect-clear:not(.clear){--components-clear-size: .75rem;--icon-size: .75rem}.multiSelect.mod-S .multipleSelect-displayer-chip.chip,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip){--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.multiSelect.mod-S .multipleSelect-displayer-chip.chip .lucca-icon,.multiSelect.mod-S .multipleSelect-displayer-chip:not(.chip) .lucca-icon{--icon-size: .75rem}.multiSelect.mod-filterPill{--components-multiSelect-displayer-suffix-display: flex;flex-direction:column;align-items:stretch;box-shadow:none;padding:0;gap:0;inline-size:26.5rem;max-inline-size:calc(100vw - 2.5rem)}.multiSelect.mod-filterPill .multipleSelect-displayer{box-shadow:0 0 0 1px var(--components-multiSelect-border-color);border-radius:var(--pr-t-border-radius-input);padding:var(--components-multiSelect-padding);z-index:1;position:relative;max-block-size:min(14rem,80vh);overflow:auto}.multiSelect.mod-filterPill .lu-picker-content{animation:none;box-shadow:none;border-radius:0;background-color:transparent;padding:var(--pr-t-spacings-50);margin:var(--pr-t-spacings-75) calc(var(--pr-t-spacings-100) * -1) calc(var(--pr-t-spacings-100) * -1)}.multiSelect.mod-filterPill .lu-picker-content lu-simple-select-default-option.pr-u-ellipsis{white-space:normal!important}.multiSelect.mod-filterPill:has(.multipleSelect-displayer-search:focus-visible){outline:none}.multiSelect.mod-filterPill .multipleSelect-displayer:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect.mod-filterPill.is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search:not(:focus),.multiSelect:not(.mod-filterPill).is-selected .multipleSelect-displayer-search[readonly]{border:0;clip-path:rect(1px 1px 1px 1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.multiSelect:has(.multipleSelect-displayer-search:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.multiSelect:has(.multipleSelect-displayer-search[aria-invalid=true]){--components-multiSelect-border-color: var(--pr-t-color-input-border-critical);--components-multiSelect-background: var(--pr-t-color-input-background-critical);--components-multiSelect-placeholder: var(--pr-t-color-input-text-placeholder-critical)}.multiSelect:has(.multipleSelect-displayer-search:disabled){--components-multiSelect-background: var(--pr-t-color-input-background-disabled);--components-multiSelect-placeholder: var(--commons-disabled-placeholder);--components-multiSelect-arrow-color: var(--pr-t-color-input-icon-disabled);pointer-events:none}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.multiSelect:has(.multipleSelect-displayer-search:disabled) .multipleSelect-displayer-chip .chip-kill{display:none}.multiSelect:has([aria-expanded=true]) .multipleSelect-arrow{transform:rotate(180deg)}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-arrow{display:none}.multiSelect:not(.mod-noClueIcon):has(.multipleSelect-displayer-search:focus-visible):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon,.multiSelect:not(.mod-noClueIcon):has([aria-expanded=true]):not(:has(.multipleSelect-displayer-search:read-only)) .multipleSelect-searchIcon{display:inline-flex;transform:none}}@layer components{.multipleSelect-displayer-filter{min-inline-size:0;display:flex;gap:.5ch}.multipleSelect-displayer-filter:empty{display:none}}@layer components{.clear{--components-clear-display: grid;--components-clear-size: 1rem;--components-clear-background: var(--palettes-800, var(--palettes-neutral-800));--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;cursor:pointer;display:var(--components-clear-display);grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";align-items:normal;flex-shrink:0;inline-size:var(--components-clear-size);block-size:var(--components-clear-size);border-radius:var(--pr-t-border-radius-full)}.clear:before,.clear:after{content:\"\";grid-area:main}.clear:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-clear-background)}.clear:after{-webkit-mask-image:var(--components-clear-background-image);mask-image:var(--components-clear-background-image);-webkit-mask-size:var(--components-clear-size);mask-size:var(--components-clear-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-clear-cross-color)}.clear:hover{--components-clear-cross-color: var(--palettes-0, var(--palettes-neutral-0));--components-clear-background: var(--palettes-700, var(--palettes-neutral-700))}.clear:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px;border-radius:50%}.clear:active{--components-clear-background: var(--palettes-900, var(--palettes-neutral-900))}.clear .lucca-icon{display:none}}@layer mods{.clear.mod-S{--components-clear-size: .75rem;--icon-size: .75rem}.clear.mod-inverted{--components-clear-cross-color: var(--palettes-800, var(--palettes-neutral-800));--components-clear-background: var(--palettes-0, var(--palettes-neutral-0))}.clear.mod-inverted:hover{--components-clear-background: var(--palettes-50, var(--palettes-neutral-50))}.clear.mod-inverted:active{--components-clear-background: var(--palettes-100, var(--palettes-neutral-100))}.clear[disabled]{cursor:default;--components-clear-cross-color: var(--palettes-neutral-500)}.clear[disabled],.clear[disabled]:hover,.clear[disabled]:active{--components-clear-background: var(--palettes-neutral-300)}.clear[hidden],.filterPill[disabled] .clear,.filterPill:not(.is-filled) .clear,.textfield-input[disabled] .clear,.textfield-input:not(.is-filled) .clear{--components-clear-display: none}.multiSelect.is-selected:has(.multipleSelect-clear) .clear{--components-clear-display: grid}}@layer components{.chip{--components-chip-font: var(--pr-t-font-body-S);--components-chip-backgroundColor: var(--palettes-100, var(--palettes-neutral-100));--components-chip-color: var(--palettes-800, var(--pr-t-color-text));--components-chip-borderRadius: var(--pr-t-border-radius-default);--components-chip-kill-size: .75rem;--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-neutral-800));--components-chip-kill-cross-color: var(--palettes-text, var(--palettes-neutral-text));--components-chip-kill-background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='16' width='16' fill='none'%3E%3Cpath d='M5.80473 4.86192C5.54438 4.60157 5.12227 4.60157 4.86192 4.86192C4.60157 5.12227 4.60157 5.54438 4.86192 5.80473L7.05718 7.99999L4.86192 10.1953C4.60157 10.4556 4.60157 10.8777 4.86192 11.1381C5.12227 11.3984 5.54438 11.3984 5.80473 11.1381L7.99999 8.9428L10.1953 11.1381C10.4556 11.3984 10.8777 11.3984 11.1381 11.1381C11.3984 10.8777 11.3984 10.4556 11.1381 10.1953L8.9428 7.99999L11.1381 5.80473C11.3984 5.54438 11.3984 5.12227 11.1381 4.86192C10.8777 4.60157 10.4556 4.60157 10.1953 4.86192L7.99999 7.05718L5.80473 4.86192Z' fill='currentColor'/%3E%3C/svg%3E\");--components-chip-fontSize: var(--pr-t-font-body-S-fontSize);--components-chip-lineHeight: var(--pr-t-font-body-S-lineHeight);background-color:var(--components-chip-backgroundColor);border:none;border-radius:var(--components-chip-borderRadius);color:var(--components-chip-color);display:inline-flex;align-items:center;position:relative;vertical-align:middle;padding-block:calc(var(--pr-t-spacings-50) / 2);padding-inline:var(--pr-t-spacings-100);font:var(--components-chip-font);max-inline-size:100%}.chip .lucca-icon{--icon-size: 1rem;margin-inline-end:var(--pr-t-spacings-50)}.chip-content{outline:none}.chip-kill{padding:0;border:0;inline-size:100%;background-color:transparent;color:inherit;text-align:start;display:block;font:inherit;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:\"main\";place-items:center;inline-size:var(--pr-t-spacings-300);block-size:var(--pr-t-spacings-300);margin:calc(var(--pr-t-spacings-75) * -1);margin-inline-start:var(--pr-t-spacings-25);flex-shrink:0;cursor:pointer}.chip-kill:before,.chip-kill:after{content:\"\";grid-area:main;inline-size:var(--components-chip-kill-size);block-size:var(--components-chip-kill-size)}.chip-kill:before{border-radius:var(--pr-t-border-radius-full);background-color:var(--components-chip-kill-disk-color)}.chip-kill:after{-webkit-mask-image:var(--components-chip-kill-background-image);mask-image:var(--components-chip-kill-background-image);-webkit-mask-size:var(--components-chip-kill-size);mask-size:var(--components-chip-kill-size);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;background-color:var(--components-chip-kill-cross-color)}.chip-kill:hover{--components-chip-kill-disk-color: var(--palettes-700, var(--palettes-neutral-700))}.chip-kill:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:-4px;border-radius:var(--pr-t-border-radius-full)}.chip-kill:active{--components-chip-kill-disk-color: var(--palettes-900, var(--palettes-neutral-900))}}@layer mods{.chip.mod-S{--components-chip-font: var(--pr-t-font-body-XS);--components-chip-borderRadius: var(--pr-t-border-radius-small)}.chip.mod-S .lucca-icon{--icon-size: .75rem}.chip.mod-unkillable .chip-kill{display:none}.chip.mod-clickable{cursor:pointer;text-decoration:none}.chip.is-disabled{--components-chip-backgroundColor: var(--palettes-neutral-200);--components-chip-color: var(--pr-t-color-text-subtle)}.chip.is-disabled .chip-kill{display:none}.chip:has(.chip-content:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}.chip.mod-product{--components-chip-backgroundColor: var(--palettes-100, var(--palettes-product-100));--components-chip-kill-disk-color: var(--palettes-800, var(--palettes-product-800));--components-chip-color: var(--palettes-800, var(--palettes-product-800))}}\n"] }]
603
666
  }], propDecorators: { intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }], valuesTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "valuesTpl", required: false }] }, { type: i0.Output, args: ["valuesTplChange"] }], maxValuesShown: [{
604
667
  type: Input,
605
668
  args: [{ transform: numberAttribute }]
606
669
  }], keepSearchAfterSelection: [{
607
670
  type: Input,
608
671
  args: [{ transform: booleanAttribute }]
609
- }], filterPillLabelPlural: [{
610
- type: Input
611
- }], filterPillClass: [{
672
+ }], filterPillLabelPlural: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPillLabelPlural", required: false }] }], filterPillLabelPluralFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPillLabelPluralFn", required: false }] }], filterPillClass: [{
612
673
  type: HostBinding,
613
674
  args: ['class.mod-filterPill']
614
675
  }], filterPillPanelAnchorRef: [{ type: i0.ViewChild, args: ['filterPillPanelAnchor', { ...{ read: ViewContainerRef }, isSignal: true }] }], selectParentOnly: [{
@@ -750,10 +811,10 @@ class LuMultiSelectDisplayerInputDirective {
750
811
  this.select.clueChanged('');
751
812
  }
752
813
  }
753
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectDisplayerInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
754
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: LuMultiSelectDisplayerInputDirective, isStandalone: true, selector: "[luMultiSelectDisplayerInput]", host: { attributes: { "aria-haspopup": "listbox", "role": "combobox", "type": "text" }, listeners: { "input": "onInput()" }, properties: { "attr.aria-expanded": "this.panelOpen", "attr.aria-activedescendant": "this.activeDescendant", "attr.aria-controls": "this.controls", "disabled": "this.disabled", "placeholder": "this.placeholder", "readonly": "this.readonly" }, classAttribute: "multipleSelect-displayer-search" }, hostDirectives: [{ directive: i1$1.InputDirective }], ngImport: i0 }); }
814
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectDisplayerInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
815
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: LuMultiSelectDisplayerInputDirective, isStandalone: true, selector: "[luMultiSelectDisplayerInput]", host: { attributes: { "aria-haspopup": "listbox", "role": "combobox", "type": "text" }, listeners: { "input": "onInput()" }, properties: { "attr.aria-expanded": "this.panelOpen", "attr.aria-activedescendant": "this.activeDescendant", "attr.aria-controls": "this.controls", "disabled": "this.disabled", "placeholder": "this.placeholder", "readonly": "this.readonly" }, classAttribute: "multipleSelect-displayer-search" }, hostDirectives: [{ directive: i1.InputDirective }], ngImport: i0 }); }
755
816
  }
756
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectDisplayerInputDirective, decorators: [{
817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectDisplayerInputDirective, decorators: [{
757
818
  type: Directive,
758
819
  args: [{
759
820
  selector: '[luMultiSelectDisplayerInput]',
@@ -792,43 +853,47 @@ class LuMultiSelectAllDisplayerComponent {
792
853
  constructor() {
793
854
  this.selectAllContext = inject(MULTI_SELECT_WITH_SELECT_ALL_CONTEXT);
794
855
  this.select = inject(LuMultiSelectInputComponent);
795
- this.isFilled = computed(() => this.selectAllContext.mode() !== 'none', ...(ngDevMode ? [{ debugName: "isFilled" }] : /* istanbul ignore next */ []));
796
- this.isIncludeMode = computed(() => this.selectAllContext.mode() === 'include', ...(ngDevMode ? [{ debugName: "isIncludeMode" }] : /* istanbul ignore next */ []));
797
- this.displayerLabel = this.selectAllContext.displayerLabel;
856
+ this.isFilled = computed(() => this.selectAllContext.mode() !== 'none', /* @ts-ignore */
857
+ ...(ngDevMode ? [{ debugName: "isFilled" }] : /* istanbul ignore next */ []));
858
+ this.isIncludeMode = computed(() => this.selectAllContext.mode() === 'include', /* @ts-ignore */
859
+ ...(ngDevMode ? [{ debugName: "isIncludeMode" }] : /* istanbul ignore next */ []));
860
+ this.displayerLabelValue = this.selectAllContext.displayerLabelValue;
798
861
  this.displayerCount = this.selectAllContext.displayerCount;
799
- this.intl = input(...intlInputOptions(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS), ...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
862
+ this.displayedSingleOption = this.select.singleOptionForDisplay;
863
+ this.intl = input(...intlInputOptions(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS), /* @ts-ignore */
864
+ ...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
800
865
  this.disabled = toSignal(this.select.disabled$);
801
- this.inputElementRef = viewChild.required(LuMultiSelectDisplayerInputDirective, { read: ElementRef });
866
+ this.inputElementRef = viewChild.required(LuMultiSelectDisplayerInputDirective, { ...(ngDevMode ? { debugName: "inputElementRef" } : /* istanbul ignore next */ {}), read: ElementRef });
802
867
  }
803
868
  unselectOption(option, $event) {
804
869
  $event.stopPropagation();
805
870
  $event.preventDefault();
806
- this.select.updateValue(this.select.value.filter((o) => o !== option), true);
871
+ this.select.updateValue(this.isIncludeMode() ? this.select.value.filter((o) => o !== option) : [...this.select.value, option], true);
807
872
  setTimeout(() => {
808
873
  this.select.panelRef?.updatePosition();
809
874
  this.inputElementRef().nativeElement.focus();
810
875
  });
811
876
  }
812
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectAllDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
813
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: LuMultiSelectAllDisplayerComponent, isStandalone: true, selector: "lu-multi-select-all-displayer", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: LuMultiSelectDisplayerInputDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
877
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectAllDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
878
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LuMultiSelectAllDisplayerComponent, isStandalone: true, selector: "lu-multi-select-all-displayer", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: LuMultiSelectDisplayerInputDirective, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
814
879
  <div class="multipleSelect-displayer mod-filter" [class.is-filled]="isFilled()">
815
880
  <input type="text" luMultiSelectDisplayerInput />
816
881
 
817
882
  @if (displayerCount() !== null) {
818
883
  <div class="multipleSelect-displayer-filter">
819
- @if (displayerCount() === 1 && isIncludeMode()) {
820
- <lu-chip withEllipsis (kill)="unselectOption(select.value[0], $event)" class="multipleSelect-displayer-chip" [unkillable]="disabled()">
821
- <ng-template *luOptionOutlet="select.displayerTpl(); value: select.value[0]" />
884
+ @if (displayedSingleOption() !== undefined) {
885
+ <lu-chip withEllipsis (kill)="unselectOption(displayedSingleOption(), $event)" class="multipleSelect-displayer-chip" [unkillable]="disabled()">
886
+ <ng-template *luOptionOutlet="select.displayerTpl(); value: displayedSingleOption()" />
822
887
  </lu-chip>
823
888
  } @else {
824
- <lu-chip class="multipleSelect-displayer-chip" unkillable>{{ displayerCount() }} {{ displayerLabel() }}</lu-chip>
889
+ <lu-chip class="multipleSelect-displayer-chip" unkillable>{{ displayerLabelValue() }}</lu-chip>
825
890
  }
826
891
  </div>
827
892
  }
828
893
  </div>
829
894
  `, isInline: true, styles: [":host{display:block;inline-size:100%}\n"], dependencies: [{ kind: "directive", type: LuMultiSelectDisplayerInputDirective, selector: "[luMultiSelectDisplayerInput]" }, { kind: "directive", type: _LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue", "luOptionShowNull"] }, { kind: "component", type: ChipComponent, selector: "lu-chip, button[luChip], a[luChip]", inputs: ["intl", "withEllipsis", "unkillable", "palette", "disabled", "size", "state", "icon"], outputs: ["kill"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
830
895
  }
831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectAllDisplayerComponent, decorators: [{
896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectAllDisplayerComponent, decorators: [{
832
897
  type: Component,
833
898
  args: [{ selector: 'lu-multi-select-all-displayer', imports: [LuMultiSelectDisplayerInputDirective, _LuOptionOutletDirective, ChipComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
834
899
  <div class="multipleSelect-displayer mod-filter" [class.is-filled]="isFilled()">
@@ -836,12 +901,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
836
901
 
837
902
  @if (displayerCount() !== null) {
838
903
  <div class="multipleSelect-displayer-filter">
839
- @if (displayerCount() === 1 && isIncludeMode()) {
840
- <lu-chip withEllipsis (kill)="unselectOption(select.value[0], $event)" class="multipleSelect-displayer-chip" [unkillable]="disabled()">
841
- <ng-template *luOptionOutlet="select.displayerTpl(); value: select.value[0]" />
904
+ @if (displayedSingleOption() !== undefined) {
905
+ <lu-chip withEllipsis (kill)="unselectOption(displayedSingleOption(), $event)" class="multipleSelect-displayer-chip" [unkillable]="disabled()">
906
+ <ng-template *luOptionOutlet="select.displayerTpl(); value: displayedSingleOption()" />
842
907
  </lu-chip>
843
908
  } @else {
844
- <lu-chip class="multipleSelect-displayer-chip" unkillable>{{ displayerCount() }} {{ displayerLabel() }}</lu-chip>
909
+ <lu-chip class="multipleSelect-displayer-chip" unkillable>{{ displayerLabelValue() }}</lu-chip>
845
910
  }
846
911
  </div>
847
912
  }
@@ -855,8 +920,10 @@ class LuMultiSelectAllHeaderComponent {
855
920
  constructor() {
856
921
  this.selectAllContext = inject(MULTI_SELECT_WITH_SELECT_ALL_CONTEXT);
857
922
  this.intl = this.selectAllContext.intl;
858
- this.mixed = computed(() => this.selectAllContext.mode() === 'exclude' || this.selectAllContext.mode() === 'include', ...(ngDevMode ? [{ debugName: "mixed" }] : /* istanbul ignore next */ []));
859
- this.isSelected = computed(() => this.selectAllContext.mode() === 'all' || this.mixed(), ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
923
+ this.mixed = computed(() => this.selectAllContext.mode() === 'exclude' || this.selectAllContext.mode() === 'include', /* @ts-ignore */
924
+ ...(ngDevMode ? [{ debugName: "mixed" }] : /* istanbul ignore next */ []));
925
+ this.isSelected = computed(() => this.selectAllContext.mode() === 'all' || this.mixed(), /* @ts-ignore */
926
+ ...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
860
927
  this.#selectableItem = inject(_CoreSelectPanelElement);
861
928
  this.#elementRef = inject(ElementRef);
862
929
  this.#selectableItem.id.set(`multi-select-select-all`);
@@ -876,8 +943,8 @@ class LuMultiSelectAllHeaderComponent {
876
943
  this.selectAllContext.setSelectAll(!this.isSelected());
877
944
  });
878
945
  }
879
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectAllHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
880
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: LuMultiSelectAllHeaderComponent, isStandalone: true, selector: "lu-multi-select-all-header", hostDirectives: [{ directive: i1$2.ɵCoreSelectPanelElement }], ngImport: i0, template: `
946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectAllHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
947
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: LuMultiSelectAllHeaderComponent, isStandalone: true, selector: "lu-multi-select-all-header", hostDirectives: [{ directive: i1$1.ɵCoreSelectPanelElement }], ngImport: i0, template: `
881
948
  <div class="multiSelectAllDisplayer">
882
949
  <lu-form-field [label]="intl().selectAll">
883
950
  <lu-checkbox-input
@@ -891,7 +958,7 @@ class LuMultiSelectAllHeaderComponent {
891
958
  </div>
892
959
  `, isInline: true, styles: ["@layer components{:host{display:block;background-color:var(--palettes-neutral-0);border-block-end:1px solid var(--commons-border-200);padding-block:0 var(--pr-t-spacings-50);padding-inline:var(--components-options-item-padding-vertical);margin-block:0 var(--components-options-item-padding-vertical);margin-inline:calc(-1 * var(--pr-t-spacings-50));scroll-margin-block-start:var(--pr-t-spacings-50)}}@layer components{.multiSelectAllDisplayer{border-radius:var(--pr-t-border-radius-default);cursor:pointer}.multiSelectAllDisplayer ::ng-deep .formLabel{inline-size:100%;padding-block:var(--components-options-item-padding-vertical);padding-inline:0}}@layer mods{.multiSelectAllDisplayer:hover,:host-context(.optionItem.is-highlighted) .multiSelectAllDisplayer{background-color:var(--palettes-neutral-50)}.multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-50, var(--palettes-product-50))}.multiSelectAllDisplayer:has(.checkboxField-input:checked):hover,:host-context(.optionItem.is-highlighted) .multiSelectAllDisplayer:has(.checkboxField-input:checked){background-color:var(--palettes-100, var(--palettes-product-100))}}@layer components{.multiSelectAllDisplayer-checkbox{margin-block:var(--components-options-item-padding-vertical) 0;margin-inline:var(--components-options-item-padding-horizontal) 0}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxInputComponent, selector: "lu-checkbox-input", inputs: ["checklist", "mixed"] }, { kind: "component", type: FormFieldComponent, selector: "lu-form-field", inputs: ["intl", "label", "hiddenLabel", "rolePresentationLabel", "inline", "statusControl", "tooltip", "tag", "AI", "iconAItooltip", "iconAIalt", "width", "invalid", "inlineMessage", "errorInlineMessage", "inlineMessageState", "size", "extraDescribedBy", "layout", "counter", "presentation"], outputs: ["rolePresentationLabelChange", "layoutChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
893
960
  }
894
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectAllHeaderComponent, decorators: [{
961
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectAllHeaderComponent, decorators: [{
895
962
  type: Component,
896
963
  args: [{ selector: 'lu-multi-select-all-header', imports: [FormsModule, CheckboxInputComponent, FormFieldComponent], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [_CoreSelectPanelElement], template: `
897
964
  <div class="multiSelectAllDisplayer">
@@ -911,6 +978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
911
978
  class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {
912
979
  #mode;
913
980
  #values;
981
+ #options;
914
982
  // only show panel header when no clue && values not empty
915
983
  #showPanelHeader;
916
984
  #hasValue;
@@ -925,17 +993,45 @@ class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {
925
993
  super();
926
994
  this.select = inject(LuMultiSelectInputComponent);
927
995
  this.intl = this.select.intl;
928
- this.displayerLabel = input.required({ ...(ngDevMode ? { debugName: "displayerLabel" } : /* istanbul ignore next */ {}), alias: 'withSelectAllDisplayerLabel' });
929
- this.#mode = signal('none', ...(ngDevMode ? [{ debugName: "#mode" }] : /* istanbul ignore next */ []));
930
- this.#values = signal([], ...(ngDevMode ? [{ debugName: "#values" }] : /* istanbul ignore next */ []));
996
+ /**
997
+ * @deprecated use withSelectAllDisplayerLabelFn
998
+ */
999
+ this.displayerLabel = input(undefined, { ...(ngDevMode ? { debugName: "displayerLabel" } : /* istanbul ignore next */ {}), alias: 'withSelectAllDisplayerLabel' });
1000
+ this.displayerLabelFn = input(undefined, { ...(ngDevMode ? { debugName: "displayerLabelFn" } : /* istanbul ignore next */ {}), alias: 'withSelectAllDisplayerLabelFn' });
1001
+ this.displayerLabelValue = computed(() => {
1002
+ const label = this.displayerLabelFn();
1003
+ const count = this.displayerCount();
1004
+ if (label) {
1005
+ return label(count);
1006
+ }
1007
+ return `${count} ${this.displayerLabel()}`;
1008
+ }, /* @ts-ignore */
1009
+ ...(ngDevMode ? [{ debugName: "displayerLabelValue" }] : /* istanbul ignore next */ []));
1010
+ this.#mode = signal('none', /* @ts-ignore */
1011
+ ...(ngDevMode ? [{ debugName: "#mode" }] : /* istanbul ignore next */ []));
1012
+ this.#values = signal([], /* @ts-ignore */
1013
+ ...(ngDevMode ? [{ debugName: "#values" }] : /* istanbul ignore next */ []));
931
1014
  this.mode = this.#mode.asReadonly();
932
1015
  this.values = this.#values.asReadonly();
933
1016
  this.totalCount = toSignal(inject(CORE_SELECT_API_TOTAL_COUNT_PROVIDER).totalCount$);
934
1017
  this.clueChange = toSignal(this.select.clueChange$);
1018
+ this.#options = toSignal(this.select.options$, { initialValue: [] });
1019
+ this.singleRemainingOption = computed(() => {
1020
+ const options = this.#options();
1021
+ const excludedValues = this.#values();
1022
+ if (this.#mode() !== 'exclude' || options.length !== this.totalCount() || options.length - excludedValues.length !== 1) {
1023
+ return undefined;
1024
+ }
1025
+ return options.find((option) => !excludedValues.some((excluded) => this.select.optionComparer(excluded, option)));
1026
+ }, /* @ts-ignore */
1027
+ ...(ngDevMode ? [{ debugName: "singleRemainingOption" }] : /* istanbul ignore next */ []));
935
1028
  // only show panel header when no clue && values not empty
936
- this.#showPanelHeader = computed(() => isNil(this.clueChange()) || (this.clueChange()?.length === 0 && this.totalCount() !== 0), ...(ngDevMode ? [{ debugName: "#showPanelHeader" }] : /* istanbul ignore next */ []));
937
- this.#hasValue = computed(() => this.mode() !== 'none', ...(ngDevMode ? [{ debugName: "#hasValue" }] : /* istanbul ignore next */ []));
938
- this.#valuesCount = computed(() => this.values().length, ...(ngDevMode ? [{ debugName: "#valuesCount" }] : /* istanbul ignore next */ []));
1029
+ this.#showPanelHeader = computed(() => isNil(this.clueChange()) || (this.clueChange()?.length === 0 && this.totalCount() !== 0), /* @ts-ignore */
1030
+ ...(ngDevMode ? [{ debugName: "#showPanelHeader" }] : /* istanbul ignore next */ []));
1031
+ this.#hasValue = computed(() => this.mode() !== 'none', /* @ts-ignore */
1032
+ ...(ngDevMode ? [{ debugName: "#hasValue" }] : /* istanbul ignore next */ []));
1033
+ this.#valuesCount = computed(() => this.values().length, /* @ts-ignore */
1034
+ ...(ngDevMode ? [{ debugName: "#valuesCount" }] : /* istanbul ignore next */ []));
939
1035
  this.displayerCount = computed(() => {
940
1036
  switch (this.mode()) {
941
1037
  case 'all':
@@ -947,11 +1043,13 @@ class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {
947
1043
  case 'none':
948
1044
  return null;
949
1045
  }
950
- }, ...(ngDevMode ? [{ debugName: "displayerCount" }] : /* istanbul ignore next */ []));
1046
+ }, /* @ts-ignore */
1047
+ ...(ngDevMode ? [{ debugName: "displayerCount" }] : /* istanbul ignore next */ []));
951
1048
  this.#selectAllValue = computed(() => {
952
1049
  const mode = this.#mode();
953
1050
  return mode === 'all' || mode === 'none' ? { mode } : { mode, values: this.#values() };
954
- }, ...(ngDevMode ? [{ debugName: "#selectAllValue" }] : /* istanbul ignore next */ []));
1051
+ }, /* @ts-ignore */
1052
+ ...(ngDevMode ? [{ debugName: "#selectAllValue" }] : /* istanbul ignore next */ []));
955
1053
  // Keep the original registerOnChange / writeValue / clearValye methods
956
1054
  this.#selectRegisterOnChange = this.select.registerOnChange.bind(this.select);
957
1055
  this.#selectWriteValue = this.select.writeValue.bind(this.select);
@@ -970,8 +1068,12 @@ class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {
970
1068
  this.select.panelHeaderTpl.set(LuMultiSelectAllHeaderComponent);
971
1069
  this.select.valuesTpl.set(LuMultiSelectAllDisplayerComponent);
972
1070
  this.select.hasValue = () => this.#hasValue();
973
- this.select.isFilterPillEmpty = computed(() => !this.#hasValue(), ...(ngDevMode ? [{ debugName: "isFilterPillEmpty" }] : /* istanbul ignore next */ []));
974
- this.select.useSingleOptionDisplayer = computed(() => this.#mode() === 'include', ...(ngDevMode ? [{ debugName: "useSingleOptionDisplayer" }] : /* istanbul ignore next */ []));
1071
+ this.select.isFilterPillEmpty = computed(() => !this.#hasValue(), /* @ts-ignore */
1072
+ ...(ngDevMode ? [{ debugName: "isFilterPillEmpty" }] : /* istanbul ignore next */ []));
1073
+ this.select.useSingleOptionDisplayer = computed(() => this.#mode() === 'include' || this.singleRemainingOption() !== undefined, /* @ts-ignore */
1074
+ ...(ngDevMode ? [{ debugName: "useSingleOptionDisplayer" }] : /* istanbul ignore next */ []));
1075
+ this.select.singleOptionForDisplay = computed(() => (this.#mode() === 'include' && this.#valuesCount() === 1 ? this.select.valueSignal()?.[0] : this.singleRemainingOption()), /* @ts-ignore */
1076
+ ...(ngDevMode ? [{ debugName: "singleOptionForDisplay" }] : /* istanbul ignore next */ []));
975
1077
  this.select.valueLength = this.displayerCount;
976
1078
  }
977
1079
  setSelectAll(selectAll) {
@@ -1065,8 +1167,8 @@ class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {
1065
1167
  // No match, keep the same mode
1066
1168
  return fromMode;
1067
1169
  }
1068
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectWithSelectAllDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1069
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: LuMultiSelectWithSelectAllDirective, isStandalone: true, selector: "lu-multi-select[withSelectAll]", inputs: { displayerLabel: { classPropertyName: "displayerLabel", publicName: "withSelectAllDisplayerLabel", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
1170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectWithSelectAllDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1171
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: LuMultiSelectWithSelectAllDirective, isStandalone: true, selector: "lu-multi-select[withSelectAll]", inputs: { displayerLabel: { classPropertyName: "displayerLabel", publicName: "withSelectAllDisplayerLabel", isSignal: true, isRequired: false, transformFunction: null }, displayerLabelFn: { classPropertyName: "displayerLabelFn", publicName: "withSelectAllDisplayerLabelFn", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
1070
1172
  {
1071
1173
  provide: _IsSelectedStrategy,
1072
1174
  useExisting: forwardRef(() => LuMultiSelectWithSelectAllDirective),
@@ -1077,7 +1179,7 @@ class LuMultiSelectWithSelectAllDirective extends _IsSelectedStrategy {
1077
1179
  },
1078
1180
  ], usesInheritance: true, ngImport: i0 }); }
1079
1181
  }
1080
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectWithSelectAllDirective, decorators: [{
1182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectWithSelectAllDirective, decorators: [{
1081
1183
  type: Directive,
1082
1184
  args: [{
1083
1185
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -1093,14 +1195,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
1093
1195
  },
1094
1196
  ],
1095
1197
  }]
1096
- }], ctorParameters: () => [], propDecorators: { displayerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "withSelectAllDisplayerLabel", required: true }] }] } });
1198
+ }], ctorParameters: () => [], propDecorators: { displayerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "withSelectAllDisplayerLabel", required: false }] }], displayerLabelFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "withSelectAllDisplayerLabelFn", required: false }] }] } });
1097
1199
 
1098
1200
  class LuMultiSelectContentDisplayerComponent {
1099
1201
  constructor() {
1100
1202
  this.select = inject(LuMultiSelectInputComponent);
1101
1203
  }
1102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectContentDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: LuMultiSelectContentDisplayerComponent, isStandalone: true, selector: "lu-multi-select-content-displayer", ngImport: i0, template: `
1204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectContentDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: LuMultiSelectContentDisplayerComponent, isStandalone: true, selector: "lu-multi-select-content-displayer", ngImport: i0, template: `
1104
1206
  <div class="multipleSelect-displayer mod-filter">
1105
1207
  <input type="text" autocomplete="off" #inputElement luMultiSelectDisplayerInput />
1106
1208
  <div class="multipleSelect-displayer-filter">
@@ -1109,7 +1211,7 @@ class LuMultiSelectContentDisplayerComponent {
1109
1211
  </div>
1110
1212
  `, isInline: true, styles: ["@layer components{:host{display:block;inline-size:100%}}\n"], dependencies: [{ kind: "directive", type: LuMultiSelectDisplayerInputDirective, selector: "[luMultiSelectDisplayerInput]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1111
1213
  }
1112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectContentDisplayerComponent, decorators: [{
1214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectContentDisplayerComponent, decorators: [{
1113
1215
  type: Component,
1114
1216
  args: [{ selector: 'lu-multi-select-content-displayer', imports: [LuMultiSelectDisplayerInputDirective], template: `
1115
1217
  <div class="multipleSelect-displayer mod-filter">
@@ -1149,8 +1251,8 @@ class LuMultiSelectCounterDisplayerComponent {
1149
1251
  this.inputElementRef.nativeElement.value = '';
1150
1252
  });
1151
1253
  }
1152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectCounterDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: LuMultiSelectCounterDisplayerComponent, isStandalone: true, selector: "lu-multi-select-counter-displayer", inputs: { selected: "selected", label: "label" }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: `
1254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectCounterDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1255
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LuMultiSelectCounterDisplayerComponent, isStandalone: true, selector: "lu-multi-select-counter-displayer", inputs: { selected: "selected", label: "label" }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: `
1154
1256
  <div class="multipleSelect-displayer mod-filter" [class.is-filled]="(selectedOptions$ | async)?.length > 0">
1155
1257
  <input type="text" autocomplete="off" #inputElement luMultiSelectDisplayerInput />
1156
1258
  @if (selectedOptions$ | async; as selectedOptions) {
@@ -1168,7 +1270,7 @@ class LuMultiSelectCounterDisplayerComponent {
1168
1270
  </div>
1169
1271
  `, isInline: true, styles: ["@layer components{:host{display:block;inline-size:100%;min-inline-size:0}}\n"], dependencies: [{ kind: "ngmodule", type: LuTooltipModule }, { kind: "component", type: ChipComponent, selector: "lu-chip, button[luChip], a[luChip]", inputs: ["intl", "withEllipsis", "unkillable", "palette", "disabled", "size", "state", "icon"], outputs: ["kill"] }, { kind: "directive", type: _LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue", "luOptionShowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: LuMultiSelectDisplayerInputDirective, selector: "[luMultiSelectDisplayerInput]" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1170
1272
  }
1171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectCounterDisplayerComponent, decorators: [{
1273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectCounterDisplayerComponent, decorators: [{
1172
1274
  type: Component,
1173
1275
  args: [{ selector: 'lu-multi-select-counter-displayer', imports: [AsyncPipe, LuTooltipModule, ChipComponent, _LuOptionOutletDirective, FormsModule, LuMultiSelectDisplayerInputDirective], template: `
1174
1276
  <div class="multipleSelect-displayer mod-filter" [class.is-filled]="(selectedOptions$ | async)?.length > 0">
@@ -1201,7 +1303,8 @@ let nextID = 0;
1201
1303
  class LuMultiSelectDefaultDisplayerComponent {
1202
1304
  constructor() {
1203
1305
  this.select = inject(LuMultiSelectInputComponent);
1204
- this.intl = input(...intlInputOptions(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS), ...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
1306
+ this.intl = input(...intlInputOptions(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS), /* @ts-ignore */
1307
+ ...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
1205
1308
  this.valueID = `value-${++nextID}`;
1206
1309
  this.destroyRef = inject(DestroyRef);
1207
1310
  this.context = inject(LU_OPTION_CONTEXT);
@@ -1257,8 +1360,8 @@ class LuMultiSelectDefaultDisplayerComponent {
1257
1360
  this.inputElementRef.nativeElement.value = '';
1258
1361
  });
1259
1362
  }
1260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectDefaultDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: LuMultiSelectDefaultDisplayerComponent, isStandalone: true, selector: "lu-multi-select-default-displayer", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: `
1363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectDefaultDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: LuMultiSelectDefaultDisplayerComponent, isStandalone: true, selector: "lu-multi-select-default-displayer", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: `
1262
1365
  <div class="multipleSelect-displayer">
1263
1366
  <div class="multipleSelect-displayer-suffix">
1264
1367
  <input [attr.aria-labelledby]="valueID" autocomplete="off" #inputElement (keydown.backspace)="inputBackspace()" (keydown.space)="inputSpace($event)" luMultiSelectDisplayerInput />
@@ -1286,7 +1389,7 @@ class LuMultiSelectDefaultDisplayerComponent {
1286
1389
  </div>
1287
1390
  `, isInline: true, styles: ["@layer components{:host{display:block;inline-size:100%;min-inline-size:0}}\n"], dependencies: [{ kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: _LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue", "luOptionShowNull"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: LuMultiSelectDisplayerInputDirective, selector: "[luMultiSelectDisplayerInput]" }, { kind: "component", type: ChipComponent, selector: "lu-chip, button[luChip], a[luChip]", inputs: ["intl", "withEllipsis", "unkillable", "palette", "disabled", "size", "state", "icon"], outputs: ["kill"] }, { kind: "component", type: IconComponent$1, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1288
1391
  }
1289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiSelectDefaultDisplayerComponent, decorators: [{
1392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiSelectDefaultDisplayerComponent, decorators: [{
1290
1393
  type: Component,
1291
1394
  args: [{ selector: 'lu-multi-select-default-displayer', imports: [AsyncPipe, LuTooltipModule, _LuOptionOutletDirective, FormsModule, LuMultiSelectDisplayerInputDirective, ChipComponent, IconComponent$1], template: `
1292
1395
  <div class="multipleSelect-displayer">
@@ -1330,10 +1433,10 @@ class LuMultiDisplayerDirective {
1330
1433
  static ngTemplateContextGuard(_dir, _ctx) {
1331
1434
  return true;
1332
1435
  }
1333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiDisplayerDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1334
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: LuMultiDisplayerDirective, isStandalone: true, selector: "[luMultiDisplayer]", inputs: { select: ["luMultiDisplayerSelect", "select"] }, ngImport: i0 }); }
1436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiDisplayerDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1437
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: LuMultiDisplayerDirective, isStandalone: true, selector: "[luMultiDisplayer]", inputs: { select: ["luMultiDisplayerSelect", "select"] }, ngImport: i0 }); }
1335
1438
  }
1336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuMultiDisplayerDirective, decorators: [{
1439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: LuMultiDisplayerDirective, decorators: [{
1337
1440
  type: Directive,
1338
1441
  args: [{
1339
1442
  selector: '[luMultiDisplayer]',
@@ -1343,38 +1446,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
1343
1446
  args: ['luMultiDisplayerSelect']
1344
1447
  }] } });
1345
1448
 
1346
- function selectionToQueryParams(key, value, selector) {
1347
- if (value.mode === 'all' || value.mode === 'none') {
1348
- return {};
1349
- }
1350
- return { [value.mode === 'include' ? key : `-${key}`]: value.values.map(selector).join(',') };
1351
- }
1352
- /**
1353
- * Transforms a selection from withSelectAll, the complete list of options and a getKey function to a list of options.
1354
- *
1355
- * @example
1356
- * ```ts
1357
- * const selection = { mode: 'exclude', values: [{ id: 1, name: 'foo' }] };
1358
- * const allOptions = [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }, { id: 3, name: 'baz' }];
1359
- *
1360
- * const selectedOptions = selectionToOptions(selection, allOptions, (o) => o.id);
1361
- * ```
1362
- */
1363
- function selectionToOptions(selection, options, getKeyFn) {
1364
- switch (selection.mode) {
1365
- case 'include':
1366
- return selection.values;
1367
- case 'exclude': {
1368
- const excludedKeys = new Set(selection.values.map(getKeyFn));
1369
- return options.filter((o) => !excludedKeys.has(getKeyFn(o)));
1370
- }
1371
- case 'all':
1372
- return options;
1373
- case 'none':
1374
- return [];
1375
- }
1376
- }
1377
-
1378
1449
  const required = (control) => {
1379
1450
  if (!control.value || control.value.mode === 'none') {
1380
1451
  return { required: true };
@@ -1389,5 +1460,5 @@ const LuMultiSelectionValidators = {
1389
1460
  * Generated bundle index. Do not edit.
1390
1461
  */
1391
1462
 
1392
- export { LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS, LU_MULTI_SELECT_TRANSLATIONS, LuMultiDisplayerDirective, LuMultiSelectContentDisplayerComponent, LuMultiSelectCounterDisplayerComponent, LuMultiSelectDefaultDisplayerComponent, LuMultiSelectDisplayerInputDirective, LuMultiSelectInputComponent, LuMultiSelectWithSelectAllDirective, LuMultiSelectionValidators, luMultiSelectDisplayerTranslations, luMultiSelectTranslations, selectionToOptions, selectionToQueryParams };
1463
+ export { LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS, LU_MULTI_SELECT_TRANSLATIONS, LuMultiDisplayerDirective, LuMultiSelectContentDisplayerComponent, LuMultiSelectCounterDisplayerComponent, LuMultiSelectDefaultDisplayerComponent, LuMultiSelectDisplayerInputDirective, LuMultiSelectInputComponent, LuMultiSelectWithSelectAllDirective, LuMultiSelectionValidators, listSeparators, luMultiSelectDisplayerTranslations, luMultiSelectTranslations, selectionToOptions, selectionToQueryParams };
1393
1464
  //# sourceMappingURL=lucca-front-ng-multi-select.mjs.map