@lucca-front/ng 21.0.0-rc.8 → 21.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +3 -3
  2. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-animations.mjs.map +1 -1
  4. package/fesm2022/lucca-front-ng-api.mjs +52 -52
  5. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  6. package/fesm2022/lucca-front-ng-app-layout.mjs +6 -6
  7. package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
  8. package/fesm2022/lucca-front-ng-box.mjs +9 -7
  9. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  10. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +11 -11
  11. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  12. package/fesm2022/lucca-front-ng-button.mjs +20 -16
  13. package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
  14. package/fesm2022/lucca-front-ng-callout.mjs +72 -72
  15. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  16. package/fesm2022/lucca-front-ng-chip.mjs +15 -15
  17. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  18. package/fesm2022/lucca-front-ng-clear.mjs +10 -10
  19. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  20. package/fesm2022/lucca-front-ng-code.mjs +5 -5
  21. package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
  22. package/fesm2022/lucca-front-ng-comment.mjs +31 -31
  23. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  24. package/fesm2022/lucca-front-ng-container.mjs +8 -8
  25. package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
  26. package/fesm2022/lucca-front-ng-core-select-api.mjs +14 -14
  27. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  28. package/fesm2022/lucca-front-ng-core-select-department.mjs +16 -16
  29. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  30. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +16 -16
  31. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  32. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +10 -10
  33. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  34. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +7 -7
  35. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  36. package/fesm2022/lucca-front-ng-core-select-user.mjs +38 -38
  37. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  38. package/fesm2022/lucca-front-ng-core-select.mjs +90 -89
  39. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  40. package/fesm2022/lucca-front-ng-core.mjs +36 -19
  41. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  42. package/fesm2022/lucca-front-ng-data-table.mjs +88 -88
  43. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  44. package/fesm2022/lucca-front-ng-date.mjs +50 -50
  45. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  46. package/fesm2022/lucca-front-ng-date2.mjs +125 -132
  47. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  48. package/fesm2022/lucca-front-ng-department.mjs +30 -30
  49. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  50. package/fesm2022/lucca-front-ng-dialog.mjs +42 -42
  51. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  52. package/fesm2022/lucca-front-ng-divider.mjs +10 -10
  53. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  54. package/fesm2022/lucca-front-ng-dropdown.mjs +47 -47
  55. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  56. package/fesm2022/lucca-front-ng-empty-state.mjs +27 -27
  57. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  58. package/fesm2022/lucca-front-ng-establishment.mjs +52 -52
  59. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  60. package/fesm2022/lucca-front-ng-fancy-box.mjs +12 -12
  61. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  62. package/fesm2022/lucca-front-ng-file-upload.mjs +56 -56
  63. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  64. package/fesm2022/lucca-front-ng-filter-pills.mjs +52 -52
  65. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  66. package/fesm2022/lucca-front-ng-footer.mjs +11 -11
  67. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  68. package/fesm2022/lucca-front-ng-form-field.mjs +48 -50
  69. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  70. package/fesm2022/lucca-front-ng-form-header.mjs +5 -5
  71. package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
  72. package/fesm2022/lucca-front-ng-form.mjs +6 -6
  73. package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
  74. package/fesm2022/lucca-front-ng-formly.mjs +58 -58
  75. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  76. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +20 -20
  77. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  78. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +3 -3
  79. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
  80. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +26 -5
  81. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  82. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +57 -10
  83. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  84. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +91 -110
  85. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  86. package/fesm2022/lucca-front-ng-forms.mjs +139 -139
  87. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  88. package/fesm2022/lucca-front-ng-gauge.mjs +21 -21
  89. package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
  90. package/fesm2022/lucca-front-ng-grid.mjs +27 -27
  91. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  92. package/fesm2022/lucca-front-ng-highlight-data.mjs +19 -19
  93. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  94. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +12 -12
  95. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  96. package/fesm2022/lucca-front-ng-icon.mjs +10 -10
  97. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  98. package/fesm2022/lucca-front-ng-index-table.mjs +69 -69
  99. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-inline-message.mjs +8 -8
  101. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  102. package/fesm2022/lucca-front-ng-input.mjs +21 -21
  103. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  104. package/fesm2022/lucca-front-ng-link.mjs +12 -12
  105. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  106. package/fesm2022/lucca-front-ng-listbox.mjs +28 -28
  107. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  108. package/fesm2022/lucca-front-ng-listing.mjs +21 -21
  109. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  110. package/fesm2022/lucca-front-ng-loading.mjs +10 -10
  111. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  112. package/fesm2022/lucca-front-ng-main-layout.mjs +12 -12
  113. package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
  114. package/fesm2022/lucca-front-ng-mobile-push.mjs +4 -4
  115. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  116. package/fesm2022/lucca-front-ng-modal.mjs +23 -23
  117. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  118. package/fesm2022/lucca-front-ng-multi-select.mjs +68 -68
  119. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  120. package/fesm2022/lucca-front-ng-new-badge.mjs +5 -5
  121. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  122. package/fesm2022/lucca-front-ng-number-format.mjs +11 -11
  123. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  124. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  125. package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
  126. package/fesm2022/lucca-front-ng-numeric-badge.mjs +13 -13
  127. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  128. package/fesm2022/lucca-front-ng-option.mjs +161 -161
  129. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  130. package/fesm2022/lucca-front-ng-page-header.mjs +10 -10
  131. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  132. package/fesm2022/lucca-front-ng-pagination.mjs +10 -10
  133. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  134. package/fesm2022/lucca-front-ng-plg-push.mjs +7 -7
  135. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  136. package/fesm2022/lucca-front-ng-popover.mjs +25 -25
  137. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  138. package/fesm2022/lucca-front-ng-popover2.mjs +19 -23
  139. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  140. package/fesm2022/lucca-front-ng-popup.mjs +10 -10
  141. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  142. package/fesm2022/lucca-front-ng-progress-bar.mjs +9 -9
  143. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
  144. package/fesm2022/lucca-front-ng-read-more.mjs +14 -14
  145. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  146. package/fesm2022/lucca-front-ng-resource-card.mjs +120 -0
  147. package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -0
  148. package/fesm2022/lucca-front-ng-safe-content.mjs +13 -13
  149. package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
  150. package/fesm2022/lucca-front-ng-scroll-box.mjs +7 -7
  151. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  152. package/fesm2022/lucca-front-ng-scroll.mjs +9 -9
  153. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  154. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +18 -18
  155. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  156. package/fesm2022/lucca-front-ng-segmented-control.mjs +15 -15
  157. package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
  158. package/fesm2022/lucca-front-ng-select.mjs +16 -16
  159. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  160. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  161. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  162. package/fesm2022/lucca-front-ng-simple-select.mjs +22 -22
  163. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  164. package/fesm2022/lucca-front-ng-skeleton.mjs +67 -53
  165. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  166. package/fesm2022/lucca-front-ng-sortable-list.mjs +18 -18
  167. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
  168. package/fesm2022/lucca-front-ng-status-badge.mjs +9 -9
  169. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  170. package/fesm2022/lucca-front-ng-table-of-content.mjs +8 -8
  171. package/fesm2022/lucca-front-ng-table-of-content.mjs.map +1 -1
  172. package/fesm2022/lucca-front-ng-tag.mjs +14 -14
  173. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  174. package/fesm2022/lucca-front-ng-time.mjs +63 -75
  175. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  176. package/fesm2022/lucca-front-ng-title.mjs +10 -10
  177. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  178. package/fesm2022/lucca-front-ng-toast.mjs +14 -14
  179. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  180. package/fesm2022/lucca-front-ng-tooltip.mjs +39 -41
  181. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  182. package/fesm2022/lucca-front-ng-tree-select.mjs +20 -20
  183. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  184. package/fesm2022/lucca-front-ng-user-popover.mjs +22 -22
  185. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  186. package/fesm2022/lucca-front-ng-user.mjs +86 -86
  187. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  188. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +31 -31
  189. package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
  190. package/package.json +154 -162
  191. package/schematics/alignment-utilities/index.js +21 -0
  192. package/schematics/alignment-utilities/migration.spec.js +50 -0
  193. package/schematics/alignment-utilities/schema.json +23 -0
  194. package/schematics/collection.json +10 -0
  195. package/schematics/component-path/index.js +22 -0
  196. package/schematics/component-path/migration.spec.js +50 -0
  197. package/schematics/component-path/schema.json +23 -0
  198. package/schematics/lib/component-mapper.js +54 -0
  199. package/schematics/lib/css-mapper.js +9 -32
  200. package/schematics/lib/html-ast.js +1 -1
  201. package/schematics/lib/schematic.utils.js +29 -0
  202. package/schematics/palettes/index.js +4 -2
  203. package/src/components/cdk/_dragDrop.scss +1 -1
  204. package/{a11y/index.d.ts → types/lucca-front-ng-a11y.d.ts} +9 -8
  205. package/{box/index.d.ts → types/lucca-front-ng-box.d.ts} +2 -1
  206. package/{button/index.d.ts → types/lucca-front-ng-button.d.ts} +1 -1
  207. package/{callout/index.d.ts → types/lucca-front-ng-callout.d.ts} +2 -1
  208. package/{core-select/index.d.ts → types/lucca-front-ng-core-select.d.ts} +11 -10
  209. package/{core/index.d.ts → types/lucca-front-ng-core.d.ts} +17 -1
  210. package/{date2/index.d.ts → types/lucca-front-ng-date2.d.ts} +1 -1
  211. package/{department/index.d.ts → types/lucca-front-ng-department.d.ts} +9 -8
  212. package/{dialog/index.d.ts → types/lucca-front-ng-dialog.d.ts} +43 -42
  213. package/{dropdown/index.d.ts → types/lucca-front-ng-dropdown.d.ts} +2 -2
  214. package/{establishment/index.d.ts → types/lucca-front-ng-establishment.d.ts} +10 -9
  215. package/{form-field/index.d.ts → types/lucca-front-ng-form-field.d.ts} +11 -11
  216. package/{forms/phone-number-input/index.d.ts → types/lucca-front-ng-forms-phone-number-input.d.ts} +1 -2
  217. package/{forms/rich-text-input/formatters/markdown/index.d.ts → types/lucca-front-ng-forms-rich-text-input-formatters-markdown.d.ts} +11 -2
  218. package/types/lucca-front-ng-forms-rich-text-input-formatters-plain-text.d.ts +27 -0
  219. package/{forms/rich-text-input/index.d.ts → types/lucca-front-ng-forms-rich-text-input.d.ts} +36 -12
  220. package/{forms/index.d.ts → types/lucca-front-ng-forms.d.ts} +18 -17
  221. package/{loading/index.d.ts → types/lucca-front-ng-loading.d.ts} +4 -1
  222. package/{modal/index.d.ts → types/lucca-front-ng-modal.d.ts} +13 -12
  223. package/{multi-select/index.d.ts → types/lucca-front-ng-multi-select.d.ts} +32 -31
  224. package/{option/index.d.ts → types/lucca-front-ng-option.d.ts} +28 -27
  225. package/{popover2/index.d.ts → types/lucca-front-ng-popover2.d.ts} +22 -21
  226. package/{popup/index.d.ts → types/lucca-front-ng-popup.d.ts} +2 -1
  227. package/types/lucca-front-ng-resource-card.d.ts +33 -0
  228. package/{select/index.d.ts → types/lucca-front-ng-select.d.ts} +1 -1
  229. package/{simple-select/index.d.ts → types/lucca-front-ng-simple-select.d.ts} +16 -15
  230. package/{skeleton/index.d.ts → types/lucca-front-ng-skeleton.d.ts} +9 -1
  231. package/{time/index.d.ts → types/lucca-front-ng-time.d.ts} +16 -15
  232. package/{toast/index.d.ts → types/lucca-front-ng-toast.d.ts} +11 -10
  233. package/{user-popover/index.d.ts → types/lucca-front-ng-user-popover.d.ts} +23 -22
  234. package/{user/index.d.ts → types/lucca-front-ng-user.d.ts} +18 -17
  235. package/fesm2022/lucca-front-ng-segmentedControl.mjs +0 -6
  236. package/fesm2022/lucca-front-ng-segmentedControl.mjs.map +0 -1
  237. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs +0 -6
  238. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs.map +0 -1
  239. package/fesm2022/lucca-front-ng-statusBadge.mjs +0 -6
  240. package/fesm2022/lucca-front-ng-statusBadge.mjs.map +0 -1
  241. package/forms/rich-text-input/formatters/plain-text/index.d.ts +0 -15
  242. package/segmentedControl/index.d.ts +0 -1
  243. package/segmentedControlTabs/index.d.ts +0 -1
  244. package/statusBadge/index.d.ts +0 -1
  245. /package/{animations/index.d.ts → types/lucca-front-ng-animations.d.ts} +0 -0
  246. /package/{api/index.d.ts → types/lucca-front-ng-api.d.ts} +0 -0
  247. /package/{app-layout/index.d.ts → types/lucca-front-ng-app-layout.d.ts} +0 -0
  248. /package/{breadcrumbs/index.d.ts → types/lucca-front-ng-breadcrumbs.d.ts} +0 -0
  249. /package/{chip/index.d.ts → types/lucca-front-ng-chip.d.ts} +0 -0
  250. /package/{clear/index.d.ts → types/lucca-front-ng-clear.d.ts} +0 -0
  251. /package/{code/index.d.ts → types/lucca-front-ng-code.d.ts} +0 -0
  252. /package/{comment/index.d.ts → types/lucca-front-ng-comment.d.ts} +0 -0
  253. /package/{container/index.d.ts → types/lucca-front-ng-container.d.ts} +0 -0
  254. /package/{core-select/api/index.d.ts → types/lucca-front-ng-core-select-api.d.ts} +0 -0
  255. /package/{core-select/department/index.d.ts → types/lucca-front-ng-core-select-department.d.ts} +0 -0
  256. /package/{core-select/establishment/index.d.ts → types/lucca-front-ng-core-select-establishment.d.ts} +0 -0
  257. /package/{core-select/job-qualification/index.d.ts → types/lucca-front-ng-core-select-job-qualification.d.ts} +0 -0
  258. /package/{core-select/occupation-category/index.d.ts → types/lucca-front-ng-core-select-occupation-category.d.ts} +0 -0
  259. /package/{core-select/user/index.d.ts → types/lucca-front-ng-core-select-user.d.ts} +0 -0
  260. /package/{data-table/index.d.ts → types/lucca-front-ng-data-table.d.ts} +0 -0
  261. /package/{date/index.d.ts → types/lucca-front-ng-date.d.ts} +0 -0
  262. /package/{dialog/testing/index.d.ts → types/lucca-front-ng-dialog-testing.d.ts} +0 -0
  263. /package/{divider/index.d.ts → types/lucca-front-ng-divider.d.ts} +0 -0
  264. /package/{empty-state/index.d.ts → types/lucca-front-ng-empty-state.d.ts} +0 -0
  265. /package/{fancy-box/index.d.ts → types/lucca-front-ng-fancy-box.d.ts} +0 -0
  266. /package/{file-upload/index.d.ts → types/lucca-front-ng-file-upload.d.ts} +0 -0
  267. /package/{filter-pills/index.d.ts → types/lucca-front-ng-filter-pills.d.ts} +0 -0
  268. /package/{footer/index.d.ts → types/lucca-front-ng-footer.d.ts} +0 -0
  269. /package/{form-header/index.d.ts → types/lucca-front-ng-form-header.d.ts} +0 -0
  270. /package/{form/index.d.ts → types/lucca-front-ng-form.d.ts} +0 -0
  271. /package/{formly/index.d.ts → types/lucca-front-ng-formly.d.ts} +0 -0
  272. /package/{forms/rich-text-input/formatters/html/index.d.ts → types/lucca-front-ng-forms-rich-text-input-formatters-html.d.ts} +0 -0
  273. /package/{gauge/index.d.ts → types/lucca-front-ng-gauge.d.ts} +0 -0
  274. /package/{grid/index.d.ts → types/lucca-front-ng-grid.d.ts} +0 -0
  275. /package/{highlight-data/index.d.ts → types/lucca-front-ng-highlight-data.d.ts} +0 -0
  276. /package/{horizontal-navigation/index.d.ts → types/lucca-front-ng-horizontal-navigation.d.ts} +0 -0
  277. /package/{icon/index.d.ts → types/lucca-front-ng-icon.d.ts} +0 -0
  278. /package/{index-table/index.d.ts → types/lucca-front-ng-index-table.d.ts} +0 -0
  279. /package/{inline-message/index.d.ts → types/lucca-front-ng-inline-message.d.ts} +0 -0
  280. /package/{input/index.d.ts → types/lucca-front-ng-input.d.ts} +0 -0
  281. /package/{link/index.d.ts → types/lucca-front-ng-link.d.ts} +0 -0
  282. /package/{listbox/index.d.ts → types/lucca-front-ng-listbox.d.ts} +0 -0
  283. /package/{listing/index.d.ts → types/lucca-front-ng-listing.d.ts} +0 -0
  284. /package/{main-layout/index.d.ts → types/lucca-front-ng-main-layout.d.ts} +0 -0
  285. /package/{mobile-push/index.d.ts → types/lucca-front-ng-mobile-push.d.ts} +0 -0
  286. /package/{new-badge/index.d.ts → types/lucca-front-ng-new-badge.d.ts} +0 -0
  287. /package/{number-format/index.d.ts → types/lucca-front-ng-number-format.d.ts} +0 -0
  288. /package/{number/index.d.ts → types/lucca-front-ng-number.d.ts} +0 -0
  289. /package/{numeric-badge/index.d.ts → types/lucca-front-ng-numeric-badge.d.ts} +0 -0
  290. /package/{page-header/index.d.ts → types/lucca-front-ng-page-header.d.ts} +0 -0
  291. /package/{pagination/index.d.ts → types/lucca-front-ng-pagination.d.ts} +0 -0
  292. /package/{picker/index.d.ts → types/lucca-front-ng-picker.d.ts} +0 -0
  293. /package/{plg-push/index.d.ts → types/lucca-front-ng-plg-push.d.ts} +0 -0
  294. /package/{popover/index.d.ts → types/lucca-front-ng-popover.d.ts} +0 -0
  295. /package/{progress-bar/index.d.ts → types/lucca-front-ng-progress-bar.d.ts} +0 -0
  296. /package/{read-more/index.d.ts → types/lucca-front-ng-read-more.d.ts} +0 -0
  297. /package/{safe-content/index.d.ts → types/lucca-front-ng-safe-content.d.ts} +0 -0
  298. /package/{scroll-box/index.d.ts → types/lucca-front-ng-scroll-box.d.ts} +0 -0
  299. /package/{scroll/index.d.ts → types/lucca-front-ng-scroll.d.ts} +0 -0
  300. /package/{segmented-control-tabs/index.d.ts → types/lucca-front-ng-segmented-control-tabs.d.ts} +0 -0
  301. /package/{segmented-control/index.d.ts → types/lucca-front-ng-segmented-control.d.ts} +0 -0
  302. /package/{sidepanel/index.d.ts → types/lucca-front-ng-sidepanel.d.ts} +0 -0
  303. /package/{simple-select/api/index.d.ts → types/lucca-front-ng-simple-select-api.d.ts} +0 -0
  304. /package/{sortable-list/index.d.ts → types/lucca-front-ng-sortable-list.d.ts} +0 -0
  305. /package/{status-badge/index.d.ts → types/lucca-front-ng-status-badge.d.ts} +0 -0
  306. /package/{table-of-content/index.d.ts → types/lucca-front-ng-table-of-content.d.ts} +0 -0
  307. /package/{tag/index.d.ts → types/lucca-front-ng-tag.d.ts} +0 -0
  308. /package/{title/index.d.ts → types/lucca-front-ng-title.d.ts} +0 -0
  309. /package/{tooltip/index.d.ts → types/lucca-front-ng-tooltip.d.ts} +0 -0
  310. /package/{tree-select/index.d.ts → types/lucca-front-ng-tree-select.d.ts} +0 -0
  311. /package/{vertical-navigation/index.d.ts → types/lucca-front-ng-vertical-navigation.d.ts} +0 -0
  312. /package/{index.d.ts → types/lucca-front-ng.d.ts} +0 -0
