primeng 22.1.3 → 22.1.5

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 (197) hide show
  1. package/LICENSE.md +2 -0
  2. package/fesm2022/primeng-accordion.mjs +23 -23
  3. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  4. package/fesm2022/primeng-api.mjs +31 -31
  5. package/fesm2022/primeng-autocomplete.mjs +54 -30
  6. package/fesm2022/primeng-autofocus.mjs +7 -7
  7. package/fesm2022/primeng-avatar.mjs +10 -10
  8. package/fesm2022/primeng-avatargroup.mjs +10 -10
  9. package/fesm2022/primeng-badge.mjs +14 -14
  10. package/fesm2022/primeng-base.mjs +9 -4
  11. package/fesm2022/primeng-basecomponent.mjs +25 -16
  12. package/fesm2022/primeng-baseeditableholder.mjs +3 -3
  13. package/fesm2022/primeng-baseinput.mjs +3 -3
  14. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  15. package/fesm2022/primeng-bind.mjs +7 -7
  16. package/fesm2022/primeng-blockui.mjs +10 -10
  17. package/fesm2022/primeng-breadcrumb.mjs +14 -14
  18. package/fesm2022/primeng-button.mjs +19 -19
  19. package/fesm2022/primeng-buttongroup.mjs +14 -14
  20. package/fesm2022/primeng-card.mjs +10 -10
  21. package/fesm2022/primeng-carousel.mjs +31 -31
  22. package/fesm2022/primeng-cascadeselect.mjs +13 -13
  23. package/fesm2022/primeng-chart.mjs +10 -10
  24. package/fesm2022/primeng-checkbox.mjs +10 -10
  25. package/fesm2022/primeng-chip.mjs +10 -10
  26. package/fesm2022/primeng-classnames.mjs +7 -7
  27. package/fesm2022/primeng-colorpicker.mjs +10 -10
  28. package/fesm2022/primeng-commandmenu.mjs +10 -10
  29. package/fesm2022/primeng-compare.mjs +19 -19
  30. package/fesm2022/primeng-config.mjs +10 -8
  31. package/fesm2022/primeng-confirmdialog.mjs +10 -10
  32. package/fesm2022/primeng-confirmpopup.mjs +14 -14
  33. package/fesm2022/primeng-contextmenu.mjs +13 -13
  34. package/fesm2022/primeng-dataview.mjs +10 -10
  35. package/fesm2022/primeng-datepicker.mjs +44 -15
  36. package/fesm2022/primeng-dialog.mjs +10 -10
  37. package/fesm2022/primeng-divider.mjs +10 -10
  38. package/fesm2022/primeng-dock.mjs +10 -10
  39. package/fesm2022/primeng-dragdrop.mjs +10 -10
  40. package/fesm2022/primeng-drawer.mjs +15 -17
  41. package/fesm2022/primeng-dynamicdialog.mjs +16 -16
  42. package/fesm2022/primeng-editor.mjs +10 -10
  43. package/fesm2022/primeng-fieldset.mjs +10 -12
  44. package/fesm2022/primeng-fileupload.mjs +13 -13
  45. package/fesm2022/primeng-floatlabel.mjs +10 -10
  46. package/fesm2022/primeng-fluid.mjs +10 -10
  47. package/fesm2022/primeng-focustrap.mjs +7 -7
  48. package/fesm2022/primeng-galleria.mjs +22 -22
  49. package/fesm2022/primeng-gallery.mjs +75 -73
  50. package/fesm2022/primeng-iconfield.mjs +10 -10
  51. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  52. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  53. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  54. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  55. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  56. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  57. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  58. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  59. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  60. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  61. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  62. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  63. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  64. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  65. package/fesm2022/primeng-icons-ban.mjs +3 -3
  66. package/fesm2022/primeng-icons-bars.mjs +3 -3
  67. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  68. package/fesm2022/primeng-icons-blank.mjs +3 -3
  69. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  70. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  71. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  72. package/fesm2022/primeng-icons-check.mjs +3 -3
  73. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  74. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  75. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  76. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  77. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  78. package/fesm2022/primeng-icons-eye.mjs +3 -3
  79. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  80. package/fesm2022/primeng-icons-filter.mjs +3 -3
  81. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  82. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  83. package/fesm2022/primeng-icons-home.mjs +3 -3
  84. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  85. package/fesm2022/primeng-icons-minus.mjs +3 -3
  86. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  87. package/fesm2022/primeng-icons-plus.mjs +3 -3
  88. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  89. package/fesm2022/primeng-icons-search.mjs +3 -3
  90. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  91. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  92. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  93. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  94. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  95. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  96. package/fesm2022/primeng-icons-star.mjs +3 -3
  97. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  98. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  99. package/fesm2022/primeng-icons-times.mjs +3 -3
  100. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  101. package/fesm2022/primeng-icons-trash.mjs +3 -3
  102. package/fesm2022/primeng-icons-undo.mjs +3 -3
  103. package/fesm2022/primeng-icons-upload.mjs +3 -3
  104. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  105. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  106. package/fesm2022/primeng-iftalabel.mjs +10 -10
  107. package/fesm2022/primeng-image.mjs +10 -10
  108. package/fesm2022/primeng-imagecompare.mjs +10 -10
  109. package/fesm2022/primeng-inplace.mjs +16 -16
  110. package/fesm2022/primeng-inputcolor.mjs +43 -43
  111. package/fesm2022/primeng-inputgroup.mjs +14 -14
  112. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  113. package/fesm2022/primeng-inputicon.mjs +10 -10
  114. package/fesm2022/primeng-inputmask.mjs +13 -13
  115. package/fesm2022/primeng-inputnumber.mjs +10 -10
  116. package/fesm2022/primeng-inputotp.mjs +10 -10
  117. package/fesm2022/primeng-inputpassword.mjs +10 -10
  118. package/fesm2022/primeng-inputtags.mjs +22 -18
  119. package/fesm2022/primeng-inputtext.mjs +10 -10
  120. package/fesm2022/primeng-isolation.mjs +9 -9
  121. package/fesm2022/primeng-keyfilter.mjs +7 -7
  122. package/fesm2022/primeng-knob.mjs +10 -10
  123. package/fesm2022/primeng-label.mjs +10 -10
  124. package/fesm2022/primeng-listbox.mjs +46 -34
  125. package/fesm2022/primeng-megamenu.mjs +13 -13
  126. package/fesm2022/primeng-menu.mjs +30 -24
  127. package/fesm2022/primeng-menubar.mjs +20 -20
  128. package/fesm2022/primeng-message.mjs +12 -10
  129. package/fesm2022/primeng-metergroup.mjs +13 -13
  130. package/fesm2022/primeng-motion.mjs +13 -13
  131. package/fesm2022/primeng-multiselect.mjs +61 -29
  132. package/fesm2022/primeng-orderlist.mjs +12 -10
  133. package/fesm2022/primeng-organizationchart.mjs +129 -31
  134. package/fesm2022/primeng-overlay.mjs +10 -10
  135. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  136. package/fesm2022/primeng-paginator.mjs +16 -12
  137. package/fesm2022/primeng-panel.mjs +10 -12
  138. package/fesm2022/primeng-panelmenu.mjs +36 -28
  139. package/fesm2022/primeng-password.mjs +20 -20
  140. package/fesm2022/primeng-picklist.mjs +14 -10
  141. package/fesm2022/primeng-popover.mjs +10 -10
  142. package/fesm2022/primeng-progressbar.mjs +10 -10
  143. package/fesm2022/primeng-progressspinner.mjs +10 -10
  144. package/fesm2022/primeng-radiobutton.mjs +13 -13
  145. package/fesm2022/primeng-rating.mjs +10 -10
  146. package/fesm2022/primeng-ripple.mjs +14 -14
  147. package/fesm2022/primeng-scrollarea.mjs +25 -25
  148. package/fesm2022/primeng-scroller.mjs +35 -16
  149. package/fesm2022/primeng-scrollpanel.mjs +14 -14
  150. package/fesm2022/primeng-scrolltop.mjs +10 -10
  151. package/fesm2022/primeng-select.mjs +79 -47
  152. package/fesm2022/primeng-selectbutton.mjs +12 -10
  153. package/fesm2022/primeng-sidebar.mjs +83 -83
  154. package/fesm2022/primeng-skeleton.mjs +10 -10
  155. package/fesm2022/primeng-slider.mjs +10 -10
  156. package/fesm2022/primeng-speeddial.mjs +10 -10
  157. package/fesm2022/primeng-splitbutton.mjs +10 -10
  158. package/fesm2022/primeng-splitter.mjs +13 -13
  159. package/fesm2022/primeng-stepper.mjs +47 -47
  160. package/fesm2022/primeng-steps.mjs +10 -10
  161. package/fesm2022/primeng-styleclass.mjs +7 -7
  162. package/fesm2022/primeng-table.mjs +201 -115
  163. package/fesm2022/primeng-tabs.mjs +50 -34
  164. package/fesm2022/primeng-tag.mjs +10 -10
  165. package/fesm2022/primeng-terminal.mjs +15 -15
  166. package/fesm2022/primeng-textarea.mjs +10 -10
  167. package/fesm2022/primeng-tieredmenu.mjs +13 -13
  168. package/fesm2022/primeng-timeline.mjs +24 -18
  169. package/fesm2022/primeng-toast.mjs +13 -13
  170. package/fesm2022/primeng-togglebutton.mjs +14 -14
  171. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  172. package/fesm2022/primeng-toolbar.mjs +10 -10
  173. package/fesm2022/primeng-tooltip.mjs +94 -80
  174. package/fesm2022/primeng-tree.mjs +131 -33
  175. package/fesm2022/primeng-treeselect.mjs +37 -10
  176. package/fesm2022/primeng-treetable.mjs +84 -62
  177. package/fesm2022/primeng-useid.mjs +3 -3
  178. package/fesm2022/primeng-usestyle.mjs +6 -6
  179. package/package.json +20 -20
  180. package/types/primeng-api.d.ts +7 -2
  181. package/types/primeng-base.d.ts +1 -0
  182. package/types/primeng-basecomponent.d.ts +2 -0
  183. package/types/primeng-config.d.ts +7 -2
  184. package/types/primeng-confirmpopup.d.ts +2 -2
  185. package/types/primeng-datepicker.d.ts +9 -0
  186. package/types/primeng-motion.d.ts +0 -15
  187. package/types/primeng-scroller.d.ts +5 -3
  188. package/types/primeng-select.d.ts +6 -5
  189. package/types/primeng-stepper.d.ts +0 -95
  190. package/types/primeng-table.d.ts +5 -3
  191. package/types/primeng-tabs.d.ts +3 -76
  192. package/types/primeng-tooltip.d.ts +18 -7
  193. package/types/primeng-treeselect.d.ts +9 -2
  194. package/types/primeng-types-select.d.ts +4 -0
  195. package/types/primeng-types-treeselect.d.ts +15 -0
  196. package/types/primeng-utils.d.ts +0 -1
  197. package/types/primeng.d.ts +1 -2
