@lucca-front/ng 21.2.2 → 21.2.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +4 -4
  2. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-activity-feed.mjs +18 -18
  4. package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-api.mjs +40 -40
  6. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-app-layout.mjs +4 -4
  8. package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-box.mjs +7 -7
  10. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +10 -10
  12. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-bubble-icon.mjs +11 -11
  14. package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-bubble-illustration.mjs +9 -9
  16. package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-callout.mjs +68 -68
  18. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-chip.mjs +15 -15
  20. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-clear.mjs +9 -9
  22. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-code.mjs +4 -4
  24. package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-color.mjs +7 -7
  26. package/fesm2022/lucca-front-ng-color.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-comment.mjs +30 -30
  28. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-container.mjs +7 -7
  30. package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-core-select-api.mjs +13 -13
  32. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-core-select-department.mjs +21 -15
  34. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +15 -15
  36. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +9 -9
  38. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +6 -6
  40. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-core-select-user.mjs +37 -37
  42. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-core-select.mjs +90 -90
  44. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-core.mjs +18 -18
  46. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-data-table.mjs +74 -74
  48. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-date.mjs +42 -42
  50. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-date2.mjs +121 -121
  52. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-department.mjs +25 -25
  54. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-dialog.mjs +55 -43
  56. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-divider.mjs +8 -8
  58. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-dropdown.mjs +43 -43
  60. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-empty-state.mjs +35 -35
  62. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-error-page.mjs +6 -6
  64. package/fesm2022/lucca-front-ng-error-page.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-establishment.mjs +34 -34
  66. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-fancy-box.mjs +10 -10
  68. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-file-upload.mjs +55 -55
  70. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-filter-pills.mjs +53 -53
  72. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-footer.mjs +10 -10
  74. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-form-field.mjs +68 -67
  76. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-form-header.mjs +4 -4
  78. package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-form-label.mjs +12 -12
  80. package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-form.mjs +5 -5
  82. package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-formly.mjs +58 -58
  84. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +20 -20
  86. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +3 -3
  88. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +6 -6
  90. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +3 -3
  92. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  93. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +91 -89
  94. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  95. package/fesm2022/lucca-front-ng-forms.mjs +146 -145
  96. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  97. package/fesm2022/lucca-front-ng-gauge.mjs +19 -19
  98. package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
  99. package/fesm2022/lucca-front-ng-grid.mjs +23 -23
  100. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  101. package/fesm2022/lucca-front-ng-highlight-data.mjs +16 -16
  102. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  103. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +11 -11
  104. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  105. package/fesm2022/lucca-front-ng-index-table.mjs +60 -60
  106. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  107. package/fesm2022/lucca-front-ng-inline-message.mjs +7 -7
  108. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  109. package/fesm2022/lucca-front-ng-input.mjs +23 -23
  110. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  111. package/fesm2022/lucca-front-ng-link.mjs +12 -12
  112. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  113. package/fesm2022/lucca-front-ng-listbox.mjs +26 -26
  114. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  115. package/fesm2022/lucca-front-ng-listing.mjs +19 -19
  116. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  117. package/fesm2022/lucca-front-ng-loading.mjs +8 -8
  118. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  119. package/fesm2022/lucca-front-ng-main-layout.mjs +9 -9
  120. package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-mobile-push.mjs +4 -4
  122. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-modal.mjs +23 -23
  124. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  125. package/fesm2022/lucca-front-ng-multi-select.mjs +61 -61
  126. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  127. package/fesm2022/lucca-front-ng-new-badge.mjs +4 -4
  128. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  129. package/fesm2022/lucca-front-ng-number-format.mjs +10 -10
  130. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  131. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  132. package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
  133. package/fesm2022/lucca-front-ng-numeric-badge.mjs +12 -12
  134. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  135. package/fesm2022/lucca-front-ng-option.mjs +132 -132
  136. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  137. package/fesm2022/lucca-front-ng-page-header.mjs +9 -9
  138. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  139. package/fesm2022/lucca-front-ng-pagination.mjs +10 -10
  140. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  141. package/fesm2022/lucca-front-ng-plg-push.mjs +7 -7
  142. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  143. package/fesm2022/lucca-front-ng-popover.mjs +17 -17
  144. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  145. package/fesm2022/lucca-front-ng-popover2.mjs +15 -15
  146. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  147. package/fesm2022/lucca-front-ng-popup.mjs +10 -10
  148. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  149. package/fesm2022/lucca-front-ng-progress-bar.mjs +7 -7
  150. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
  151. package/fesm2022/lucca-front-ng-progress-stepper.mjs +12 -12
  152. package/fesm2022/lucca-front-ng-progress-stepper.mjs.map +1 -1
  153. package/fesm2022/lucca-front-ng-read-more.mjs +17 -17
  154. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  155. package/fesm2022/lucca-front-ng-resource-card.mjs +21 -21
  156. package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
  157. package/fesm2022/lucca-front-ng-safe-content.mjs +10 -10
  158. package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
  159. package/fesm2022/lucca-front-ng-scroll-box.mjs +6 -6
  160. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  161. package/fesm2022/lucca-front-ng-scroll.mjs +8 -8
  162. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  163. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +14 -14
  164. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  165. package/fesm2022/lucca-front-ng-segmented-control.mjs +11 -11
  166. package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
  167. package/fesm2022/lucca-front-ng-select.mjs +14 -14
  168. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  169. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  170. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  171. package/fesm2022/lucca-front-ng-simple-select.mjs +17 -17
  172. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  173. package/fesm2022/lucca-front-ng-skeleton.mjs +54 -50
  174. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  175. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +84 -0
  176. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -0
  177. package/fesm2022/lucca-front-ng-software-icon.mjs +20 -13
  178. package/fesm2022/lucca-front-ng-software-icon.mjs.map +1 -1
  179. package/fesm2022/lucca-front-ng-sortable-list.mjs +14 -14
  180. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
  181. package/fesm2022/lucca-front-ng-status-badge.mjs +7 -7
  182. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  183. package/fesm2022/lucca-front-ng-table-of-content.mjs +7 -7
  184. package/fesm2022/lucca-front-ng-table-of-content.mjs.map +1 -1
  185. package/fesm2022/lucca-front-ng-tag.mjs +12 -12
  186. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  187. package/fesm2022/lucca-front-ng-text-flow.mjs +3 -3
  188. package/fesm2022/lucca-front-ng-text-flow.mjs.map +1 -1
  189. package/fesm2022/lucca-front-ng-time.mjs +70 -69
  190. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  191. package/fesm2022/lucca-front-ng-title.mjs +10 -10
  192. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  193. package/fesm2022/lucca-front-ng-toast.mjs +13 -13
  194. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  195. package/fesm2022/lucca-front-ng-tooltip.mjs +187 -130
  196. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  197. package/fesm2022/lucca-front-ng-tree-select.mjs +16 -16
  198. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  199. package/fesm2022/lucca-front-ng-user-popover.mjs +21 -21
  200. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  201. package/fesm2022/lucca-front-ng-user.mjs +78 -78
  202. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  203. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +27 -27
  204. package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
  205. package/package.json +11 -5
  206. package/types/lucca-front-ng-callout.d.ts +1 -1
  207. package/types/lucca-front-ng-core-select-department.d.ts +4 -0
  208. package/types/lucca-front-ng-core-select-user.d.ts +1 -1
  209. package/types/lucca-front-ng-core-select.d.ts +5 -5
  210. package/types/lucca-front-ng-core.d.ts +1 -1
  211. package/types/lucca-front-ng-dialog.d.ts +7 -2
  212. package/types/lucca-front-ng-filter-pills.d.ts +4 -4
  213. package/types/lucca-front-ng-form-field.d.ts +4 -3
  214. package/types/lucca-front-ng-forms-rich-text-input.d.ts +1 -0
  215. package/types/lucca-front-ng-forms.d.ts +25 -14
  216. package/types/lucca-front-ng-input.d.ts +1 -1
  217. package/types/lucca-front-ng-multi-select.d.ts +1 -1
  218. package/types/lucca-front-ng-option.d.ts +2 -2
  219. package/types/lucca-front-ng-skeleton.d.ts +5 -1
  220. package/types/lucca-front-ng-software-icon-wrapper.d.ts +31 -0
  221. package/types/lucca-front-ng-software-icon.d.ts +10 -4
  222. package/types/lucca-front-ng-time.d.ts +1 -0
  223. package/types/lucca-front-ng-tooltip.d.ts +2 -2