@@ -31,10 +31,10 @@ class LuToastsService {
31
31
  const randomString = Math.random().toString(36).substring(2, 9);
32
32
  return `_${randomString}`;
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsService, providedIn: 'root' }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsService, providedIn: 'root' }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsService, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsService, decorators: [{
38
38
  type: Injectable,
39
39
  args: [{ providedIn: 'root' }]
40
40
  }] });
@@ -75,8 +75,8 @@ class LuToastsComponent {
75
75
  #toastsService;
76
76
  constructor() {
77
77
  this.#toastsService = inject(LuToastsService);
78
- this.bottom = input(false);
79
- this.sources = input();
78
+ this.bottom = input(false, ...(ngDevMode ? [{ debugName: "bottom" }] : []));
79
+ this.sources = input(...(ngDevMode ? [undefined, { debugName: "sources" }] : []));
80
80
  this.toasts$ = this.#toastsService.toasts$;
81
81
  this.intl = getIntl(LU_TOAST_TRANSLATIONS);
82
82
  this.iconClassByToastType = {
@@ -109,23 +109,23 @@ class LuToastsComponent {
109
109
  isOnlyDismissibleManually(toast) {
110
110
  return this.#toastsService.isOnlyDismissibleManually(toast);
111
111
  }
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LuToastsComponent, isStandalone: true, selector: "lu-toasts", inputs: { bottom: { classPropertyName: "bottom", publicName: "bottom", isSignal: true, isRequired: false, transformFunction: null }, sources: { classPropertyName: "sources", publicName: "sources", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n</div>\n", styles: ["@layer components{.toasts{--components-toasts-color: var(--pr-t-color-text-reverse);--components-toasts-top: var(--pr-t-spacings-300);--components-toasts-right: var(--pr-t-spacings-300);--components-toasts-left: var(--pr-t-spacings-300);--components-toasts-bottom: var(--pr-t-spacings-300);--components-toasts-margin-bottom: var(--pr-t-spacings-50);--components-toasts-maxwidth: 22.5rem;--components-toasts-inset: var(--components-toasts-top) var(--components-toasts-right) auto auto;--components-toasts-footerHeight: 4.5rem;--components-toasts-background: var(--palettes-neutral-800);--components-toasts-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);max-inline-size:var(--components-toasts-maxwidth);display:flex;flex-direction:column;align-items:flex-end;position:fixed;z-index:9999;inset:var(--components-toasts-inset)}html:has(.main-content .footer.mod-sticky,.dialog.mod-drawer .dialog-inside-footer) .toasts{--components-toasts-bottom: calc(var(--components-toasts-footerHeight) + var(--pr-t-spacings-300))}.toasts-item{display:flex;gap:var(--pr-t-spacings-50);color:var(--components-toasts-color);padding:var(--pr-t-spacings-50);margin-block-end:var(--components-toasts-margin-bottom);background-color:var(--palettes-neutral-800);animation-name:toastsItem;animation-duration:var(--commons-animations-durations-standard);animation-iteration-count:1;border-radius:var(--pr-t-border-radius-structure);overflow:hidden;position:relative;transform-origin:top}@keyframes toastsItem{0%{transform:translateY(var(--pr-t-spacings-200));opacity:0}to{opacity:1}}.toasts-item:hover .toasts-item-kill,.toasts-item:focus-within .toasts-item-kill{animation-play-state:paused}.toast-item-icon{background:var(--palettes-700, var(--palettes-product-700));border-radius:var(--pr-t-border-radius-default);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-50)}.toast-item-content{display:flex;flex-grow:1;flex-direction:column;gap:var(--pr-t-spacings-50);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-100) 0}.toast-item-content-description{margin:0}.toasts-item-kill.button,.toasts-item-kill:not(.button){align-self:flex-start;border-radius:var(--pr-t-border-radius-default);animation-name:timer;--components-button-padding: var(--pr-t-spacings-100);--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none;--components-button-color: var(--palettes-neutral-0)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.toasts-item-kill.button:disabled,.toasts-item-kill:not(.button):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-neutral-700)}@keyframes timer{}}@layer mods{.toasts.mod-bottom{--components-toasts-inset: auto var(--components-toasts-right) var(--components-toasts-bottom) auto}}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: LuToastsComponent, isStandalone: true, selector: "lu-toasts", inputs: { bottom: { classPropertyName: "bottom", publicName: "bottom", isSignal: true, isRequired: false, transformFunction: null }, sources: { classPropertyName: "sources", publicName: "sources", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n</div>\n", styles: ["@layer components{.toasts{--components-toasts-color: var(--pr-t-color-text-reverse);--components-toasts-top: var(--pr-t-spacings-300);--components-toasts-right: var(--pr-t-spacings-300);--components-toasts-left: var(--pr-t-spacings-300);--components-toasts-bottom: var(--pr-t-spacings-300);--components-toasts-margin-bottom: var(--pr-t-spacings-50);--components-toasts-maxwidth: 22.5rem;--components-toasts-inset: var(--components-toasts-top) var(--components-toasts-right) auto auto;--components-toasts-footerHeight: 4.5rem;--components-toasts-background: var(--palettes-neutral-800);--components-toasts-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);max-inline-size:var(--components-toasts-maxwidth);display:flex;flex-direction:column;align-items:flex-end;position:fixed;z-index:9999;inset:var(--components-toasts-inset)}html:has(.main-content .footer.mod-sticky,.dialog.mod-drawer .dialog-inside-footer) .toasts{--components-toasts-bottom: calc(var(--components-toasts-footerHeight) + var(--pr-t-spacings-300))}.toasts-item{display:flex;gap:var(--pr-t-spacings-50);color:var(--components-toasts-color);padding:var(--pr-t-spacings-50);margin-block-end:var(--components-toasts-margin-bottom);background-color:var(--palettes-neutral-800);animation-name:toastsItem;animation-duration:var(--commons-animations-durations-standard);animation-iteration-count:1;border-radius:var(--pr-t-border-radius-structure);overflow:hidden;position:relative;transform-origin:top}@keyframes toastsItem{0%{transform:translateY(var(--pr-t-spacings-200));opacity:0}to{opacity:1}}.toasts-item:hover .toasts-item-kill,.toasts-item:focus-within .toasts-item-kill{animation-play-state:paused}.toast-item-icon{background:var(--palettes-700, var(--palettes-product-700));border-radius:var(--pr-t-border-radius-default);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-50)}.toast-item-content{display:flex;flex-grow:1;flex-direction:column;gap:var(--pr-t-spacings-50);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-100) 0}.toast-item-content-description{margin:0}.toasts-item-kill.button,.toasts-item-kill:not(.button){align-self:flex-start;border-radius:var(--pr-t-border-radius-default);animation-name:timer;--components-button-padding: var(--pr-t-spacings-100);--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.toasts-item-kill.button:disabled,.toasts-item-kill:not(.button):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.toasts-item-kill.button,.toasts-item-kill:not(.button){--components-button-color: var(--palettes-neutral-0)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-neutral-700)}@keyframes timer{}}@layer mods{.toasts.mod-bottom{--components-toasts-inset: auto var(--components-toasts-right) var(--components-toasts-bottom) auto}}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
114
  }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsComponent, decorators: [{
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsComponent, decorators: [{
116
116
  type: Component,
117
- args: [{ selector: 'lu-toasts', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, PortalDirective], template: "<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n</div>\n", styles: ["@layer components{.toasts{--components-toasts-color: var(--pr-t-color-text-reverse);--components-toasts-top: var(--pr-t-spacings-300);--components-toasts-right: var(--pr-t-spacings-300);--components-toasts-left: var(--pr-t-spacings-300);--components-toasts-bottom: var(--pr-t-spacings-300);--components-toasts-margin-bottom: var(--pr-t-spacings-50);--components-toasts-maxwidth: 22.5rem;--components-toasts-inset: var(--components-toasts-top) var(--components-toasts-right) auto auto;--components-toasts-footerHeight: 4.5rem;--components-toasts-background: var(--palettes-neutral-800);--components-toasts-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);max-inline-size:var(--components-toasts-maxwidth);display:flex;flex-direction:column;align-items:flex-end;position:fixed;z-index:9999;inset:var(--components-toasts-inset)}html:has(.main-content .footer.mod-sticky,.dialog.mod-drawer .dialog-inside-footer) .toasts{--components-toasts-bottom: calc(var(--components-toasts-footerHeight) + var(--pr-t-spacings-300))}.toasts-item{display:flex;gap:var(--pr-t-spacings-50);color:var(--components-toasts-color);padding:var(--pr-t-spacings-50);margin-block-end:var(--components-toasts-margin-bottom);background-color:var(--palettes-neutral-800);animation-name:toastsItem;animation-duration:var(--commons-animations-durations-standard);animation-iteration-count:1;border-radius:var(--pr-t-border-radius-structure);overflow:hidden;position:relative;transform-origin:top}@keyframes toastsItem{0%{transform:translateY(var(--pr-t-spacings-200));opacity:0}to{opacity:1}}.toasts-item:hover .toasts-item-kill,.toasts-item:focus-within .toasts-item-kill{animation-play-state:paused}.toast-item-icon{background:var(--palettes-700, var(--palettes-product-700));border-radius:var(--pr-t-border-radius-default);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-50)}.toast-item-content{display:flex;flex-grow:1;flex-direction:column;gap:var(--pr-t-spacings-50);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-100) 0}.toast-item-content-description{margin:0}.toasts-item-kill.button,.toasts-item-kill:not(.button){align-self:flex-start;border-radius:var(--pr-t-border-radius-default);animation-name:timer;--components-button-padding: var(--pr-t-spacings-100);--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none;--components-button-color: var(--palettes-neutral-0)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.toasts-item-kill.button:disabled,.toasts-item-kill:not(.button):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-neutral-700)}@keyframes timer{}}@layer mods{.toasts.mod-bottom{--components-toasts-inset: auto var(--components-toasts-right) var(--components-toasts-bottom) auto}}\n"] }]
118
- }], ctorParameters: () => [] });
117
+ args: [{ selector: 'lu-toasts', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, PortalDirective], template: "<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n</div>\n", styles: ["@layer components{.toasts{--components-toasts-color: var(--pr-t-color-text-reverse);--components-toasts-top: var(--pr-t-spacings-300);--components-toasts-right: var(--pr-t-spacings-300);--components-toasts-left: var(--pr-t-spacings-300);--components-toasts-bottom: var(--pr-t-spacings-300);--components-toasts-margin-bottom: var(--pr-t-spacings-50);--components-toasts-maxwidth: 22.5rem;--components-toasts-inset: var(--components-toasts-top) var(--components-toasts-right) auto auto;--components-toasts-footerHeight: 4.5rem;--components-toasts-background: var(--palettes-neutral-800);--components-toasts-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);max-inline-size:var(--components-toasts-maxwidth);display:flex;flex-direction:column;align-items:flex-end;position:fixed;z-index:9999;inset:var(--components-toasts-inset)}html:has(.main-content .footer.mod-sticky,.dialog.mod-drawer .dialog-inside-footer) .toasts{--components-toasts-bottom: calc(var(--components-toasts-footerHeight) + var(--pr-t-spacings-300))}.toasts-item{display:flex;gap:var(--pr-t-spacings-50);color:var(--components-toasts-color);padding:var(--pr-t-spacings-50);margin-block-end:var(--components-toasts-margin-bottom);background-color:var(--palettes-neutral-800);animation-name:toastsItem;animation-duration:var(--commons-animations-durations-standard);animation-iteration-count:1;border-radius:var(--pr-t-border-radius-structure);overflow:hidden;position:relative;transform-origin:top}@keyframes toastsItem{0%{transform:translateY(var(--pr-t-spacings-200));opacity:0}to{opacity:1}}.toasts-item:hover .toasts-item-kill,.toasts-item:focus-within .toasts-item-kill{animation-play-state:paused}.toast-item-icon{background:var(--palettes-700, var(--palettes-product-700));border-radius:var(--pr-t-border-radius-default);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-50)}.toast-item-content{display:flex;flex-grow:1;flex-direction:column;gap:var(--pr-t-spacings-50);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-100) 0}.toast-item-content-description{margin:0}.toasts-item-kill.button,.toasts-item-kill:not(.button){align-self:flex-start;border-radius:var(--pr-t-border-radius-default);animation-name:timer;--components-button-padding: var(--pr-t-spacings-100);--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.toasts-item-kill.button:disabled,.toasts-item-kill:not(.button):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.toasts-item-kill.button,.toasts-item-kill:not(.button){--components-button-color: var(--palettes-neutral-0)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-neutral-700)}@keyframes timer{}}@layer mods{.toasts.mod-bottom{--components-toasts-inset: auto var(--components-toasts-right) var(--components-toasts-bottom) auto}}\n"] }]
118
+ }], ctorParameters: () => [], propDecorators: { bottom: [{ type: i0.Input, args: [{ isSignal: true, alias: "bottom", required: false }] }], sources: [{ type: i0.Input, args: [{ isSignal: true, alias: "sources", required: false }] }] } });
119
119
 
