@radix-ng/primitives 0.50.0 → 1.0.0-beta.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 (207) hide show
  1. package/collection/README.md +1 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +134 -66
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +224 -132
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-arrow.mjs +26 -10
  7. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +6 -6
  9. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +68 -75
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-button.mjs +123 -0
  13. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
  14. package/fesm2022/radix-ng-primitives-calendar.mjs +104 -103
  15. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs +414 -80
  17. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs +193 -92
  19. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-collection.mjs +72 -0
  21. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -0
  22. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  23. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-context-menu.mjs +143 -427
  25. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-core.mjs +757 -757
  27. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-cropper.mjs +55 -53
  29. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-date-field.mjs +93 -86
  31. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-dialog.mjs +658 -330
  33. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +98 -76
  35. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
  37. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
  38. package/fesm2022/radix-ng-primitives-editable.mjs +20 -20
  39. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-field.mjs +363 -0
  41. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
  42. package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
  43. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
  44. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  45. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-focus-scope.mjs +29 -14
  47. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-input.mjs +172 -0
  49. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-label.mjs +11 -11
  51. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-menu.mjs +1484 -353
  53. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
  55. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
  57. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
  58. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1060 -1553
  59. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -366
  61. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-pagination.mjs +51 -51
  63. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-popover.mjs +980 -995
  65. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-popper.mjs +137 -82
  67. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-portal.mjs +40 -16
  69. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
  71. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
  73. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-progress.mjs +231 -92
  75. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-radio.mjs +211 -70
  77. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-roving-focus.mjs +127 -77
  79. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-select.mjs +791 -511
  81. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-separator.mjs +16 -45
  83. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-slider.mjs +976 -720
  85. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-stepper.mjs +69 -71
  87. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-switch.mjs +128 -124
  89. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-tabs.mjs +388 -115
  91. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-time-field.mjs +111 -117
  93. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-toggle-group.mjs +122 -248
  95. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-toggle.mjs +99 -62
  97. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-toolbar.mjs +307 -94
  99. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1079
  101. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +46 -87
  103. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  105. package/meter/README.md +3 -0
  106. package/navigation-menu/README.md +2 -1
  107. package/package.json +85 -63
  108. package/portal/README.md +2 -0
  109. package/preview-card/README.md +3 -0
  110. package/schematics/collection.json +1 -0
  111. package/schematics/ng-add/index.d.ts +3 -2
  112. package/schematics/ng-add/index.js +62 -31
  113. package/schematics/ng-add/index.js.map +1 -1
  114. package/schematics/ng-add/package-config.d.ts +4 -2
  115. package/schematics/ng-add/package-config.js +10 -2
  116. package/schematics/ng-add/package-config.js.map +1 -1
  117. package/schematics/ng-add/schema.d.ts +3 -0
  118. package/schematics/ng-add/schema.js +3 -0
  119. package/schematics/ng-add/schema.js.map +1 -0
  120. package/schematics/ng-add/schema.json +14 -0
  121. package/select/README.md +2 -0
  122. package/{accordion/index.d.ts → types/radix-ng-primitives-accordion.d.ts} +102 -67
  123. package/types/radix-ng-primitives-alert-dialog.d.ts +114 -0
  124. package/{arrow/index.d.ts → types/radix-ng-primitives-arrow.d.ts} +1 -1
  125. package/{aspect-ratio/index.d.ts → types/radix-ng-primitives-aspect-ratio.d.ts} +1 -1
  126. package/{avatar/index.d.ts → types/radix-ng-primitives-avatar.d.ts} +7 -11
  127. package/types/radix-ng-primitives-button.d.ts +73 -0
  128. package/{calendar/index.d.ts → types/radix-ng-primitives-calendar.d.ts} +2 -3
  129. package/types/radix-ng-primitives-checkbox.d.ts +337 -0
  130. package/types/radix-ng-primitives-collapsible.d.ts +159 -0
  131. package/types/radix-ng-primitives-collection.d.ts +44 -0
  132. package/{config/index.d.ts → types/radix-ng-primitives-config.d.ts} +1 -1
  133. package/types/radix-ng-primitives-context-menu.d.ts +73 -0
  134. package/{core/index.d.ts → types/radix-ng-primitives-core.d.ts} +311 -236
  135. package/{cropper/index.d.ts → types/radix-ng-primitives-cropper.d.ts} +6 -5
  136. package/{date-field/index.d.ts → types/radix-ng-primitives-date-field.d.ts} +42 -27
  137. package/types/radix-ng-primitives-dialog.d.ts +323 -0
  138. package/{dismissable-layer/index.d.ts → types/radix-ng-primitives-dismissable-layer.d.ts} +15 -7
  139. package/types/radix-ng-primitives-drawer.d.ts +448 -0
  140. package/{editable/index.d.ts → types/radix-ng-primitives-editable.d.ts} +1 -1
  141. package/types/radix-ng-primitives-field.d.ts +373 -0
  142. package/types/radix-ng-primitives-fieldset.d.ts +48 -0
  143. package/{focus-scope/index.d.ts → types/radix-ng-primitives-focus-scope.d.ts} +13 -5
  144. package/types/radix-ng-primitives-input.d.ts +87 -0
  145. package/{label/index.d.ts → types/radix-ng-primitives-label.d.ts} +0 -1
  146. package/types/radix-ng-primitives-menu.d.ts +612 -0
  147. package/types/radix-ng-primitives-menubar.d.ts +66 -0
  148. package/types/radix-ng-primitives-meter.d.ts +193 -0
  149. package/types/radix-ng-primitives-navigation-menu.d.ts +488 -0
  150. package/types/radix-ng-primitives-number-field.d.ts +464 -0
  151. package/{pagination/index.d.ts → types/radix-ng-primitives-pagination.d.ts} +2 -2
  152. package/types/radix-ng-primitives-popover.d.ts +416 -0
  153. package/{popper/index.d.ts → types/radix-ng-primitives-popper.d.ts} +50 -9
  154. package/types/radix-ng-primitives-portal.d.ts +30 -0
  155. package/types/radix-ng-primitives-presence.d.ts +55 -0
  156. package/types/radix-ng-primitives-preview-card.d.ts +359 -0
  157. package/types/radix-ng-primitives-progress.d.ts +206 -0
  158. package/{radio/index.d.ts → types/radix-ng-primitives-radio.d.ts} +56 -26
  159. package/{roving-focus/index.d.ts → types/radix-ng-primitives-roving-focus.d.ts} +38 -27
  160. package/types/radix-ng-primitives-select.d.ts +512 -0
  161. package/types/radix-ng-primitives-separator.d.ts +38 -0
  162. package/types/radix-ng-primitives-slider.d.ts +377 -0
  163. package/{stepper/index.d.ts → types/radix-ng-primitives-stepper.d.ts} +21 -22
  164. package/types/radix-ng-primitives-switch.d.ts +121 -0
  165. package/types/radix-ng-primitives-tabs.d.ts +247 -0
  166. package/{time-field/index.d.ts → types/radix-ng-primitives-time-field.d.ts} +46 -31
  167. package/types/radix-ng-primitives-toggle-group.d.ts +116 -0
  168. package/types/radix-ng-primitives-toggle.d.ts +65 -0
  169. package/types/radix-ng-primitives-toolbar.d.ts +180 -0
  170. package/types/radix-ng-primitives-tooltip.d.ts +395 -0
  171. package/{visually-hidden/index.d.ts → types/radix-ng-primitives-visually-hidden.d.ts} +19 -19
  172. package/alert-dialog/index.d.ts +0 -57
  173. package/checkbox/index.d.ts +0 -164
  174. package/collapsible/index.d.ts +0 -85
  175. package/context-menu/index.d.ts +0 -129
  176. package/dialog/index.d.ts +0 -205
  177. package/dropdown-menu/README.md +0 -1
  178. package/dropdown-menu/index.d.ts +0 -171
  179. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -583
  180. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
  181. package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1246
  182. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
  183. package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -740
  184. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
  185. package/hover-card/README.md +0 -3
  186. package/hover-card/index.d.ts +0 -472
  187. package/menu/index.d.ts +0 -139
  188. package/menubar/index.d.ts +0 -56
  189. package/navigation-menu/index.d.ts +0 -405
  190. package/number-field/index.d.ts +0 -203
  191. package/popover/index.d.ts +0 -403
  192. package/portal/index.d.ts +0 -22
  193. package/presence/index.d.ts +0 -103
  194. package/progress/index.d.ts +0 -79
  195. package/select/index.d.ts +0 -214
  196. package/separator/index.d.ts +0 -63
  197. package/slider/index.d.ts +0 -263
  198. package/switch/index.d.ts +0 -105
  199. package/tabs/index.d.ts +0 -112
  200. package/toggle/index.d.ts +0 -75
  201. package/toggle-group/index.d.ts +0 -194
  202. package/toolbar/index.d.ts +0 -55
  203. package/tooltip/index.d.ts +0 -433
  204. package/tooltip2/README.md +0 -3
  205. package/tooltip2/index.d.ts +0 -325
  206. /package/{focus-guards/index.d.ts → types/radix-ng-primitives-focus-guards.d.ts} +0 -0
  207. /package/{index.d.ts → types/radix-ng-primitives.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../tmp-esm2022/tooltip/src/tooltip-anchor.token.js","../tmp-esm2022/tooltip/src/tooltip-arrow.token.js","../tmp-esm2022/tooltip/src/tooltip-close.token.js","../tmp-esm2022/tooltip/src/tooltip-content-attributes.token.js","../tmp-esm2022/tooltip/src/tooltip.types.js","../tmp-esm2022/tooltip/src/tooltip-content.directive.js","../tmp-esm2022/tooltip/src/tooltip-trigger.directive.js","../tmp-esm2022/tooltip/src/utils/constants.js","../tmp-esm2022/tooltip/src/utils/cdk-event.service.js","../tmp-esm2022/tooltip/src/tooltip-root.directive.js","../tmp-esm2022/tooltip/src/tooltip-root.inject.js","../tmp-esm2022/tooltip/src/tooltip-anchor.directive.js","../tmp-esm2022/tooltip/src/tooltip-arrow.directive.js","../tmp-esm2022/tooltip/src/tooltip-close.directive.js","../tmp-esm2022/tooltip/src/tooltip-content-attributes.component.js","../tmp-esm2022/tooltip/index.js","../tmp-esm2022/tooltip/radix-ng-primitives-tooltip.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const RdxTooltipAnchorToken = new InjectionToken('RdxTooltipAnchorToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hbmNob3IudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAtYW5jaG9yLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQTRCLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcEFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC1hbmNob3IuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IFJkeFRvb2x0aXBBbmNob3JUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHhUb29sdGlwQW5jaG9yRGlyZWN0aXZlPignUmR4VG9vbHRpcEFuY2hvclRva2VuJyk7XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RdxTooltipArrowToken = new InjectionToken('RdxTooltipArrowToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hcnJvdy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC1hcnJvdy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUEyQixzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBBcnJvd0RpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC1hcnJvdy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4VG9vbHRpcEFycm93VG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4VG9vbHRpcEFycm93RGlyZWN0aXZlPignUmR4VG9vbHRpcEFycm93VG9rZW4nKTtcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const RdxTooltipCloseToken = new InjectionToken('RdxTooltipCloseToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jbG9zZS50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC1jbG9zZS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUEyQixzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBDbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC1jbG9zZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4VG9vbHRpcENsb3NlVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4VG9vbHRpcENsb3NlRGlyZWN0aXZlPignUmR4VG9vbHRpcENsb3NlVG9rZW4nKTtcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const RdxTooltipContentAttributesToken = new InjectionToken('RdxTooltipContentAttributesToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250ZW50LWF0dHJpYnV0ZXMudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAtY29udGVudC1hdHRyaWJ1dGVzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQzlELGtDQUFrQyxDQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc0NvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC1jb250ZW50LWF0dHJpYnV0ZXMuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IFJkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc0NvbXBvbmVudD4oXG4gICAgJ1JkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc1Rva2VuJ1xuKTtcbiJdfQ==","export var RdxTooltipState;\n(function (RdxTooltipState) {\n RdxTooltipState[\"OPEN\"] = \"open\";\n RdxTooltipState[\"CLOSED\"] = \"closed\";\n})(RdxTooltipState || (RdxTooltipState = {}));\nexport var RdxTooltipAction;\n(function (RdxTooltipAction) {\n RdxTooltipAction[\"OPEN\"] = \"open\";\n RdxTooltipAction[\"CLOSE\"] = \"close\";\n})(RdxTooltipAction || (RdxTooltipAction = {}));\nexport var RdxTooltipAttachDetachEvent;\n(function (RdxTooltipAttachDetachEvent) {\n RdxTooltipAttachDetachEvent[\"ATTACH\"] = \"attach\";\n RdxTooltipAttachDetachEvent[\"DETACH\"] = \"detach\";\n})(RdxTooltipAttachDetachEvent || (RdxTooltipAttachDetachEvent = {}));\nexport var RdxTooltipAnimationStatus;\n(function (RdxTooltipAnimationStatus) {\n RdxTooltipAnimationStatus[\"OPEN_STARTED\"] = \"open_started\";\n RdxTooltipAnimationStatus[\"OPEN_ENDED\"] = \"open_ended\";\n RdxTooltipAnimationStatus[\"CLOSED_STARTED\"] = \"closed_started\";\n RdxTooltipAnimationStatus[\"CLOSED_ENDED\"] = \"closed_ended\";\n})(RdxTooltipAnimationStatus || (RdxTooltipAnimationStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixvQ0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQ3hCLGlDQUFhLENBQUE7SUFDYixtQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCO0FBRUQsTUFBTSxDQUFOLElBQVksMkJBR1g7QUFIRCxXQUFZLDJCQUEyQjtJQUNuQyxnREFBaUIsQ0FBQTtJQUNqQixnREFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQUd0QztBQUVELE1BQU0sQ0FBTixJQUFZLHlCQUtYO0FBTEQsV0FBWSx5QkFBeUI7SUFDakMsMERBQTZCLENBQUE7SUFDN0Isc0RBQXlCLENBQUE7SUFDekIsOERBQWlDLENBQUE7SUFDakMsMERBQTZCLENBQUE7QUFDakMsQ0FBQyxFQUxXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFLcEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZHhUb29sdGlwU3RhdGUge1xuICAgIE9QRU4gPSAnb3BlbicsXG4gICAgQ0xPU0VEID0gJ2Nsb3NlZCdcbn1cblxuZXhwb3J0IGVudW0gUmR4VG9vbHRpcEFjdGlvbiB7XG4gICAgT1BFTiA9ICdvcGVuJyxcbiAgICBDTE9TRSA9ICdjbG9zZSdcbn1cblxuZXhwb3J0IGVudW0gUmR4VG9vbHRpcEF0dGFjaERldGFjaEV2ZW50IHtcbiAgICBBVFRBQ0ggPSAnYXR0YWNoJyxcbiAgICBERVRBQ0ggPSAnZGV0YWNoJ1xufVxuXG5leHBvcnQgZW51bSBSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzIHtcbiAgICBPUEVOX1NUQVJURUQgPSAnb3Blbl9zdGFydGVkJyxcbiAgICBPUEVOX0VOREVEID0gJ29wZW5fZW5kZWQnLFxuICAgIENMT1NFRF9TVEFSVEVEID0gJ2Nsb3NlZF9zdGFydGVkJyxcbiAgICBDTE9TRURfRU5ERUQgPSAnY2xvc2VkX2VuZGVkJ1xufVxuIl19","import { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';\nimport { booleanAttribute, computed, DestroyRef, Directive, effect, inject, input, numberAttribute, output, SimpleChange, TemplateRef, untracked } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { getAllPossibleConnectedPositions, getContentPosition, RDX_POSITIONING_DEFAULTS, RdxPositionAlign, RdxPositionSide } from '@radix-ng/primitives/core';\nimport { filter, tap } from 'rxjs';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport { RdxTooltipAttachDetachEvent } from './tooltip.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/overlay\";\nexport class RdxTooltipContentDirective {\n constructor() {\n /** @ignore */\n this.rootDirective = injectTooltipRoot();\n /** @ignore */\n this.templateRef = inject(TemplateRef);\n /** @ignore */\n this.overlay = inject(Overlay);\n /** @ignore */\n this.destroyRef = inject(DestroyRef);\n /** @ignore */\n this.connectedOverlay = inject(CdkConnectedOverlay);\n /** @ignore */\n this.name = computed(() => `rdx-tooltip-trigger-${this.rootDirective.uniqueId()}`, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n /**\n * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.\n * @default top\n */\n this.side = input(RdxPositionSide.Top, ...(ngDevMode ? [{ debugName: \"side\" }] : []));\n /**\n * @description The distance in pixels from the trigger.\n * @default undefined\n */\n this.sideOffset = input(NaN, ...(ngDevMode ? [{ debugName: \"sideOffset\", transform: numberAttribute }] : [{\n transform: numberAttribute\n }]));\n /**\n * @description The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n this.align = input(RdxPositionAlign.Center, ...(ngDevMode ? [{ debugName: \"align\" }] : []));\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default undefined\n */\n this.alignOffset = input(NaN, ...(ngDevMode ? [{ debugName: \"alignOffset\", transform: numberAttribute }] : [{\n transform: numberAttribute\n }]));\n /**\n * @description Whether to add some alternate positions of the content.\n * @default false\n */\n this.alternatePositionsDisabled = input(false, ...(ngDevMode ? [{ debugName: \"alternatePositionsDisabled\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */\n this.onOverlayEscapeKeyDownDisabled = input(false, ...(ngDevMode ? [{ debugName: \"onOverlayEscapeKeyDownDisabled\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */\n this.onOverlayOutsideClickDisabled = input(false, ...(ngDevMode ? [{ debugName: \"onOverlayOutsideClickDisabled\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * @description Event handler called when the escape key is down.\n * It can be prevented by setting `onOverlayEscapeKeyDownDisabled` input to `true`.\n */\n this.onOverlayEscapeKeyDown = output();\n /**\n * @description Event handler called when a pointer event occurs outside the bounds of the component.\n * It can be prevented by setting `onOverlayOutsideClickDisabled` input to `true`.\n */\n this.onOverlayOutsideClick = output();\n /**\n * @description Event handler called after the overlay is open\n */\n this.onOpen = output();\n /**\n * @description Event handler called after the overlay is closed\n */\n this.onClosed = output();\n /** @ingore */\n this.positions = computed(() => this.computePositions(), ...(ngDevMode ? [{ debugName: \"positions\" }] : []));\n this.onOriginChangeEffect();\n this.onPositionChangeEffect();\n }\n /** @ignore */\n ngOnInit() {\n this.setScrollStrategy();\n this.setHasBackdrop();\n this.setDisableClose();\n this.onAttach();\n this.onDetach();\n this.connectKeydownEscape();\n this.connectOutsideClick();\n }\n /** @ignore */\n open() {\n if (this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = true;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n /** @ignore */\n close() {\n if (!this.connectedOverlay.open) {\n return;\n }\n const prevOpen = this.connectedOverlay.open;\n this.connectedOverlay.open = false;\n this.fireOverlayNgOnChanges('open', this.connectedOverlay.open, prevOpen);\n }\n /** @ignore */\n positionChange() {\n return this.connectedOverlay.positionChange.asObservable();\n }\n /** @ignore */\n connectKeydownEscape() {\n this.connectedOverlay.overlayKeydown\n .asObservable()\n .pipe(filter(() => !this.onOverlayEscapeKeyDownDisabled() &&\n !this.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(this.rootDirective, 'cdkOverlayEscapeKeyDown')), filter((event) => event.key === 'Escape'), tap((event) => {\n this.onOverlayEscapeKeyDown.emit(event);\n }), filter(() => !this.rootDirective.firstDefaultOpen()), tap(() => {\n this.rootDirective.handleClose();\n }), takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n /** @ignore */\n connectOutsideClick() {\n this.connectedOverlay.overlayOutsideClick\n .asObservable()\n .pipe(filter(() => !this.onOverlayOutsideClickDisabled() &&\n !this.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(this.rootDirective, 'cdkOverlayOutsideClick')), \n /**\n * Handle the situation when an anchor is added and the anchor becomes the origin of the overlay\n * hence the trigger will be considered the outside element\n */\n filter((event) => {\n return (!this.rootDirective.anchorDirective() ||\n !this.rootDirective\n .triggerDirective()\n .elementRef.nativeElement.contains(event.target));\n }), tap((event) => {\n this.onOverlayOutsideClick.emit(event);\n }), filter(() => !this.rootDirective.firstDefaultOpen()), tap(() => {\n this.rootDirective.handleClose();\n }), takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n /** @ignore */\n onAttach() {\n this.connectedOverlay.attach\n .asObservable()\n .pipe(tap(() => {\n /**\n * `this.onOpen.emit();` is being delegated to the rootDirective directive due to the opening animation\n */\n this.rootDirective.attachDetachEvent.set(RdxTooltipAttachDetachEvent.ATTACH);\n }), takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n /** @ignore */\n onDetach() {\n this.connectedOverlay.detach\n .asObservable()\n .pipe(tap(() => {\n /**\n * `this.onClosed.emit();` is being delegated to the rootDirective directive due to the closing animation\n */\n this.rootDirective.attachDetachEvent.set(RdxTooltipAttachDetachEvent.DETACH);\n }), takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n /** @ignore */\n setScrollStrategy() {\n const prevScrollStrategy = this.connectedOverlay.scrollStrategy;\n this.connectedOverlay.scrollStrategy = this.overlay.scrollStrategies.reposition();\n this.fireOverlayNgOnChanges('scrollStrategy', this.connectedOverlay.scrollStrategy, prevScrollStrategy);\n }\n /** @ignore */\n setHasBackdrop() {\n const prevHasBackdrop = this.connectedOverlay.hasBackdrop;\n this.connectedOverlay.hasBackdrop = false;\n this.fireOverlayNgOnChanges('hasBackdrop', this.connectedOverlay.hasBackdrop, prevHasBackdrop);\n }\n /** @ignore */\n setDisableClose() {\n const prevDisableClose = this.connectedOverlay.disableClose;\n this.connectedOverlay.disableClose = true;\n this.fireOverlayNgOnChanges('disableClose', this.connectedOverlay.disableClose, prevDisableClose);\n }\n /** @ignore */\n setOrigin(origin) {\n const prevOrigin = this.connectedOverlay.origin;\n this.connectedOverlay.origin = origin;\n this.fireOverlayNgOnChanges('origin', this.connectedOverlay.origin, prevOrigin);\n }\n /** @ignore */\n setPositions(positions) {\n const prevPositions = this.connectedOverlay.positions;\n this.connectedOverlay.positions = positions;\n this.fireOverlayNgOnChanges('positions', this.connectedOverlay.positions, prevPositions);\n this.connectedOverlay.overlayRef?.updatePosition();\n }\n /** @ignore */\n computePositions() {\n const arrowHeight = this.rootDirective.arrowDirective()?.height() ?? 0;\n const offsets = {\n sideOffset: arrowHeight + (isNaN(this.sideOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.side : this.sideOffset()),\n alignOffset: isNaN(this.alignOffset()) ? RDX_POSITIONING_DEFAULTS.offsets.align : this.alignOffset()\n };\n const basePosition = getContentPosition({\n side: this.side(),\n align: this.align(),\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n });\n const positions = [basePosition];\n if (!this.alternatePositionsDisabled()) {\n /**\n * Alternate positions for better user experience along the X/Y axis (e.g. vertical/horizontal scrolling)\n */\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n allPossibleConnectedPositions.forEach((_, key) => {\n const sideAndAlignArray = key.split('|');\n if (sideAndAlignArray[0] !== this.side() ||\n sideAndAlignArray[1] !== this.align()) {\n positions.push(getContentPosition({\n side: sideAndAlignArray[0],\n align: sideAndAlignArray[1],\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n }));\n }\n });\n }\n return positions;\n }\n onOriginChangeEffect() {\n effect(() => {\n const origin = (this.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective())\n .overlayOrigin;\n untracked(() => {\n this.setOrigin(origin);\n });\n });\n }\n /** @ignore */\n onPositionChangeEffect() {\n effect(() => {\n const positions = this.positions();\n this.alternatePositionsDisabled();\n untracked(() => {\n this.setPositions(positions);\n });\n });\n }\n /** @ignore */\n fireOverlayNgOnChanges(input, currentValue, previousValue, firstChange = false) {\n this.connectedOverlay.ngOnChanges({\n [input]: new SimpleChange(previousValue, currentValue, firstChange)\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxTooltipContentDirective, isStandalone: true, selector: \"[rdxTooltipContent]\", inputs: { side: { classPropertyName: \"side\", publicName: \"side\", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: \"sideOffset\", publicName: \"sideOffset\", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: \"align\", publicName: \"align\", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: \"alignOffset\", publicName: \"alignOffset\", isSignal: true, isRequired: false, transformFunction: null }, alternatePositionsDisabled: { classPropertyName: \"alternatePositionsDisabled\", publicName: \"alternatePositionsDisabled\", isSignal: true, isRequired: false, transformFunction: null }, onOverlayEscapeKeyDownDisabled: { classPropertyName: \"onOverlayEscapeKeyDownDisabled\", publicName: \"onOverlayEscapeKeyDownDisabled\", isSignal: true, isRequired: false, transformFunction: null }, onOverlayOutsideClickDisabled: { classPropertyName: \"onOverlayOutsideClickDisabled\", publicName: \"onOverlayOutsideClickDisabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOverlayEscapeKeyDown: \"onOverlayEscapeKeyDown\", onOverlayOutsideClick: \"onOverlayOutsideClick\", onOpen: \"onOpen\", onClosed: \"onClosed\" }, hostDirectives: [{ directive: i1.CdkConnectedOverlay }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipContentDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxTooltipContent]',\n hostDirectives: [CdkConnectedOverlay]\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUNILGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBRWYsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsZUFBZSxFQUVsQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFNOUQsTUFBTSxPQUFPLDBCQUEwQjtJQTBFbkM7UUF6RUEsY0FBYztRQUNHLGtCQUFhLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztRQUNyRCxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkQsY0FBYztRQUNHLFlBQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsY0FBYztRQUNHLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7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QUFZLENBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7U0FDdEUsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E3VFEsMEJBQTBCO2tHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsY0FBYyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGNvbXB1dGVkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uSW5pdCxcbiAgICBvdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHVudHJhY2tlZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gICAgZ2V0QWxsUG9zc2libGVDb25uZWN0ZWRQb3NpdGlvbnMsXG4gICAgZ2V0Q29udGVudFBvc2l0aW9uLFxuICAgIFJEWF9QT1NJVElPTklOR19ERUZBVUxUUyxcbiAgICBSZHhQb3NpdGlvbkFsaWduLFxuICAgIFJkeFBvc2l0aW9uU2lkZSxcbiAgICBSZHhQb3NpdGlvblNpZGVBbmRBbGlnbk9mZnNldHNcbn0gZnJvbSAnQHJhZGl4LW5nL3ByaW1pdGl2ZXMvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0VG9vbHRpcFJvb3QgfSBmcm9tICcuL3Rvb2x0aXAtcm9vdC5pbmplY3QnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcEF0dGFjaERldGFjaEV2ZW50IH0gZnJvbSAnLi90b29sdGlwLnR5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9vbHRpcENvbnRlbnRdJyxcbiAgICBob3N0RGlyZWN0aXZlczogW0Nka0Nvbm5lY3RlZE92ZXJsYXldXG59KVxuZXhwb3J0IGNsYXNzIFJkeFRvb2x0aXBDb250ZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm9vdERpcmVjdGl2ZSA9IGluamVjdFRvb2x0aXBSb290KCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdGVkT3ZlcmxheSA9IGluamVjdChDZGtDb25uZWN0ZWRPdmVybGF5KTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IGNvbXB1dGVkKCgpID0+IGByZHgtdG9vbHRpcC10cmlnZ2VyLSR7dGhpcy5yb290RGlyZWN0aXZlLnVuaXF1ZUlkKCl9YCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByZWZlcnJlZCBzaWRlIG9mIHRoZSB0cmlnZ2VyIHRvIHJlbmRlciBhZ2FpbnN0IHdoZW4gb3Blbi4gV2lsbCBiZSByZXZlcnNlZCB3aGVuIGNvbGxpc2lvbnMgb2NjdXIgYW5kIGF2b2lkQ29sbGlzaW9ucyBpcyBlbmFibGVkLlxuICAgICAqIEBkZWZhdWx0IHRvcFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNpZGUgPSBpbnB1dDxSZHhQb3NpdGlvblNpZGU+KFJkeFBvc2l0aW9uU2lkZS5Ub3ApO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgZGlzdGFuY2UgaW4gcGl4ZWxzIGZyb20gdGhlIHRyaWdnZXIuXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2lkZU9mZnNldCA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KE5hTiwge1xuICAgICAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJlZmVycmVkIGFsaWdubWVudCBhZ2FpbnN0IHRoZSB0cmlnZ2VyLiBNYXkgY2hhbmdlIHdoZW4gY29sbGlzaW9ucyBvY2N1ci5cbiAgICAgKiBAZGVmYXVsdCBjZW50ZXJcbiAgICAgKi9cbiAgICByZWFkb25seSBhbGlnbiA9IGlucHV0PFJkeFBvc2l0aW9uQWxpZ24+KFJkeFBvc2l0aW9uQWxpZ24uQ2VudGVyKTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQW4gb2Zmc2V0IGluIHBpeGVscyBmcm9tIHRoZSBcInN0YXJ0XCIgb3IgXCJlbmRcIiBhbGlnbm1lbnQgb3B0aW9ucy5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBhbGlnbk9mZnNldCA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KE5hTiwge1xuICAgICAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gYWRkIHNvbWUgYWx0ZXJuYXRlIHBvc2l0aW9ucyBvZiB0aGUgY29udGVudC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsdGVybmF0ZVBvc2l0aW9uc0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gcHJldmVudCBgb25PdmVybGF5RXNjYXBlS2V5RG93bmAgaGFuZGxlciBmcm9tIGNhbGxpbmcuICovXG4gICAgcmVhZG9ubHkgb25PdmVybGF5RXNjYXBlS2V5RG93bkRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRvIHByZXZlbnQgYG9uT3ZlcmxheU91dHNpZGVDbGlja2AgaGFuZGxlciBmcm9tIGNhbGxpbmcuICovXG4gICAgcmVhZG9ubHkgb25PdmVybGF5T3V0c2lkZUNsaWNrRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBlc2NhcGUga2V5IGlzIGRvd24uXG4gICAgICogSXQgY2FuIGJlIHByZXZlbnRlZCBieSBzZXR0aW5nIGBvbk92ZXJsYXlFc2NhcGVLZXlEb3duRGlzYWJsZWRgIGlucHV0IHRvIGB0cnVlYC5cbiAgICAgKi9cbiAgICByZWFkb25seSBvbk92ZXJsYXlFc2NhcGVLZXlEb3duID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYSBwb2ludGVyIGV2ZW50IG9jY3VycyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBJdCBjYW4gYmUgcHJldmVudGVkIGJ5IHNldHRpbmcgYG9uT3ZlcmxheU91dHNpZGVDbGlja0Rpc2FibGVkYCBpbnB1dCB0byBgdHJ1ZWAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgb25PdmVybGF5T3V0c2lkZUNsaWNrID0gb3V0cHV0PE1vdXNlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgaGFuZGxlciBjYWxsZWQgYWZ0ZXIgdGhlIG92ZXJsYXkgaXMgb3BlblxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9uT3BlbiA9IG91dHB1dDx2b2lkPigpO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFdmVudCBoYW5kbGVyIGNhbGxlZCBhZnRlciB0aGUgb3ZlcmxheSBpcyBjbG9zZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBvbkNsb3NlZCA9IG91dHB1dDx2b2lkPigpO1xuXG4gICAgLyoqIEBpbmdvcmUgKi9cbiAgICByZWFkb25seSBwb3NpdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbXB1dGVQb3NpdGlvbnMoKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vbk9yaWdpbkNoYW5nZUVmZmVjdCgpO1xuICAgICAgICB0aGlzLm9uUG9zaXRpb25DaGFuZ2VFZmZlY3QoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldFNjcm9sbFN0cmF0ZWd5KCk7XG4gICAgICAgIHRoaXMuc2V0SGFzQmFja2Ryb3AoKTtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlQ2xvc2UoKTtcbiAgICAgICAgdGhpcy5vbkF0dGFjaCgpO1xuICAgICAgICB0aGlzLm9uRGV0YWNoKCk7XG4gICAgICAgIHRoaXMuY29ubmVjdEtleWRvd25Fc2NhcGUoKTtcbiAgICAgICAgdGhpcy5jb25uZWN0T3V0c2lkZUNsaWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBvcGVuKCkge1xuICAgICAgICBpZiAodGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2T3BlbiA9IHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcGVuO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkub3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlyZU92ZXJsYXlOZ09uQ2hhbmdlcygnb3BlbicsIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcGVuLCBwcmV2T3Blbik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbm5lY3RlZE92ZXJsYXkub3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZPcGVuID0gdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9wZW47XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmlyZU92ZXJsYXlOZ09uQ2hhbmdlcygnb3BlbicsIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcGVuLCBwcmV2T3Blbik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwb3NpdGlvbkNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbkNoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgY29ubmVjdEtleWRvd25Fc2NhcGUoKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vdmVybGF5S2V5ZG93blxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5vbk92ZXJsYXlFc2NhcGVLZXlEb3duRGlzYWJsZWQoKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMucm9vdERpcmVjdGl2ZS5yZHhDZGtFdmVudFNlcnZpY2U/LnByaW1pdGl2ZVByZXZlbnRlZEZyb21DZGtFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nka092ZXJsYXlFc2NhcGVLZXlEb3duJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5ID09PSAnRXNjYXBlJyksXG4gICAgICAgICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUVzY2FwZUtleURvd24uZW1pdChldmVudCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLnJvb3REaXJlY3RpdmUuZmlyc3REZWZhdWx0T3BlbigpKSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmUuaGFuZGxlQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBjb25uZWN0T3V0c2lkZUNsaWNrKCkge1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkub3ZlcmxheU91dHNpZGVDbGlja1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5vbk92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNhYmxlZCgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5yb290RGlyZWN0aXZlLnJkeENka0V2ZW50U2VydmljZT8ucHJpbWl0aXZlUHJldmVudGVkRnJvbUNka0V2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2RrT3ZlcmxheU91dHNpZGVDbGljaydcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEhhbmRsZSB0aGUgc2l0dWF0aW9uIHdoZW4gYW4gYW5jaG9yIGlzIGFkZGVkIGFuZCB0aGUgYW5jaG9yIGJlY29tZXMgdGhlIG9yaWdpbiBvZiB0aGUgb3ZlcmxheVxuICAgICAgICAgICAgICAgICAqIGhlbmNlICB0aGUgdHJpZ2dlciB3aWxsIGJlIGNvbnNpZGVyZWQgdGhlIG91dHNpZGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnJvb3REaXJlY3RpdmUuYW5jaG9yRGlyZWN0aXZlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnJvb3REaXJlY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudHJpZ2dlckRpcmVjdGl2ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25PdmVybGF5T3V0c2lkZUNsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5yb290RGlyZWN0aXZlLmZpcnN0RGVmYXVsdE9wZW4oKSksXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlLmhhbmRsZUNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25BdHRhY2goKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5hdHRhY2hcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIGB0aGlzLm9uT3Blbi5lbWl0KCk7YCBpcyBiZWluZyBkZWxlZ2F0ZWQgdG8gdGhlIHJvb3REaXJlY3RpdmUgZGlyZWN0aXZlIGR1ZSB0byB0aGUgb3BlbmluZyBhbmltYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5hdHRhY2hEZXRhY2hFdmVudC5zZXQoUmR4VG9vbHRpcEF0dGFjaERldGFjaEV2ZW50LkFUVEFDSCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25EZXRhY2goKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5kZXRhY2hcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIGB0aGlzLm9uQ2xvc2VkLmVtaXQoKTtgIGlzIGJlaW5nIGRlbGVnYXRlZCB0byB0aGUgcm9vdERpcmVjdGl2ZSBkaXJlY3RpdmUgZHVlIHRvIHRoZSBjbG9zaW5nIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlLmF0dGFjaERldGFjaEV2ZW50LnNldChSZHhUb29sdGlwQXR0YWNoRGV0YWNoRXZlbnQuREVUQUNIKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBzZXRTY3JvbGxTdHJhdGVneSgpIHtcbiAgICAgICAgY29uc3QgcHJldlNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5jb25uZWN0ZWRPdmVybGF5LnNjcm9sbFN0cmF0ZWd5O1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZmlyZU92ZXJsYXlOZ09uQ2hhbmdlcygnc2Nyb2xsU3RyYXRlZ3knLCB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuc2Nyb2xsU3RyYXRlZ3ksIHByZXZTY3JvbGxTdHJhdGVneSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHNldEhhc0JhY2tkcm9wKCkge1xuICAgICAgICBjb25zdCBwcmV2SGFzQmFja2Ryb3AgPSB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuaGFzQmFja2Ryb3A7XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5oYXNCYWNrZHJvcCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpcmVPdmVybGF5TmdPbkNoYW5nZXMoJ2hhc0JhY2tkcm9wJywgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lmhhc0JhY2tkcm9wLCBwcmV2SGFzQmFja2Ryb3ApO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBzZXREaXNhYmxlQ2xvc2UoKSB7XG4gICAgICAgIGNvbnN0IHByZXZEaXNhYmxlQ2xvc2UgPSB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuZGlzYWJsZUNsb3NlO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5maXJlT3ZlcmxheU5nT25DaGFuZ2VzKCdkaXNhYmxlQ2xvc2UnLCB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuZGlzYWJsZUNsb3NlLCBwcmV2RGlzYWJsZUNsb3NlKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgc2V0T3JpZ2luKG9yaWdpbjogQ2RrQ29ubmVjdGVkT3ZlcmxheVsnb3JpZ2luJ10pIHtcbiAgICAgICAgY29uc3QgcHJldk9yaWdpbiA9IHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcmlnaW47XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcmlnaW4gPSBvcmlnaW47XG4gICAgICAgIHRoaXMuZmlyZU92ZXJsYXlOZ09uQ2hhbmdlcygnb3JpZ2luJywgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9yaWdpbiwgcHJldk9yaWdpbik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHNldFBvc2l0aW9ucyhwb3NpdGlvbnM6IENka0Nvbm5lY3RlZE92ZXJsYXlbJ3Bvc2l0aW9ucyddKSB7XG4gICAgICAgIGNvbnN0IHByZXZQb3NpdGlvbnMgPSB0aGlzLmNvbm5lY3RlZE92ZXJsYXkucG9zaXRpb25zO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkucG9zaXRpb25zID0gcG9zaXRpb25zO1xuICAgICAgICB0aGlzLmZpcmVPdmVybGF5TmdPbkNoYW5nZXMoJ3Bvc2l0aW9ucycsIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnMsIHByZXZQb3NpdGlvbnMpO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgY29tcHV0ZVBvc2l0aW9ucygpIHtcbiAgICAgICAgY29uc3QgYXJyb3dIZWlnaHQgPSB0aGlzLnJvb3REaXJlY3RpdmUuYXJyb3dEaXJlY3RpdmUoKT8uaGVpZ2h0KCkgPz8gMDtcbiAgICAgICAgY29uc3Qgb2Zmc2V0czogUmR4UG9zaXRpb25TaWRlQW5kQWxpZ25PZmZzZXRzID0ge1xuICAgICAgICAgICAgc2lkZU9mZnNldDpcbiAgICAgICAgICAgICAgICBhcnJvd0hlaWdodCArIChpc05hTih0aGlzLnNpZGVPZmZzZXQoKSkgPyBSRFhfUE9TSVRJT05JTkdfREVGQVVMVFMub2Zmc2V0cy5zaWRlIDogdGhpcy5zaWRlT2Zmc2V0KCkpLFxuICAgICAgICAgICAgYWxpZ25PZmZzZXQ6IGlzTmFOKHRoaXMuYWxpZ25PZmZzZXQoKSkgPyBSRFhfUE9TSVRJT05JTkdfREVGQVVMVFMub2Zmc2V0cy5hbGlnbiA6IHRoaXMuYWxpZ25PZmZzZXQoKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBiYXNlUG9zaXRpb24gPSBnZXRDb250ZW50UG9zaXRpb24oe1xuICAgICAgICAgICAgc2lkZTogdGhpcy5zaWRlKCksXG4gICAgICAgICAgICBhbGlnbjogdGhpcy5hbGlnbigpLFxuICAgICAgICAgICAgc2lkZU9mZnNldDogb2Zmc2V0cy5zaWRlT2Zmc2V0LFxuICAgICAgICAgICAgYWxpZ25PZmZzZXQ6IG9mZnNldHMuYWxpZ25PZmZzZXRcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IFtiYXNlUG9zaXRpb25dO1xuICAgICAgICBpZiAoIXRoaXMuYWx0ZXJuYXRlUG9zaXRpb25zRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBbHRlcm5hdGUgcG9zaXRpb25zIGZvciBiZXR0ZXIgdXNlciBleHBlcmllbmNlIGFsb25nIHRoZSBYL1kgYXhpcyAoZS5nLiB2ZXJ0aWNhbC9ob3Jpem9udGFsIHNjcm9sbGluZylcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgYWxsUG9zc2libGVDb25uZWN0ZWRQb3NpdGlvbnMgPSBnZXRBbGxQb3NzaWJsZUNvbm5lY3RlZFBvc2l0aW9ucygpO1xuICAgICAgICAgICAgYWxsUG9zc2libGVDb25uZWN0ZWRQb3NpdGlvbnMuZm9yRWFjaCgoXywga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lkZUFuZEFsaWduQXJyYXkgPSBrZXkuc3BsaXQoJ3wnKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIChzaWRlQW5kQWxpZ25BcnJheVswXSBhcyBSZHhQb3NpdGlvblNpZGUpICE9PSB0aGlzLnNpZGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAoc2lkZUFuZEFsaWduQXJyYXlbMV0gYXMgUmR4UG9zaXRpb25BbGlnbikgIT09IHRoaXMuYWxpZ24oKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbnRlbnRQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZTogc2lkZUFuZEFsaWduQXJyYXlbMF0gYXMgUmR4UG9zaXRpb25TaWRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiBzaWRlQW5kQWxpZ25BcnJheVsxXSBhcyBSZHhQb3NpdGlvbkFsaWduLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGVPZmZzZXQ6IG9mZnNldHMuc2lkZU9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbk9mZnNldDogb2Zmc2V0cy5hbGlnbk9mZnNldFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zaXRpb25zO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25PcmlnaW5DaGFuZ2VFZmZlY3QoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW4gPSAodGhpcy5yb290RGlyZWN0aXZlLmFuY2hvckRpcmVjdGl2ZSgpID8/IHRoaXMucm9vdERpcmVjdGl2ZS50cmlnZ2VyRGlyZWN0aXZlKCkpXG4gICAgICAgICAgICAgICAgLm92ZXJsYXlPcmlnaW47XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3JpZ2luKG9yaWdpbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uUG9zaXRpb25DaGFuZ2VFZmZlY3QoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbnMgPSB0aGlzLnBvc2l0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5hbHRlcm5hdGVQb3NpdGlvbnNEaXNhYmxlZCgpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9ucyhwb3NpdGlvbnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBmaXJlT3ZlcmxheU5nT25DaGFuZ2VzPEsgZXh0ZW5kcyBrZXlvZiBDZGtDb25uZWN0ZWRPdmVybGF5LCBWIGV4dGVuZHMgQ2RrQ29ubmVjdGVkT3ZlcmxheVtLXT4oXG4gICAgICAgIGlucHV0OiBLLFxuICAgICAgICBjdXJyZW50VmFsdWU6IFYsXG4gICAgICAgIHByZXZpb3VzVmFsdWU6IFYsXG4gICAgICAgIGZpcnN0Q2hhbmdlID0gZmFsc2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm5nT25DaGFuZ2VzKHtcbiAgICAgICAgICAgIFtpbnB1dF06IG5ldyBTaW1wbGVDaGFuZ2UocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlLCBmaXJzdENoYW5nZSlcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, inject } from '@angular/core';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/overlay\";\nexport class RdxTooltipTriggerDirective {\n constructor() {\n /** @ignore */\n this.rootDirective = injectTooltipRoot();\n /** @ignore */\n this.elementRef = inject(ElementRef);\n /** @ignore */\n this.overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n this.name = computed(() => `rdx-tooltip-trigger-${this.rootDirective.uniqueId()}`, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n }\n /** @ignore */\n pointerenter() {\n this.rootDirective.handleOpen();\n }\n /** @ignore */\n pointerleave() {\n this.rootDirective.handleClose();\n }\n /** @ignore */\n focus() {\n this.rootDirective.handleOpen();\n }\n /** @ignore */\n blur() {\n this.rootDirective.handleClose();\n }\n /** @ignore */\n click() {\n this.rootDirective.handleClose();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxTooltipTriggerDirective, isStandalone: true, selector: \"[rdxTooltipTrigger]\", host: { attributes: { \"type\": \"button\" }, listeners: { \"pointerenter\": \"pointerenter()\", \"pointerleave\": \"pointerleave()\", \"focus\": \"focus()\", \"blur\": \"blur()\", \"click\": \"click()\" }, properties: { \"attr.id\": \"name()\", \"attr.aria-haspopup\": \"\\\"dialog\\\"\", \"attr.aria-expanded\": \"rootDirective.isOpen()\", \"attr.aria-controls\": \"rootDirective.contentDirective().name()\", \"attr.data-state\": \"rootDirective.state()\" } }, hostDirectives: [{ directive: i1.CdkOverlayOrigin }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipTriggerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxTooltipTrigger]',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '[attr.aria-expanded]': 'rootDirective.isOpen()',\n '[attr.aria-controls]': 'rootDirective.contentDirective().name()',\n '[attr.data-state]': 'rootDirective.state()',\n '(pointerenter)': 'pointerenter()',\n '(pointerleave)': 'pointerleave()',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'click()'\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFtQjFELE1BQU0sT0FBTywwQkFBMEI7SUFqQnZDO1FBa0JJLGNBQWM7UUFDSyxrQkFBYSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDdkQsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLGNBQWM7UUFDTCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWxELGNBQWM7UUFDTCxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLGdEQUFDLENBQUM7S0EwQjFGO0lBeEJHLGNBQWM7SUFDZCxZQUFZO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztJQUNkLFlBQVk7UUFDUixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjO0lBQ2QsS0FBSztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFJO1FBQ0EsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OEdBbENRLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQWpCdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDbEMsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLFdBQVcsRUFBRSxRQUFRO3dCQUNyQixzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxzQkFBc0IsRUFBRSx3QkFBd0I7d0JBQ2hELHNCQUFzQixFQUFFLHlDQUF5Qzt3QkFDakUsbUJBQW1CLEVBQUUsdUJBQXVCO3dCQUM1QyxnQkFBZ0IsRUFBRSxnQkFBZ0I7d0JBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjt3QkFDbEMsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixTQUFTLEVBQUUsU0FBUztxQkFDdkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RUb29sdGlwUm9vdCB9IGZyb20gJy4vdG9vbHRpcC1yb290LmluamVjdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFRvb2x0aXBUcmlnZ2VyXScsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtPdmVybGF5T3JpZ2luXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ25hbWUoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLWhhc3BvcHVwXSc6ICdcImRpYWxvZ1wiJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ3Jvb3REaXJlY3RpdmUuaXNPcGVuKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAncm9vdERpcmVjdGl2ZS5jb250ZW50RGlyZWN0aXZlKCkubmFtZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogJ3Jvb3REaXJlY3RpdmUuc3RhdGUoKScsXG4gICAgICAgICcocG9pbnRlcmVudGVyKSc6ICdwb2ludGVyZW50ZXIoKScsXG4gICAgICAgICcocG9pbnRlcmxlYXZlKSc6ICdwb2ludGVybGVhdmUoKScsXG4gICAgICAgICcoZm9jdXMpJzogJ2ZvY3VzKCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKScsXG4gICAgICAgICcoY2xpY2spJzogJ2NsaWNrKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwVHJpZ2dlckRpcmVjdGl2ZSB7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm9vdERpcmVjdGl2ZSA9IGluamVjdFRvb2x0aXBSb290KCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IG92ZXJsYXlPcmlnaW4gPSBpbmplY3QoQ2RrT3ZlcmxheU9yaWdpbik7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IG5hbWUgPSBjb21wdXRlZCgoKSA9PiBgcmR4LXRvb2x0aXAtdHJpZ2dlci0ke3RoaXMucm9vdERpcmVjdGl2ZS51bmlxdWVJZCgpfWApO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwb2ludGVyZW50ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5oYW5kbGVPcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwb2ludGVybGVhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5oYW5kbGVDbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5oYW5kbGVPcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBibHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmUuaGFuZGxlQ2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmUuaGFuZGxlQ2xvc2UoKTtcbiAgICB9XG59XG4iXX0=","export const RdxCdkEventServiceWindowKey = Symbol('__RdxCdkEventService__');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b29sdGlwL3NyYy91dGlscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUmR4Q2RrRXZlbnRTZXJ2aWNlV2luZG93S2V5ID0gU3ltYm9sKCdfX1JkeENka0V2ZW50U2VydmljZV9fJyk7XG4iXX0=","import { DestroyRef, inject, Injectable, InjectionToken, isDevMode, makeEnvironmentProviders, NgZone, Renderer2, VERSION } from '@angular/core';\nimport { injectDocument, injectWindow } from '@radix-ng/primitives/core';\nimport { RdxCdkEventServiceWindowKey } from './constants';\nimport * as i0 from \"@angular/core\";\nfunction eventTypeAsPrimitiveConfigKey(eventType) {\n return `prevent${eventType[0].toUpperCase()}${eventType.slice(1)}`;\n}\nclass RdxCdkEventService {\n #clickDomRootEventCallbacks;\n constructor() {\n this.document = injectDocument();\n this.destroyRef = inject(DestroyRef);\n this.ngZone = inject(NgZone);\n this.renderer2 = inject(Renderer2);\n this.window = injectWindow();\n this.onDestroyCallbacks = new Set([() => deleteRdxCdkEventServiceWindowKey(this.window)]);\n this.#clickDomRootEventCallbacks = new Set();\n this.#listenToClickDomRootEvent();\n this.#registerOnDestroyCallbacks();\n }\n registerPrimitive(primitiveInstance) {\n if (!this.primitiveConfigs) {\n this.primitiveConfigs = new Map();\n }\n if (!this.primitiveConfigs.has(primitiveInstance)) {\n this.primitiveConfigs.set(primitiveInstance, {});\n }\n }\n deregisterPrimitive(primitiveInstance) {\n if (this.primitiveConfigs?.has(primitiveInstance)) {\n this.primitiveConfigs.delete(primitiveInstance);\n }\n }\n preventPrimitiveFromCdkEvent(primitiveInstance, eventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n }\n allowPrimitiveForCdkEvent(primitiveInstance, eventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n }\n preventPrimitiveFromCdkMultiEvents(primitiveInstance, eventTypes) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n });\n }\n allowPrimitiveForCdkMultiEvents(primitiveInstance, eventTypes) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n });\n }\n setPreventPrimitiveFromCdkMixEvents(primitiveInstance, eventTypes) {\n Object.keys(eventTypes).forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, eventTypes[eventTypeAsPrimitiveConfigKey(eventType)]);\n });\n }\n primitivePreventedFromCdkEvent(primitiveInstance, eventType) {\n return this.primitiveConfigs?.get(primitiveInstance)?.[eventTypeAsPrimitiveConfigKey(eventType)];\n }\n addClickDomRootEventCallback(callback) {\n this.#clickDomRootEventCallbacks.add(callback);\n }\n removeClickDomRootEventCallback(callback) {\n return this.#clickDomRootEventCallbacks.delete(callback);\n }\n #setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, value) {\n if (!this.primitiveConfigs?.has(primitiveInstance)) {\n isDevMode() &&\n console.error('[RdxCdkEventService.preventPrimitiveFromCdkEvent] RDX Primitive instance has not been registered!', primitiveInstance);\n return;\n }\n switch (eventType) {\n case 'cdkOverlayOutsideClick':\n this.primitiveConfigs.get(primitiveInstance).preventCdkOverlayOutsideClick = value;\n break;\n case 'cdkOverlayEscapeKeyDown':\n this.primitiveConfigs.get(primitiveInstance).preventCdkOverlayEscapeKeyDown = value;\n break;\n }\n }\n #registerOnDestroyCallbacks() {\n this.destroyRef.onDestroy(() => {\n this.onDestroyCallbacks.forEach((onDestroyCallback) => onDestroyCallback());\n this.onDestroyCallbacks.clear();\n });\n }\n #listenToClickDomRootEvent() {\n const target = this.document;\n const eventName = 'click';\n const options = { capture: true };\n const callback = (event) => {\n this.#clickDomRootEventCallbacks.forEach((clickDomRootEventCallback) => clickDomRootEventCallback(event));\n };\n const major = parseInt(VERSION.major);\n const minor = parseInt(VERSION.minor);\n let destroyClickDomRootEventListener;\n /**\n * @see src/cdk/platform/features/backwards-compatibility.ts in @angular/cdk\n */\n if (major > 19 || (major === 19 && minor > 0) || (major === 0 && minor === 0)) {\n destroyClickDomRootEventListener = this.ngZone.runOutsideAngular(() => {\n const destroyClickDomRootEventListenerInternal = this.renderer2.listen(target, eventName, callback, options);\n return () => {\n destroyClickDomRootEventListenerInternal();\n this.#clickDomRootEventCallbacks.clear();\n };\n });\n }\n else {\n /**\n * This part can get removed when v19.1 or higher is on the board\n */\n destroyClickDomRootEventListener = this.ngZone.runOutsideAngular(() => {\n target.addEventListener(eventName, callback, options);\n return () => {\n this.ngZone.runOutsideAngular(() => target.removeEventListener(eventName, callback, options));\n this.#clickDomRootEventCallbacks.clear();\n };\n });\n }\n this.onDestroyCallbacks.add(destroyClickDomRootEventListener);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCdkEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCdkEventService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxCdkEventService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\nconst RdxCdkEventServiceToken = new InjectionToken('RdxCdkEventServiceToken');\nconst existsErrorMessage = 'RdxCdkEventService should be provided only once!';\nconst deleteRdxCdkEventServiceWindowKey = (window) => {\n delete window[RdxCdkEventServiceWindowKey];\n};\nconst getProvider = (throwWhenExists = true) => ({\n provide: RdxCdkEventServiceToken,\n useFactory: () => {\n isDevMode() && console.log('providing RdxCdkEventService...');\n const window = injectWindow();\n if (window[RdxCdkEventServiceWindowKey]) {\n if (throwWhenExists) {\n throw Error(existsErrorMessage);\n }\n else {\n isDevMode() && console.warn(existsErrorMessage);\n }\n }\n window[RdxCdkEventServiceWindowKey] ??= new RdxCdkEventService();\n return window[RdxCdkEventServiceWindowKey];\n }\n});\nexport const provideRdxCdkEventServiceInRoot = () => makeEnvironmentProviders([getProvider()]);\nexport const provideRdxCdkEventService = () => getProvider(false);\nexport const injectRdxCdkEventService = () => inject(RdxCdkEventServiceToken, { optional: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWV2ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3V0aWxzL2Nkay1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBRVYsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsU0FBUyxFQUNULHdCQUF3QixFQUN4QixNQUFNLEVBRU4sU0FBUyxFQUNULE9BQU8sRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHMUQsU0FBUyw2QkFBNkIsQ0FBQyxTQUFvQjtJQUN2RCxPQUFPLFVBQVUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQW1DLENBQUM7QUFDeEcsQ0FBQztBQUVELE1BQ00sa0JBQWtCO0lBV3BCLDJCQUEyQixDQUErQztJQUUxRTtRQVpBLGFBQVEsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixXQUFNLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFJeEIsdUJBQWtCLEdBQW9CLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RyxnQ0FBMkIsR0FBcUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUd0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LEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQW1CLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGVzdHJveVJlZixcbiAgICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBpc0Rldk1vZGUsXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICAgIE5nWm9uZSxcbiAgICBQcm92aWRlcixcbiAgICBSZW5kZXJlcjIsXG4gICAgVkVSU0lPTlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdERvY3VtZW50LCBpbmplY3RXaW5kb3cgfSBmcm9tICdAcmFkaXgtbmcvcHJpbWl0aXZlcy9jb3JlJztcbmltcG9ydCB7IFJkeENka0V2ZW50U2VydmljZVdpbmRvd0tleSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgRXZlbnRUeXBlQXNQcmltaXRpdmVDb25maWdLZXksIFByaW1pdGl2ZUNvbmZpZywgUHJpbWl0aXZlQ29uZmlncyB9IGZyb20gJy4vdHlwZXMnO1xuXG5mdW5jdGlvbiBldmVudFR5cGVBc1ByaW1pdGl2ZUNvbmZpZ0tleShldmVudFR5cGU6IEV2ZW50VHlwZSk6IEV2ZW50VHlwZUFzUHJpbWl0aXZlQ29uZmlnS2V5IHtcbiAgICByZXR1cm4gYHByZXZlbnQke2V2ZW50VHlwZVswXS50b1VwcGVyQ2FzZSgpfSR7ZXZlbnRUeXBlLnNsaWNlKDEpfWAgYXMgRXZlbnRUeXBlQXNQcmltaXRpdmVDb25maWdLZXk7XG59XG5cbkBJbmplY3RhYmxlKClcbmNsYXNzIFJkeENka0V2ZW50U2VydmljZSB7XG4gICAgZG9jdW1lbnQgPSBpbmplY3REb2N1bWVudCgpO1xuICAgIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgd2luZG93ID0gaW5qZWN0V2luZG93KCk7XG5cbiAgICBwcmltaXRpdmVDb25maWdzPzogUHJpbWl0aXZlQ29uZmlncztcblxuICAgIG9uRGVzdHJveUNhbGxiYWNrczogU2V0PCgpID0+IHZvaWQ+ID0gbmV3IFNldChbKCkgPT4gZGVsZXRlUmR4Q2RrRXZlbnRTZXJ2aWNlV2luZG93S2V5KHRoaXMud2luZG93KV0pO1xuXG4gICAgI2NsaWNrRG9tUm9vdEV2ZW50Q2FsbGJhY2tzOiBTZXQ8KGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkPiA9IG5ldyBTZXQoKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLiNsaXN0ZW5Ub0NsaWNrRG9tUm9vdEV2ZW50KCk7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyT25EZXN0cm95Q2FsbGJhY2tzKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJQcmltaXRpdmU8VCBleHRlbmRzIG9iamVjdD4ocHJpbWl0aXZlSW5zdGFuY2U6IFQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnByaW1pdGl2ZUNvbmZpZ3MpIHtcbiAgICAgICAgICAgIHRoaXMucHJpbWl0aXZlQ29uZmlncyA9IG5ldyBNYXAoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucHJpbWl0aXZlQ29uZmlncy5oYXMocHJpbWl0aXZlSW5zdGFuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1pdGl2ZUNvbmZpZ3Muc2V0KHByaW1pdGl2ZUluc3RhbmNlLCB7fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXJlZ2lzdGVyUHJpbWl0aXZlPFQgZXh0ZW5kcyBvYmplY3Q+KHByaW1pdGl2ZUluc3RhbmNlOiBUKSB7XG4gICAgICAgIGlmICh0aGlzLnByaW1pdGl2ZUNvbmZpZ3M/LmhhcyhwcmltaXRpdmVJbnN0YW5jZSkpIHtcbiAgICAgICAgICAgIHRoaXMucHJpbWl0aXZlQ29uZmlncy5kZWxldGUocHJpbWl0aXZlSW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJldmVudFByaW1pdGl2ZUZyb21DZGtFdmVudDxUIGV4dGVuZHMgb2JqZWN0PihwcmltaXRpdmVJbnN0YW5jZTogVCwgZXZlbnRUeXBlOiBFdmVudFR5cGUpIHtcbiAgICAgICAgdGhpcy4jc2V0UHJldmVudFByaW1pdGl2ZUZyb21DZGtFdmVudChwcmltaXRpdmVJbnN0YW5jZSwgZXZlbnRUeXBlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBhbGxvd1ByaW1pdGl2ZUZvckNka0V2ZW50PFQgZXh0ZW5kcyBvYmplY3Q+KHByaW1pdGl2ZUluc3RhbmNlOiBULCBldmVudFR5cGU6IEV2ZW50VHlwZSkge1xuICAgICAgICB0aGlzLiNzZXRQcmV2ZW50UHJpbWl0aXZlRnJvbUNka0V2ZW50KHByaW1pdGl2ZUluc3RhbmNlLCBldmVudFR5cGUsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcmV2ZW50UHJpbWl0aXZlRnJvbUNka011bHRpRXZlbnRzPFQgZXh0ZW5kcyBvYmplY3Q+KHByaW1pdGl2ZUluc3RhbmNlOiBULCBldmVudFR5cGVzOiBFdmVudFR5cGVbXSkge1xuICAgICAgICBldmVudFR5cGVzLmZvckVhY2goKGV2ZW50VHlwZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jc2V0UHJldmVudFByaW1pdGl2ZUZyb21DZGtFdmVudChwcmltaXRpdmVJbnN0YW5jZSwgZXZlbnRUeXBlLCB0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWxsb3dQcmltaXRpdmVGb3JDZGtNdWx0aUV2ZW50czxUIGV4dGVuZHMgb2JqZWN0PihwcmltaXRpdmVJbnN0YW5jZTogVCwgZXZlbnRUeXBlczogRXZlbnRUeXBlW10pIHtcbiAgICAgICAgZXZlbnRUeXBlcy5mb3JFYWNoKChldmVudFR5cGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI3NldFByZXZlbnRQcmltaXRpdmVGcm9tQ2RrRXZlbnQocHJpbWl0aXZlSW5zdGFuY2UsIGV2ZW50VHlwZSwgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRQcmV2ZW50UHJpbWl0aXZlRnJvbUNka01peEV2ZW50czxUIGV4dGVuZHMgb2JqZWN0PihwcmltaXRpdmVJbnN0YW5jZTogVCwgZXZlbnRUeXBlczogUHJpbWl0aXZlQ29uZmlnKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGV2ZW50VHlwZXMpLmZvckVhY2goKGV2ZW50VHlwZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jc2V0UHJldmVudFByaW1pdGl2ZUZyb21DZGtFdmVudChcbiAgICAgICAgICAgICAgICBwcmltaXRpdmVJbnN0YW5jZSxcbiAgICAgICAgICAgICAgICBldmVudFR5cGUgYXMgRXZlbnRUeXBlLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZXNbZXZlbnRUeXBlQXNQcmltaXRpdmVDb25maWdLZXkoZXZlbnRUeXBlIGFzIEV2ZW50VHlwZSldXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcmltaXRpdmVQcmV2ZW50ZWRGcm9tQ2RrRXZlbnQ8VCBleHRlbmRzIG9iamVjdD4ocHJpbWl0aXZlSW5zdGFuY2U6IFQsIGV2ZW50VHlwZTogRXZlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByaW1pdGl2ZUNvbmZpZ3M/LmdldChwcmltaXRpdmVJbnN0YW5jZSk/LltldmVudFR5cGVBc1ByaW1pdGl2ZUNvbmZpZ0tleShldmVudFR5cGUpXTtcbiAgICB9XG5cbiAgICBhZGRDbGlja0RvbVJvb3RFdmVudENhbGxiYWNrKGNhbGxiYWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy4jY2xpY2tEb21Sb290RXZlbnRDYWxsYmFja3MuYWRkKGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICByZW1vdmVDbGlja0RvbVJvb3RFdmVudENhbGxiYWNrKGNhbGxiYWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2NsaWNrRG9tUm9vdEV2ZW50Q2FsbGJhY2tzLmRlbGV0ZShjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgI3NldFByZXZlbnRQcmltaXRpdmVGcm9tQ2RrRXZlbnQ8XG4gICAgICAgIFQgZXh0ZW5kcyBvYmplY3QsXG4gICAgICAgIFIgZXh0ZW5kcyBFdmVudFR5cGUsXG4gICAgICAgIEsgZXh0ZW5kcyBQcmltaXRpdmVDb25maWdbRXZlbnRUeXBlQXNQcmltaXRpdmVDb25maWdLZXk8Uj5dXG4gICAgPihwcmltaXRpdmVJbnN0YW5jZTogVCwgZXZlbnRUeXBlOiBSLCB2YWx1ZTogSykge1xuICAgICAgICBpZiAoIXRoaXMucHJpbWl0aXZlQ29uZmlncz8uaGFzKHByaW1pdGl2ZUluc3RhbmNlKSkge1xuICAgICAgICAgICAgaXNEZXZNb2RlKCkgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAnW1JkeENka0V2ZW50U2VydmljZS5wcmV2ZW50UHJpbWl0aXZlRnJvbUNka0V2ZW50XSBSRFggUHJpbWl0aXZlIGluc3RhbmNlIGhhcyBub3QgYmVlbiByZWdpc3RlcmVkIScsXG4gICAgICAgICAgICAgICAgICAgIHByaW1pdGl2ZUluc3RhbmNlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnY2RrT3ZlcmxheU91dHNpZGVDbGljayc6XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltaXRpdmVDb25maWdzLmdldChwcmltaXRpdmVJbnN0YW5jZSkhLnByZXZlbnRDZGtPdmVybGF5T3V0c2lkZUNsaWNrID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjZGtPdmVybGF5RXNjYXBlS2V5RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltaXRpdmVDb25maWdzLmdldChwcmltaXRpdmVJbnN0YW5jZSkhLnByZXZlbnRDZGtPdmVybGF5RXNjYXBlS2V5RG93biA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3JlZ2lzdGVyT25EZXN0cm95Q2FsbGJhY2tzKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25EZXN0cm95Q2FsbGJhY2tzLmZvckVhY2goKG9uRGVzdHJveUNhbGxiYWNrKSA9PiBvbkRlc3Ryb3lDYWxsYmFjaygpKTtcbiAgICAgICAgICAgIHRoaXMub25EZXN0cm95Q2FsbGJhY2tzLmNsZWFyKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICNsaXN0ZW5Ub0NsaWNrRG9tUm9vdEV2ZW50KCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmRvY3VtZW50O1xuICAgICAgICBjb25zdCBldmVudE5hbWUgPSAnY2xpY2snO1xuICAgICAgICBjb25zdCBvcHRpb25zOiBib29sZWFuIHwgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMgfCB1bmRlZmluZWQgPSB7IGNhcHR1cmU6IHRydWUgfTtcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI2NsaWNrRG9tUm9vdEV2ZW50Q2FsbGJhY2tzLmZvckVhY2goKGNsaWNrRG9tUm9vdEV2ZW50Q2FsbGJhY2spID0+IGNsaWNrRG9tUm9vdEV2ZW50Q2FsbGJhY2soZXZlbnQpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBtYWpvciA9IHBhcnNlSW50KFZFUlNJT04ubWFqb3IpO1xuICAgICAgICBjb25zdCBtaW5vciA9IHBhcnNlSW50KFZFUlNJT04ubWlub3IpO1xuXG4gICAgICAgIGxldCBkZXN0cm95Q2xpY2tEb21Sb290RXZlbnRMaXN0ZW5lciE6ICgpID0+IHZvaWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAc2VlIHNyYy9jZGsvcGxhdGZvcm0vZmVhdHVyZXMvYmFja3dhcmRzLWNvbXBhdGliaWxpdHkudHMgaW4gQGFuZ3VsYXIvY2RrXG4gICAgICAgICAqL1xuICAgICAgICBpZiAobWFqb3IgPiAxOSB8fCAobWFqb3IgPT09IDE5ICYmIG1pbm9yID4gMCkgfHwgKG1ham9yID09PSAwICYmIG1pbm9yID09PSAwKSkge1xuICAgICAgICAgICAgZGVzdHJveUNsaWNrRG9tUm9vdEV2ZW50TGlzdGVuZXIgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVzdHJveUNsaWNrRG9tUm9vdEV2ZW50TGlzdGVuZXJJbnRlcm5hbCA9IHRoaXMucmVuZGVyZXIyLmxpc3RlbihcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICBldmVudE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLFxuXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlc3Ryb3lDbGlja0RvbVJvb3RFdmVudExpc3RlbmVySW50ZXJuYWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jY2xpY2tEb21Sb290RXZlbnRDYWxsYmFja3MuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoaXMgcGFydCBjYW4gZ2V0IHJlbW92ZWQgd2hlbiB2MTkuMSBvciBoaWdoZXIgaXMgb24gdGhlIGJvYXJkXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGRlc3Ryb3lDbGlja0RvbVJvb3RFdmVudExpc3RlbmVyID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2ssIG9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jY2xpY2tEb21Sb290RXZlbnRDYWxsYmFja3MuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkRlc3Ryb3lDYWxsYmFja3MuYWRkKGRlc3Ryb3lDbGlja0RvbVJvb3RFdmVudExpc3RlbmVyKTtcbiAgICB9XG59XG5cbmNvbnN0IFJkeENka0V2ZW50U2VydmljZVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeENka0V2ZW50U2VydmljZT4oJ1JkeENka0V2ZW50U2VydmljZVRva2VuJyk7XG5cbmNvbnN0IGV4aXN0c0Vycm9yTWVzc2FnZSA9ICdSZHhDZGtFdmVudFNlcnZpY2Ugc2hvdWxkIGJlIHByb3ZpZGVkIG9ubHkgb25jZSEnO1xuXG5jb25zdCBkZWxldGVSZHhDZGtFdmVudFNlcnZpY2VXaW5kb3dLZXkgPSAod2luZG93OiBXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcykgPT4ge1xuICAgIGRlbGV0ZSAod2luZG93IGFzIGFueSlbUmR4Q2RrRXZlbnRTZXJ2aWNlV2luZG93S2V5XTtcbn07XG5cbmNvbnN0IGdldFByb3ZpZGVyOiAodGhyb3dXaGVuRXhpc3RzPzogYm9vbGVhbikgPT4gUHJvdmlkZXIgPSAodGhyb3dXaGVuRXhpc3RzID0gdHJ1ZSkgPT4gKHtcbiAgICBwcm92aWRlOiBSZHhDZGtFdmVudFNlcnZpY2VUb2tlbixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGlzRGV2TW9kZSgpICYmIGNvbnNvbGUubG9nKCdwcm92aWRpbmcgUmR4Q2RrRXZlbnRTZXJ2aWNlLi4uJyk7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IGluamVjdFdpbmRvdygpO1xuICAgICAgICBpZiAoKHdpbmRvdyBhcyBhbnkpW1JkeENka0V2ZW50U2VydmljZVdpbmRvd0tleV0pIHtcbiAgICAgICAgICAgIGlmICh0aHJvd1doZW5FeGlzdHMpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihleGlzdHNFcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpc0Rldk1vZGUoKSAmJiBjb25zb2xlLndhcm4oZXhpc3RzRXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAod2luZG93IGFzIGFueSlbUmR4Q2RrRXZlbnRTZXJ2aWNlV2luZG93S2V5XSA/Pz0gbmV3IFJkeENka0V2ZW50U2VydmljZSgpO1xuICAgICAgICByZXR1cm4gKHdpbmRvdyBhcyBhbnkpW1JkeENka0V2ZW50U2VydmljZVdpbmRvd0tleV07XG4gICAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlUmR4Q2RrRXZlbnRTZXJ2aWNlSW5Sb290OiAoKSA9PiBFbnZpcm9ubWVudFByb3ZpZGVycyA9ICgpID0+XG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtnZXRQcm92aWRlcigpXSk7XG5leHBvcnQgY29uc3QgcHJvdmlkZVJkeENka0V2ZW50U2VydmljZTogKCkgPT4gUHJvdmlkZXIgPSAoKSA9PiBnZXRQcm92aWRlcihmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBpbmplY3RSZHhDZGtFdmVudFNlcnZpY2UgPSAoKSA9PiBpbmplY3QoUmR4Q2RrRXZlbnRTZXJ2aWNlVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4iXX0=","import { afterNextRender, booleanAttribute, computed, contentChild, DestroyRef, Directive, effect, inject, input, numberAttribute, signal, untracked, ViewContainerRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounce, map, Subject, tap, timer } from 'rxjs';\nimport { RdxTooltipAnchorToken } from './tooltip-anchor.token';\nimport { RdxTooltipArrowToken } from './tooltip-arrow.token';\nimport { RdxTooltipCloseToken } from './tooltip-close.token';\nimport { RdxTooltipContentAttributesToken } from './tooltip-content-attributes.token';\nimport { RdxTooltipContentDirective } from './tooltip-content.directive';\nimport { RdxTooltipTriggerDirective } from './tooltip-trigger.directive';\nimport { RdxTooltipAction, RdxTooltipAnimationStatus, RdxTooltipAttachDetachEvent, RdxTooltipState } from './tooltip.types';\nimport { injectRdxCdkEventService } from './utils/cdk-event.service';\nimport * as i0 from \"@angular/core\";\nlet nextId = 0;\nexport class RdxTooltipRootDirective {\n constructor() {\n /** @ignore */\n this.uniqueId = signal(++nextId, ...(ngDevMode ? [{ debugName: \"uniqueId\" }] : []));\n /** @ignore */\n this.name = computed(() => `rdx-tooltip-root-${this.uniqueId()}`, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n /**\n * @description The anchor directive that comes form outside the tooltip rootDirective\n * @default undefined\n */\n this.anchor = input(void 0, ...(ngDevMode ? [{ debugName: \"anchor\" }] : []));\n /**\n * @description The open state of the tooltip when it is initially rendered. Use when you do not need to control its open state.\n * @default false\n */\n this.defaultOpen = input(false, ...(ngDevMode ? [{ debugName: \"defaultOpen\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * @description The controlled state of the tooltip. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n this.open = input(void 0, ...(ngDevMode ? [{ debugName: \"open\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * To customise the open delay for a specific tooltip.\n */\n this.openDelay = input(500, ...(ngDevMode ? [{ debugName: \"openDelay\", transform: numberAttribute }] : [{\n transform: numberAttribute\n }]));\n /**\n * To customise the close delay for a specific tooltip.\n */\n this.closeDelay = input(200, ...(ngDevMode ? [{ debugName: \"closeDelay\", transform: numberAttribute }] : [{\n transform: numberAttribute\n }]));\n /**\n * @description Whether to control the state of the tooltip from external. Use in conjunction with `open` input.\n * @default undefined\n */\n this.externalControl = input(void 0, ...(ngDevMode ? [{ debugName: \"externalControl\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * @description Whether to take into account CSS opening/closing animations.\n * @default false\n */\n this.cssAnimation = input(false, ...(ngDevMode ? [{ debugName: \"cssAnimation\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * @description Whether to take into account CSS opening animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n this.cssOpeningAnimation = input(false, ...(ngDevMode ? [{ debugName: \"cssOpeningAnimation\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * @description Whether to take into account CSS closing animations. `cssAnimation` input must be set to 'true'\n * @default false\n */\n this.cssClosingAnimation = input(false, ...(ngDevMode ? [{ debugName: \"cssClosingAnimation\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /** @ignore */\n this.cssAnimationStatus = signal(null, ...(ngDevMode ? [{ debugName: \"cssAnimationStatus\" }] : []));\n /** @ignore */\n this.contentDirective = contentChild.required(RdxTooltipContentDirective);\n /** @ignore */\n this.triggerDirective = contentChild.required(RdxTooltipTriggerDirective);\n /** @ignore */\n this.arrowDirective = contentChild(RdxTooltipArrowToken, ...(ngDevMode ? [{ debugName: \"arrowDirective\" }] : []));\n /** @ignore */\n this.closeDirective = contentChild(RdxTooltipCloseToken, ...(ngDevMode ? [{ debugName: \"closeDirective\" }] : []));\n /** @ignore */\n this.contentAttributesComponent = contentChild(RdxTooltipContentAttributesToken, ...(ngDevMode ? [{ debugName: \"contentAttributesComponent\" }] : []));\n /** @ignore */\n this.internalAnchorDirective = contentChild(RdxTooltipAnchorToken, ...(ngDevMode ? [{ debugName: \"internalAnchorDirective\" }] : []));\n /** @ignore */\n this.viewContainerRef = inject(ViewContainerRef);\n /** @ignore */\n this.rdxCdkEventService = injectRdxCdkEventService();\n /** @ignore */\n this.destroyRef = inject(DestroyRef);\n /** @ignore */\n this.state = signal(RdxTooltipState.CLOSED, ...(ngDevMode ? [{ debugName: \"state\" }] : []));\n /** @ignore */\n this.attachDetachEvent = signal(RdxTooltipAttachDetachEvent.DETACH, ...(ngDevMode ? [{ debugName: \"attachDetachEvent\" }] : []));\n /** @ignore */\n this.isFirstDefaultOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isFirstDefaultOpen\" }] : []));\n /** @ignore */\n this.anchorDirective = computed(() => this.internalAnchorDirective() ?? this.anchor(), ...(ngDevMode ? [{ debugName: \"anchorDirective\" }] : []));\n /** @ignore */\n this.actionSubject$ = new Subject();\n /** @ignore */\n this.onAnchorChangeEffect = () => {\n effect(() => {\n const anchor = this.anchor();\n untracked(() => {\n if (anchor) {\n anchor.setRoot(this);\n }\n });\n });\n };\n this.rdxCdkEventService?.registerPrimitive(this);\n this.destroyRef.onDestroy(() => this.rdxCdkEventService?.deregisterPrimitive(this));\n this.actionSubscription();\n this.onStateChangeEffect();\n this.onCssAnimationStatusChangeChangeEffect();\n this.onOpenChangeEffect();\n this.onIsFirstDefaultOpenChangeEffect();\n this.onAnchorChangeEffect();\n this.emitOpenOrClosedEventEffect();\n afterNextRender({\n write: () => {\n if (this.defaultOpen() && !this.open()) {\n this.isFirstDefaultOpen.set(true);\n }\n }\n });\n }\n /** @ignore */\n getAnimationParamsSnapshot() {\n return {\n cssAnimation: this.cssAnimation(),\n cssOpeningAnimation: this.cssOpeningAnimation(),\n cssClosingAnimation: this.cssClosingAnimation(),\n cssAnimationStatus: this.cssAnimationStatus(),\n attachDetachEvent: this.attachDetachEvent(),\n state: this.state(),\n canEmitOnOpenOrOnClosed: this.canEmitOnOpenOrOnClosed()\n };\n }\n /** @ignore */\n controlledExternally() {\n return this.externalControl;\n }\n /** @ignore */\n firstDefaultOpen() {\n return this.isFirstDefaultOpen();\n }\n /** @ignore */\n handleOpen() {\n if (this.externalControl()) {\n return;\n }\n this.actionSubject$.next(RdxTooltipAction.OPEN);\n }\n /** @ignore */\n handleClose(closeButton) {\n if (this.isFirstDefaultOpen()) {\n this.isFirstDefaultOpen.set(false);\n }\n if (!closeButton && this.externalControl()) {\n return;\n }\n this.actionSubject$.next(RdxTooltipAction.CLOSE);\n }\n /** @ignore */\n handleToggle() {\n if (this.externalControl()) {\n return;\n }\n this.isOpen() ? this.handleClose() : this.handleOpen();\n }\n /** @ignore */\n isOpen(state) {\n return (state ?? this.state()) === RdxTooltipState.OPEN;\n }\n /** @ignore */\n setState(state = RdxTooltipState.CLOSED) {\n if (state === this.state()) {\n return;\n }\n this.state.set(state);\n }\n /** @ignore */\n openContent() {\n this.contentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n /** @ignore */\n closeContent() {\n this.contentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n /** @ignore */\n emitOnOpen() {\n this.contentDirective().onOpen.emit();\n }\n /** @ignore */\n emitOnClosed() {\n this.contentDirective().onClosed.emit();\n }\n /** @ignore */\n ifOpenOrCloseWithoutAnimations(state) {\n return (!this.contentAttributesComponent() ||\n !this.cssAnimation() ||\n (this.cssAnimation() && !this.cssClosingAnimation() && state === RdxTooltipState.CLOSED) ||\n (this.cssAnimation() && !this.cssOpeningAnimation() && state === RdxTooltipState.OPEN) ||\n // !this.cssAnimationStatus() ||\n (this.cssOpeningAnimation() &&\n state === RdxTooltipState.OPEN &&\n [RdxTooltipAnimationStatus.OPEN_STARTED].includes(this.cssAnimationStatus())) ||\n (this.cssClosingAnimation() &&\n state === RdxTooltipState.CLOSED &&\n [RdxTooltipAnimationStatus.CLOSED_STARTED].includes(this.cssAnimationStatus())));\n }\n /** @ignore */\n ifOpenOrCloseWithAnimations(cssAnimationStatus) {\n return (this.contentAttributesComponent() &&\n this.cssAnimation() &&\n cssAnimationStatus &&\n ((this.cssOpeningAnimation() &&\n this.state() === RdxTooltipState.OPEN &&\n [RdxTooltipAnimationStatus.OPEN_ENDED].includes(cssAnimationStatus)) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxTooltipState.CLOSED &&\n [RdxTooltipAnimationStatus.CLOSED_ENDED].includes(cssAnimationStatus))));\n }\n /** @ignore */\n openOrClose(state) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n /** @ignore */\n emitOnOpenOrOnClosed(state) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxTooltipAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxTooltipAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n /** @ignore */\n canEmitOnOpenOrOnClosed() {\n return (!this.cssAnimation() ||\n (!this.cssOpeningAnimation() && this.state() === RdxTooltipState.OPEN) ||\n (this.cssOpeningAnimation() &&\n this.state() === RdxTooltipState.OPEN &&\n this.cssAnimationStatus() === RdxTooltipAnimationStatus.OPEN_ENDED) ||\n (!this.cssClosingAnimation() && this.state() === RdxTooltipState.CLOSED) ||\n (this.cssClosingAnimation() &&\n this.state() === RdxTooltipState.CLOSED &&\n this.cssAnimationStatus() === RdxTooltipAnimationStatus.CLOSED_ENDED));\n }\n /** @ignore */\n onStateChangeEffect() {\n let isFirst = true;\n effect(() => {\n const state = this.state();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithoutAnimations(state)) {\n return;\n }\n this.openOrClose(state);\n });\n }, {});\n }\n /** @ignore */\n onCssAnimationStatusChangeChangeEffect() {\n let isFirst = true;\n effect(() => {\n const cssAnimationStatus = this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n if (!this.ifOpenOrCloseWithAnimations(cssAnimationStatus)) {\n return;\n }\n this.openOrClose(this.state());\n });\n });\n }\n /** @ignore */\n emitOpenOrClosedEventEffect() {\n let isFirst = true;\n effect(() => {\n this.attachDetachEvent();\n this.cssAnimationStatus();\n untracked(() => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n const canEmitOpenClose = untracked(() => this.canEmitOnOpenOrOnClosed());\n if (!canEmitOpenClose) {\n return;\n }\n this.emitOnOpenOrOnClosed(this.state());\n });\n });\n }\n /** @ignore */\n onOpenChangeEffect() {\n effect(() => {\n const open = this.open();\n untracked(() => {\n this.setState(open ? RdxTooltipState.OPEN : RdxTooltipState.CLOSED);\n });\n });\n }\n /** @ignore */\n onIsFirstDefaultOpenChangeEffect() {\n const effectRef = effect(() => {\n const defaultOpen = this.defaultOpen();\n untracked(() => {\n if (!defaultOpen || this.open()) {\n effectRef.destroy();\n return;\n }\n this.handleOpen();\n });\n }, ...(ngDevMode ? [{ debugName: \"effectRef\" }] : []));\n }\n /** @ignore */\n actionSubscription() {\n this.actionSubject$\n .asObservable()\n .pipe(map((action) => {\n switch (action) {\n case RdxTooltipAction.OPEN:\n return { action, duration: this.openDelay() };\n case RdxTooltipAction.CLOSE:\n return { action, duration: this.closeDelay() };\n }\n }), debounce((config) => timer(config.duration)), tap((config) => {\n switch (config.action) {\n case RdxTooltipAction.OPEN:\n this.setState(RdxTooltipState.OPEN);\n break;\n case RdxTooltipAction.CLOSE:\n this.setState(RdxTooltipState.CLOSED);\n break;\n }\n }), takeUntilDestroyed())\n .subscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.3\", type: RdxTooltipRootDirective, isStandalone: true, selector: \"[rdxTooltipRoot]\", inputs: { anchor: { classPropertyName: \"anchor\", publicName: \"anchor\", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: \"defaultOpen\", publicName: \"defaultOpen\", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: \"open\", publicName: \"open\", isSignal: true, isRequired: false, transformFunction: null }, openDelay: { classPropertyName: \"openDelay\", publicName: \"openDelay\", isSignal: true, isRequired: false, transformFunction: null }, closeDelay: { classPropertyName: \"closeDelay\", publicName: \"closeDelay\", isSignal: true, isRequired: false, transformFunction: null }, externalControl: { classPropertyName: \"externalControl\", publicName: \"externalControl\", isSignal: true, isRequired: false, transformFunction: null }, cssAnimation: { classPropertyName: \"cssAnimation\", publicName: \"cssAnimation\", isSignal: true, isRequired: false, transformFunction: null }, cssOpeningAnimation: { classPropertyName: \"cssOpeningAnimation\", publicName: \"cssOpeningAnimation\", isSignal: true, isRequired: false, transformFunction: null }, cssClosingAnimation: { classPropertyName: \"cssClosingAnimation\", publicName: \"cssClosingAnimation\", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: \"contentDirective\", first: true, predicate: RdxTooltipContentDirective, descendants: true, isSignal: true }, { propertyName: \"triggerDirective\", first: true, predicate: RdxTooltipTriggerDirective, descendants: true, isSignal: true }, { propertyName: \"arrowDirective\", first: true, predicate: RdxTooltipArrowToken, descendants: true, isSignal: true }, { propertyName: \"closeDirective\", first: true, predicate: RdxTooltipCloseToken, descendants: true, isSignal: true }, { propertyName: \"contentAttributesComponent\", first: true, predicate: RdxTooltipContentAttributesToken, descendants: true, isSignal: true }, { propertyName: \"internalAnchorDirective\", first: true, predicate: RdxTooltipAnchorToken, descendants: true, isSignal: true }], exportAs: [\"rdxTooltipRoot\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipRootDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxTooltipRoot]',\n exportAs: 'rdxTooltipRoot'\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1yb290LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLDJCQUEyQixFQUMzQixlQUFlLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRXJFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQU1m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QUFLLGdCQUFnQixDQUFDLElBQUk7b0JBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNsRCxLQUFLLGdCQUFnQixDQUFDLEtBQUs7b0JBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELENBQUM7UUFDTCxDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDNUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDWCxRQUFRLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJO29CQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEMsTUFBTTtnQkFDVixLQUFLLGdCQUFnQixDQUFDLEtBQUs7b0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN0QyxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLGtCQUFrQixFQUFFLENBQ3ZCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0EzWFEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsazNDQTBEa0IsMEJBQTBCLG1HQUUxQiwwQkFBMEIsaUdBRXJDLG9CQUFvQixpR0FFcEIsb0JBQW9CLDZHQUVSLGdDQUFnQywwR0FFM0IscUJBQXFCOzsyRkFwRXBFLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBhZnRlck5leHRSZW5kZXIsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgc2lnbmFsLFxuICAgIHVudHJhY2tlZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGVib3VuY2UsIG1hcCwgU3ViamVjdCwgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcEFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC1hbmNob3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBBbmNob3JUb2tlbiB9IGZyb20gJy4vdG9vbHRpcC1hbmNob3IudG9rZW4nO1xuaW1wb3J0IHsgUmR4VG9vbHRpcEFycm93VG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtYXJyb3cudG9rZW4nO1xuaW1wb3J0IHsgUmR4VG9vbHRpcENsb3NlVG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtY2xvc2UudG9rZW4nO1xuaW1wb3J0IHsgUmR4VG9vbHRpcENvbnRlbnRBdHRyaWJ1dGVzVG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtY29udGVudC1hdHRyaWJ1dGVzLnRva2VuJztcbmltcG9ydCB7IFJkeFRvb2x0aXBDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgUmR4VG9vbHRpcEFjdGlvbixcbiAgICBSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzLFxuICAgIFJkeFRvb2x0aXBBdHRhY2hEZXRhY2hFdmVudCxcbiAgICBSZHhUb29sdGlwU3RhdGVcbn0gZnJvbSAnLi90b29sdGlwLnR5cGVzJztcbmltcG9ydCB7IGluamVjdFJkeENka0V2ZW50U2VydmljZSB9IGZyb20gJy4vdXRpbHMvY2RrLWV2ZW50LnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9vbHRpcFJvb3RdJyxcbiAgICBleHBvcnRBczogJ3JkeFRvb2x0aXBSb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwUm9vdERpcmVjdGl2ZSB7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSB1bmlxdWVJZCA9IHNpZ25hbCgrK25leHRJZCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBuYW1lID0gY29tcHV0ZWQoKCkgPT4gYHJkeC10b29sdGlwLXJvb3QtJHt0aGlzLnVuaXF1ZUlkKCl9YCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGFuY2hvciBkaXJlY3RpdmUgdGhhdCBjb21lcyBmb3JtIG91dHNpZGUgdGhlIHRvb2x0aXAgcm9vdERpcmVjdGl2ZVxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFuY2hvciA9IGlucHV0PFJkeFRvb2x0aXBBbmNob3JEaXJlY3RpdmUgfCB1bmRlZmluZWQ+KHZvaWQgMCk7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBvcGVuIHN0YXRlIG9mIHRoZSB0b29sdGlwIHdoZW4gaXQgaXMgaW5pdGlhbGx5IHJlbmRlcmVkLiBVc2Ugd2hlbiB5b3UgZG8gbm90IG5lZWQgdG8gY29udHJvbCBpdHMgb3BlbiBzdGF0ZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZmF1bHRPcGVuID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBjb250cm9sbGVkIHN0YXRlIG9mIHRoZSB0b29sdGlwLiBgb3BlbmAgaW5wdXQgdGFrZSBwcmVjZWRlbmNlIG9mIGBkZWZhdWx0T3BlbmAgaW5wdXQuXG4gICAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgb3BlbiA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQsIEJvb2xlYW5JbnB1dD4odm9pZCAwLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgICAvKipcbiAgICAgKiBUbyBjdXN0b21pc2UgdGhlIG9wZW4gZGVsYXkgZm9yIGEgc3BlY2lmaWMgdG9vbHRpcC5cbiAgICAgKi9cbiAgICByZWFkb25seSBvcGVuRGVsYXkgPSBpbnB1dDxudW1iZXIsIE51bWJlcklucHV0Pig1MDAsIHtcbiAgICAgICAgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGVcbiAgICB9KTtcbiAgICAvKipcbiAgICAgKiBUbyBjdXN0b21pc2UgdGhlIGNsb3NlIGRlbGF5IGZvciBhIHNwZWNpZmljIHRvb2x0aXAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2xvc2VEZWxheSA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KDIwMCwge1xuICAgICAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRvIGNvbnRyb2wgdGhlIHN0YXRlIG9mIHRoZSB0b29sdGlwIGZyb20gZXh0ZXJuYWwuIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIGBvcGVuYCBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBleHRlcm5hbENvbnRyb2wgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkLCBCb29sZWFuSW5wdXQ+KHZvaWQgMCwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gdGFrZSBpbnRvIGFjY291bnQgQ1NTIG9wZW5pbmcvY2xvc2luZyBhbmltYXRpb25zLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgY3NzQW5pbWF0aW9uID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gdGFrZSBpbnRvIGFjY291bnQgQ1NTIG9wZW5pbmcgYW5pbWF0aW9ucy4gYGNzc0FuaW1hdGlvbmAgaW5wdXQgbXVzdCBiZSBzZXQgdG8gJ3RydWUnXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBjc3NPcGVuaW5nQW5pbWF0aW9uID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gdGFrZSBpbnRvIGFjY291bnQgQ1NTIGNsb3NpbmcgYW5pbWF0aW9ucy4gYGNzc0FuaW1hdGlvbmAgaW5wdXQgbXVzdCBiZSBzZXQgdG8gJ3RydWUnXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBjc3NDbG9zaW5nQW5pbWF0aW9uID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGNzc0FuaW1hdGlvblN0YXR1cyA9IHNpZ25hbDxSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGNvbnRlbnREaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4VG9vbHRpcENvbnRlbnREaXJlY3RpdmUpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgdHJpZ2dlckRpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChSZHhUb29sdGlwVHJpZ2dlckRpcmVjdGl2ZSk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBhcnJvd0RpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChSZHhUb29sdGlwQXJyb3dUb2tlbik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBjbG9zZURpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChSZHhUb29sdGlwQ2xvc2VUb2tlbik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBjb250ZW50QXR0cmlidXRlc0NvbXBvbmVudCA9IGNvbnRlbnRDaGlsZChSZHhUb29sdGlwQ29udGVudEF0dHJpYnV0ZXNUb2tlbik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGludGVybmFsQW5jaG9yRGlyZWN0aXZlID0gY29udGVudENoaWxkKFJkeFRvb2x0aXBBbmNob3JUb2tlbik7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSByZHhDZGtFdmVudFNlcnZpY2UgPSBpbmplY3RSZHhDZGtFdmVudFNlcnZpY2UoKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsKFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQpO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBhdHRhY2hEZXRhY2hFdmVudCA9IHNpZ25hbChSZHhUb29sdGlwQXR0YWNoRGV0YWNoRXZlbnQuREVUQUNIKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0ZpcnN0RGVmYXVsdE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBhbmNob3JEaXJlY3RpdmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmludGVybmFsQW5jaG9yRGlyZWN0aXZlKCkgPz8gdGhpcy5hbmNob3IoKSk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGFjdGlvblN1YmplY3QkID0gbmV3IFN1YmplY3Q8UmR4VG9vbHRpcEFjdGlvbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJkeENka0V2ZW50U2VydmljZT8ucmVnaXN0ZXJQcmltaXRpdmUodGhpcyk7XG4gICAgICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5yZHhDZGtFdmVudFNlcnZpY2U/LmRlcmVnaXN0ZXJQcmltaXRpdmUodGhpcykpO1xuICAgICAgICB0aGlzLmFjdGlvblN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLm9uU3RhdGVDaGFuZ2VFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5vbkNzc0FuaW1hdGlvblN0YXR1c0NoYW5nZUNoYW5nZUVmZmVjdCgpO1xuICAgICAgICB0aGlzLm9uT3BlbkNoYW5nZUVmZmVjdCgpO1xuICAgICAgICB0aGlzLm9uSXNGaXJzdERlZmF1bHRPcGVuQ2hhbmdlRWZmZWN0KCk7XG4gICAgICAgIHRoaXMub25BbmNob3JDaGFuZ2VFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5lbWl0T3Blbk9yQ2xvc2VkRXZlbnRFZmZlY3QoKTtcbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKHtcbiAgICAgICAgICAgIHdyaXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdE9wZW4oKSAmJiAhdGhpcy5vcGVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpcnN0RGVmYXVsdE9wZW4uc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBnZXRBbmltYXRpb25QYXJhbXNTbmFwc2hvdCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNzc0FuaW1hdGlvbjogdGhpcy5jc3NBbmltYXRpb24oKSxcbiAgICAgICAgICAgIGNzc09wZW5pbmdBbmltYXRpb246IHRoaXMuY3NzT3BlbmluZ0FuaW1hdGlvbigpLFxuICAgICAgICAgICAgY3NzQ2xvc2luZ0FuaW1hdGlvbjogdGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCksXG4gICAgICAgICAgICBjc3NBbmltYXRpb25TdGF0dXM6IHRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzKCksXG4gICAgICAgICAgICBhdHRhY2hEZXRhY2hFdmVudDogdGhpcy5hdHRhY2hEZXRhY2hFdmVudCgpLFxuICAgICAgICAgICAgc3RhdGU6IHRoaXMuc3RhdGUoKSxcbiAgICAgICAgICAgIGNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkOiB0aGlzLmNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNvbnRyb2xsZWRFeHRlcm5hbGx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leHRlcm5hbENvbnRyb2w7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBmaXJzdERlZmF1bHRPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZpcnN0RGVmYXVsdE9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGhhbmRsZU9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVybmFsQ29udHJvbCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25TdWJqZWN0JC5uZXh0KFJkeFRvb2x0aXBBY3Rpb24uT1BFTik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBoYW5kbGVDbG9zZShjbG9zZUJ1dHRvbj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdERlZmF1bHRPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGaXJzdERlZmF1bHRPcGVuLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjbG9zZUJ1dHRvbiAmJiB0aGlzLmV4dGVybmFsQ29udHJvbCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25TdWJqZWN0JC5uZXh0KFJkeFRvb2x0aXBBY3Rpb24uQ0xPU0UpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgaGFuZGxlVG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5leHRlcm5hbENvbnRyb2woKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNPcGVuKCkgPyB0aGlzLmhhbmRsZUNsb3NlKCkgOiB0aGlzLmhhbmRsZU9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGlzT3BlbihzdGF0ZT86IFJkeFRvb2x0aXBTdGF0ZSkge1xuICAgICAgICByZXR1cm4gKHN0YXRlID8/IHRoaXMuc3RhdGUoKSkgPT09IFJkeFRvb2x0aXBTdGF0ZS5PUEVOO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBzZXRTdGF0ZShzdGF0ZSA9IFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHN0YXRlID09PSB0aGlzLnN0YXRlKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXRlLnNldChzdGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9wZW5Db250ZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRlbnREaXJlY3RpdmUoKS5vcGVuKCk7XG4gICAgICAgIGlmICghdGhpcy5jc3NBbmltYXRpb24oKSB8fCAhdGhpcy5jc3NPcGVuaW5nQW5pbWF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzLnNldChudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBjbG9zZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudERpcmVjdGl2ZSgpLmNsb3NlKCk7XG4gICAgICAgIGlmICghdGhpcy5jc3NBbmltYXRpb24oKSB8fCAhdGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzLnNldChudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBlbWl0T25PcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRlbnREaXJlY3RpdmUoKS5vbk9wZW4uZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBlbWl0T25DbG9zZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGVudERpcmVjdGl2ZSgpLm9uQ2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgaWZPcGVuT3JDbG9zZVdpdGhvdXRBbmltYXRpb25zKHN0YXRlOiBSZHhUb29sdGlwU3RhdGUpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLmNvbnRlbnRBdHRyaWJ1dGVzQ29tcG9uZW50KCkgfHxcbiAgICAgICAgICAgICF0aGlzLmNzc0FuaW1hdGlvbigpIHx8XG4gICAgICAgICAgICAodGhpcy5jc3NBbmltYXRpb24oKSAmJiAhdGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCkgJiYgc3RhdGUgPT09IFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQpIHx8XG4gICAgICAgICAgICAodGhpcy5jc3NBbmltYXRpb24oKSAmJiAhdGhpcy5jc3NPcGVuaW5nQW5pbWF0aW9uKCkgJiYgc3RhdGUgPT09IFJkeFRvb2x0aXBTdGF0ZS5PUEVOKSB8fFxuICAgICAgICAgICAgLy8gIXRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzKCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc09wZW5pbmdBbmltYXRpb24oKSAmJlxuICAgICAgICAgICAgICAgIHN0YXRlID09PSBSZHhUb29sdGlwU3RhdGUuT1BFTiAmJlxuICAgICAgICAgICAgICAgIFtSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzLk9QRU5fU1RBUlRFRF0uaW5jbHVkZXModGhpcy5jc3NBbmltYXRpb25TdGF0dXMoKSEpKSB8fFxuICAgICAgICAgICAgKHRoaXMuY3NzQ2xvc2luZ0FuaW1hdGlvbigpICYmXG4gICAgICAgICAgICAgICAgc3RhdGUgPT09IFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQgJiZcbiAgICAgICAgICAgICAgICBbUmR4VG9vbHRpcEFuaW1hdGlvblN0YXR1cy5DTE9TRURfU1RBUlRFRF0uaW5jbHVkZXModGhpcy5jc3NBbmltYXRpb25TdGF0dXMoKSEpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBpZk9wZW5PckNsb3NlV2l0aEFuaW1hdGlvbnMoY3NzQW5pbWF0aW9uU3RhdHVzOiBSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzIHwgbnVsbCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50QXR0cmlidXRlc0NvbXBvbmVudCgpICYmXG4gICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvbigpICYmXG4gICAgICAgICAgICBjc3NBbmltYXRpb25TdGF0dXMgJiZcbiAgICAgICAgICAgICgodGhpcy5jc3NPcGVuaW5nQW5pbWF0aW9uKCkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlKCkgPT09IFJkeFRvb2x0aXBTdGF0ZS5PUEVOICYmXG4gICAgICAgICAgICAgICAgW1JkeFRvb2x0aXBBbmltYXRpb25TdGF0dXMuT1BFTl9FTkRFRF0uaW5jbHVkZXMoY3NzQW5pbWF0aW9uU3RhdHVzKSkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5jc3NDbG9zaW5nQW5pbWF0aW9uKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSgpID09PSBSZHhUb29sdGlwU3RhdGUuQ0xPU0VEICYmXG4gICAgICAgICAgICAgICAgICAgIFtSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzLkNMT1NFRF9FTkRFRF0uaW5jbHVkZXMoY3NzQW5pbWF0aW9uU3RhdHVzKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9wZW5PckNsb3NlKHN0YXRlOiBSZHhUb29sdGlwU3RhdGUpIHtcbiAgICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5pc09wZW4oc3RhdGUpO1xuICAgICAgICBpc09wZW4gPyB0aGlzLm9wZW5Db250ZW50KCkgOiB0aGlzLmNsb3NlQ29udGVudCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBlbWl0T25PcGVuT3JPbkNsb3NlZChzdGF0ZTogUmR4VG9vbHRpcFN0YXRlKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuKHN0YXRlKVxuICAgICAgICAgICAgPyB0aGlzLmF0dGFjaERldGFjaEV2ZW50KCkgPT09IFJkeFRvb2x0aXBBdHRhY2hEZXRhY2hFdmVudC5BVFRBQ0ggJiYgdGhpcy5lbWl0T25PcGVuKClcbiAgICAgICAgICAgIDogdGhpcy5hdHRhY2hEZXRhY2hFdmVudCgpID09PSBSZHhUb29sdGlwQXR0YWNoRGV0YWNoRXZlbnQuREVUQUNIICYmIHRoaXMuZW1pdE9uQ2xvc2VkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuY3NzQW5pbWF0aW9uKCkgfHxcbiAgICAgICAgICAgICghdGhpcy5jc3NPcGVuaW5nQW5pbWF0aW9uKCkgJiYgdGhpcy5zdGF0ZSgpID09PSBSZHhUb29sdGlwU3RhdGUuT1BFTikgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc09wZW5pbmdBbmltYXRpb24oKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUoKSA9PT0gUmR4VG9vbHRpcFN0YXRlLk9QRU4gJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvblN0YXR1cygpID09PSBSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzLk9QRU5fRU5ERUQpIHx8XG4gICAgICAgICAgICAoIXRoaXMuY3NzQ2xvc2luZ0FuaW1hdGlvbigpICYmIHRoaXMuc3RhdGUoKSA9PT0gUmR4VG9vbHRpcFN0YXRlLkNMT1NFRCkgfHxcbiAgICAgICAgICAgICh0aGlzLmNzc0Nsb3NpbmdBbmltYXRpb24oKSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUoKSA9PT0gUmR4VG9vbHRpcFN0YXRlLkNMT1NFRCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY3NzQW5pbWF0aW9uU3RhdHVzKCkgPT09IFJkeFRvb2x0aXBBbmltYXRpb25TdGF0dXMuQ0xPU0VEX0VOREVEKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvblN0YXRlQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pZk9wZW5PckNsb3NlV2l0aG91dEFuaW1hdGlvbnMoc3RhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuT3JDbG9zZShzdGF0ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvbkNzc0FuaW1hdGlvblN0YXR1c0NoYW5nZUNoYW5nZUVmZmVjdCgpIHtcbiAgICAgICAgbGV0IGlzRmlyc3QgPSB0cnVlO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3NzQW5pbWF0aW9uU3RhdHVzID0gdGhpcy5jc3NBbmltYXRpb25TdGF0dXMoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pZk9wZW5PckNsb3NlV2l0aEFuaW1hdGlvbnMoY3NzQW5pbWF0aW9uU3RhdHVzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk9yQ2xvc2UodGhpcy5zdGF0ZSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgZW1pdE9wZW5PckNsb3NlZEV2ZW50RWZmZWN0KCkge1xuICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaERldGFjaEV2ZW50KCk7XG4gICAgICAgICAgICB0aGlzLmNzc0FuaW1hdGlvblN0YXR1cygpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNGaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgY2FuRW1pdE9wZW5DbG9zZSA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLmNhbkVtaXRPbk9wZW5Pck9uQ2xvc2VkKCkpO1xuICAgICAgICAgICAgICAgIGlmICghY2FuRW1pdE9wZW5DbG9zZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZW1pdE9uT3Blbk9yT25DbG9zZWQodGhpcy5zdGF0ZSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25PcGVuQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3BlbiA9IHRoaXMub3BlbigpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKG9wZW4gPyBSZHhUb29sdGlwU3RhdGUuT1BFTiA6IFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvbklzRmlyc3REZWZhdWx0T3BlbkNoYW5nZUVmZmVjdCgpIHtcbiAgICAgICAgY29uc3QgZWZmZWN0UmVmID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRPcGVuID0gdGhpcy5kZWZhdWx0T3BlbigpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRlZmF1bHRPcGVuIHx8IHRoaXMub3BlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVmZmVjdFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVPcGVuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQW5jaG9yQ2hhbmdlRWZmZWN0ID0gKCkgPT4ge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5hbmNob3IoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFuY2hvcikge1xuICAgICAgICAgICAgICAgICAgICBhbmNob3Iuc2V0Um9vdCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBhY3Rpb25TdWJzY3JpcHRpb24oKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uU3ViamVjdCRcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmR4VG9vbHRpcEFjdGlvbi5PUEVOOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGFjdGlvbiwgZHVyYXRpb246IHRoaXMub3BlbkRlbGF5KCkgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmR4VG9vbHRpcEFjdGlvbi5DTE9TRTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBhY3Rpb24sIGR1cmF0aW9uOiB0aGlzLmNsb3NlRGVsYXkoKSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZGVib3VuY2UoKGNvbmZpZykgPT4gdGltZXIoY29uZmlnLmR1cmF0aW9uKSksXG4gICAgICAgICAgICAgICAgdGFwKChjb25maWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWcuYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJkeFRvb2x0aXBBY3Rpb24uT1BFTjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKFJkeFRvb2x0aXBTdGF0ZS5PUEVOKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUmR4VG9vbHRpcEFjdGlvbi5DTE9TRTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxTooltipRootDirective } from './tooltip-root.directive';\nexport function injectTooltipRoot(optional = false) {\n isDevMode() && assertInInjectionContext(injectTooltipRoot);\n return inject(RdxTooltipRootDirective, { optional });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1yb290LmluamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC1yb290LmluamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUluRSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEtBQUs7SUFDOUMsU0FBUyxFQUFFLElBQUksd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBSb290RGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwLXJvb3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFRvb2x0aXBSb290KG9wdGlvbmFsPzogZmFsc2UpOiBSZHhUb29sdGlwUm9vdERpcmVjdGl2ZTtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RUb29sdGlwUm9vdChvcHRpb25hbDogdHJ1ZSk6IFJkeFRvb2x0aXBSb290RGlyZWN0aXZlIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RUb29sdGlwUm9vdChvcHRpb25hbCA9IGZhbHNlKTogUmR4VG9vbHRpcFJvb3REaXJlY3RpdmUgfCBudWxsIHtcbiAgICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoaW5qZWN0VG9vbHRpcFJvb3QpO1xuICAgIHJldHVybiBpbmplY3QoUmR4VG9vbHRpcFJvb3REaXJlY3RpdmUsIHsgb3B0aW9uYWwgfSk7XG59XG4iXX0=","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, forwardRef, inject } from '@angular/core';\nimport { injectDocument } from '@radix-ng/primitives/core';\nimport { RdxTooltipAnchorToken } from './tooltip-anchor.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/overlay\";\nexport class RdxTooltipAnchorDirective {\n constructor() {\n /**\n * @ignore\n * If outside the rootDirective then null, otherwise the rootDirective directive - with optional `true` passed in as the first param.\n * If outside the rootDirective and non-null value that means the html structure is wrong - tooltip inside tooltip.\n * */\n this.rootDirective = injectTooltipRoot(true);\n /** @ignore */\n this.elementRef = inject(ElementRef);\n /** @ignore */\n this.overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n this.document = injectDocument();\n /** @ignore */\n this.name = computed(() => `rdx-tooltip-external-anchor-${this.rootDirective?.uniqueId()}`, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n }\n /** @ignore */\n click() {\n this.emitOutsideClick();\n }\n /** @ignore */\n setRoot(root) {\n this.rootDirective = root;\n }\n emitOutsideClick() {\n if (!this.rootDirective?.isOpen() || this.rootDirective?.contentDirective().onOverlayOutsideClickDisabled()) {\n return;\n }\n const clickEvent = new MouseEvent('click', {\n view: this.document.defaultView,\n bubbles: true,\n cancelable: true,\n relatedTarget: this.elementRef.nativeElement\n });\n this.rootDirective?.triggerDirective().elementRef.nativeElement.dispatchEvent(clickEvent);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipAnchorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxTooltipAnchorDirective, isStandalone: true, selector: \"[rdxTooltipAnchor]\", host: { attributes: { \"type\": \"button\" }, listeners: { \"click\": \"click()\" }, properties: { \"attr.id\": \"name()\", \"attr.aria-haspopup\": \"\\\"dialog\\\"\" } }, providers: [\n {\n provide: RdxTooltipAnchorToken,\n useExisting: forwardRef(() => RdxTooltipAnchorDirective)\n }\n ], exportAs: [\"rdxTooltipAnchor\"], hostDirectives: [{ directive: i1.CdkOverlayOrigin }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipAnchorDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxTooltipAnchor]',\n exportAs: 'rdxTooltipAnchor',\n hostDirectives: [CdkOverlayOrigin],\n host: {\n type: 'button',\n '[attr.id]': 'name()',\n '[attr.aria-haspopup]': '\"dialog\"',\n '(click)': 'click()'\n },\n providers: [\n {\n provide: RdxTooltipAnchorToken,\n useExisting: forwardRef(() => RdxTooltipAnchorDirective)\n }\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hbmNob3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b29sdGlwL3NyYy90b29sdGlwLWFuY2hvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFtQjFELE1BQU0sT0FBTyx5QkFBeUI7SUFqQnRDO1FBa0JJOzs7O2FBSUs7UUFDSyxrQkFBYSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELGNBQWM7UUFDTCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLGNBQWM7UUFDTCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELGNBQWM7UUFDTCxhQUFRLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFckMsY0FBYztRQUNMLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEVBQUUsZ0RBQUMsQ0FBQztLQXdCbkc7SUF0QkcsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNkLE9BQU8sQ0FBQyxJQUE2QjtRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLENBQUM7WUFDMUcsT0FBTztRQUNYLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUMvQixPQUFPLEVBQUUsSUFBSTtZQUNiLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7OEdBdENRLHlCQUF5QjtrR0FBekIseUJBQXlCLHlOQVB2QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7YUFDM0Q7U0FDSjs7MkZBRVEseUJBQXlCO2tCQWpCckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDbEMsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLFdBQVcsRUFBRSxRQUFRO3dCQUNyQixzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxTQUFTLEVBQUUsU0FBUztxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDO3lCQUMzRDtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBjb21wdXRlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdERvY3VtZW50IH0gZnJvbSAnQHJhZGl4LW5nL3ByaW1pdGl2ZXMvY29yZSc7XG5pbXBvcnQgeyBSZHhUb29sdGlwQW5jaG9yVG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtYW5jaG9yLnRva2VuJztcbmltcG9ydCB7IFJkeFRvb2x0aXBSb290RGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwLXJvb3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IGluamVjdFRvb2x0aXBSb290IH0gZnJvbSAnLi90b29sdGlwLXJvb3QuaW5qZWN0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9vbHRpcEFuY2hvcl0nLFxuICAgIGV4cG9ydEFzOiAncmR4VG9vbHRpcEFuY2hvcicsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtPdmVybGF5T3JpZ2luXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ25hbWUoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLWhhc3BvcHVwXSc6ICdcImRpYWxvZ1wiJyxcbiAgICAgICAgJyhjbGljayknOiAnY2xpY2soKSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBSZHhUb29sdGlwQW5jaG9yVG9rZW4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZHhUb29sdGlwQW5jaG9yRGlyZWN0aXZlKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwQW5jaG9yRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICogSWYgb3V0c2lkZSB0aGUgcm9vdERpcmVjdGl2ZSB0aGVuIG51bGwsIG90aGVyd2lzZSB0aGUgcm9vdERpcmVjdGl2ZSBkaXJlY3RpdmUgLSB3aXRoIG9wdGlvbmFsIGB0cnVlYCBwYXNzZWQgaW4gYXMgdGhlIGZpcnN0IHBhcmFtLlxuICAgICAqIElmIG91dHNpZGUgdGhlIHJvb3REaXJlY3RpdmUgYW5kIG5vbi1udWxsIHZhbHVlIHRoYXQgbWVhbnMgdGhlIGh0bWwgc3RydWN0dXJlIGlzIHdyb25nIC0gdG9vbHRpcCBpbnNpZGUgdG9vbHRpcC5cbiAgICAgKiAqL1xuICAgIHByb3RlY3RlZCByb290RGlyZWN0aXZlID0gaW5qZWN0VG9vbHRpcFJvb3QodHJ1ZSk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgb3ZlcmxheU9yaWdpbiA9IGluamVjdChDZGtPdmVybGF5T3JpZ2luKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0RG9jdW1lbnQoKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IGNvbXB1dGVkKCgpID0+IGByZHgtdG9vbHRpcC1leHRlcm5hbC1hbmNob3ItJHt0aGlzLnJvb3REaXJlY3RpdmU/LnVuaXF1ZUlkKCl9YCk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtaXRPdXRzaWRlQ2xpY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHNldFJvb3Qocm9vdDogUmR4VG9vbHRpcFJvb3REaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlID0gcm9vdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRPdXRzaWRlQ2xpY2soKSB7XG4gICAgICAgIGlmICghdGhpcy5yb290RGlyZWN0aXZlPy5pc09wZW4oKSB8fCB0aGlzLnJvb3REaXJlY3RpdmU/LmNvbnRlbnREaXJlY3RpdmUoKS5vbk92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xpY2tFdmVudCA9IG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgICAgIHZpZXc6IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcsXG4gICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmU/LnRyaWdnZXJEaXJlY3RpdmUoKS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChjbGlja0V2ZW50KTtcbiAgICB9XG59XG4iXX0=","import { afterNextRender, computed, Directive, effect, ElementRef, forwardRef, inject, input, numberAttribute, Renderer2, signal, untracked } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions, RDX_POSITIONING_DEFAULTS } from '@radix-ng/primitives/core';\nimport { RdxTooltipArrowToken } from './tooltip-arrow.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport * as i0 from \"@angular/core\";\nexport class RdxTooltipArrowDirective {\n constructor() {\n /** @ignore */\n this.renderer = inject(Renderer2);\n /** @ignore */\n this.rootDirective = injectTooltipRoot();\n /** @ignore */\n this.elementRef = inject(ElementRef);\n /**\n * @description The width of the arrow in pixels.\n * @default 10\n */\n this.width = input(RDX_POSITIONING_DEFAULTS.arrow.width, ...(ngDevMode ? [{ debugName: \"width\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /**\n * @description The height of the arrow in pixels.\n * @default 5\n */\n this.height = input(RDX_POSITIONING_DEFAULTS.arrow.height, ...(ngDevMode ? [{ debugName: \"height\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /** @ignore */\n this.arrowSvgElement = computed(() => {\n const width = this.width();\n const height = this.height();\n const svgElement = this.renderer.createElement('svg', 'svg');\n this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');\n this.renderer.setAttribute(svgElement, 'width', String(width));\n this.renderer.setAttribute(svgElement, 'height', String(height));\n const polygonElement = this.renderer.createElement('polygon', 'svg');\n this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');\n this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');\n this.renderer.appendChild(svgElement, polygonElement);\n return svgElement;\n }, ...(ngDevMode ? [{ debugName: \"arrowSvgElement\" }] : []));\n /** @ignore */\n this.currentArrowSvgElement = signal(void 0, ...(ngDevMode ? [{ debugName: \"currentArrowSvgElement\" }] : []));\n /** @ignore */\n this.position = toSignal(this.rootDirective.contentDirective().positionChange());\n afterNextRender({\n write: () => {\n if (this.elementRef.nativeElement.parentElement) {\n this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');\n }\n this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'absolute');\n this.renderer.setStyle(this.elementRef.nativeElement, 'boxSizing', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'fontSize', '0px');\n }\n });\n this.onArrowSvgElementChangeEffect();\n this.onContentPositionAndArrowDimensionsChangeEffect();\n }\n /** @ignore */\n setAnchorOrTriggerRect() {\n this.anchorOrTriggerRect = (this.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective()).elementRef.nativeElement.getBoundingClientRect();\n }\n /** @ignore */\n setPosition(position, arrowDimensions) {\n this.setAnchorOrTriggerRect();\n const posParams = getArrowPositionParams(getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair), { width: arrowDimensions.width, height: arrowDimensions.height }, { width: this.anchorOrTriggerRect.width, height: this.anchorOrTriggerRect.height });\n this.renderer.setStyle(this.elementRef.nativeElement, 'top', posParams.top);\n this.renderer.setStyle(this.elementRef.nativeElement, 'bottom', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);\n this.renderer.setStyle(this.elementRef.nativeElement, 'right', '');\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);\n this.renderer.setStyle(this.elementRef.nativeElement, 'transformOrigin', posParams.transformOrigin);\n }\n /** @ignore */\n onArrowSvgElementChangeEffect() {\n effect(() => {\n const arrowElement = this.arrowSvgElement();\n untracked(() => {\n const currentArrowSvgElement = this.currentArrowSvgElement();\n if (currentArrowSvgElement) {\n this.renderer.removeChild(this.elementRef.nativeElement, currentArrowSvgElement);\n }\n this.currentArrowSvgElement.set(arrowElement);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.width()}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${this.height()}px`);\n this.renderer.appendChild(this.elementRef.nativeElement, this.currentArrowSvgElement());\n });\n });\n }\n /** @ignore */\n onContentPositionAndArrowDimensionsChangeEffect() {\n effect(() => {\n const position = this.position();\n const arrowDimensions = { width: this.width(), height: this.height() };\n untracked(() => {\n if (!position) {\n return;\n }\n this.setPosition(position, arrowDimensions);\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipArrowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxTooltipArrowDirective, isStandalone: true, selector: \"[rdxTooltipArrow]\", inputs: { width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: RdxTooltipArrowToken,\n useExisting: forwardRef(() => RdxTooltipArrowDirective)\n }\n ], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipArrowDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxTooltipArrow]',\n providers: [\n {\n provide: RdxTooltipArrowToken,\n useExisting: forwardRef(() => RdxTooltipArrowDirective)\n }\n ]\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hcnJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAtYXJyb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDSCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUNILHNCQUFzQixFQUN0QixnREFBZ0QsRUFDaEQsd0JBQXdCLEVBQzNCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBVzFELE1BQU0sT0FBTyx3QkFBd0I7SUE2Q2pDO1FBNUNBLGNBQWM7UUFDRyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLGNBQWM7UUFDRyxrQkFBYSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDckQsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekM7OztXQUdHO1FBQ00sVUFBSyxHQUFHLEtBQUssQ0FBc0Isd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUsseUNBQUksU0FBUyxFQUFFLGVBQWUsT0FBNUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEdBQUMsQ0FBQztRQUVsSDs7O1dBR0c7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFzQix3QkFBd0IsQ0FBQyxLQUFLLENBQUMsTUFB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LEVBQUUsQ0FBQztZQUN2RSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDWixPQUFPO2dCQUNYLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBakhRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLCtUQVB0QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7YUFDMUQ7U0FDSjs7MkZBRVEsd0JBQXdCO2tCQVRwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzt5QkFDMUQ7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIFJlbmRlcmVyMixcbiAgICBzaWduYWwsXG4gICAgdW50cmFja2VkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIGdldEFycm93UG9zaXRpb25QYXJhbXMsXG4gICAgZ2V0U2lkZUFuZEFsaWduRnJvbUFsbFBvc3NpYmxlQ29ubmVjdGVkUG9zaXRpb25zLFxuICAgIFJEWF9QT1NJVElPTklOR19ERUZBVUxUU1xufSBmcm9tICdAcmFkaXgtbmcvcHJpbWl0aXZlcy9jb3JlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBBcnJvd1Rva2VuIH0gZnJvbSAnLi90b29sdGlwLWFycm93LnRva2VuJztcbmltcG9ydCB7IGluamVjdFRvb2x0aXBSb290IH0gZnJvbSAnLi90b29sdGlwLXJvb3QuaW5qZWN0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9vbHRpcEFycm93XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFJkeFRvb2x0aXBBcnJvd1Rva2VuLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmR4VG9vbHRpcEFycm93RGlyZWN0aXZlKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwQXJyb3dEaXJlY3RpdmUge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb290RGlyZWN0aXZlID0gaW5qZWN0VG9vbHRpcFJvb3QoKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHdpZHRoIG9mIHRoZSBhcnJvdyBpbiBwaXhlbHMuXG4gICAgICogQGRlZmF1bHQgMTBcbiAgICAgKi9cbiAgICByZWFkb25seSB3aWR0aCA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KFJEWF9QT1NJVElPTklOR19ERUZBVUxUUy5hcnJvdy53aWR0aCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgaGVpZ2h0IG9mIHRoZSBhcnJvdyBpbiBwaXhlbHMuXG4gICAgICogQGRlZmF1bHQgNVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhlaWdodCA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+KFJEWF9QT1NJVElPTklOR19ERUZBVUxUUy5hcnJvdy5oZWlnaHQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGFycm93U3ZnRWxlbWVudCA9IGNvbXB1dGVkPEhUTUxFbGVtZW50PigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmhlaWdodCgpO1xuXG4gICAgICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N2ZycsICdzdmcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlbWVudCwgJ3ZpZXdCb3gnLCAnMCAwIDMwIDEwJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZW1lbnQsICd3aWR0aCcsIFN0cmluZyh3aWR0aCkpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnaGVpZ2h0JywgU3RyaW5nKGhlaWdodCkpO1xuICAgICAgICBjb25zdCBwb2x5Z29uRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgncG9seWdvbicsICdzdmcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUocG9seWdvbkVsZW1lbnQsICdwb2ludHMnLCAnMCwwIDMwLDAgMTUsMTAnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlbWVudCwgJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLCAnbm9uZScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHN2Z0VsZW1lbnQsIHBvbHlnb25FbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gc3ZnRWxlbWVudDtcbiAgICB9KTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50QXJyb3dTdmdFbGVtZW50ID0gc2lnbmFsPEhUTUxPclNWR0VsZW1lbnQgfCB1bmRlZmluZWQ+KHZvaWQgMCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvc2l0aW9uID0gdG9TaWduYWwodGhpcy5yb290RGlyZWN0aXZlLmNvbnRlbnREaXJlY3RpdmUoKS5wb3NpdGlvbkNoYW5nZSgpKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBhbmNob3JPclRyaWdnZXJSZWN0OiBET01SZWN0O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcih7XG4gICAgICAgICAgICB3cml0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdib3hTaXppbmcnLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvbnRTaXplJywgJzBweCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkFycm93U3ZnRWxlbWVudENoYW5nZUVmZmVjdCgpO1xuICAgICAgICB0aGlzLm9uQ29udGVudFBvc2l0aW9uQW5kQXJyb3dEaW1lbnNpb25zQ2hhbmdlRWZmZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHNldEFuY2hvck9yVHJpZ2dlclJlY3QoKSB7XG4gICAgICAgIHRoaXMuYW5jaG9yT3JUcmlnZ2VyUmVjdCA9IChcbiAgICAgICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5hbmNob3JEaXJlY3RpdmUoKSA/PyB0aGlzLnJvb3REaXJlY3RpdmUudHJpZ2dlckRpcmVjdGl2ZSgpXG4gICAgICAgICkuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBzZXRQb3NpdGlvbihwb3NpdGlvbjogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBhcnJvd0RpbWVuc2lvbnM6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSkge1xuICAgICAgICB0aGlzLnNldEFuY2hvck9yVHJpZ2dlclJlY3QoKTtcbiAgICAgICAgY29uc3QgcG9zUGFyYW1zID0gZ2V0QXJyb3dQb3NpdGlvblBhcmFtcyhcbiAgICAgICAgICAgIGdldFNpZGVBbmRBbGlnbkZyb21BbGxQb3NzaWJsZUNvbm5lY3RlZFBvc2l0aW9ucyhwb3NpdGlvbi5jb25uZWN0aW9uUGFpciksXG4gICAgICAgICAgICB7IHdpZHRoOiBhcnJvd0RpbWVuc2lvbnMud2lkdGgsIGhlaWdodDogYXJyb3dEaW1lbnNpb25zLmhlaWdodCB9LFxuICAgICAgICAgICAgeyB3aWR0aDogdGhpcy5hbmNob3JPclRyaWdnZXJSZWN0LndpZHRoLCBoZWlnaHQ6IHRoaXMuYW5jaG9yT3JUcmlnZ2VyUmVjdC5oZWlnaHQgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBwb3NQYXJhbXMudG9wKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBwb3NQYXJhbXMubGVmdCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIHBvc1BhcmFtcy50cmFuc2Zvcm0pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtT3JpZ2luJywgcG9zUGFyYW1zLnRyYW5zZm9ybU9yaWdpbik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQXJyb3dTdmdFbGVtZW50Q2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXJyb3dFbGVtZW50ID0gdGhpcy5hcnJvd1N2Z0VsZW1lbnQoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEFycm93U3ZnRWxlbWVudCA9IHRoaXMuY3VycmVudEFycm93U3ZnRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50QXJyb3dTdmdFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGN1cnJlbnRBcnJvd1N2Z0VsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBcnJvd1N2Z0VsZW1lbnQuc2V0KGFycm93RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7dGhpcy53aWR0aCgpfXB4YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke3RoaXMuaGVpZ2h0KCl9cHhgKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJlbnRBcnJvd1N2Z0VsZW1lbnQoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQ29udGVudFBvc2l0aW9uQW5kQXJyb3dEaW1lbnNpb25zQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uKCk7XG4gICAgICAgICAgICBjb25zdCBhcnJvd0RpbWVuc2lvbnMgPSB7IHdpZHRoOiB0aGlzLndpZHRoKCksIGhlaWdodDogdGhpcy5oZWlnaHQoKSB9O1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbihwb3NpdGlvbiwgYXJyb3dEaW1lbnNpb25zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=","import { Directive, effect, ElementRef, forwardRef, inject, Renderer2, untracked } from '@angular/core';\nimport { RdxTooltipCloseToken } from './tooltip-close.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport * as i0 from \"@angular/core\";\n/**\n * TODO: to be removed? But it seems to be useful when controlled from outside\n */\nexport class RdxTooltipCloseDirective {\n constructor() {\n /** @ignore */\n this.rootDirective = injectTooltipRoot();\n /** @ignore */\n this.elementRef = inject(ElementRef);\n /** @ignore */\n this.renderer = inject(Renderer2);\n this.onIsControlledExternallyEffect();\n }\n /** @ignore */\n onIsControlledExternallyEffect() {\n effect(() => {\n const isControlledExternally = this.rootDirective.controlledExternally()();\n untracked(() => {\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', isControlledExternally ? null : 'none');\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxTooltipCloseDirective, isStandalone: true, selector: \"[rdxTooltipClose]\", host: { attributes: { \"type\": \"button\" }, listeners: { \"click\": \"rootDirective.handleClose(true)\" } }, providers: [\n {\n provide: RdxTooltipCloseToken,\n useExisting: forwardRef(() => RdxTooltipCloseDirective)\n }\n ], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipCloseDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxTooltipClose]',\n host: {\n type: 'button',\n '(click)': 'rootDirective.handleClose(true)'\n },\n providers: [\n {\n provide: RdxTooltipCloseToken,\n useExisting: forwardRef(() => RdxTooltipCloseDirective)\n }\n ]\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jbG9zZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAtY2xvc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTFEOztHQUVHO0FBY0gsTUFBTSxPQUFPLHdCQUF3QjtJQVFqQztRQVBBLGNBQWM7UUFDSyxrQkFBYSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDdkQsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsY0FBYztRQUNHLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHMUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7SUFDTiw4QkFBOEI7UUFDbEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7WUFFM0UsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLFNBQVMsRUFDVCxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQ3pDLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F6QlEsd0JBQXdCO2tHQUF4Qix3QkFBd0IsdUtBUHRCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUMxRDtTQUNKOzsyRkFFUSx3QkFBd0I7a0JBYnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLFNBQVMsRUFBRSxpQ0FBaUM7cUJBQy9DO29CQUNELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzt5QkFDMUQ7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0LCBSZW5kZXJlcjIsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcENsb3NlVG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtY2xvc2UudG9rZW4nO1xuaW1wb3J0IHsgaW5qZWN0VG9vbHRpcFJvb3QgfSBmcm9tICcuL3Rvb2x0aXAtcm9vdC5pbmplY3QnO1xuXG4vKipcbiAqIFRPRE86IHRvIGJlIHJlbW92ZWQ/IEJ1dCBpdCBzZWVtcyB0byBiZSB1c2VmdWwgd2hlbiBjb250cm9sbGVkIGZyb20gb3V0c2lkZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhUb29sdGlwQ2xvc2VdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAnKGNsaWNrKSc6ICdyb290RGlyZWN0aXZlLmhhbmRsZUNsb3NlKHRydWUpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFJkeFRvb2x0aXBDbG9zZVRva2VuLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmR4VG9vbHRpcENsb3NlRGlyZWN0aXZlKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwQ2xvc2VEaXJlY3RpdmUge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvb3REaXJlY3RpdmUgPSBpbmplY3RUb29sdGlwUm9vdCgpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9uSXNDb250cm9sbGVkRXh0ZXJuYWxseUVmZmVjdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvbklzQ29udHJvbGxlZEV4dGVybmFsbHlFZmZlY3QoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0NvbnRyb2xsZWRFeHRlcm5hbGx5ID0gdGhpcy5yb290RGlyZWN0aXZlLmNvbnRyb2xsZWRFeHRlcm5hbGx5KCkoKTtcblxuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXknLFxuICAgICAgICAgICAgICAgICAgICBpc0NvbnRyb2xsZWRFeHRlcm5hbGx5ID8gbnVsbCA6ICdub25lJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, computed, forwardRef } from '@angular/core';\nimport { RdxTooltipContentAttributesToken } from './tooltip-content-attributes.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport { RdxTooltipAnimationStatus, RdxTooltipState } from './tooltip.types';\nimport * as i0 from \"@angular/core\";\nexport class RdxTooltipContentAttributesComponent {\n constructor() {\n /** @ignore */\n this.rootDirective = injectTooltipRoot();\n /** @ignore */\n this.name = computed(() => `rdx-tooltip-content-attributes-${this.rootDirective.uniqueId()}`, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n /** @ignore */\n this.disableAnimation = computed(() => !this.canAnimate(), ...(ngDevMode ? [{ debugName: \"disableAnimation\" }] : []));\n }\n /** @ignore */\n onAnimationStart(_) {\n this.rootDirective.cssAnimationStatus.set(this.rootDirective.state() === RdxTooltipState.OPEN\n ? RdxTooltipAnimationStatus.OPEN_STARTED\n : RdxTooltipAnimationStatus.CLOSED_STARTED);\n }\n /** @ignore */\n onAnimationEnd(_) {\n this.rootDirective.cssAnimationStatus.set(this.rootDirective.state() === RdxTooltipState.OPEN\n ? RdxTooltipAnimationStatus.OPEN_ENDED\n : RdxTooltipAnimationStatus.CLOSED_ENDED);\n }\n /** @ignore */\n pointerenter() {\n this.rootDirective.handleOpen();\n }\n /** @ignore */\n pointerleave() {\n this.rootDirective.handleClose();\n }\n /** @ignore */\n focus() {\n this.rootDirective.handleOpen();\n }\n /** @ignore */\n blur() {\n this.rootDirective.handleClose();\n }\n /** @ignore */\n canAnimate() {\n return (this.rootDirective.cssAnimation() &&\n ((this.rootDirective.cssOpeningAnimation() && this.rootDirective.state() === RdxTooltipState.OPEN) ||\n (this.rootDirective.cssClosingAnimation() && this.rootDirective.state() === RdxTooltipState.CLOSED)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipContentAttributesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxTooltipContentAttributesComponent, isStandalone: true, selector: \"[rdxTooltipContentAttributes]\", host: { listeners: { \"animationstart\": \"onAnimationStart($event)\", \"animationend\": \"onAnimationEnd($event)\", \"pointerenter\": \"pointerenter()\", \"pointerleave\": \"pointerleave()\", \"focus\": \"focus()\", \"blur\": \"blur()\" }, properties: { \"attr.role\": \"\\\"dialog\\\"\", \"attr.id\": \"name()\", \"attr.data-state\": \"rootDirective.state()\", \"attr.data-side\": \"rootDirective.contentDirective().side()\", \"attr.data-align\": \"rootDirective.contentDirective().align()\", \"style\": \"disableAnimation() ? {animation: \\\"none !important\\\"} : null\" } }, providers: [\n {\n provide: RdxTooltipContentAttributesToken,\n useExisting: forwardRef(() => RdxTooltipContentAttributesComponent)\n }\n ], ngImport: i0, template: `\n <ng-content />\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipContentAttributesComponent, decorators: [{\n type: Component,\n args: [{\n selector: '[rdxTooltipContentAttributes]',\n template: `\n <ng-content />\n `,\n host: {\n '[attr.role]': '\"dialog\"',\n '[attr.id]': 'name()',\n '[attr.data-state]': 'rootDirective.state()',\n '[attr.data-side]': 'rootDirective.contentDirective().side()',\n '[attr.data-align]': 'rootDirective.contentDirective().align()',\n '[style]': 'disableAnimation() ? {animation: \"none !important\"} : null',\n '(animationstart)': 'onAnimationStart($event)',\n '(animationend)': 'onAnimationEnd($event)',\n '(pointerenter)': 'pointerenter()',\n '(pointerleave)': 'pointerleave()',\n '(focus)': 'focus()',\n '(blur)': 'blur()'\n },\n providers: [\n {\n provide: RdxTooltipContentAttributesToken,\n useExisting: forwardRef(() => RdxTooltipContentAttributesComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250ZW50LWF0dHJpYnV0ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b29sdGlwL3NyYy90b29sdGlwLWNvbnRlbnQtYXR0cmlidXRlcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUE2QjdFLE1BQU0sT0FBTyxvQ0FBb0M7SUEzQmpEO1FBNEJJLGNBQWM7UUFDSyxrQkFBYSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFFdkQsY0FBYztRQUNMLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsZ0RBQUMsQ0FBQztRQUVsRyxjQUFjO1FBQ0wscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSw0REFBQyxDQUFDO0tBZ0RsRTtJQTlDRyxjQUFjO0lBQ0osZ0JBQWdCLENBQUMsQ0FBaUI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssZUFBZSxDQUFDLElBQUk7WUFDL0MsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLFlBQVk7WUFDeEMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FDakQsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ0osY0FBYyxDQUFDLENBQWlCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLGVBQWUsQ0FBQyxJQUFJO1lBQy9DLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVO1lBQ3RDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQy9DLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztJQUNKLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNKLEtBQUs7UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO0lBQ0osSUFBSTtRQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWM7SUFDTixVQUFVO1FBQ2QsT0FBTyxDQUNILElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUM5RixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUMzRyxDQUFDO0lBQ04sQ0FBQzs4R0F2RFEsb0NBQW9DO2tHQUFwQyxvQ0FBb0Msd2xCQVJsQztZQUNQO2dCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7Z0JBQ3pDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0NBQW9DLENBQUM7YUFDdEU7U0FDSiwwQkF0QlM7O0tBRVQ7OzJGQXVCUSxvQ0FBb0M7a0JBM0JoRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFFBQVEsRUFBRTs7S0FFVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLFVBQVU7d0JBQ3pCLFdBQVcsRUFBRSxRQUFRO3dCQUNyQixtQkFBbUIsRUFBRSx1QkFBdUI7d0JBQzVDLGtCQUFrQixFQUFFLHlDQUF5Qzt3QkFDN0QsbUJBQW1CLEVBQUUsMENBQTBDO3dCQUMvRCxTQUFTLEVBQUUsNERBQTREO3dCQUN2RSxrQkFBa0IsRUFBRSwwQkFBMEI7d0JBQzlDLGdCQUFnQixFQUFFLHdCQUF3Qjt3QkFDMUMsZ0JBQWdCLEVBQUUsZ0JBQWdCO3dCQUNsQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7d0JBQ2xDLFNBQVMsRUFBRSxTQUFTO3dCQUNwQixRQUFRLEVBQUUsUUFBUTtxQkFDckI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFDQUFxQyxDQUFDO3lCQUN0RTtxQkFDSjtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcENvbnRlbnRBdHRyaWJ1dGVzVG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtY29udGVudC1hdHRyaWJ1dGVzLnRva2VuJztcbmltcG9ydCB7IGluamVjdFRvb2x0aXBSb290IH0gZnJvbSAnLi90b29sdGlwLXJvb3QuaW5qZWN0JztcbmltcG9ydCB7IFJkeFRvb2x0aXBBbmltYXRpb25TdGF0dXMsIFJkeFRvb2x0aXBTdGF0ZSB9IGZyb20gJy4vdG9vbHRpcC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc10nLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgYCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdcImRpYWxvZ1wiJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICduYW1lKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAncm9vdERpcmVjdGl2ZS5zdGF0ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2lkZV0nOiAncm9vdERpcmVjdGl2ZS5jb250ZW50RGlyZWN0aXZlKCkuc2lkZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtYWxpZ25dJzogJ3Jvb3REaXJlY3RpdmUuY29udGVudERpcmVjdGl2ZSgpLmFsaWduKCknLFxuICAgICAgICAnW3N0eWxlXSc6ICdkaXNhYmxlQW5pbWF0aW9uKCkgPyB7YW5pbWF0aW9uOiBcIm5vbmUgIWltcG9ydGFudFwifSA6IG51bGwnLFxuICAgICAgICAnKGFuaW1hdGlvbnN0YXJ0KSc6ICdvbkFuaW1hdGlvblN0YXJ0KCRldmVudCknLFxuICAgICAgICAnKGFuaW1hdGlvbmVuZCknOiAnb25BbmltYXRpb25FbmQoJGV2ZW50KScsXG4gICAgICAgICcocG9pbnRlcmVudGVyKSc6ICdwb2ludGVyZW50ZXIoKScsXG4gICAgICAgICcocG9pbnRlcmxlYXZlKSc6ICdwb2ludGVybGVhdmUoKScsXG4gICAgICAgICcoZm9jdXMpJzogJ2ZvY3VzKCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBSZHhUb29sdGlwQ29udGVudEF0dHJpYnV0ZXNUb2tlbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmR4VG9vbHRpcENvbnRlbnRBdHRyaWJ1dGVzQ29tcG9uZW50IHtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSByb290RGlyZWN0aXZlID0gaW5qZWN0VG9vbHRpcFJvb3QoKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgbmFtZSA9IGNvbXB1dGVkKCgpID0+IGByZHgtdG9vbHRpcC1jb250ZW50LWF0dHJpYnV0ZXMtJHt0aGlzLnJvb3REaXJlY3RpdmUudW5pcXVlSWQoKX1gKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgZGlzYWJsZUFuaW1hdGlvbiA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmNhbkFuaW1hdGUoKSk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByb3RlY3RlZCBvbkFuaW1hdGlvblN0YXJ0KF86IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5jc3NBbmltYXRpb25TdGF0dXMuc2V0KFxuICAgICAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlLnN0YXRlKCkgPT09IFJkeFRvb2x0aXBTdGF0ZS5PUEVOXG4gICAgICAgICAgICAgICAgPyBSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzLk9QRU5fU1RBUlRFRFxuICAgICAgICAgICAgICAgIDogUmR4VG9vbHRpcEFuaW1hdGlvblN0YXR1cy5DTE9TRURfU1RBUlRFRFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJvdGVjdGVkIG9uQW5pbWF0aW9uRW5kKF86IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5jc3NBbmltYXRpb25TdGF0dXMuc2V0KFxuICAgICAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlLnN0YXRlKCkgPT09IFJkeFRvb2x0aXBTdGF0ZS5PUEVOXG4gICAgICAgICAgICAgICAgPyBSZHhUb29sdGlwQW5pbWF0aW9uU3RhdHVzLk9QRU5fRU5ERURcbiAgICAgICAgICAgICAgICA6IFJkeFRvb2x0aXBBbmltYXRpb25TdGF0dXMuQ0xPU0VEX0VOREVEXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcm90ZWN0ZWQgcG9pbnRlcmVudGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmUuaGFuZGxlT3BlbigpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJvdGVjdGVkIHBvaW50ZXJsZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlLmhhbmRsZUNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcm90ZWN0ZWQgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm9vdERpcmVjdGl2ZS5oYW5kbGVPcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcm90ZWN0ZWQgYmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb290RGlyZWN0aXZlLmhhbmRsZUNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNhbkFuaW1hdGUoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLnJvb3REaXJlY3RpdmUuY3NzQW5pbWF0aW9uKCkgJiZcbiAgICAgICAgICAgICgodGhpcy5yb290RGlyZWN0aXZlLmNzc09wZW5pbmdBbmltYXRpb24oKSAmJiB0aGlzLnJvb3REaXJlY3RpdmUuc3RhdGUoKSA9PT0gUmR4VG9vbHRpcFN0YXRlLk9QRU4pIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMucm9vdERpcmVjdGl2ZS5jc3NDbG9zaW5nQW5pbWF0aW9uKCkgJiYgdGhpcy5yb290RGlyZWN0aXZlLnN0YXRlKCkgPT09IFJkeFRvb2x0aXBTdGF0ZS5DTE9TRUQpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { RdxTooltipAnchorDirective } from './src/tooltip-anchor.directive';\nimport { RdxTooltipArrowDirective } from './src/tooltip-arrow.directive';\nimport { RdxTooltipCloseDirective } from './src/tooltip-close.directive';\nimport { RdxTooltipContentAttributesComponent } from './src/tooltip-content-attributes.component';\nimport { RdxTooltipContentDirective } from './src/tooltip-content.directive';\nimport { RdxTooltipRootDirective } from './src/tooltip-root.directive';\nimport { RdxTooltipTriggerDirective } from './src/tooltip-trigger.directive';\nimport * as i0 from \"@angular/core\";\nexport * from './src/tooltip-anchor.directive';\nexport * from './src/tooltip-arrow.directive';\nexport * from './src/tooltip-close.directive';\nexport * from './src/tooltip-content-attributes.component';\nexport * from './src/tooltip-content.directive';\nexport * from './src/tooltip-root.directive';\nexport * from './src/tooltip-trigger.directive';\nconst _imports = [\n RdxTooltipArrowDirective,\n RdxTooltipCloseDirective,\n RdxTooltipContentDirective,\n RdxTooltipTriggerDirective,\n RdxTooltipRootDirective,\n RdxTooltipAnchorDirective,\n RdxTooltipContentAttributesComponent\n];\nexport class RdxTooltipModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipModule, imports: [RdxTooltipArrowDirective,\n RdxTooltipCloseDirective,\n RdxTooltipContentDirective,\n RdxTooltipTriggerDirective,\n RdxTooltipRootDirective,\n RdxTooltipAnchorDirective,\n RdxTooltipContentAttributesComponent], exports: [RdxTooltipArrowDirective,\n RdxTooltipCloseDirective,\n RdxTooltipContentDirective,\n RdxTooltipTriggerDirective,\n RdxTooltipRootDirective,\n RdxTooltipAnchorDirective,\n RdxTooltipContentAttributesComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxTooltipModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [..._imports],\n exports: [..._imports]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFFN0UsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxNQUFNLFFBQVEsR0FBRztJQUNiLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQix1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLG9DQUFvQztDQUN2QyxDQUFDO0FBTUYsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsWUFiekIsd0JBQXdCO1lBQ3hCLHdCQUF3QjtZQUN4QiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLHVCQUF1QjtZQUN2Qix5QkFBeUI7WUFDekIsb0NBQW9DLGFBTnBDLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQix1QkFBdUI7WUFDdkIseUJBQXlCO1lBQ3pCLG9DQUFvQzsrR0FPM0IsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcEFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL3Rvb2x0aXAtYW5jaG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhUb29sdGlwQXJyb3dEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy90b29sdGlwLWFycm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhUb29sdGlwQ2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuL3NyYy90b29sdGlwLWNsb3NlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhUb29sdGlwQ29udGVudEF0dHJpYnV0ZXNDb21wb25lbnQgfSBmcm9tICcuL3NyYy90b29sdGlwLWNvbnRlbnQtYXR0cmlidXRlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmR4VG9vbHRpcENvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL3NyYy90b29sdGlwLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBSb290RGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvdG9vbHRpcC1yb290LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhUb29sdGlwVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL3Rvb2x0aXAtdHJpZ2dlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NyYy90b29sdGlwLWFuY2hvci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9vbHRpcC1hcnJvdy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9vbHRpcC1jbG9zZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9vbHRpcC1jb250ZW50LWF0dHJpYnV0ZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3Rvb2x0aXAtY29udGVudC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9vbHRpcC1yb290LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90b29sdGlwLXRyaWdnZXIuZGlyZWN0aXZlJztcblxuY29uc3QgX2ltcG9ydHMgPSBbXG4gICAgUmR4VG9vbHRpcEFycm93RGlyZWN0aXZlLFxuICAgIFJkeFRvb2x0aXBDbG9zZURpcmVjdGl2ZSxcbiAgICBSZHhUb29sdGlwQ29udGVudERpcmVjdGl2ZSxcbiAgICBSZHhUb29sdGlwVHJpZ2dlckRpcmVjdGl2ZSxcbiAgICBSZHhUb29sdGlwUm9vdERpcmVjdGl2ZSxcbiAgICBSZHhUb29sdGlwQW5jaG9yRGlyZWN0aXZlLFxuICAgIFJkeFRvb2x0aXBDb250ZW50QXR0cmlidXRlc0NvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbLi4uX2ltcG9ydHNdLFxuICAgIGV4cG9ydHM6IFsuLi5faW1wb3J0c11cbn0pXG5leHBvcnQgY2xhc3MgUmR4VG9vbHRpcE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b29sdGlwL3JhZGl4LW5nLXByaW1pdGl2ZXMtdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip.config.ts","../../../packages/primitives/tooltip/src/utils.ts","../../../packages/primitives/tooltip/src/tooltip-provider.ts","../../../packages/primitives/tooltip/src/tooltip.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.ts","../../../packages/primitives/tooltip/src/tooltip-popup.ts","../../../packages/primitives/tooltip/src/tooltip-portal.ts","../../../packages/primitives/tooltip/src/tooltip-portal-presence.ts","../../../packages/primitives/tooltip/src/tooltip-positioner.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.ts","../../../packages/primitives/tooltip/src/tooltip-handle.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport type RdxTrackCursorAxis = 'none' | 'x' | 'y' | 'both';\n\nexport type RdxTooltipConfig = {\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * @defaultValue 600\n */\n delay?: number;\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n * @defaultValue 0\n */\n closeDelay?: number;\n /**\n * Another tooltip within the same provider opens instantly when this window\n * has not yet elapsed since the previous one closed. Specified in milliseconds.\n * @defaultValue 400\n */\n timeout?: number;\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n * @defaultValue false\n */\n disableHoverablePopup?: boolean;\n};\n\nexport const defaultTooltipConfig: Required<RdxTooltipConfig> = {\n delay: 600,\n closeDelay: 0,\n timeout: 400,\n disableHoverablePopup: false\n};\n\nexport const RdxTooltipDefaultsToken = new InjectionToken<RdxTooltipConfig>('RdxTooltipDefaultsToken');\n\nexport function provideRdxTooltipConfig(config: Partial<RdxTooltipConfig>): Provider[] {\n return [\n {\n provide: RdxTooltipDefaultsToken,\n useValue: { ...defaultTooltipConfig, ...config }\n }\n ];\n}\n\nexport function injectRdxTooltipConfig(): Required<RdxTooltipConfig> {\n return { ...defaultTooltipConfig, ...inject(RdxTooltipDefaultsToken, { optional: true }) };\n}\n","import { DestroyRef, signal, Signal } from '@angular/core';\n\nexport type TimeoutController = {\n start: () => void;\n stop: () => void;\n isPending: () => boolean;\n};\n\nexport type TooltipInstantController = {\n /** Whether the next tooltip in the group should open without waiting for the delay. */\n isInstant: Signal<boolean>;\n /** Call when a tooltip opens — leaves the group in the instant phase. */\n onOpen: () => void;\n /** Call when a tooltip closes — keeps the group instant for `timeout` ms, then re-arms the delay. */\n onClose: () => void;\n};\n\n/**\n * Tracks the shared \"instant\" window for a group of tooltips. Once one tooltip\n * opens, sibling tooltips open instantly until `timeout` ms after the last close.\n */\nexport function createTooltipInstantController(\n timeout: () => number,\n destroyRef?: DestroyRef\n): TooltipInstantController {\n const instant = signal(false);\n\n const timer = useTimeoutFn(() => instant.set(false), timeout, { immediate: false }, destroyRef);\n\n return {\n isInstant: instant.asReadonly(),\n onOpen: () => {\n timer.stop();\n instant.set(true);\n },\n onClose: () => {\n timer.start();\n }\n };\n}\n\nexport function useTimeoutFn(\n cb: () => void,\n delay: number | (() => number),\n options: { immediate?: boolean } = {},\n destroyRef?: DestroyRef\n): TimeoutController {\n let id: number | null = null;\n\n const resolveDelay = () => (typeof delay === 'function' ? (delay as () => number)() : delay);\n\n const stop = () => {\n if (id != null) {\n clearTimeout(id);\n id = null;\n }\n };\n\n const start = () => {\n stop();\n const ms = resolveDelay();\n if (ms <= 0) {\n queueMicrotask(cb);\n return;\n }\n id = window.setTimeout(() => {\n id = null;\n cb();\n }, ms);\n };\n\n if (options.immediate) {\n start();\n }\n if (destroyRef) {\n destroyRef.onDestroy(stop);\n }\n\n return { start, stop, isPending: () => id != null };\n}\n","import { DestroyRef, Directive, inject, input, numberAttribute, Signal } from '@angular/core';\nimport { createContext, NumberInput } from '@radix-ng/primitives/core';\nimport { injectRdxTooltipConfig } from './tooltip.config';\nimport { createTooltipInstantController } from './utils';\n\nexport interface RdxTooltipProviderContext {\n /** Default open delay for tooltips in this group, in milliseconds. */\n delay: Signal<number | undefined>;\n /** Default close delay for tooltips in this group, in milliseconds. */\n closeDelay: Signal<number | undefined>;\n /** Whether sibling tooltips should currently open instantly. */\n isInstant: Signal<boolean>;\n /** Notifies the group that a tooltip has opened. */\n onOpen: () => void;\n /** Notifies the group that a tooltip has closed. */\n onClose: () => void;\n}\n\nexport const [injectRdxTooltipProviderContext, provideRdxTooltipProviderContext] =\n createContext<RdxTooltipProviderContext>('RdxTooltipProviderContext');\n\nconst numberOrUndefined = (value: NumberInput | undefined) => (value == null ? undefined : numberAttribute(value));\n\nconst providerContext = (): RdxTooltipProviderContext => {\n const provider = inject(RdxTooltipProvider);\n\n return {\n delay: provider.delay,\n closeDelay: provider.closeDelay,\n isInstant: provider.instant.isInstant,\n onOpen: () => provider.instant.onOpen(),\n onClose: () => provider.instant.onClose()\n };\n};\n\n/**\n * Shares delay configuration and an instant-open window across a group of tooltips.\n * Once one tooltip opens, adjacent ones open instantly until `timeout` ms after the last close.\n */\n@Directive({\n selector: '[rdxTooltipProvider]',\n exportAs: 'rdxTooltipProvider',\n providers: [provideRdxTooltipProviderContext(providerContext)]\n})\nexport class RdxTooltipProvider {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * How long to wait before opening tooltips in this group. Specified in milliseconds.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, { transform: numberOrUndefined });\n\n /**\n * How long to wait before closing tooltips in this group. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: numberOrUndefined\n });\n\n /**\n * The window during which an adjacent tooltip opens instantly. Specified in milliseconds.\n */\n readonly timeout = input<number, NumberInput>(this.defaultConfig.timeout, { transform: numberAttribute });\n\n readonly instant = createTooltipInstantController(() => this.timeout(), this.destroyRef);\n}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n Signal,\n signal,\n untracked\n} from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { BooleanInput, createContext, injectId, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\nimport { RdxTooltipHandle } from './tooltip-handle';\nimport { injectRdxTooltipProviderContext } from './tooltip-provider';\nimport { injectRdxTooltipConfig, RdxTrackCursorAxis } from './tooltip.config';\nimport { createTooltipInstantController, TooltipInstantController, useTimeoutFn } from './utils';\n\nexport interface RdxTooltipContext {\n contentId: string;\n isOpen: Signal<boolean>;\n /** Whether the tooltip opened/closed without waiting for the delay. */\n instant: Signal<boolean>;\n disabled: Signal<boolean>;\n disableHoverablePopup: Signal<boolean>;\n trackCursorAxis: Signal<RdxTrackCursorAxis>;\n /** The active trigger element. */\n trigger: Signal<HTMLElement | undefined>;\n triggers: Signal<HTMLElement[]>;\n payload: Signal<unknown>;\n open: (trigger?: HTMLElement, payload?: unknown) => void;\n close: () => void;\n /** Closes after the resolved close delay (used when hover/focus is lost). */\n closeDelayed: () => void;\n registerTrigger: (trigger: HTMLElement) => () => void;\n /** Hover entered a trigger — opens after the resolved delay (or instantly). */\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => void;\n /** Hover left a trigger — cancels a pending open and closes when appropriate. */\n onTriggerLeave: () => void;\n setCursorPosition: (position: { x: number; y: number } | undefined) => void;\n setDelays: (delay: number | undefined, closeDelay: number | undefined) => void;\n}\n\nexport const [injectRdxTooltipContext, provideRdxTooltipContext] =\n createContext<RdxTooltipContext>('RdxTooltipContext');\n\nconst context = () => contextFor(inject(RdxTooltip));\n\n@Directive({\n selector: '[rdxTooltip]',\n exportAs: 'rdxTooltip',\n providers: [provideRdxTooltipContext(context)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxTooltip {\n private readonly defaultConfig = injectRdxTooltipConfig();\n private readonly provider = injectRdxTooltipProviderContext(true);\n private readonly popper = inject(RdxPopper);\n private readonly destroyRef = inject(DestroyRef);\n private hasAppliedDefaultOpen = false;\n\n /**\n * Whether the tooltip is currently open.\n */\n readonly open = model(false);\n\n /**\n * Whether the tooltip is initially open. Uncontrolled.\n */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * How long to wait before opening the tooltip. Specified in milliseconds.\n * Falls back to the surrounding provider, then to the global config.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * How long to wait before closing the tooltip. Specified in milliseconds.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * When `true`, the tooltip closes as the pointer leaves the trigger instead of\n * staying open while the pointer moves over the popup.\n */\n readonly disableHoverablePopup = input<boolean, BooleanInput>(this.defaultConfig.disableHoverablePopup, {\n transform: booleanAttribute\n });\n\n /**\n * Determines which axis the tooltip should track the cursor on.\n */\n readonly trackCursorAxis = input<RdxTrackCursorAxis>('none');\n\n /**\n * When `true`, the tooltip will not open.\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Associates this root with detached trigger elements.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Event handler called when the open state changes.\n */\n readonly onOpenChange = output<boolean>();\n\n readonly contentId = injectId('rdx-tooltip-content-');\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly triggers = signal<HTMLElement[]>([]);\n readonly payload = signal<unknown>(undefined);\n readonly cursorPosition = signal<{ x: number; y: number } | undefined>(undefined);\n\n private readonly openedInstant = signal(false);\n\n /** Local instant window used when this tooltip is not inside a provider. */\n private readonly localInstant: TooltipInstantController = createTooltipInstantController(\n () => this.defaultConfig.timeout,\n this.destroyRef\n );\n\n private readonly instantGroup = this.provider ?? this.localInstant;\n\n /** Per-trigger overrides set by the active trigger, taking precedence over the root/provider. */\n private readonly triggerDelay = signal<number | undefined>(undefined);\n private readonly triggerCloseDelay = signal<number | undefined>(undefined);\n\n private readonly resolvedDelay = computed(\n () => this.triggerDelay() ?? this.delay() ?? this.provider?.delay() ?? this.defaultConfig.delay\n );\n private readonly resolvedCloseDelay = computed(\n () =>\n this.triggerCloseDelay() ??\n this.closeDelay() ??\n this.provider?.closeDelay() ??\n this.defaultConfig.closeDelay\n );\n\n /** Whether the most recent open happened without the delay. */\n readonly instant = this.openedInstant.asReadonly();\n\n private readonly virtualAnchor = computed<ReferenceElement | undefined>(() => {\n const axis = this.trackCursorAxis();\n const element = this.trigger();\n\n if (axis === 'none' || !element) {\n return element;\n }\n\n const position = this.cursorPosition();\n\n if (!position) {\n return element;\n }\n\n const followX = axis === 'x' || axis === 'both';\n const followY = axis === 'y' || axis === 'both';\n\n return {\n getBoundingClientRect: () => {\n const rect = element.getBoundingClientRect();\n const width = followX ? 0 : rect.width;\n const height = followY ? 0 : rect.height;\n const x = followX ? position.x : rect.x;\n const y = followY ? position.y : rect.y;\n\n return { width, height, x, y, top: y, left: x, right: x + width, bottom: y + height };\n }\n };\n });\n\n private readonly openTimer = useTimeoutFn(\n () => this.applyOpen(false),\n () => this.resolvedDelay()!,\n { immediate: false },\n this.destroyRef\n );\n\n private readonly closeTimer = useTimeoutFn(\n () => this.applyClose(),\n () => this.resolvedCloseDelay()!,\n { immediate: false },\n this.destroyRef\n );\n\n constructor() {\n effect(() => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n });\n\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(untracked(() => handle.registerRoot(contextFor(this))));\n }\n });\n\n // Keep the popper anchored to the active trigger, or to the cursor while tracking.\n effect(() => this.popper.anchorOverride.set(this.virtualAnchor()));\n\n watch(\n [this.open],\n ([isOpen]) => {\n this.onOpenChange.emit(isOpen);\n\n if (isOpen) {\n this.instantGroup.onOpen();\n } else {\n this.instantGroup.onClose();\n this.openedInstant.set(false);\n }\n },\n { defer: true }\n );\n }\n\n /** Opens immediately, optionally switching the active trigger/payload. */\n show(trigger = this.trigger(), payload?: unknown) {\n this.applyOpen(true, trigger, payload);\n }\n\n close() {\n this.openTimer.stop();\n this.closeTimer.stop();\n this.applyClose();\n }\n\n /** Closes after the resolved close delay, e.g. when the pointer or focus leaves. */\n scheduleClose() {\n this.openTimer.stop();\n\n if (this.resolvedCloseDelay()! <= 0) {\n this.applyClose();\n } else {\n this.closeTimer.start();\n }\n }\n\n /** Hover/focus entered — open after the delay, or instantly within the instant window. */\n onTriggerEnter(trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n this.payload.set(payload);\n this.closeTimer.stop();\n\n if (this.instantGroup.isInstant() || this.resolvedDelay()! <= 0) {\n this.applyOpen(true, trigger, payload);\n } else {\n this.openTimer.start();\n }\n }\n\n onTriggerLeave() {\n this.openTimer.stop();\n\n if (this.disableHoverablePopup()) {\n this.scheduleClose();\n }\n // Otherwise the positioner's grace area decides when to close.\n }\n\n registerTrigger(trigger: HTMLElement) {\n this.triggers.update((triggers) => (triggers.includes(trigger) ? triggers : [...triggers, trigger]));\n\n if (!this.trigger()) {\n this.trigger.set(trigger);\n }\n\n return () => {\n this.triggers.update((triggers) => triggers.filter((candidate) => candidate !== trigger));\n\n if (this.trigger() === trigger) {\n const nextTrigger = this.triggers()[0];\n this.trigger.set(nextTrigger);\n\n if (!nextTrigger && !this.destroyRef.destroyed) {\n this.applyClose();\n }\n }\n };\n }\n\n setCursorPosition(position: { x: number; y: number } | undefined) {\n this.cursorPosition.set(position);\n }\n\n /** Applies per-trigger delay overrides from the trigger that is becoming active. */\n setDelays(delay: number | undefined, closeDelay: number | undefined) {\n this.triggerDelay.set(delay);\n this.triggerCloseDelay.set(closeDelay);\n }\n\n private applyOpen(instant: boolean, trigger = this.trigger(), payload?: unknown) {\n if (this.disabled()) {\n return;\n }\n\n this.openTimer.stop();\n this.closeTimer.stop();\n\n if (trigger) {\n this.trigger.set(trigger);\n }\n\n if (payload !== undefined) {\n this.payload.set(payload);\n }\n\n this.openedInstant.set(instant || this.instantGroup.isInstant());\n this.open.set(true);\n }\n\n private applyClose() {\n this.openedInstant.set(this.instantGroup.isInstant());\n this.open.set(false);\n }\n}\n\nfunction contextFor(root: RdxTooltip): RdxTooltipContext {\n return {\n contentId: root.contentId,\n isOpen: root.open,\n instant: root.instant,\n disabled: root.disabled,\n disableHoverablePopup: root.disableHoverablePopup,\n trackCursorAxis: root.trackCursorAxis,\n trigger: root.trigger.asReadonly(),\n triggers: root.triggers.asReadonly(),\n payload: root.payload.asReadonly(),\n open: (trigger?: HTMLElement, payload?: unknown) => root.show(trigger, payload),\n close: () => root.close(),\n closeDelayed: () => root.scheduleClose(),\n registerTrigger: (trigger: HTMLElement) => root.registerTrigger(trigger),\n onTriggerEnter: (trigger?: HTMLElement, payload?: unknown) => root.onTriggerEnter(trigger, payload),\n onTriggerLeave: () => root.onTriggerLeave(),\n setCursorPosition: (position) => root.setCursorPosition(position),\n setDelays: (delay, closeDelay) => root.setDelays(delay, closeDelay)\n };\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { RdxVisuallyHiddenDirective } from '@radix-ng/primitives/visually-hidden';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[hidden]': 'isVisuallyHidden',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()',\n '[attr.data-uncentered]': 'uncentered() ? \"\" : undefined'\n }\n})\nexport class RdxTooltipArrow {\n protected readonly rootContext = injectRdxTooltipContext()!;\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly uncentered = computed(() => this.wrapper?.arrowUncentered() ?? false);\n\n protected readonly isVisuallyHidden = !!inject(RdxVisuallyHiddenDirective, {\n optional: true\n });\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * The tooltip popup. Renders the content with `role=\"tooltip\"`.\n */\n@Directive({\n selector: '[rdxTooltipPopup]',\n hostDirectives: [RdxPopperContent],\n host: {\n role: 'tooltip',\n '[id]': 'rootContext.contentId',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-instant]': 'rootContext.instant() ? \"\" : undefined',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()'\n }\n})\nexport class RdxTooltipPopup {\n protected readonly rootContext = injectRdxTooltipContext()!;\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n/**\n * Moves the tooltip to a different part of the DOM.\n */\n@Directive({\n selector: '[rdxTooltipPortal]',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxTooltipPortal {\n readonly container = input.required<RdxPortalContainer>();\n}\n","import { Directive } from '@angular/core';\nimport { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';\nimport { injectRdxTooltipContext } from './tooltip';\n\n@Directive({\n selector: 'ng-template[rdxTooltipPortalPresence]',\n hostDirectives: [RdxPresenceDirective],\n providers: [\n provideRdxPresenceContext(() => {\n const context = injectRdxTooltipContext()!;\n\n return { present: context.isOpen };\n })\n ]\n})\nexport class RdxTooltipPortalPresence {}\n","import {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { BooleanInput, NumberInput, useGraceArea } from '@radix-ng/primitives/core';\nimport { RdxDismissableLayer } from '@radix-ng/primitives/dismissable-layer';\nimport {\n Align,\n provideRdxPopperContentConfig,\n RdxPopperAnchorElement,\n RdxPopperContentWrapper,\n Side\n} from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\n\n/**\n * Positions the tooltip popup against its trigger (or a custom anchor).\n */\n@Directive({\n selector: '[rdxTooltipPositioner]',\n providers: [provideRdxPopperContentConfig({ side: 'top', arrowPadding: 5, collisionPadding: 5 })],\n hostDirectives: [\n RdxDismissableLayer,\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'anchor',\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'positionStrategy',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'wrapper.placedSide()',\n '[attr.data-align]': 'wrapper.placedAlign()',\n '[style]': `{\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)'\n }`\n }\n})\nexport class RdxTooltipPositioner {\n protected readonly rootContext = injectRdxTooltipContext()!;\n protected readonly wrapper = inject(RdxPopperContentWrapper);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * An element to position the popup against. Defaults to the trigger.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the anchor to render against when open.\n */\n readonly side = input<Side>('top');\n\n /**\n * The distance in pixels from the anchor.\n */\n readonly sideOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The preferred alignment against the anchor.\n */\n readonly align = input<Align>('center');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * The padding between the arrow and the edges of the content.\n */\n readonly arrowPadding = input<number, NumberInput>(5, { transform: numberAttribute });\n\n /**\n * When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges.\n */\n readonly avoidCollisions = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(5);\n\n /**\n * The sticky behavior on the `align` axis.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The CSS position strategy used by Floating UI.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>('fixed');\n\n /**\n * Whether to update the position of the floating element on every animation frame if required.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = outputFromObservable(outputToObservable(this.wrapper.placed));\n\n /**\n * Event handler called when the escape key is down. Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`. Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n private readonly triggerEl = signal<HTMLElement | null>(null);\n private readonly containerEl = signal<HTMLElement | null>(null);\n\n private readonly graceArea = useGraceArea(this.triggerEl, this.containerEl, 300);\n\n private readonly afterNextRender = afterNextRender(() => {\n this.triggerEl.set(this.rootContext.trigger() ?? null);\n this.containerEl.set(this.elementRef.nativeElement);\n\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n const trigger = this.rootContext.trigger();\n\n if (trigger && target?.contains(trigger)) {\n this.rootContext.close();\n }\n };\n\n window.addEventListener('scroll', handleScroll, { capture: true });\n\n this.destroyRef.onDestroy(() => {\n window.removeEventListener('scroll', handleScroll, { capture: true });\n });\n\n this.graceArea.onPointerExit(() => {\n if (this.rootContext.disableHoverablePopup()) return;\n this.rootContext.closeDelayed();\n });\n });\n\n constructor() {\n this.dismissableLayer.focusOutside.subscribe((e) => e.preventDefault());\n\n this.dismissableLayer.dismiss.subscribe(() => this.rootContext.close());\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n untracked\n} from '@angular/core';\nimport { BooleanInput, injectId, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectRdxTooltipContext } from './tooltip';\nimport { RdxTooltipHandle } from './tooltip-handle';\n\n@Directive({\n selector: '[rdxTooltipTrigger]',\n hostDirectives: [RdxPopperAnchor],\n host: {\n type: 'button',\n 'data-grace-area-trigger': \"''\",\n '[id]': 'triggerId()',\n '[attr.aria-describedby]': 'isOpen() ? rootContext()?.contentId : undefined',\n '[attr.data-popup-open]': 'isOpen() ? \"\" : undefined',\n '[attr.data-trigger-disabled]': 'isDisabled() ? \"\" : undefined',\n '(pointermove)': 'handlePointerMove($event)',\n '(pointerleave)': 'handlePointerLeave()',\n '(pointerdown)': 'handlePointerDown($event)',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()',\n '(click)': 'handleClick()'\n }\n})\nexport class RdxTooltipTrigger {\n private readonly parentRootContext = injectRdxTooltipContext(true);\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly generatedId = injectId('rdx-tooltip-trigger-');\n\n /**\n * Associates this trigger with a detached tooltip root.\n */\n readonly handle = input<RdxTooltipHandle<any>>();\n\n /**\n * Data associated with this trigger while it is active.\n */\n readonly payload = input<unknown>();\n\n /**\n * ID used to identify this trigger when opening a detached tooltip imperatively.\n */\n readonly id = input<string>();\n\n /**\n * Whether the tooltip should close when the trigger is clicked.\n * @defaultValue true\n */\n readonly closeOnClick = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * Whether this trigger is disabled. A disabled trigger never opens the tooltip.\n * @defaultValue false\n */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * Overrides the open delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n /**\n * Overrides the close delay (ms) for this trigger. Falls back to the root/provider/global delay.\n */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: (value) => (value == null ? undefined : numberAttribute(value))\n });\n\n readonly userOnPointerDown = input<(event: PointerEvent) => void | boolean | Promise<void | boolean> | undefined>(\n undefined,\n { alias: 'rdxOnPointerDown' }\n );\n\n protected readonly triggerId = computed(() => this.id() ?? this.generatedId);\n protected readonly rootContext = computed(() => this.handle()?.context() ?? this.parentRootContext);\n\n /** Disabled if either the root or this trigger is disabled. */\n protected readonly isDisabled = computed(() => (this.rootContext()?.disabled() ?? false) || this.disabled());\n\n /** Whether this specific trigger is the active anchor of an open tooltip. */\n protected readonly isOpen = computed(\n () => this.rootContext()?.isOpen() === true && this.rootContext()?.trigger() === this.elementRef.nativeElement\n );\n\n private readonly isPointerDown = signal(false);\n private readonly hasPointerMoveOpened = signal(false);\n\n constructor() {\n effect((onCleanup) => {\n const handle = this.handle();\n\n if (handle) {\n onCleanup(\n untracked(() =>\n handle.registerTrigger(this.triggerId(), this.elementRef.nativeElement, () => this.payload())\n )\n );\n } else if (this.parentRootContext) {\n onCleanup(untracked(() => this.parentRootContext!.registerTrigger(this.elementRef.nativeElement)));\n }\n });\n }\n\n protected handleFocus() {\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled() || this.isPointerDown()) {\n return;\n }\n\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.open(this.elementRef.nativeElement, this.payload());\n }\n\n protected handleBlur() {\n this.rootContext()?.closeDelayed();\n }\n\n protected handleClick() {\n const rootContext = this.rootContext();\n\n if (rootContext?.isOpen() && this.closeOnClick()) {\n rootContext.close();\n }\n }\n\n protected handlePointerMove(event: PointerEvent) {\n if (event.pointerType === 'touch') {\n return;\n }\n\n const rootContext = this.rootContext();\n\n if (!rootContext || this.isDisabled()) {\n return;\n }\n\n if (rootContext.trackCursorAxis() !== 'none') {\n rootContext.setCursorPosition({ x: event.clientX, y: event.clientY });\n }\n\n if (!this.hasPointerMoveOpened()) {\n rootContext.setDelays(this.delay(), this.closeDelay());\n rootContext.onTriggerEnter(this.elementRef.nativeElement, this.payload());\n this.hasPointerMoveOpened.set(true);\n }\n }\n\n protected handlePointerLeave() {\n this.rootContext()?.onTriggerLeave();\n this.hasPointerMoveOpened.set(false);\n }\n\n protected async handlePointerDown(event: PointerEvent) {\n const user = this.userOnPointerDown();\n let result: unknown;\n\n if (user) {\n result = user(event);\n if (result instanceof Promise) result = await result;\n }\n\n if (event.defaultPrevented || result === false) {\n return;\n }\n\n this.isPointerDown.set(true);\n\n const handlePointerUp = () => {\n setTimeout(() => this.isPointerDown.set(false), 1);\n };\n\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n }\n}\n","import { computed, signal } from '@angular/core';\nimport type { RdxTooltipContext } from './tooltip';\n\n/**\n * Connects a tooltip root with trigger elements rendered elsewhere in the DOM.\n */\ninterface RdxTooltipHandleTrigger<Payload> {\n element: HTMLElement;\n payload: () => Payload | undefined;\n}\n\nexport class RdxTooltipHandle<Payload = unknown> {\n private readonly rootContext = signal<RdxTooltipContext | undefined>(undefined);\n private readonly triggers = new Map<string, RdxTooltipHandleTrigger<Payload>>();\n private readonly rootTriggerCleanups = new Map<string, () => void>();\n\n readonly isOpen = computed(() => this.rootContext()?.isOpen() ?? false);\n\n open(triggerId: string) {\n const trigger = this.triggers.get(triggerId);\n\n if (!trigger) {\n throw new Error(`No tooltip trigger registered with id \"${triggerId}\".`);\n }\n\n this.rootContext()?.open(trigger.element, trigger.payload());\n }\n\n close() {\n this.rootContext()?.close();\n }\n\n registerRoot(rootContext: RdxTooltipContext) {\n this.rootContext.set(rootContext);\n this.triggers.forEach((trigger, id) => {\n this.rootTriggerCleanups.set(id, rootContext.registerTrigger(trigger.element));\n });\n\n return () => {\n if (this.rootContext() === rootContext) {\n this.rootTriggerCleanups.forEach((cleanup) => cleanup());\n this.rootTriggerCleanups.clear();\n this.rootContext.set(undefined);\n }\n };\n }\n\n registerTrigger(id: string, trigger: HTMLElement, payload: () => Payload | undefined) {\n this.rootTriggerCleanups.get(id)?.();\n this.triggers.set(id, { element: trigger, payload });\n const unregisterFromRoot = this.rootContext()?.registerTrigger(trigger);\n\n if (unregisterFromRoot) {\n this.rootTriggerCleanups.set(id, unregisterFromRoot);\n }\n\n return () => {\n this.rootTriggerCleanups.get(id)?.();\n this.rootTriggerCleanups.delete(id);\n\n if (this.triggers.get(id)?.element === trigger) {\n this.triggers.delete(id);\n }\n };\n }\n\n context() {\n return this.rootContext();\n }\n}\n\nexport function createRdxTooltipHandle<Payload = unknown>() {\n return new RdxTooltipHandle<Payload>();\n}\n","import { RdxTooltip } from './src/tooltip';\nimport { RdxTooltipArrow } from './src/tooltip-arrow';\nimport { RdxTooltipPopup } from './src/tooltip-popup';\nimport { RdxTooltipPortal } from './src/tooltip-portal';\nimport { RdxTooltipPortalPresence } from './src/tooltip-portal-presence';\nimport { RdxTooltipPositioner } from './src/tooltip-positioner';\nimport { RdxTooltipProvider } from './src/tooltip-provider';\nimport { RdxTooltipTrigger } from './src/tooltip-trigger';\n\nexport * from './src/tooltip';\nexport * from './src/tooltip-arrow';\nexport * from './src/tooltip-handle';\nexport * from './src/tooltip-popup';\nexport * from './src/tooltip-portal';\nexport * from './src/tooltip-portal-presence';\nexport * from './src/tooltip-positioner';\nexport * from './src/tooltip-provider';\nexport * from './src/tooltip-trigger';\nexport * from './src/tooltip.config';\n\nexport const tooltipImports = [\n RdxTooltip,\n RdxTooltipArrow,\n RdxTooltipPopup,\n RdxTooltipPortal,\n RdxTooltipPortalPresence,\n RdxTooltipPositioner,\n RdxTooltipProvider,\n RdxTooltipTrigger\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}