@@ -1,13 +1,13 @@
1
1
  import { trigger, state, style, transition, animate } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, DestroyRef, signal, ChangeDetectionStrategy, Component, Injectable, ElementRef, Renderer2, Injector, input, linkedSignal, numberAttribute, booleanAttribute, computed, effect, Directive, NgModule } from '@angular/core';
4
- import { Subject, switchMap, of, from, timer, startWith } from 'rxjs';
3
+ import { inject, DestroyRef, signal, ChangeDetectionStrategy, Component, Injectable, ElementRef, Renderer2, Injector, input, linkedSignal, numberAttribute, booleanAttribute, computed, effect, afterRenderEffect, Directive, NgModule } from '@angular/core';
4
+ import { Subject, timer, startWith } from 'rxjs';
5
5
  import { Overlay, OverlayModule } from '@angular/cdk/overlay';
6
6
  import { ComponentPortal } from '@angular/cdk/portal';
7
- import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import { isNotNil, ɵeffectWithDeps as _effectWithDeps } from '@lucca-front/ng/core';
9
- import { debounceTime, filter, debounce, tap, map } from 'rxjs/operators';
10
7
  import { DOCUMENT } from '@angular/common';
8
+ import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
+ import { isNotNil, ɵeffectWithDeps as _effectWithDeps } from '@lucca-front/ng/core';
10
+ import { filter, debounce, tap, map } from 'rxjs/operators';
11
11
 