120
120
  /**
121
121
  * @deprecated use `LuToastsComponent` instead
122
122
  */
123
123
  class LuToastsModule {
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
125
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: LuToastsModule, imports: [LuToastsComponent], exports: [LuToastsComponent] }); }
126
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsModule }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
125
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: LuToastsModule, imports: [LuToastsComponent], exports: [LuToastsComponent] }); }
126
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsModule }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuToastsModule, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuToastsModule, decorators: [{
129
129
  type: NgModule,
130
130
  args: [{
131
131
  imports: [LuToastsComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-toast.mjs","sources":["../../../packages/ng/toast/toasts.model.ts","../../../packages/ng/toast/toasts.service.ts","../../../packages/ng/toast/translations.ts","../../../packages/ng/toast/toasts.translate.ts","../../../packages/ng/toast/toasts.component.ts","../../../packages/ng/toast/toasts.component.html","../../../packages/ng/toast/toasts.module.ts","../../../packages/ng/toast/public-api.ts","../../../packages/ng/toast/lucca-front-ng-toast.ts"],"sourcesContent":["import { PortalContent } from '@lucca-front/ng/core';\n\nexport type LuToastType = 'Info' | 'Error' | 'Success' | 'Warning';\n\nexport const defaultToastDuration = 5000;\n\nexport interface LuToastInput {\n\t/**\n\t * InnerHTML supported.\n\t */\n\tmessage: PortalContent;\n\t/**\n\t * Bold title.\n\t * InnerHTML not supported.\n\t */\n\ttitle?: string;\n\ttype?: LuToastType;\n\t/**\n\t * Auto kill default duration is 5000ms.\n\t * Null means manual dismiss only.\n\t */\n\tduration?: number | null;\n}\n\nexport interface LuToast extends LuToastInput {\n\tid: string;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultToastDuration, LuToast, LuToastInput } from './toasts.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuToastsService {\n\tpublic toasts$ = new BehaviorSubject<LuToast[]>([]);\n\n\tpublic addToast(toastInput: LuToastInput): LuToast {\n\t\tconst toast = this.getToast(toastInput);\n\n\t\tthis.toasts$.next([...this.toasts$.value, toast]);\n\n\t\treturn toast;\n\t}\n\n\tpublic removeToast(toast: LuToast): void {\n\t\tconst updatedToasts = this.toasts$.value.filter(({ id }) => id !== toast.id);\n\t\tthis.toasts$.next(updatedToasts);\n\t}\n\n\tpublic isOnlyDismissibleManually({ duration }: LuToastInput): boolean {\n\t\treturn duration === null;\n\t}\n\n\tprivate getToast(toastInput: LuToastInput): LuToast {\n\t\tconst id = this.generateId();\n\t\tconst duration = this.isOnlyDismissibleManually(toastInput) ? toastInput.duration : (toastInput.duration ?? defaultToastDuration);\n\n\t\treturn { ...toastInput, id, duration };\n\t}\n\n\tprivate generateId(): string {\n\t\tconst randomString = Math.random().toString(36).substring(2, 9);\n\t\treturn `_${randomString}`;\n\t}\n}\n","export const Translations = {\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TOAST_TRANSLATIONS = new InjectionToken('LuToastTranslations', {\n\tfactory: () => luToastTranslations,\n});\n\nexport interface ILuToastLabel {\n\tclose: string;\n}\n\nexport const luToastTranslations: LuTranslation<ILuToastLabel> = Translations;\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { getIntl, isNotNil, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { merge, Observable } from 'rxjs';\nimport { LuToast, LuToastInput, LuToastType } from './toasts.model';\nimport { LuToastsService } from './toasts.service';\nimport { LU_TOAST_TRANSLATIONS } from './toasts.translate';\n\n@Component({\n\tselector: 'lu-toasts',\n\ttemplateUrl: './toasts.component.html',\n\tstyleUrl: './toasts.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [AsyncPipe, PortalDirective],\n})\nexport class LuToastsComponent {\n\treadonly #toastsService = inject(LuToastsService);\n\n\treadonly bottom = input(false);\n\treadonly sources = input<Array<Observable<LuToastInput>>>();\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.sources], (sources, onCleanup) => {\n\t\t\tif (isNotNil(sources)) {\n\t\t\t\tconst sub = merge(...sources).subscribe((toast) => this.#toastsService.addToast(toast));\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\treadonly toasts$ = this.#toastsService.toasts$;\n\n\treadonly intl = getIntl(LU_TOAST_TRANSLATIONS);\n\n\treadonly iconClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: 'icon-signInfo',\n\t\tSuccess: 'icon-signSuccess',\n\t\tError: 'icon-signError',\n\t\tWarning: 'icon-signWarning',\n\t};\n\n\treadonly paletteClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: '',\n\t\tSuccess: 'palette-success',\n\t\tError: 'palette-error',\n\t\tWarning: 'palette-warning',\n\t};\n\n\tisStringPortalContent(message: PortalContent): message is string {\n\t\treturn typeof message === 'string';\n\t}\n\n\tremoveToast(toast: LuToast): void {\n\t\tthis.#toastsService.removeToast(toast);\n\t}\n\n\tisOnlyDismissibleManually(toast: LuToast): boolean {\n\t\treturn this.#toastsService.isOnlyDismissibleManually(toast);\n\t}\n}\n","<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n</div>\n","import { NgModule } from '@angular/core';\nimport { LuToastsComponent } from './toasts.component';\n\n/**\n * @deprecated use `LuToastsComponent` instead\n */\n@NgModule({\n\timports: [LuToastsComponent],\n\texports: [LuToastsComponent],\n})\nexport class LuToastsModule {}\n","/*\n * Public API Surface of toast\n */\n\nexport * from './toasts.component';\nexport * from './toasts.model';\nexport * from './toasts.module';\nexport * from './toasts.service';\nexport * from './toasts.translate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-toast.mjs","sources":["../../../packages/ng/toast/toasts.model.ts","../../../packages/ng/toast/toasts.service.ts","../../../packages/ng/toast/translations.ts","../../../packages/ng/toast/toasts.translate.ts","../../../packages/ng/toast/toasts.component.ts","../../../packages/ng/toast/toasts.component.html","../../../packages/ng/toast/toasts.module.ts","../../../packages/ng/toast/public-api.ts","../../../packages/ng/toast/lucca-front-ng-toast.ts"],"sourcesContent":["import { PortalContent } from '@lucca-front/ng/core';\n\nexport type LuToastType = 'Info' | 'Error' | 'Success' | 'Warning';\n\nexport const defaultToastDuration = 5000;\n\nexport interface LuToastInput {\n\t/**\n\t * InnerHTML supported.\n\t */\n\tmessage: PortalContent;\n\t/**\n\t * Bold title.\n\t * InnerHTML not supported.\n\t */\n\ttitle?: string;\n\ttype?: LuToastType;\n\t/**\n\t * Auto kill default duration is 5000ms.\n\t * Null means manual dismiss only.\n\t */\n\tduration?: number | null;\n}\n\nexport interface LuToast extends LuToastInput {\n\tid: string;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultToastDuration, LuToast, LuToastInput } from './toasts.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuToastsService {\n\tpublic toasts$ = new BehaviorSubject<LuToast[]>([]);\n\n\tpublic addToast(toastInput: LuToastInput): LuToast {\n\t\tconst toast = this.getToast(toastInput);\n\n\t\tthis.toasts$.next([...this.toasts$.value, toast]);\n\n\t\treturn toast;\n\t}\n\n\tpublic removeToast(toast: LuToast): void {\n\t\tconst updatedToasts = this.toasts$.value.filter(({ id }) => id !== toast.id);\n\t\tthis.toasts$.next(updatedToasts);\n\t}\n\n\tpublic isOnlyDismissibleManually({ duration }: LuToastInput): boolean {\n\t\treturn duration === null;\n\t}\n\n\tprivate getToast(toastInput: LuToastInput): LuToast {\n\t\tconst id = this.generateId();\n\t\tconst duration = this.isOnlyDismissibleManually(toastInput) ? toastInput.duration : (toastInput.duration ?? defaultToastDuration);\n\n\t\treturn { ...toastInput, id, duration };\n\t}\n\n\tprivate generateId(): string {\n\t\tconst randomString = Math.random().toString(36).substring(2, 9);\n\t\treturn `_${randomString}`;\n\t}\n}\n","export const Translations = {\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TOAST_TRANSLATIONS = new InjectionToken('LuToastTranslations', {\n\tfactory: () => luToastTranslations,\n});\n\nexport interface ILuToastLabel {\n\tclose: string;\n}\n\nexport const luToastTranslations: LuTranslation<ILuToastLabel> = Translations;\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { getIntl, isNotNil, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { merge, Observable } from 'rxjs';\nimport { LuToast, LuToastInput, LuToastType } from './toasts.model';\nimport { LuToastsService } from './toasts.service';\nimport { LU_TOAST_TRANSLATIONS } from './toasts.translate';\n\n@Component({\n\tselector: 'lu-toasts',\n\ttemplateUrl: './toasts.component.html',\n\tstyleUrl: './toasts.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [AsyncPipe, PortalDirective],\n})\nexport class LuToastsComponent {\n\treadonly #toastsService = inject(LuToastsService);\n\n\treadonly bottom = input(false);\n\treadonly sources = input<Array<Observable<LuToastInput>>>();\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.sources], (sources, onCleanup) => {\n\t\t\tif (isNotNil(sources)) {\n\t\t\t\tconst sub = merge(...sources).subscribe((toast) => this.#toastsService.addToast(toast));\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\treadonly toasts$ = this.#toastsService.toasts$;\n\n\treadonly intl = getIntl(LU_TOAST_TRANSLATIONS);\n\n\treadonly iconClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: 'icon-signInfo',\n\t\tSuccess: 'icon-signSuccess',\n\t\tError: 'icon-signError',\n\t\tWarning: 'icon-signWarning',\n\t};\n\n\treadonly paletteClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: '',\n\t\tSuccess: 'palette-success',\n\t\tError: 'palette-error',\n\t\tWarning: 'palette-warning',\n\t};\n\n\tisStringPortalContent(message: PortalContent): message is string {\n\t\treturn typeof message === 'string';\n\t}\n\n\tremoveToast(toast: LuToast): void {\n\t\tthis.#toastsService.removeToast(toast);\n\t}\n\n\tisOnlyDismissibleManually(toast: LuToast): boolean {\n\t\treturn this.#toastsService.isOnlyDismissibleManually(toast);\n\t}\n}\n","<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n</div>\n","import { NgModule } from '@angular/core';\nimport { LuToastsComponent } from './toasts.component';\n\n/**\n * @deprecated use `LuToastsComponent` instead\n */\n@NgModule({\n\timports: [LuToastsComponent],\n\texports: [LuToastsComponent],\n})\nexport class LuToastsModule {}\n","/*\n * Public API Surface of toast\n */\n\nexport * from './toasts.component';\nexport * from './toasts.model';\nexport * from './toasts.module';\nexport * from './toasts.service';\nexport * from './toasts.translate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
@@ -29,9 +29,9 @@ class LuTooltipPanelComponent {
29
29
  this.destroyRef = inject(DestroyRef);
30
30
  this.mouseEnter$ = new Subject();
31
31
  this.mouseLeave$ = new Subject();
32
- this.content = signal(null);
33
- this.id = signal(null);
34
- this.contentPositionClasses = signal({});
32
+ this.content = signal(null, ...(ngDevMode ? [{ debugName: "content" }] : []));
33
+ this.id = signal(null, ...(ngDevMode ? [{ debugName: "id" }] : []));
34
+ this.contentPositionClasses = signal({}, ...(ngDevMode ? [{ debugName: "contentPositionClasses" }] : []));
35
35
  }
36
36
  setPanelPosition(posX, posY) {
37
37
  this.contentPositionClasses.set({
@@ -41,28 +41,28 @@ class LuTooltipPanelComponent {
41
41
  'is-below': posY === 'top',
42
42
  });
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter$.next()", "mouseleave": "mouseLeave$.next()" }, properties: { "attr.id": "id" } }, ngImport: i0, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media (hover: hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter$.next()", "mouseleave": "mouseLeave$.next()" }, properties: { "attr.id": "id" } }, ngImport: i0, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media(hover:hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'lu-tooltip-panel', host: {
50
50
  role: 'tooltip',
51
51
  '[attr.id]': 'id',
52
52
  '(mouseenter)': 'mouseEnter$.next()',
53
53
  '(mouseleave)': 'mouseLeave$.next()',
54
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media (hover: hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"] }]
54
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media(hover:hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"] }]
55
55
  }] });
56
56
 
57
57
  /**
58
58
  * @deprecated use `LuTooltipPanelComponent` instead
59
59
  */
60
60
  class LuTooltipPanelModule {
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
62
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipPanelModule, imports: [LuTooltipPanelComponent], exports: [LuTooltipPanelComponent] }); }
63
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipPanelModule }); }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
62
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipPanelModule, imports: [LuTooltipPanelComponent], exports: [LuTooltipPanelComponent] }); }
63
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipPanelModule }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipPanelModule, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipPanelModule, decorators: [{
66
66
  type: NgModule,
67
67
  args: [{
68
68
  imports: [LuTooltipPanelComponent],
@@ -168,10 +168,10 @@ class EllipsisRuler {
168
168
  await firstValueFrom(this.#writePhase);
169
169
  operation();
170
170
  }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: EllipsisRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
172
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: EllipsisRuler, providedIn: 'root' }); }
171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EllipsisRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
172
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EllipsisRuler, providedIn: 'root' }); }
173
173
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: EllipsisRuler, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EllipsisRuler, decorators: [{
175
175
  type: Injectable,
176
176
  args: [{ providedIn: 'root' }]
177
177
  }], ctorParameters: () => [] });
