primeng 20.0.0 → 20.1.0

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 (202) hide show
  1. package/dialog/index.d.ts +1 -0
  2. package/editor/index.d.ts +2 -2
  3. package/fesm2022/primeng-accordion.mjs +36 -22
  4. package/fesm2022/primeng-accordion.mjs.map +1 -1
  5. package/fesm2022/primeng-animateonscroll.mjs +7 -7
  6. package/fesm2022/primeng-api.mjs +31 -31
  7. package/fesm2022/primeng-autocomplete.mjs +14 -12
  8. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  9. package/fesm2022/primeng-autofocus.mjs +7 -7
  10. package/fesm2022/primeng-avatar.mjs +10 -10
  11. package/fesm2022/primeng-avatargroup.mjs +10 -10
  12. package/fesm2022/primeng-badge.mjs +13 -13
  13. package/fesm2022/primeng-base.mjs +3 -3
  14. package/fesm2022/primeng-basecomponent.mjs +6 -6
  15. package/fesm2022/primeng-baseeditableholder.mjs +3 -3
  16. package/fesm2022/primeng-baseinput.mjs +3 -3
  17. package/fesm2022/primeng-basemodelholder.mjs +3 -3
  18. package/fesm2022/primeng-blockui.mjs +10 -10
  19. package/fesm2022/primeng-breadcrumb.mjs +10 -10
  20. package/fesm2022/primeng-button.mjs +19 -19
  21. package/fesm2022/primeng-buttongroup.mjs +10 -10
  22. package/fesm2022/primeng-card.mjs +10 -10
  23. package/fesm2022/primeng-carousel.mjs +11 -10
  24. package/fesm2022/primeng-carousel.mjs.map +1 -1
  25. package/fesm2022/primeng-cascadeselect.mjs +13 -13
  26. package/fesm2022/primeng-chart.mjs +10 -10
  27. package/fesm2022/primeng-checkbox.mjs +15 -14
  28. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  29. package/fesm2022/primeng-chip.mjs +10 -10
  30. package/fesm2022/primeng-colorpicker.mjs +10 -10
  31. package/fesm2022/primeng-config.mjs +9 -7
  32. package/fesm2022/primeng-config.mjs.map +1 -1
  33. package/fesm2022/primeng-confirmdialog.mjs +13 -12
  34. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  35. package/fesm2022/primeng-confirmpopup.mjs +10 -10
  36. package/fesm2022/primeng-contextmenu.mjs +13 -13
  37. package/fesm2022/primeng-dataview.mjs +152 -136
  38. package/fesm2022/primeng-dataview.mjs.map +1 -1
  39. package/fesm2022/primeng-datepicker.mjs +11 -10
  40. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  41. package/fesm2022/primeng-dialog.mjs +22 -11
  42. package/fesm2022/primeng-dialog.mjs.map +1 -1
  43. package/fesm2022/primeng-divider.mjs +10 -10
  44. package/fesm2022/primeng-dock.mjs +10 -10
  45. package/fesm2022/primeng-dragdrop.mjs +10 -10
  46. package/fesm2022/primeng-drawer.mjs +10 -10
  47. package/fesm2022/primeng-dynamicdialog.mjs +17 -16
  48. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  49. package/fesm2022/primeng-editor.mjs +12 -12
  50. package/fesm2022/primeng-editor.mjs.map +1 -1
  51. package/fesm2022/primeng-fieldset.mjs +10 -10
  52. package/fesm2022/primeng-fileupload.mjs +13 -13
  53. package/fesm2022/primeng-floatlabel.mjs +10 -10
  54. package/fesm2022/primeng-fluid.mjs +10 -10
  55. package/fesm2022/primeng-focustrap.mjs +7 -7
  56. package/fesm2022/primeng-galleria.mjs +30 -27
  57. package/fesm2022/primeng-galleria.mjs.map +1 -1
  58. package/fesm2022/primeng-iconfield.mjs +10 -10
  59. package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
  60. package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
  61. package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
  62. package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
  63. package/fesm2022/primeng-icons-angledown.mjs +3 -3
  64. package/fesm2022/primeng-icons-angleleft.mjs +3 -3
  65. package/fesm2022/primeng-icons-angleright.mjs +3 -3
  66. package/fesm2022/primeng-icons-angleup.mjs +3 -3
  67. package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
  68. package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
  69. package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
  70. package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
  71. package/fesm2022/primeng-icons-arrowright.mjs +3 -3
  72. package/fesm2022/primeng-icons-arrowup.mjs +3 -3
  73. package/fesm2022/primeng-icons-ban.mjs +3 -3
  74. package/fesm2022/primeng-icons-bars.mjs +3 -3
  75. package/fesm2022/primeng-icons-baseicon.mjs +6 -6
  76. package/fesm2022/primeng-icons-blank.mjs +3 -3
  77. package/fesm2022/primeng-icons-calendar.mjs +3 -3
  78. package/fesm2022/primeng-icons-caretleft.mjs +3 -3
  79. package/fesm2022/primeng-icons-caretright.mjs +3 -3
  80. package/fesm2022/primeng-icons-check.mjs +3 -3
  81. package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
  82. package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
  83. package/fesm2022/primeng-icons-chevronright.mjs +3 -3
  84. package/fesm2022/primeng-icons-chevronup.mjs +3 -3
  85. package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
  86. package/fesm2022/primeng-icons-eye.mjs +3 -3
  87. package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
  88. package/fesm2022/primeng-icons-filter.mjs +3 -3
  89. package/fesm2022/primeng-icons-filterfill.mjs +3 -3
  90. package/fesm2022/primeng-icons-filterslash.mjs +3 -3
  91. package/fesm2022/primeng-icons-home.mjs +3 -3
  92. package/fesm2022/primeng-icons-infocircle.mjs +3 -3
  93. package/fesm2022/primeng-icons-minus.mjs +3 -3
  94. package/fesm2022/primeng-icons-pencil.mjs +3 -3
  95. package/fesm2022/primeng-icons-plus.mjs +3 -3
  96. package/fesm2022/primeng-icons-refresh.mjs +3 -3
  97. package/fesm2022/primeng-icons-search.mjs +3 -3
  98. package/fesm2022/primeng-icons-searchminus.mjs +3 -3
  99. package/fesm2022/primeng-icons-searchplus.mjs +3 -3
  100. package/fesm2022/primeng-icons-sortalt.mjs +3 -3
  101. package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
  102. package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
  103. package/fesm2022/primeng-icons-spinner.mjs +3 -3
  104. package/fesm2022/primeng-icons-star.mjs +3 -3
  105. package/fesm2022/primeng-icons-starfill.mjs +3 -3
  106. package/fesm2022/primeng-icons-thlarge.mjs +3 -3
  107. package/fesm2022/primeng-icons-times.mjs +3 -3
  108. package/fesm2022/primeng-icons-timescircle.mjs +3 -3
  109. package/fesm2022/primeng-icons-trash.mjs +3 -3
  110. package/fesm2022/primeng-icons-undo.mjs +3 -3
  111. package/fesm2022/primeng-icons-upload.mjs +3 -3
  112. package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
  113. package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
  114. package/fesm2022/primeng-iftalabel.mjs +10 -10
  115. package/fesm2022/primeng-image.mjs +10 -10
  116. package/fesm2022/primeng-imagecompare.mjs +10 -10
  117. package/fesm2022/primeng-inplace.mjs +16 -16
  118. package/fesm2022/primeng-inputgroup.mjs +14 -10
  119. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  120. package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
  121. package/fesm2022/primeng-inputicon.mjs +10 -10
  122. package/fesm2022/primeng-inputmask.mjs +15 -14
  123. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  124. package/fesm2022/primeng-inputnumber.mjs +13 -10
  125. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  126. package/fesm2022/primeng-inputotp.mjs +10 -10
  127. package/fesm2022/primeng-inputtext.mjs +10 -10
  128. package/fesm2022/primeng-keyfilter.mjs +7 -7
  129. package/fesm2022/primeng-knob.mjs +10 -10
  130. package/fesm2022/primeng-listbox.mjs +61 -82
  131. package/fesm2022/primeng-listbox.mjs.map +1 -1
  132. package/fesm2022/primeng-megamenu.mjs +13 -13
  133. package/fesm2022/primeng-menu.mjs +16 -16
  134. package/fesm2022/primeng-menubar.mjs +16 -16
  135. package/fesm2022/primeng-message.mjs +10 -10
  136. package/fesm2022/primeng-metergroup.mjs +13 -13
  137. package/fesm2022/primeng-multiselect.mjs +17 -17
  138. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  139. package/fesm2022/primeng-orderlist.mjs +11 -10
  140. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  141. package/fesm2022/primeng-organizationchart.mjs +13 -13
  142. package/fesm2022/primeng-overlay.mjs +10 -10
  143. package/fesm2022/primeng-overlaybadge.mjs +10 -10
  144. package/fesm2022/primeng-paginator.mjs +10 -10
  145. package/fesm2022/primeng-panel.mjs +10 -10
  146. package/fesm2022/primeng-panelmenu.mjs +16 -16
  147. package/fesm2022/primeng-password.mjs +16 -16
  148. package/fesm2022/primeng-picklist.mjs +29 -10
  149. package/fesm2022/primeng-picklist.mjs.map +1 -1
  150. package/fesm2022/primeng-popover.mjs +10 -10
  151. package/fesm2022/primeng-progressbar.mjs +10 -10
  152. package/fesm2022/primeng-progressspinner.mjs +10 -10
  153. package/fesm2022/primeng-radiobutton.mjs +13 -13
  154. package/fesm2022/primeng-rating.mjs +10 -10
  155. package/fesm2022/primeng-ripple.mjs +10 -10
  156. package/fesm2022/primeng-scroller.mjs +10 -10
  157. package/fesm2022/primeng-scrollpanel.mjs +10 -10
  158. package/fesm2022/primeng-scrolltop.mjs +10 -10
  159. package/fesm2022/primeng-select.mjs +14 -14
  160. package/fesm2022/primeng-select.mjs.map +1 -1
  161. package/fesm2022/primeng-selectbutton.mjs +10 -10
  162. package/fesm2022/primeng-skeleton.mjs +10 -10
  163. package/fesm2022/primeng-slider.mjs +10 -10
  164. package/fesm2022/primeng-speeddial.mjs +10 -10
  165. package/fesm2022/primeng-splitbutton.mjs +10 -10
  166. package/fesm2022/primeng-splitter.mjs +10 -10
  167. package/fesm2022/primeng-stepper.mjs +43 -43
  168. package/fesm2022/primeng-steps.mjs +10 -10
  169. package/fesm2022/primeng-styleclass.mjs +90 -27
  170. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  171. package/fesm2022/primeng-table.mjs +154 -121
  172. package/fesm2022/primeng-table.mjs.map +1 -1
  173. package/fesm2022/primeng-tabs.mjs +35 -40
  174. package/fesm2022/primeng-tabs.mjs.map +1 -1
  175. package/fesm2022/primeng-tag.mjs +10 -10
  176. package/fesm2022/primeng-terminal.mjs +13 -13
  177. package/fesm2022/primeng-textarea.mjs +13 -15
  178. package/fesm2022/primeng-textarea.mjs.map +1 -1
  179. package/fesm2022/primeng-tieredmenu.mjs +17 -13
  180. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  181. package/fesm2022/primeng-timeline.mjs +10 -10
  182. package/fesm2022/primeng-toast.mjs +14 -13
  183. package/fesm2022/primeng-toast.mjs.map +1 -1
  184. package/fesm2022/primeng-togglebutton.mjs +10 -10
  185. package/fesm2022/primeng-toggleswitch.mjs +10 -10
  186. package/fesm2022/primeng-toolbar.mjs +10 -10
  187. package/fesm2022/primeng-tooltip.mjs +10 -10
  188. package/fesm2022/primeng-tree.mjs +13 -13
  189. package/fesm2022/primeng-treeselect.mjs +15 -10
  190. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  191. package/fesm2022/primeng-treetable.mjs +58 -58
  192. package/fesm2022/primeng-usestyle.mjs +5 -4
  193. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  194. package/galleria/index.d.ts +1 -1
  195. package/listbox/index.d.ts +0 -2
  196. package/package.json +253 -253
  197. package/picklist/index.d.ts +11 -1
  198. package/styleclass/index.d.ts +21 -2
  199. package/table/index.d.ts +56 -272
  200. package/tabs/index.d.ts +1 -5
  201. package/textarea/index.d.ts +2 -3
  202. package/treeselect/index.d.ts +5 -0