12
12
  const luTransformTooltip = trigger('transformTooltip', [
13
13
  state('enter', style({
@@ -29,8 +29,8 @@ 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, ...(ngDevMode ? [{ debugName: "content" }] : []));
33
- this.contentPositionClasses = signal({}, ...(ngDevMode ? [{ debugName: "contentPositionClasses" }] : []));
32
+ this.content = signal(null, ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
33
+ this.contentPositionClasses = signal({}, ...(ngDevMode ? [{ debugName: "contentPositionClasses" }] : /* istanbul ignore next */ []));
34
34
  }
35
35
  setPanelPosition(posX, posY) {
36
36
  this.contentPositionClasses.set({
@@ -40,10 +40,10 @@ class LuTooltipPanelComponent {
40
40
  'is-below': posY === 'top',
41
41
  });
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter$.next()", "mouseleave": "mouseLeave$.next()" } }, 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 }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter$.next()", "mouseleave": "mouseLeave$.next()" } }, 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 }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'lu-tooltip-panel', host: {
49
49
  role: 'tooltip',
@@ -52,84 +52,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
52
52
  }, 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"] }]
53
53
  }] });
54
54
 
55
- class EllipsisRuler {
56
- #document = inject(DOCUMENT);
57
- #parentMasked = this.#document.createElement('div');
58
- constructor() {
59
- this.#parentMasked.classList.add('pr-u-mask');
60
- this.#parentMasked.setAttribute('aria-hidden', 'true');
61
- this.#document.body.appendChild(this.#parentMasked);
55
+ /**
56
+ * Single, shared IntersectionObserver used by every tooltip to defer its first ellipsis
57
+ * measurement until the host element is near the viewport.
58
+ *
59
+ * One observer for the whole page is far cheaper than one IntersectionObserver per tooltip when
60
+ * many tooltips are created at once (e.g. a large table being (re)rendered): the browser then
61
+ * delivers a single batched callback instead of one per element.
62
+ */
63
+ class TooltipVisibilityObserver {
64
+ #observer;
65
+ #callbacks = new WeakMap();
66
+ /** Calls `onVisible` once — the first time `element` comes near the viewport — then stops observing it. */
67
+ observeOnce(element, onVisible) {
68
+ this.#callbacks.set(element, onVisible);
69
+ this.#getObserver().observe(element);
62
70
  }
63
- /**
64
- * Checks for ellipsis by cloning the node and comparing its unconstrained width against the original element.
65
- *
66
- * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,
67
- * you'd get true while it should be false and vice-versa, because of rounding.
68
- *
69
- * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,
70
- * which we then compare with its current size.
71
- */
72
- async hasEllipsis(element) {
73
- await this.#nextFrame();
74
- const elementStyle = getComputedStyle(element);
75
- const bodyStyle = getComputedStyle(this.#document.body);
76
- if (elementStyle.textOverflow !== 'ellipsis') {
77
- return false;
78
- }
79
- const { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle } = elementStyle;
80
- const fontSize = (Number(elementStyle.fontSize.replace('px', '')) / Number(bodyStyle.fontSize.replace('px', ''))).toString() + 'rem';
81
- await this.#nextFrame();
82
- const elementCloned = this.#document.createElement('div');
83
- Object.assign(elementCloned.style, {
84
- inlineSize: 'fit-content',
85
- whiteSpace: 'nowrap',
86
- position: 'absolute',
87
- visibility: 'hidden',
88
- padding,
89
- borderWidth,
90
- borderStyle,
91
- boxSizing,
92
- fontFamily,
93
- fontWeight,
94
- fontStyle,
95
- fontSize,
96
- });
97
- this.#parentMasked.appendChild(elementCloned);
98
- elementCloned.innerHTML = element.innerHTML;
99
- try {
100
- const clonedElementWidth = elementCloned.getBoundingClientRect().width.toFixed(3);
101
- const elementWidth = element.getBoundingClientRect().width.toFixed(3);
102
- return parseFloat(clonedElementWidth) > parseFloat(elementWidth);
103
- }
104
- catch {
105
- return false;
106
- }
107
- finally {
108
- this.#parentMasked.removeChild(elementCloned);
109
- }
71
+ unobserve(element) {
72
+ this.#callbacks.delete(element);
73
+ this.#observer?.unobserve(element);
110
74
  }
111
- #nextFrame() {
112
- return new Promise((resolve) => requestAnimationFrame(() => resolve()));
75
+ // Created lazily so the observer is only instantiated in the browser, on first use.
76
+ #getObserver() {
77
+ return (this.#observer ??= new IntersectionObserver((entries) => {
78
+ for (const entry of entries) {
79
+ if (!entry.isIntersecting) {
80
+ continue;
81
+ }
82
+ const onVisible = this.#callbacks.get(entry.target);
83
+ this.unobserve(entry.target);
84
+ onVisible?.();
85
+ }
86
+ }, { rootMargin: '100px' }));
113
87
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EllipsisRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
115
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EllipsisRuler, providedIn: 'root' }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: TooltipVisibilityObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
89
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: TooltipVisibilityObserver, providedIn: 'root' }); }
116
90
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: EllipsisRuler, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: TooltipVisibilityObserver, decorators: [{
118
92
  type: Injectable,
119
93
  args: [{ providedIn: 'root' }]
120
- }], ctorParameters: () => [] });
94
+ }] });
121
95
 