@@ -213,15 +213,15 @@ class LuTooltipTriggerDirective {
213
213
  this.#zone = inject(NgZone, { optional: true });
214
214
  this.#injector = inject(Injector);
215
215
  this.#destroyRef = inject(DestroyRef);
216
- this.luTooltip = input();
217
- this.luTooltipEnterDelay = input(300, { transform: numberAttribute });
218
- this.luTooltipLeaveDelay = input(100, { transform: numberAttribute });
219
- this.luTooltipDisabled = input(false, { transform: booleanAttribute });
220
- this.luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });
221
- this.luTooltipPosition = input('above');
222
- this.luTooltipWhenEllipsis = input(false, { transform: booleanAttribute });
223
- this.luTooltipAnchor = input(this.#host);
224
- this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);
216
+ this.luTooltip = input(...(ngDevMode ? [undefined, { debugName: "luTooltip" }] : []));
217
+ this.luTooltipEnterDelay = input(300, { ...(ngDevMode ? { debugName: "luTooltipEnterDelay" } : {}), transform: numberAttribute });
218
+ this.luTooltipLeaveDelay = input(100, { ...(ngDevMode ? { debugName: "luTooltipLeaveDelay" } : {}), transform: numberAttribute });
219
+ this.luTooltipDisabled = input(false, { ...(ngDevMode ? { debugName: "luTooltipDisabled" } : {}), transform: booleanAttribute });
220
+ this.luTooltipOnlyForDisplay = input(false, { ...(ngDevMode ? { debugName: "luTooltipOnlyForDisplay" } : {}), transform: booleanAttribute });
221
+ this.luTooltipPosition = input('above', ...(ngDevMode ? [{ debugName: "luTooltipPosition" }] : []));
222
+ this.luTooltipWhenEllipsis = input(false, { ...(ngDevMode ? { debugName: "luTooltipWhenEllipsis" } : {}), transform: booleanAttribute });
223
+ this.luTooltipAnchor = input(this.#host, ...(ngDevMode ? [{ debugName: "luTooltipAnchor" }] : []));
224
+ this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
225
225
  this.resize$ = new Observable((observer) => {
226
226
  const resizeObserver = new ResizeObserver(() => {
227
227
  observer.next();
@@ -243,9 +243,8 @@ class LuTooltipTriggerDirective {
243
243
  // 3. Check for ellipsis
244
244
  switchMap(() => this.runOutsideZoneJS(() => this.#ruler.hasEllipsis(this.#host.nativeElement))));
245
245
  this.#hasEllipsis = toSignal(this.#hasEllipsis$, { initialValue: false });
246
- this.#action = signal(null);
247
- this.#realAction = linkedSignal({
248
- source: this.#action,
246
+ this.#action = signal(null, ...(ngDevMode ? [{ debugName: "#action" }] : []));
247
+ this.#realAction = linkedSignal({ ...(ngDevMode ? { debugName: "#realAction" } : {}), source: this.#action,
249
248
  computation: (action, previous) => {
250
249
  if (!action || action === 'close') {
251
250
  return action;
@@ -261,14 +260,13 @@ class LuTooltipTriggerDirective {
261
260
  }
262
261
  // If it's not disabled and is not triggered based on ellipsis, just return true
263
262
  return 'open';
264
- },
265
- });
263
+ } });
266
264
  this.ariaDescribedBy = computed(() => {
267
265
  if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {
268
266
  return null;
269
267
  }
270
268
  return `${this.id()}-panel`;
271
- });
269
+ }, ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : []));
272
270
  toObservable(this.#realAction)
273
271
  .pipe(filter$1(isNotNil), debounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())), tap((event) => {
274
272
  if (event === 'open') {
@@ -452,10 +450,10 @@ class LuTooltipTriggerDirective {
452
450
  requestOpen() {
453
451
  this.#action.set('open');
454
452
  }
455
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
456
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.2", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltip: { classPropertyName: "luTooltip", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, luTooltipWhenEllipsis: { classPropertyName: "luTooltipWhenEllipsis", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, luTooltipAnchor: { classPropertyName: "luTooltipAnchor", publicName: "luTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.aria-describedby": "ariaDescribedBy()", "attr.id": "id()" } }, exportAs: ["luTooltip"], ngImport: i0 }); }
453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
454
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltip: { classPropertyName: "luTooltip", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, luTooltipWhenEllipsis: { classPropertyName: "luTooltipWhenEllipsis", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, luTooltipAnchor: { classPropertyName: "luTooltipAnchor", publicName: "luTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.aria-describedby": "ariaDescribedBy()", "attr.id": "id()" } }, exportAs: ["luTooltip"], ngImport: i0 }); }
457
455
  }
458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
459
457
  type: Directive,
460
458
  args: [{
461
459
  selector: '[luTooltip]',
@@ -469,17 +467,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
469
467
  '(blur)': 'onBlur()',
470
468
  },
471
469
  }]
472
- }], ctorParameters: () => [] });
470
+ }], ctorParameters: () => [], propDecorators: { luTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltip", required: false }] }], luTooltipEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipEnterDelay", required: false }] }], luTooltipLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipLeaveDelay", required: false }] }], luTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipDisabled", required: false }] }], luTooltipOnlyForDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipOnlyForDisplay", required: false }] }], luTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipPosition", required: false }] }], luTooltipWhenEllipsis: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipWhenEllipsis", required: false }] }], luTooltipAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipAnchor", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
473
471
 