@@ -30,10 +30,10 @@ class StepsStyle extends BaseStyle {
30
30
  name = 'steps';
31
31
  theme = style;
32
32
  classes = classes;
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StepsStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
34
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StepsStyle });
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepsStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
34
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepsStyle });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StepsStyle, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepsStyle, decorators: [{
37
37
  type: Injectable
38
38
  }] });
39
39
  /**
@@ -244,8 +244,8 @@ class Steps extends BaseComponent {
244
244
  }
245
245
  super.ngOnDestroy();
246
246
  }
247
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Steps, deps: null, target: i0.ɵɵFactoryTarget.Component });
248
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: Steps, isStandalone: true, selector: "p-steps", inputs: { activeIndex: ["activeIndex", "activeIndex", numberAttribute], model: "model", readonly: ["readonly", "readonly", booleanAttribute], style: "style", styleClass: "styleClass", exact: ["exact", "exact", booleanAttribute] }, outputs: { activeIndexChange: "activeIndexChange" }, providers: [StepsStyle], viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["list"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
247
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: Steps, deps: null, target: i0.ɵɵFactoryTarget.Component });
248
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: Steps, isStandalone: true, selector: "p-steps", inputs: { activeIndex: ["activeIndex", "activeIndex", numberAttribute], model: "model", readonly: ["readonly", "readonly", booleanAttribute], style: "style", styleClass: "styleClass", exact: ["exact", "exact", booleanAttribute] }, outputs: { activeIndexChange: "activeIndexChange" }, providers: [StepsStyle], viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["list"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
249
249
  <nav [class]="cn(cx('root'), styleClass)" [ngStyle]="style" [attr.data-pc-name]="'steps'">
250
250
  <ul #list [attr.data-pc-section]="'menu'" [class]="cx('list')">
251
251
  @for (item of model; track item.label; let i = $index) {
@@ -309,7 +309,7 @@ class Steps extends BaseComponent {
309
309
  </nav>
310
310
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
311
311
  }
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: Steps, decorators: [{
312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: Steps, decorators: [{
313
313
  type: Component,
314
314
  args: [{
315
315
  selector: 'p-steps',
@@ -404,11 +404,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
404
404
  args: ['list', { static: false }]
405
405
  }] } });
406
406
  class StepsModule {
407
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StepsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
408
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: StepsModule, imports: [Steps, SharedModule], exports: [Steps, SharedModule] });
409
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StepsModule, imports: [Steps, SharedModule, SharedModule] });
407
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
408
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: StepsModule, imports: [Steps, SharedModule], exports: [Steps, SharedModule] });
409
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepsModule, imports: [Steps, SharedModule, SharedModule] });
410
410
  }
411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StepsModule, decorators: [{
411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepsModule, decorators: [{
412
412
  type: NgModule,
413
413
  args: [{
414
414
  imports: [Steps, SharedModule],
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { booleanAttribute, HostListener, Input, Directive, NgModule } from '@angular/core';
3
- import { hasClass, removeClass, addClass } from '@primeuix/utils';
3
+ import { getTargetElement, hasClass, removeClass, addClass, isElement } from '@primeuix/utils';
4
4
 
5
5
  /**
6
6
  * StyleClass manages css classes declaratively to during enter/leave animations or just to toggle classes on an element.
@@ -65,17 +65,30 @@ class StyleClass {
65
65
  * @group Props
66
66
  */