122
96
  let nextId = 0;
123
97
  class LuTooltipTriggerDirective {
124
98
  #overlay;
125
99
  #host;
126
100
  #renderer;
127
- #ruler;
101
+ #document;
128
102
  #injector;
129
103
  #destroyRef;
130
- #isVisible;
131
- #ellipsisTrigger;
104
+ #visibilityObserver;
105
+ // 0 until the element first appears; bumped for the initial measurement and on every real
106
+ // size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).
107
+ #measureTrigger;
108
+ // guards the one-time setup of the persistent resize/mutation observers
109
+ #measurementObserversArmed;
110
+ // the IntersectionObserver callback can fire after the view is destroyed; avoid touching
111
+ // the destroyed injector (NG0911) when that happens
112
+ #destroyed;
113
+ // written only from the `read` phase of the afterRenderEffect below
132
114
  #hasEllipsis;
115
+ // reusable hidden clone, one per directive, used to measure the unconstrained width
116
+ #clone;
133
117
  #action;
134
118
  #realAction;
135
119
  #effectRef;
@@ -137,36 +121,39 @@ class LuTooltipTriggerDirective {
137
121
  this.#overlay = inject(Overlay);
138
122
  this.#host = inject(ElementRef);
139
123
  this.#renderer = inject(Renderer2);
140
- this.#ruler = inject(EllipsisRuler);
124
+ this.#document = inject(DOCUMENT);
141
125
  this.#injector = inject(Injector);
142
126
  this.#destroyRef = inject(DestroyRef);
143
- this.luTooltipInput = input('', { ...(ngDevMode ? { debugName: "luTooltipInput" } : {}), alias: 'luTooltip' });
144
- this.luTooltip = linkedSignal(() => this.luTooltipInput(), ...(ngDevMode ? [{ debugName: "luTooltip" }] : []));
145
- this.luTooltipEnterDelay = input(300, { ...(ngDevMode ? { debugName: "luTooltipEnterDelay" } : {}), transform: numberAttribute });
146
- this.luTooltipLeaveDelay = input(100, { ...(ngDevMode ? { debugName: "luTooltipLeaveDelay" } : {}), transform: numberAttribute });
147
- this.luTooltipDisabled = input(false, { ...(ngDevMode ? { debugName: "luTooltipDisabled" } : {}), transform: booleanAttribute });
148
- this.luTooltipOnlyForDisplay = input(false, { ...(ngDevMode ? { debugName: "luTooltipOnlyForDisplay" } : {}), transform: booleanAttribute });
149
- this.luTooltipPosition = input('above', ...(ngDevMode ? [{ debugName: "luTooltipPosition" }] : []));
150
- this.luTooltipWhenEllipsisInput = input(false, { ...(ngDevMode ? { debugName: "luTooltipWhenEllipsisInput" } : {}), alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });
151
- this.luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput(), ...(ngDevMode ? [{ debugName: "luTooltipWhenEllipsis" }] : []));
152
- this.luTooltipAnchor = input(this.#host, ...(ngDevMode ? [{ debugName: "luTooltipAnchor" }] : []));
153
- this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
127
+ this.#visibilityObserver = inject(TooltipVisibilityObserver);
128
+ this.luTooltipInput = input('', { ...(ngDevMode ? { debugName: "luTooltipInput" } : /* istanbul ignore next */ {}), alias: 'luTooltip' });
129
+ this.luTooltip = linkedSignal(() => this.luTooltipInput(), ...(ngDevMode ? [{ debugName: "luTooltip" }] : /* istanbul ignore next */ []));
130
+ this.luTooltipEnterDelay = input(300, { ...(ngDevMode ? { debugName: "luTooltipEnterDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
131
+ this.luTooltipLeaveDelay = input(100, { ...(ngDevMode ? { debugName: "luTooltipLeaveDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
132
+ this.luTooltipDisabled = input(false, { ...(ngDevMode ? { debugName: "luTooltipDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
133
+ this.luTooltipOnlyForDisplay = input(false, { ...(ngDevMode ? { debugName: "luTooltipOnlyForDisplay" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
134
+ this.luTooltipPosition = input('above', ...(ngDevMode ? [{ debugName: "luTooltipPosition" }] : /* istanbul ignore next */ []));
135
+ this.luTooltipWhenEllipsisInput = input(false, { ...(ngDevMode ? { debugName: "luTooltipWhenEllipsisInput" } : /* istanbul ignore next */ {}), alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });
136
+ this.luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput(), ...(ngDevMode ? [{ debugName: "luTooltipWhenEllipsis" }] : /* istanbul ignore next */ []));
137
+ this.luTooltipAnchor = input(this.#host, ...(ngDevMode ? [{ debugName: "luTooltipAnchor" }] : /* istanbul ignore next */ []));
138
+ this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
154
139
  this.ariaDescribedBy = computed(() => {
155
140
  if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {
156
141
  return null;
157
142
  }
158
143
  return `${this.id()}-panel`;
159
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : []));
160
- this.#isVisible = signal(false, ...(ngDevMode ? [{ debugName: "#isVisible" }] : []));
161
- this.#ellipsisTrigger = signal(0, ...(ngDevMode ? [{ debugName: "#ellipsisTrigger" }] : []));
162
- this.#hasEllipsis = toSignal(toObservable(this.#ellipsisTrigger).pipe(debounceTime(150), switchMap(() => {
163
- if (!this.luTooltipWhenEllipsis() || this.luTooltipDisabled()) {
164
- return of(false);
165
- }
166
- return from(this.#ruler.hasEllipsis(this.#host.nativeElement));
167
- })), { initialValue: false });
168
- this.#action = signal(null, ...(ngDevMode ? [{ debugName: "#action" }] : []));
169
- this.#realAction = linkedSignal({ ...(ngDevMode ? { debugName: "#realAction" } : {}), source: this.#action,
144
+ }, ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []));
145
+ // 0 until the element first appears; bumped for the initial measurement and on every real
146
+ // size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).
147
+ this.#measureTrigger = signal(0, ...(ngDevMode ? [{ debugName: "#measureTrigger" }] : /* istanbul ignore next */ []));
148
+ // guards the one-time setup of the persistent resize/mutation observers
149
+ this.#measurementObserversArmed = false;
150
+ // the IntersectionObserver callback can fire after the view is destroyed; avoid touching
151
+ // the destroyed injector (NG0911) when that happens
152
+ this.#destroyed = false;
153
+ // written only from the `read` phase of the afterRenderEffect below
154
+ this.#hasEllipsis = signal(false, ...(ngDevMode ? [{ debugName: "#hasEllipsis" }] : /* istanbul ignore next */ []));
155
+ this.#action = signal(null, ...(ngDevMode ? [{ debugName: "#action" }] : /* istanbul ignore next */ []));
156
+ this.#realAction = linkedSignal({ ...(ngDevMode ? { debugName: "#realAction" } : /* istanbul ignore next */ {}), source: this.#action,
170
157
  computation: (action, previous) => {
171
158
  if (!action || action === 'close') {
172
159
  return action;
@@ -181,6 +168,7 @@ class LuTooltipTriggerDirective {
181
168
  }
182
169
  return 'open';
183
170
  } });
171
+ this.#destroyRef.onDestroy(() => (this.#destroyed = true));
184
172
  // Action debounce pipeline — kept as Observable since signals can't debounce
185
173
  toObservable(this.#realAction)
186
174
  .pipe(filter(isNotNil), debounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())), tap((event) => {
@@ -200,32 +188,101 @@ class LuTooltipTriggerDirective {
200
188
  this.setAccessibilityProperties(null);
201
189
  }
202
190
  });
191
+ // Defer the first measurement until the element is near the viewport, then stop tracking
192
+ // visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.
193
+ // A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).
203
194
  effect((onCleanup) => {
204
- if (!this.luTooltipWhenEllipsis() || this.luTooltipDisabled()) {
205
- this.#isVisible.set(false);
206
- return;
207
- }
208
- const observer = new IntersectionObserver((entries) => this.#isVisible.set(entries.some((e) => e.isIntersecting)), { rootMargin: '100px' });
209
- observer.observe(this.#host.nativeElement);
210
- onCleanup(() => observer.disconnect());
211
- });
212
- effect((onCleanup) => {
213
- if (!this.#isVisible() || !this.luTooltipWhenEllipsis() || this.luTooltipDisabled()) {
195
+ if (!this.luTooltipWhenEllipsis() || this.luTooltipDisabled() || this.#measurementObserversArmed) {
214
196
  return;
215
197
  }
216
198
  const el = this.#host.nativeElement;
217
- const bump = () => this.#ellipsisTrigger.update((v) => v + 1);
218
- const resizeObserver = new ResizeObserver(() => bump());
219
- resizeObserver.observe(el);
220
- const mutationObserver = new MutationObserver(() => bump());
221
- mutationObserver.observe(el, { characterData: true, subtree: true, childList: true });
222
- // Initial check when element becomes visible prevents regression where tooltips never appear
223
- bump();
224
- onCleanup(() => {
225
- resizeObserver.disconnect();
226
- mutationObserver.disconnect();
227
- });
199
+ this.#visibilityObserver.observeOnce(el, () => this.#armMeasurementObservers());
200
+ onCleanup(() => this.#visibilityObserver.unobserve(el));
201
+ });
202
+ // Ellipsis measurement, split across afterRenderEffect phases so that — across every tooltip
203
+ // on the page all DOM writes happen together, then all geometry reads happen together.
204
+ // This keeps the whole batch to a single forced reflow instead of one reflow per element.
205
+ afterRenderEffect({
206
+ earlyRead: () => {
207
+ // reading the trigger registers the dependency; 0 means "not measured yet"
208
+ const measured = this.#measureTrigger() > 0;
209
+ const shouldMeasure = measured && !this.luTooltipDisabled() && this.luTooltipWhenEllipsis();
210
+ if (!shouldMeasure) {
211
+ return { measure: false };
212
+ }
213
+ const host = this.#host.nativeElement;
214
+ const hostStyle = getComputedStyle(host);
215
+ if (hostStyle.textOverflow !== 'ellipsis') {
216
+ return { measure: false };
217
+ }
218
+ return { measure: true, host, hostStyle };
219
+ },
220
+ write: (earlyReadResult) => {
221
+ const snapshot = earlyReadResult();
222
+ if (!snapshot.measure) {
223
+ return { measure: false };
224
+ }
225
+ const clone = (this.#clone ??= this.#createClone());
226
+ this.#applyClonedStyles(clone, snapshot.hostStyle);
227
+ clone.innerHTML = snapshot.host.innerHTML;
228
+ return { measure: true, host: snapshot.host, clone };
229
+ },
230
+ read: (writeResult) => {
231
+ const measurement = writeResult();
232
+ if (!measurement.measure) {
233
+ this.#hasEllipsis.set(false);
234
+ return;
235
+ }
236
+ const cloneWidth = measurement.clone.getBoundingClientRect().width;
237
+ const hostWidth = measurement.host.getBoundingClientRect().width;
238
+ // rounded to 3 decimals to ignore sub-pixel noise
239
+ this.#hasEllipsis.set(Math.round(cloneWidth * 1000) > Math.round(hostWidth * 1000));
240
+ },
228
241
  });
242
+ this.#destroyRef.onDestroy(() => this.#clone?.remove());
243
+ }
244
+ // Set up — once — the observers that ask for a re-measurement on real size/content changes.
245
+ // They stay connected for the directive lifetime (even off-screen), so scrolling never
246
+ // re-measures; only an actual resize/mutation does.
247
+ #armMeasurementObservers() {
248
+ if (this.#measurementObserversArmed || this.#destroyed) {
249
+ return;
250
+ }
251
+ this.#measurementObserversArmed = true;
252
+ const el = this.#host.nativeElement;
253
+ const bump = () => this.#measureTrigger.update((v) => v + 1);
254
+ const resizeObserver = new ResizeObserver(() => bump());
255
+ resizeObserver.observe(el);
256
+ const mutationObserver = new MutationObserver(() => bump());
257
+ mutationObserver.observe(el, { characterData: true, subtree: true, childList: true });
258
+ this.#destroyRef.onDestroy(() => {
259
+ resizeObserver.disconnect();
260
+ mutationObserver.disconnect();
261
+ });
262
+ // initial measurement now that the element has appeared
263
+ bump();
264
+ }
265
+ #createClone() {
266
+ const clone = this.#document.createElement('div');
267
+ clone.setAttribute('aria-hidden', 'true');
268
+ Object.assign(clone.style, {
269
+ inlineSize: 'fit-content',
270
+ whiteSpace: 'nowrap',
271
+ // `fixed` + pinned origin keeps the (potentially very wide) clone out of the
272
+ // document's scrollable overflow, so measuring never flashes a scrollbar.
273
+ position: 'fixed',
274
+ insetBlockStart: '0',
275
+ insetInlineStart: '0',
276
+ visibility: 'hidden',
277
+ pointerEvents: 'none',
278
+ contain: 'layout',
279
+ });
280
+ this.#document.body.appendChild(clone);
281
+ return clone;
282
+ }
283
+ #applyClonedStyles(clone, hostStyle) {
284
+ const { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = hostStyle;
285
+ Object.assign(clone.style, { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize });
229
286
  }
230
287
  onMouseEnter() {
231
288
  this.#action.set('open');
@@ -415,10 +472,10 @@ class LuTooltipTriggerDirective {
415
472
  }
416
473
  return x;
417
474
  }
418
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
419
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltipInput: { classPropertyName: "luTooltipInput", 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 }, luTooltipWhenEllipsisInput: { classPropertyName: "luTooltipWhenEllipsisInput", 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 }); }
475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
476
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltipInput: { classPropertyName: "luTooltipInput", 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 }, luTooltipWhenEllipsisInput: { classPropertyName: "luTooltipWhenEllipsisInput", 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 }); }
420
477
  }
421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
422
479
  type: Directive,
423
480
  args: [{
424
481
  selector: '[luTooltip]',
@@ -435,14 +492,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
435
492
  }], ctorParameters: () => [], propDecorators: { luTooltipInput: [{ 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 }] }], luTooltipWhenEllipsisInput: [{ 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 }] }] } });
