@radix-ng/primitives 0.42.0 → 0.44.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 (453) hide show
  1. package/accordion/index.d.ts +160 -15
  2. package/alert-dialog/index.d.ts +54 -14
  3. package/arrow/README.md +1 -0
  4. package/arrow/index.d.ts +11 -0
  5. package/aspect-ratio/index.d.ts +35 -1
  6. package/avatar/index.d.ts +81 -11
  7. package/calendar/index.d.ts +310 -29
  8. package/checkbox/index.d.ts +163 -15
  9. package/collapsible/index.d.ts +82 -11
  10. package/config/index.d.ts +35 -2
  11. package/context-menu/index.d.ts +126 -23
  12. package/core/index.d.ts +898 -27
  13. package/cropper/index.d.ts +134 -14
  14. package/date-field/index.d.ts +209 -10
  15. package/dialog/index.d.ts +202 -20
  16. package/dismissable-layer/README.md +1 -0
  17. package/dismissable-layer/index.d.ts +126 -0
  18. package/dropdown-menu/index.d.ts +168 -23
  19. package/editable/index.d.ts +70 -1
  20. package/fesm2022/radix-ng-primitives-accordion.mjs +36 -36
  21. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +28 -28
  23. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-arrow.mjs +38 -0
  25. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -0
  26. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +5 -5
  27. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-avatar.mjs +20 -20
  29. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-calendar.mjs +110 -95
  31. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-checkbox.mjs +219 -209
  33. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-collapsible.mjs +27 -27
  35. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  37. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
  39. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-core.mjs +72 -24
  41. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-cropper.mjs +51 -51
  43. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-date-field.mjs +48 -48
  45. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-dialog.mjs +33 -33
  47. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +418 -0
  49. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -0
  50. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +37 -37
  51. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-editable.mjs +21 -21
  53. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-focus-guards.mjs +53 -0
  55. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -0
  56. package/fesm2022/radix-ng-primitives-focus-scope.mjs +17 -9
  57. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-hover-card.mjs +74 -74
  59. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-label.mjs +8 -8
  61. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-menu.mjs +65 -65
  63. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  65. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +91 -88
  67. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-number-field.mjs +56 -43
  69. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-pagination.mjs +45 -45
  71. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-popover.mjs +68 -68
  73. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-popper.mjs +418 -0
  75. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -0
  76. package/fesm2022/radix-ng-primitives-portal.mjs +51 -0
  77. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -0
  78. package/fesm2022/radix-ng-primitives-presence.mjs +4 -4
  79. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-progress.mjs +15 -15
  81. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-radio.mjs +30 -30
  83. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-roving-focus.mjs +179 -163
  85. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-select.mjs +37 -37
  87. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-separator.mjs +16 -14
  89. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-slider.mjs +75 -75
  91. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-stepper.mjs +45 -45
  93. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-switch.mjs +28 -28
  95. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-tabs.mjs +33 -33
  97. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives-time-field.mjs +78 -66
  99. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  100. package/fesm2022/radix-ng-primitives-toggle-group.mjs +22 -22
  101. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  102. package/fesm2022/radix-ng-primitives-toggle.mjs +9 -9
  103. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  104. package/fesm2022/radix-ng-primitives-toolbar.mjs +28 -28
  105. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  106. package/fesm2022/radix-ng-primitives-tooltip.mjs +74 -74
  107. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  108. package/fesm2022/radix-ng-primitives-tooltip2.mjs +740 -0
  109. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +1 -0
  110. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +93 -98
  111. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  112. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  113. package/focus-guards/README.md +1 -0
  114. package/focus-guards/index.d.ts +15 -0
  115. package/focus-scope/index.d.ts +65 -1
  116. package/hover-card/index.d.ts +471 -19
  117. package/index.d.ts +2 -1
  118. package/label/index.d.ts +27 -1
  119. package/menu/index.d.ts +136 -26
  120. package/menubar/index.d.ts +53 -21
  121. package/navigation-menu/index.d.ts +402 -25
  122. package/number-field/index.d.ts +202 -16
  123. package/package.json +26 -5
  124. package/pagination/index.d.ts +96 -20
  125. package/popover/index.d.ts +402 -19
  126. package/popper/README.md +3 -0
  127. package/popper/index.d.ts +206 -0
  128. package/portal/README.md +1 -0
  129. package/portal/index.d.ts +22 -0
  130. package/presence/index.d.ts +103 -5
  131. package/progress/index.d.ts +76 -8
  132. package/radio/index.d.ts +118 -4
  133. package/roving-focus/index.d.ts +174 -3
  134. package/select/index.d.ts +211 -23
  135. package/separator/index.d.ts +63 -1
  136. package/slider/index.d.ts +262 -17
  137. package/stepper/index.d.ts +122 -21
  138. package/switch/index.d.ts +102 -9
  139. package/tabs/index.d.ts +111 -13
  140. package/time-field/index.d.ts +211 -10
  141. package/toggle/index.d.ts +75 -3
  142. package/toggle-group/index.d.ts +194 -5
  143. package/toolbar/index.d.ts +52 -16
  144. package/tooltip/index.d.ts +432 -19
  145. package/tooltip2/README.md +3 -0
  146. package/tooltip2/index.d.ts +325 -0
  147. package/visually-hidden/index.d.ts +65 -3
  148. package/accordion/src/accordion-content-presence.directive.d.ts +0 -6
  149. package/accordion/src/accordion-content.directive.d.ts +0 -8
  150. package/accordion/src/accordion-header.directive.d.ts +0 -7
  151. package/accordion/src/accordion-item.directive.d.ts +0 -43
  152. package/accordion/src/accordion-root.directive.d.ts +0 -83
  153. package/accordion/src/accordion-trigger.directive.d.ts +0 -10
  154. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +0 -7
  155. package/alert-dialog/src/alert-dialog-content.directive.d.ts +0 -9
  156. package/alert-dialog/src/alert-dialog-root.directive.d.ts +0 -9
  157. package/alert-dialog/src/alert-dialog-title.directive.d.ts +0 -5
  158. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +0 -7
  159. package/alert-dialog/src/alert-dialog.service.d.ts +0 -14
  160. package/aspect-ratio/src/aspect-ratio.directive.d.ts +0 -32
  161. package/avatar/src/avatar-context.token.d.ts +0 -7
  162. package/avatar/src/avatar-fallback.directive.d.ts +0 -20
  163. package/avatar/src/avatar-image.directive.d.ts +0 -29
  164. package/avatar/src/avatar-root.directive.d.ts +0 -8
  165. package/avatar/src/avatar.config.d.ts +0 -13
  166. package/avatar/src/types.d.ts +0 -2
  167. package/calendar/src/calendar-cell-trigger.directive.d.ts +0 -54
  168. package/calendar/src/calendar-cell.directive.d.ts +0 -11
  169. package/calendar/src/calendar-grid-body.directive.d.ts +0 -5
  170. package/calendar/src/calendar-grid-head.directive.d.ts +0 -5
  171. package/calendar/src/calendar-grid-row.directive.d.ts +0 -5
  172. package/calendar/src/calendar-grid.directive.d.ts +0 -8
  173. package/calendar/src/calendar-head-cell.directive.d.ts +0 -5
  174. package/calendar/src/calendar-header.directive.d.ts +0 -5
  175. package/calendar/src/calendar-heading.directive.d.ts +0 -7
  176. package/calendar/src/calendar-next.directive.d.ts +0 -16
  177. package/calendar/src/calendar-prev.directive.d.ts +0 -16
  178. package/calendar/src/calendar-root.directive.d.ts +0 -148
  179. package/calendar/src/calendar.d.ts +0 -44
  180. package/calendar/src//321/201alendar-/321/201ontext.token.d.ts +0 -24
  181. package/checkbox/src/checkbox-button.directive.d.ts +0 -8
  182. package/checkbox/src/checkbox-indicator.directive.d.ts +0 -6
  183. package/checkbox/src/checkbox-input.directive.d.ts +0 -10
  184. package/checkbox/src/checkbox.directive.d.ts +0 -86
  185. package/checkbox/src/checkbox.token.d.ts +0 -4
  186. package/collapsible/src/collapsible-content-presence.directive.d.ts +0 -6
  187. package/collapsible/src/collapsible-content.directive.d.ts +0 -18
  188. package/collapsible/src/collapsible-root.directive.d.ts +0 -44
  189. package/collapsible/src/collapsible-trigger.directive.d.ts +0 -6
  190. package/config/src/config.d.ts +0 -21
  191. package/config/src/config.provider.d.ts +0 -10
  192. package/context-menu/src/context-menu-content.directive.d.ts +0 -15
  193. package/context-menu/src/context-menu-item-checkbox.directive.d.ts +0 -9
  194. package/context-menu/src/context-menu-item-indicator.directive.d.ts +0 -7
  195. package/context-menu/src/context-menu-item-radio-group.directive.d.ts +0 -12
  196. package/context-menu/src/context-menu-item-radio.directive.d.ts +0 -19
  197. package/context-menu/src/context-menu-item-selectable.d.ts +0 -12
  198. package/context-menu/src/context-menu-item.directive.d.ts +0 -17
  199. package/context-menu/src/context-menu-label.directive.d.ts +0 -5
  200. package/context-menu/src/context-menu-separator.directive.d.ts +0 -6
  201. package/context-menu/src/context-menu-trigger.directive.d.ts +0 -31
  202. package/core/src/accessor/control-value-accessor.d.ts +0 -67
  203. package/core/src/accessor/provide-value-accessor.d.ts +0 -12
  204. package/core/src/auto-focus.directive.d.ts +0 -14
  205. package/core/src/chunk.d.ts +0 -12
  206. package/core/src/clamp.d.ts +0 -38
  207. package/core/src/create-context.d.ts +0 -10
  208. package/core/src/date-time/calendar.d.ts +0 -33
  209. package/core/src/date-time/comparators.d.ts +0 -98
  210. package/core/src/date-time/formatter.d.ts +0 -30
  211. package/core/src/date-time/index.d.ts +0 -9
  212. package/core/src/date-time/parser.d.ts +0 -37
  213. package/core/src/date-time/parts.d.ts +0 -12
  214. package/core/src/date-time/placeholders.d.ts +0 -8
  215. package/core/src/date-time/segment.d.ts +0 -4
  216. package/core/src/date-time/types.d.ts +0 -58
  217. package/core/src/date-time/useDateField.d.ts +0 -142
  218. package/core/src/date-time/utils.d.ts +0 -7
  219. package/core/src/document.d.ts +0 -1
  220. package/core/src/focus-initial.directive.d.ts +0 -9
  221. package/core/src/getActiveElement.d.ts +0 -1
  222. package/core/src/id-generator.d.ts +0 -12
  223. package/core/src/inject-ng-control.d.ts +0 -8
  224. package/core/src/is-client.d.ts +0 -1
  225. package/core/src/is-equal.d.ts +0 -7
  226. package/core/src/is-inside-form.d.ts +0 -2
  227. package/core/src/is-nullish.d.ts +0 -1
  228. package/core/src/is-number.d.ts +0 -1
  229. package/core/src/isValueEqualOrExist.d.ts +0 -10
  230. package/core/src/kbd-constants.d.ts +0 -41
  231. package/core/src/positioning/constants.d.ts +0 -3
  232. package/core/src/positioning/types.d.ts +0 -42
  233. package/core/src/positioning/utils.d.ts +0 -12
  234. package/core/src/provide-token.d.ts +0 -22
  235. package/core/src/serialize.d.ts +0 -11
  236. package/core/src/types.d.ts +0 -25
  237. package/core/src/useArrowNavigation.d.ts +0 -65
  238. package/core/src/useResizeObserver.d.ts +0 -15
  239. package/core/src/watch.d.ts +0 -41
  240. package/core/src/window.d.ts +0 -3
  241. package/cropper/src/cropper-context.token.d.ts +0 -12
  242. package/cropper/src/cropper-crop-area.directive.d.ts +0 -6
  243. package/cropper/src/cropper-description.directive.d.ts +0 -6
  244. package/cropper/src/cropper-image.component.d.ts +0 -10
  245. package/cropper/src/cropper-root.directive.d.ts +0 -91
  246. package/date-field/src/date-field-context.token.d.ts +0 -19
  247. package/date-field/src/date-field-input.directive.d.ts +0 -53
  248. package/date-field/src/date-field-root.directive.d.ts +0 -131
  249. package/dialog/src/dialog-close.directive.d.ts +0 -7
  250. package/dialog/src/dialog-content.directive.d.ts +0 -21
  251. package/dialog/src/dialog-description.directive.d.ts +0 -5
  252. package/dialog/src/dialog-dismiss.directive.d.ts +0 -7
  253. package/dialog/src/dialog-ref.d.ts +0 -40
  254. package/dialog/src/dialog-title.directive.d.ts +0 -5
  255. package/dialog/src/dialog-trigger.directive.d.ts +0 -28
  256. package/dialog/src/dialog.config.d.ts +0 -41
  257. package/dialog/src/dialog.injectors.d.ts +0 -4
  258. package/dialog/src/dialog.providers.d.ts +0 -19
  259. package/dialog/src/dialog.service.d.ts +0 -26
  260. package/dismissible-layer/README.md +0 -1
  261. package/dismissible-layer/index.d.ts +0 -1
  262. package/dismissible-layer/src/utils.d.ts +0 -38
  263. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +0 -15
  264. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +0 -9
  265. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +0 -7
  266. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +0 -12
  267. package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +0 -19
  268. package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +0 -12
  269. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +0 -17
  270. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +0 -6
  271. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +0 -6
  272. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +0 -73
  273. package/editable/src/editable-root.d.ts +0 -67
  274. package/fesm2022/radix-ng-primitives-dismissible-layer.mjs +0 -211
  275. package/fesm2022/radix-ng-primitives-dismissible-layer.mjs.map +0 -1
  276. package/focus-scope/src/focus-scope.d.ts +0 -53
  277. package/focus-scope/src/stack.d.ts +0 -13
  278. package/focus-scope/src/utils.d.ts +0 -46
  279. package/hover-card/src/hover-card-anchor.directive.d.ts +0 -28
  280. package/hover-card/src/hover-card-anchor.token.d.ts +0 -3
  281. package/hover-card/src/hover-card-arrow.directive.d.ts +0 -45
  282. package/hover-card/src/hover-card-arrow.token.d.ts +0 -3
  283. package/hover-card/src/hover-card-close.directive.d.ts +0 -18
  284. package/hover-card/src/hover-card-close.token.d.ts +0 -3
  285. package/hover-card/src/hover-card-content-attributes.component.d.ts +0 -25
  286. package/hover-card/src/hover-card-content-attributes.token.d.ts +0 -3
  287. package/hover-card/src/hover-card-content.directive.d.ts +0 -124
  288. package/hover-card/src/hover-card-root.directive.d.ts +0 -182
  289. package/hover-card/src/hover-card-root.inject.d.ts +0 -3
  290. package/hover-card/src/hover-card-trigger.directive.d.ts +0 -26
  291. package/hover-card/src/hover-card.types.d.ts +0 -18
  292. package/hover-card/src/utils/cdk-event.service.d.ts +0 -30
  293. package/hover-card/src/utils/constants.d.ts +0 -1
  294. package/hover-card/src/utils/types.d.ts +0 -7
  295. package/label/src/label.directive.d.ts +0 -24
  296. package/menu/src/menu-content.directive.d.ts +0 -6
  297. package/menu/src/menu-directive.d.ts +0 -6
  298. package/menu/src/menu-group.directive.d.ts +0 -6
  299. package/menu/src/menu-item-checkbox.directive.d.ts +0 -21
  300. package/menu/src/menu-item-indicator.directive.d.ts +0 -10
  301. package/menu/src/menu-item-radio.directive.d.ts +0 -20
  302. package/menu/src/menu-item.directive.d.ts +0 -18
  303. package/menu/src/menu-label.directive.d.ts +0 -5
  304. package/menu/src/menu-radio-group.directive.d.ts +0 -6
  305. package/menu/src/menu-separator.directive.d.ts +0 -5
  306. package/menu/src/menu-trigger.directive.d.ts +0 -35
  307. package/menu/src/utils.d.ts +0 -3
  308. package/menubar/src/menubar-content.directive.d.ts +0 -6
  309. package/menubar/src/menubar-item-checkbox.directive.d.ts +0 -6
  310. package/menubar/src/menubar-item-indicator.directive.d.ts +0 -6
  311. package/menubar/src/menubar-item-radio.directive.d.ts +0 -6
  312. package/menubar/src/menubar-item.directive.d.ts +0 -6
  313. package/menubar/src/menubar-radio-group.directive.d.ts +0 -6
  314. package/menubar/src/menubar-root.directive.d.ts +0 -6
  315. package/menubar/src/menubar-separator.directive.d.ts +0 -6
  316. package/menubar/src/menubar-trigger.directive.d.ts +0 -6
  317. package/navigation-menu/src/navigation-menu-a11y.component.d.ts +0 -15
  318. package/navigation-menu/src/navigation-menu-content.directive.d.ts +0 -31
  319. package/navigation-menu/src/navigation-menu-indicator.directive.d.ts +0 -29
  320. package/navigation-menu/src/navigation-menu-item.directive.d.ts +0 -44
  321. package/navigation-menu/src/navigation-menu-link.directive.d.ts +0 -17
  322. package/navigation-menu/src/navigation-menu-list.directive.d.ts +0 -38
  323. package/navigation-menu/src/navigation-menu-sub.directive.d.ts +0 -19
  324. package/navigation-menu/src/navigation-menu-trigger.directive.d.ts +0 -33
  325. package/navigation-menu/src/navigation-menu-viewport.directive.d.ts +0 -61
  326. package/navigation-menu/src/navigation-menu.directive.d.ts +0 -76
  327. package/navigation-menu/src/navigation-menu.token.d.ts +0 -36
  328. package/navigation-menu/src/navigation-menu.types.d.ts +0 -13
  329. package/navigation-menu/src/utils.d.ts +0 -44
  330. package/number-field/src/number-field-context.token.d.ts +0 -24
  331. package/number-field/src/number-field-decrement.directive.d.ts +0 -23
  332. package/number-field/src/number-field-increment.directive.d.ts +0 -23
  333. package/number-field/src/number-field-input.directive.d.ts +0 -22
  334. package/number-field/src/number-field-root.directive.d.ts +0 -86
  335. package/number-field/src/types.d.ts +0 -1
  336. package/number-field/src/utils.d.ts +0 -18
  337. package/pagination/src/pagination-context.token.d.ts +0 -11
  338. package/pagination/src/pagination-ellipsis.directive.d.ts +0 -5
  339. package/pagination/src/pagination-first.directive.d.ts +0 -8
  340. package/pagination/src/pagination-last.directive.d.ts +0 -8
  341. package/pagination/src/pagination-list-item.directive.d.ts +0 -10
  342. package/pagination/src/pagination-list.directive.d.ts +0 -12
  343. package/pagination/src/pagination-next.directive.d.ts +0 -8
  344. package/pagination/src/pagination-prev.directive.d.ts +0 -8
  345. package/pagination/src/pagination-root.directive.d.ts +0 -18
  346. package/pagination/src/utils.d.ts +0 -9
  347. package/popover/src/popover-anchor.directive.d.ts +0 -28
  348. package/popover/src/popover-anchor.token.d.ts +0 -3
  349. package/popover/src/popover-arrow.directive.d.ts +0 -40
  350. package/popover/src/popover-arrow.token.d.ts +0 -3
  351. package/popover/src/popover-close.directive.d.ts +0 -15
  352. package/popover/src/popover-close.token.d.ts +0 -3
  353. package/popover/src/popover-content-attributes.component.d.ts +0 -23
  354. package/popover/src/popover-content-attributes.token.d.ts +0 -3
  355. package/popover/src/popover-content.directive.d.ts +0 -104
  356. package/popover/src/popover-root.directive.d.ts +0 -155
  357. package/popover/src/popover-root.inject.d.ts +0 -3
  358. package/popover/src/popover-trigger.directive.d.ts +0 -18
  359. package/popover/src/popover.types.d.ts +0 -14
  360. package/popover/src/utils/cdk-event.service.d.ts +0 -30
  361. package/popover/src/utils/constants.d.ts +0 -1
  362. package/popover/src/utils/types.d.ts +0 -7
  363. package/presence/src/presence.d.ts +0 -42
  364. package/presence/src/presence.directive.d.ts +0 -27
  365. package/presence/src/transitions/transition.collapse.d.ts +0 -15
  366. package/presence/src/transitions/transition.toast.d.ts +0 -3
  367. package/presence/src/types.d.ts +0 -15
  368. package/presence/src/utils.d.ts +0 -42
  369. package/progress/src/progress-indicator.directive.d.ts +0 -15
  370. package/progress/src/progress-root.directive.d.ts +0 -54
  371. package/radio/src/radio-indicator.directive.d.ts +0 -9
  372. package/radio/src/radio-item-input.directive.d.ts +0 -12
  373. package/radio/src/radio-item.directive.d.ts +0 -30
  374. package/radio/src/radio-root.directive.d.ts +0 -57
  375. package/radio/src/radio-tokens.d.ts +0 -14
  376. package/roving-focus/src/roving-focus-group.directive.d.ts +0 -50
  377. package/roving-focus/src/roving-focus-item.directive.d.ts +0 -50
  378. package/roving-focus/src/utils.d.ts +0 -19
  379. package/select/src/select-content.directive.d.ts +0 -20
  380. package/select/src/select-group.directive.d.ts +0 -5
  381. package/select/src/select-icon.directive.d.ts +0 -5
  382. package/select/src/select-item-indicator.directive.d.ts +0 -7
  383. package/select/src/select-item.directive.d.ts +0 -53
  384. package/select/src/select-label.directive.d.ts +0 -5
  385. package/select/src/select-separator.directive.d.ts +0 -5
  386. package/select/src/select-trigger.directive.d.ts +0 -17
  387. package/select/src/select-value.directive.d.ts +0 -8
  388. package/select/src/select.component.d.ts +0 -98
  389. package/separator/src/separator.directive.d.ts +0 -60
  390. package/slider/src/slider-horizontal.component.d.ts +0 -28
  391. package/slider/src/slider-impl.directive.d.ts +0 -17
  392. package/slider/src/slider-orientation-context.service.d.ts +0 -14
  393. package/slider/src/slider-range.component.d.ts +0 -13
  394. package/slider/src/slider-root.component.d.ts +0 -123
  395. package/slider/src/slider-thumb-impl.directive.d.ts +0 -27
  396. package/slider/src/slider-thumb.component.d.ts +0 -6
  397. package/slider/src/slider-track.component.d.ts +0 -7
  398. package/slider/src/slider-vertical.component.d.ts +0 -28
  399. package/slider/src/utils.d.ts +0 -52
  400. package/stepper/src/stepper-description.directive.d.ts +0 -6
  401. package/stepper/src/stepper-indicator.directive.d.ts +0 -6
  402. package/stepper/src/stepper-item-context.token.d.ts +0 -13
  403. package/stepper/src/stepper-item.directive.d.ts +0 -21
  404. package/stepper/src/stepper-root-context.token.d.ts +0 -12
  405. package/stepper/src/stepper-root.directive.d.ts +0 -33
  406. package/stepper/src/stepper-separator.directive.d.ts +0 -10
  407. package/stepper/src/stepper-title.directive.d.ts +0 -6
  408. package/stepper/src/stepper-trigger.directive.d.ts +0 -14
  409. package/stepper/src/types.d.ts +0 -1
  410. package/switch/src/switch-input.directive.d.ts +0 -11
  411. package/switch/src/switch-root.directive.d.ts +0 -74
  412. package/switch/src/switch-thumb.directive.d.ts +0 -9
  413. package/tabs/src/tabs-content.directive.d.ts +0 -13
  414. package/tabs/src/tabs-list.directive.d.ts +0 -10
  415. package/tabs/src/tabs-root.directive.d.ts +0 -53
  416. package/tabs/src/tabs-trigger.directive.d.ts +0 -29
  417. package/tabs/src/utils.d.ts +0 -2
  418. package/time-field/src/time-field-context.token.d.ts +0 -20
  419. package/time-field/src/time-field-input.directive.d.ts +0 -53
  420. package/time-field/src/time-field-root.directive.d.ts +0 -130
  421. package/toggle/src/toggle-visually-hidden-input.directive.d.ts +0 -6
  422. package/toggle/src/toggle.directive.d.ts +0 -65
  423. package/toggle-group/src/toggle-group-item.directive.d.ts +0 -37
  424. package/toggle-group/src/toggle-group-item.token.d.ts +0 -4
  425. package/toggle-group/src/toggle-group-without-focus.directive.d.ts +0 -69
  426. package/toggle-group/src/toggle-group.directive.d.ts +0 -74
  427. package/toggle-group/src/toggle-group.token.d.ts +0 -10
  428. package/toolbar/src/toolbar-button.directive.d.ts +0 -11
  429. package/toolbar/src/toolbar-link.directive.d.ts +0 -7
  430. package/toolbar/src/toolbar-root.directive.d.ts +0 -8
  431. package/toolbar/src/toolbar-root.token.d.ts +0 -5
  432. package/toolbar/src/toolbar-separator.directive.d.ts +0 -6
  433. package/toolbar/src/toolbar-toggle-group.directive.d.ts +0 -6
  434. package/toolbar/src/toolbar-toggle-item.directive.d.ts +0 -6
  435. package/tooltip/src/tooltip-anchor.directive.d.ts +0 -28
  436. package/tooltip/src/tooltip-anchor.token.d.ts +0 -3
  437. package/tooltip/src/tooltip-arrow.directive.d.ts +0 -40
  438. package/tooltip/src/tooltip-arrow.token.d.ts +0 -3
  439. package/tooltip/src/tooltip-close.directive.d.ts +0 -18
  440. package/tooltip/src/tooltip-close.token.d.ts +0 -3
  441. package/tooltip/src/tooltip-content-attributes.component.d.ts +0 -25
  442. package/tooltip/src/tooltip-content-attributes.token.d.ts +0 -3
  443. package/tooltip/src/tooltip-content.directive.d.ts +0 -104
  444. package/tooltip/src/tooltip-root.directive.d.ts +0 -168
  445. package/tooltip/src/tooltip-root.inject.d.ts +0 -3
  446. package/tooltip/src/tooltip-trigger.directive.d.ts +0 -26
  447. package/tooltip/src/tooltip.types.d.ts +0 -18
  448. package/tooltip/src/utils/cdk-event.service.d.ts +0 -30
  449. package/tooltip/src/utils/constants.d.ts +0 -1
  450. package/tooltip/src/utils/types.d.ts +0 -7
  451. package/visually-hidden/src/visually-hidden-input-bubble.directive.d.ts +0 -23
  452. package/visually-hidden/src/visually-hidden-input.directive.d.ts +0 -19
  453. package/visually-hidden/src/visually-hidden.directive.d.ts +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-tooltip.mjs","sources":["../../../packages/primitives/tooltip/src/tooltip-anchor.token.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.token.ts","../../../packages/primitives/tooltip/src/tooltip-close.token.ts","../../../packages/primitives/tooltip/src/tooltip-content-attributes.token.ts","../../../packages/primitives/tooltip/src/tooltip.types.ts","../../../packages/primitives/tooltip/src/tooltip-content.directive.ts","../../../packages/primitives/tooltip/src/tooltip-trigger.directive.ts","../../../packages/primitives/tooltip/src/utils/constants.ts","../../../packages/primitives/tooltip/src/utils/cdk-event.service.ts","../../../packages/primitives/tooltip/src/tooltip-root.directive.ts","../../../packages/primitives/tooltip/src/tooltip-root.inject.ts","../../../packages/primitives/tooltip/src/tooltip-anchor.directive.ts","../../../packages/primitives/tooltip/src/tooltip-arrow.directive.ts","../../../packages/primitives/tooltip/src/tooltip-close.directive.ts","../../../packages/primitives/tooltip/src/tooltip-content-attributes.component.ts","../../../packages/primitives/tooltip/index.ts","../../../packages/primitives/tooltip/radix-ng-primitives-tooltip.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxTooltipAnchorDirective } from './tooltip-anchor.directive';\n\nexport const RdxTooltipAnchorToken = new InjectionToken<RdxTooltipAnchorDirective>('RdxTooltipAnchorToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipArrowDirective } from './tooltip-arrow.directive';\n\nexport const RdxTooltipArrowToken = new InjectionToken<RdxTooltipArrowDirective>('RdxTooltipArrowToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipCloseDirective } from './tooltip-close.directive';\n\nexport const RdxTooltipCloseToken = new InjectionToken<RdxTooltipCloseDirective>('RdxTooltipCloseToken');\n","import { InjectionToken } from '@angular/core';\nimport { RdxTooltipContentAttributesComponent } from './tooltip-content-attributes.component';\n\nexport const RdxTooltipContentAttributesToken = new InjectionToken<RdxTooltipContentAttributesComponent>(\n 'RdxTooltipContentAttributesToken'\n);\n","export enum RdxTooltipState {\n OPEN = 'open',\n CLOSED = 'closed'\n}\n\nexport enum RdxTooltipAction {\n OPEN = 'open',\n CLOSE = 'close'\n}\n\nexport enum RdxTooltipAttachDetachEvent {\n ATTACH = 'attach',\n DETACH = 'detach'\n}\n\nexport enum RdxTooltipAnimationStatus {\n OPEN_STARTED = 'open_started',\n OPEN_ENDED = 'open_ended',\n CLOSED_STARTED = 'closed_started',\n CLOSED_ENDED = 'closed_ended'\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n OnInit,\n output,\n SimpleChange,\n TemplateRef,\n untracked\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n getAllPossibleConnectedPositions,\n getContentPosition,\n RDX_POSITIONING_DEFAULTS,\n RdxPositionAlign,\n RdxPositionSide,\n RdxPositionSideAndAlignOffsets\n} from '@radix-ng/primitives/core';\nimport { filter, tap } from 'rxjs';\nimport { injectTooltipRoot } from './tooltip-root.inject';\nimport { RdxTooltipAttachDetachEvent } from './tooltip.types';\n\n@Directive({\n selector: '[rdxTooltipContent]',\n hostDirectives: [CdkConnectedOverlay]\n})\nexport class RdxTooltipContentDirective implements OnInit {\n /** @ignore */\n private readonly rootDirective = injectTooltipRoot();\n /** @ignore */\n private readonly templateRef = inject(TemplateRef);\n /** @ignore */\n private readonly overlay = inject(Overlay);\n /** @ignore */\n private readonly destroyRef = inject(DestroyRef);\n /** @ignore */\n private readonly connectedOverlay = inject(CdkConnectedOverlay);\n\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-trigger-${this.rootDirective.uniqueId()}`);\n\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 readonly side = input<RdxPositionSide>(RdxPositionSide.Top);\n /**\n * @description The distance in pixels from the trigger.\n * @default undefined\n */\n readonly sideOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n /**\n * @description The preferred alignment against the trigger. May change when collisions occur.\n * @default center\n */\n readonly align = input<RdxPositionAlign>(RdxPositionAlign.Center);\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default undefined\n */\n readonly alignOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n\n /**\n * @description Whether to add some alternate positions of the content.\n * @default false\n */\n readonly alternatePositionsDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @description Whether to prevent `onOverlayEscapeKeyDown` handler from calling. */\n readonly onOverlayEscapeKeyDownDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /** @description Whether to prevent `onOverlayOutsideClick` handler from calling. */\n readonly onOverlayOutsideClickDisabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\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 readonly onOverlayEscapeKeyDown = output<KeyboardEvent>();\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 readonly onOverlayOutsideClick = output<MouseEvent>();\n\n /**\n * @description Event handler called after the overlay is open\n */\n readonly onOpen = output<void>();\n /**\n * @description Event handler called after the overlay is closed\n */\n readonly onClosed = output<void>();\n\n /** @ingore */\n readonly positions = computed(() => this.computePositions());\n\n constructor() {\n this.onOriginChangeEffect();\n this.onPositionChangeEffect();\n }\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\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\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\n /** @ignore */\n positionChange() {\n return this.connectedOverlay.positionChange.asObservable();\n }\n\n /** @ignore */\n private connectKeydownEscape() {\n this.connectedOverlay.overlayKeydown\n .asObservable()\n .pipe(\n filter(\n () =>\n !this.onOverlayEscapeKeyDownDisabled() &&\n !this.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.rootDirective,\n 'cdkOverlayEscapeKeyDown'\n )\n ),\n filter((event) => event.key === 'Escape'),\n tap((event) => {\n this.onOverlayEscapeKeyDown.emit(event);\n }),\n filter(() => !this.rootDirective.firstDefaultOpen()),\n tap(() => {\n this.rootDirective.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private connectOutsideClick() {\n this.connectedOverlay.overlayOutsideClick\n .asObservable()\n .pipe(\n filter(\n () =>\n !this.onOverlayOutsideClickDisabled() &&\n !this.rootDirective.rdxCdkEventService?.primitivePreventedFromCdkEvent(\n this.rootDirective,\n 'cdkOverlayOutsideClick'\n )\n ),\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 (\n !this.rootDirective.anchorDirective() ||\n !this.rootDirective\n .triggerDirective()\n .elementRef.nativeElement.contains(event.target as Element)\n );\n }),\n tap((event) => {\n this.onOverlayOutsideClick.emit(event);\n }),\n filter(() => !this.rootDirective.firstDefaultOpen()),\n tap(() => {\n this.rootDirective.handleClose();\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onAttach() {\n this.connectedOverlay.attach\n .asObservable()\n .pipe(\n 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 }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private onDetach() {\n this.connectedOverlay.detach\n .asObservable()\n .pipe(\n 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 }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe();\n }\n\n /** @ignore */\n private 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\n /** @ignore */\n private setHasBackdrop() {\n const prevHasBackdrop = this.connectedOverlay.hasBackdrop;\n this.connectedOverlay.hasBackdrop = false;\n this.fireOverlayNgOnChanges('hasBackdrop', this.connectedOverlay.hasBackdrop, prevHasBackdrop);\n }\n\n /** @ignore */\n private setDisableClose() {\n const prevDisableClose = this.connectedOverlay.disableClose;\n this.connectedOverlay.disableClose = true;\n this.fireOverlayNgOnChanges('disableClose', this.connectedOverlay.disableClose, prevDisableClose);\n }\n\n /** @ignore */\n private setOrigin(origin: CdkConnectedOverlay['origin']) {\n const prevOrigin = this.connectedOverlay.origin;\n this.connectedOverlay.origin = origin;\n this.fireOverlayNgOnChanges('origin', this.connectedOverlay.origin, prevOrigin);\n }\n\n /** @ignore */\n private setPositions(positions: CdkConnectedOverlay['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\n /** @ignore */\n private computePositions() {\n const arrowHeight = this.rootDirective.arrowDirective()?.height() ?? 0;\n const offsets: RdxPositionSideAndAlignOffsets = {\n sideOffset:\n 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 (\n (sideAndAlignArray[0] as RdxPositionSide) !== this.side() ||\n (sideAndAlignArray[1] as RdxPositionAlign) !== this.align()\n ) {\n positions.push(\n getContentPosition({\n side: sideAndAlignArray[0] as RdxPositionSide,\n align: sideAndAlignArray[1] as RdxPositionAlign,\n sideOffset: offsets.sideOffset,\n alignOffset: offsets.alignOffset\n })\n );\n }\n });\n }\n return positions;\n }\n\n private onOriginChangeEffect() {\n effect(() => {\n const origin = (this.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective())\n .overlayOrigin;\n untracked(() => {\n this.setOrigin(origin);\n });\n });\n }\n\n /** @ignore */\n private onPositionChangeEffect() {\n effect(() => {\n const positions = this.positions();\n this.alternatePositionsDisabled();\n untracked(() => {\n this.setPositions(positions);\n });\n });\n }\n\n /** @ignore */\n private fireOverlayNgOnChanges<K extends keyof CdkConnectedOverlay, V extends CdkConnectedOverlay[K]>(\n input: K,\n currentValue: V,\n previousValue: V,\n firstChange = false\n ) {\n this.connectedOverlay.ngOnChanges({\n [input]: new SimpleChange(previousValue, currentValue, firstChange)\n });\n }\n}\n","import { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { computed, Directive, ElementRef, inject } from '@angular/core';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n@Directive({\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})\nexport class RdxTooltipTriggerDirective {\n /** @ignore */\n protected readonly rootDirective = injectTooltipRoot();\n /** @ignore */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-trigger-${this.rootDirective.uniqueId()}`);\n\n /** @ignore */\n pointerenter(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n pointerleave(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n focus(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n blur(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n click(): void {\n this.rootDirective.handleClose();\n }\n}\n","export const RdxCdkEventServiceWindowKey = Symbol('__RdxCdkEventService__');\n","import {\n DestroyRef,\n EnvironmentProviders,\n inject,\n Injectable,\n InjectionToken,\n isDevMode,\n makeEnvironmentProviders,\n NgZone,\n Provider,\n Renderer2,\n VERSION\n} from '@angular/core';\nimport { injectDocument, injectWindow } from '@radix-ng/primitives/core';\nimport { RdxCdkEventServiceWindowKey } from './constants';\nimport { EventType, EventTypeAsPrimitiveConfigKey, PrimitiveConfig, PrimitiveConfigs } from './types';\n\nfunction eventTypeAsPrimitiveConfigKey(eventType: EventType): EventTypeAsPrimitiveConfigKey {\n return `prevent${eventType[0].toUpperCase()}${eventType.slice(1)}` as EventTypeAsPrimitiveConfigKey;\n}\n\n@Injectable()\nclass RdxCdkEventService {\n document = injectDocument();\n destroyRef = inject(DestroyRef);\n ngZone = inject(NgZone);\n renderer2 = inject(Renderer2);\n window = injectWindow();\n\n primitiveConfigs?: PrimitiveConfigs;\n\n onDestroyCallbacks: Set<() => void> = new Set([() => deleteRdxCdkEventServiceWindowKey(this.window)]);\n\n #clickDomRootEventCallbacks: Set<(event: MouseEvent) => void> = new Set();\n\n constructor() {\n this.#listenToClickDomRootEvent();\n this.#registerOnDestroyCallbacks();\n }\n\n registerPrimitive<T extends object>(primitiveInstance: T) {\n if (!this.primitiveConfigs) {\n this.primitiveConfigs = new Map();\n }\n if (!this.primitiveConfigs.has(primitiveInstance)) {\n this.primitiveConfigs.set(primitiveInstance, {});\n }\n }\n\n deregisterPrimitive<T extends object>(primitiveInstance: T) {\n if (this.primitiveConfigs?.has(primitiveInstance)) {\n this.primitiveConfigs.delete(primitiveInstance);\n }\n }\n\n preventPrimitiveFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n }\n\n allowPrimitiveForCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n }\n\n preventPrimitiveFromCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, true);\n });\n }\n\n allowPrimitiveForCdkMultiEvents<T extends object>(primitiveInstance: T, eventTypes: EventType[]) {\n eventTypes.forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(primitiveInstance, eventType, false);\n });\n }\n\n setPreventPrimitiveFromCdkMixEvents<T extends object>(primitiveInstance: T, eventTypes: PrimitiveConfig) {\n Object.keys(eventTypes).forEach((eventType) => {\n this.#setPreventPrimitiveFromCdkEvent(\n primitiveInstance,\n eventType as EventType,\n eventTypes[eventTypeAsPrimitiveConfigKey(eventType as EventType)]\n );\n });\n }\n\n primitivePreventedFromCdkEvent<T extends object>(primitiveInstance: T, eventType: EventType) {\n return this.primitiveConfigs?.get(primitiveInstance)?.[eventTypeAsPrimitiveConfigKey(eventType)];\n }\n\n addClickDomRootEventCallback(callback: (event: MouseEvent) => void) {\n this.#clickDomRootEventCallbacks.add(callback);\n }\n\n removeClickDomRootEventCallback(callback: (event: MouseEvent) => void) {\n return this.#clickDomRootEventCallbacks.delete(callback);\n }\n\n #setPreventPrimitiveFromCdkEvent<\n T extends object,\n R extends EventType,\n K extends PrimitiveConfig[EventTypeAsPrimitiveConfigKey<R>]\n >(primitiveInstance: T, eventType: R, value: K) {\n if (!this.primitiveConfigs?.has(primitiveInstance)) {\n isDevMode() &&\n console.error(\n '[RdxCdkEventService.preventPrimitiveFromCdkEvent] RDX Primitive instance has not been registered!',\n primitiveInstance\n );\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\n #registerOnDestroyCallbacks() {\n this.destroyRef.onDestroy(() => {\n this.onDestroyCallbacks.forEach((onDestroyCallback) => onDestroyCallback());\n this.onDestroyCallbacks.clear();\n });\n }\n\n #listenToClickDomRootEvent() {\n const target = this.document;\n const eventName = 'click';\n const options: boolean | AddEventListenerOptions | undefined = { capture: true };\n const callback = (event: MouseEvent) => {\n this.#clickDomRootEventCallbacks.forEach((clickDomRootEventCallback) => clickDomRootEventCallback(event));\n };\n\n const major = parseInt(VERSION.major);\n const minor = parseInt(VERSION.minor);\n\n let destroyClickDomRootEventListener!: () => void;\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(\n target,\n eventName,\n callback,\n\n options\n );\n return () => {\n destroyClickDomRootEventListenerInternal();\n this.#clickDomRootEventCallbacks.clear();\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}\n\nconst RdxCdkEventServiceToken = new InjectionToken<RdxCdkEventService>('RdxCdkEventServiceToken');\n\nconst existsErrorMessage = 'RdxCdkEventService should be provided only once!';\n\nconst deleteRdxCdkEventServiceWindowKey = (window: Window & typeof globalThis) => {\n delete (window as any)[RdxCdkEventServiceWindowKey];\n};\n\nconst getProvider: (throwWhenExists?: boolean) => Provider = (throwWhenExists = true) => ({\n provide: RdxCdkEventServiceToken,\n useFactory: () => {\n isDevMode() && console.log('providing RdxCdkEventService...');\n const window = injectWindow();\n if ((window as any)[RdxCdkEventServiceWindowKey]) {\n if (throwWhenExists) {\n throw Error(existsErrorMessage);\n } else {\n isDevMode() && console.warn(existsErrorMessage);\n }\n }\n (window as any)[RdxCdkEventServiceWindowKey] ??= new RdxCdkEventService();\n return (window as any)[RdxCdkEventServiceWindowKey];\n }\n});\n\nexport const provideRdxCdkEventServiceInRoot: () => EnvironmentProviders = () =>\n makeEnvironmentProviders([getProvider()]);\nexport const provideRdxCdkEventService: () => Provider = () => getProvider(false);\n\nexport const injectRdxCdkEventService = () => inject(RdxCdkEventServiceToken, { optional: true });\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n signal,\n untracked,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounce, map, Subject, tap, timer } from 'rxjs';\nimport { RdxTooltipAnchorDirective } from './tooltip-anchor.directive';\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 {\n RdxTooltipAction,\n RdxTooltipAnimationStatus,\n RdxTooltipAttachDetachEvent,\n RdxTooltipState\n} from './tooltip.types';\nimport { injectRdxCdkEventService } from './utils/cdk-event.service';\n\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxTooltipRoot]',\n exportAs: 'rdxTooltipRoot'\n})\nexport class RdxTooltipRootDirective {\n /** @ignore */\n readonly uniqueId = signal(++nextId);\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-root-${this.uniqueId()}`);\n\n /**\n * @description The anchor directive that comes form outside the tooltip rootDirective\n * @default undefined\n */\n readonly anchor = input<RdxTooltipAnchorDirective | undefined>(void 0);\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 readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n /**\n * @description The controlled state of the tooltip. `open` input take precedence of `defaultOpen` input.\n * @default undefined\n */\n readonly open = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\n /**\n * To customise the open delay for a specific tooltip.\n */\n readonly openDelay = input<number, NumberInput>(500, {\n transform: numberAttribute\n });\n /**\n * To customise the close delay for a specific tooltip.\n */\n readonly closeDelay = input<number, NumberInput>(200, {\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 readonly externalControl = input<boolean | undefined, BooleanInput>(void 0, { transform: booleanAttribute });\n /**\n * @description Whether to take into account CSS opening/closing animations.\n * @default false\n */\n readonly cssAnimation = input<boolean, BooleanInput>(false, { 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 readonly cssOpeningAnimation = input<boolean, BooleanInput>(false, { 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 readonly cssClosingAnimation = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** @ignore */\n readonly cssAnimationStatus = signal<RdxTooltipAnimationStatus | null>(null);\n\n /** @ignore */\n readonly contentDirective = contentChild.required(RdxTooltipContentDirective);\n /** @ignore */\n readonly triggerDirective = contentChild.required(RdxTooltipTriggerDirective);\n /** @ignore */\n readonly arrowDirective = contentChild(RdxTooltipArrowToken);\n /** @ignore */\n readonly closeDirective = contentChild(RdxTooltipCloseToken);\n /** @ignore */\n readonly contentAttributesComponent = contentChild(RdxTooltipContentAttributesToken);\n /** @ignore */\n private readonly internalAnchorDirective = contentChild(RdxTooltipAnchorToken);\n\n /** @ignore */\n readonly viewContainerRef = inject(ViewContainerRef);\n /** @ignore */\n readonly rdxCdkEventService = injectRdxCdkEventService();\n /** @ignore */\n readonly destroyRef = inject(DestroyRef);\n\n /** @ignore */\n readonly state = signal(RdxTooltipState.CLOSED);\n\n /** @ignore */\n readonly attachDetachEvent = signal(RdxTooltipAttachDetachEvent.DETACH);\n\n /** @ignore */\n private readonly isFirstDefaultOpen = signal(false);\n\n /** @ignore */\n readonly anchorDirective = computed(() => this.internalAnchorDirective() ?? this.anchor());\n\n /** @ignore */\n readonly actionSubject$ = new Subject<RdxTooltipAction>();\n\n constructor() {\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\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\n /** @ignore */\n controlledExternally() {\n return this.externalControl;\n }\n\n /** @ignore */\n firstDefaultOpen() {\n return this.isFirstDefaultOpen();\n }\n\n /** @ignore */\n handleOpen(): void {\n if (this.externalControl()) {\n return;\n }\n this.actionSubject$.next(RdxTooltipAction.OPEN);\n }\n\n /** @ignore */\n handleClose(closeButton?: boolean): void {\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\n /** @ignore */\n handleToggle(): void {\n if (this.externalControl()) {\n return;\n }\n this.isOpen() ? this.handleClose() : this.handleOpen();\n }\n\n /** @ignore */\n isOpen(state?: RdxTooltipState) {\n return (state ?? this.state()) === RdxTooltipState.OPEN;\n }\n\n /** @ignore */\n private setState(state = RdxTooltipState.CLOSED): void {\n if (state === this.state()) {\n return;\n }\n this.state.set(state);\n }\n\n /** @ignore */\n private openContent(): void {\n this.contentDirective().open();\n if (!this.cssAnimation() || !this.cssOpeningAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private closeContent(): void {\n this.contentDirective().close();\n if (!this.cssAnimation() || !this.cssClosingAnimation()) {\n this.cssAnimationStatus.set(null);\n }\n }\n\n /** @ignore */\n private emitOnOpen(): void {\n this.contentDirective().onOpen.emit();\n }\n\n /** @ignore */\n private emitOnClosed(): void {\n this.contentDirective().onClosed.emit();\n }\n\n /** @ignore */\n private ifOpenOrCloseWithoutAnimations(state: RdxTooltipState) {\n return (\n !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 }\n\n /** @ignore */\n private ifOpenOrCloseWithAnimations(cssAnimationStatus: RdxTooltipAnimationStatus | null) {\n return (\n 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 }\n\n /** @ignore */\n private openOrClose(state: RdxTooltipState) {\n const isOpen = this.isOpen(state);\n isOpen ? this.openContent() : this.closeContent();\n }\n\n /** @ignore */\n private emitOnOpenOrOnClosed(state: RdxTooltipState) {\n this.isOpen(state)\n ? this.attachDetachEvent() === RdxTooltipAttachDetachEvent.ATTACH && this.emitOnOpen()\n : this.attachDetachEvent() === RdxTooltipAttachDetachEvent.DETACH && this.emitOnClosed();\n }\n\n /** @ignore */\n private canEmitOnOpenOrOnClosed() {\n return (\n !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 }\n\n /** @ignore */\n private 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\n /** @ignore */\n private 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\n /** @ignore */\n private 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\n /** @ignore */\n private onOpenChangeEffect() {\n effect(() => {\n const open = this.open();\n untracked(() => {\n this.setState(open ? RdxTooltipState.OPEN : RdxTooltipState.CLOSED);\n });\n });\n }\n\n /** @ignore */\n private 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 });\n }\n\n /** @ignore */\n private onAnchorChangeEffect = () => {\n effect(() => {\n const anchor = this.anchor();\n untracked(() => {\n if (anchor) {\n anchor.setRoot(this);\n }\n });\n });\n };\n\n /** @ignore */\n private actionSubscription() {\n this.actionSubject$\n .asObservable()\n .pipe(\n 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 }),\n debounce((config) => timer(config.duration)),\n 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 }),\n takeUntilDestroyed()\n )\n .subscribe();\n }\n}\n","import { assertInInjectionContext, inject, isDevMode } from '@angular/core';\nimport { RdxTooltipRootDirective } from './tooltip-root.directive';\n\nexport function injectTooltipRoot(optional?: false): RdxTooltipRootDirective;\nexport function injectTooltipRoot(optional: true): RdxTooltipRootDirective | null;\nexport function injectTooltipRoot(optional = false): RdxTooltipRootDirective | null {\n isDevMode() && assertInInjectionContext(injectTooltipRoot);\n return inject(RdxTooltipRootDirective, { optional });\n}\n","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 { RdxTooltipRootDirective } from './tooltip-root.directive';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n@Directive({\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})\nexport class RdxTooltipAnchorDirective {\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 protected rootDirective = injectTooltipRoot(true);\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n readonly overlayOrigin = inject(CdkOverlayOrigin);\n /** @ignore */\n readonly document = injectDocument();\n\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-external-anchor-${this.rootDirective?.uniqueId()}`);\n\n /** @ignore */\n click(): void {\n this.emitOutsideClick();\n }\n\n /** @ignore */\n setRoot(root: RdxTooltipRootDirective) {\n this.rootDirective = root;\n }\n\n private 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}\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\nimport {\n afterNextRender,\n computed,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n numberAttribute,\n Renderer2,\n signal,\n untracked\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n getArrowPositionParams,\n getSideAndAlignFromAllPossibleConnectedPositions,\n RDX_POSITIONING_DEFAULTS\n} from '@radix-ng/primitives/core';\nimport { RdxTooltipArrowToken } from './tooltip-arrow.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n@Directive({\n selector: '[rdxTooltipArrow]',\n providers: [\n {\n provide: RdxTooltipArrowToken,\n useExisting: forwardRef(() => RdxTooltipArrowDirective)\n }\n ]\n})\nexport class RdxTooltipArrowDirective {\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n /** @ignore */\n private readonly rootDirective = injectTooltipRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n\n /**\n * @description The width of the arrow in pixels.\n * @default 10\n */\n readonly width = input<number, NumberInput>(RDX_POSITIONING_DEFAULTS.arrow.width, { transform: numberAttribute });\n\n /**\n * @description The height of the arrow in pixels.\n * @default 5\n */\n readonly height = input<number, NumberInput>(RDX_POSITIONING_DEFAULTS.arrow.height, { transform: numberAttribute });\n\n /** @ignore */\n readonly arrowSvgElement = computed<HTMLElement>(() => {\n const width = this.width();\n const height = this.height();\n\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\n return svgElement;\n });\n\n /** @ignore */\n private readonly currentArrowSvgElement = signal<HTMLOrSVGElement | undefined>(void 0);\n /** @ignore */\n private readonly position = toSignal(this.rootDirective.contentDirective().positionChange());\n\n /** @ignore */\n private anchorOrTriggerRect: DOMRect;\n\n constructor() {\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\n /** @ignore */\n private setAnchorOrTriggerRect() {\n this.anchorOrTriggerRect = (\n this.rootDirective.anchorDirective() ?? this.rootDirective.triggerDirective()\n ).elementRef.nativeElement.getBoundingClientRect();\n }\n\n /** @ignore */\n private setPosition(position: ConnectedOverlayPositionChange, arrowDimensions: { width: number; height: number }) {\n this.setAnchorOrTriggerRect();\n const posParams = getArrowPositionParams(\n getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair),\n { width: arrowDimensions.width, height: arrowDimensions.height },\n { width: this.anchorOrTriggerRect.width, height: this.anchorOrTriggerRect.height }\n );\n\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\n /** @ignore */\n private 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\n /** @ignore */\n private 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}\n","import { Directive, effect, ElementRef, forwardRef, inject, Renderer2, untracked } from '@angular/core';\nimport { RdxTooltipCloseToken } from './tooltip-close.token';\nimport { injectTooltipRoot } from './tooltip-root.inject';\n\n/**\n * TODO: to be removed? But it seems to be useful when controlled from outside\n */\n@Directive({\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})\nexport class RdxTooltipCloseDirective {\n /** @ignore */\n protected readonly rootDirective = injectTooltipRoot();\n /** @ignore */\n readonly elementRef = inject(ElementRef);\n /** @ignore */\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n this.onIsControlledExternallyEffect();\n }\n\n /** @ignore */\n private onIsControlledExternallyEffect() {\n effect(() => {\n const isControlledExternally = this.rootDirective.controlledExternally()();\n\n untracked(() => {\n this.renderer.setStyle(\n this.elementRef.nativeElement,\n 'display',\n isControlledExternally ? null : 'none'\n );\n });\n });\n }\n}\n","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';\n\n@Component({\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})\nexport class RdxTooltipContentAttributesComponent {\n /** @ignore */\n protected readonly rootDirective = injectTooltipRoot();\n\n /** @ignore */\n readonly name = computed(() => `rdx-tooltip-content-attributes-${this.rootDirective.uniqueId()}`);\n\n /** @ignore */\n readonly disableAnimation = computed(() => !this.canAnimate());\n\n /** @ignore */\n protected onAnimationStart(_: AnimationEvent) {\n this.rootDirective.cssAnimationStatus.set(\n this.rootDirective.state() === RdxTooltipState.OPEN\n ? RdxTooltipAnimationStatus.OPEN_STARTED\n : RdxTooltipAnimationStatus.CLOSED_STARTED\n );\n }\n\n /** @ignore */\n protected onAnimationEnd(_: AnimationEvent) {\n this.rootDirective.cssAnimationStatus.set(\n this.rootDirective.state() === RdxTooltipState.OPEN\n ? RdxTooltipAnimationStatus.OPEN_ENDED\n : RdxTooltipAnimationStatus.CLOSED_ENDED\n );\n }\n\n /** @ignore */\n protected pointerenter(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected pointerleave(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n protected focus(): void {\n this.rootDirective.handleOpen();\n }\n\n /** @ignore */\n protected blur(): void {\n this.rootDirective.handleClose();\n }\n\n /** @ignore */\n private canAnimate() {\n return (\n this.rootDirective.cssAnimation() &&\n ((this.rootDirective.cssOpeningAnimation() && this.rootDirective.state() === RdxTooltipState.OPEN) ||\n (this.rootDirective.cssClosingAnimation() && this.rootDirective.state() === RdxTooltipState.CLOSED))\n );\n }\n}\n","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';\n\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';\n\nconst _imports = [\n RdxTooltipArrowDirective,\n RdxTooltipCloseDirective,\n RdxTooltipContentDirective,\n RdxTooltipTriggerDirective,\n RdxTooltipRootDirective,\n RdxTooltipAnchorDirective,\n RdxTooltipContentAttributesComponent\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hcnJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAtYXJyb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDSCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUNILHNCQUFzQixFQUN0QixnREFBZ0QsRUFDaEQsd0JBQXdCLEVBQzNCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBVzFELE1BQU0sT0FBTyx3QkFBd0I7SUE2Q2pDO1FBNUNBLGNBQWM7UUFDRyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLGNBQWM7UUFDRyxrQkFBYSxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDckQsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekM7OztXQUdHO1FBQ00sVUFBSyxHQUFHLEtBQUssQ0FBc0Isd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUsseUNBQUksU0FBUyxFQUFFLGVBQWUsT0FBNUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEdBQUMsQ0FBQztRQUVsSDs7O1dBR0c7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFzQix3QkFBd0IsQ0FBQyxLQUFLLENBQUMsTUFBTSwwQ0FBSSxTQUFTLEVBQUUsZUFBZSxPQUE1QixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO1FBRXBILGNBQWM7UUFDTCxvQkFBZSxHQUFHLFFBQVEsQ0FBYyxHQUFHLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDakUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRXRELE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUMsMkRBQUMsQ0FBQztRQUVILGNBQWM7UUFDRywyQkFBc0IsR0FBRyxNQUFNLENBQStCLEtBQUssQ0FBQyxrRUFBQyxDQUFDO1FBQ3ZGLGNBQWM7UUFDRyxhQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBTXpGLGVBQWUsQ0FBQztZQUNaLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDaEcsQ0FBQztnQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdFLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsK0NBQStDLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsY0FBYztJQUNOLHNCQUFzQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQ2hGLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO0lBQ04sV0FBVyxDQUFDLFFBQXdDLEVBQUUsZUFBa0Q7UUFDNUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQ3BDLGdEQUFnRCxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFDekUsRUFBRSxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUNoRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQ3JGLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsY0FBYztJQUNOLDZCQUE2QjtRQUNqQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1gsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDN0QsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO2dCQUNyRixDQUFDO2dCQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ04sK0NBQStDO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsTUFBTSxlQUFlLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUN2RSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDWixPQUFPO2dCQUNYLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBakhRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLCtUQVB0QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7YUFDMUQ7U0FDSjs7MkZBRVEsd0JBQXdCO2tCQVRwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzt5QkFDMUQ7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBjb21wdXRlZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIFJlbmRlcmVyMixcbiAgICBzaWduYWwsXG4gICAgdW50cmFja2VkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIGdldEFycm93UG9zaXRpb25QYXJhbXMsXG4gICAgZ2V0U2lkZUFuZEFsaWduRnJvbUFsbFBvc3NpYmxlQ29ubmVjdGVkUG9zaXRpb25zLFxuICAgIFJEWF9QT1NJVElPTklOR19ERUZBVUxUU1xufSBmcm9tICdAcmFkaXgtbmcvcHJpbWl0aXZlcy9jb3JlJztcbmltcG9ydCB7IFJkeFRvb2x0aXBBcnJvd1Rva2VuIH0gZnJvbSAnLi90b29sdGlwLWFycm93LnRva2VuJztcbmltcG9ydCB7IGluamVjdFRvb2x0aXBSb290IH0gZnJvbSAnLi90b29sdGlwLXJvb3QuaW5qZWN0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9vbHRpcEFycm93XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFJkeFRvb2x0aXBBcnJvd1Rva2VuLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmR4VG9vbHRpcEFycm93RGlyZWN0aXZlKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwQXJyb3dEaXJlY3RpdmUge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb290RGlyZWN0aXZlID0gaW5qZWN0VG9vbHRpcFJvb3QoKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHdpZHRoIG9mIHRoZSBhcnJvdyBpbiBwaXhlbHMuXG4gICAgICogQGRlZmF1bHQgMTBcbiAgICAgKi9cbiAgICByZWFkb25seSB3aWR0aCA9IGlucHV0PG51bWJlciwgTnVtYmVySW5wdXQ+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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"}