474
472
  /**
475
473
  * @deprecated use `LuTooltipTriggerDirective, OverlayModule` instead
476
474
  */
477
475
  class LuTooltipTriggerModule {
478
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipTriggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
479
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipTriggerModule, imports: [LuTooltipTriggerDirective, OverlayModule], exports: [LuTooltipTriggerDirective] }); }
480
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipTriggerModule, imports: [OverlayModule] }); }
476
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipTriggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
477
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipTriggerModule, imports: [LuTooltipTriggerDirective, OverlayModule], exports: [LuTooltipTriggerDirective] }); }
478
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipTriggerModule, imports: [OverlayModule] }); }
481
479
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipTriggerModule, decorators: [{
480
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipTriggerModule, decorators: [{
483
481
  type: NgModule,
484
482
  args: [{
485
483
  imports: [LuTooltipTriggerDirective, OverlayModule],
@@ -491,11 +489,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
491
489
  * @deprecated use `LuTooltipTriggerDirective, OverlayModule, LuTooltipPanelComponent` instead
492
490
  */
493
491
  class LuTooltipModule {
494
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
495
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelModule], exports: [LuTooltipTriggerModule, LuTooltipPanelModule] }); }
496
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelModule, LuTooltipTriggerModule, LuTooltipPanelModule] }); }
492
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
493
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelModule], exports: [LuTooltipTriggerModule, LuTooltipPanelModule] }); }
494
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelModule, LuTooltipTriggerModule, LuTooltipPanelModule] }); }
497
495
  }