436
493
 
437
494
  /**
438
- * @deprecated use `LuTooltipTriggerDirective, OverlayModule` instead
495
+ * @deprecated use `LuTooltipTriggerDirective` instead
439
496
  */
440
497
  class LuTooltipTriggerModule {
441
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipTriggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
442
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipTriggerModule, imports: [LuTooltipTriggerDirective, OverlayModule], exports: [LuTooltipTriggerDirective] }); }
443
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipTriggerModule, imports: [OverlayModule] }); }
498
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipTriggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
499
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipTriggerModule, imports: [LuTooltipTriggerDirective, OverlayModule], exports: [LuTooltipTriggerDirective] }); }
500
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipTriggerModule, imports: [OverlayModule] }); }
444
501
  }
445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipTriggerModule, decorators: [{
502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipTriggerModule, decorators: [{
446
503
  type: NgModule,
447
504
  args: [{
448
505
  imports: [LuTooltipTriggerDirective, OverlayModule],
@@ -451,14 +508,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
451
508
  }] });
452
509
 
453
510
  /**
454
- * @deprecated use `LuTooltipTriggerDirective, OverlayModule, LuTooltipPanelComponent` instead
511
+ * @deprecated use `LuTooltipTriggerDirective, LuTooltipPanelComponent` instead
455
512
  */
456
513
  class LuTooltipModule {
457
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
458
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelComponent], exports: [LuTooltipTriggerModule, LuTooltipPanelComponent] }); }
459
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipTriggerModule] }); }
514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
515
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelComponent], exports: [LuTooltipTriggerModule, LuTooltipPanelComponent] }); }
516
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipTriggerModule] }); }
460
517
  }
461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: LuTooltipModule, decorators: [{
518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuTooltipModule, decorators: [{
462
519
  type: NgModule,
463
520
  args: [{
464
521
  imports: [LuTooltipTriggerModule, LuTooltipPanelComponent],