@@ -1,8 +1,8 @@
1
1
  import { isPlatformBrowser } from "@angular/common";
2
2
  import * as i0 from "@angular/core";
3
- import { Directive, Injectable, InjectionToken, NgModule, ViewContainerRef, booleanAttribute, computed, effect, inject, input, numberAttribute, untracked } from "@angular/core";
4
- import { appendChild, createElement, fadeIn, findSingle, getOuterHeight, getOuterWidth, getViewport, getWindowScrollLeft, getWindowScrollTop, hasClass, removeChild } from "@primeuix/utils";
5
- import { BaseComponent, PARENT_INSTANCE } from "primeng/basecomponent";
3
+ import { Directive, Injectable, InjectionToken, NgModule, NgZone, ViewContainerRef, booleanAttribute, computed, effect, inject, input, numberAttribute, untracked } from "@angular/core";
4
+ import { appendChild, createElement, fadeIn, findSingle, getActiveElement, getOuterHeight, getOuterWidth, getViewport, getWindowScrollLeft, getWindowScrollTop, hasClass, isPrefersReducedMotion, removeChild } from "@primeuix/utils";
5
+ import { BaseComponent } from "primeng/basecomponent";
6
6
  import { BindModule } from "primeng/bind";
7
7
  import { ConnectedOverlayScrollHandler, getEventTarget } from "primeng/dom";