498
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuTooltipModule, decorators: [{
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: LuTooltipModule, decorators: [{
499
497
  type: NgModule,
500
498
  args: [{
501
499
  imports: [LuTooltipTriggerModule, LuTooltipPanelModule],
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-tooltip.mjs","sources":["../../../packages/ng/tooltip/animation/tooltip.animation.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.html","../../../packages/ng/tooltip/panel/tooltip-panel.module.ts","../../../packages/ng/tooltip/trigger/ellipsis.ruler.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/ng/tooltip/tooltip.module.ts","../../../packages/ng/tooltip/lucca-front-ng-tooltip.ts"],"sourcesContent":["import { trigger, state, style, animate, transition, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const luTransformTooltip: AnimationTriggerMetadata = trigger('transformTooltip', [\n\tstate(\n\t\t'enter',\n\t\tstyle({\n\t\t\topacity: 1,\n\t\t\ttransform: `scale(1)`,\n\t\t}),\n\t),\n\ttransition('void => *', [\n\t\tstyle({\n\t\t\topacity: 0,\n\t\t\ttransform: `scale(0)`,\n\t\t}),\n\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t]),\n\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n]);\n","import { HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n\tselector: 'lu-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\n\t\t'[attr.id]': 'id',\n\t\t'(mouseenter)': 'mouseEnter$.next()',\n\t\t'(mouseleave)': 'mouseLeave$.next()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuTooltipPanelComponent {\n\treadonly destroyRef = inject(DestroyRef);\n\n\treadonly mouseEnter$ = new Subject<void>();\n\treadonly mouseLeave$ = new Subject<void>();\n\n\treadonly content = signal<string | SafeHtml | null>(null);\n\n\treadonly id = signal<string>(null);\n\n\treadonly contentPositionClasses = signal<Record<string, boolean>>({});\n\n\tsetPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void {\n\t\tthis.contentPositionClasses.set({\n\t\t\t'is-before': posX === 'end',\n\t\t\t'is-after': posX === 'start',\n\t\t\t'is-above': posY === 'bottom',\n\t\t\t'is-below': posY === 'top',\n\t\t});\n\t}\n}\n","@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelComponent } from './tooltip-panel.component';\n\n/**\n * @deprecated use `LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipPanelComponent],\n\texports: [LuTooltipPanelComponent],\n})\nexport class LuTooltipPanelModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { filter, firstValueFrom, shareReplay, timer } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EllipsisRuler {\n\t// As EllipsisRuler is a singleton, we can use shareReplay so the first subscriber starts the timer and the last one stops it\n\t// The timer allows us to alternate between read and write phases\n\t#interval = timer(100, 100).pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n\t#readPhase = this.#interval.pipe(filter((n) => n % 2 === 0));\n\t#writePhase = this.#interval.pipe(filter((n) => n % 2 === 1));\n\n\t#document = inject(DOCUMENT);\n\treadonly parentMasked = this.#document.createElement('div');\n\n\tconstructor() {\n\t\tthis.parentMasked.classList.add('pr-u-mask');\n\t\tthis.parentMasked.setAttribute('aria-hidden', 'true');\n\t\tthis.#document.body.appendChild(this.parentMasked);\n\t}\n\n\t/**\n\t * Hacky af but let's explain everything\n\t * This method checks for ellipsis by cloning the node and checking its width against original element.\n\t *\n\t * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,\n\t * you'd get true while it should be false and vice-versa, because of rounding.\n\t *\n\t * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,\n\t * which we then compare with its current size.\n\t *\n\t * To avoid doing multiple reflow per check, we wait for the next microtask on each key step of the process:\n\t * - After computing element style\n\t * - After cloning the element and appending it to the DOM\n\t * - After computing the width of the cloned element\n\t * - After removing the cloned element from the DOM\n\t *\n\t * This way, we have 2 reflows per check, no matter how many elements are checked in a row.\n\t */\n\tasync hasEllipsis(element: HTMLElement): Promise<boolean> {\n\t\tlet elementStyle: CSSStyleDeclaration;\n\t\tlet bodyStyle: CSSStyleDeclaration;\n\n\t\tawait this.#readOperation(() => {\n\t\t\telementStyle = getComputedStyle(element);\n\t\t\tbodyStyle = getComputedStyle(document.body);\n\t\t});\n\n\t\tif (elementStyle.textOverflow !== 'ellipsis') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle } = elementStyle;\n\n\t\tconst fontSize = (Number(elementStyle.fontSize.replace('px', '')) / Number(bodyStyle.fontSize.replace('px', ''))).toString() + 'rem';\n\n\t\tlet elementCloned: HTMLDivElement;\n\n\t\tawait this.#writeOperation(() => {\n\t\t\telementCloned = this.#document.createElement('div');\n\n\t\t\tObject.assign(elementCloned.style, {\n\t\t\t\tinlineSize: 'fit-content',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tvisibility: 'hidden',\n\t\t\t\tpadding,\n\t\t\t\tborderWidth,\n\t\t\t\tborderStyle,\n\t\t\t\tboxSizing,\n\t\t\t\tfontFamily,\n\t\t\t\tfontWeight,\n\t\t\t\tfontStyle,\n\t\t\t\tfontSize,\n\t\t\t});\n\n\t\t\tthis.parentMasked.appendChild(elementCloned);\n\n\t\t\telementCloned.innerHTML = element.innerHTML;\n\t\t});\n\n\t\t// To avoid multiple reflows, we wait for the next microtask before calculating the width\n\n\t\ttry {\n\t\t\tlet clonedElementWidth: number;\n\t\t\tlet elementWidth: number;\n\n\t\t\tawait this.#readOperation(() => {\n\t\t\t\tclonedElementWidth = elementCloned.getBoundingClientRect().width;\n\t\t\t\telementWidth = element.getBoundingClientRect().width;\n\t\t\t});\n\n\t\t\treturn clonedElementWidth > elementWidth;\n\t\t} catch {\n\t\t\treturn false;\n\t\t} finally {\n\t\t\tawait this.#writeOperation(() => {\n\t\t\t\tthis.parentMasked.removeChild(elementCloned);\n\t\t\t});\n\t\t}\n\t}\n\n\t// To avoid multiple reflows, we wait for the next read phase before computing/reading element style\n\tasync #readOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#readPhase);\n\t\toperation();\n\t}\n\n\t// To avoid multiple reflows, we wait for the next write before inserting/removing the cloned element\n\tasync #writeOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#writePhase);\n\t\toperation();\n\t}\n}\n","import {\n\tFlexibleConnectedPositionStrategy,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tHorizontalConnectionPos,\n\tOriginConnectionPosition,\n\tOverlay,\n\tOverlayConnectionPosition,\n\tOverlayRef,\n\tVerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tDestroyRef,\n\tDirective,\n\tEffectRef,\n\tElementRef,\n\tInjector,\n\tNgZone,\n\tOnDestroy,\n\tRenderer2,\n\tbooleanAttribute,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { isNotNil, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { LuPopoverPosition } from '@lucca-front/ng/popover';\nimport { Observable, combineLatest, startWith, switchMap, timer } from 'rxjs';\nimport { debounce, debounceTime, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { EllipsisRuler } from './ellipsis.ruler';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #renderer = inject(Renderer2);\n\treadonly #ruler = inject(EllipsisRuler);\n\treadonly #zone = inject(NgZone, { optional: true });\n\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\n\treadonly luTooltip = input<string | SafeHtml>();\n\n\treadonly luTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly luTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipPosition = input<LuPopoverPosition>('above');\n\n\treadonly luTooltipWhenEllipsis = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.#host);\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly resize$ = new Observable<void>((observer) => {\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tobserver.next();\n\t\t});\n\t\tresizeObserver.observe(this.#host.nativeElement);\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t});\n\n\treadonly #hasEllipsis$ = combineLatest([\n\t\ttoObservable(\n\t\t\t// 1. Group necessary inputs\n\t\t\tcomputed(() => ({ whenEllipsis: this.luTooltipWhenEllipsis(), disabled: this.luTooltipDisabled() })),\n\t\t),\n\t\t// Resend resize events to trigger the check\n\t\tthis.resize$.pipe(debounceTime(150)),\n\t]).pipe(\n\t\t// 2. Keep only necessary inputs\n\t\tfilter(([{ whenEllipsis, disabled }]) => !disabled && whenEllipsis),\n\t\t// 3. Check for ellipsis\n\t\tswitchMap(() => this.runOutsideZoneJS(() => this.#ruler.hasEllipsis(this.#host.nativeElement))),\n\t);\n\n\treadonly #hasEllipsis = toSignal(this.#hasEllipsis$, { initialValue: false });\n\n\treadonly #action = signal<'open' | 'close' | null>(null);\n\treadonly #realAction = linkedSignal<'open' | 'close' | null, 'open' | 'close' | null>({\n\t\tsource: this.#action,\n\t\tcomputation: (action, previous) => {\n\t\t\tif (!action || action === 'close') {\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\t// We only filter open events because even if it's disabled while opened,\n\t\t\t// we want the tooltip to be able to close itself no matter what\n\t\t\tif (this.luTooltipDisabled()) {\n\t\t\t\treturn previous.value;\n\t\t\t}\n\n\t\t\t// If not disabled, let's check for ellipsis if needed\n\t\t\tif (this.luTooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : previous.value;\n\t\t\t}\n\n\t\t\t// If it's not disabled and is not triggered based on ellipsis, just return true\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\tonMouseEnter() {\n\t\tthis.#action.set('open');\n\t}\n\n\tonMouseLeave() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonFocus() {\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\t#effectRef?: EffectRef;\n\t#idEffectRef?: EffectRef;\n\n\tconstructor() {\n\t\ttoObservable(this.#realAction)\n\t\t\t.pipe(\n\t\t\t\tfilter(isNotNil),\n\t\t\t\tdebounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())),\n\t\t\t\ttap((event) => {\n\t\t\t\t\tif (event === 'open') {\n\t\t\t\t\t\tthis.openTooltip();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.closeTooltip();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\teffect(() => {\n\t\t\tif (!this.luTooltipDisabled() && (!this.luTooltipWhenEllipsis() || this.#hasEllipsis())) {\n\t\t\t\tthis.setAccessibilityProperties(0);\n\t\t\t} else {\n\t\t\t\tthis.setAccessibilityProperties(null);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t}\n\n\tprivate openTooltip(): void {\n\t\t// If tooltip is already opened, don't do anything\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy: position,\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tposition.positionChanges\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t\tmap(({ connectionPair }) => connectionPair),\n\t\t\t\tstartWith(position.positions[0]),\n\t\t\t)\n\t\t\t.subscribe(({ overlayX, overlayY }) => {\n\t\t\t\tref.instance.setPanelPosition(overlayX, overlayY);\n\t\t\t});\n\n\t\tif (this.luTooltip()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.luTooltip],\n\t\t\t\t(luTooltip) => {\n\t\t\t\t\tref.instance.content.set(luTooltip);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.luTooltipWhenEllipsis()) {\n\t\t\tref.instance.content.set(this.#host.nativeElement.innerText);\n\t\t} else {\n\t\t\tref.instance.content.set('');\n\t\t}\n\n\t\tthis.#idEffectRef = ɵeffectWithDeps(\n\t\t\t[this.ariaDescribedBy],\n\t\t\t(ariaDescribedBy) => {\n\t\t\t\tref.instance.id.set(ariaDescribedBy);\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\n\t\t// On tooltip leave => trigger close\n\t\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\n\t\t// On tooltip enter => trigger open to keep it opened\n\t\tref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));\n\t}\n\n\tprivate closeTooltip(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.detach();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t\tthis.#effectRef?.destroy();\n\t\tthis.#idEffectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (tabindex === null) {\n\t\t\tthis.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');\n\t\t\treturn;\n\t\t}\n\n\t\tconst tag = this.#host.nativeElement.tagName.toLowerCase();\n\t\tconst nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];\n\t\tconst isNativelyFocusableTag = nativelyFocusableTags.includes(tag);\n\n\t\tconst hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;\n\n\t\tif (!isNativelyFocusableTag && !hasATabIndex) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());\n\t\t}\n\n\t\tif (!isNativelyFocusableTag && !this.luTooltipWhenEllipsis() && !this.luTooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\tprivate runOutsideZoneJS<T>(callback: () => T): T {\n\t\treturn this.#zone ? this.#zone.runOutsideAngular(callback) : callback();\n\t}\n\n\t/**********************\n\t *\n\t * LEGACY STUFF TO HANDLE EXISTING POSITIONS\n\t *\n\t ***********************/\n\n\tprivate legacyPositionBuilder(): FlexibleConnectedPositionStrategy {\n\t\tconst connectionPosition: OriginConnectionPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t};\n\n\t\t// Position\n\t\tconst position = this.luTooltipPosition();\n\t\tif (position === 'above') {\n\t\t\tconnectionPosition.originY = 'top';\n\t\t} else if (position === 'below') {\n\t\t\tconnectionPosition.originY = 'bottom';\n\t\t} else if (position === 'before') {\n\t\t\tconnectionPosition.originX = 'start';\n\t\t} else if (position === 'after') {\n\t\t\tconnectionPosition.originX = 'end';\n\t\t}\n\n\t\t// Alignment\n\t\tif (position === 'above' || position === 'below') {\n\t\t\tconnectionPosition.originX = 'center';\n\t\t} else {\n\t\t\tconnectionPosition.originY = 'center';\n\t\t}\n\n\t\tconst overlayPosition: OverlayConnectionPosition = {\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t};\n\n\t\tif (position === 'above' || position === 'below') {\n\t\t\toverlayPosition.overlayX = connectionPosition.originX;\n\t\t\toverlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';\n\t\t} else {\n\t\t\toverlayPosition.overlayX = position === 'before' ? 'end' : 'start';\n\t\t\toverlayPosition.overlayY = connectionPosition.originY;\n\t\t}\n\n\t\treturn this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.luTooltipAnchor())\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t]);\n\t}\n\n\tprivate invertVerticalPos(y: VerticalConnectionPos): VerticalConnectionPos {\n\t\tif (y === 'top') {\n\t\t\treturn 'bottom';\n\t\t} else if (y === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\treturn y;\n\t}\n\n\tprivate invertHorizontalPos(x: HorizontalConnectionPos): HorizontalConnectionPos {\n\t\tif (x === 'end') {\n\t\t\treturn 'start';\n\t\t} else if (x === 'start') {\n\t\t\treturn 'end';\n\t\t}\n\t\treturn x;\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerDirective, OverlayModule],\n\texports: [LuTooltipTriggerDirective],\n})\nexport class LuTooltipTriggerModule {}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelModule } from './panel/index';\nimport { LuTooltipTriggerModule } from './trigger/index';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule, LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerModule, LuTooltipPanelModule],\n\texports: [LuTooltipTriggerModule, LuTooltipPanelModule],\n})\nexport class LuTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["filter","ɵeffectWithDeps"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-tooltip.mjs","sources":["../../../packages/ng/tooltip/animation/tooltip.animation.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.html","../../../packages/ng/tooltip/panel/tooltip-panel.module.ts","../../../packages/ng/tooltip/trigger/ellipsis.ruler.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/ng/tooltip/tooltip.module.ts","../../../packages/ng/tooltip/lucca-front-ng-tooltip.ts"],"sourcesContent":["import { trigger, state, style, animate, transition, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const luTransformTooltip: AnimationTriggerMetadata = trigger('transformTooltip', [\n\tstate(\n\t\t'enter',\n\t\tstyle({\n\t\t\topacity: 1,\n\t\t\ttransform: `scale(1)`,\n\t\t}),\n\t),\n\ttransition('void => *', [\n\t\tstyle({\n\t\t\topacity: 0,\n\t\t\ttransform: `scale(0)`,\n\t\t}),\n\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t]),\n\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n]);\n","import { HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n\tselector: 'lu-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\n\t\t'[attr.id]': 'id',\n\t\t'(mouseenter)': 'mouseEnter$.next()',\n\t\t'(mouseleave)': 'mouseLeave$.next()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuTooltipPanelComponent {\n\treadonly destroyRef = inject(DestroyRef);\n\n\treadonly mouseEnter$ = new Subject<void>();\n\treadonly mouseLeave$ = new Subject<void>();\n\n\treadonly content = signal<string | SafeHtml | null>(null);\n\n\treadonly id = signal<string>(null);\n\n\treadonly contentPositionClasses = signal<Record<string, boolean>>({});\n\n\tsetPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void {\n\t\tthis.contentPositionClasses.set({\n\t\t\t'is-before': posX === 'end',\n\t\t\t'is-after': posX === 'start',\n\t\t\t'is-above': posY === 'bottom',\n\t\t\t'is-below': posY === 'top',\n\t\t});\n\t}\n}\n","@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelComponent } from './tooltip-panel.component';\n\n/**\n * @deprecated use `LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipPanelComponent],\n\texports: [LuTooltipPanelComponent],\n})\nexport class LuTooltipPanelModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { filter, firstValueFrom, shareReplay, timer } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EllipsisRuler {\n\t// As EllipsisRuler is a singleton, we can use shareReplay so the first subscriber starts the timer and the last one stops it\n\t// The timer allows us to alternate between read and write phases\n\t#interval = timer(100, 100).pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n\t#readPhase = this.#interval.pipe(filter((n) => n % 2 === 0));\n\t#writePhase = this.#interval.pipe(filter((n) => n % 2 === 1));\n\n\t#document = inject(DOCUMENT);\n\treadonly parentMasked = this.#document.createElement('div');\n\n\tconstructor() {\n\t\tthis.parentMasked.classList.add('pr-u-mask');\n\t\tthis.parentMasked.setAttribute('aria-hidden', 'true');\n\t\tthis.#document.body.appendChild(this.parentMasked);\n\t}\n\n\t/**\n\t * Hacky af but let's explain everything\n\t * This method checks for ellipsis by cloning the node and checking its width against original element.\n\t *\n\t * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,\n\t * you'd get true while it should be false and vice-versa, because of rounding.\n\t *\n\t * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,\n\t * which we then compare with its current size.\n\t *\n\t * To avoid doing multiple reflow per check, we wait for the next microtask on each key step of the process:\n\t * - After computing element style\n\t * - After cloning the element and appending it to the DOM\n\t * - After computing the width of the cloned element\n\t * - After removing the cloned element from the DOM\n\t *\n\t * This way, we have 2 reflows per check, no matter how many elements are checked in a row.\n\t */\n\tasync hasEllipsis(element: HTMLElement): Promise<boolean> {\n\t\tlet elementStyle: CSSStyleDeclaration;\n\t\tlet bodyStyle: CSSStyleDeclaration;\n\n\t\tawait this.#readOperation(() => {\n\t\t\telementStyle = getComputedStyle(element);\n\t\t\tbodyStyle = getComputedStyle(document.body);\n\t\t});\n\n\t\tif (elementStyle.textOverflow !== 'ellipsis') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle } = elementStyle;\n\n\t\tconst fontSize = (Number(elementStyle.fontSize.replace('px', '')) / Number(bodyStyle.fontSize.replace('px', ''))).toString() + 'rem';\n\n\t\tlet elementCloned: HTMLDivElement;\n\n\t\tawait this.#writeOperation(() => {\n\t\t\telementCloned = this.#document.createElement('div');\n\n\t\t\tObject.assign(elementCloned.style, {\n\t\t\t\tinlineSize: 'fit-content',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tvisibility: 'hidden',\n\t\t\t\tpadding,\n\t\t\t\tborderWidth,\n\t\t\t\tborderStyle,\n\t\t\t\tboxSizing,\n\t\t\t\tfontFamily,\n\t\t\t\tfontWeight,\n\t\t\t\tfontStyle,\n\t\t\t\tfontSize,\n\t\t\t});\n\n\t\t\tthis.parentMasked.appendChild(elementCloned);\n\n\t\t\telementCloned.innerHTML = element.innerHTML;\n\t\t});\n\n\t\t// To avoid multiple reflows, we wait for the next microtask before calculating the width\n\n\t\ttry {\n\t\t\tlet clonedElementWidth: number;\n\t\t\tlet elementWidth: number;\n\n\t\t\tawait this.#readOperation(() => {\n\t\t\t\tclonedElementWidth = elementCloned.getBoundingClientRect().width;\n\t\t\t\telementWidth = element.getBoundingClientRect().width;\n\t\t\t});\n\n\t\t\treturn clonedElementWidth > elementWidth;\n\t\t} catch {\n\t\t\treturn false;\n\t\t} finally {\n\t\t\tawait this.#writeOperation(() => {\n\t\t\t\tthis.parentMasked.removeChild(elementCloned);\n\t\t\t});\n\t\t}\n\t}\n\n\t// To avoid multiple reflows, we wait for the next read phase before computing/reading element style\n\tasync #readOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#readPhase);\n\t\toperation();\n\t}\n\n\t// To avoid multiple reflows, we wait for the next write before inserting/removing the cloned element\n\tasync #writeOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#writePhase);\n\t\toperation();\n\t}\n}\n","import {\n\tFlexibleConnectedPositionStrategy,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tHorizontalConnectionPos,\n\tOriginConnectionPosition,\n\tOverlay,\n\tOverlayConnectionPosition,\n\tOverlayRef,\n\tVerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tDestroyRef,\n\tDirective,\n\tEffectRef,\n\tElementRef,\n\tInjector,\n\tNgZone,\n\tOnDestroy,\n\tRenderer2,\n\tbooleanAttribute,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { isNotNil, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { LuPopoverPosition } from '@lucca-front/ng/popover';\nimport { Observable, combineLatest, startWith, switchMap, timer } from 'rxjs';\nimport { debounce, debounceTime, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { EllipsisRuler } from './ellipsis.ruler';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #renderer = inject(Renderer2);\n\treadonly #ruler = inject(EllipsisRuler);\n\treadonly #zone = inject(NgZone, { optional: true });\n\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\n\treadonly luTooltip = input<string | SafeHtml>();\n\n\treadonly luTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly luTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipPosition = input<LuPopoverPosition>('above');\n\n\treadonly luTooltipWhenEllipsis = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.#host);\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly resize$ = new Observable<void>((observer) => {\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tobserver.next();\n\t\t});\n\t\tresizeObserver.observe(this.#host.nativeElement);\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t});\n\n\treadonly #hasEllipsis$ = combineLatest([\n\t\ttoObservable(\n\t\t\t// 1. Group necessary inputs\n\t\t\tcomputed(() => ({ whenEllipsis: this.luTooltipWhenEllipsis(), disabled: this.luTooltipDisabled() })),\n\t\t),\n\t\t// Resend resize events to trigger the check\n\t\tthis.resize$.pipe(debounceTime(150)),\n\t]).pipe(\n\t\t// 2. Keep only necessary inputs\n\t\tfilter(([{ whenEllipsis, disabled }]) => !disabled && whenEllipsis),\n\t\t// 3. Check for ellipsis\n\t\tswitchMap(() => this.runOutsideZoneJS(() => this.#ruler.hasEllipsis(this.#host.nativeElement))),\n\t);\n\n\treadonly #hasEllipsis = toSignal(this.#hasEllipsis$, { initialValue: false });\n\n\treadonly #action = signal<'open' | 'close' | null>(null);\n\treadonly #realAction = linkedSignal<'open' | 'close' | null, 'open' | 'close' | null>({\n\t\tsource: this.#action,\n\t\tcomputation: (action, previous) => {\n\t\t\tif (!action || action === 'close') {\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\t// We only filter open events because even if it's disabled while opened,\n\t\t\t// we want the tooltip to be able to close itself no matter what\n\t\t\tif (this.luTooltipDisabled()) {\n\t\t\t\treturn previous.value;\n\t\t\t}\n\n\t\t\t// If not disabled, let's check for ellipsis if needed\n\t\t\tif (this.luTooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : previous.value;\n\t\t\t}\n\n\t\t\t// If it's not disabled and is not triggered based on ellipsis, just return true\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\tonMouseEnter() {\n\t\tthis.#action.set('open');\n\t}\n\n\tonMouseLeave() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonFocus() {\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\t#effectRef?: EffectRef;\n\t#idEffectRef?: EffectRef;\n\n\tconstructor() {\n\t\ttoObservable(this.#realAction)\n\t\t\t.pipe(\n\t\t\t\tfilter(isNotNil),\n\t\t\t\tdebounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())),\n\t\t\t\ttap((event) => {\n\t\t\t\t\tif (event === 'open') {\n\t\t\t\t\t\tthis.openTooltip();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.closeTooltip();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\teffect(() => {\n\t\t\tif (!this.luTooltipDisabled() && (!this.luTooltipWhenEllipsis() || this.#hasEllipsis())) {\n\t\t\t\tthis.setAccessibilityProperties(0);\n\t\t\t} else {\n\t\t\t\tthis.setAccessibilityProperties(null);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t}\n\n\tprivate openTooltip(): void {\n\t\t// If tooltip is already opened, don't do anything\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy: position,\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tposition.positionChanges\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t\tmap(({ connectionPair }) => connectionPair),\n\t\t\t\tstartWith(position.positions[0]),\n\t\t\t)\n\t\t\t.subscribe(({ overlayX, overlayY }) => {\n\t\t\t\tref.instance.setPanelPosition(overlayX, overlayY);\n\t\t\t});\n\n\t\tif (this.luTooltip()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.luTooltip],\n\t\t\t\t(luTooltip) => {\n\t\t\t\t\tref.instance.content.set(luTooltip);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.luTooltipWhenEllipsis()) {\n\t\t\tref.instance.content.set(this.#host.nativeElement.innerText);\n\t\t} else {\n\t\t\tref.instance.content.set('');\n\t\t}\n\n\t\tthis.#idEffectRef = ɵeffectWithDeps(\n\t\t\t[this.ariaDescribedBy],\n\t\t\t(ariaDescribedBy) => {\n\t\t\t\tref.instance.id.set(ariaDescribedBy);\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\n\t\t// On tooltip leave => trigger close\n\t\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\n\t\t// On tooltip enter => trigger open to keep it opened\n\t\tref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));\n\t}\n\n\tprivate closeTooltip(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.detach();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t\tthis.#effectRef?.destroy();\n\t\tthis.#idEffectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (tabindex === null) {\n\t\t\tthis.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');\n\t\t\treturn;\n\t\t}\n\n\t\tconst tag = this.#host.nativeElement.tagName.toLowerCase();\n\t\tconst nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];\n\t\tconst isNativelyFocusableTag = nativelyFocusableTags.includes(tag);\n\n\t\tconst hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;\n\n\t\tif (!isNativelyFocusableTag && !hasATabIndex) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());\n\t\t}\n\n\t\tif (!isNativelyFocusableTag && !this.luTooltipWhenEllipsis() && !this.luTooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\tprivate runOutsideZoneJS<T>(callback: () => T): T {\n\t\treturn this.#zone ? this.#zone.runOutsideAngular(callback) : callback();\n\t}\n\n\t/**********************\n\t *\n\t * LEGACY STUFF TO HANDLE EXISTING POSITIONS\n\t *\n\t ***********************/\n\n\tprivate legacyPositionBuilder(): FlexibleConnectedPositionStrategy {\n\t\tconst connectionPosition: OriginConnectionPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t};\n\n\t\t// Position\n\t\tconst position = this.luTooltipPosition();\n\t\tif (position === 'above') {\n\t\t\tconnectionPosition.originY = 'top';\n\t\t} else if (position === 'below') {\n\t\t\tconnectionPosition.originY = 'bottom';\n\t\t} else if (position === 'before') {\n\t\t\tconnectionPosition.originX = 'start';\n\t\t} else if (position === 'after') {\n\t\t\tconnectionPosition.originX = 'end';\n\t\t}\n\n\t\t// Alignment\n\t\tif (position === 'above' || position === 'below') {\n\t\t\tconnectionPosition.originX = 'center';\n\t\t} else {\n\t\t\tconnectionPosition.originY = 'center';\n\t\t}\n\n\t\tconst overlayPosition: OverlayConnectionPosition = {\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t};\n\n\t\tif (position === 'above' || position === 'below') {\n\t\t\toverlayPosition.overlayX = connectionPosition.originX;\n\t\t\toverlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';\n\t\t} else {\n\t\t\toverlayPosition.overlayX = position === 'before' ? 'end' : 'start';\n\t\t\toverlayPosition.overlayY = connectionPosition.originY;\n\t\t}\n\n\t\treturn this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.luTooltipAnchor())\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t]);\n\t}\n\n\tprivate invertVerticalPos(y: VerticalConnectionPos): VerticalConnectionPos {\n\t\tif (y === 'top') {\n\t\t\treturn 'bottom';\n\t\t} else if (y === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\treturn y;\n\t}\n\n\tprivate invertHorizontalPos(x: HorizontalConnectionPos): HorizontalConnectionPos {\n\t\tif (x === 'end') {\n\t\t\treturn 'start';\n\t\t} else if (x === 'start') {\n\t\t\treturn 'end';\n\t\t}\n\t\treturn x;\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerDirective, OverlayModule],\n\texports: [LuTooltipTriggerDirective],\n})\nexport class LuTooltipTriggerModule {}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelModule } from './panel/index';\nimport { LuTooltipTriggerModule } from './trigger/index';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule, LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerModule, LuTooltipPanelModule],\n\texports: [LuTooltipTriggerModule, LuTooltipPanelModule],\n})\nexport class LuTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["filter","ɵeffectWithDeps"],"mappings":"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"}