67
67
  hideOnEscape;
68
+ /**
69
+ * Whether to trigger leave animation when the target element resized.
70
+ * @group Props
71
+ */
72
+ hideOnResize;
73
+ /**
74
+ * Target element to listen resize. Valid values are "window", "document" or target element selector.
75
+ * @group Props
76
+ */
77
+ resizeSelector;
68
78
  eventListener;
69
79
  documentClickListener;
70
80
  documentKeydownListener;
81
+ windowResizeListener;
82
+ resizeObserver;
71
83
  target;
72
84
  enterListener;
73
85
  leaveListener;
74
86
  animating;
75
87
  _enterClass;
76
88
  _leaveClass;
89
+ _resizeTarget;
77
90
  clickListener() {
78
- this.target = this.resolveTarget();
91
+ this.target ||= getTargetElement(this.selector, this.el.nativeElement);
79
92
  if (this.toggleClass) {
80
93
  this.toggle();
81
94
  }
@@ -96,7 +109,7 @@ class StyleClass {
96
109
  if (this.enterActiveClass) {
97
110
  if (!this.animating) {
98
111
  this.animating = true;
99
- if (this.enterActiveClass === 'animate-slidedown') {
112
+ if (this.enterActiveClass.includes('slidedown')) {
100
113
  this.target.style.height = '0px';
101
114
  removeClass(this.target, 'hidden');
102
115
  this.target.style.maxHeight = this.target.scrollHeight + 'px';
@@ -113,7 +126,7 @@ class StyleClass {
113
126
  addClass(this.target, this.enterToClass);
114
127
  }
115
128
  this.enterListener && this.enterListener();
116
- if (this.enterActiveClass === 'animate-slidedown') {
129
+ if (this.enterActiveClass.includes('slidedown')) {
117
130
  this.target.style.maxHeight = '';
118
131
  }
119
132
  this.animating = false;
@@ -134,6 +147,9 @@ class StyleClass {
134
147
  if (this.hideOnEscape) {
135
148
  this.bindDocumentKeydownListener();
136
149
  }
150
+ if (this.hideOnResize) {
151
+ this.bindResizeListener();
152
+ }
137
153
  }
138
154
  leave() {
139
155
  if (this.leaveActiveClass) {
@@ -167,22 +183,8 @@ class StyleClass {
167
183
  if (this.hideOnEscape) {
168
184
  this.unbindDocumentKeydownListener();
169
185
  }
170
- }
171
- resolveTarget() {
172
- if (this.target) {
173
- return this.target;
174
- }
175
- switch (this.selector) {
176
- case '@next':
177
- return this.el.nativeElement.nextElementSibling;
178
- case '@prev':
179
- return this.el.nativeElement.previousElementSibling;
180
- case '@parent':
181
- return this.el.nativeElement.parentElement;
182
- case '@grandparent':
183
- return this.el.nativeElement.parentElement.parentElement;
184
- default:
185
- return document.querySelector(this.selector);
186
+ if (this.hideOnResize) {
187
+ this.unbindResizeListener();
186
188
  }
187
189
  }
188
190
  bindDocumentClickListener() {
@@ -226,18 +228,74 @@ class StyleClass {
226
228
  this.documentKeydownListener = null;
227
229
  }
228
230
  }
231
+ bindResizeListener() {
232
+ this._resizeTarget = getTargetElement(this.resizeSelector);
233
+ if (isElement(this._resizeTarget)) {
234
+ this.bindElementResizeListener();
235
+ }
236
+ else {
237
+ this.bindWindowResizeListener();
238
+ }
239
+ }
240
+ unbindResizeListener() {
241
+ this.unbindWindowResizeListener();
242
+ this.unbindElementResizeListener();
243
+ }
244
+ bindWindowResizeListener() {
245
+ if (!this.windowResizeListener) {
246
+ this.zone.runOutsideAngular(() => {
247
+ this.windowResizeListener = this.renderer.listen(window, 'resize', () => {
248
+ if (!this.isVisible()) {
249
+ this.unbindWindowResizeListener();
250
+ }
251
+ else {
252
+ this.leave();
253
+ }
254
+ });
255
+ });
256
+ }
257
+ }
258
+ unbindWindowResizeListener() {
259
+ if (this.windowResizeListener) {
260
+ this.windowResizeListener();
261
+ this.windowResizeListener = null;
262
+ }
263
+ }
264
+ bindElementResizeListener() {
265
+ if (!this.resizeObserver && this._resizeTarget) {
266
+ let isFirstResize = true;
267
+ this.resizeObserver = new ResizeObserver(() => {
268
+ if (isFirstResize) {
269
+ isFirstResize = false;
270
+ return;
271
+ }
272
+ if (this.isVisible()) {
273
+ this.leave();
274
+ }
275
+ });
276
+ this.resizeObserver.observe(this._resizeTarget);
277
+ }
278
+ }
279
+ unbindElementResizeListener() {
280
+ if (this.resizeObserver) {
281
+ this.resizeObserver.disconnect();
282
+ this.resizeObserver = undefined;
283
+ }
284
+ }
229
285
  ngOnDestroy() {
230
286
  this.target = null;
287
+ this._resizeTarget = null;
231
288
  if (this.eventListener) {
232
289
  this.eventListener();
233
290
  }
234
291
  this.unbindDocumentClickListener();
235
292
  this.unbindDocumentKeydownListener();
293
+ this.unbindResizeListener();
236
294
  }
237
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StyleClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
238
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.1.0", type: StyleClass, isStandalone: true, selector: "[pStyleClass]", inputs: { selector: ["pStyleClass", "selector"], enterFromClass: "enterFromClass", enterActiveClass: "enterActiveClass", enterToClass: "enterToClass", leaveFromClass: "leaveFromClass", leaveActiveClass: "leaveActiveClass", leaveToClass: "leaveToClass", hideOnOutsideClick: ["hideOnOutsideClick", "hideOnOutsideClick", booleanAttribute], toggleClass: "toggleClass", hideOnEscape: ["hideOnEscape", "hideOnEscape", booleanAttribute] }, host: { listeners: { "click": "clickListener($event)" } }, ngImport: i0 });
295
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StyleClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
296
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.2.1", type: StyleClass, isStandalone: true, selector: "[pStyleClass]", inputs: { selector: ["pStyleClass", "selector"], enterFromClass: "enterFromClass", enterActiveClass: "enterActiveClass", enterToClass: "enterToClass", leaveFromClass: "leaveFromClass", leaveActiveClass: "leaveActiveClass", leaveToClass: "leaveToClass", hideOnOutsideClick: ["hideOnOutsideClick", "hideOnOutsideClick", booleanAttribute], toggleClass: "toggleClass", hideOnEscape: ["hideOnEscape", "hideOnEscape", booleanAttribute], hideOnResize: ["hideOnResize", "hideOnResize", booleanAttribute], resizeSelector: "resizeSelector" }, host: { listeners: { "click": "clickListener($event)" } }, ngImport: i0 });
239
297
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StyleClass, decorators: [{
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StyleClass, decorators: [{
241
299
  type: Directive,
242
300
  args: [{
243
301
  selector: '[pStyleClass]',
@@ -266,16 +324,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
266
324
  }], hideOnEscape: [{
267
325
  type: Input,
268
326
  args: [{ transform: booleanAttribute }]
327
+ }], hideOnResize: [{
328
+ type: Input,
329
+ args: [{ transform: booleanAttribute }]
330
+ }], resizeSelector: [{
331
+ type: Input
269
332
  }], clickListener: [{
270
333
  type: HostListener,
271
334
  args: ['click', ['$event']]
272
335
  }] } });
273
336
  class StyleClassModule {
274
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StyleClassModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
275
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: StyleClassModule, imports: [StyleClass], exports: [StyleClass] });
276
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StyleClassModule });
337
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StyleClassModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
338
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: StyleClassModule, imports: [StyleClass], exports: [StyleClass] });
339
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StyleClassModule });
277
340
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StyleClassModule, decorators: [{
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StyleClassModule, decorators: [{
279
342
  type: NgModule,
280
343
  args: [{
281
344
  imports: [StyleClass],
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-styleclass.mjs","sources":["../../src/styleclass/styleclass.ts","../../src/styleclass/primeng-styleclass.ts"],"sourcesContent":["import { booleanAttribute, Directive, ElementRef, HostListener, Input, NgModule, NgZone, OnDestroy, Renderer2 } from '@angular/core';\nimport { addClass, hasClass, removeClass } from '@primeuix/utils';\nimport { VoidListener } from 'primeng/ts-helpers';\n\n/**\n * StyleClass manages css classes declaratively to during enter/leave animations or just to toggle classes on an element.\n * @group Components\n */\n@Directive({\n selector: '[pStyleClass]',\n standalone: true\n})\nexport class StyleClass implements OnDestroy {\n constructor(\n public el: ElementRef,\n public renderer: Renderer2,\n private zone: NgZone\n ) {}\n /**\n * Selector to define the target element. Available selectors are '@next', '@prev', '@parent' and '@grandparent'.\n * @group Props\n */\n @Input('pStyleClass') selector: string | undefined;\n /**\n * Style class to add when item begins to get displayed.\n * @group Props\n */\n @Input() enterFromClass: string | undefined;\n /**\n * Style class to add during enter animation.\n * @group Props\n */\n @Input() enterActiveClass: string | undefined;\n /**\n * Style class to add when item begins to get displayed.\n * @group Props\n */\n @Input() enterToClass: string | undefined;\n /**\n * Style class to add when item begins to get hidden.\n * @group Props\n */\n @Input() leaveFromClass: string | undefined;\n /**\n * Style class to add during leave animation.\n * @group Props\n */\n @Input() leaveActiveClass: string | undefined;\n /**\n * Style class to add when leave animation is completed.\n * @group Props\n */\n @Input() leaveToClass: string | undefined;\n /**\n * Whether to trigger leave animation when outside of the element is clicked.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnOutsideClick: boolean | undefined;\n /**\n * Adds or removes a class when no enter-leave animation is required.\n * @group Props\n */\n @Input() toggleClass: string | undefined;\n /**\n * Whether to trigger leave animation when escape key pressed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnEscape: boolean | undefined;\n\n eventListener: VoidListener;\n\n documentClickListener: VoidListener;\n\n documentKeydownListener: VoidListener;\n\n target: HTMLElement | null | undefined;\n\n enterListener: VoidListener;\n\n leaveListener: VoidListener;\n\n animating: boolean | undefined;\n\n _enterClass: string | undefined;\n\n _leaveClass: string | undefined;\n\n @HostListener('click', ['$event'])\n clickListener() {\n this.target = this.resolveTarget();\n\n if (this.toggleClass) {\n this.toggle();\n } else {\n if ((this.target as HTMLElement)?.offsetParent === null) this.enter();\n else this.leave();\n }\n }\n\n toggle() {\n if (hasClass(this.target, this.toggleClass as string)) removeClass(this.target, this.toggleClass as string);\n else addClass(this.target, this.toggleClass as string);\n }\n\n enter() {\n if (this.enterActiveClass) {\n if (!this.animating) {\n this.animating = true;\n\n if (this.enterActiveClass === 'animate-slidedown') {\n (this.target as HTMLElement).style.height = '0px';\n removeClass(this.target, 'hidden');\n (this.target as HTMLElement).style.maxHeight = (this.target as HTMLElement).scrollHeight + 'px';\n addClass(this.target, 'hidden');\n (this.target as HTMLElement).style.height = '';\n }\n\n addClass(this.target, this.enterActiveClass);\n if (this.enterFromClass) {\n removeClass(this.target, this.enterFromClass);\n }\n\n this.enterListener = this.renderer.listen(this.target, 'animationend', () => {\n removeClass(this.target, this.enterActiveClass as string);\n if (this.enterToClass) {\n addClass(this.target, this.enterToClass);\n }\n this.enterListener && this.enterListener();\n\n if (this.enterActiveClass === 'animate-slidedown') {\n (this.target as HTMLElement).style.maxHeight = '';\n }\n this.animating = false;\n });\n }\n } else {\n if (this.enterFromClass) {\n removeClass(this.target, this.enterFromClass);\n }\n\n if (this.enterToClass) {\n addClass(this.target, this.enterToClass);\n }\n }\n\n if (this.hideOnOutsideClick) {\n this.bindDocumentClickListener();\n }\n\n if (this.hideOnEscape) {\n this.bindDocumentKeydownListener();\n }\n }\n\n leave() {\n if (this.leaveActiveClass) {\n if (!this.animating) {\n this.animating = true;\n addClass(this.target, this.leaveActiveClass);\n if (this.leaveFromClass) {\n removeClass(this.target, this.leaveFromClass);\n }\n\n this.leaveListener = this.renderer.listen(this.target, 'animationend', () => {\n removeClass(this.target, this.leaveActiveClass as string);\n if (this.leaveToClass) {\n addClass(this.target, this.leaveToClass);\n }\n this.leaveListener && this.leaveListener();\n this.animating = false;\n });\n }\n } else {\n if (this.leaveFromClass) {\n removeClass(this.target, this.leaveFromClass);\n }\n\n if (this.leaveToClass) {\n addClass(this.target, this.leaveToClass);\n }\n }\n\n if (this.hideOnOutsideClick) {\n this.unbindDocumentClickListener();\n }\n\n if (this.hideOnEscape) {\n this.unbindDocumentKeydownListener();\n }\n }\n\n resolveTarget() {\n if (this.target) {\n return this.target;\n }\n\n switch (this.selector) {\n case '@next':\n return this.el.nativeElement.nextElementSibling;\n\n case '@prev':\n return this.el.nativeElement.previousElementSibling;\n\n case '@parent':\n return this.el.nativeElement.parentElement;\n\n case '@grandparent':\n return this.el.nativeElement.parentElement.parentElement;\n\n default:\n return document.querySelector(this.selector as string);\n }\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'click', (event) => {\n if (!this.isVisible() || getComputedStyle(this.target as HTMLElement).getPropertyValue('position') === 'static') this.unbindDocumentClickListener();\n else if (this.isOutsideClick(event)) this.leave();\n });\n }\n }\n\n bindDocumentKeydownListener() {\n if (!this.documentKeydownListener) {\n this.zone.runOutsideAngular(() => {\n this.documentKeydownListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'keydown', (event) => {\n const { key, keyCode, which, type } = event;\n if (!this.isVisible() || getComputedStyle(this.target as HTMLElement).getPropertyValue('position') === 'static') this.unbindDocumentKeydownListener();\n if (this.isVisible() && key === 'Escape' && keyCode === 27 && which === 27) this.leave();\n });\n });\n }\n }\n\n isVisible() {\n return (this.target as HTMLElement).offsetParent !== null;\n }\n\n isOutsideClick(event: MouseEvent) {\n return !this.el.nativeElement.isSameNode(event.target) && !this.el.nativeElement.contains(event.target) && !(this.target as HTMLElement).contains(<HTMLElement>event.target);\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n unbindDocumentKeydownListener() {\n if (this.documentKeydownListener) {\n this.documentKeydownListener();\n this.documentKeydownListener = null;\n }\n }\n\n ngOnDestroy() {\n this.target = null;\n if (this.eventListener) {\n this.eventListener();\n }\n this.unbindDocumentClickListener();\n this.unbindDocumentKeydownListener();\n }\n}\n\n@NgModule({\n imports: [StyleClass],\n exports: [StyleClass]\n})\nexport class StyleClassModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-styleclass.mjs","sources":["../../src/styleclass/styleclass.ts","../../src/styleclass/primeng-styleclass.ts"],"sourcesContent":["import { booleanAttribute, Directive, ElementRef, HostListener, Input, NgModule, NgZone, OnDestroy, Renderer2 } from '@angular/core';\nimport { addClass, getTargetElement, hasClass, isElement, removeClass } from '@primeuix/utils';\nimport { VoidListener } from 'primeng/ts-helpers';\n\n/**\n * StyleClass manages css classes declaratively to during enter/leave animations or just to toggle classes on an element.\n * @group Components\n */\n@Directive({\n selector: '[pStyleClass]',\n standalone: true\n})\nexport class StyleClass implements OnDestroy {\n constructor(\n public el: ElementRef,\n public renderer: Renderer2,\n private zone: NgZone\n ) {}\n /**\n * Selector to define the target element. Available selectors are '@next', '@prev', '@parent' and '@grandparent'.\n * @group Props\n */\n @Input('pStyleClass') selector: string | undefined;\n /**\n * Style class to add when item begins to get displayed.\n * @group Props\n */\n @Input() enterFromClass: string | undefined;\n /**\n * Style class to add during enter animation.\n * @group Props\n */\n @Input() enterActiveClass: string | undefined;\n /**\n * Style class to add when item begins to get displayed.\n * @group Props\n */\n @Input() enterToClass: string | undefined;\n /**\n * Style class to add when item begins to get hidden.\n * @group Props\n */\n @Input() leaveFromClass: string | undefined;\n /**\n * Style class to add during leave animation.\n * @group Props\n */\n @Input() leaveActiveClass: string | undefined;\n /**\n * Style class to add when leave animation is completed.\n * @group Props\n */\n @Input() leaveToClass: string | undefined;\n /**\n * Whether to trigger leave animation when outside of the element is clicked.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnOutsideClick: boolean | undefined;\n /**\n * Adds or removes a class when no enter-leave animation is required.\n * @group Props\n */\n @Input() toggleClass: string | undefined;\n /**\n * Whether to trigger leave animation when escape key pressed.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnEscape: boolean | undefined;\n /**\n * Whether to trigger leave animation when the target element resized.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) hideOnResize: boolean | undefined;\n /**\n * Target element to listen resize. Valid values are \"window\", \"document\" or target element selector.\n * @group Props\n */\n @Input() resizeSelector: string | undefined;\n\n eventListener: VoidListener;\n\n documentClickListener: VoidListener;\n\n documentKeydownListener: VoidListener;\n\n windowResizeListener: VoidListener;\n\n resizeObserver: ResizeObserver | undefined;\n\n target: HTMLElement | null | undefined;\n\n enterListener: VoidListener;\n\n leaveListener: VoidListener;\n\n animating: boolean | undefined;\n\n _enterClass: string | undefined;\n\n _leaveClass: string | undefined;\n\n _resizeTarget: any;\n\n @HostListener('click', ['$event'])\n clickListener() {\n this.target ||= getTargetElement(this.selector, this.el.nativeElement) as HTMLElement;\n\n if (this.toggleClass) {\n this.toggle();\n } else {\n if ((this.target as HTMLElement)?.offsetParent === null) this.enter();\n else this.leave();\n }\n }\n\n toggle() {\n if (hasClass(this.target, this.toggleClass as string)) removeClass(this.target, this.toggleClass as string);\n else addClass(this.target, this.toggleClass as string);\n }\n\n enter() {\n if (this.enterActiveClass) {\n if (!this.animating) {\n this.animating = true;\n\n if (this.enterActiveClass.includes('slidedown')) {\n (this.target as HTMLElement).style.height = '0px';\n removeClass(this.target, 'hidden');\n (this.target as HTMLElement).style.maxHeight = (this.target as HTMLElement).scrollHeight + 'px';\n addClass(this.target, 'hidden');\n (this.target as HTMLElement).style.height = '';\n }\n\n addClass(this.target, this.enterActiveClass);\n if (this.enterFromClass) {\n removeClass(this.target, this.enterFromClass);\n }\n\n this.enterListener = this.renderer.listen(this.target, 'animationend', () => {\n removeClass(this.target, this.enterActiveClass as string);\n if (this.enterToClass) {\n addClass(this.target, this.enterToClass);\n }\n this.enterListener && this.enterListener();\n\n if (this.enterActiveClass.includes('slidedown')) {\n (this.target as HTMLElement).style.maxHeight = '';\n }\n this.animating = false;\n });\n }\n } else {\n if (this.enterFromClass) {\n removeClass(this.target, this.enterFromClass);\n }\n\n if (this.enterToClass) {\n addClass(this.target, this.enterToClass);\n }\n }\n\n if (this.hideOnOutsideClick) {\n this.bindDocumentClickListener();\n }\n\n if (this.hideOnEscape) {\n this.bindDocumentKeydownListener();\n }\n\n if (this.hideOnResize) {\n this.bindResizeListener();\n }\n }\n\n leave() {\n if (this.leaveActiveClass) {\n if (!this.animating) {\n this.animating = true;\n addClass(this.target, this.leaveActiveClass);\n if (this.leaveFromClass) {\n removeClass(this.target, this.leaveFromClass);\n }\n\n this.leaveListener = this.renderer.listen(this.target, 'animationend', () => {\n removeClass(this.target, this.leaveActiveClass as string);\n if (this.leaveToClass) {\n addClass(this.target, this.leaveToClass);\n }\n this.leaveListener && this.leaveListener();\n this.animating = false;\n });\n }\n } else {\n if (this.leaveFromClass) {\n removeClass(this.target, this.leaveFromClass);\n }\n\n if (this.leaveToClass) {\n addClass(this.target, this.leaveToClass);\n }\n }\n\n if (this.hideOnOutsideClick) {\n this.unbindDocumentClickListener();\n }\n\n if (this.hideOnEscape) {\n this.unbindDocumentKeydownListener();\n }\n\n if (this.hideOnResize) {\n this.unbindResizeListener();\n }\n }\n\n bindDocumentClickListener() {\n if (!this.documentClickListener) {\n this.documentClickListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'click', (event) => {\n if (!this.isVisible() || getComputedStyle(this.target as HTMLElement).getPropertyValue('position') === 'static') this.unbindDocumentClickListener();\n else if (this.isOutsideClick(event)) this.leave();\n });\n }\n }\n\n bindDocumentKeydownListener() {\n if (!this.documentKeydownListener) {\n this.zone.runOutsideAngular(() => {\n this.documentKeydownListener = this.renderer.listen(this.el.nativeElement.ownerDocument, 'keydown', (event) => {\n const { key, keyCode, which, type } = event;\n if (!this.isVisible() || getComputedStyle(this.target as HTMLElement).getPropertyValue('position') === 'static') this.unbindDocumentKeydownListener();\n if (this.isVisible() && key === 'Escape' && keyCode === 27 && which === 27) this.leave();\n });\n });\n }\n }\n\n isVisible() {\n return (this.target as HTMLElement).offsetParent !== null;\n }\n\n isOutsideClick(event: MouseEvent) {\n return !this.el.nativeElement.isSameNode(event.target) && !this.el.nativeElement.contains(event.target) && !(this.target as HTMLElement).contains(<HTMLElement>event.target);\n }\n\n unbindDocumentClickListener() {\n if (this.documentClickListener) {\n this.documentClickListener();\n this.documentClickListener = null;\n }\n }\n\n unbindDocumentKeydownListener() {\n if (this.documentKeydownListener) {\n this.documentKeydownListener();\n this.documentKeydownListener = null;\n }\n }\n\n bindResizeListener() {\n this._resizeTarget = getTargetElement(this.resizeSelector);\n if (isElement(this._resizeTarget)) {\n this.bindElementResizeListener();\n } else {\n this.bindWindowResizeListener();\n }\n }\n\n unbindResizeListener() {\n this.unbindWindowResizeListener();\n this.unbindElementResizeListener();\n }\n\n bindWindowResizeListener() {\n if (!this.windowResizeListener) {\n this.zone.runOutsideAngular(() => {\n this.windowResizeListener = this.renderer.listen(window, 'resize', () => {\n if (!this.isVisible()) {\n this.unbindWindowResizeListener();\n } else {\n this.leave();\n }\n });\n });\n }\n }\n\n unbindWindowResizeListener() {\n if (this.windowResizeListener) {\n this.windowResizeListener();\n this.windowResizeListener = null;\n }\n }\n\n bindElementResizeListener() {\n if (!this.resizeObserver && this._resizeTarget) {\n let isFirstResize = true;\n this.resizeObserver = new ResizeObserver(() => {\n if (isFirstResize) {\n isFirstResize = false;\n return;\n }\n\n if (this.isVisible()) {\n this.leave();\n }\n });\n this.resizeObserver.observe(this._resizeTarget);\n }\n }\n\n unbindElementResizeListener() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = undefined;\n }\n }\n\n ngOnDestroy() {\n this.target = null;\n this._resizeTarget = null;\n\n if (this.eventListener) {\n this.eventListener();\n }\n this.unbindDocumentClickListener();\n this.unbindDocumentKeydownListener();\n this.unbindResizeListener();\n }\n}\n\n@NgModule({\n imports: [StyleClass],\n exports: [StyleClass]\n})\nexport class StyleClassModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}