8
8
  import { ZIndexUtils } from "primeng/utils";
@@ -19,7 +19,7 @@ var TooltipStyle = class TooltipStyle extends BaseStyle {
19
19
  classes = classes;
20
20
  static ɵfac = i0.ɵɵngDeclareFactory({
21
21
  minVersion: "12.0.0",
22
- version: "22.2.3",
22
+ version: "22.2.5",
23
23
  ngImport: i0,
24
24
  type: TooltipStyle,
25
25
  deps: null,
@@ -27,14 +27,14 @@ var TooltipStyle = class TooltipStyle extends BaseStyle {
27
27
  });
28
28
  static ɵprov = i0.ɵɵngDeclareInjectable({
29
29
  minVersion: "12.0.0",
30
- version: "22.2.3",
30
+ version: "22.2.5",
31
31
  ngImport: i0,
32
32
  type: TooltipStyle
33
33
  });
34
34
  };
35
35
  i0.ɵɵngDeclareClassMetadata({
36
36
  minVersion: "12.0.0",
37
- version: "22.2.3",
37
+ version: "22.2.5",
38
38
  ngImport: i0,
39
39
  type: TooltipStyle,
40
40
  decorators: [{ type: Injectable }]
@@ -46,6 +46,9 @@ var TooltipClasses;
46
46
  TooltipClasses["text"] = "p-tooltip-text";
47
47
  })(TooltipClasses || (TooltipClasses = {}));
48
48
  const TOOLTIP_INSTANCE = new InjectionToken("TOOLTIP_INSTANCE");
49
+ function isTemplateRef(value) {
50
+ return typeof value?.createEmbeddedView === "function";
51
+ }
49
52
  var Tooltip = class Tooltip extends BaseComponent {
50
53
  componentName = "Tooltip";
51
54
  $pcTooltip = inject(TOOLTIP_INSTANCE, {
@@ -109,33 +112,39 @@ var Tooltip = class Tooltip extends BaseComponent {
109
112
  appendTo = input(void 0, ...ngDevMode ? [{ debugName: "appendTo" }] : /* istanbul ignore next */ []);
110
113
  $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo(), ...ngDevMode ? [{ debugName: "$appendTo" }] : /* istanbul ignore next */ []);
111
114
  tooltipId = this.$useId.next("pn_id_") + "_tooltip";
112
- _tooltipOptions = computed(() => ({
113
- tooltipLabel: this.content(),
114
- tooltipPosition: this.tooltipPosition() ?? "right",
115
- tooltipEvent: this.tooltipEvent(),
116
- appendTo: this.appendTo() ?? "body",
117
- positionStyle: this.positionStyle(),
118
- tooltipStyleClass: this.tooltipStyleClass(),
119
- tooltipZIndex: this.tooltipZIndex() ?? "auto",
120
- escape: this.escape(),
121
- showDelay: this.showDelay(),
122
- hideDelay: this.hideDelay(),
123
- life: this.life(),
124
- positionTop: this.positionTop() ?? 0,
125
- positionLeft: this.positionLeft() ?? 0,
126
- autoHide: this.autoHide(),
127
- hideOnEscape: this.hideOnEscape(),
128
- showOnEllipsis: this.showOnEllipsis(),
129
- disabled: this.tooltipDisabled(),
130
- ...this.tooltipOptions(),
131
- id: this.tooltipId
132
- }), ...ngDevMode ? [{ debugName: "_tooltipOptions" }] : /* istanbul ignore next */ []);
115
+ _tooltipOptions = computed(() => {
116
+ const options = Object.fromEntries(Object.entries(this.tooltipOptions() ?? {}).filter(([, value]) => value !== void 0));
117
+ return {
118
+ tooltipLabel: this.content(),
119
+ tooltipPosition: this.tooltipPosition() ?? "right",
120
+ tooltipEvent: this.tooltipEvent(),
121
+ appendTo: this.appendTo() ?? "body",
122
+ positionStyle: this.positionStyle(),
123
+ tooltipStyleClass: this.tooltipStyleClass(),
124
+ tooltipZIndex: this.tooltipZIndex() ?? "auto",
125
+ escape: this.escape(),
126
+ showDelay: this.showDelay(),
127
+ hideDelay: this.hideDelay(),
128
+ life: this.life(),
129
+ positionTop: this.positionTop() ?? 0,
130
+ positionLeft: this.positionLeft() ?? 0,
131
+ autoHide: this.autoHide(),
132
+ hideOnEscape: this.hideOnEscape(),
133
+ fitContent: this.fitContent(),
134
+ showOnEllipsis: this.showOnEllipsis(),
135
+ disabled: this.tooltipDisabled(),
136
+ ...options,
137
+ id: this.tooltipId
138
+ };
139
+ }, ...ngDevMode ? [{ debugName: "_tooltipOptions" }] : /* istanbul ignore next */ []);
133
140
  container = null;
134
141
  styleClass;
135
142
  tooltipText = null;
136
143
  rootPTClasses = "";
137
144
  showTimeout = null;
138
145
  hideTimeout = null;
146
+ fadeInCancel;
147
+ alignTimeout = null;
139
148
  active;
140
149
  mouseEnterListener;
141
150
  mouseLeaveListener;
@@ -153,6 +162,7 @@ var Tooltip = class Tooltip extends BaseComponent {
153
162
  pTooltipPT = input(...ngDevMode ? [void 0, { debugName: "pTooltipPT" }] : /* istanbul ignore next */ []);
154
163
  pTooltipUnstyled = input(...ngDevMode ? [void 0, { debugName: "pTooltipUnstyled" }] : /* istanbul ignore next */ []);
155
164
  viewContainer = inject(ViewContainerRef);
165
+ zone = inject(NgZone);
156
166
  constructor() {
157
167
  super();
158
168
  effect(() => {
@@ -199,7 +209,7 @@ var Tooltip = class Tooltip extends BaseComponent {
199
209
  });
200
210
  }
201
211
  onAfterViewInit() {
202
- if (isPlatformBrowser(this.platformId)) {
212
+ if (isPlatformBrowser(this.platformId)) this.zone.runOutsideAngular(() => {
203
213
  const tooltipEvent = this.getOption("tooltipEvent");
204
214
  if (tooltipEvent === "hover" || tooltipEvent === "both") {
205
215
  this.mouseEnterListener = this.onMouseEnter.bind(this);
@@ -221,10 +231,10 @@ var Tooltip = class Tooltip extends BaseComponent {
221
231
  target.addEventListener("focus", this.focusListener);
222
232
  target.addEventListener("blur", this.blurListener);
223
233
  }
224
- }
234
+ });
225
235
  }
226
236
  isAutoHide() {
227
- return this.getOption("autoHide");
237
+ return !!this.getOption("autoHide");
228
238
  }
229
239
  onMouseEnter(e) {
230
240
  if (!this.container && !this.showTimeout) this.activate();
@@ -264,6 +274,7 @@ var Tooltip = class Tooltip extends BaseComponent {
264
274
  this.deactivate();
265
275
  }
266
276
  onInputClick(e) {
277
+ if (this.getOption("tooltipEvent") === "both" && this.el.nativeElement.contains(getActiveElement(this.el.nativeElement))) return;
267
278
  this.deactivate();
268
279
  }
269
280
  hasEllipsis() {
@@ -310,6 +321,7 @@ var Tooltip = class Tooltip extends BaseComponent {
310
321
  this.remove();
311
322
  }
312
323
  const container = createElement("div", {
324
+ id: this.getOption("id"),
313
325
  class: this.cx("root"),
314
326
  "p-bind": this.ptm("root"),
315
327
  "data-pc-section": "root"
@@ -329,13 +341,14 @@ var Tooltip = class Tooltip extends BaseComponent {
329
341
  this.container = container;
330
342
  this.tooltipText = tooltipText;
331
343
  this.updateText();
332
- if (this.getOption("positionStyle")) container.style.position = this.getOption("positionStyle");
344
+ const positionStyle = this.getOption("positionStyle");
345
+ if (positionStyle) container.style.position = positionStyle;
333
346
  container.appendChild(tooltipText);
334
347
  if (this.getOption("appendTo") === "body") this.$overlayParent(document.body, container).appendChild(container);
335
348
  else if (this.getOption("appendTo") === "target") appendChild(container, this.el.nativeElement);
336
349
  else appendChild(this.$overlayParent(this.getOption("appendTo"), container), container);
337
350
  container.style.display = "none";
338
- if (this.fitContent()) container.style.width = "fit-content";
351
+ if (this.getOption("fitContent")) container.style.width = "fit-content";
339
352
  if (this.isAutoHide()) container.style.pointerEvents = "none";
340
353
  else {
341
354
  container.style.pointerEvents = "unset";
@@ -349,7 +362,7 @@ var Tooltip = class Tooltip extends BaseComponent {
349
362
  }
350
363
  unbindContainerMouseleaveListener() {
351
364
  if (this.containerMouseleaveListener) {
352
- this.bindContainerMouseleaveListener();
365
+ this.containerMouseleaveListener();
353
366
  this.containerMouseleaveListener = null;
354
367
  }
355
368
  }
@@ -357,21 +370,24 @@ var Tooltip = class Tooltip extends BaseComponent {
357
370
  if (!this.getOption("tooltipLabel") || this.getOption("disabled")) return;
358
371
  this.create();
359
372
  const container = this.container;
360
- if (this.el.nativeElement.closest("p-dialog")) setTimeout(() => {
373
+ if (this.el.nativeElement.closest("p-dialog")) this.alignTimeout = setTimeout(() => {
361
374
  if (this.container) {
362
375
  this.container.style.display = "inline-block";
363
376
  this.align();
377
+ if (!isPrefersReducedMotion()) this.fadeInCancel = fadeIn(this.container, 250);
364
378
  }
365
379
  }, 100);
366
380
  else {
367
381
  container.style.display = "inline-block";
368
382
  this.align();
383
+ if (!isPrefersReducedMotion()) this.fadeInCancel = fadeIn(container, 250);
369
384
  }
370
- fadeIn(container, 250);
371
385
  if (this.getOption("tooltipZIndex") === "auto") ZIndexUtils.set("tooltip", container, this.config.zIndex.tooltip);
372
- else container.style.zIndex = this.getOption("tooltipZIndex");
386
+ else container.style.zIndex = String(this.getOption("tooltipZIndex"));
373
387
  this.bindDocumentResizeListener();
374
388
  this.bindScrollListener();
389
+ const target = this.getTarget(this.el.nativeElement);
390
+ if (target && !target.getAttribute("aria-describedby")) target.setAttribute("aria-describedby", container.id);
375
391
  }
376
392
  hide() {
377
393
  if (this.getOption("tooltipZIndex") === "auto") ZIndexUtils.clear(this.container);
@@ -380,14 +396,14 @@ var Tooltip = class Tooltip extends BaseComponent {
380
396
  updateText() {
381
397
  if (!this.tooltipText) return;
382
398
  const content = this.getOption("tooltipLabel");
383
- if (content && typeof content.createEmbeddedView === "function") {
399
+ if (isTemplateRef(content)) {
384
400
  const embeddedViewRef = this.viewContainer.createEmbeddedView(content);
385
401
  embeddedViewRef.detectChanges();
386
402
  embeddedViewRef.rootNodes.forEach((node) => this.tooltipText.appendChild(node));
387
403
  } else if (this.getOption("escape")) {
388
- this.tooltipText.innerHTML = "";
389
- this.tooltipText.appendChild(document.createTextNode(content));
390
- } else this.tooltipText.innerHTML = content;
404
+ this.tooltipText.textContent = "";
405
+ this.tooltipText.appendChild(document.createTextNode(content ?? ""));
406
+ } else this.tooltipText.innerHTML = content ?? "";
391
407
  }
392
408
  align() {
393
409
  const position = this.getOption("tooltipPosition");
@@ -423,7 +439,7 @@ var Tooltip = class Tooltip extends BaseComponent {
423
439
  }
424
440
  getHostOffset() {
425
441
  if (this.getOption("appendTo") === "body" || this.getOption("appendTo") === "target") {
426
- let offset = this.el.nativeElement.getBoundingClientRect();
442
+ let offset = this.anchorElement.getBoundingClientRect();
427
443
  return {
428
444
  left: offset.left + getWindowScrollLeft(),
429
445
  top: offset.top + getWindowScrollTop()
@@ -436,6 +452,11 @@ var Tooltip = class Tooltip extends BaseComponent {
436
452
  get activeElement() {
437
453
  return this.el.nativeElement.nodeName.startsWith("P-") ? findSingle(this.el.nativeElement, this.psel(".p-component")) : this.el.nativeElement;
438
454
  }
455
+ get anchorElement() {
456
+ const host = this.el.nativeElement;
457
+ const { width, height } = host.getBoundingClientRect();
458
+ return width === 0 && height === 0 ? this.activeElement ?? host : host;
459
+ }
439
460
  alignRight() {
440
461
  this.preAlign("right");
441
462
  const el = this.activeElement;
@@ -454,7 +475,7 @@ var Tooltip = class Tooltip extends BaseComponent {
454
475
  this.preAlign("left");
455
476
  let arrowElement = this.getArrowElement();
456
477
  let offsetLeft = getOuterWidth(this.container);
457
- let offsetTop = (getOuterHeight(this.el.nativeElement) - getOuterHeight(this.container)) / 2;
478
+ let offsetTop = (getOuterHeight(this.anchorElement) - getOuterHeight(this.container)) / 2;
458
479
  this.alignTooltip(-offsetLeft, offsetTop);
459
480
  if (arrowElement) {
460
481
  arrowElement.style.top = "50%";
@@ -468,7 +489,7 @@ var Tooltip = class Tooltip extends BaseComponent {
468
489
  let arrowElement = this.getArrowElement();
469
490
  let hostOffset = this.getHostOffset();
470
491
  let elementWidth = getOuterWidth(this.container);
471
- let offsetLeft = (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;
492
+ let offsetLeft = (getOuterWidth(this.anchorElement) - getOuterWidth(this.container)) / 2;
472
493
  let offsetTop = getOuterHeight(this.container);
473
494
  this.alignTooltip(offsetLeft, -offsetTop);
474
495
  let elementRelativeCenter = hostOffset.left - this.getHostOffset().left + elementWidth / 2;
@@ -487,8 +508,8 @@ var Tooltip = class Tooltip extends BaseComponent {
487
508
  let arrowElement = this.getArrowElement();
488
509
  let elementWidth = getOuterWidth(this.container);
489
510
  let hostOffset = this.getHostOffset();
490
- let offsetLeft = (getOuterWidth(this.el.nativeElement) - getOuterWidth(this.container)) / 2;
491
- let offsetTop = getOuterHeight(this.el.nativeElement);
511
+ let offsetLeft = (getOuterWidth(this.anchorElement) - getOuterWidth(this.container)) / 2;
512
+ let offsetTop = getOuterHeight(this.anchorElement);
492
513
  this.alignTooltip(offsetLeft, offsetTop);
493
514
  let elementRelativeCenter = hostOffset.left - this.getHostOffset().left + elementWidth / 2;
494
515
  if (arrowElement) {
@@ -502,8 +523,8 @@ var Tooltip = class Tooltip extends BaseComponent {
502
523
  let hostOffset = this.getHostOffset();
503
524
  let left = hostOffset.left + offsetLeft;
504
525
  let top = hostOffset.top + offsetTop;
505
- this.container.style.left = left + this.getOption("positionLeft") + "px";
506
- this.container.style.top = top + this.getOption("positionTop") + "px";
526
+ this.container.style.left = left + (this.getOption("positionLeft") ?? 0) + "px";
527
+ this.container.style.top = top + (this.getOption("positionTop") ?? 0) + "px";
507
528
  }
508
529
  getOption(option) {
509
530
  return this._tooltipOptions()[option];
@@ -567,6 +588,8 @@ var Tooltip = class Tooltip extends BaseComponent {
567
588
  this.unbindDocumentResizeListener();
568
589
  }
569
590
  remove() {
591
+ const target = this.getTarget(this.el.nativeElement);
592
+ if (this.container && target?.getAttribute("aria-describedby") === this.container.id) target.removeAttribute("aria-describedby");
570
593
  if (this.container && this.container.parentElement) {
571
594
  if (this.$styleScope.isolated && this.getOption("appendTo") !== "target") this.container.remove();
572
595
  else if (this.getOption("appendTo") === "body") document.body.removeChild(this.container);
@@ -578,6 +601,8 @@ var Tooltip = class Tooltip extends BaseComponent {
578
601
  this.unbindContainerMouseleaveListener();
579
602
  this.unbindDocumentTouchListener();
580
603
  this.clearTimeouts();
604
+ this.fadeInCancel?.();
605
+ this.fadeInCancel = null;
581
606
  this.container = null;
582
607
  this.scrollHandler = null;
583
608
  }
@@ -593,23 +618,26 @@ var Tooltip = class Tooltip extends BaseComponent {
593
618
  this.hideTimeout = null;
594
619
  }
595
620
  }
621
+ clearAlignTimeout() {
622
+ if (this.alignTimeout) {
623
+ clearTimeout(this.alignTimeout);
624
+ this.alignTimeout = null;
625
+ }
626
+ }
596
627
  clearTimeouts() {
597
628
  this.clearShowTimeout();
598
629
  this.clearHideTimeout();
630
+ this.clearAlignTimeout();
599
631
  }
600
632
  onDestroy() {
601
633
  this.unbindEvents();
602
634
  if (this.container) ZIndexUtils.clear(this.container);
603
635
  this.remove();
604
- if (this.scrollHandler) {
605
- this.scrollHandler.destroy();
606
- this.scrollHandler = null;
607
- }
608
636
  if (this.documentEscapeListener) this.documentEscapeListener();
609
637
  }
610
638
  static ɵfac = i0.ɵɵngDeclareFactory({
611
639
  minVersion: "12.0.0",
612
- version: "22.2.3",
640
+ version: "22.2.5",
613
641
  ngImport: i0,
614
642
  type: Tooltip,
615
643
  deps: [],
@@ -617,7 +645,7 @@ var Tooltip = class Tooltip extends BaseComponent {
617
645
  });
618
646
  static ɵdir = i0.ɵɵngDeclareDirective({
619
647
  minVersion: "17.1.0",
620
- version: "22.2.3",
648
+ version: "22.2.5",
621
649
  type: Tooltip,
622
650
  isStandalone: true,
623
651
  selector: "[pTooltip]",
@@ -770,24 +798,17 @@ var Tooltip = class Tooltip extends BaseComponent {
770
798
  transformFunction: null
771
799
  }
772
800
  },
773
- providers: [
774
- TooltipStyle,
775
- {
776
- provide: TOOLTIP_INSTANCE,
777
- useExisting: Tooltip
778
- },
779
- {
780
- provide: PARENT_INSTANCE,
781
- useExisting: Tooltip
782
- }
783
- ],
801
+ providers: [TooltipStyle, {
802
+ provide: TOOLTIP_INSTANCE,
803
+ useExisting: Tooltip
804
+ }],
784
805
  usesInheritance: true,
785
806
  ngImport: i0
786
807
  });
787
808
  };
788
809
  i0.ɵɵngDeclareClassMetadata({
789
810
  minVersion: "12.0.0",
790
- version: "22.2.3",
811
+ version: "22.2.5",
791
812
  ngImport: i0,
792
813
  type: Tooltip,
793
814
  decorators: [{
@@ -795,17 +816,10 @@ i0.ɵɵngDeclareClassMetadata({
795
816
  args: [{
796
817
  selector: "[pTooltip]",
797
818
  standalone: true,
798
- providers: [
799
- TooltipStyle,
800
- {
801
- provide: TOOLTIP_INSTANCE,
802
- useExisting: Tooltip
803
- },
804
- {
805
- provide: PARENT_INSTANCE,
806
- useExisting: Tooltip
807
- }
808
- ]
819
+ providers: [TooltipStyle, {
820
+ provide: TOOLTIP_INSTANCE,
821
+ useExisting: Tooltip
822
+ }]
809
823
  }]
810
824
  }],
811
825
  ctorParameters: () => [],
@@ -983,7 +997,7 @@ i0.ɵɵngDeclareClassMetadata({
983
997
  var TooltipModule = class TooltipModule {
984
998
  static ɵfac = i0.ɵɵngDeclareFactory({
985
999
  minVersion: "12.0.0",
986
- version: "22.2.3",
1000
+ version: "22.2.5",
987
1001
  ngImport: i0,
988
1002
  type: TooltipModule,
989
1003
  deps: [],
@@ -991,7 +1005,7 @@ var TooltipModule = class TooltipModule {
991
1005
  });
992
1006
  static ɵmod = i0.ɵɵngDeclareNgModule({
993
1007
  minVersion: "14.0.0",
994
- version: "22.2.3",
1008
+ version: "22.2.5",
995
1009
  ngImport: i0,
996
1010
  type: TooltipModule,
997
1011
  imports: [Tooltip, BindModule],
@@ -999,7 +1013,7 @@ var TooltipModule = class TooltipModule {
999
1013
  });
1000
1014
  static ɵinj = i0.ɵɵngDeclareInjector({
1001
1015
  minVersion: "12.0.0",
1002
- version: "22.2.3",
1016
+ version: "22.2.5",
1003
1017
  ngImport: i0,
1004
1018
  type: TooltipModule,
1005
1019
  imports: [BindModule, BindModule]
@@ -1007,7 +1021,7 @@ var TooltipModule = class TooltipModule {
1007
1021
  };
1008
1022
  i0.ɵɵngDeclareClassMetadata({
1009
1023
  minVersion: "12.0.0",
1010
- version: "22.2.3",
1024
+ version: "22.2.5",
1011
1025
  ngImport: i0,
1012
1026
  type: TooltipModule,
1013
1027
  decorators: [{