@ember-eui/core 10.0.2 → 10.0.4

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 (940) hide show
  1. package/declarations/-private/random-id.d.ts +9 -0
  2. package/declarations/-private/random-id.d.ts.map +1 -0
  3. package/declarations/components/common.d.ts +42 -0
  4. package/declarations/components/common.d.ts.map +1 -0
  5. package/declarations/components/eui-accordion.d.ts +101 -0
  6. package/declarations/components/eui-accordion.d.ts.map +1 -0
  7. package/declarations/components/eui-auto-sizer.d.ts +64 -0
  8. package/declarations/components/eui-auto-sizer.d.ts.map +1 -0
  9. package/declarations/components/eui-avatar.d.ts +22 -0
  10. package/declarations/components/eui-avatar.d.ts.map +1 -0
  11. package/declarations/components/eui-badge-group.d.ts +23 -0
  12. package/declarations/components/eui-badge-group.d.ts.map +1 -0
  13. package/declarations/components/eui-badge.d.ts +30 -0
  14. package/declarations/components/eui-badge.d.ts.map +1 -0
  15. package/declarations/components/eui-beta-badge.d.ts +63 -0
  16. package/declarations/components/eui-beta-badge.d.ts.map +1 -0
  17. package/declarations/components/eui-bottom-bar.d.ts +35 -0
  18. package/declarations/components/eui-bottom-bar.d.ts.map +1 -0
  19. package/declarations/components/eui-breadcrumbs.d.ts +70 -0
  20. package/declarations/components/eui-breadcrumbs.d.ts.map +1 -0
  21. package/declarations/components/eui-button-content.d.ts +21 -0
  22. package/declarations/components/eui-button-content.d.ts.map +1 -0
  23. package/declarations/components/eui-button-empty.d.ts +33 -0
  24. package/declarations/components/eui-button-empty.d.ts.map +1 -0
  25. package/declarations/components/eui-button-group-button.d.ts +29 -0
  26. package/declarations/components/eui-button-group-button.d.ts.map +1 -0
  27. package/declarations/components/eui-button-group.d.ts +41 -0
  28. package/declarations/components/eui-button-group.d.ts.map +1 -0
  29. package/declarations/components/eui-button-icon.d.ts +25 -0
  30. package/declarations/components/eui-button-icon.d.ts.map +1 -0
  31. package/declarations/components/eui-button.d.ts +34 -0
  32. package/declarations/components/eui-button.d.ts.map +1 -0
  33. package/declarations/components/eui-call-out.d.ts +21 -0
  34. package/declarations/components/eui-call-out.d.ts.map +1 -0
  35. package/declarations/components/eui-card-select.d.ts +29 -0
  36. package/declarations/components/eui-card-select.d.ts.map +1 -0
  37. package/declarations/components/eui-card.d.ts +68 -0
  38. package/declarations/components/eui-card.d.ts.map +1 -0
  39. package/declarations/components/eui-checkable-card.d.ts +21 -0
  40. package/declarations/components/eui-checkable-card.d.ts.map +1 -0
  41. package/declarations/components/eui-checkbox-group.d.ts +27 -0
  42. package/declarations/components/eui-checkbox-group.d.ts.map +1 -0
  43. package/declarations/components/eui-checkbox.d.ts +27 -0
  44. package/declarations/components/eui-checkbox.d.ts.map +1 -0
  45. package/declarations/components/eui-code-block/controls.d.ts +13 -0
  46. package/declarations/components/eui-code-block/controls.d.ts.map +1 -0
  47. package/declarations/components/eui-code-block/full-screen-display.d.ts +11 -0
  48. package/declarations/components/eui-code-block/full-screen-display.d.ts.map +1 -0
  49. package/declarations/components/eui-code-block/virtualized.d.ts +20 -0
  50. package/declarations/components/eui-code-block/virtualized.d.ts.map +1 -0
  51. package/declarations/components/eui-code-block.d.ts +92 -0
  52. package/declarations/components/eui-code-block.d.ts.map +1 -0
  53. package/declarations/components/eui-code.d.ts +21 -0
  54. package/declarations/components/eui-code.d.ts.map +1 -0
  55. package/declarations/components/eui-collapsible-nav-group.d.ts +26 -0
  56. package/declarations/components/eui-collapsible-nav-group.d.ts.map +1 -0
  57. package/declarations/components/eui-collapsible-nav.d.ts +66 -0
  58. package/declarations/components/eui-collapsible-nav.d.ts.map +1 -0
  59. package/declarations/components/eui-combo-box/create-option.d.ts +16 -0
  60. package/declarations/components/eui-combo-box/create-option.d.ts.map +1 -0
  61. package/declarations/components/eui-combo-box/group.d.ts +16 -0
  62. package/declarations/components/eui-combo-box/group.d.ts.map +1 -0
  63. package/declarations/components/eui-combo-box/no-matches-message.d.ts +11 -0
  64. package/declarations/components/eui-combo-box/no-matches-message.d.ts.map +1 -0
  65. package/declarations/components/eui-combo-box/options.d.ts +12 -0
  66. package/declarations/components/eui-combo-box/options.d.ts.map +1 -0
  67. package/declarations/components/eui-combo-box/search-message.d.ts +11 -0
  68. package/declarations/components/eui-combo-box/search-message.d.ts.map +1 -0
  69. package/declarations/components/eui-combo-box/trigger/input.d.ts +6 -0
  70. package/declarations/components/eui-combo-box/trigger/input.d.ts.map +1 -0
  71. package/declarations/components/eui-combo-box/trigger.d.ts +4 -0
  72. package/declarations/components/eui-combo-box/trigger.d.ts.map +1 -0
  73. package/declarations/components/eui-combo-box-pill.d.ts +22 -0
  74. package/declarations/components/eui-combo-box-pill.d.ts.map +1 -0
  75. package/declarations/components/eui-combo-box.d.ts +82 -0
  76. package/declarations/components/eui-combo-box.d.ts.map +1 -0
  77. package/declarations/components/eui-comment-list.d.ts +10 -0
  78. package/declarations/components/eui-comment-list.d.ts.map +1 -0
  79. package/declarations/components/eui-comment-timeline.d.ts +15 -0
  80. package/declarations/components/eui-comment-timeline.d.ts.map +1 -0
  81. package/declarations/components/eui-comment.d.ts +20 -0
  82. package/declarations/components/eui-comment.d.ts.map +1 -0
  83. package/declarations/components/eui-confirm-modal.d.ts +23 -0
  84. package/declarations/components/eui-confirm-modal.d.ts.map +1 -0
  85. package/declarations/components/eui-context-menu-item.d.ts +25 -0
  86. package/declarations/components/eui-context-menu-item.d.ts.map +1 -0
  87. package/declarations/components/eui-context-menu-panel.d.ts +10 -0
  88. package/declarations/components/eui-context-menu-panel.d.ts.map +1 -0
  89. package/declarations/components/eui-copy.d.ts +36 -0
  90. package/declarations/components/eui-copy.d.ts.map +1 -0
  91. package/declarations/components/eui-described-form-group.d.ts +27 -0
  92. package/declarations/components/eui-described-form-group.d.ts.map +1 -0
  93. package/declarations/components/eui-description-list-description.d.ts +10 -0
  94. package/declarations/components/eui-description-list-description.d.ts.map +1 -0
  95. package/declarations/components/eui-description-list-title.d.ts +10 -0
  96. package/declarations/components/eui-description-list-title.d.ts.map +1 -0
  97. package/declarations/components/eui-description-list.d.ts +27 -0
  98. package/declarations/components/eui-description-list.d.ts.map +1 -0
  99. package/declarations/components/eui-dual-range.d.ts +141 -0
  100. package/declarations/components/eui-dual-range.d.ts.map +1 -0
  101. package/declarations/components/eui-empty-prompt.d.ts +29 -0
  102. package/declarations/components/eui-empty-prompt.d.ts.map +1 -0
  103. package/declarations/components/eui-field-number.d.ts +57 -0
  104. package/declarations/components/eui-field-number.d.ts.map +1 -0
  105. package/declarations/components/eui-field-password.d.ts +28 -0
  106. package/declarations/components/eui-field-password.d.ts.map +1 -0
  107. package/declarations/components/eui-field-search.d.ts +52 -0
  108. package/declarations/components/eui-field-search.d.ts.map +1 -0
  109. package/declarations/components/eui-field-text.d.ts +29 -0
  110. package/declarations/components/eui-field-text.d.ts.map +1 -0
  111. package/declarations/components/eui-file-picker.d.ts +60 -0
  112. package/declarations/components/eui-file-picker.d.ts.map +1 -0
  113. package/declarations/components/eui-flex-grid.d.ts +33 -0
  114. package/declarations/components/eui-flex-grid.d.ts.map +1 -0
  115. package/declarations/components/eui-flex-group.d.ts +20 -0
  116. package/declarations/components/eui-flex-group.d.ts.map +1 -0
  117. package/declarations/components/eui-flex-item.d.ts +15 -0
  118. package/declarations/components/eui-flex-item.d.ts.map +1 -0
  119. package/declarations/components/eui-flyout-body.d.ts +12 -0
  120. package/declarations/components/eui-flyout-body.d.ts.map +1 -0
  121. package/declarations/components/eui-flyout-footer.d.ts +10 -0
  122. package/declarations/components/eui-flyout-footer.d.ts.map +1 -0
  123. package/declarations/components/eui-flyout-header.d.ts +13 -0
  124. package/declarations/components/eui-flyout-header.d.ts.map +1 -0
  125. package/declarations/components/eui-flyout.d.ts +87 -0
  126. package/declarations/components/eui-flyout.d.ts.map +1 -0
  127. package/declarations/components/eui-form-control-layout-clear-button.d.ts +14 -0
  128. package/declarations/components/eui-form-control-layout-clear-button.d.ts.map +1 -0
  129. package/declarations/components/eui-form-control-layout-custom-icon.d.ts +16 -0
  130. package/declarations/components/eui-form-control-layout-custom-icon.d.ts.map +1 -0
  131. package/declarations/components/eui-form-control-layout-delimited.d.ts +25 -0
  132. package/declarations/components/eui-form-control-layout-delimited.d.ts.map +1 -0
  133. package/declarations/components/eui-form-control-layout-icons.d.ts +17 -0
  134. package/declarations/components/eui-form-control-layout-icons.d.ts.map +1 -0
  135. package/declarations/components/eui-form-control-layout.d.ts +30 -0
  136. package/declarations/components/eui-form-control-layout.d.ts.map +1 -0
  137. package/declarations/components/eui-form-error-text.d.ts +10 -0
  138. package/declarations/components/eui-form-error-text.d.ts.map +1 -0
  139. package/declarations/components/eui-form-fieldset.d.ts +18 -0
  140. package/declarations/components/eui-form-fieldset.d.ts.map +1 -0
  141. package/declarations/components/eui-form-help-text.d.ts +13 -0
  142. package/declarations/components/eui-form-help-text.d.ts.map +1 -0
  143. package/declarations/components/eui-form-label.d.ts +17 -0
  144. package/declarations/components/eui-form-label.d.ts.map +1 -0
  145. package/declarations/components/eui-form-legend.d.ts +14 -0
  146. package/declarations/components/eui-form-legend.d.ts.map +1 -0
  147. package/declarations/components/eui-form-row.d.ts +35 -0
  148. package/declarations/components/eui-form-row.d.ts.map +1 -0
  149. package/declarations/components/eui-form.d.ts +20 -0
  150. package/declarations/components/eui-form.d.ts.map +1 -0
  151. package/declarations/components/eui-global-toast-list.d.ts +45 -0
  152. package/declarations/components/eui-global-toast-list.d.ts.map +1 -0
  153. package/declarations/components/eui-header-alert.d.ts +14 -0
  154. package/declarations/components/eui-header-alert.d.ts.map +1 -0
  155. package/declarations/components/eui-header-breadcrumbs.d.ts +14 -0
  156. package/declarations/components/eui-header-breadcrumbs.d.ts.map +1 -0
  157. package/declarations/components/eui-header-link.d.ts +14 -0
  158. package/declarations/components/eui-header-link.d.ts.map +1 -0
  159. package/declarations/components/eui-header-links.d.ts +20 -0
  160. package/declarations/components/eui-header-links.d.ts.map +1 -0
  161. package/declarations/components/eui-header-logo.d.ts +17 -0
  162. package/declarations/components/eui-header-logo.d.ts.map +1 -0
  163. package/declarations/components/eui-header-section-item-button.d.ts +26 -0
  164. package/declarations/components/eui-header-section-item-button.d.ts.map +1 -0
  165. package/declarations/components/eui-header-section-item.d.ts +14 -0
  166. package/declarations/components/eui-header-section-item.d.ts.map +1 -0
  167. package/declarations/components/eui-header-section.d.ts +15 -0
  168. package/declarations/components/eui-header-section.d.ts.map +1 -0
  169. package/declarations/components/eui-header.d.ts +23 -0
  170. package/declarations/components/eui-header.d.ts.map +1 -0
  171. package/declarations/components/eui-health.d.ts +21 -0
  172. package/declarations/components/eui-health.d.ts.map +1 -0
  173. package/declarations/components/eui-hide-for.d.ts +21 -0
  174. package/declarations/components/eui-hide-for.d.ts.map +1 -0
  175. package/declarations/components/eui-horizontal-rule.d.ts +12 -0
  176. package/declarations/components/eui-horizontal-rule.d.ts.map +1 -0
  177. package/declarations/components/eui-i18n/render.d.ts +12 -0
  178. package/declarations/components/eui-i18n/render.d.ts.map +1 -0
  179. package/declarations/components/eui-i18n.d.ts +32 -0
  180. package/declarations/components/eui-i18n.d.ts.map +1 -0
  181. package/declarations/components/eui-icon-tip.d.ts +29 -0
  182. package/declarations/components/eui-icon-tip.d.ts.map +1 -0
  183. package/declarations/components/eui-icon.d.ts +80 -0
  184. package/declarations/components/eui-icon.d.ts.map +1 -0
  185. package/declarations/components/eui-image.d.ts +62 -0
  186. package/declarations/components/eui-image.d.ts.map +1 -0
  187. package/declarations/components/eui-inner-text.d.ts +21 -0
  188. package/declarations/components/eui-inner-text.d.ts.map +1 -0
  189. package/declarations/components/eui-input-popover.d.ts +44 -0
  190. package/declarations/components/eui-input-popover.d.ts.map +1 -0
  191. package/declarations/components/eui-key-pad-menu-item.d.ts +26 -0
  192. package/declarations/components/eui-key-pad-menu-item.d.ts.map +1 -0
  193. package/declarations/components/eui-key-pad-menu.d.ts +23 -0
  194. package/declarations/components/eui-key-pad-menu.d.ts.map +1 -0
  195. package/declarations/components/eui-link.d.ts +18 -0
  196. package/declarations/components/eui-link.d.ts.map +1 -0
  197. package/declarations/components/eui-list-group-item.d.ts +26 -0
  198. package/declarations/components/eui-list-group-item.d.ts.map +1 -0
  199. package/declarations/components/eui-list-group.d.ts +16 -0
  200. package/declarations/components/eui-list-group.d.ts.map +1 -0
  201. package/declarations/components/eui-loading-content.d.ts +14 -0
  202. package/declarations/components/eui-loading-content.d.ts.map +1 -0
  203. package/declarations/components/eui-loading-logo.d.ts +13 -0
  204. package/declarations/components/eui-loading-logo.d.ts.map +1 -0
  205. package/declarations/components/eui-loading-spinner.d.ts +11 -0
  206. package/declarations/components/eui-loading-spinner.d.ts.map +1 -0
  207. package/declarations/components/eui-markdown-editor-drop-zone.d.ts +17 -0
  208. package/declarations/components/eui-markdown-editor-drop-zone.d.ts.map +1 -0
  209. package/declarations/components/eui-markdown-editor-footer/icons/markdown-logo.d.ts +10 -0
  210. package/declarations/components/eui-markdown-editor-footer/icons/markdown-logo.d.ts.map +1 -0
  211. package/declarations/components/eui-markdown-editor-footer.d.ts +13 -0
  212. package/declarations/components/eui-markdown-editor-footer.d.ts.map +1 -0
  213. package/declarations/components/eui-markdown-editor-text-area.d.ts +14 -0
  214. package/declarations/components/eui-markdown-editor-text-area.d.ts.map +1 -0
  215. package/declarations/components/eui-markdown-editor-toolbar/icons/markdown-checkmark.d.ts +11 -0
  216. package/declarations/components/eui-markdown-editor-toolbar/icons/markdown-checkmark.d.ts.map +1 -0
  217. package/declarations/components/eui-markdown-editor-toolbar.d.ts +55 -0
  218. package/declarations/components/eui-markdown-editor-toolbar.d.ts.map +1 -0
  219. package/declarations/components/eui-markdown-editor.d.ts +95 -0
  220. package/declarations/components/eui-markdown-editor.d.ts.map +1 -0
  221. package/declarations/components/eui-markdown-format/markdown-checkbox.d.ts +24 -0
  222. package/declarations/components/eui-markdown-format/markdown-checkbox.d.ts.map +1 -0
  223. package/declarations/components/eui-markdown-format/markdown-code-block.d.ts +15 -0
  224. package/declarations/components/eui-markdown-format/markdown-code-block.d.ts.map +1 -0
  225. package/declarations/components/eui-markdown-format/markdown-code.d.ts +13 -0
  226. package/declarations/components/eui-markdown-format/markdown-code.d.ts.map +1 -0
  227. package/declarations/components/eui-markdown-format/markdown-tooltip.d.ts +15 -0
  228. package/declarations/components/eui-markdown-format/markdown-tooltip.d.ts.map +1 -0
  229. package/declarations/components/eui-markdown-format.d.ts +23 -0
  230. package/declarations/components/eui-markdown-format.d.ts.map +1 -0
  231. package/declarations/components/eui-modal-body.d.ts +10 -0
  232. package/declarations/components/eui-modal-body.d.ts.map +1 -0
  233. package/declarations/components/eui-modal-footer.d.ts +10 -0
  234. package/declarations/components/eui-modal-footer.d.ts.map +1 -0
  235. package/declarations/components/eui-modal-header-title.d.ts +10 -0
  236. package/declarations/components/eui-modal-header-title.d.ts.map +1 -0
  237. package/declarations/components/eui-modal-header.d.ts +10 -0
  238. package/declarations/components/eui-modal-header.d.ts.map +1 -0
  239. package/declarations/components/eui-modal.d.ts +27 -0
  240. package/declarations/components/eui-modal.d.ts.map +1 -0
  241. package/declarations/components/eui-notification-badge.d.ts +15 -0
  242. package/declarations/components/eui-notification-badge.d.ts.map +1 -0
  243. package/declarations/components/eui-notification-event-messages.d.ts +13 -0
  244. package/declarations/components/eui-notification-event-messages.d.ts.map +1 -0
  245. package/declarations/components/eui-notification-event-meta.d.ts +24 -0
  246. package/declarations/components/eui-notification-event-meta.d.ts.map +1 -0
  247. package/declarations/components/eui-notification-event-read-button.d.ts +13 -0
  248. package/declarations/components/eui-notification-event-read-button.d.ts.map +1 -0
  249. package/declarations/components/eui-notification-event-read-icon.d.ts +14 -0
  250. package/declarations/components/eui-notification-event-read-icon.d.ts.map +1 -0
  251. package/declarations/components/eui-notification-event.d.ts +40 -0
  252. package/declarations/components/eui-notification-event.d.ts.map +1 -0
  253. package/declarations/components/eui-overlay-mask.d.ts +20 -0
  254. package/declarations/components/eui-overlay-mask.d.ts.map +1 -0
  255. package/declarations/components/eui-page-body.d.ts +22 -0
  256. package/declarations/components/eui-page-body.d.ts.map +1 -0
  257. package/declarations/components/eui-page-content-body.d.ts +18 -0
  258. package/declarations/components/eui-page-content-body.d.ts.map +1 -0
  259. package/declarations/components/eui-page-content-header-section.d.ts +10 -0
  260. package/declarations/components/eui-page-content-header-section.d.ts.map +1 -0
  261. package/declarations/components/eui-page-content-header.d.ts +13 -0
  262. package/declarations/components/eui-page-content-header.d.ts.map +1 -0
  263. package/declarations/components/eui-page-content.d.ts +22 -0
  264. package/declarations/components/eui-page-content.d.ts.map +1 -0
  265. package/declarations/components/eui-page-header-content.d.ts +98 -0
  266. package/declarations/components/eui-page-header-content.d.ts.map +1 -0
  267. package/declarations/components/eui-page-header-section.d.ts +10 -0
  268. package/declarations/components/eui-page-header-section.d.ts.map +1 -0
  269. package/declarations/components/eui-page-header.d.ts +89 -0
  270. package/declarations/components/eui-page-header.d.ts.map +1 -0
  271. package/declarations/components/eui-page-side-bar.d.ts +15 -0
  272. package/declarations/components/eui-page-side-bar.d.ts.map +1 -0
  273. package/declarations/components/eui-page-template.d.ts +77 -0
  274. package/declarations/components/eui-page-template.d.ts.map +1 -0
  275. package/declarations/components/eui-page.d.ts +17 -0
  276. package/declarations/components/eui-page.d.ts.map +1 -0
  277. package/declarations/components/eui-pagination/button-wrapper.d.ts +16 -0
  278. package/declarations/components/eui-pagination/button-wrapper.d.ts.map +1 -0
  279. package/declarations/components/eui-pagination/next-button.d.ts +19 -0
  280. package/declarations/components/eui-pagination/next-button.d.ts.map +1 -0
  281. package/declarations/components/eui-pagination/previous-button.d.ts +18 -0
  282. package/declarations/components/eui-pagination/previous-button.d.ts.map +1 -0
  283. package/declarations/components/eui-pagination-button.d.ts +20 -0
  284. package/declarations/components/eui-pagination-button.d.ts.map +1 -0
  285. package/declarations/components/eui-pagination.d.ts +79 -0
  286. package/declarations/components/eui-pagination.d.ts.map +1 -0
  287. package/declarations/components/eui-panel.d.ts +45 -0
  288. package/declarations/components/eui-panel.d.ts.map +1 -0
  289. package/declarations/components/eui-popover-footer.d.ts +14 -0
  290. package/declarations/components/eui-popover-footer.d.ts.map +1 -0
  291. package/declarations/components/eui-popover-title.d.ts +14 -0
  292. package/declarations/components/eui-popover-title.d.ts.map +1 -0
  293. package/declarations/components/eui-popover.d.ts +218 -0
  294. package/declarations/components/eui-popover.d.ts.map +1 -0
  295. package/declarations/components/eui-portal.d.ts +28 -0
  296. package/declarations/components/eui-portal.d.ts.map +1 -0
  297. package/declarations/components/eui-progress.d.ts +22 -0
  298. package/declarations/components/eui-progress.d.ts.map +1 -0
  299. package/declarations/components/eui-radio-group.d.ts +25 -0
  300. package/declarations/components/eui-radio-group.d.ts.map +1 -0
  301. package/declarations/components/eui-radio.d.ts +24 -0
  302. package/declarations/components/eui-radio.d.ts.map +1 -0
  303. package/declarations/components/eui-range-highlight.d.ts +16 -0
  304. package/declarations/components/eui-range-highlight.d.ts.map +1 -0
  305. package/declarations/components/eui-range-input.d.ts +25 -0
  306. package/declarations/components/eui-range-input.d.ts.map +1 -0
  307. package/declarations/components/eui-range-label.d.ts +13 -0
  308. package/declarations/components/eui-range-label.d.ts.map +1 -0
  309. package/declarations/components/eui-range-levels.d.ts +27 -0
  310. package/declarations/components/eui-range-levels.d.ts.map +1 -0
  311. package/declarations/components/eui-range-slider.d.ts +25 -0
  312. package/declarations/components/eui-range-slider.d.ts.map +1 -0
  313. package/declarations/components/eui-range-thumb.d.ts +15 -0
  314. package/declarations/components/eui-range-thumb.d.ts.map +1 -0
  315. package/declarations/components/eui-range-ticks.d.ts +29 -0
  316. package/declarations/components/eui-range-ticks.d.ts.map +1 -0
  317. package/declarations/components/eui-range-tooltip.d.ts +33 -0
  318. package/declarations/components/eui-range-tooltip.d.ts.map +1 -0
  319. package/declarations/components/eui-range-track.d.ts +43 -0
  320. package/declarations/components/eui-range-track.d.ts.map +1 -0
  321. package/declarations/components/eui-range-wrapper.d.ts +14 -0
  322. package/declarations/components/eui-range-wrapper.d.ts.map +1 -0
  323. package/declarations/components/eui-range.d.ts +112 -0
  324. package/declarations/components/eui-range.d.ts.map +1 -0
  325. package/declarations/components/eui-select.d.ts +31 -0
  326. package/declarations/components/eui-select.d.ts.map +1 -0
  327. package/declarations/components/eui-selectable-list-item.d.ts +15 -0
  328. package/declarations/components/eui-selectable-list-item.d.ts.map +1 -0
  329. package/declarations/components/eui-show-for.d.ts +30 -0
  330. package/declarations/components/eui-show-for.d.ts.map +1 -0
  331. package/declarations/components/eui-side-nav-item/button.d.ts +16 -0
  332. package/declarations/components/eui-side-nav-item/button.d.ts.map +1 -0
  333. package/declarations/components/eui-side-nav-item.d.ts +32 -0
  334. package/declarations/components/eui-side-nav-item.d.ts.map +1 -0
  335. package/declarations/components/eui-side-nav.d.ts +48 -0
  336. package/declarations/components/eui-side-nav.d.ts.map +1 -0
  337. package/declarations/components/eui-spacer.d.ts +11 -0
  338. package/declarations/components/eui-spacer.d.ts.map +1 -0
  339. package/declarations/components/eui-split-panel/inner.d.ts +18 -0
  340. package/declarations/components/eui-split-panel/inner.d.ts.map +1 -0
  341. package/declarations/components/eui-split-panel/outer.d.ts +22 -0
  342. package/declarations/components/eui-split-panel/outer.d.ts.map +1 -0
  343. package/declarations/components/eui-stat/description.d.ts +15 -0
  344. package/declarations/components/eui-stat/description.d.ts.map +1 -0
  345. package/declarations/components/eui-stat/title.d.ts +17 -0
  346. package/declarations/components/eui-stat/title.d.ts.map +1 -0
  347. package/declarations/components/eui-stat.d.ts +28 -0
  348. package/declarations/components/eui-stat.d.ts.map +1 -0
  349. package/declarations/components/eui-step-horizontal.d.ts +38 -0
  350. package/declarations/components/eui-step-horizontal.d.ts.map +1 -0
  351. package/declarations/components/eui-step-number.d.ts +31 -0
  352. package/declarations/components/eui-step-number.d.ts.map +1 -0
  353. package/declarations/components/eui-step.d.ts +18 -0
  354. package/declarations/components/eui-step.d.ts.map +1 -0
  355. package/declarations/components/eui-steps-horizontal.d.ts +10 -0
  356. package/declarations/components/eui-steps-horizontal.d.ts.map +1 -0
  357. package/declarations/components/eui-steps.d.ts +13 -0
  358. package/declarations/components/eui-steps.d.ts.map +1 -0
  359. package/declarations/components/eui-sub-steps.d.ts +10 -0
  360. package/declarations/components/eui-sub-steps.d.ts.map +1 -0
  361. package/declarations/components/eui-super-date-picker/date-popover/absolute-tab.d.ts +27 -0
  362. package/declarations/components/eui-super-date-picker/date-popover/absolute-tab.d.ts.map +1 -0
  363. package/declarations/components/eui-super-date-picker/date-popover/datetime-picker.d.ts +65 -0
  364. package/declarations/components/eui-super-date-picker/date-popover/datetime-picker.d.ts.map +1 -0
  365. package/declarations/components/eui-super-date-picker/date-popover/eui-date-popover-button.d.ts +45 -0
  366. package/declarations/components/eui-super-date-picker/date-popover/eui-date-popover-button.d.ts.map +1 -0
  367. package/declarations/components/eui-super-date-picker/date-popover/eui-date-popover-content.d.ts +49 -0
  368. package/declarations/components/eui-super-date-picker/date-popover/eui-date-popover-content.d.ts.map +1 -0
  369. package/declarations/components/eui-super-date-picker/date-popover/now-tab.d.ts +10 -0
  370. package/declarations/components/eui-super-date-picker/date-popover/now-tab.d.ts.map +1 -0
  371. package/declarations/components/eui-super-date-picker/date-popover/relative-tab.d.ts +31 -0
  372. package/declarations/components/eui-super-date-picker/date-popover/relative-tab.d.ts.map +1 -0
  373. package/declarations/components/eui-super-date-picker/eui-date-picker-range.d.ts +18 -0
  374. package/declarations/components/eui-super-date-picker/eui-date-picker-range.d.ts.map +1 -0
  375. package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.d.ts +14 -0
  376. package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.d.ts.map +1 -0
  377. package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.d.ts +37 -0
  378. package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.d.ts.map +1 -0
  379. package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.d.ts +14 -0
  380. package/declarations/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.d.ts.map +1 -0
  381. package/declarations/components/eui-super-date-picker/eui-quick-select-popover.d.ts +33 -0
  382. package/declarations/components/eui-super-date-picker/eui-quick-select-popover.d.ts.map +1 -0
  383. package/declarations/components/eui-super-date-picker/eui-super-update-button.d.ts +20 -0
  384. package/declarations/components/eui-super-date-picker/eui-super-update-button.d.ts.map +1 -0
  385. package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts +15 -0
  386. package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts.map +1 -0
  387. package/declarations/components/eui-super-date-picker/utils/index.d.ts +31 -0
  388. package/declarations/components/eui-super-date-picker/utils/index.d.ts.map +1 -0
  389. package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts +25 -0
  390. package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts.map +1 -0
  391. package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts +14 -0
  392. package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts.map +1 -0
  393. package/declarations/components/eui-super-date-picker/utils/time-options.d.ts +20 -0
  394. package/declarations/components/eui-super-date-picker/utils/time-options.d.ts.map +1 -0
  395. package/declarations/components/eui-super-date-picker.d.ts +102 -0
  396. package/declarations/components/eui-super-date-picker.d.ts.map +1 -0
  397. package/declarations/components/eui-switch.d.ts +30 -0
  398. package/declarations/components/eui-switch.d.ts.map +1 -0
  399. package/declarations/components/eui-tab.d.ts +21 -0
  400. package/declarations/components/eui-tab.d.ts.map +1 -0
  401. package/declarations/components/eui-tabbed-content.d.ts +65 -0
  402. package/declarations/components/eui-tabbed-content.d.ts.map +1 -0
  403. package/declarations/components/eui-tabs.d.ts +18 -0
  404. package/declarations/components/eui-tabs.d.ts.map +1 -0
  405. package/declarations/components/eui-text-align.d.ts +13 -0
  406. package/declarations/components/eui-text-align.d.ts.map +1 -0
  407. package/declarations/components/eui-text-area.d.ts +22 -0
  408. package/declarations/components/eui-text-area.d.ts.map +1 -0
  409. package/declarations/components/eui-text-color.d.ts +14 -0
  410. package/declarations/components/eui-text-color.d.ts.map +1 -0
  411. package/declarations/components/eui-text.d.ts +19 -0
  412. package/declarations/components/eui-text.d.ts.map +1 -0
  413. package/declarations/components/eui-title.d.ts +17 -0
  414. package/declarations/components/eui-title.d.ts.map +1 -0
  415. package/declarations/components/eui-toast.d.ts +35 -0
  416. package/declarations/components/eui-toast.d.ts.map +1 -0
  417. package/declarations/components/eui-tool-tip-popover.d.ts +26 -0
  418. package/declarations/components/eui-tool-tip-popover.d.ts.map +1 -0
  419. package/declarations/components/eui-tool-tip.d.ts +108 -0
  420. package/declarations/components/eui-tool-tip.d.ts.map +1 -0
  421. package/declarations/components/text-block.d.ts +13 -0
  422. package/declarations/components/text-block.d.ts.map +1 -0
  423. package/declarations/components.d.ts +150 -0
  424. package/declarations/components.d.ts.map +1 -0
  425. package/declarations/helpers/arg-or-default.d.ts +21 -0
  426. package/declarations/helpers/arg-or-default.d.ts.map +1 -0
  427. package/declarations/helpers/cast-to.d.ts +14 -0
  428. package/declarations/helpers/cast-to.d.ts.map +1 -0
  429. package/declarations/helpers/class-names.d.ts +47 -0
  430. package/declarations/helpers/class-names.d.ts.map +1 -0
  431. package/declarations/helpers/eui-page-restrict-width.d.ts +30 -0
  432. package/declarations/helpers/eui-page-restrict-width.d.ts.map +1 -0
  433. package/declarations/helpers/eui-palette.d.ts +25 -0
  434. package/declarations/helpers/eui-palette.d.ts.map +1 -0
  435. package/declarations/helpers/get-eui-config.d.ts +14 -0
  436. package/declarations/helpers/get-eui-config.d.ts.map +1 -0
  437. package/declarations/helpers/get-range-tick.d.ts +21 -0
  438. package/declarations/helpers/get-range-tick.d.ts.map +1 -0
  439. package/declarations/helpers/hex-to-rgb.d.ts +10 -0
  440. package/declarations/helpers/hex-to-rgb.d.ts.map +1 -0
  441. package/declarations/helpers/inline-styles.d.ts +19 -0
  442. package/declarations/helpers/inline-styles.d.ts.map +1 -0
  443. package/declarations/helpers/is-color-dark.d.ts +10 -0
  444. package/declarations/helpers/is-color-dark.d.ts.map +1 -0
  445. package/declarations/helpers/is-item-open.d.ts +16 -0
  446. package/declarations/helpers/is-item-open.d.ts.map +1 -0
  447. package/declarations/helpers/is-valid-hex.d.ts +10 -0
  448. package/declarations/helpers/is-valid-hex.d.ts.map +1 -0
  449. package/declarations/helpers/is-within-number.d.ts +15 -0
  450. package/declarations/helpers/is-within-number.d.ts.map +1 -0
  451. package/declarations/helpers/merge.d.ts +9 -0
  452. package/declarations/helpers/merge.d.ts.map +1 -0
  453. package/declarations/helpers/nullish.d.ts +10 -0
  454. package/declarations/helpers/nullish.d.ts.map +1 -0
  455. package/declarations/helpers/starts-with.d.ts +10 -0
  456. package/declarations/helpers/starts-with.d.ts.map +1 -0
  457. package/declarations/helpers/to-initials.d.ts +11 -0
  458. package/declarations/helpers/to-initials.d.ts.map +1 -0
  459. package/declarations/helpers/type-of.d.ts +10 -0
  460. package/declarations/helpers/type-of.d.ts.map +1 -0
  461. package/declarations/helpers/use-state.d.ts +21 -0
  462. package/declarations/helpers/use-state.d.ts.map +1 -0
  463. package/declarations/helpers.d.ts +9 -0
  464. package/declarations/helpers.d.ts.map +1 -0
  465. package/declarations/i18n/util.d.ts +12 -0
  466. package/declarations/i18n/util.d.ts.map +1 -0
  467. package/declarations/modifiers/mutation-observer.d.ts +12 -0
  468. package/declarations/modifiers/mutation-observer.d.ts.map +1 -0
  469. package/declarations/modifiers/open-collapsible-nav.d.ts +9 -0
  470. package/declarations/modifiers/open-collapsible-nav.d.ts.map +1 -0
  471. package/declarations/modifiers/outside-click-detector.d.ts +38 -0
  472. package/declarations/modifiers/outside-click-detector.d.ts.map +1 -0
  473. package/declarations/modifiers/resize-observer.d.ts +36 -0
  474. package/declarations/modifiers/resize-observer.d.ts.map +1 -0
  475. package/declarations/modifiers/screen-reader-only.d.ts +9 -0
  476. package/declarations/modifiers/screen-reader-only.d.ts.map +1 -0
  477. package/declarations/modifiers/simple-style.d.ts +12 -0
  478. package/declarations/modifiers/simple-style.d.ts.map +1 -0
  479. package/declarations/modifiers/use-is-within-breakpoints.d.ts +15 -0
  480. package/declarations/modifiers/use-is-within-breakpoints.d.ts.map +1 -0
  481. package/declarations/modifiers/validatable-control.d.ts +9 -0
  482. package/declarations/modifiers/validatable-control.d.ts.map +1 -0
  483. package/declarations/modifiers.d.ts +8 -0
  484. package/declarations/modifiers.d.ts.map +1 -0
  485. package/declarations/services/eui-config.d.ts +15 -0
  486. package/declarations/services/eui-config.d.ts.map +1 -0
  487. package/declarations/services/eui-i18n.d.ts +24 -0
  488. package/declarations/services/eui-i18n.d.ts.map +1 -0
  489. package/declarations/services/eui-toaster.d.ts +15 -0
  490. package/declarations/services/eui-toaster.d.ts.map +1 -0
  491. package/declarations/template-registry.d.ts +476 -0
  492. package/declarations/template-registry.d.ts.map +1 -0
  493. package/declarations/utils/accesibility/accessible-click-keys.d.ts +5 -0
  494. package/declarations/utils/accesibility/accessible-click-keys.d.ts.map +1 -0
  495. package/declarations/utils/accesibility/cascading-menu-keys.d.ts +9 -0
  496. package/declarations/utils/accesibility/cascading-menu-keys.d.ts.map +1 -0
  497. package/declarations/utils/accesibility/combo-box-keys.d.ts +8 -0
  498. package/declarations/utils/accesibility/combo-box-keys.d.ts.map +1 -0
  499. package/declarations/utils/accesibility/index.d.ts +4 -0
  500. package/declarations/utils/accesibility/index.d.ts.map +1 -0
  501. package/declarations/utils/breakpoint.d.ts +50 -0
  502. package/declarations/utils/breakpoint.d.ts.map +1 -0
  503. package/declarations/utils/browser/browser.d.ts +6 -0
  504. package/declarations/utils/browser/browser.d.ts.map +1 -0
  505. package/declarations/utils/browser/index.d.ts +2 -0
  506. package/declarations/utils/browser/index.d.ts.map +1 -0
  507. package/declarations/utils/code/utils.d.ts +32 -0
  508. package/declarations/utils/code/utils.d.ts.map +1 -0
  509. package/declarations/utils/color/color_palette.d.ts +24 -0
  510. package/declarations/utils/color/color_palette.d.ts.map +1 -0
  511. package/declarations/utils/color/eui_palettes.d.ts +37 -0
  512. package/declarations/utils/color/eui_palettes.d.ts.map +1 -0
  513. package/declarations/utils/color/index.d.ts +6 -0
  514. package/declarations/utils/color/index.d.ts.map +1 -0
  515. package/declarations/utils/copy-to-clipboard.d.ts +2 -0
  516. package/declarations/utils/copy-to-clipboard.d.ts.map +1 -0
  517. package/declarations/utils/css-mappings/eui-accordion.d.ts +12 -0
  518. package/declarations/utils/css-mappings/eui-accordion.d.ts.map +1 -0
  519. package/declarations/utils/css-mappings/eui-avatar.d.ts +23 -0
  520. package/declarations/utils/css-mappings/eui-avatar.d.ts.map +1 -0
  521. package/declarations/utils/css-mappings/eui-badge-group.d.ts +8 -0
  522. package/declarations/utils/css-mappings/eui-badge-group.d.ts.map +1 -0
  523. package/declarations/utils/css-mappings/eui-badge.d.ts +31 -0
  524. package/declarations/utils/css-mappings/eui-badge.d.ts.map +1 -0
  525. package/declarations/utils/css-mappings/eui-beta-badge.d.ts +13 -0
  526. package/declarations/utils/css-mappings/eui-beta-badge.d.ts.map +1 -0
  527. package/declarations/utils/css-mappings/eui-bottom-bar.d.ts +4 -0
  528. package/declarations/utils/css-mappings/eui-bottom-bar.d.ts.map +1 -0
  529. package/declarations/utils/css-mappings/eui-button-empty.d.ts +22 -0
  530. package/declarations/utils/css-mappings/eui-button-empty.d.ts.map +1 -0
  531. package/declarations/utils/css-mappings/eui-button-group-button.d.ts +4 -0
  532. package/declarations/utils/css-mappings/eui-button-group-button.d.ts.map +1 -0
  533. package/declarations/utils/css-mappings/eui-button-group.d.ts +4 -0
  534. package/declarations/utils/css-mappings/eui-button-group.d.ts.map +1 -0
  535. package/declarations/utils/css-mappings/eui-button-icon.d.ts +23 -0
  536. package/declarations/utils/css-mappings/eui-button-icon.d.ts.map +1 -0
  537. package/declarations/utils/css-mappings/eui-button.d.ts +13 -0
  538. package/declarations/utils/css-mappings/eui-button.d.ts.map +1 -0
  539. package/declarations/utils/css-mappings/eui-call-out.d.ts +13 -0
  540. package/declarations/utils/css-mappings/eui-call-out.d.ts.map +1 -0
  541. package/declarations/utils/css-mappings/eui-card-select.d.ts +4 -0
  542. package/declarations/utils/css-mappings/eui-card-select.d.ts.map +1 -0
  543. package/declarations/utils/css-mappings/eui-card.d.ts +9 -0
  544. package/declarations/utils/css-mappings/eui-card.d.ts.map +1 -0
  545. package/declarations/utils/css-mappings/eui-code-block.d.ts +15 -0
  546. package/declarations/utils/css-mappings/eui-code-block.d.ts.map +1 -0
  547. package/declarations/utils/css-mappings/eui-collapsible-nav-group.d.ts +9 -0
  548. package/declarations/utils/css-mappings/eui-collapsible-nav-group.d.ts.map +1 -0
  549. package/declarations/utils/css-mappings/eui-comment-event.d.ts +4 -0
  550. package/declarations/utils/css-mappings/eui-comment-event.d.ts.map +1 -0
  551. package/declarations/utils/css-mappings/eui-comment-timeline-icon.d.ts +7 -0
  552. package/declarations/utils/css-mappings/eui-comment-timeline-icon.d.ts.map +1 -0
  553. package/declarations/utils/css-mappings/eui-context-menu-item.d.ts +15 -0
  554. package/declarations/utils/css-mappings/eui-context-menu-item.d.ts.map +1 -0
  555. package/declarations/utils/css-mappings/eui-described-form-group.d.ts +12 -0
  556. package/declarations/utils/css-mappings/eui-described-form-group.d.ts.map +1 -0
  557. package/declarations/utils/css-mappings/eui-description-list.d.ts +18 -0
  558. package/declarations/utils/css-mappings/eui-description-list.d.ts.map +1 -0
  559. package/declarations/utils/css-mappings/eui-empty-prompt.d.ts +10 -0
  560. package/declarations/utils/css-mappings/eui-empty-prompt.d.ts.map +1 -0
  561. package/declarations/utils/css-mappings/eui-file-picker.d.ts +8 -0
  562. package/declarations/utils/css-mappings/eui-file-picker.d.ts.map +1 -0
  563. package/declarations/utils/css-mappings/eui-flex-grid.d.ts +22 -0
  564. package/declarations/utils/css-mappings/eui-flex-grid.d.ts.map +1 -0
  565. package/declarations/utils/css-mappings/eui-flex-group.d.ts +33 -0
  566. package/declarations/utils/css-mappings/eui-flex-group.d.ts.map +1 -0
  567. package/declarations/utils/css-mappings/eui-flex-item.d.ts +17 -0
  568. package/declarations/utils/css-mappings/eui-flex-item.d.ts.map +1 -0
  569. package/declarations/utils/css-mappings/eui-flyout.d.ts +23 -0
  570. package/declarations/utils/css-mappings/eui-flyout.d.ts.map +1 -0
  571. package/declarations/utils/css-mappings/eui-form-control-layout-clear-button.d.ts +8 -0
  572. package/declarations/utils/css-mappings/eui-form-control-layout-clear-button.d.ts.map +1 -0
  573. package/declarations/utils/css-mappings/eui-form-row.d.ts +12 -0
  574. package/declarations/utils/css-mappings/eui-form-row.d.ts.map +1 -0
  575. package/declarations/utils/css-mappings/eui-global-toast-list.d.ts +8 -0
  576. package/declarations/utils/css-mappings/eui-global-toast-list.d.ts.map +1 -0
  577. package/declarations/utils/css-mappings/eui-header-links.d.ts +18 -0
  578. package/declarations/utils/css-mappings/eui-header-links.d.ts.map +1 -0
  579. package/declarations/utils/css-mappings/eui-header-section-item.d.ts +9 -0
  580. package/declarations/utils/css-mappings/eui-header-section-item.d.ts.map +1 -0
  581. package/declarations/utils/css-mappings/eui-header-section.d.ts +12 -0
  582. package/declarations/utils/css-mappings/eui-header-section.d.ts.map +1 -0
  583. package/declarations/utils/css-mappings/eui-header.d.ts +12 -0
  584. package/declarations/utils/css-mappings/eui-header.d.ts.map +1 -0
  585. package/declarations/utils/css-mappings/eui-health.d.ts +10 -0
  586. package/declarations/utils/css-mappings/eui-health.d.ts.map +1 -0
  587. package/declarations/utils/css-mappings/eui-horizontal-rule.d.ts +18 -0
  588. package/declarations/utils/css-mappings/eui-horizontal-rule.d.ts.map +1 -0
  589. package/declarations/utils/css-mappings/eui-icon.d.ts +494 -0
  590. package/declarations/utils/css-mappings/eui-icon.d.ts.map +1 -0
  591. package/declarations/utils/css-mappings/eui-image.d.ts +22 -0
  592. package/declarations/utils/css-mappings/eui-image.d.ts.map +1 -0
  593. package/declarations/utils/css-mappings/eui-link.d.ts +14 -0
  594. package/declarations/utils/css-mappings/eui-link.d.ts.map +1 -0
  595. package/declarations/utils/css-mappings/eui-list-group-item.d.ts +17 -0
  596. package/declarations/utils/css-mappings/eui-list-group-item.d.ts.map +1 -0
  597. package/declarations/utils/css-mappings/eui-list-group.d.ts +12 -0
  598. package/declarations/utils/css-mappings/eui-list-group.d.ts.map +1 -0
  599. package/declarations/utils/css-mappings/eui-loading-spinner.d.ts +10 -0
  600. package/declarations/utils/css-mappings/eui-loading-spinner.d.ts.map +1 -0
  601. package/declarations/utils/css-mappings/eui-modal.d.ts +7 -0
  602. package/declarations/utils/css-mappings/eui-modal.d.ts.map +1 -0
  603. package/declarations/utils/css-mappings/eui-notification-badge.d.ts +11 -0
  604. package/declarations/utils/css-mappings/eui-notification-badge.d.ts.map +1 -0
  605. package/declarations/utils/css-mappings/eui-page-body.d.ts +16 -0
  606. package/declarations/utils/css-mappings/eui-page-body.d.ts.map +1 -0
  607. package/declarations/utils/css-mappings/eui-page-content-body.d.ts +10 -0
  608. package/declarations/utils/css-mappings/eui-page-content-body.d.ts.map +1 -0
  609. package/declarations/utils/css-mappings/eui-page-content.d.ts +10 -0
  610. package/declarations/utils/css-mappings/eui-page-content.d.ts.map +1 -0
  611. package/declarations/utils/css-mappings/eui-page-header.d.ts +10 -0
  612. package/declarations/utils/css-mappings/eui-page-header.d.ts.map +1 -0
  613. package/declarations/utils/css-mappings/eui-page-side-bar.d.ts +10 -0
  614. package/declarations/utils/css-mappings/eui-page-side-bar.d.ts.map +1 -0
  615. package/declarations/utils/css-mappings/eui-page.d.ts +24 -0
  616. package/declarations/utils/css-mappings/eui-page.d.ts.map +1 -0
  617. package/declarations/utils/css-mappings/eui-panel.d.ts +24 -0
  618. package/declarations/utils/css-mappings/eui-panel.d.ts.map +1 -0
  619. package/declarations/utils/css-mappings/eui-popover-footer.d.ts +10 -0
  620. package/declarations/utils/css-mappings/eui-popover-footer.d.ts.map +1 -0
  621. package/declarations/utils/css-mappings/eui-popover-title.d.ts +10 -0
  622. package/declarations/utils/css-mappings/eui-popover-title.d.ts.map +1 -0
  623. package/declarations/utils/css-mappings/eui-popover.d.ts +22 -0
  624. package/declarations/utils/css-mappings/eui-popover.d.ts.map +1 -0
  625. package/declarations/utils/css-mappings/eui-progress-data.d.ts +3 -0
  626. package/declarations/utils/css-mappings/eui-progress-data.d.ts.map +1 -0
  627. package/declarations/utils/css-mappings/eui-progress.d.ts +50 -0
  628. package/declarations/utils/css-mappings/eui-progress.d.ts.map +1 -0
  629. package/declarations/utils/css-mappings/eui-range-highlight.d.ts +11 -0
  630. package/declarations/utils/css-mappings/eui-range-highlight.d.ts.map +1 -0
  631. package/declarations/utils/css-mappings/eui-range-input.d.ts +8 -0
  632. package/declarations/utils/css-mappings/eui-range-input.d.ts.map +1 -0
  633. package/declarations/utils/css-mappings/eui-range-levels.d.ts +13 -0
  634. package/declarations/utils/css-mappings/eui-range-levels.d.ts.map +1 -0
  635. package/declarations/utils/css-mappings/eui-selectable-list-item.d.ts +7 -0
  636. package/declarations/utils/css-mappings/eui-selectable-list-item.d.ts.map +1 -0
  637. package/declarations/utils/css-mappings/eui-spacer.d.ts +12 -0
  638. package/declarations/utils/css-mappings/eui-spacer.d.ts.map +1 -0
  639. package/declarations/utils/css-mappings/eui-stat.d.ts +17 -0
  640. package/declarations/utils/css-mappings/eui-stat.d.ts.map +1 -0
  641. package/declarations/utils/css-mappings/eui-step-number.d.ts +11 -0
  642. package/declarations/utils/css-mappings/eui-step-number.d.ts.map +1 -0
  643. package/declarations/utils/css-mappings/eui-tabs.d.ts +14 -0
  644. package/declarations/utils/css-mappings/eui-tabs.d.ts.map +1 -0
  645. package/declarations/utils/css-mappings/eui-text-align.d.ts +9 -0
  646. package/declarations/utils/css-mappings/eui-text-align.d.ts.map +1 -0
  647. package/declarations/utils/css-mappings/eui-text-area.d.ts +10 -0
  648. package/declarations/utils/css-mappings/eui-text-area.d.ts.map +1 -0
  649. package/declarations/utils/css-mappings/eui-text-color.d.ts +14 -0
  650. package/declarations/utils/css-mappings/eui-text-color.d.ts.map +1 -0
  651. package/declarations/utils/css-mappings/eui-text.d.ts +9 -0
  652. package/declarations/utils/css-mappings/eui-text.d.ts.map +1 -0
  653. package/declarations/utils/css-mappings/eui-title.d.ts +15 -0
  654. package/declarations/utils/css-mappings/eui-title.d.ts.map +1 -0
  655. package/declarations/utils/css-mappings/eui-toast.d.ts +11 -0
  656. package/declarations/utils/css-mappings/eui-toast.d.ts.map +1 -0
  657. package/declarations/utils/css-mappings/eui-tool-tip.d.ts +10 -0
  658. package/declarations/utils/css-mappings/eui-tool-tip.d.ts.map +1 -0
  659. package/declarations/utils/css-mappings/index.d.ts +3 -0
  660. package/declarations/utils/css-mappings/index.d.ts.map +1 -0
  661. package/declarations/utils/detect-element-resize.d.ts +17 -0
  662. package/declarations/utils/detect-element-resize.d.ts.map +1 -0
  663. package/declarations/utils/index.d.ts +3 -0
  664. package/declarations/utils/index.d.ts.map +1 -0
  665. package/declarations/utils/keys.d.ts +31 -0
  666. package/declarations/utils/keys.d.ts.map +1 -0
  667. package/declarations/utils/markdown/markdown-actions.d.ts +45 -0
  668. package/declarations/utils/markdown/markdown-actions.d.ts.map +1 -0
  669. package/declarations/utils/markdown/markdown-modes.d.ts +4 -0
  670. package/declarations/utils/markdown/markdown-modes.d.ts.map +1 -0
  671. package/declarations/utils/markdown/markdown-types.d.ts +100 -0
  672. package/declarations/utils/markdown/markdown-types.d.ts.map +1 -0
  673. package/declarations/utils/markdown/plugins/markdown-add-components/index.d.ts +3 -0
  674. package/declarations/utils/markdown/plugins/markdown-add-components/index.d.ts.map +1 -0
  675. package/declarations/utils/markdown/plugins/markdown-add-components/processor.d.ts +6 -0
  676. package/declarations/utils/markdown/plugins/markdown-add-components/processor.d.ts.map +1 -0
  677. package/declarations/utils/markdown/plugins/markdown-checkbox/index.d.ts +2 -0
  678. package/declarations/utils/markdown/plugins/markdown-checkbox/index.d.ts.map +1 -0
  679. package/declarations/utils/markdown/plugins/markdown-checkbox/parser.d.ts +3 -0
  680. package/declarations/utils/markdown/plugins/markdown-checkbox/parser.d.ts.map +1 -0
  681. package/declarations/utils/markdown/plugins/markdown-default-plugins/index.d.ts +5 -0
  682. package/declarations/utils/markdown/plugins/markdown-default-plugins/index.d.ts.map +1 -0
  683. package/declarations/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.d.ts +7 -0
  684. package/declarations/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.d.ts.map +1 -0
  685. package/declarations/utils/markdown/plugins/markdown-default-plugins/plugins.d.ts +11 -0
  686. package/declarations/utils/markdown/plugins/markdown-default-plugins/plugins.d.ts.map +1 -0
  687. package/declarations/utils/markdown/plugins/markdown-default-plugins/processing-plugins.d.ts +21 -0
  688. package/declarations/utils/markdown/plugins/markdown-default-plugins/processing-plugins.d.ts.map +1 -0
  689. package/declarations/utils/markdown/plugins/markdown-default-plugins/ui-plugins.d.ts +7 -0
  690. package/declarations/utils/markdown/plugins/markdown-default-plugins/ui-plugins.d.ts.map +1 -0
  691. package/declarations/utils/markdown/plugins/markdown-tooltip/index.d.ts +3 -0
  692. package/declarations/utils/markdown/plugins/markdown-tooltip/index.d.ts.map +1 -0
  693. package/declarations/utils/markdown/plugins/markdown-tooltip/parser.d.ts +3 -0
  694. package/declarations/utils/markdown/plugins/markdown-tooltip/parser.d.ts.map +1 -0
  695. package/declarations/utils/markdown/plugins/markdown-tooltip/plugin.d.ts +14 -0
  696. package/declarations/utils/markdown/plugins/markdown-tooltip/plugin.d.ts.map +1 -0
  697. package/declarations/utils/markdown/plugins/to-dom.d.ts +20 -0
  698. package/declarations/utils/markdown/plugins/to-dom.d.ts.map +1 -0
  699. package/declarations/utils/markdown/remark/remark-prismjs.d.ts +5 -0
  700. package/declarations/utils/markdown/remark/remark-prismjs.d.ts.map +1 -0
  701. package/declarations/utils/maybe-unwrap-proxy.d.ts +5 -0
  702. package/declarations/utils/maybe-unwrap-proxy.d.ts.map +1 -0
  703. package/declarations/utils/number/index.d.ts +2 -0
  704. package/declarations/utils/number/index.d.ts.map +1 -0
  705. package/declarations/utils/number/number.d.ts +3 -0
  706. package/declarations/utils/number/number.d.ts.map +1 -0
  707. package/declarations/utils/popover/index.d.ts +154 -0
  708. package/declarations/utils/popover/index.d.ts.map +1 -0
  709. package/declarations/utils/popover/types.d.ts +2 -0
  710. package/declarations/utils/popover/types.d.ts.map +1 -0
  711. package/declarations/utils/predicate/common_predicates.d.ts +6 -0
  712. package/declarations/utils/predicate/common_predicates.d.ts.map +1 -0
  713. package/declarations/utils/predicate/index.d.ts +3 -0
  714. package/declarations/utils/predicate/index.d.ts.map +1 -0
  715. package/declarations/utils/predicate/lodash_predicates.d.ts +8 -0
  716. package/declarations/utils/predicate/lodash_predicates.d.ts.map +1 -0
  717. package/declarations/utils/range/index.d.ts +2 -0
  718. package/declarations/utils/range/index.d.ts.map +1 -0
  719. package/declarations/utils/timer.d.ts +13 -0
  720. package/declarations/utils/timer.d.ts.map +1 -0
  721. package/declarations/utils/transition.d.ts +8 -0
  722. package/declarations/utils/transition.d.ts.map +1 -0
  723. package/dist/components/eui-accordion.js +1 -1
  724. package/dist/components/eui-accordion.js.map +1 -1
  725. package/dist/components/eui-auto-sizer.js.map +1 -1
  726. package/dist/components/eui-avatar.js.map +1 -1
  727. package/dist/components/eui-badge-group.js.map +1 -1
  728. package/dist/components/eui-badge.js.map +1 -1
  729. package/dist/components/eui-beta-badge.js.map +1 -1
  730. package/dist/components/eui-bottom-bar.js.map +1 -1
  731. package/dist/components/eui-breadcrumbs.js.map +1 -1
  732. package/dist/components/eui-button-content.js.map +1 -1
  733. package/dist/components/eui-button-empty.js.map +1 -1
  734. package/dist/components/eui-button-group-button.js.map +1 -1
  735. package/dist/components/eui-button-group.js.map +1 -1
  736. package/dist/components/eui-button-icon.js.map +1 -1
  737. package/dist/components/eui-button.js.map +1 -1
  738. package/dist/components/eui-call-out.js.map +1 -1
  739. package/dist/components/eui-card-select.js.map +1 -1
  740. package/dist/components/eui-card.js.map +1 -1
  741. package/dist/components/eui-checkable-card.js.map +1 -1
  742. package/dist/components/eui-checkbox-group.js.map +1 -1
  743. package/dist/components/eui-checkbox.js.map +1 -1
  744. package/dist/components/eui-code-block/controls.js.map +1 -1
  745. package/dist/components/eui-code-block/full-screen-display.js.map +1 -1
  746. package/dist/components/eui-code-block/virtualized.js.map +1 -1
  747. package/dist/components/eui-code-block.js.map +1 -1
  748. package/dist/components/eui-code.js.map +1 -1
  749. package/dist/components/eui-collapsible-nav-group.js.map +1 -1
  750. package/dist/components/eui-collapsible-nav.js.map +1 -1
  751. package/dist/components/eui-combo-box/create-option.js.map +1 -1
  752. package/dist/components/eui-combo-box/group.js.map +1 -1
  753. package/dist/components/eui-combo-box/no-matches-message.js.map +1 -1
  754. package/dist/components/eui-combo-box/options.js.map +1 -1
  755. package/dist/components/eui-combo-box/search-message.js.map +1 -1
  756. package/dist/components/eui-combo-box/trigger/input.js.map +1 -1
  757. package/dist/components/eui-combo-box/trigger.js.map +1 -1
  758. package/dist/components/eui-combo-box-pill.js.map +1 -1
  759. package/dist/components/eui-combo-box.js.map +1 -1
  760. package/dist/components/eui-comment-list.js.map +1 -1
  761. package/dist/components/eui-comment-timeline.js.map +1 -1
  762. package/dist/components/eui-comment.js.map +1 -1
  763. package/dist/components/eui-confirm-modal.js.map +1 -1
  764. package/dist/components/eui-context-menu-item.js.map +1 -1
  765. package/dist/components/eui-context-menu-panel.js.map +1 -1
  766. package/dist/components/eui-copy.js.map +1 -1
  767. package/dist/components/eui-described-form-group.js.map +1 -1
  768. package/dist/components/eui-description-list-description.js.map +1 -1
  769. package/dist/components/eui-description-list-title.js.map +1 -1
  770. package/dist/components/eui-description-list.js.map +1 -1
  771. package/dist/components/eui-dual-range.js.map +1 -1
  772. package/dist/components/eui-empty-prompt.js +1 -1
  773. package/dist/components/eui-empty-prompt.js.map +1 -1
  774. package/dist/components/eui-field-number.js.map +1 -1
  775. package/dist/components/eui-field-password.js.map +1 -1
  776. package/dist/components/eui-field-search.js.map +1 -1
  777. package/dist/components/eui-field-text.js.map +1 -1
  778. package/dist/components/eui-file-picker.js.map +1 -1
  779. package/dist/components/eui-flex-grid.js.map +1 -1
  780. package/dist/components/eui-flex-group.js.map +1 -1
  781. package/dist/components/eui-flex-item.js.map +1 -1
  782. package/dist/components/eui-flyout-body.js.map +1 -1
  783. package/dist/components/eui-flyout-footer.js.map +1 -1
  784. package/dist/components/eui-flyout-header.js.map +1 -1
  785. package/dist/components/eui-flyout.js.map +1 -1
  786. package/dist/components/eui-form-control-layout-clear-button.js.map +1 -1
  787. package/dist/components/eui-form-control-layout-custom-icon.js.map +1 -1
  788. package/dist/components/eui-form-control-layout-delimited.js.map +1 -1
  789. package/dist/components/eui-form-control-layout-icons.js.map +1 -1
  790. package/dist/components/eui-form-control-layout.js.map +1 -1
  791. package/dist/components/eui-form-error-text.js.map +1 -1
  792. package/dist/components/eui-form-fieldset.js.map +1 -1
  793. package/dist/components/eui-form-help-text.js.map +1 -1
  794. package/dist/components/eui-form-label.js.map +1 -1
  795. package/dist/components/eui-form-legend.js.map +1 -1
  796. package/dist/components/eui-form-row.js.map +1 -1
  797. package/dist/components/eui-form.js.map +1 -1
  798. package/dist/components/eui-global-toast-list.js.map +1 -1
  799. package/dist/components/eui-header-alert.js.map +1 -1
  800. package/dist/components/eui-header-breadcrumbs.js.map +1 -1
  801. package/dist/components/eui-header-link.js.map +1 -1
  802. package/dist/components/eui-header-links.js.map +1 -1
  803. package/dist/components/eui-header-logo.js.map +1 -1
  804. package/dist/components/eui-header-section-item-button.js.map +1 -1
  805. package/dist/components/eui-header-section-item.js.map +1 -1
  806. package/dist/components/eui-header-section.js.map +1 -1
  807. package/dist/components/eui-header.js.map +1 -1
  808. package/dist/components/eui-health.js.map +1 -1
  809. package/dist/components/eui-hide-for.js.map +1 -1
  810. package/dist/components/eui-horizontal-rule.js.map +1 -1
  811. package/dist/components/eui-i18n/render.js.map +1 -1
  812. package/dist/components/eui-i18n.js.map +1 -1
  813. package/dist/components/eui-icon-tip.js.map +1 -1
  814. package/dist/components/eui-icon.js.map +1 -1
  815. package/dist/components/eui-image.js.map +1 -1
  816. package/dist/components/eui-inner-text.js.map +1 -1
  817. package/dist/components/eui-input-popover.js.map +1 -1
  818. package/dist/components/eui-key-pad-menu-item.js.map +1 -1
  819. package/dist/components/eui-key-pad-menu.js.map +1 -1
  820. package/dist/components/eui-link.js.map +1 -1
  821. package/dist/components/eui-list-group-item.js.map +1 -1
  822. package/dist/components/eui-list-group.js.map +1 -1
  823. package/dist/components/eui-loading-content.js.map +1 -1
  824. package/dist/components/eui-loading-logo.js.map +1 -1
  825. package/dist/components/eui-loading-spinner.js.map +1 -1
  826. package/dist/components/eui-markdown-editor-drop-zone.js.map +1 -1
  827. package/dist/components/eui-markdown-editor-footer/icons/markdown-logo.js.map +1 -1
  828. package/dist/components/eui-markdown-editor-footer.js.map +1 -1
  829. package/dist/components/eui-markdown-editor-text-area.js.map +1 -1
  830. package/dist/components/eui-markdown-editor-toolbar/icons/markdown-checkmark.js.map +1 -1
  831. package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
  832. package/dist/components/eui-markdown-editor.js +1 -0
  833. package/dist/components/eui-markdown-editor.js.map +1 -1
  834. package/dist/components/eui-markdown-format/markdown-checkbox.js.map +1 -1
  835. package/dist/components/eui-markdown-format/markdown-code-block.js.map +1 -1
  836. package/dist/components/eui-markdown-format/markdown-code.js.map +1 -1
  837. package/dist/components/eui-markdown-format/markdown-tooltip.js.map +1 -1
  838. package/dist/components/eui-markdown-format.js +1 -0
  839. package/dist/components/eui-markdown-format.js.map +1 -1
  840. package/dist/components/eui-modal-body.js.map +1 -1
  841. package/dist/components/eui-modal-footer.js.map +1 -1
  842. package/dist/components/eui-modal-header-title.js.map +1 -1
  843. package/dist/components/eui-modal-header.js.map +1 -1
  844. package/dist/components/eui-modal.js.map +1 -1
  845. package/dist/components/eui-notification-badge.js.map +1 -1
  846. package/dist/components/eui-notification-event-messages.js.map +1 -1
  847. package/dist/components/eui-notification-event-meta.js.map +1 -1
  848. package/dist/components/eui-notification-event-read-button.js.map +1 -1
  849. package/dist/components/eui-notification-event-read-icon.js.map +1 -1
  850. package/dist/components/eui-notification-event.js.map +1 -1
  851. package/dist/components/eui-overlay-mask.js.map +1 -1
  852. package/dist/components/eui-page-body.js.map +1 -1
  853. package/dist/components/eui-page-content-body.js.map +1 -1
  854. package/dist/components/eui-page-content-header-section.js.map +1 -1
  855. package/dist/components/eui-page-content-header.js.map +1 -1
  856. package/dist/components/eui-page-content.js.map +1 -1
  857. package/dist/components/eui-page-header-content.js.map +1 -1
  858. package/dist/components/eui-page-header-section.js.map +1 -1
  859. package/dist/components/eui-page-header.js.map +1 -1
  860. package/dist/components/eui-page-side-bar.js.map +1 -1
  861. package/dist/components/eui-page-template.js.map +1 -1
  862. package/dist/components/eui-page.js.map +1 -1
  863. package/dist/components/eui-pagination/button-wrapper.js.map +1 -1
  864. package/dist/components/eui-pagination/next-button.js.map +1 -1
  865. package/dist/components/eui-pagination/previous-button.js.map +1 -1
  866. package/dist/components/eui-pagination-button.js.map +1 -1
  867. package/dist/components/eui-pagination.js.map +1 -1
  868. package/dist/components/eui-panel.js.map +1 -1
  869. package/dist/components/eui-popover-footer.js.map +1 -1
  870. package/dist/components/eui-popover-title.js.map +1 -1
  871. package/dist/components/eui-popover.js +34 -2
  872. package/dist/components/eui-popover.js.map +1 -1
  873. package/dist/components/eui-portal.js +2 -2
  874. package/dist/components/eui-portal.js.map +1 -1
  875. package/dist/components/eui-progress.js.map +1 -1
  876. package/dist/components/eui-radio-group.js.map +1 -1
  877. package/dist/components/eui-radio.js.map +1 -1
  878. package/dist/components/eui-range-highlight.js.map +1 -1
  879. package/dist/components/eui-range-input.js.map +1 -1
  880. package/dist/components/eui-range-label.js.map +1 -1
  881. package/dist/components/eui-range-levels.js.map +1 -1
  882. package/dist/components/eui-range-slider.js.map +1 -1
  883. package/dist/components/eui-range-thumb.js.map +1 -1
  884. package/dist/components/eui-range-ticks.js.map +1 -1
  885. package/dist/components/eui-range-tooltip.js.map +1 -1
  886. package/dist/components/eui-range-track.js.map +1 -1
  887. package/dist/components/eui-range-wrapper.js.map +1 -1
  888. package/dist/components/eui-range.js.map +1 -1
  889. package/dist/components/eui-select.js.map +1 -1
  890. package/dist/components/eui-selectable-list-item.js.map +1 -1
  891. package/dist/components/eui-show-for.js.map +1 -1
  892. package/dist/components/eui-side-nav-item/button.js.map +1 -1
  893. package/dist/components/eui-side-nav-item.js.map +1 -1
  894. package/dist/components/eui-side-nav.js.map +1 -1
  895. package/dist/components/eui-spacer.js.map +1 -1
  896. package/dist/components/eui-split-panel/inner.js.map +1 -1
  897. package/dist/components/eui-split-panel/outer.js.map +1 -1
  898. package/dist/components/eui-stat/description.js.map +1 -1
  899. package/dist/components/eui-stat/title.js.map +1 -1
  900. package/dist/components/eui-stat.js.map +1 -1
  901. package/dist/components/eui-step-horizontal.js.map +1 -1
  902. package/dist/components/eui-step-number.js.map +1 -1
  903. package/dist/components/eui-step.js.map +1 -1
  904. package/dist/components/eui-steps-horizontal.js.map +1 -1
  905. package/dist/components/eui-steps.js.map +1 -1
  906. package/dist/components/eui-sub-steps.js.map +1 -1
  907. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
  908. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
  909. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js +15 -3
  910. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
  911. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js +5 -1
  912. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
  913. package/dist/components/eui-super-date-picker/date-popover/now-tab.js.map +1 -1
  914. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
  915. package/dist/components/eui-super-date-picker/eui-date-picker-range.js.map +1 -1
  916. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js.map +1 -1
  917. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
  918. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js.map +1 -1
  919. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +10 -1
  920. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
  921. package/dist/components/eui-super-date-picker/eui-super-update-button.js.map +1 -1
  922. package/dist/components/eui-super-date-picker/utils/index.js +1 -1
  923. package/dist/components/eui-super-date-picker/utils/index.js.map +1 -1
  924. package/dist/components/eui-super-date-picker.js.map +1 -1
  925. package/dist/components/eui-switch.js.map +1 -1
  926. package/dist/components/eui-tab.js.map +1 -1
  927. package/dist/components/eui-tabbed-content.js.map +1 -1
  928. package/dist/components/eui-tabs.js.map +1 -1
  929. package/dist/components/eui-text-align.js.map +1 -1
  930. package/dist/components/eui-text-area.js.map +1 -1
  931. package/dist/components/eui-text-color.js.map +1 -1
  932. package/dist/components/eui-text.js.map +1 -1
  933. package/dist/components/eui-title.js.map +1 -1
  934. package/dist/components/eui-toast.js.map +1 -1
  935. package/dist/components/eui-tool-tip-popover.js.map +1 -1
  936. package/dist/components/eui-tool-tip.js.map +1 -1
  937. package/dist/components/text-block.js.map +1 -1
  938. package/dist/utils/popover/index.js +17 -0
  939. package/dist/utils/popover/index.js.map +1 -1
  940. package/package.json +6 -10
@@ -1 +1 @@
1
- {"version":3,"file":"eui-tool-tip-popover.js","sources":["../../src/components/eui-tool-tip-popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { fn } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport type { CommonArgs } from './common.ts';\ntype EuiTooltipPopoverArgs = CommonArgs & {\n positionToolTip: () => void;\n title?: Component;\n popoverRef?: (ref: HTMLDivElement | null) => void;\n hasTitle?: boolean;\n};\nexport interface EuiTooltipPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiTooltipPopoverArgs;\n Blocks: {\n default: [];\n title: [];\n content: [];\n };\n}\nexport default class EuiTooltipPopover extends Component<EuiTooltipPopoverSignature> {\n popover: HTMLDivElement | null = null;\n constructor(owner1: unknown, args1: EuiTooltipPopoverArgs){\n super(owner1, args1);\n document.body.classList.add('euiBody-hasPortalContent');\n window.addEventListener('resize', this.updateDimensions);\n window.addEventListener('scroll', this.updateDimensions, true);\n }\n willDestroy(): void {\n super.willDestroy();\n document.body.classList.remove('euiBody-hasPortalContent');\n window.removeEventListener('resize', this.updateDimensions);\n window.removeEventListener('scroll', this.updateDimensions, true);\n }\n @action\n setPopoverRef(popover1: HTMLDivElement | null): void {\n this.popover = popover1;\n if (this.args.popoverRef) {\n this.args.popoverRef(popover1);\n }\n }\n @action\n updateDimensions(): void {\n requestAnimationFrame(()=>{\n // Because of this delay, sometimes `positionToolTip` becomes unavailable.\n if (this.popover) {\n this.args.positionToolTip();\n }\n });\n }\n static{\n template(`\n <div\n class=\"euiToolTipPopover\"\n {{didInsert this.setPopoverRef}}\n {{willDestroy (fn this.setPopoverRef null)}}\n ...attributes\n >\n {{#if @hasTitle}}\n <div class=\"euiToolTip__title\">\n {{yield to=\"title\"}}\n </div>\n {{/if}}\n {{yield to=\"content\"}}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS10b29sLXRpcC1wb3BvdmVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBmbiB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCB3aWxsRGVzdHJveSBmcm9tICdAZW1iZXIvcmVuZGVyLW1vZGlmaWVycy9tb2RpZmllcnMvd2lsbC1kZXN0cm95JztcblxuaW1wb3J0IHR5cGUgeyBDb21tb25BcmdzIH0gZnJvbSAnLi9jb21tb24udHMnO1xuXG50eXBlIEV1aVRvb2x0aXBQb3BvdmVyQXJncyA9IENvbW1vbkFyZ3MgJiB7XG4gICAgcG9zaXRpb25Ub29sVGlwOiAoKSA9PiB2b2lkO1xuICAgIHRpdGxlPzogQ29tcG9uZW50O1xuICAgIHBvcG92ZXJSZWY_OiAocmVmOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0-IHZvaWQ7XG4gICAgaGFzVGl0bGU_OiBib29sZWFuO1xuICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVRvb2x0aXBQb3BvdmVyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IEV1aVRvb2x0aXBQb3BvdmVyQXJncztcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gICAgdGl0bGU6IFtdO1xuICAgIGNvbnRlbnQ6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdWlUb29sdGlwUG9wb3ZlciBleHRlbmRzIENvbXBvbmVudDxFdWlUb29sdGlwUG9wb3ZlclNpZ25hdHVyZT4ge1xuICBwb3BvdmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBFdWlUb29sdGlwUG9wb3ZlckFyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdldWlCb2R5LWhhc1BvcnRhbENvbnRlbnQnKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVEaW1lbnNpb25zKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy51cGRhdGVEaW1lbnNpb25zLCB0cnVlKTtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxEZXN0cm95KCk7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdldWlCb2R5LWhhc1BvcnRhbENvbnRlbnQnKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVEaW1lbnNpb25zKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy51cGRhdGVEaW1lbnNpb25zLCB0cnVlKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgc2V0UG9wb3ZlclJlZihwb3BvdmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSBwb3BvdmVyO1xuXG4gICAgaWYgKHRoaXMuYXJncy5wb3BvdmVyUmVmKSB7XG4gICAgICB0aGlzLmFyZ3MucG9wb3ZlclJlZihwb3BvdmVyKTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIHVwZGF0ZURpbWVuc2lvbnMoKTogdm9pZCB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIC8vIEJlY2F1c2Ugb2YgdGhpcyBkZWxheSwgc29tZXRpbWVzIGBwb3NpdGlvblRvb2xUaXBgIGJlY29tZXMgdW5hdmFpbGFibGUuXG4gICAgICBpZiAodGhpcy5wb3BvdmVyKSB7XG4gICAgICAgIHRoaXMuYXJncy5wb3NpdGlvblRvb2xUaXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImV1aVRvb2xUaXBQb3BvdmVyXCJcbiAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMuc2V0UG9wb3ZlclJlZn19XG4gICAgICB7e3dpbGxEZXN0cm95IChmbiB0aGlzLnNldFBvcG92ZXJSZWYgbnVsbCl9fVxuICAgICAgLi4uYXR0cmlidXRlc1xuICAgID5cbiAgICAgIHt7I2lmIEBoYXNUaXRsZX19XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWlUb29sVGlwX190aXRsZVwiPlxuICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgPC9kaXY-XG4gICAgICB7ey9pZn19XG4gICAgICB7e3lpZWxkIHRvPVwiY29udGVudFwifX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLEVBQUUsUUFBUSxnQkFBZ0I7QUFDbkMsU0FBUyxNQUFNLFFBQVEsZ0JBQWdCO0FBQ3ZDLE9BQU8sZUFBZSwrQ0FBK0M7QUFDckUsT0FBTyxpQkFBaUIsaURBQWlEO0FBRXpFLGNBQWMsVUFBVSxRQUFRLGNBQWM7S0FFekMsd0JBQXdCO0lBQ3pCLHVCQUF1QixJQUFJO0lBQzNCLFFBQVE7SUFDUixjQUFjLEtBQUssaUJBQWlCLElBQUksS0FBSyxJQUFJO0lBQ2pELFdBQVcsT0FBTzs7QUFHdEIsaUJBQWlCO0lBQ2YsU0FBUztJQUNULE1BQU07SUFDTjtRQUNFO1FBQ0E7UUFDQTs7O0FBSUosZUFBZSxNQUFNLDBCQUEwQixVQUFVO0lBQ3ZELFNBQVMsaUJBQWlCLElBQUksR0FBRyxLQUFLO0lBRXRDLFlBQVksUUFBTyxPQUFPLEVBQUUsT0FBTSxxQkFBcUIsQ0FBRTtRQUN2RCxLQUFLLENBQUMsUUFBTztRQUNiLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDNUIsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0I7UUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtJQUMzRDtJQUVBLGVBQWUsSUFBSSxDQUFDO1FBQ2xCLEtBQUssQ0FBQztRQUNOLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0IsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0I7UUFDMUQsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtJQUM5RDtJQUVBLENBQUM7SUFDRCxjQUFjLFVBQVMsaUJBQWlCLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRztRQUVmLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdkI7SUFDRjtJQUVBLENBQUM7SUFDRCxvQkFBb0IsSUFBSSxDQUFDO1FBQ3ZCLHNCQUFzQjtZQUNwQiwwRUFBMEU7WUFDMUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDM0I7UUFDRjtJQUNGO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7RUFjVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FkQTtBQWVaIn0"],"names":["EuiTooltipPopover","Component","popover","constructor","owner1","args1","document","body","classList","add","window","addEventListener","updateDimensions","willDestroy","remove","removeEventListener","setPopoverRef","popover1","args","popoverRef","n","this","prototype","action","requestAnimationFrame","positionToolTip","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","fn"],"mappings":";;;;;;;;;AAyBe,MAAMA,iBAAA,SAA0BC,SAAA,CAAU;AACvDC,EAAAA,OAAA,GAAiC,IAAA,CAAA;EAEjCC,WAAYC,CAAAA,MAAc,EAAEC,KAA2B,EAAE;IACvD,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AACbC,IAAAA,QAAA,CAASC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC,0BAAA,CAAA,CAAA;AAC5BC,IAAAA,MAAA,CAAOC,gBAAgB,CAAC,QAAU,EAAA,IAAI,CAACC,gBAAgB,CAAA,CAAA;AACvDF,IAAAA,MAAA,CAAOC,gBAAgB,CAAC,UAAU,IAAI,CAACC,gBAAgB,EAAE,IAAA,CAAA,CAAA;AAC3D,GAAA;AAEAC,EAAAA,WAAAA,GAAoB;AAClB,IAAA,KAAK,CAACA,WAAA,EAAA,CAAA;AACNP,IAAAA,QAAA,CAASC,IAAI,CAACC,SAAS,CAACM,MAAM,CAAC,0BAAA,CAAA,CAAA;AAC/BJ,IAAAA,MAAA,CAAOK,mBAAmB,CAAC,QAAU,EAAA,IAAI,CAACH,gBAAgB,CAAA,CAAA;AAC1DF,IAAAA,MAAA,CAAOK,mBAAmB,CAAC,UAAU,IAAI,CAACH,gBAAgB,EAAE,IAAA,CAAA,CAAA;AAC9D,GAAA;AAGAI,EAAAA,aAAAA,CAAcC,QAA8B,EAAQ;IAClD,IAAI,CAACf,OAAO,GAAGe,QAAA,CAAA;AAEf,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,UAAU,EAAE;AACxB,MAAA,IAAI,CAACD,IAAI,CAACC,UAAU,CAACF,QAAA,CAAA,CAAA;AACvB,KAAA;AACF,GAAA;AAAA,EAAA;AAAAG,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,oBAPCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAUDX,EAAAA,gBAAAA,GAAyB;AACvBY,IAAAA,qBAAA,CAAsB,MAAA;AACpB;MACA,IAAI,IAAI,CAACtB,OAAO,EAAE;QAChB,IAAI,CAACgB,IAAI,CAACO,eAAe,EAAA,CAAA;AAC3B,OAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,uBARCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAUD,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAcA,0TAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;QAAAjB,WAAA;AAAAkB,QAAAA,EAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"eui-tool-tip-popover.js","sources":["../../src/components/eui-tool-tip-popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { fn } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport type { CommonArgs } from './common.ts';\ntype EuiTooltipPopoverArgs = CommonArgs & {\n positionToolTip: () => void;\n title?: Component;\n popoverRef?: (ref: HTMLDivElement | null) => void;\n hasTitle?: boolean;\n};\nexport interface EuiTooltipPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiTooltipPopoverArgs;\n Blocks: {\n default: [];\n title: [];\n content: [];\n };\n}\nexport default class EuiTooltipPopover extends Component<EuiTooltipPopoverSignature> {\n popover: HTMLDivElement | null = null;\n constructor(owner1: unknown, args1: EuiTooltipPopoverArgs){\n super(owner1, args1);\n document.body.classList.add('euiBody-hasPortalContent');\n window.addEventListener('resize', this.updateDimensions);\n window.addEventListener('scroll', this.updateDimensions, true);\n }\n willDestroy(): void {\n super.willDestroy();\n document.body.classList.remove('euiBody-hasPortalContent');\n window.removeEventListener('resize', this.updateDimensions);\n window.removeEventListener('scroll', this.updateDimensions, true);\n }\n @action\n setPopoverRef(popover1: HTMLDivElement | null): void {\n this.popover = popover1;\n if (this.args.popoverRef) {\n this.args.popoverRef(popover1);\n }\n }\n @action\n updateDimensions(): void {\n requestAnimationFrame(()=>{\n // Because of this delay, sometimes `positionToolTip` becomes unavailable.\n if (this.popover) {\n this.args.positionToolTip();\n }\n });\n }\n static{\n template(`\n <div\n class=\"euiToolTipPopover\"\n {{didInsert this.setPopoverRef}}\n {{willDestroy (fn this.setPopoverRef null)}}\n ...attributes\n >\n {{#if @hasTitle}}\n <div class=\"euiToolTip__title\">\n {{yield to=\"title\"}}\n </div>\n {{/if}}\n {{yield to=\"content\"}}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9vcGVuc291cmNlL2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS10b29sLXRpcC1wb3BvdmVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBmbiB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCB3aWxsRGVzdHJveSBmcm9tICdAZW1iZXIvcmVuZGVyLW1vZGlmaWVycy9tb2RpZmllcnMvd2lsbC1kZXN0cm95JztcblxuaW1wb3J0IHR5cGUgeyBDb21tb25BcmdzIH0gZnJvbSAnLi9jb21tb24udHMnO1xuXG50eXBlIEV1aVRvb2x0aXBQb3BvdmVyQXJncyA9IENvbW1vbkFyZ3MgJiB7XG4gICAgcG9zaXRpb25Ub29sVGlwOiAoKSA9PiB2b2lkO1xuICAgIHRpdGxlPzogQ29tcG9uZW50O1xuICAgIHBvcG92ZXJSZWY_OiAocmVmOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0-IHZvaWQ7XG4gICAgaGFzVGl0bGU_OiBib29sZWFuO1xuICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVRvb2x0aXBQb3BvdmVyU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTERpdkVsZW1lbnQ7XG4gIEFyZ3M6IEV1aVRvb2x0aXBQb3BvdmVyQXJncztcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gICAgdGl0bGU6IFtdO1xuICAgIGNvbnRlbnQ6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdWlUb29sdGlwUG9wb3ZlciBleHRlbmRzIENvbXBvbmVudDxFdWlUb29sdGlwUG9wb3ZlclNpZ25hdHVyZT4ge1xuICBwb3BvdmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKG93bmVyOiB1bmtub3duLCBhcmdzOiBFdWlUb29sdGlwUG9wb3ZlckFyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdldWlCb2R5LWhhc1BvcnRhbENvbnRlbnQnKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVEaW1lbnNpb25zKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy51cGRhdGVEaW1lbnNpb25zLCB0cnVlKTtcbiAgfVxuXG4gIHdpbGxEZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxEZXN0cm95KCk7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdldWlCb2R5LWhhc1BvcnRhbENvbnRlbnQnKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVEaW1lbnNpb25zKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy51cGRhdGVEaW1lbnNpb25zLCB0cnVlKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgc2V0UG9wb3ZlclJlZihwb3BvdmVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSBwb3BvdmVyO1xuXG4gICAgaWYgKHRoaXMuYXJncy5wb3BvdmVyUmVmKSB7XG4gICAgICB0aGlzLmFyZ3MucG9wb3ZlclJlZihwb3BvdmVyKTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIHVwZGF0ZURpbWVuc2lvbnMoKTogdm9pZCB7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIC8vIEJlY2F1c2Ugb2YgdGhpcyBkZWxheSwgc29tZXRpbWVzIGBwb3NpdGlvblRvb2xUaXBgIGJlY29tZXMgdW5hdmFpbGFibGUuXG4gICAgICBpZiAodGhpcy5wb3BvdmVyKSB7XG4gICAgICAgIHRoaXMuYXJncy5wb3NpdGlvblRvb2xUaXAoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImV1aVRvb2xUaXBQb3BvdmVyXCJcbiAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMuc2V0UG9wb3ZlclJlZn19XG4gICAgICB7e3dpbGxEZXN0cm95IChmbiB0aGlzLnNldFBvcG92ZXJSZWYgbnVsbCl9fVxuICAgICAgLi4uYXR0cmlidXRlc1xuICAgID5cbiAgICAgIHt7I2lmIEBoYXNUaXRsZX19XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWlUb29sVGlwX190aXRsZVwiPlxuICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgPC9kaXY-XG4gICAgICB7ey9pZn19XG4gICAgICB7e3lpZWxkIHRvPVwiY29udGVudFwifX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLEVBQUUsUUFBUSxnQkFBZ0I7QUFDbkMsU0FBUyxNQUFNLFFBQVEsZ0JBQWdCO0FBQ3ZDLE9BQU8sZUFBZSwrQ0FBK0M7QUFDckUsT0FBTyxpQkFBaUIsaURBQWlEO0FBRXpFLGNBQWMsVUFBVSxRQUFRLGNBQWM7S0FFekMsd0JBQXdCO0lBQ3pCLHVCQUF1QixJQUFJO0lBQzNCLFFBQVE7SUFDUixjQUFjLEtBQUssaUJBQWlCLElBQUksS0FBSyxJQUFJO0lBQ2pELFdBQVcsT0FBTzs7QUFHdEIsaUJBQWlCO0lBQ2YsU0FBUztJQUNULE1BQU07SUFDTjtRQUNFO1FBQ0E7UUFDQTs7O0FBSUosZUFBZSxNQUFNLDBCQUEwQixVQUFVO0lBQ3ZELFNBQVMsaUJBQWlCLElBQUksR0FBRyxLQUFLO0lBRXRDLFlBQVksUUFBTyxPQUFPLEVBQUUsT0FBTSxxQkFBcUIsQ0FBRTtRQUN2RCxLQUFLLENBQUMsUUFBTztRQUNiLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDNUIsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0I7UUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtJQUMzRDtJQUVBLGVBQWUsSUFBSSxDQUFDO1FBQ2xCLEtBQUssQ0FBQztRQUNOLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDL0IsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0I7UUFDMUQsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtJQUM5RDtJQUVBLENBQUM7SUFDRCxjQUFjLFVBQVMsaUJBQWlCLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRztRQUVmLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdkI7SUFDRjtJQUVBLENBQUM7SUFDRCxvQkFBb0IsSUFBSSxDQUFDO1FBQ3ZCLHNCQUFzQjtZQUNwQiwwRUFBMEU7WUFDMUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDM0I7UUFDRjtJQUNGO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7RUFjVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FkQTtBQWVaIn0"],"names":["EuiTooltipPopover","Component","popover","constructor","owner1","args1","document","body","classList","add","window","addEventListener","updateDimensions","willDestroy","remove","removeEventListener","setPopoverRef","popover1","args","popoverRef","n","this","prototype","action","requestAnimationFrame","positionToolTip","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","fn"],"mappings":";;;;;;;;;AAyBe,MAAMA,iBAAA,SAA0BC,SAAA,CAAU;AACvDC,EAAAA,OAAA,GAAiC,IAAA,CAAA;EAEjCC,WAAYC,CAAAA,MAAc,EAAEC,KAA2B,EAAE;IACvD,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AACbC,IAAAA,QAAA,CAASC,IAAI,CAACC,SAAS,CAACC,GAAG,CAAC,0BAAA,CAAA,CAAA;AAC5BC,IAAAA,MAAA,CAAOC,gBAAgB,CAAC,QAAU,EAAA,IAAI,CAACC,gBAAgB,CAAA,CAAA;AACvDF,IAAAA,MAAA,CAAOC,gBAAgB,CAAC,UAAU,IAAI,CAACC,gBAAgB,EAAE,IAAA,CAAA,CAAA;AAC3D,GAAA;AAEAC,EAAAA,WAAAA,GAAoB;AAClB,IAAA,KAAK,CAACA,WAAA,EAAA,CAAA;AACNP,IAAAA,QAAA,CAASC,IAAI,CAACC,SAAS,CAACM,MAAM,CAAC,0BAAA,CAAA,CAAA;AAC/BJ,IAAAA,MAAA,CAAOK,mBAAmB,CAAC,QAAU,EAAA,IAAI,CAACH,gBAAgB,CAAA,CAAA;AAC1DF,IAAAA,MAAA,CAAOK,mBAAmB,CAAC,UAAU,IAAI,CAACH,gBAAgB,EAAE,IAAA,CAAA,CAAA;AAC9D,GAAA;AAGAI,EAAAA,aAAAA,CAAcC,QAA8B,EAAQ;IAClD,IAAI,CAACf,OAAO,GAAGe,QAAA,CAAA;AAEf,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,UAAU,EAAE;AACxB,MAAA,IAAI,CAACD,IAAI,CAACC,UAAU,CAACF,QAAA,CAAA,CAAA;AACvB,KAAA;AACF,GAAA;AAAA,EAAA;AAAAG,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,oBAPCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAUDX,EAAAA,gBAAAA,GAAyB;AACvBY,IAAAA,qBAAA,CAAsB,MAAA;AACpB;MACA,IAAI,IAAI,CAACtB,OAAO,EAAE;QAChB,IAAI,CAACgB,IAAI,CAACO,eAAe,EAAA,CAAA;AAC3B,OAAA;AACF,KAAA,CAAA,CAAA;AACF,GAAA;AAAA,EAAA;AAAAL,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,uBARCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAUD,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAcA,0TAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;QAAAjB,WAAA;AAAAkB,QAAAA,EAAAA;AAAA,OAAA,CAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"eui-tool-tip.js","sources":["../../src/components/eui-tool-tip.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-insert';\nimport { cancel, later, next, scheduleOnce } from '@ember/runloop';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, or } from 'ember-truth-helpers';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport { keys } from '../utils/keys.ts';\nimport { findPopoverPosition } from '../utils/popover/index.ts';\nimport EuiPortal from './eui-portal.gts';\nimport EuiToolTipPopover from './eui-tool-tip-popover.gts';\nimport type { EuiTooltipPopoverSignature } from './eui-tool-tip-popover';\nexport type ToolTipPositions = 'top' | 'right' | 'bottom' | 'left';\nexport type ToolTipDelay = 'regular' | 'long';\nconst delayToMsMap: {\n [key in ToolTipDelay]: number;\n} = {\n regular: 250,\n long: 250 * 5\n};\ninterface ToolTipStyles {\n top: string;\n left: string | 'auto';\n right?: string | 'auto';\n opacity?: string;\n visibility?: 'hidden';\n display?: 'inlineBlock';\n}\nconst displayToClassNameMap = {\n inlineBlock: undefined,\n block: 'euiToolTipAnchor--displayBlock'\n};\nconst DEFAULT_TOOLTIP_STYLES: ToolTipStyles = {\n // position the tooltip content near the top-left\n // corner of the window so it can't create scrollbars\n // 50,50 because who knows what negative margins, padding, etc\n top: '50px',\n left: '50px',\n // just in case, avoid any potential flicker by hiding\n // the tooltip before it is positioned\n opacity: '0',\n // prevent accidental mouse interaction while positioning\n visibility: 'hidden',\n display: 'inlineBlock'\n};\nexport type EuiTooltipArgs = {\n /**\n * Passes onto the the trigger.\n */ anchorClassName?: string;\n /**\n * Passes onto the tooltip itself, not the trigger.\n */ className?: string;\n /**\n * The main content of your tooltip.\n */ content?: string;\n /**\n * Common display alternatives for the anchor wrapper\n */ display?: keyof typeof displayToClassNameMap;\n /**\n * Delay before showing tooltip. Good for repeatable items.\n */ delay?: ToolTipDelay;\n /**\n * An optional title for your tooltip.\n */ title?: string;\n /**\n * Unless you provide one, this will be randomly generated.\n */ id?: string;\n /**\n * Suggested position. If there is not enough room for it this will be changed.\n */ position?: ToolTipPositions;\n attachTo?: undefined | HTMLElement | string | null;\n isShown?: boolean | undefined;\n /**\n * If supplied, called when mouse movement causes the tool tip to be\n * hidden.\n */ onMouseOut?: (event: MouseEvent) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n hasTitle?: boolean;\n};\nexport interface EuiToolTipSignature {\n Element: EuiTooltipPopoverSignature['Element'];\n Args: EuiTooltipArgs;\n Blocks: {\n default?: [id: string];\n title?: [];\n content?: [];\n anchor?: [id: string];\n };\n}\nexport default class EuiToolTip extends Component<EuiToolTipSignature> {\n anchor: null | HTMLElement = null;\n popover: null | HTMLElement = null;\n @argOrDefaultDecorator('top')\n position: ToolTipPositions;\n @argOrDefaultDecorator('regular')\n delay: ToolTipDelay;\n //STATE\n @tracked\n visible = false;\n @tracked\n hasFocus = false;\n @tracked\n calculatedPosition: ToolTipPositions = this.position;\n @tracked\n toolTipStyles: ToolTipStyles = DEFAULT_TOOLTIP_STYLES;\n @tracked\n arrowStyles: {\n left?: string;\n top?: string;\n } = {};\n @tracked\n id: string = this.args.id || guidFor({});\n @tracked\n _attachTo: undefined | HTMLElement | string | null = null;\n private timeoutId?: ReturnType<typeof later>;\n @action\n updateAttachTo(): void {\n if (!this.args.attachTo && this._attachTo) {\n this.removeAttachToHandlers();\n this._attachTo = null;\n return;\n }\n if (this.args.attachTo && this.args.attachTo !== this._attachTo) {\n next(()=>{\n this.removeAttachToHandlers();\n this._attachTo = this.args.attachTo;\n this.setupAttachToHandlers();\n });\n }\n }\n @action\n setupAttachToHandlers(): void {\n if (this._attachTo && this.attachTo) {\n this.attachTo.addEventListener('mousemove', this.showToolTip);\n this.attachTo.addEventListener('focusin', this.onFocus);\n //@ts-expect-error\n this.attachTo.addEventListener('mouseout', this.onMouseOut);\n this.attachTo.addEventListener('focusout', this.onBlur);\n this.positionToolTip();\n }\n }\n @action\n removeAttachToHandlers(): void {\n if (this._attachTo && this.attachTo) {\n this.attachTo.removeEventListener('mousemove', this.showToolTip);\n this.attachTo.removeEventListener('focusin', this.onFocus);\n //@ts-expect-error\n this.attachTo.removeEventListener('mouseout', this.onMouseOut);\n this.attachTo.removeEventListener('focusout', this.onBlur);\n }\n }\n @action\n clearAnimationTimeout(): void {\n if (this.timeoutId) {\n cancel(this.timeoutId);\n this.timeoutId = undefined;\n }\n }\n @action\n visibleDidUpdate(value1: boolean): void {\n if (this.visible === false && value1 === true) {\n requestAnimationFrame(this.testAnchor);\n }\n }\n willDestroy(): void {\n super.willDestroy();\n this.clearAnimationTimeout();\n this.removeAttachToHandlers();\n }\n @action\n testAnchor(): void {\n // when the tooltip is visible, this checks if the anchor is still part of document\n // this fixes when the react root is removed from the dom without unmounting\n // https://github.com/elastic/eui/issues/1105\n if (document.body.contains(this._anchor) === false) {\n // the anchor is no longer part of `document`\n this.hideToolTip();\n } else {\n if (this.visible) {\n // if still visible, keep checking\n requestAnimationFrame(this.testAnchor);\n }\n }\n }\n @action\n didInsertAnchor(ref1: HTMLElement): void {\n this.anchor = ref1;\n }\n @action\n setPopoverRef(ref1: HTMLElement | null): void {\n this.popover = ref1;\n // if the popover has been unmounted, clear\n // any previous knowledge about its size\n if (ref1 === null) {\n this.toolTipStyles = DEFAULT_TOOLTIP_STYLES;\n this.arrowStyles = {};\n } else {\n this.positionToolTip();\n }\n }\n @action\n showToolTip(): void {\n if (!this.timeoutId && !this.visible) {\n const fn1 = (): void =>{\n this.visible = true;\n };\n this.timeoutId = later(this, ()=>{\n scheduleOnce('afterRender', this, fn1);\n }, delayToMsMap[this.delay]);\n }\n }\n @cached\n get attachTo(): Element | null | undefined {\n if (typeof this._attachTo === 'string') {\n return document.querySelector(this._attachTo);\n } else {\n return this._attachTo;\n }\n }\n get _anchor(): Element | null {\n return this.attachTo || this.anchor;\n }\n @action\n positionToolTip(): void {\n const requestedPosition1 = this.position;\n if (!this._anchor || !this.popover) {\n return;\n }\n const { position: position1, left: left1, top: top1, arrow: arrow1 } = findPopoverPosition({\n anchor: this._anchor as HTMLElement,\n popover: this.popover,\n position: requestedPosition1,\n offset: 16,\n arrowConfig: {\n arrowWidth: 12,\n arrowBuffer: 4\n }\n });\n const windowWidth1 = document.documentElement.clientWidth || window.innerWidth;\n const useRightValue1 = windowWidth1 / 2 < left1;\n const toolTipStyles1: ToolTipStyles = {\n top: `${top1}px`,\n left: useRightValue1 ? 'auto' : `${left1}px`,\n right: useRightValue1 ? `${windowWidth1 - left1 - this.popover.offsetWidth}px` : 'auto'\n };\n this.visible = true;\n this.calculatedPosition = position1;\n this.toolTipStyles = toolTipStyles1;\n if (arrow1) {\n this.arrowStyles = {\n left: `${arrow1.left}px`,\n top: `${arrow1?.top}px`\n };\n }\n }\n @action\n hideToolTip(): void {\n if (this.args.isShown === true) {\n return;\n }\n this.clearAnimationTimeout();\n const fn1 = (): void =>{\n if (!this.isDestroying || !this.isDestroyed) {\n this.visible = false;\n }\n };\n scheduleOnce('afterRender', this, fn1);\n }\n @action\n hasFocusMouseMoveListener(): void {\n this.hideToolTip();\n window.removeEventListener('mousemove', this.hasFocusMouseMoveListener);\n }\n @action\n onKeyUp(event1: KeyboardEvent): void {\n if (event1.key === keys.TAB) {\n window.addEventListener('mousemove', this.hasFocusMouseMoveListener);\n }\n }\n @action\n onFocus(): void {\n this.hasFocus = true;\n this.showToolTip();\n }\n @action\n onBlur(): void {\n this.hasFocus = false;\n this.hideToolTip();\n }\n @action\n onMouseOut(event1: MouseEvent): void {\n // Prevent mousing over children from hiding the tooltip by testing for whether the mouse has\n // left the anchor for a non-child.\n if (this._anchor === event1.relatedTarget || (this._anchor != null && !this._anchor.contains(event1.relatedTarget as Node))) {\n if (!this.hasFocus) {\n this.hideToolTip();\n }\n }\n if (this.args.onMouseOut) {\n this.args.onMouseOut(event1);\n }\n }\n static{\n template(`\n {{#let\n (has-block \"content\") (has-block \"title\") (has-block \"anchor\")\n as |hasContentBlock hasTitleBlock hasAnchorBlock|\n }}\n {{#if @attachTo}}\n <span\n {{didInsert this.updateAttachTo}}\n {{didUpdate this.updateAttachTo @attachTo}}\n {{didUpdate\n (if (eq @isShown true) this.onFocus this.onBlur)\n @isShown\n }}\n {{didInsert (if (eq @isShown true) this.onFocus this.onBlur)}}\n ></span>\n {{else}}\n <span\n role=\"tooltip\"\n class={{classNames\n \"euiToolTipAnchor\"\n (if (eq @display \"block\") \"euiToolTipAnchor--displayBlock\")\n @anchorClassName\n }}\n {{didInsert this.didInsertAnchor}}\n {{on \"mouseover\" this.showToolTip}}\n {{on \"focusin\" this.onFocus}}\n {{on \"focusout\" this.onBlur}}\n {{on \"mouseout\" this.onMouseOut}}\n {{didUpdate\n (if (eq @isShown true) this.onFocus this.onBlur)\n @isShown\n }}\n {{didInsert (if (eq @isShown true) this.onFocus this.onBlur)}}\n >\n {{#if hasAnchorBlock}}\n {{yield this.id to=\"anchor\"}}\n {{else}}\n {{yield this.id}}\n {{/if}}\n </span>\n {{/if}}\n {{#if\n (and this.visible (or @title @content hasContentBlock hasTitleBlock))\n }}\n <EuiPortal>\n <EuiToolTipPopover\n class={{classNames\n \"euiToolTip\"\n @className\n componentName=\"EuiToolTip\"\n position=this.calculatedPosition\n }}\n @positionToolTip={{this.positionToolTip}}\n @popoverRef={{this.setPopoverRef}}\n id={{this.id}}\n @hasTitle={{if\n (and (argOrDefault @hasTitle true) (or hasTitleBlock @title))\n true\n }}\n role=\"tooltip\"\n ...attributes\n {{style this.toolTipStyles}}\n >\n <:title>\n {{#if hasTitleBlock}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </:title>\n <:content>\n <div class=\"euiToolTip__arrow\" {{style this.arrowStyles}}></div>\n <div {{resizeObserver onResize=this.positionToolTip}}>\n {{#if hasContentBlock}}\n {{yield to=\"content\"}}\n {{else}}\n {{@content}}\n {{/if}}\n </div>\n </:content>\n </EuiToolTipPopover>\n </EuiPortal>\n {{/if}}\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS10b29sLXRpcC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgY2FjaGVkLCB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgeyBndWlkRm9yIH0gZnJvbSAnQGVtYmVyL29iamVjdC9pbnRlcm5hbHMnO1xuaW1wb3J0IGRpZEluc2VydCBmcm9tICdAZW1iZXIvcmVuZGVyLW1vZGlmaWVycy9tb2RpZmllcnMvZGlkLWluc2VydCc7XG5pbXBvcnQgZGlkVXBkYXRlIGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCB7IGNhbmNlbCwgbGF0ZXIsIG5leHQsIHNjaGVkdWxlT25jZSB9IGZyb20gJ0BlbWJlci9ydW5sb29wJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJ2VtYmVyLXN0eWxlLW1vZGlmaWVyL21vZGlmaWVycy9zdHlsZSc7XG5pbXBvcnQgeyBhbmQsIGVxLCBvciB9IGZyb20gJ2VtYmVyLXRydXRoLWhlbHBlcnMnO1xuXG5pbXBvcnQgYXJnT3JEZWZhdWx0LCB7IGFyZ09yRGVmYXVsdERlY29yYXRvciB9IGZyb20gJy4uL2hlbHBlcnMvYXJnLW9yLWRlZmF1bHQudHMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnLi4vaGVscGVycy9jbGFzcy1uYW1lcy50cyc7XG5pbXBvcnQgcmVzaXplT2JzZXJ2ZXIgZnJvbSAnLi4vbW9kaWZpZXJzL3Jlc2l6ZS1vYnNlcnZlci50cyc7XG5pbXBvcnQgeyBrZXlzIH0gZnJvbSAnLi4vdXRpbHMva2V5cy50cyc7XG5pbXBvcnQgeyBmaW5kUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvcG9wb3Zlci9pbmRleC50cyc7XG5pbXBvcnQgRXVpUG9ydGFsIGZyb20gJy4vZXVpLXBvcnRhbC5ndHMnO1xuaW1wb3J0IEV1aVRvb2xUaXBQb3BvdmVyIGZyb20gJy4vZXVpLXRvb2wtdGlwLXBvcG92ZXIuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBFdWlUb29sdGlwUG9wb3ZlclNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXRvb2wtdGlwLXBvcG92ZXInO1xuXG5leHBvcnQgdHlwZSBUb29sVGlwUG9zaXRpb25zID0gJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCc7XG5cbmV4cG9ydCB0eXBlIFRvb2xUaXBEZWxheSA9ICdyZWd1bGFyJyB8ICdsb25nJztcblxuY29uc3QgZGVsYXlUb01zTWFwOiB7IFtrZXkgaW4gVG9vbFRpcERlbGF5XTogbnVtYmVyIH0gPSB7XG4gIHJlZ3VsYXI6IDI1MCxcbiAgbG9uZzogMjUwICogNVxufTtcblxuaW50ZXJmYWNlIFRvb2xUaXBTdHlsZXMge1xuICB0b3A6IHN0cmluZztcbiAgbGVmdDogc3RyaW5nIHwgJ2F1dG8nO1xuICByaWdodD86IHN0cmluZyB8ICdhdXRvJztcbiAgb3BhY2l0eT86IHN0cmluZztcbiAgdmlzaWJpbGl0eT86ICdoaWRkZW4nO1xuICBkaXNwbGF5PzogJ2lubGluZUJsb2NrJztcbn1cblxuY29uc3QgZGlzcGxheVRvQ2xhc3NOYW1lTWFwID0ge1xuICBpbmxpbmVCbG9jazogdW5kZWZpbmVkLFxuICBibG9jazogJ2V1aVRvb2xUaXBBbmNob3ItLWRpc3BsYXlCbG9jaydcbn07XG5cbmNvbnN0IERFRkFVTFRfVE9PTFRJUF9TVFlMRVM6IFRvb2xUaXBTdHlsZXMgPSB7XG4gIC8vIHBvc2l0aW9uIHRoZSB0b29sdGlwIGNvbnRlbnQgbmVhciB0aGUgdG9wLWxlZnRcbiAgLy8gY29ybmVyIG9mIHRoZSB3aW5kb3cgc28gaXQgY2FuJ3QgY3JlYXRlIHNjcm9sbGJhcnNcbiAgLy8gNTAsNTAgYmVjYXVzZSB3aG8ga25vd3Mgd2hhdCBuZWdhdGl2ZSBtYXJnaW5zLCBwYWRkaW5nLCBldGNcbiAgdG9wOiAnNTBweCcsXG4gIGxlZnQ6ICc1MHB4JyxcbiAgLy8ganVzdCBpbiBjYXNlLCBhdm9pZCBhbnkgcG90ZW50aWFsIGZsaWNrZXIgYnkgaGlkaW5nXG4gIC8vIHRoZSB0b29sdGlwIGJlZm9yZSBpdCBpcyBwb3NpdGlvbmVkXG4gIG9wYWNpdHk6ICcwJyxcbiAgLy8gcHJldmVudCBhY2NpZGVudGFsIG1vdXNlIGludGVyYWN0aW9uIHdoaWxlIHBvc2l0aW9uaW5nXG4gIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICBkaXNwbGF5OiAnaW5saW5lQmxvY2snXG59O1xuXG5leHBvcnQgdHlwZSBFdWlUb29sdGlwQXJncyA9IHtcbiAgLyoqXG4gICAqIFBhc3NlcyBvbnRvIHRoZSB0aGUgdHJpZ2dlci5cbiAgICovXG4gIGFuY2hvckNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhc3NlcyBvbnRvIHRoZSB0b29sdGlwIGl0c2VsZiwgbm90IHRoZSB0cmlnZ2VyLlxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG1haW4gY29udGVudCBvZiB5b3VyIHRvb2x0aXAuXG4gICAqL1xuICBjb250ZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogQ29tbW9uIGRpc3BsYXkgYWx0ZXJuYXRpdmVzIGZvciB0aGUgYW5jaG9yIHdyYXBwZXJcbiAgICovXG4gIGRpc3BsYXk_OiBrZXlvZiB0eXBlb2YgZGlzcGxheVRvQ2xhc3NOYW1lTWFwO1xuICAvKipcbiAgICogRGVsYXkgYmVmb3JlIHNob3dpbmcgdG9vbHRpcC4gR29vZCBmb3IgcmVwZWF0YWJsZSBpdGVtcy5cbiAgICovXG4gIGRlbGF5PzogVG9vbFRpcERlbGF5O1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgdGl0bGUgZm9yIHlvdXIgdG9vbHRpcC5cbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogVW5sZXNzIHlvdSBwcm92aWRlIG9uZSwgdGhpcyB3aWxsIGJlIHJhbmRvbWx5IGdlbmVyYXRlZC5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogU3VnZ2VzdGVkIHBvc2l0aW9uLiBJZiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gZm9yIGl0IHRoaXMgd2lsbCBiZSBjaGFuZ2VkLlxuICAgKi9cbiAgcG9zaXRpb24_OiBUb29sVGlwUG9zaXRpb25zO1xuXG4gIGF0dGFjaFRvPzogdW5kZWZpbmVkIHwgSFRNTEVsZW1lbnQgfCBzdHJpbmcgfCBudWxsO1xuXG4gIGlzU2hvd24_OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJZiBzdXBwbGllZCwgY2FsbGVkIHdoZW4gbW91c2UgbW92ZW1lbnQgY2F1c2VzIHRoZSB0b29sIHRpcCB0byBiZVxuICAgKiBoaWRkZW4uXG4gICAqL1xuICBvbk1vdXNlT3V0PzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBvbkZvY3VzPzogKCkgPT4gdm9pZDtcbiAgb25CbHVyPzogKCkgPT4gdm9pZDtcblxuICBoYXNUaXRsZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVRvb2xUaXBTaWduYXR1cmUge1xuICBFbGVtZW50OiBFdWlUb29sdGlwUG9wb3ZlclNpZ25hdHVyZVsnRWxlbWVudCddO1xuICBBcmdzOiBFdWlUb29sdGlwQXJncztcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdD86IFtpZDogc3RyaW5nXTtcbiAgICB0aXRsZT86IFtdO1xuICAgIGNvbnRlbnQ_OiBbXTtcbiAgICBhbmNob3I_OiBbaWQ6IHN0cmluZ107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV1aVRvb2xUaXAgZXh0ZW5kcyBDb21wb25lbnQ8RXVpVG9vbFRpcFNpZ25hdHVyZT4ge1xuICBhbmNob3I6IG51bGwgfCBIVE1MRWxlbWVudCA9IG51bGw7XG4gIHBvcG92ZXI6IG51bGwgfCBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcigndG9wJykgcG9zaXRpb24hOiBUb29sVGlwUG9zaXRpb25zO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdyZWd1bGFyJykgZGVsYXkhOiBUb29sVGlwRGVsYXk7XG5cbiAgLy9TVEFURVxuICBAdHJhY2tlZCB2aXNpYmxlID0gZmFsc2U7XG4gIEB0cmFja2VkIGhhc0ZvY3VzID0gZmFsc2U7XG4gIEB0cmFja2VkIGNhbGN1bGF0ZWRQb3NpdGlvbjogVG9vbFRpcFBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb247XG4gIEB0cmFja2VkIHRvb2xUaXBTdHlsZXM6IFRvb2xUaXBTdHlsZXMgPSBERUZBVUxUX1RPT0xUSVBfU1RZTEVTO1xuICBAdHJhY2tlZCBhcnJvd1N0eWxlczogeyBsZWZ0Pzogc3RyaW5nOyB0b3A_OiBzdHJpbmcgfSA9IHt9O1xuICBAdHJhY2tlZCBpZDogc3RyaW5nID0gdGhpcy5hcmdzLmlkIHx8IGd1aWRGb3Ioe30pO1xuICBAdHJhY2tlZCBfYXR0YWNoVG86IHVuZGVmaW5lZCB8IEhUTUxFbGVtZW50IHwgc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSB0aW1lb3V0SWQ_OiBSZXR1cm5UeXBlPHR5cGVvZiBsYXRlcj47XG5cbiAgQGFjdGlvblxuICB1cGRhdGVBdHRhY2hUbygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXJncy5hdHRhY2hUbyAmJiB0aGlzLl9hdHRhY2hUbykge1xuICAgICAgdGhpcy5yZW1vdmVBdHRhY2hUb0hhbmRsZXJzKCk7XG4gICAgICB0aGlzLl9hdHRhY2hUbyA9IG51bGw7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hcmdzLmF0dGFjaFRvICYmIHRoaXMuYXJncy5hdHRhY2hUbyAhPT0gdGhpcy5fYXR0YWNoVG8pIHtcbiAgICAgIG5leHQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dGFjaFRvSGFuZGxlcnMoKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoVG8gPSB0aGlzLmFyZ3MuYXR0YWNoVG87XG4gICAgICAgIHRoaXMuc2V0dXBBdHRhY2hUb0hhbmRsZXJzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIHNldHVwQXR0YWNoVG9IYW5kbGVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYXR0YWNoVG8gJiYgdGhpcy5hdHRhY2hUbykge1xuICAgICAgdGhpcy5hdHRhY2hUby5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLnNob3dUb29sVGlwKTtcbiAgICAgIHRoaXMuYXR0YWNoVG8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHRoaXMub25Gb2N1cyk7XG4gICAgICAvL0B0cy1leHBlY3QtZXJyb3JcbiAgICAgIHRoaXMuYXR0YWNoVG8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCB0aGlzLm9uTW91c2VPdXQpO1xuICAgICAgdGhpcy5hdHRhY2hUby5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMub25CbHVyKTtcbiAgICAgIHRoaXMucG9zaXRpb25Ub29sVGlwKCk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICByZW1vdmVBdHRhY2hUb0hhbmRsZXJzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hdHRhY2hUbyAmJiB0aGlzLmF0dGFjaFRvKSB7XG4gICAgICB0aGlzLmF0dGFjaFRvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuc2hvd1Rvb2xUaXApO1xuICAgICAgdGhpcy5hdHRhY2hUby5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5vbkZvY3VzKTtcbiAgICAgIC8vQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdGhpcy5hdHRhY2hUby5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIHRoaXMub25Nb3VzZU91dCk7XG4gICAgICB0aGlzLmF0dGFjaFRvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgdGhpcy5vbkJsdXIpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgY2xlYXJBbmltYXRpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVvdXRJZCkge1xuICAgICAgY2FuY2VsKHRoaXMudGltZW91dElkKTtcbiAgICAgIHRoaXMudGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgdmlzaWJsZURpZFVwZGF0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGUgPT09IGZhbHNlICYmIHZhbHVlID09PSB0cnVlKSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy50ZXN0QW5jaG9yKTtcbiAgICB9XG4gIH1cblxuICB3aWxsRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci53aWxsRGVzdHJveSgpO1xuICAgIHRoaXMuY2xlYXJBbmltYXRpb25UaW1lb3V0KCk7XG4gICAgdGhpcy5yZW1vdmVBdHRhY2hUb0hhbmRsZXJzKCk7XG4gIH1cblxuICBAYWN0aW9uXG4gIHRlc3RBbmNob3IoKTogdm9pZCB7XG4gICAgLy8gd2hlbiB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlLCB0aGlzIGNoZWNrcyBpZiB0aGUgYW5jaG9yIGlzIHN0aWxsIHBhcnQgb2YgZG9jdW1lbnRcbiAgICAvLyB0aGlzIGZpeGVzIHdoZW4gdGhlIHJlYWN0IHJvb3QgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb20gd2l0aG91dCB1bm1vdW50aW5nXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2VsYXN0aWMvZXVpL2lzc3Vlcy8xMTA1XG4gICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5fYW5jaG9yKSA9PT0gZmFsc2UpIHtcbiAgICAgIC8vIHRoZSBhbmNob3IgaXMgbm8gbG9uZ2VyIHBhcnQgb2YgYGRvY3VtZW50YFxuICAgICAgdGhpcy5oaWRlVG9vbFRpcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgIC8vIGlmIHN0aWxsIHZpc2libGUsIGtlZXAgY2hlY2tpbmdcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGVzdEFuY2hvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBkaWRJbnNlcnRBbmNob3IocmVmOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuYW5jaG9yID0gcmVmO1xuICB9XG5cbiAgQGFjdGlvblxuICBzZXRQb3BvdmVyUmVmKHJlZjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gcmVmO1xuXG4gICAgLy8gaWYgdGhlIHBvcG92ZXIgaGFzIGJlZW4gdW5tb3VudGVkLCBjbGVhclxuICAgIC8vIGFueSBwcmV2aW91cyBrbm93bGVkZ2UgYWJvdXQgaXRzIHNpemVcbiAgICBpZiAocmVmID09PSBudWxsKSB7XG4gICAgICB0aGlzLnRvb2xUaXBTdHlsZXMgPSBERUZBVUxUX1RPT0xUSVBfU1RZTEVTO1xuICAgICAgdGhpcy5hcnJvd1N0eWxlcyA9IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvc2l0aW9uVG9vbFRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgc2hvd1Rvb2xUaXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRpbWVvdXRJZCAmJiAhdGhpcy52aXNpYmxlKSB7XG4gICAgICBjb25zdCBmbiA9ICgpOiB2b2lkID0-IHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMudGltZW91dElkID0gbGF0ZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICgpID0-IHtcbiAgICAgICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgZm4pO1xuICAgICAgICB9LFxuICAgICAgICBkZWxheVRvTXNNYXBbdGhpcy5kZWxheV1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQGNhY2hlZFxuICBnZXQgYXR0YWNoVG8oKTogRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fYXR0YWNoVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLl9hdHRhY2hUbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9hdHRhY2hUbztcbiAgICB9XG4gIH1cblxuICBnZXQgX2FuY2hvcigpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoVG8gfHwgdGhpcy5hbmNob3I7XG4gIH1cblxuICBAYWN0aW9uXG4gIHBvc2l0aW9uVG9vbFRpcCgpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0ZWRQb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG5cbiAgICBpZiAoIXRoaXMuX2FuY2hvciB8fCAhdGhpcy5wb3BvdmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBwb3NpdGlvbiwgbGVmdCwgdG9wLCBhcnJvdyB9ID0gZmluZFBvcG92ZXJQb3NpdGlvbih7XG4gICAgICBhbmNob3I6IHRoaXMuX2FuY2hvciBhcyBIVE1MRWxlbWVudCxcbiAgICAgIHBvcG92ZXI6IHRoaXMucG9wb3ZlcixcbiAgICAgIHBvc2l0aW9uOiByZXF1ZXN0ZWRQb3NpdGlvbixcbiAgICAgIG9mZnNldDogMTYsIC8vIG9mZnNldCBwb3BvdmVyIDE2cHggZnJvbSB0aGUgYW5jaG9yXG4gICAgICBhcnJvd0NvbmZpZzoge1xuICAgICAgICBhcnJvd1dpZHRoOiAxMixcbiAgICAgICAgYXJyb3dCdWZmZXI6IDRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHdpbmRvd1dpZHRoID1cbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCB1c2VSaWdodFZhbHVlID0gd2luZG93V2lkdGggLyAyIDwgbGVmdDtcblxuICAgIGNvbnN0IHRvb2xUaXBTdHlsZXM6IFRvb2xUaXBTdHlsZXMgPSB7XG4gICAgICB0b3A6IGAke3RvcH1weGAsXG4gICAgICBsZWZ0OiB1c2VSaWdodFZhbHVlID8gJ2F1dG8nIDogYCR7bGVmdH1weGAsXG4gICAgICByaWdodDogdXNlUmlnaHRWYWx1ZVxuICAgICAgICA_IGAke3dpbmRvd1dpZHRoIC0gbGVmdCAtIHRoaXMucG9wb3Zlci5vZmZzZXRXaWR0aH1weGBcbiAgICAgICAgOiAnYXV0bydcbiAgICB9O1xuXG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmNhbGN1bGF0ZWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMudG9vbFRpcFN0eWxlcyA9IHRvb2xUaXBTdHlsZXM7XG5cbiAgICBpZiAoYXJyb3cpIHtcbiAgICAgIHRoaXMuYXJyb3dTdHlsZXMgPSB7XG4gICAgICAgIGxlZnQ6IGAke2Fycm93LmxlZnR9cHhgLFxuICAgICAgICB0b3A6IGAke2Fycm93Py50b3B9cHhgXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgaGlkZVRvb2xUaXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXJncy5pc1Nob3duID09PSB0cnVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhckFuaW1hdGlvblRpbWVvdXQoKTtcblxuICAgIGNvbnN0IGZuID0gKCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWluZyB8fCAhdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgc2NoZWR1bGVPbmNlKCdhZnRlclJlbmRlcicsIHRoaXMsIGZuKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgaGFzRm9jdXNNb3VzZU1vdmVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFzRm9jdXNNb3VzZU1vdmVMaXN0ZW5lcik7XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBrZXlzLlRBQikge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFzRm9jdXNNb3VzZU1vdmVMaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuc2hvd1Rvb2xUaXAoKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTtcbiAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uTW91c2VPdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBQcmV2ZW50IG1vdXNpbmcgb3ZlciBjaGlsZHJlbiBmcm9tIGhpZGluZyB0aGUgdG9vbHRpcCBieSB0ZXN0aW5nIGZvciB3aGV0aGVyIHRoZSBtb3VzZSBoYXNcbiAgICAvLyBsZWZ0IHRoZSBhbmNob3IgZm9yIGEgbm9uLWNoaWxkLlxuICAgIGlmIChcbiAgICAgIHRoaXMuX2FuY2hvciA9PT0gZXZlbnQucmVsYXRlZFRhcmdldCB8fFxuICAgICAgKHRoaXMuX2FuY2hvciAhPSBudWxsICYmXG4gICAgICAgICF0aGlzLl9hbmNob3IuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSlcbiAgICApIHtcbiAgICAgIGlmICghdGhpcy5oYXNGb2N1cykge1xuICAgICAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXJncy5vbk1vdXNlT3V0KSB7XG4gICAgICB0aGlzLmFyZ3Mub25Nb3VzZU91dChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2xldFxuICAgICAgKGhhcy1ibG9jayBcImNvbnRlbnRcIikgKGhhcy1ibG9jayBcInRpdGxlXCIpIChoYXMtYmxvY2sgXCJhbmNob3JcIilcbiAgICAgIGFzIHxoYXNDb250ZW50QmxvY2sgaGFzVGl0bGVCbG9jayBoYXNBbmNob3JCbG9ja3xcbiAgICB9fVxuICAgICAge3sjaWYgQGF0dGFjaFRvfX1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB7e2RpZEluc2VydCB0aGlzLnVwZGF0ZUF0dGFjaFRvfX1cbiAgICAgICAgICB7e2RpZFVwZGF0ZSB0aGlzLnVwZGF0ZUF0dGFjaFRvIEBhdHRhY2hUb319XG4gICAgICAgICAge3tkaWRVcGRhdGVcbiAgICAgICAgICAgIChpZiAoZXEgQGlzU2hvd24gdHJ1ZSkgdGhpcy5vbkZvY3VzIHRoaXMub25CbHVyKVxuICAgICAgICAgICAgQGlzU2hvd25cbiAgICAgICAgICB9fVxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IChpZiAoZXEgQGlzU2hvd24gdHJ1ZSkgdGhpcy5vbkZvY3VzIHRoaXMub25CbHVyKX19XG4gICAgICAgID48L3NwYW4-XG4gICAgICB7e2Vsc2V9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgIHJvbGU9XCJ0b29sdGlwXCJcbiAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgIFwiZXVpVG9vbFRpcEFuY2hvclwiXG4gICAgICAgICAgICAoaWYgKGVxIEBkaXNwbGF5IFwiYmxvY2tcIikgXCJldWlUb29sVGlwQW5jaG9yLS1kaXNwbGF5QmxvY2tcIilcbiAgICAgICAgICAgIEBhbmNob3JDbGFzc05hbWVcbiAgICAgICAgICB9fVxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMuZGlkSW5zZXJ0QW5jaG9yfX1cbiAgICAgICAgICB7e29uIFwibW91c2VvdmVyXCIgdGhpcy5zaG93VG9vbFRpcH19XG4gICAgICAgICAge3tvbiBcImZvY3VzaW5cIiB0aGlzLm9uRm9jdXN9fVxuICAgICAgICAgIHt7b24gXCJmb2N1c291dFwiIHRoaXMub25CbHVyfX1cbiAgICAgICAgICB7e29uIFwibW91c2VvdXRcIiB0aGlzLm9uTW91c2VPdXR9fVxuICAgICAgICAgIHt7ZGlkVXBkYXRlXG4gICAgICAgICAgICAoaWYgKGVxIEBpc1Nob3duIHRydWUpIHRoaXMub25Gb2N1cyB0aGlzLm9uQmx1cilcbiAgICAgICAgICAgIEBpc1Nob3duXG4gICAgICAgICAgfX1cbiAgICAgICAgICB7e2RpZEluc2VydCAoaWYgKGVxIEBpc1Nob3duIHRydWUpIHRoaXMub25Gb2N1cyB0aGlzLm9uQmx1cil9fVxuICAgICAgICA-XG4gICAgICAgICAge3sjaWYgaGFzQW5jaG9yQmxvY2t9fVxuICAgICAgICAgICAge3t5aWVsZCB0aGlzLmlkIHRvPVwiYW5jaG9yXCJ9fVxuICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICB7e3lpZWxkIHRoaXMuaWR9fVxuICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAge3svaWZ9fVxuICAgICAge3sjaWZcbiAgICAgICAgKGFuZCB0aGlzLnZpc2libGUgKG9yIEB0aXRsZSBAY29udGVudCBoYXNDb250ZW50QmxvY2sgaGFzVGl0bGVCbG9jaykpXG4gICAgICB9fVxuICAgICAgICA8RXVpUG9ydGFsPlxuICAgICAgICAgIDxFdWlUb29sVGlwUG9wb3ZlclxuICAgICAgICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgICAgICAgIFwiZXVpVG9vbFRpcFwiXG4gICAgICAgICAgICAgIEBjbGFzc05hbWVcbiAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT1cIkV1aVRvb2xUaXBcIlxuICAgICAgICAgICAgICBwb3NpdGlvbj10aGlzLmNhbGN1bGF0ZWRQb3NpdGlvblxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIEBwb3NpdGlvblRvb2xUaXA9e3t0aGlzLnBvc2l0aW9uVG9vbFRpcH19XG4gICAgICAgICAgICBAcG9wb3ZlclJlZj17e3RoaXMuc2V0UG9wb3ZlclJlZn19XG4gICAgICAgICAgICBpZD17e3RoaXMuaWR9fVxuICAgICAgICAgICAgQGhhc1RpdGxlPXt7aWZcbiAgICAgICAgICAgICAgKGFuZCAoYXJnT3JEZWZhdWx0IEBoYXNUaXRsZSB0cnVlKSAob3IgaGFzVGl0bGVCbG9jayBAdGl0bGUpKVxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAge3tzdHlsZSB0aGlzLnRvb2xUaXBTdHlsZXN9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDw6dGl0bGU-XG4gICAgICAgICAgICAgIHt7I2lmIGhhc1RpdGxlQmxvY2t9fVxuICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgICAgICB7e0B0aXRsZX19XG4gICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgIDwvOnRpdGxlPlxuICAgICAgICAgICAgPDpjb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpVG9vbFRpcF9fYXJyb3dcIiB7e3N0eWxlIHRoaXMuYXJyb3dTdHlsZXN9fT48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiB7e3Jlc2l6ZU9ic2VydmVyIG9uUmVzaXplPXRoaXMucG9zaXRpb25Ub29sVGlwfX0-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzQ29udGVudEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJjb250ZW50XCJ9fVxuICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICB7e0Bjb250ZW50fX1cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC86Y29udGVudD5cbiAgICAgICAgICA8L0V1aVRvb2xUaXBQb3BvdmVyPlxuICAgICAgICA8L0V1aVBvcnRhbD5cbiAgICAgIHt7L2lmfX1cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxFQUFFLE9BQU8sUUFBUSxvQkFBb0I7QUFDcEQsU0FBUyxFQUFFLFFBQVEsa0JBQWtCO0FBQ3JDLFNBQVMsTUFBTSxRQUFRLGdCQUFnQjtBQUN2QyxTQUFTLE9BQU8sUUFBUSwwQkFBMEI7QUFDbEQsT0FBTyxlQUFlLCtDQUErQztBQUNyRSxPQUFPLGVBQWUsK0NBQStDO0FBQ3JFLFNBQVMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxRQUFRLGlCQUFpQjtBQUVuRSxPQUFPLFdBQVcsdUNBQXVDO0FBQ3pELFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsc0JBQXNCO0FBRWxELE9BQU8sZ0JBQWdCLHFCQUFxQixRQUFRLCtCQUErQjtBQUNuRixPQUFPLGdCQUFnQiw0QkFBNEI7QUFDbkQsT0FBTyxvQkFBb0Isa0NBQWtDO0FBQzdELFNBQVMsSUFBSSxRQUFRLG1CQUFtQjtBQUN4QyxTQUFTLG1CQUFtQixRQUFRLDRCQUE0QjtBQUNoRSxPQUFPLGVBQWUsbUJBQW1CO0FBQ3pDLE9BQU8sdUJBQXVCLDZCQUE2QjtBQUUzRCxjQUFjLDBCQUEwQixRQUFRLHlCQUF5QjtBQUV6RSxZQUFZLG1C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"],"names":["cached","macroCondition","dependencySatisfies","importSync","delayToMsMap","regular","long","DEFAULT_TOOLTIP_STYLES","top","left","opacity","visibility","display","EuiToolTip","Component","anchor","popover","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","position","args","id","guidFor","timeoutId","updateAttachTo","attachTo","_attachTo","removeAttachToHandlers","next","setupAttachToHandlers","n","action","addEventListener","showToolTip","onFocus","onMouseOut","onBlur","positionToolTip","removeEventListener","clearAnimationTimeout","cancel","undefined","visibleDidUpdate","value1","visible","requestAnimationFrame","testAnchor","willDestroy","document","body","contains","_anchor","hideToolTip","didInsertAnchor","ref1","setPopoverRef","toolTipStyles","arrowStyles","fn1","later","scheduleOnce","delay","querySelector","requestedPosition1","position1","left1","top1","arrow","arrow1","findPopoverPosition","offset","arrowConfig","arrowWidth","arrowBuffer","windowWidth1","documentElement","clientWidth","window","innerWidth","useRightValue1","toolTipStyles1","right","offsetWidth","calculatedPosition","isShown","isDestroying","isDestroyed","hasFocusMouseMoveListener","onKeyUp","event1","key","keys","TAB","hasFocus","relatedTarget","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","didUpdate","eq","classNames","on","and","or","EuiPortal","EuiToolTipPopover","argOrDefault","style","resizeObserver"],"mappings":"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"}
1
+ {"version":3,"file":"eui-tool-tip.js","sources":["../../src/components/eui-tool-tip.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-insert';\nimport { cancel, later, next, scheduleOnce } from '@ember/runloop';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, or } from 'ember-truth-helpers';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport { keys } from '../utils/keys.ts';\nimport { findPopoverPosition } from '../utils/popover/index.ts';\nimport EuiPortal from './eui-portal.gts';\nimport EuiToolTipPopover from './eui-tool-tip-popover.gts';\nimport type { EuiTooltipPopoverSignature } from './eui-tool-tip-popover';\nexport type ToolTipPositions = 'top' | 'right' | 'bottom' | 'left';\nexport type ToolTipDelay = 'regular' | 'long';\nconst delayToMsMap: {\n [key in ToolTipDelay]: number;\n} = {\n regular: 250,\n long: 250 * 5\n};\ninterface ToolTipStyles {\n top: string;\n left: string | 'auto';\n right?: string | 'auto';\n opacity?: string;\n visibility?: 'hidden';\n display?: 'inlineBlock';\n}\nconst displayToClassNameMap = {\n inlineBlock: undefined,\n block: 'euiToolTipAnchor--displayBlock'\n};\nconst DEFAULT_TOOLTIP_STYLES: ToolTipStyles = {\n // position the tooltip content near the top-left\n // corner of the window so it can't create scrollbars\n // 50,50 because who knows what negative margins, padding, etc\n top: '50px',\n left: '50px',\n // just in case, avoid any potential flicker by hiding\n // the tooltip before it is positioned\n opacity: '0',\n // prevent accidental mouse interaction while positioning\n visibility: 'hidden',\n display: 'inlineBlock'\n};\nexport type EuiTooltipArgs = {\n /**\n * Passes onto the the trigger.\n */ anchorClassName?: string;\n /**\n * Passes onto the tooltip itself, not the trigger.\n */ className?: string;\n /**\n * The main content of your tooltip.\n */ content?: string;\n /**\n * Common display alternatives for the anchor wrapper\n */ display?: keyof typeof displayToClassNameMap;\n /**\n * Delay before showing tooltip. Good for repeatable items.\n */ delay?: ToolTipDelay;\n /**\n * An optional title for your tooltip.\n */ title?: string;\n /**\n * Unless you provide one, this will be randomly generated.\n */ id?: string;\n /**\n * Suggested position. If there is not enough room for it this will be changed.\n */ position?: ToolTipPositions;\n attachTo?: undefined | HTMLElement | string | null;\n isShown?: boolean | undefined;\n /**\n * If supplied, called when mouse movement causes the tool tip to be\n * hidden.\n */ onMouseOut?: (event: MouseEvent) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n hasTitle?: boolean;\n};\nexport interface EuiToolTipSignature {\n Element: EuiTooltipPopoverSignature['Element'];\n Args: EuiTooltipArgs;\n Blocks: {\n default?: [id: string];\n title?: [];\n content?: [];\n anchor?: [id: string];\n };\n}\nexport default class EuiToolTip extends Component<EuiToolTipSignature> {\n anchor: null | HTMLElement = null;\n popover: null | HTMLElement = null;\n @argOrDefaultDecorator('top')\n position: ToolTipPositions;\n @argOrDefaultDecorator('regular')\n delay: ToolTipDelay;\n //STATE\n @tracked\n visible = false;\n @tracked\n hasFocus = false;\n @tracked\n calculatedPosition: ToolTipPositions = this.position;\n @tracked\n toolTipStyles: ToolTipStyles = DEFAULT_TOOLTIP_STYLES;\n @tracked\n arrowStyles: {\n left?: string;\n top?: string;\n } = {};\n @tracked\n id: string = this.args.id || guidFor({});\n @tracked\n _attachTo: undefined | HTMLElement | string | null = null;\n private timeoutId?: ReturnType<typeof later>;\n @action\n updateAttachTo(): void {\n if (!this.args.attachTo && this._attachTo) {\n this.removeAttachToHandlers();\n this._attachTo = null;\n return;\n }\n if (this.args.attachTo && this.args.attachTo !== this._attachTo) {\n next(()=>{\n this.removeAttachToHandlers();\n this._attachTo = this.args.attachTo;\n this.setupAttachToHandlers();\n });\n }\n }\n @action\n setupAttachToHandlers(): void {\n if (this._attachTo && this.attachTo) {\n this.attachTo.addEventListener('mousemove', this.showToolTip);\n this.attachTo.addEventListener('focusin', this.onFocus);\n //@ts-expect-error\n this.attachTo.addEventListener('mouseout', this.onMouseOut);\n this.attachTo.addEventListener('focusout', this.onBlur);\n this.positionToolTip();\n }\n }\n @action\n removeAttachToHandlers(): void {\n if (this._attachTo && this.attachTo) {\n this.attachTo.removeEventListener('mousemove', this.showToolTip);\n this.attachTo.removeEventListener('focusin', this.onFocus);\n //@ts-expect-error\n this.attachTo.removeEventListener('mouseout', this.onMouseOut);\n this.attachTo.removeEventListener('focusout', this.onBlur);\n }\n }\n @action\n clearAnimationTimeout(): void {\n if (this.timeoutId) {\n cancel(this.timeoutId);\n this.timeoutId = undefined;\n }\n }\n @action\n visibleDidUpdate(value1: boolean): void {\n if (this.visible === false && value1 === true) {\n requestAnimationFrame(this.testAnchor);\n }\n }\n willDestroy(): void {\n super.willDestroy();\n this.clearAnimationTimeout();\n this.removeAttachToHandlers();\n }\n @action\n testAnchor(): void {\n // when the tooltip is visible, this checks if the anchor is still part of document\n // this fixes when the react root is removed from the dom without unmounting\n // https://github.com/elastic/eui/issues/1105\n if (document.body.contains(this._anchor) === false) {\n // the anchor is no longer part of `document`\n this.hideToolTip();\n } else {\n if (this.visible) {\n // if still visible, keep checking\n requestAnimationFrame(this.testAnchor);\n }\n }\n }\n @action\n didInsertAnchor(ref1: HTMLElement): void {\n this.anchor = ref1;\n }\n @action\n setPopoverRef(ref1: HTMLElement | null): void {\n this.popover = ref1;\n // if the popover has been unmounted, clear\n // any previous knowledge about its size\n if (ref1 === null) {\n this.toolTipStyles = DEFAULT_TOOLTIP_STYLES;\n this.arrowStyles = {};\n } else {\n this.positionToolTip();\n }\n }\n @action\n showToolTip(): void {\n if (!this.timeoutId && !this.visible) {\n const fn1 = (): void =>{\n this.visible = true;\n };\n this.timeoutId = later(this, ()=>{\n scheduleOnce('afterRender', this, fn1);\n }, delayToMsMap[this.delay]);\n }\n }\n @cached\n get attachTo(): Element | null | undefined {\n if (typeof this._attachTo === 'string') {\n return document.querySelector(this._attachTo);\n } else {\n return this._attachTo;\n }\n }\n get _anchor(): Element | null {\n return this.attachTo || this.anchor;\n }\n @action\n positionToolTip(): void {\n const requestedPosition1 = this.position;\n if (!this._anchor || !this.popover) {\n return;\n }\n const { position: position1, left: left1, top: top1, arrow: arrow1 } = findPopoverPosition({\n anchor: this._anchor as HTMLElement,\n popover: this.popover,\n position: requestedPosition1,\n offset: 16,\n arrowConfig: {\n arrowWidth: 12,\n arrowBuffer: 4\n }\n });\n const windowWidth1 = document.documentElement.clientWidth || window.innerWidth;\n const useRightValue1 = windowWidth1 / 2 < left1;\n const toolTipStyles1: ToolTipStyles = {\n top: `${top1}px`,\n left: useRightValue1 ? 'auto' : `${left1}px`,\n right: useRightValue1 ? `${windowWidth1 - left1 - this.popover.offsetWidth}px` : 'auto'\n };\n this.visible = true;\n this.calculatedPosition = position1;\n this.toolTipStyles = toolTipStyles1;\n if (arrow1) {\n this.arrowStyles = {\n left: `${arrow1.left}px`,\n top: `${arrow1?.top}px`\n };\n }\n }\n @action\n hideToolTip(): void {\n if (this.args.isShown === true) {\n return;\n }\n this.clearAnimationTimeout();\n const fn1 = (): void =>{\n if (!this.isDestroying || !this.isDestroyed) {\n this.visible = false;\n }\n };\n scheduleOnce('afterRender', this, fn1);\n }\n @action\n hasFocusMouseMoveListener(): void {\n this.hideToolTip();\n window.removeEventListener('mousemove', this.hasFocusMouseMoveListener);\n }\n @action\n onKeyUp(event1: KeyboardEvent): void {\n if (event1.key === keys.TAB) {\n window.addEventListener('mousemove', this.hasFocusMouseMoveListener);\n }\n }\n @action\n onFocus(): void {\n this.hasFocus = true;\n this.showToolTip();\n }\n @action\n onBlur(): void {\n this.hasFocus = false;\n this.hideToolTip();\n }\n @action\n onMouseOut(event1: MouseEvent): void {\n // Prevent mousing over children from hiding the tooltip by testing for whether the mouse has\n // left the anchor for a non-child.\n if (this._anchor === event1.relatedTarget || (this._anchor != null && !this._anchor.contains(event1.relatedTarget as Node))) {\n if (!this.hasFocus) {\n this.hideToolTip();\n }\n }\n if (this.args.onMouseOut) {\n this.args.onMouseOut(event1);\n }\n }\n static{\n template(`\n {{#let\n (has-block \"content\") (has-block \"title\") (has-block \"anchor\")\n as |hasContentBlock hasTitleBlock hasAnchorBlock|\n }}\n {{#if @attachTo}}\n <span\n {{didInsert this.updateAttachTo}}\n {{didUpdate this.updateAttachTo @attachTo}}\n {{didUpdate\n (if (eq @isShown true) this.onFocus this.onBlur)\n @isShown\n }}\n {{didInsert (if (eq @isShown true) this.onFocus this.onBlur)}}\n ></span>\n {{else}}\n <span\n role=\"tooltip\"\n class={{classNames\n \"euiToolTipAnchor\"\n (if (eq @display \"block\") \"euiToolTipAnchor--displayBlock\")\n @anchorClassName\n }}\n {{didInsert this.didInsertAnchor}}\n {{on \"mouseover\" this.showToolTip}}\n {{on \"focusin\" this.onFocus}}\n {{on \"focusout\" this.onBlur}}\n {{on \"mouseout\" this.onMouseOut}}\n {{didUpdate\n (if (eq @isShown true) this.onFocus this.onBlur)\n @isShown\n }}\n {{didInsert (if (eq @isShown true) this.onFocus this.onBlur)}}\n >\n {{#if hasAnchorBlock}}\n {{yield this.id to=\"anchor\"}}\n {{else}}\n {{yield this.id}}\n {{/if}}\n </span>\n {{/if}}\n {{#if\n (and this.visible (or @title @content hasContentBlock hasTitleBlock))\n }}\n <EuiPortal>\n <EuiToolTipPopover\n class={{classNames\n \"euiToolTip\"\n @className\n componentName=\"EuiToolTip\"\n position=this.calculatedPosition\n }}\n @positionToolTip={{this.positionToolTip}}\n @popoverRef={{this.setPopoverRef}}\n id={{this.id}}\n @hasTitle={{if\n (and (argOrDefault @hasTitle true) (or hasTitleBlock @title))\n true\n }}\n role=\"tooltip\"\n ...attributes\n {{style this.toolTipStyles}}\n >\n <:title>\n {{#if hasTitleBlock}}\n {{yield to=\"title\"}}\n {{else}}\n {{@title}}\n {{/if}}\n </:title>\n <:content>\n <div class=\"euiToolTip__arrow\" {{style this.arrowStyles}}></div>\n <div {{resizeObserver onResize=this.positionToolTip}}>\n {{#if hasContentBlock}}\n {{yield to=\"content\"}}\n {{else}}\n {{@content}}\n {{/if}}\n </div>\n </:content>\n </EuiToolTipPopover>\n </EuiPortal>\n {{/if}}\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9vcGVuc291cmNlL2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS10b29sLXRpcC5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgY2FjaGVkLCB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgeyBndWlkRm9yIH0gZnJvbSAnQGVtYmVyL29iamVjdC9pbnRlcm5hbHMnO1xuaW1wb3J0IGRpZEluc2VydCBmcm9tICdAZW1iZXIvcmVuZGVyLW1vZGlmaWVycy9tb2RpZmllcnMvZGlkLWluc2VydCc7XG5pbXBvcnQgZGlkVXBkYXRlIGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCB7IGNhbmNlbCwgbGF0ZXIsIG5leHQsIHNjaGVkdWxlT25jZSB9IGZyb20gJ0BlbWJlci9ydW5sb29wJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJ2VtYmVyLXN0eWxlLW1vZGlmaWVyL21vZGlmaWVycy9zdHlsZSc7XG5pbXBvcnQgeyBhbmQsIGVxLCBvciB9IGZyb20gJ2VtYmVyLXRydXRoLWhlbHBlcnMnO1xuXG5pbXBvcnQgYXJnT3JEZWZhdWx0LCB7IGFyZ09yRGVmYXVsdERlY29yYXRvciB9IGZyb20gJy4uL2hlbHBlcnMvYXJnLW9yLWRlZmF1bHQudHMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnLi4vaGVscGVycy9jbGFzcy1uYW1lcy50cyc7XG5pbXBvcnQgcmVzaXplT2JzZXJ2ZXIgZnJvbSAnLi4vbW9kaWZpZXJzL3Jlc2l6ZS1vYnNlcnZlci50cyc7XG5pbXBvcnQgeyBrZXlzIH0gZnJvbSAnLi4vdXRpbHMva2V5cy50cyc7XG5pbXBvcnQgeyBmaW5kUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvcG9wb3Zlci9pbmRleC50cyc7XG5pbXBvcnQgRXVpUG9ydGFsIGZyb20gJy4vZXVpLXBvcnRhbC5ndHMnO1xuaW1wb3J0IEV1aVRvb2xUaXBQb3BvdmVyIGZyb20gJy4vZXVpLXRvb2wtdGlwLXBvcG92ZXIuZ3RzJztcblxuaW1wb3J0IHR5cGUgeyBFdWlUb29sdGlwUG9wb3ZlclNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXRvb2wtdGlwLXBvcG92ZXInO1xuXG5leHBvcnQgdHlwZSBUb29sVGlwUG9zaXRpb25zID0gJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCc7XG5cbmV4cG9ydCB0eXBlIFRvb2xUaXBEZWxheSA9ICdyZWd1bGFyJyB8ICdsb25nJztcblxuY29uc3QgZGVsYXlUb01zTWFwOiB7IFtrZXkgaW4gVG9vbFRpcERlbGF5XTogbnVtYmVyIH0gPSB7XG4gIHJlZ3VsYXI6IDI1MCxcbiAgbG9uZzogMjUwICogNVxufTtcblxuaW50ZXJmYWNlIFRvb2xUaXBTdHlsZXMge1xuICB0b3A6IHN0cmluZztcbiAgbGVmdDogc3RyaW5nIHwgJ2F1dG8nO1xuICByaWdodD86IHN0cmluZyB8ICdhdXRvJztcbiAgb3BhY2l0eT86IHN0cmluZztcbiAgdmlzaWJpbGl0eT86ICdoaWRkZW4nO1xuICBkaXNwbGF5PzogJ2lubGluZUJsb2NrJztcbn1cblxuY29uc3QgZGlzcGxheVRvQ2xhc3NOYW1lTWFwID0ge1xuICBpbmxpbmVCbG9jazogdW5kZWZpbmVkLFxuICBibG9jazogJ2V1aVRvb2xUaXBBbmNob3ItLWRpc3BsYXlCbG9jaydcbn07XG5cbmNvbnN0IERFRkFVTFRfVE9PTFRJUF9TVFlMRVM6IFRvb2xUaXBTdHlsZXMgPSB7XG4gIC8vIHBvc2l0aW9uIHRoZSB0b29sdGlwIGNvbnRlbnQgbmVhciB0aGUgdG9wLWxlZnRcbiAgLy8gY29ybmVyIG9mIHRoZSB3aW5kb3cgc28gaXQgY2FuJ3QgY3JlYXRlIHNjcm9sbGJhcnNcbiAgLy8gNTAsNTAgYmVjYXVzZSB3aG8ga25vd3Mgd2hhdCBuZWdhdGl2ZSBtYXJnaW5zLCBwYWRkaW5nLCBldGNcbiAgdG9wOiAnNTBweCcsXG4gIGxlZnQ6ICc1MHB4JyxcbiAgLy8ganVzdCBpbiBjYXNlLCBhdm9pZCBhbnkgcG90ZW50aWFsIGZsaWNrZXIgYnkgaGlkaW5nXG4gIC8vIHRoZSB0b29sdGlwIGJlZm9yZSBpdCBpcyBwb3NpdGlvbmVkXG4gIG9wYWNpdHk6ICcwJyxcbiAgLy8gcHJldmVudCBhY2NpZGVudGFsIG1vdXNlIGludGVyYWN0aW9uIHdoaWxlIHBvc2l0aW9uaW5nXG4gIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICBkaXNwbGF5OiAnaW5saW5lQmxvY2snXG59O1xuXG5leHBvcnQgdHlwZSBFdWlUb29sdGlwQXJncyA9IHtcbiAgLyoqXG4gICAqIFBhc3NlcyBvbnRvIHRoZSB0aGUgdHJpZ2dlci5cbiAgICovXG4gIGFuY2hvckNsYXNzTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhc3NlcyBvbnRvIHRoZSB0b29sdGlwIGl0c2VsZiwgbm90IHRoZSB0cmlnZ2VyLlxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG1haW4gY29udGVudCBvZiB5b3VyIHRvb2x0aXAuXG4gICAqL1xuICBjb250ZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogQ29tbW9uIGRpc3BsYXkgYWx0ZXJuYXRpdmVzIGZvciB0aGUgYW5jaG9yIHdyYXBwZXJcbiAgICovXG4gIGRpc3BsYXk_OiBrZXlvZiB0eXBlb2YgZGlzcGxheVRvQ2xhc3NOYW1lTWFwO1xuICAvKipcbiAgICogRGVsYXkgYmVmb3JlIHNob3dpbmcgdG9vbHRpcC4gR29vZCBmb3IgcmVwZWF0YWJsZSBpdGVtcy5cbiAgICovXG4gIGRlbGF5PzogVG9vbFRpcERlbGF5O1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgdGl0bGUgZm9yIHlvdXIgdG9vbHRpcC5cbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogVW5sZXNzIHlvdSBwcm92aWRlIG9uZSwgdGhpcyB3aWxsIGJlIHJhbmRvbWx5IGdlbmVyYXRlZC5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogU3VnZ2VzdGVkIHBvc2l0aW9uLiBJZiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gZm9yIGl0IHRoaXMgd2lsbCBiZSBjaGFuZ2VkLlxuICAgKi9cbiAgcG9zaXRpb24_OiBUb29sVGlwUG9zaXRpb25zO1xuXG4gIGF0dGFjaFRvPzogdW5kZWZpbmVkIHwgSFRNTEVsZW1lbnQgfCBzdHJpbmcgfCBudWxsO1xuXG4gIGlzU2hvd24_OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBJZiBzdXBwbGllZCwgY2FsbGVkIHdoZW4gbW91c2UgbW92ZW1lbnQgY2F1c2VzIHRoZSB0b29sIHRpcCB0byBiZVxuICAgKiBoaWRkZW4uXG4gICAqL1xuICBvbk1vdXNlT3V0PzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBvbkZvY3VzPzogKCkgPT4gdm9pZDtcbiAgb25CbHVyPzogKCkgPT4gdm9pZDtcblxuICBoYXNUaXRsZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVRvb2xUaXBTaWduYXR1cmUge1xuICBFbGVtZW50OiBFdWlUb29sdGlwUG9wb3ZlclNpZ25hdHVyZVsnRWxlbWVudCddO1xuICBBcmdzOiBFdWlUb29sdGlwQXJncztcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdD86IFtpZDogc3RyaW5nXTtcbiAgICB0aXRsZT86IFtdO1xuICAgIGNvbnRlbnQ_OiBbXTtcbiAgICBhbmNob3I_OiBbaWQ6IHN0cmluZ107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV1aVRvb2xUaXAgZXh0ZW5kcyBDb21wb25lbnQ8RXVpVG9vbFRpcFNpZ25hdHVyZT4ge1xuICBhbmNob3I6IG51bGwgfCBIVE1MRWxlbWVudCA9IG51bGw7XG4gIHBvcG92ZXI6IG51bGwgfCBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcigndG9wJykgcG9zaXRpb24hOiBUb29sVGlwUG9zaXRpb25zO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdyZWd1bGFyJykgZGVsYXkhOiBUb29sVGlwRGVsYXk7XG5cbiAgLy9TVEFURVxuICBAdHJhY2tlZCB2aXNpYmxlID0gZmFsc2U7XG4gIEB0cmFja2VkIGhhc0ZvY3VzID0gZmFsc2U7XG4gIEB0cmFja2VkIGNhbGN1bGF0ZWRQb3NpdGlvbjogVG9vbFRpcFBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb247XG4gIEB0cmFja2VkIHRvb2xUaXBTdHlsZXM6IFRvb2xUaXBTdHlsZXMgPSBERUZBVUxUX1RPT0xUSVBfU1RZTEVTO1xuICBAdHJhY2tlZCBhcnJvd1N0eWxlczogeyBsZWZ0Pzogc3RyaW5nOyB0b3A_OiBzdHJpbmcgfSA9IHt9O1xuICBAdHJhY2tlZCBpZDogc3RyaW5nID0gdGhpcy5hcmdzLmlkIHx8IGd1aWRGb3Ioe30pO1xuICBAdHJhY2tlZCBfYXR0YWNoVG86IHVuZGVmaW5lZCB8IEhUTUxFbGVtZW50IHwgc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSB0aW1lb3V0SWQ_OiBSZXR1cm5UeXBlPHR5cGVvZiBsYXRlcj47XG5cbiAgQGFjdGlvblxuICB1cGRhdGVBdHRhY2hUbygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXJncy5hdHRhY2hUbyAmJiB0aGlzLl9hdHRhY2hUbykge1xuICAgICAgdGhpcy5yZW1vdmVBdHRhY2hUb0hhbmRsZXJzKCk7XG4gICAgICB0aGlzLl9hdHRhY2hUbyA9IG51bGw7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hcmdzLmF0dGFjaFRvICYmIHRoaXMuYXJncy5hdHRhY2hUbyAhPT0gdGhpcy5fYXR0YWNoVG8pIHtcbiAgICAgIG5leHQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dGFjaFRvSGFuZGxlcnMoKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoVG8gPSB0aGlzLmFyZ3MuYXR0YWNoVG87XG4gICAgICAgIHRoaXMuc2V0dXBBdHRhY2hUb0hhbmRsZXJzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIHNldHVwQXR0YWNoVG9IYW5kbGVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYXR0YWNoVG8gJiYgdGhpcy5hdHRhY2hUbykge1xuICAgICAgdGhpcy5hdHRhY2hUby5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLnNob3dUb29sVGlwKTtcbiAgICAgIHRoaXMuYXR0YWNoVG8uYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHRoaXMub25Gb2N1cyk7XG4gICAgICAvL0B0cy1leHBlY3QtZXJyb3JcbiAgICAgIHRoaXMuYXR0YWNoVG8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCB0aGlzLm9uTW91c2VPdXQpO1xuICAgICAgdGhpcy5hdHRhY2hUby5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMub25CbHVyKTtcbiAgICAgIHRoaXMucG9zaXRpb25Ub29sVGlwKCk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICByZW1vdmVBdHRhY2hUb0hhbmRsZXJzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hdHRhY2hUbyAmJiB0aGlzLmF0dGFjaFRvKSB7XG4gICAgICB0aGlzLmF0dGFjaFRvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuc2hvd1Rvb2xUaXApO1xuICAgICAgdGhpcy5hdHRhY2hUby5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5vbkZvY3VzKTtcbiAgICAgIC8vQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdGhpcy5hdHRhY2hUby5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIHRoaXMub25Nb3VzZU91dCk7XG4gICAgICB0aGlzLmF0dGFjaFRvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgdGhpcy5vbkJsdXIpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgY2xlYXJBbmltYXRpb25UaW1lb3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVvdXRJZCkge1xuICAgICAgY2FuY2VsKHRoaXMudGltZW91dElkKTtcbiAgICAgIHRoaXMudGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgdmlzaWJsZURpZFVwZGF0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGUgPT09IGZhbHNlICYmIHZhbHVlID09PSB0cnVlKSB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy50ZXN0QW5jaG9yKTtcbiAgICB9XG4gIH1cblxuICB3aWxsRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci53aWxsRGVzdHJveSgpO1xuICAgIHRoaXMuY2xlYXJBbmltYXRpb25UaW1lb3V0KCk7XG4gICAgdGhpcy5yZW1vdmVBdHRhY2hUb0hhbmRsZXJzKCk7XG4gIH1cblxuICBAYWN0aW9uXG4gIHRlc3RBbmNob3IoKTogdm9pZCB7XG4gICAgLy8gd2hlbiB0aGUgdG9vbHRpcCBpcyB2aXNpYmxlLCB0aGlzIGNoZWNrcyBpZiB0aGUgYW5jaG9yIGlzIHN0aWxsIHBhcnQgb2YgZG9jdW1lbnRcbiAgICAvLyB0aGlzIGZpeGVzIHdoZW4gdGhlIHJlYWN0IHJvb3QgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkb20gd2l0aG91dCB1bm1vdW50aW5nXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2VsYXN0aWMvZXVpL2lzc3Vlcy8xMTA1XG4gICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5fYW5jaG9yKSA9PT0gZmFsc2UpIHtcbiAgICAgIC8vIHRoZSBhbmNob3IgaXMgbm8gbG9uZ2VyIHBhcnQgb2YgYGRvY3VtZW50YFxuICAgICAgdGhpcy5oaWRlVG9vbFRpcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy52aXNpYmxlKSB7XG4gICAgICAgIC8vIGlmIHN0aWxsIHZpc2libGUsIGtlZXAgY2hlY2tpbmdcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGVzdEFuY2hvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBkaWRJbnNlcnRBbmNob3IocmVmOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuYW5jaG9yID0gcmVmO1xuICB9XG5cbiAgQGFjdGlvblxuICBzZXRQb3BvdmVyUmVmKHJlZjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gcmVmO1xuXG4gICAgLy8gaWYgdGhlIHBvcG92ZXIgaGFzIGJlZW4gdW5tb3VudGVkLCBjbGVhclxuICAgIC8vIGFueSBwcmV2aW91cyBrbm93bGVkZ2UgYWJvdXQgaXRzIHNpemVcbiAgICBpZiAocmVmID09PSBudWxsKSB7XG4gICAgICB0aGlzLnRvb2xUaXBTdHlsZXMgPSBERUZBVUxUX1RPT0xUSVBfU1RZTEVTO1xuICAgICAgdGhpcy5hcnJvd1N0eWxlcyA9IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvc2l0aW9uVG9vbFRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgc2hvd1Rvb2xUaXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRpbWVvdXRJZCAmJiAhdGhpcy52aXNpYmxlKSB7XG4gICAgICBjb25zdCBmbiA9ICgpOiB2b2lkID0-IHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMudGltZW91dElkID0gbGF0ZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICgpID0-IHtcbiAgICAgICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgZm4pO1xuICAgICAgICB9LFxuICAgICAgICBkZWxheVRvTXNNYXBbdGhpcy5kZWxheV1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQGNhY2hlZFxuICBnZXQgYXR0YWNoVG8oKTogRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fYXR0YWNoVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLl9hdHRhY2hUbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9hdHRhY2hUbztcbiAgICB9XG4gIH1cblxuICBnZXQgX2FuY2hvcigpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoVG8gfHwgdGhpcy5hbmNob3I7XG4gIH1cblxuICBAYWN0aW9uXG4gIHBvc2l0aW9uVG9vbFRpcCgpOiB2b2lkIHtcbiAgICBjb25zdCByZXF1ZXN0ZWRQb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG5cbiAgICBpZiAoIXRoaXMuX2FuY2hvciB8fCAhdGhpcy5wb3BvdmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBwb3NpdGlvbiwgbGVmdCwgdG9wLCBhcnJvdyB9ID0gZmluZFBvcG92ZXJQb3NpdGlvbih7XG4gICAgICBhbmNob3I6IHRoaXMuX2FuY2hvciBhcyBIVE1MRWxlbWVudCxcbiAgICAgIHBvcG92ZXI6IHRoaXMucG9wb3ZlcixcbiAgICAgIHBvc2l0aW9uOiByZXF1ZXN0ZWRQb3NpdGlvbixcbiAgICAgIG9mZnNldDogMTYsIC8vIG9mZnNldCBwb3BvdmVyIDE2cHggZnJvbSB0aGUgYW5jaG9yXG4gICAgICBhcnJvd0NvbmZpZzoge1xuICAgICAgICBhcnJvd1dpZHRoOiAxMixcbiAgICAgICAgYXJyb3dCdWZmZXI6IDRcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHdpbmRvd1dpZHRoID1cbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCB1c2VSaWdodFZhbHVlID0gd2luZG93V2lkdGggLyAyIDwgbGVmdDtcblxuICAgIGNvbnN0IHRvb2xUaXBTdHlsZXM6IFRvb2xUaXBTdHlsZXMgPSB7XG4gICAgICB0b3A6IGAke3RvcH1weGAsXG4gICAgICBsZWZ0OiB1c2VSaWdodFZhbHVlID8gJ2F1dG8nIDogYCR7bGVmdH1weGAsXG4gICAgICByaWdodDogdXNlUmlnaHRWYWx1ZVxuICAgICAgICA_IGAke3dpbmRvd1dpZHRoIC0gbGVmdCAtIHRoaXMucG9wb3Zlci5vZmZzZXRXaWR0aH1weGBcbiAgICAgICAgOiAnYXV0bydcbiAgICB9O1xuXG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmNhbGN1bGF0ZWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMudG9vbFRpcFN0eWxlcyA9IHRvb2xUaXBTdHlsZXM7XG5cbiAgICBpZiAoYXJyb3cpIHtcbiAgICAgIHRoaXMuYXJyb3dTdHlsZXMgPSB7XG4gICAgICAgIGxlZnQ6IGAke2Fycm93LmxlZnR9cHhgLFxuICAgICAgICB0b3A6IGAke2Fycm93Py50b3B9cHhgXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgaGlkZVRvb2xUaXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXJncy5pc1Nob3duID09PSB0cnVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhckFuaW1hdGlvblRpbWVvdXQoKTtcblxuICAgIGNvbnN0IGZuID0gKCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWluZyB8fCAhdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgc2NoZWR1bGVPbmNlKCdhZnRlclJlbmRlcicsIHRoaXMsIGZuKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgaGFzRm9jdXNNb3VzZU1vdmVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFzRm9jdXNNb3VzZU1vdmVMaXN0ZW5lcik7XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBrZXlzLlRBQikge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFzRm9jdXNNb3VzZU1vdmVMaXN0ZW5lcik7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuc2hvd1Rvb2xUaXAoKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTtcbiAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uTW91c2VPdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBQcmV2ZW50IG1vdXNpbmcgb3ZlciBjaGlsZHJlbiBmcm9tIGhpZGluZyB0aGUgdG9vbHRpcCBieSB0ZXN0aW5nIGZvciB3aGV0aGVyIHRoZSBtb3VzZSBoYXNcbiAgICAvLyBsZWZ0IHRoZSBhbmNob3IgZm9yIGEgbm9uLWNoaWxkLlxuICAgIGlmIChcbiAgICAgIHRoaXMuX2FuY2hvciA9PT0gZXZlbnQucmVsYXRlZFRhcmdldCB8fFxuICAgICAgKHRoaXMuX2FuY2hvciAhPSBudWxsICYmXG4gICAgICAgICF0aGlzLl9hbmNob3IuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSlcbiAgICApIHtcbiAgICAgIGlmICghdGhpcy5oYXNGb2N1cykge1xuICAgICAgICB0aGlzLmhpZGVUb29sVGlwKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXJncy5vbk1vdXNlT3V0KSB7XG4gICAgICB0aGlzLmFyZ3Mub25Nb3VzZU91dChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIHt7I2xldFxuICAgICAgKGhhcy1ibG9jayBcImNvbnRlbnRcIikgKGhhcy1ibG9jayBcInRpdGxlXCIpIChoYXMtYmxvY2sgXCJhbmNob3JcIilcbiAgICAgIGFzIHxoYXNDb250ZW50QmxvY2sgaGFzVGl0bGVCbG9jayBoYXNBbmNob3JCbG9ja3xcbiAgICB9fVxuICAgICAge3sjaWYgQGF0dGFjaFRvfX1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICB7e2RpZEluc2VydCB0aGlzLnVwZGF0ZUF0dGFjaFRvfX1cbiAgICAgICAgICB7e2RpZFVwZGF0ZSB0aGlzLnVwZGF0ZUF0dGFjaFRvIEBhdHRhY2hUb319XG4gICAgICAgICAge3tkaWRVcGRhdGVcbiAgICAgICAgICAgIChpZiAoZXEgQGlzU2hvd24gdHJ1ZSkgdGhpcy5vbkZvY3VzIHRoaXMub25CbHVyKVxuICAgICAgICAgICAgQGlzU2hvd25cbiAgICAgICAgICB9fVxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IChpZiAoZXEgQGlzU2hvd24gdHJ1ZSkgdGhpcy5vbkZvY3VzIHRoaXMub25CbHVyKX19XG4gICAgICAgID48L3NwYW4-XG4gICAgICB7e2Vsc2V9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgIHJvbGU9XCJ0b29sdGlwXCJcbiAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgIFwiZXVpVG9vbFRpcEFuY2hvclwiXG4gICAgICAgICAgICAoaWYgKGVxIEBkaXNwbGF5IFwiYmxvY2tcIikgXCJldWlUb29sVGlwQW5jaG9yLS1kaXNwbGF5QmxvY2tcIilcbiAgICAgICAgICAgIEBhbmNob3JDbGFzc05hbWVcbiAgICAgICAgICB9fVxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMuZGlkSW5zZXJ0QW5jaG9yfX1cbiAgICAgICAgICB7e29uIFwibW91c2VvdmVyXCIgdGhpcy5zaG93VG9vbFRpcH19XG4gICAgICAgICAge3tvbiBcImZvY3VzaW5cIiB0aGlzLm9uRm9jdXN9fVxuICAgICAgICAgIHt7b24gXCJmb2N1c291dFwiIHRoaXMub25CbHVyfX1cbiAgICAgICAgICB7e29uIFwibW91c2VvdXRcIiB0aGlzLm9uTW91c2VPdXR9fVxuICAgICAgICAgIHt7ZGlkVXBkYXRlXG4gICAgICAgICAgICAoaWYgKGVxIEBpc1Nob3duIHRydWUpIHRoaXMub25Gb2N1cyB0aGlzLm9uQmx1cilcbiAgICAgICAgICAgIEBpc1Nob3duXG4gICAgICAgICAgfX1cbiAgICAgICAgICB7e2RpZEluc2VydCAoaWYgKGVxIEBpc1Nob3duIHRydWUpIHRoaXMub25Gb2N1cyB0aGlzLm9uQmx1cil9fVxuICAgICAgICA-XG4gICAgICAgICAge3sjaWYgaGFzQW5jaG9yQmxvY2t9fVxuICAgICAgICAgICAge3t5aWVsZCB0aGlzLmlkIHRvPVwiYW5jaG9yXCJ9fVxuICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICB7e3lpZWxkIHRoaXMuaWR9fVxuICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAge3svaWZ9fVxuICAgICAge3sjaWZcbiAgICAgICAgKGFuZCB0aGlzLnZpc2libGUgKG9yIEB0aXRsZSBAY29udGVudCBoYXNDb250ZW50QmxvY2sgaGFzVGl0bGVCbG9jaykpXG4gICAgICB9fVxuICAgICAgICA8RXVpUG9ydGFsPlxuICAgICAgICAgIDxFdWlUb29sVGlwUG9wb3ZlclxuICAgICAgICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgICAgICAgIFwiZXVpVG9vbFRpcFwiXG4gICAgICAgICAgICAgIEBjbGFzc05hbWVcbiAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT1cIkV1aVRvb2xUaXBcIlxuICAgICAgICAgICAgICBwb3NpdGlvbj10aGlzLmNhbGN1bGF0ZWRQb3NpdGlvblxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIEBwb3NpdGlvblRvb2xUaXA9e3t0aGlzLnBvc2l0aW9uVG9vbFRpcH19XG4gICAgICAgICAgICBAcG9wb3ZlclJlZj17e3RoaXMuc2V0UG9wb3ZlclJlZn19XG4gICAgICAgICAgICBpZD17e3RoaXMuaWR9fVxuICAgICAgICAgICAgQGhhc1RpdGxlPXt7aWZcbiAgICAgICAgICAgICAgKGFuZCAoYXJnT3JEZWZhdWx0IEBoYXNUaXRsZSB0cnVlKSAob3IgaGFzVGl0bGVCbG9jayBAdGl0bGUpKVxuICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAge3tzdHlsZSB0aGlzLnRvb2xUaXBTdHlsZXN9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDw6dGl0bGU-XG4gICAgICAgICAgICAgIHt7I2lmIGhhc1RpdGxlQmxvY2t9fVxuICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgICAgICB7e0B0aXRsZX19XG4gICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgIDwvOnRpdGxlPlxuICAgICAgICAgICAgPDpjb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpVG9vbFRpcF9fYXJyb3dcIiB7e3N0eWxlIHRoaXMuYXJyb3dTdHlsZXN9fT48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiB7e3Jlc2l6ZU9ic2VydmVyIG9uUmVzaXplPXRoaXMucG9zaXRpb25Ub29sVGlwfX0-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzQ29udGVudEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJjb250ZW50XCJ9fVxuICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICB7e0Bjb250ZW50fX1cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC86Y29udGVudD5cbiAgICAgICAgICA8L0V1aVRvb2xUaXBQb3BvdmVyPlxuICAgICAgICA8L0V1aVBvcnRhbD5cbiAgICAgIHt7L2lmfX1cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxFQUFFLE9BQU8sUUFBUSxvQkFBb0I7QUFDcEQsU0FBUyxFQUFFLFFBQVEsa0JBQWtCO0FBQ3JDLFNBQVMsTUFBTSxRQUFRLGdCQUFnQjtBQUN2QyxTQUFTLE9BQU8sUUFBUSwwQkFBMEI7QUFDbEQsT0FBTyxlQUFlLCtDQUErQztBQUNyRSxPQUFPLGVBQWUsK0NBQStDO0FBQ3JFLFNBQVMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxRQUFRLGlCQUFpQjtBQUVuRSxPQUFPLFdBQVcsdUNBQXVDO0FBQ3pELFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsc0JBQXNCO0FBRWxELE9BQU8sZ0JBQWdCLHFCQUFxQixRQUFRLCtCQUErQjtBQUNuRixPQUFPLGdCQUFnQiw0QkFBNEI7QUFDbkQsT0FBTyxvQkFBb0Isa0NBQWtDO0FBQzdELFNBQVMsSUFBSSxRQUFRLG1CQUFtQjtBQUN4QyxTQUFTLG1CQUFtQixRQUFRLDRCQUE0QjtBQUNoRSxPQUFPLGVBQWUsbUJBQW1CO0FBQ3pDLE9BQU8sdUJBQXVCLDZCQUE2QjtBQUUzRCxjQUFjLDBCQUEwQixRQUFRLHlCQUF5QjtBQUV6RSxZQUFZLG1C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"],"names":["cached","macroCondition","dependencySatisfies","importSync","delayToMsMap","regular","long","DEFAULT_TOOLTIP_STYLES","top","left","opacity","visibility","display","EuiToolTip","Component","anchor","popover","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","position","args","id","guidFor","timeoutId","updateAttachTo","attachTo","_attachTo","removeAttachToHandlers","next","setupAttachToHandlers","n","action","addEventListener","showToolTip","onFocus","onMouseOut","onBlur","positionToolTip","removeEventListener","clearAnimationTimeout","cancel","undefined","visibleDidUpdate","value1","visible","requestAnimationFrame","testAnchor","willDestroy","document","body","contains","_anchor","hideToolTip","didInsertAnchor","ref1","setPopoverRef","toolTipStyles","arrowStyles","fn1","later","scheduleOnce","delay","querySelector","requestedPosition1","position1","left1","top1","arrow","arrow1","findPopoverPosition","offset","arrowConfig","arrowWidth","arrowBuffer","windowWidth1","documentElement","clientWidth","window","innerWidth","useRightValue1","toolTipStyles1","right","offsetWidth","calculatedPosition","isShown","isDestroying","isDestroyed","hasFocusMouseMoveListener","onKeyUp","event1","key","keys","TAB","hasFocus","relatedTarget","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","didUpdate","eq","classNames","on","and","or","EuiPortal","EuiToolTipPopover","argOrDefault","style","resizeObserver"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-block.js","sources":["../../src/components/text-block.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { eq } from 'ember-truth-helpers';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface TextBlockSignature {\n Element: HTMLHeadingElement | HTMLParagraphElement | HTMLLegendElement;\n Args: {\n tagName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'legend';\n };\n Blocks: {\n default: [];\n };\n}\nconst TextBlock: TemplateOnlyComponent<TextBlockSignature> = template(`\n {{#if (eq @tagName \"h1\")}}\n <h1 ...attributes>\n {{yield}}\n </h1>\n {{else if (eq @tagName \"h2\")}}\n <h2 ...attributes>\n {{yield}}\n </h2>\n {{else if (eq @tagName \"h3\")}}\n <h3 ...attributes>\n {{yield}}\n </h3>\n {{else if (eq @tagName \"h4\")}}\n <h4 ...attributes>\n {{yield}}\n </h4>\n {{else if (eq @tagName \"h5\")}}\n <h5 ...attributes>\n {{yield}}\n </h5>\n {{else if (eq @tagName \"h6\")}}\n <h6 ...attributes>\n {{yield}}\n </h6>\n {{else if (eq @tagName \"p\")}}\n <p ...attributes>\n {{yield}}\n </p>\n {{else if (eq @tagName \"legend\")}}\n <legend ...attributes>\n {{yield}}\n </legend>\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default TextBlock;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL3RleHQtYmxvY2suZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVxIH0gZnJvbSAnZW1iZXItdHJ1dGgtaGVscGVycyc7XG5cbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVPbmx5Q29tcG9uZW50IH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0QmxvY2tTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MSGVhZGluZ0VsZW1lbnQgfCBIVE1MUGFyYWdyYXBoRWxlbWVudCB8IEhUTUxMZWdlbmRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdGFnTmFtZTogJ2gxJyB8ICdoMicgfCAnaDMnIHwgJ2g0JyB8ICdoNScgfCAnaDYnIHwgJ3AnIHwgJ2xlZ2VuZCc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5jb25zdCBUZXh0QmxvY2s6IFRlbXBsYXRlT25seUNvbXBvbmVudDxUZXh0QmxvY2tTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICB7eyNpZiAoZXEgQHRhZ05hbWUgXCJoMVwiKX19XG4gICAgPGgxIC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkfX1cbiAgICA8L2gxPlxuICB7e2Vsc2UgaWYgKGVxIEB0YWdOYW1lIFwiaDJcIil9fVxuICAgIDxoMiAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZH19XG4gICAgPC9oMj5cbiAge3tlbHNlIGlmIChlcSBAdGFnTmFtZSBcImgzXCIpfX1cbiAgICA8aDMgLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGR9fVxuICAgIDwvaDM-XG4gIHt7ZWxzZSBpZiAoZXEgQHRhZ05hbWUgXCJoNFwiKX19XG4gICAgPGg0IC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkfX1cbiAgICA8L2g0PlxuICB7e2Vsc2UgaWYgKGVxIEB0YWdOYW1lIFwiaDVcIil9fVxuICAgIDxoNSAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZH19XG4gICAgPC9oNT5cbiAge3tlbHNlIGlmIChlcSBAdGFnTmFtZSBcImg2XCIpfX1cbiAgICA8aDYgLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGR9fVxuICAgIDwvaDY-XG4gIHt7ZWxzZSBpZiAoZXEgQHRhZ05hbWUgXCJwXCIpfX1cbiAgICA8cCAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZH19XG4gICAgPC9wPlxuICB7e2Vsc2UgaWYgKGVxIEB0YWdOYW1lIFwibGVnZW5kXCIpfX1cbiAgICA8bGVnZW5kIC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkfX1cbiAgICA8L2xlZ2VuZD5cbiAge3svaWZ9fVxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRCbG9jaztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxFQUFFLFFBQVEsc0JBQXNCO0FBRXpDLGNBQWMscUJBQXFCLFFBQVEsaUNBQWlDO0FBRTVFLGlCQUFpQjtJQUNmLFNBQVMscUJBQXFCLHVCQUF1QjtJQUNyRDtRQUNFLFNBQVMsT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sTUFBTTs7SUFFM0Q7UUFDRTs7O0FBSUosTUFBTSxXQUFXLHNCQUFzQixzQkFBc0IsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0N2RSxDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUE7QUFFVixlQUFlLFVBQVUifQ"],"names":["TextBlock","setComponentTemplate","precompileTemplate","strictMode","scope","eq","templateOnly"],"mappings":";;;;;AAcA,MAAMA,SAAiC,GAAAC,oBAAA,CAAsBC,kBAAA,CAkC7D,otBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"text-block.js","sources":["../../src/components/text-block.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { eq } from 'ember-truth-helpers';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface TextBlockSignature {\n Element: HTMLHeadingElement | HTMLParagraphElement | HTMLLegendElement;\n Args: {\n tagName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'legend';\n };\n Blocks: {\n default: [];\n };\n}\nconst TextBlock: TemplateOnlyComponent<TextBlockSignature> = template(`\n {{#if (eq @tagName \"h1\")}}\n <h1 ...attributes>\n {{yield}}\n </h1>\n {{else if (eq @tagName \"h2\")}}\n <h2 ...attributes>\n {{yield}}\n </h2>\n {{else if (eq @tagName \"h3\")}}\n <h3 ...attributes>\n {{yield}}\n </h3>\n {{else if (eq @tagName \"h4\")}}\n <h4 ...attributes>\n {{yield}}\n </h4>\n {{else if (eq @tagName \"h5\")}}\n <h5 ...attributes>\n {{yield}}\n </h5>\n {{else if (eq @tagName \"h6\")}}\n <h6 ...attributes>\n {{yield}}\n </h6>\n {{else if (eq @tagName \"p\")}}\n <p ...attributes>\n {{yield}}\n </p>\n {{else if (eq @tagName \"legend\")}}\n <legend ...attributes>\n {{yield}}\n </legend>\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default TextBlock;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9vcGVuc291cmNlL2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL3RleHQtYmxvY2suZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVxIH0gZnJvbSAnZW1iZXItdHJ1dGgtaGVscGVycyc7XG5cbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVPbmx5Q29tcG9uZW50IH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0QmxvY2tTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MSGVhZGluZ0VsZW1lbnQgfCBIVE1MUGFyYWdyYXBoRWxlbWVudCB8IEhUTUxMZWdlbmRFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdGFnTmFtZTogJ2gxJyB8ICdoMicgfCAnaDMnIHwgJ2g0JyB8ICdoNScgfCAnaDYnIHwgJ3AnIHwgJ2xlZ2VuZCc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5jb25zdCBUZXh0QmxvY2s6IFRlbXBsYXRlT25seUNvbXBvbmVudDxUZXh0QmxvY2tTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICB7eyNpZiAoZXEgQHRhZ05hbWUgXCJoMVwiKX19XG4gICAgPGgxIC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkfX1cbiAgICA8L2gxPlxuICB7e2Vsc2UgaWYgKGVxIEB0YWdOYW1lIFwiaDJcIil9fVxuICAgIDxoMiAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZH19XG4gICAgPC9oMj5cbiAge3tlbHNlIGlmIChlcSBAdGFnTmFtZSBcImgzXCIpfX1cbiAgICA8aDMgLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGR9fVxuICAgIDwvaDM-XG4gIHt7ZWxzZSBpZiAoZXEgQHRhZ05hbWUgXCJoNFwiKX19XG4gICAgPGg0IC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkfX1cbiAgICA8L2g0PlxuICB7e2Vsc2UgaWYgKGVxIEB0YWdOYW1lIFwiaDVcIil9fVxuICAgIDxoNSAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZH19XG4gICAgPC9oNT5cbiAge3tlbHNlIGlmIChlcSBAdGFnTmFtZSBcImg2XCIpfX1cbiAgICA8aDYgLi4uYXR0cmlidXRlcz5cbiAgICAgIHt7eWllbGR9fVxuICAgIDwvaDY-XG4gIHt7ZWxzZSBpZiAoZXEgQHRhZ05hbWUgXCJwXCIpfX1cbiAgICA8cCAuLi5hdHRyaWJ1dGVzPlxuICAgICAge3t5aWVsZH19XG4gICAgPC9wPlxuICB7e2Vsc2UgaWYgKGVxIEB0YWdOYW1lIFwibGVnZW5kXCIpfX1cbiAgICA8bGVnZW5kIC4uLmF0dHJpYnV0ZXM-XG4gICAgICB7e3lpZWxkfX1cbiAgICA8L2xlZ2VuZD5cbiAge3svaWZ9fVxuPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRCbG9jaztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsU0FBUyxFQUFFLFFBQVEsc0JBQXNCO0FBRXpDLGNBQWMscUJBQXFCLFFBQVEsaUNBQWlDO0FBRTVFLGlCQUFpQjtJQUNmLFNBQVMscUJBQXFCLHVCQUF1QjtJQUNyRDtRQUNFLFNBQVMsT0FBTyxPQUFPLE9BQU8sT0FBTyxPQUFPLE9BQU8sTUFBTTs7SUFFM0Q7UUFDRTs7O0FBSUosTUFBTSxXQUFXLHNCQUFzQixzQkFBc0IsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0N2RSxDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUE7QUFFVixlQUFlLFVBQVUifQ"],"names":["TextBlock","setComponentTemplate","precompileTemplate","strictMode","scope","eq","templateOnly"],"mappings":";;;;;AAcA,MAAMA,SAAiC,GAAAC,oBAAA,CAAsBC,kBAAA,CAkC7D,otBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -58,6 +58,7 @@ const getBufferValues = buffer => {
58
58
  * @param popover {HTMLElement} Element containing the popover content
59
59
  * @param position {string} Position the user wants. One of ["top", "right", "bottom", "left"]
60
60
  * @param [forcePosition] {boolean} If true, use only the provided `position` value and don't try any other position
61
+ * @param host {HTMLElement} Element the popover must be positioned relative to
61
62
  * @param [align] {string} Cross-axis alignment. One of ["top", "right", "bottom", "left"]
62
63
  * @param [buffer=16] {number} Minimum distance between the popover and the bounding container
63
64
  * @param [offset=0] {number} Distance between the popover and the anchor
@@ -77,6 +78,7 @@ function findPopoverPosition({
77
78
  align,
78
79
  position,
79
80
  forcePosition,
81
+ host,
80
82
  buffer = 16,
81
83
  offset = 0,
82
84
  allowCrossAxis = true,
@@ -105,6 +107,21 @@ function findPopoverPosition({
105
107
  // if no container element is given fall back to using the window viewport
106
108
  const containerBoundingBox = container ? getElementBoundingBox(container) : windowBoundingBox;
107
109
 
110
+ // the anchor is positioned relative to the host element if provided
111
+ if (host) {
112
+ const hostBoundingBox = getElementBoundingBox(host);
113
+ const anchorBoundingRelativeToHost = {
114
+ top: anchorBoundingBox.top - hostBoundingBox.top,
115
+ left: anchorBoundingBox.left - hostBoundingBox.left,
116
+ right: hostBoundingBox.right - anchorBoundingBox.right,
117
+ bottom: hostBoundingBox.bottom - anchorBoundingBox.bottom
118
+ };
119
+ anchorBoundingBox.top = anchorBoundingRelativeToHost.top;
120
+ anchorBoundingBox.left = anchorBoundingRelativeToHost.left;
121
+ anchorBoundingBox.right = anchorBoundingRelativeToHost.right;
122
+ anchorBoundingBox.bottom = anchorBoundingRelativeToHost.bottom;
123
+ }
124
+
108
125
  /**
109
126
  * `position` was specified by the function caller and is a strong hint
110
127
  * as to the preferred location of the popover relative to the anchor.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/utils/popover/index.ts"],"sourcesContent":["/*\n * Licensed to Elasticsearch B.V. under one or more contributor\n * license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright\n * ownership. Elasticsearch B.V. licenses this file to you under\n * the Apache License, Version 2.0 (the \"License\"); you may\n * not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport type { EuiPopoverPosition } from './types';\n\ntype Dimension = 'height' | 'width';\n\nexport const POSITIONS: EuiPopoverPosition[] = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\n\ninterface BoundingBox {\n [position: string]: number;\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface EuiClientRect extends BoundingBox {\n height: number;\n width: number;\n}\n\nconst relatedDimension: { [position in EuiPopoverPosition]: Dimension } = {\n top: 'height',\n right: 'width',\n bottom: 'height',\n left: 'width'\n};\n\nconst dimensionPositionAttribute: {\n [dimension in Dimension]: 'top' | 'left';\n} = {\n height: 'top',\n width: 'left'\n};\n\nconst positionComplements: {\n [position in EuiPopoverPosition]: EuiPopoverPosition;\n} = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\n\n// always resolving to top/left is taken advantage of by knowing they are the\n// minimum edges of the bounding box\nconst positionSubstitutes: {\n [position in EuiPopoverPosition]: 'left' | 'top';\n} = {\n top: 'left',\n right: 'top',\n bottom: 'left',\n left: 'top'\n};\n\ninterface FindPopoverPositionArgs {\n anchor: HTMLElement;\n popover: HTMLElement;\n align?: EuiPopoverPosition;\n position: EuiPopoverPosition;\n forcePosition?: boolean;\n buffer?: number | [number, number, number, number];\n offset?: number;\n allowCrossAxis?: boolean;\n container?: HTMLElement;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n returnBoundingBox?: boolean;\n}\n\ninterface FindPopoverPositionResult {\n top: number;\n left: number;\n position: 'top' | 'right' | 'bottom' | 'left';\n fit: number;\n arrow?: { left: number; top: number };\n anchorBoundingBox?: EuiClientRect;\n}\n\nconst getBufferValues = (\n buffer: number | [number, number, number, number]\n): [number, number, number, number] => {\n if (Array.isArray(buffer)) {\n const [topBuffer, rightBuffer, bottomBuffer, leftBuffer] = buffer;\n\n return [topBuffer, rightBuffer, bottomBuffer, leftBuffer];\n }\n\n return [buffer, buffer, buffer, buffer];\n};\n\n/**\n * Calculates the absolute positioning (relative to document.body) to place a popover element\n *\n * @param anchor {HTMLElement} Element to anchor the popover to\n * @param popover {HTMLElement} Element containing the popover content\n * @param position {string} Position the user wants. One of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param [forcePosition] {boolean} If true, use only the provided `position` value and don't try any other position\n * @param [align] {string} Cross-axis alignment. One of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param [buffer=16] {number} Minimum distance between the popover and the bounding container\n * @param [offset=0] {number} Distance between the popover and the anchor\n * @param [allowCrossAxis=true] {boolean} Whether to allow the popover to be positioned on the cross-axis\n * @param [container] {HTMLElement} Element the popover must be constrained to fit within\n * @param [arrowConfig] {{arrowWidth: number, arrowBuffer: number}} If\n * present, describes the size & constraints for an arrow element, and the\n * function return value will include an `arrow` param with position details\n *\n * @returns {FindPopoverPositionResult} absolute page coordinates for the\n * popover, and the placement's relation to the anchor or undefined\n * there's no room.\n */\nexport function findPopoverPosition({\n anchor,\n popover,\n align,\n position,\n forcePosition,\n buffer = 16,\n offset = 0,\n allowCrossAxis = true,\n container,\n arrowConfig,\n returnBoundingBox\n}: FindPopoverPositionArgs): FindPopoverPositionResult {\n // find the screen-relative bounding boxes of the anchor, popover, and container\n const anchorBoundingBox = getElementBoundingBox(anchor);\n const popoverBoundingBox = getElementBoundingBox(popover);\n\n // calculate the window's bounds\n // window.(innerWidth|innerHeight) do not account for scrollbars\n // so prefer the clientWidth/clientHeight of the DOM if available\n const documentWidth =\n document.documentElement.clientWidth || window.innerWidth;\n const documentHeight =\n document.documentElement.clientHeight || window.innerHeight;\n const windowBoundingBox: EuiClientRect = {\n top: 0,\n right: documentWidth,\n bottom: documentHeight,\n left: 0,\n height: documentHeight,\n width: documentWidth\n };\n\n // if no container element is given fall back to using the window viewport\n const containerBoundingBox = container\n ? getElementBoundingBox(container)\n : windowBoundingBox;\n\n /**\n * `position` was specified by the function caller and is a strong hint\n * as to the preferred location of the popover relative to the anchor.\n * However, we strongly prefer showing all of the popover content within\n * the window+container boundary and will iterate over the four\n * possible sides until a perfect fit is located. If none of the locations\n * fully contain popover, the location with the best fit is selected.\n *\n * This approach first checks the preferred `position`, then its opposite\n * along the same axis, next a location on the cross-axis, and finally it\n * tests the remaining position.\n *\n * e.g.\n * if position = \"top\" the order is top, bottom, left right\n * if position = \"right\" the order is right, left, top, bottom\n */\n\n // Try the user-desired position first.\n const iterationPositions = [position];\n\n // keep user-defined alignment in the original positions.\n type valuekey = undefined | EuiPopoverPosition;\n\n const iterationAlignments: valuekey[] = [align];\n\n if (forcePosition !== true) {\n iterationPositions.push(positionComplements[position]); // Try the complementary position.\n iterationAlignments.push(align); // keep user-defined alignment in the complementary position.\n\n if (allowCrossAxis) {\n iterationPositions.push(\n positionSubstitutes[position], // Switch to the cross axis.\n positionComplements[positionSubstitutes[position]] // Try the complementary position on the cross axis.\n );\n iterationAlignments.push(undefined, undefined); // discard desired alignment on cross-axis\n }\n } else {\n // position is forced, if it conflicts with the alignment then reset align to `null`\n // e.g. original placement request for `downLeft` is moved to the `left` side, future calls\n // will position and align `left`, and `leftLeft` is not a valid placement\n if (\n position === align ||\n (align !== undefined && position === positionComplements[align])\n ) {\n iterationAlignments[0] = undefined;\n }\n }\n\n let bestFit: number | undefined = undefined;\n let bestPosition: FindPopoverPositionResult | null = null;\n\n for (let idx = 0; idx < iterationPositions.length; idx++) {\n const iterationPosition = iterationPositions[idx];\n\n // See if we can find a position with a better fit than we've found so far.\n const screenCoordinates = getPopoverScreenCoordinates({\n position: iterationPosition!,\n align: iterationAlignments[idx],\n anchorBoundingBox,\n popoverBoundingBox,\n windowBoundingBox,\n containerBoundingBox,\n offset,\n buffer,\n arrowConfig\n });\n\n if (bestFit === undefined || screenCoordinates.fit > bestFit) {\n bestFit = screenCoordinates.fit;\n bestPosition = {\n fit: screenCoordinates.fit,\n position: iterationPosition!,\n top: screenCoordinates.top + window.pageYOffset,\n left: screenCoordinates.left + window.pageXOffset,\n arrow: screenCoordinates.arrow\n };\n\n // If we've already found the ideal fit, use that position.\n if (bestFit === 1) {\n break;\n }\n }\n\n // If we haven't improved the fit, then continue on and try a new position.\n }\n\n if (bestPosition == null) {\n throw new Error('Failed to calculate bestPosition');\n }\n\n if (returnBoundingBox) {\n bestPosition.anchorBoundingBox = anchorBoundingBox;\n }\n\n return bestPosition;\n}\n\ninterface GetPopoverScreenCoordinatesArgs {\n position: EuiPopoverPosition;\n align?: EuiPopoverPosition;\n anchorBoundingBox: EuiClientRect;\n popoverBoundingBox: EuiClientRect;\n windowBoundingBox: EuiClientRect;\n containerBoundingBox: EuiClientRect;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n offset?: number;\n buffer?: number | [number, number, number, number];\n}\n\ninterface GetPopoverScreenCoordinatesResult {\n top: number;\n left: number;\n fit: number;\n arrow: { top: number; left: number } | undefined;\n}\n\n/**\n * Given a target position and the popover's surrounding context, returns either an\n * object with {top, left} screen coordinates or `null` if it's not possible to show\n * content in the target position\n * @param position {string} the target position, one of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param align {string} target alignment on the cross-axis, one of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param anchorBoundingBox {Object} bounding box of the anchor element\n * @param popoverBoundingBox {Object} bounding box of the popover element\n * @param windowBoundingBox {Object} bounding box of the window\n * @param containerBoundingBox {Object} bounding box of the container\n * @param [arrowConfig] {{arrowWidth: number, arrowBuffer: number}} If present, describes the size &\n * constraints for an arrow element, and the function return value will include an `arrow` param\n * with position details\n * @param [offset=0] {number} Distance between the popover and the anchor\n * @param [buffer=0] {number} Minimum distance between the popover's\n * placement and the container edge\n *\n * @returns {GetPopoverScreenCoordinatesResult}\n * object with top/left coordinates, the popover's relative position to the anchor, and how well the\n * popover fits in the location (0.0 -> 1.0) coordinates and the popover's relative position, if\n * there is no room in this placement then null\n */\nexport function getPopoverScreenCoordinates({\n position,\n align,\n anchorBoundingBox,\n popoverBoundingBox,\n windowBoundingBox,\n containerBoundingBox,\n arrowConfig,\n offset = 0,\n buffer = 0\n}: GetPopoverScreenCoordinatesArgs): GetPopoverScreenCoordinatesResult {\n /**\n * The goal is to find the best way to align the popover content\n * on the given side of the anchor element. The popover prefers\n * centering on the anchor but can shift along the cross-axis as needed.\n *\n * We return the top/left coordinates that best fit the popover inside\n * the given boundaries, and also return the `fit` value which indicates\n * what percentage of the popover is within the bounds.\n *\n * e.g. finding a location when position=top\n * the preferred location is directly over the anchor\n *\n * +----------------------+\n * | popover |\n * +----------------------+\n * v\n * +--------------+\n * | anchor |\n * +--------------+\n *\n * but if anchor doesn't have much (or any) room on its ride side\n * the popover will shift to the left\n *\n * +----------------------+\n * | popover |\n * +----------------------+\n * v\n * +--------------+\n * | anchor |\n * +--------------+\n *\n */\n\n const crossAxisFirstSide = positionSubstitutes[position]; // \"top\" -> \"left\"\n const crossAxisSecondSide = positionComplements[crossAxisFirstSide]; // \"left\" -> \"right\"\n const crossAxisDimension = relatedDimension[crossAxisFirstSide]; // \"left\" -> \"width\"\n\n const [topBuffer, rightBuffer, bottomBuffer, leftBuffer] =\n getBufferValues(buffer);\n\n const { crossAxisPosition, crossAxisArrowPosition } = getCrossAxisPosition({\n crossAxisFirstSide,\n crossAxisSecondSide,\n crossAxisDimension,\n position,\n align,\n buffer,\n offset,\n windowBoundingBox,\n containerBoundingBox,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n });\n\n const primaryAxisDimension = relatedDimension[position]; // \"top\" -> \"height\"\n const primaryAxisPositionName =\n dimensionPositionAttribute[primaryAxisDimension]; // \"height\" -> \"top\"\n\n const { primaryAxisPosition, primaryAxisArrowPosition } =\n getPrimaryAxisPosition({\n position,\n offset,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n });\n\n const popoverPlacement = {\n [crossAxisFirstSide]: crossAxisPosition,\n [primaryAxisPositionName]: primaryAxisPosition\n };\n\n // calculate the fit of the popover in this location\n // fit is in range 0.0 -> 1.0 and is the percentage of the popover which is visible in this location\n const combinedBoundingBox = intersectBoundingBoxes(\n windowBoundingBox,\n containerBoundingBox\n );\n\n // shrink the visible bounding box by `buffer`\n // to compute a fit value\n combinedBoundingBox.top += topBuffer;\n combinedBoundingBox.right -= rightBuffer;\n combinedBoundingBox.bottom -= bottomBuffer;\n combinedBoundingBox.left += leftBuffer;\n\n const fit = getVisibleFit(\n {\n top: popoverPlacement['top']!,\n right: popoverPlacement['left']! + popoverBoundingBox.width,\n bottom: popoverPlacement['top']! + popoverBoundingBox.height,\n left: popoverPlacement['left']!,\n width: popoverBoundingBox.width,\n height: popoverBoundingBox.height\n },\n combinedBoundingBox\n );\n\n const arrow = arrowConfig\n ? {\n [crossAxisFirstSide]:\n crossAxisArrowPosition! - popoverPlacement[crossAxisFirstSide]!,\n [primaryAxisPositionName]: primaryAxisArrowPosition\n }\n : undefined;\n\n return {\n fit,\n top: popoverPlacement['top']!,\n left: popoverPlacement['left']!,\n arrow: arrow ? { left: arrow['left']!, top: arrow['top']! } : undefined\n };\n}\n\ninterface GetCrossAxisPositionArgs {\n crossAxisFirstSide: EuiPopoverPosition;\n crossAxisSecondSide: EuiPopoverPosition;\n crossAxisDimension: Dimension;\n position: EuiPopoverPosition;\n align?: EuiPopoverPosition;\n buffer: number | [number, number, number, number];\n offset: number;\n windowBoundingBox: EuiClientRect;\n containerBoundingBox: EuiClientRect;\n popoverBoundingBox: EuiClientRect;\n anchorBoundingBox: EuiClientRect;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n}\n\ninterface CrossAxisPosition {\n crossAxisPosition: number;\n crossAxisArrowPosition: number | undefined;\n}\n\nfunction getCrossAxisPosition({\n crossAxisFirstSide,\n crossAxisSecondSide,\n crossAxisDimension,\n position,\n align,\n buffer,\n offset,\n windowBoundingBox,\n containerBoundingBox,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n}: GetCrossAxisPositionArgs): CrossAxisPosition {\n // how much of the popover overflows past either side of the anchor if its centered\n const popoverSizeOnCrossAxis = popoverBoundingBox[crossAxisDimension];\n const anchorSizeOnCrossAxis = anchorBoundingBox[crossAxisDimension];\n const anchorHalfSize = anchorSizeOnCrossAxis / 2;\n\n // the popover's original position on the cross-axis is determined by:\n const crossAxisPositionOriginal =\n anchorBoundingBox[crossAxisFirstSide] + // where the anchor is located\n anchorHalfSize - // plus half anchor dimension\n popoverSizeOnCrossAxis / 2; // less half the popover dimension\n\n // To fit the content within both the window and container,\n // compute the smaller of the two spaces along each edge\n const combinedBoundingBox = intersectBoundingBoxes(\n windowBoundingBox,\n containerBoundingBox\n );\n const availableSpace = getAvailableSpace(\n anchorBoundingBox,\n combinedBoundingBox,\n buffer,\n offset,\n position\n );\n const minimumSpace = arrowConfig ? arrowConfig.arrowBuffer : 0;\n\n const contentOverflowSize =\n (popoverSizeOnCrossAxis - anchorSizeOnCrossAxis) / 2;\n\n let alignAmount = 0;\n let alignDirection = 1;\n let amountOfShiftNeeded = 0;\n let shiftDirection = 1;\n\n if (align != null) {\n // no alignment, find how much the container boundary requires the content to shift\n alignDirection = align === 'top' || align === 'left' ? 1 : -1;\n alignAmount = contentOverflowSize;\n\n const alignedOverflowAmount = contentOverflowSize + alignAmount;\n const needsShift =\n alignedOverflowAmount > availableSpace[positionComplements[align]];\n\n amountOfShiftNeeded = needsShift\n ? alignedOverflowAmount - availableSpace[positionComplements[align]]\n : 0;\n shiftDirection = -1 * alignDirection;\n } else {\n // shifting the popover to one side may yield a better fit\n const spaceAvailableOnFirstSide = availableSpace[crossAxisFirstSide];\n const spaceAvailableOnSecondSide = availableSpace[crossAxisSecondSide];\n\n const isShiftTowardFirstSide =\n spaceAvailableOnFirstSide > spaceAvailableOnSecondSide;\n\n shiftDirection = isShiftTowardFirstSide ? -1 : 1;\n\n // determine which direction has more room and the popover should shift to\n const leastAvailableSpace = Math.min(\n spaceAvailableOnFirstSide,\n spaceAvailableOnSecondSide\n );\n\n const needsShift = contentOverflowSize > leastAvailableSpace;\n\n amountOfShiftNeeded = needsShift\n ? contentOverflowSize - leastAvailableSpace\n : 0;\n }\n\n // shift over the popover if necessary\n const shiftAmount = amountOfShiftNeeded * shiftDirection;\n let crossAxisPosition =\n crossAxisPositionOriginal + shiftAmount + alignAmount * alignDirection;\n\n // if an `arrowConfig` is specified, find where to position the arrow\n let crossAxisArrowPosition;\n\n if (arrowConfig) {\n const { arrowWidth } = arrowConfig;\n\n crossAxisArrowPosition =\n anchorBoundingBox[crossAxisFirstSide] + anchorHalfSize - arrowWidth / 2;\n\n // make sure there's enough buffer around the arrow\n // by calculating how how much the arrow would need to move\n // but instead of moving the arrow, shift the popover content\n if (crossAxisArrowPosition < crossAxisPosition + minimumSpace) {\n // arrow is too close to the minimum side\n const difference =\n crossAxisPosition + minimumSpace - crossAxisArrowPosition;\n\n crossAxisPosition -= difference;\n } else if (\n crossAxisArrowPosition + minimumSpace + arrowWidth >\n crossAxisPosition + popoverSizeOnCrossAxis\n ) {\n // arrow is too close to the maximum side\n const edge = crossAxisPosition + popoverSizeOnCrossAxis;\n const difference =\n crossAxisArrowPosition - (edge - minimumSpace - arrowWidth);\n\n crossAxisPosition += difference;\n }\n }\n\n return {\n crossAxisPosition,\n crossAxisArrowPosition\n };\n}\n\ninterface GetPrimaryAxisPositionArgs {\n position: EuiPopoverPosition;\n offset: number;\n popoverBoundingBox: BoundingBox;\n anchorBoundingBox: BoundingBox;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n}\n\nfunction getPrimaryAxisPosition({\n position,\n offset,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n}: GetPrimaryAxisPositionArgs): {\n primaryAxisPosition: number;\n primaryAxisArrowPosition: number | undefined;\n} {\n // if positioning to the top or left, the target position decreases\n // from the anchor's top or left, otherwise the position adds to the anchor's\n const isOffsetDecreasing = position === 'top' || position === 'left';\n\n const primaryAxisDimension = relatedDimension[position]; // \"top\" -> \"height\"\n const popoverSizeOnPrimaryAxis = popoverBoundingBox[primaryAxisDimension];\n\n // start at the top or left edge of the anchor element\n const primaryAxisPositionName =\n dimensionPositionAttribute[primaryAxisDimension]; // \"height\" -> \"top\"\n const anchorEdgeOrigin = anchorBoundingBox[primaryAxisPositionName];\n\n // find the popover position on the primary axis\n const anchorSizeOnPrimaryAxis = anchorBoundingBox[primaryAxisDimension];\n const primaryAxisOffset =\n (isOffsetDecreasing ? popoverSizeOnPrimaryAxis : anchorSizeOnPrimaryAxis) ||\n 0;\n const contentOffset =\n (offset + primaryAxisOffset) * (isOffsetDecreasing ? -1 : 1);\n const primaryAxisPosition = anchorEdgeOrigin + contentOffset;\n\n let primaryAxisArrowPosition;\n\n if (arrowConfig) {\n primaryAxisArrowPosition = isOffsetDecreasing\n ? popoverSizeOnPrimaryAxis\n : 0;\n }\n\n return {\n primaryAxisPosition,\n primaryAxisArrowPosition\n };\n}\n\n/**\n * Finds the client pixel coordinate of each edge for the element's bounding box,\n * and the bounding box's width & height\n *\n * @param {HTMLElement} element\n * @returns {{top: number, right: number, bottom: number, left: number, height: number, width: number}}\n */\nexport function getElementBoundingBox(element: HTMLElement): EuiClientRect {\n const rect = element.getBoundingClientRect();\n\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n height: rect.height,\n width: rect.width\n };\n}\n\n/**\n * Calculates the available content space between anchor and container\n *\n * @param {Object} anchorBoundingBox Client bounding box of the anchor element\n * @param {Object} containerBoundingBox Client bounding box of the container element\n * @param {number} buffer Minimum distance between the popover and the bounding container\n * @param {number} offset Distance between the popover and the anchor\n * @param {string} offsetSide Side the offset needs to be applied to, one\n * of [\"top\", \"right\", \"bottom\", \"left\"]\n * @returns {{top: number, right: number, bottom: number, left: number}}\n */\nexport function getAvailableSpace(\n anchorBoundingBox: BoundingBox,\n containerBoundingBox: BoundingBox,\n buffer: number | [number, number, number, number],\n offset: number,\n offsetSide: EuiPopoverPosition\n): BoundingBox {\n const [topBuffer, rightBuffer, bottomBuffer, leftBuffer] =\n getBufferValues(buffer);\n\n return {\n top:\n anchorBoundingBox.top -\n containerBoundingBox.top -\n topBuffer -\n (offsetSide === 'top' ? offset : 0),\n right:\n containerBoundingBox.right -\n anchorBoundingBox.right -\n rightBuffer -\n (offsetSide === 'right' ? offset : 0),\n bottom:\n containerBoundingBox.bottom -\n anchorBoundingBox.bottom -\n bottomBuffer -\n (offsetSide === 'bottom' ? offset : 0),\n left:\n anchorBoundingBox.left -\n containerBoundingBox.left -\n leftBuffer -\n (offsetSide === 'left' ? offset : 0)\n };\n}\n\n/**\n * Computes the fit (overlap) of the content within the container, fit is in range 0.0 => 1.0\n * @param contentBoundingBox bounding box of content to calculate fit for\n * @param containerBoundingBox bounding box of container\n * @returns {number}\n */\nexport function getVisibleFit(\n contentBoundingBox: BoundingBox,\n containerBoundingBox: BoundingBox\n): number {\n const intersection = intersectBoundingBoxes(\n contentBoundingBox,\n containerBoundingBox\n );\n\n if (\n intersection.left > intersection.right ||\n intersection.top > intersection.top\n ) {\n // there is no intersection, the boxes are completely separated on at least one axis\n return 0;\n }\n\n const intersectionArea =\n (intersection.right - intersection.left) *\n (intersection.bottom - intersection.top);\n const contentArea =\n (contentBoundingBox.right - contentBoundingBox.left) *\n (contentBoundingBox.bottom - contentBoundingBox.top);\n\n return intersectionArea / contentArea;\n}\n\n/**\n * Calculates the intersection space between two bounding boxes\n *\n * @param firstBox\n * @param secondBox\n * @returns {EuiClientRect}\n */\nexport function intersectBoundingBoxes(\n firstBox: BoundingBox,\n secondBox: BoundingBox\n): EuiClientRect {\n const top = Math.max(firstBox.top, secondBox.top);\n const right = Math.min(firstBox.right, secondBox.right);\n const bottom = Math.min(firstBox.bottom, secondBox.bottom);\n const left = Math.max(firstBox.left, secondBox.left);\n const height = Math.max(bottom - top, 0);\n const width = Math.max(right - left, 0);\n\n return {\n top,\n right,\n bottom,\n left,\n height,\n width\n };\n}\n\n/**\n * Returns the top-most defined z-index in the element's ancestor hierarchy\n * relative to the `target` element; if no z-index is defined, returns 0\n * @param element {HTMLElement}\n * @param cousin {HTMLElement}\n * @returns {number}\n */\nexport function getElementZIndex(\n element: HTMLElement,\n cousin: HTMLElement\n): number {\n /**\n * finding the z-index of `element` is not the full story\n * its the CSS stacking context that is important\n * take this DOM for example:\n * body\n * section[z-index: 1000]\n * p[z-index: 500]\n * button\n * div\n *\n * what z-index does the `div` need to display next to `button`?\n * the `div` and `section` are where the stacking context splits\n * so `div` needs to copy `section`'s z-index in order to\n * appear next to / over `button`\n *\n * calculate this by starting at `button` and finding its offsetParents\n * then walk the parents from top -> down until the stacking context\n * split is found, or if there is no split then a specific z-index is unimportant\n */\n\n // build the array of the element + its offset parents\n const nodesToInspect: HTMLElement[] = [];\n // eslint-disable-next-line\n while (true) {\n nodesToInspect.push(element);\n\n // AFAICT this is a valid cast - the libdefs appear wrong\n element = element.offsetParent as HTMLElement;\n\n // stop if there is no parent\n if (element == null) {\n break;\n }\n\n // stop if the parent contains the related element\n // as this is the z-index ancestor\n if (element.contains(cousin)) {\n break;\n }\n }\n\n // reverse the nodes to walk from top -> element\n nodesToInspect.reverse();\n\n for (const node of nodesToInspect) {\n // get this node's z-index css value\n const zIndex = window.document\n .defaultView!.getComputedStyle(node)\n .getPropertyValue('z-index');\n\n // if the z-index is not a number (e.g. \"auto\") return null, else the value\n const parsedZIndex = parseInt(zIndex, 10);\n\n if (!isNaN(parsedZIndex)) {\n return parsedZIndex;\n }\n }\n\n return 0;\n}\n"],"names":["POSITIONS","relatedDimension","top","right","bottom","left","dimensionPositionAttribute","height","width","positionComplements","positionSubstitutes","getBufferValues","buffer","Array","isArray","topBuffer","rightBuffer","bottomBuffer","leftBuffer","findPopoverPosition","anchor","popover","align","position","forcePosition","offset","allowCrossAxis","container","arrowConfig","returnBoundingBox","anchorBoundingBox","getElementBoundingBox","popoverBoundingBox","documentWidth","document","documentElement","clientWidth","window","innerWidth","documentHeight","clientHeight","innerHeight","windowBoundingBox","containerBoundingBox","iterationPositions","iterationAlignments","push","undefined","bestFit","bestPosition","idx","length","iterationPosition","screenCoordinates","getPopoverScreenCoordinates","fit","pageYOffset","pageXOffset","arrow","Error","crossAxisFirstSide","crossAxisSecondSide","crossAxisDimension","crossAxisPosition","crossAxisArrowPosition","getCrossAxisPosition","primaryAxisDimension","primaryAxisPositionName","primaryAxisPosition","primaryAxisArrowPosition","getPrimaryAxisPosition","popoverPlacement","combinedBoundingBox","intersectBoundingBoxes","getVisibleFit","popoverSizeOnCrossAxis","anchorSizeOnCrossAxis","anchorHalfSize","crossAxisPositionOriginal","availableSpace","getAvailableSpace","minimumSpace","arrowBuffer","contentOverflowSize","alignAmount","alignDirection","amountOfShiftNeeded","shiftDirection","alignedOverflowAmount","needsShift","spaceAvailableOnFirstSide","spaceAvailableOnSecondSide","isShiftTowardFirstSide","leastAvailableSpace","Math","min","shiftAmount","arrowWidth","difference","edge","isOffsetDecreasing","popoverSizeOnPrimaryAxis","anchorEdgeOrigin","anchorSizeOnPrimaryAxis","primaryAxisOffset","contentOffset","element","rect","getBoundingClientRect","offsetSide","contentBoundingBox","intersection","intersectionArea","contentArea","firstBox","secondBox","max","getElementZIndex","cousin","nodesToInspect","offsetParent","contains","reverse","node","zIndex","defaultView","getComputedStyle","getPropertyValue","parsedZIndex","parseInt","isNaN"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/popover/index.ts"],"sourcesContent":["/*\n * Licensed to Elasticsearch B.V. under one or more contributor\n * license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright\n * ownership. Elasticsearch B.V. licenses this file to you under\n * the Apache License, Version 2.0 (the \"License\"); you may\n * not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport type { EuiPopoverPosition } from './types';\n\ntype Dimension = 'height' | 'width';\n\nexport const POSITIONS: EuiPopoverPosition[] = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\n\ninterface BoundingBox {\n [position: string]: number;\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface EuiClientRect extends BoundingBox {\n height: number;\n width: number;\n}\n\nconst relatedDimension: { [position in EuiPopoverPosition]: Dimension } = {\n top: 'height',\n right: 'width',\n bottom: 'height',\n left: 'width'\n};\n\nconst dimensionPositionAttribute: {\n [dimension in Dimension]: 'top' | 'left';\n} = {\n height: 'top',\n width: 'left'\n};\n\nconst positionComplements: {\n [position in EuiPopoverPosition]: EuiPopoverPosition;\n} = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\n\n// always resolving to top/left is taken advantage of by knowing they are the\n// minimum edges of the bounding box\nconst positionSubstitutes: {\n [position in EuiPopoverPosition]: 'left' | 'top';\n} = {\n top: 'left',\n right: 'top',\n bottom: 'left',\n left: 'top'\n};\n\ninterface FindPopoverPositionArgs {\n anchor: HTMLElement;\n popover: HTMLElement;\n host?: HTMLElement | null;\n align?: EuiPopoverPosition;\n position: EuiPopoverPosition;\n forcePosition?: boolean;\n buffer?: number | [number, number, number, number];\n offset?: number;\n allowCrossAxis?: boolean;\n container?: HTMLElement;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n returnBoundingBox?: boolean;\n}\n\ninterface FindPopoverPositionResult {\n top: number;\n left: number;\n position: 'top' | 'right' | 'bottom' | 'left';\n fit: number;\n arrow?: { left: number; top: number };\n anchorBoundingBox?: EuiClientRect;\n}\n\nconst getBufferValues = (\n buffer: number | [number, number, number, number]\n): [number, number, number, number] => {\n if (Array.isArray(buffer)) {\n const [topBuffer, rightBuffer, bottomBuffer, leftBuffer] = buffer;\n\n return [topBuffer, rightBuffer, bottomBuffer, leftBuffer];\n }\n\n return [buffer, buffer, buffer, buffer];\n};\n\n/**\n * Calculates the absolute positioning (relative to document.body) to place a popover element\n *\n * @param anchor {HTMLElement} Element to anchor the popover to\n * @param popover {HTMLElement} Element containing the popover content\n * @param position {string} Position the user wants. One of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param [forcePosition] {boolean} If true, use only the provided `position` value and don't try any other position\n * @param host {HTMLElement} Element the popover must be positioned relative to\n * @param [align] {string} Cross-axis alignment. One of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param [buffer=16] {number} Minimum distance between the popover and the bounding container\n * @param [offset=0] {number} Distance between the popover and the anchor\n * @param [allowCrossAxis=true] {boolean} Whether to allow the popover to be positioned on the cross-axis\n * @param [container] {HTMLElement} Element the popover must be constrained to fit within\n * @param [arrowConfig] {{arrowWidth: number, arrowBuffer: number}} If\n * present, describes the size & constraints for an arrow element, and the\n * function return value will include an `arrow` param with position details\n *\n * @returns {FindPopoverPositionResult} absolute page coordinates for the\n * popover, and the placement's relation to the anchor or undefined\n * there's no room.\n */\nexport function findPopoverPosition({\n anchor,\n popover,\n align,\n position,\n forcePosition,\n host,\n buffer = 16,\n offset = 0,\n allowCrossAxis = true,\n container,\n arrowConfig,\n returnBoundingBox\n}: FindPopoverPositionArgs): FindPopoverPositionResult {\n // find the screen-relative bounding boxes of the anchor, popover, and container\n const anchorBoundingBox = getElementBoundingBox(anchor);\n const popoverBoundingBox = getElementBoundingBox(popover);\n\n // calculate the window's bounds\n // window.(innerWidth|innerHeight) do not account for scrollbars\n // so prefer the clientWidth/clientHeight of the DOM if available\n const documentWidth =\n document.documentElement.clientWidth || window.innerWidth;\n const documentHeight =\n document.documentElement.clientHeight || window.innerHeight;\n const windowBoundingBox: EuiClientRect = {\n top: 0,\n right: documentWidth,\n bottom: documentHeight,\n left: 0,\n height: documentHeight,\n width: documentWidth\n };\n\n // if no container element is given fall back to using the window viewport\n const containerBoundingBox = container\n ? getElementBoundingBox(container)\n : windowBoundingBox;\n\n // the anchor is positioned relative to the host element if provided\n if (host) {\n const hostBoundingBox = getElementBoundingBox(host);\n\n const anchorBoundingRelativeToHost = {\n top: anchorBoundingBox.top - hostBoundingBox.top,\n left: anchorBoundingBox.left - hostBoundingBox.left,\n right: hostBoundingBox.right - anchorBoundingBox.right,\n bottom: hostBoundingBox.bottom - anchorBoundingBox.bottom\n };\n\n\n anchorBoundingBox.top = anchorBoundingRelativeToHost.top;\n anchorBoundingBox.left = anchorBoundingRelativeToHost.left;\n anchorBoundingBox.right = anchorBoundingRelativeToHost.right;\n anchorBoundingBox.bottom = anchorBoundingRelativeToHost.bottom;\n }\n\n /**\n * `position` was specified by the function caller and is a strong hint\n * as to the preferred location of the popover relative to the anchor.\n * However, we strongly prefer showing all of the popover content within\n * the window+container boundary and will iterate over the four\n * possible sides until a perfect fit is located. If none of the locations\n * fully contain popover, the location with the best fit is selected.\n *\n * This approach first checks the preferred `position`, then its opposite\n * along the same axis, next a location on the cross-axis, and finally it\n * tests the remaining position.\n *\n * e.g.\n * if position = \"top\" the order is top, bottom, left right\n * if position = \"right\" the order is right, left, top, bottom\n */\n\n // Try the user-desired position first.\n const iterationPositions = [position];\n\n // keep user-defined alignment in the original positions.\n type valuekey = undefined | EuiPopoverPosition;\n\n const iterationAlignments: valuekey[] = [align];\n\n if (forcePosition !== true) {\n iterationPositions.push(positionComplements[position]); // Try the complementary position.\n iterationAlignments.push(align); // keep user-defined alignment in the complementary position.\n\n if (allowCrossAxis) {\n iterationPositions.push(\n positionSubstitutes[position], // Switch to the cross axis.\n positionComplements[positionSubstitutes[position]] // Try the complementary position on the cross axis.\n );\n iterationAlignments.push(undefined, undefined); // discard desired alignment on cross-axis\n }\n } else {\n // position is forced, if it conflicts with the alignment then reset align to `null`\n // e.g. original placement request for `downLeft` is moved to the `left` side, future calls\n // will position and align `left`, and `leftLeft` is not a valid placement\n if (\n position === align ||\n (align !== undefined && position === positionComplements[align])\n ) {\n iterationAlignments[0] = undefined;\n }\n }\n\n let bestFit: number | undefined = undefined;\n let bestPosition: FindPopoverPositionResult | null = null;\n\n for (let idx = 0; idx < iterationPositions.length; idx++) {\n const iterationPosition = iterationPositions[idx];\n\n // See if we can find a position with a better fit than we've found so far.\n const screenCoordinates = getPopoverScreenCoordinates({\n position: iterationPosition!,\n align: iterationAlignments[idx],\n anchorBoundingBox,\n popoverBoundingBox,\n windowBoundingBox,\n containerBoundingBox,\n offset,\n buffer,\n arrowConfig\n });\n\n if (bestFit === undefined || screenCoordinates.fit > bestFit) {\n bestFit = screenCoordinates.fit;\n bestPosition = {\n fit: screenCoordinates.fit,\n position: iterationPosition!,\n top: screenCoordinates.top + window.pageYOffset,\n left: screenCoordinates.left + window.pageXOffset,\n arrow: screenCoordinates.arrow\n };\n\n // If we've already found the ideal fit, use that position.\n if (bestFit === 1) {\n break;\n }\n }\n\n // If we haven't improved the fit, then continue on and try a new position.\n }\n\n if (bestPosition == null) {\n throw new Error('Failed to calculate bestPosition');\n }\n\n if (returnBoundingBox) {\n bestPosition.anchorBoundingBox = anchorBoundingBox;\n }\n\n return bestPosition;\n}\n\ninterface GetPopoverScreenCoordinatesArgs {\n position: EuiPopoverPosition;\n align?: EuiPopoverPosition;\n anchorBoundingBox: EuiClientRect;\n popoverBoundingBox: EuiClientRect;\n windowBoundingBox: EuiClientRect;\n containerBoundingBox: EuiClientRect;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n offset?: number;\n buffer?: number | [number, number, number, number];\n}\n\ninterface GetPopoverScreenCoordinatesResult {\n top: number;\n left: number;\n fit: number;\n arrow: { top: number; left: number } | undefined;\n}\n\n/**\n * Given a target position and the popover's surrounding context, returns either an\n * object with {top, left} screen coordinates or `null` if it's not possible to show\n * content in the target position\n * @param position {string} the target position, one of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param align {string} target alignment on the cross-axis, one of [\"top\", \"right\", \"bottom\", \"left\"]\n * @param anchorBoundingBox {Object} bounding box of the anchor element\n * @param popoverBoundingBox {Object} bounding box of the popover element\n * @param windowBoundingBox {Object} bounding box of the window\n * @param containerBoundingBox {Object} bounding box of the container\n * @param [arrowConfig] {{arrowWidth: number, arrowBuffer: number}} If present, describes the size &\n * constraints for an arrow element, and the function return value will include an `arrow` param\n * with position details\n * @param [offset=0] {number} Distance between the popover and the anchor\n * @param [buffer=0] {number} Minimum distance between the popover's\n * placement and the container edge\n *\n * @returns {GetPopoverScreenCoordinatesResult}\n * object with top/left coordinates, the popover's relative position to the anchor, and how well the\n * popover fits in the location (0.0 -> 1.0) coordinates and the popover's relative position, if\n * there is no room in this placement then null\n */\nexport function getPopoverScreenCoordinates({\n position,\n align,\n anchorBoundingBox,\n popoverBoundingBox,\n windowBoundingBox,\n containerBoundingBox,\n arrowConfig,\n offset = 0,\n buffer = 0\n}: GetPopoverScreenCoordinatesArgs): GetPopoverScreenCoordinatesResult {\n /**\n * The goal is to find the best way to align the popover content\n * on the given side of the anchor element. The popover prefers\n * centering on the anchor but can shift along the cross-axis as needed.\n *\n * We return the top/left coordinates that best fit the popover inside\n * the given boundaries, and also return the `fit` value which indicates\n * what percentage of the popover is within the bounds.\n *\n * e.g. finding a location when position=top\n * the preferred location is directly over the anchor\n *\n * +----------------------+\n * | popover |\n * +----------------------+\n * v\n * +--------------+\n * | anchor |\n * +--------------+\n *\n * but if anchor doesn't have much (or any) room on its ride side\n * the popover will shift to the left\n *\n * +----------------------+\n * | popover |\n * +----------------------+\n * v\n * +--------------+\n * | anchor |\n * +--------------+\n *\n */\n\n const crossAxisFirstSide = positionSubstitutes[position]; // \"top\" -> \"left\"\n const crossAxisSecondSide = positionComplements[crossAxisFirstSide]; // \"left\" -> \"right\"\n const crossAxisDimension = relatedDimension[crossAxisFirstSide]; // \"left\" -> \"width\"\n\n const [topBuffer, rightBuffer, bottomBuffer, leftBuffer] =\n getBufferValues(buffer);\n\n const { crossAxisPosition, crossAxisArrowPosition } = getCrossAxisPosition({\n crossAxisFirstSide,\n crossAxisSecondSide,\n crossAxisDimension,\n position,\n align,\n buffer,\n offset,\n windowBoundingBox,\n containerBoundingBox,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n });\n\n const primaryAxisDimension = relatedDimension[position]; // \"top\" -> \"height\"\n const primaryAxisPositionName =\n dimensionPositionAttribute[primaryAxisDimension]; // \"height\" -> \"top\"\n\n const { primaryAxisPosition, primaryAxisArrowPosition } =\n getPrimaryAxisPosition({\n position,\n offset,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n });\n\n const popoverPlacement = {\n [crossAxisFirstSide]: crossAxisPosition,\n [primaryAxisPositionName]: primaryAxisPosition\n };\n\n // calculate the fit of the popover in this location\n // fit is in range 0.0 -> 1.0 and is the percentage of the popover which is visible in this location\n const combinedBoundingBox = intersectBoundingBoxes(\n windowBoundingBox,\n containerBoundingBox\n );\n\n // shrink the visible bounding box by `buffer`\n // to compute a fit value\n combinedBoundingBox.top += topBuffer;\n combinedBoundingBox.right -= rightBuffer;\n combinedBoundingBox.bottom -= bottomBuffer;\n combinedBoundingBox.left += leftBuffer;\n\n const fit = getVisibleFit(\n {\n top: popoverPlacement['top']!,\n right: popoverPlacement['left']! + popoverBoundingBox.width,\n bottom: popoverPlacement['top']! + popoverBoundingBox.height,\n left: popoverPlacement['left']!,\n width: popoverBoundingBox.width,\n height: popoverBoundingBox.height\n },\n combinedBoundingBox\n );\n\n const arrow = arrowConfig\n ? {\n [crossAxisFirstSide]:\n crossAxisArrowPosition! - popoverPlacement[crossAxisFirstSide]!,\n [primaryAxisPositionName]: primaryAxisArrowPosition\n }\n : undefined;\n\n return {\n fit,\n top: popoverPlacement['top']!,\n left: popoverPlacement['left']!,\n arrow: arrow ? { left: arrow['left']!, top: arrow['top']! } : undefined\n };\n}\n\ninterface GetCrossAxisPositionArgs {\n crossAxisFirstSide: EuiPopoverPosition;\n crossAxisSecondSide: EuiPopoverPosition;\n crossAxisDimension: Dimension;\n position: EuiPopoverPosition;\n align?: EuiPopoverPosition;\n buffer: number | [number, number, number, number];\n offset: number;\n windowBoundingBox: EuiClientRect;\n containerBoundingBox: EuiClientRect;\n popoverBoundingBox: EuiClientRect;\n anchorBoundingBox: EuiClientRect;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n}\n\ninterface CrossAxisPosition {\n crossAxisPosition: number;\n crossAxisArrowPosition: number | undefined;\n}\n\nfunction getCrossAxisPosition({\n crossAxisFirstSide,\n crossAxisSecondSide,\n crossAxisDimension,\n position,\n align,\n buffer,\n offset,\n windowBoundingBox,\n containerBoundingBox,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n}: GetCrossAxisPositionArgs): CrossAxisPosition {\n // how much of the popover overflows past either side of the anchor if its centered\n const popoverSizeOnCrossAxis = popoverBoundingBox[crossAxisDimension];\n const anchorSizeOnCrossAxis = anchorBoundingBox[crossAxisDimension];\n const anchorHalfSize = anchorSizeOnCrossAxis / 2;\n\n // the popover's original position on the cross-axis is determined by:\n const crossAxisPositionOriginal =\n anchorBoundingBox[crossAxisFirstSide] + // where the anchor is located\n anchorHalfSize - // plus half anchor dimension\n popoverSizeOnCrossAxis / 2; // less half the popover dimension\n\n // To fit the content within both the window and container,\n // compute the smaller of the two spaces along each edge\n const combinedBoundingBox = intersectBoundingBoxes(\n windowBoundingBox,\n containerBoundingBox\n );\n const availableSpace = getAvailableSpace(\n anchorBoundingBox,\n combinedBoundingBox,\n buffer,\n offset,\n position\n );\n const minimumSpace = arrowConfig ? arrowConfig.arrowBuffer : 0;\n\n const contentOverflowSize =\n (popoverSizeOnCrossAxis - anchorSizeOnCrossAxis) / 2;\n\n let alignAmount = 0;\n let alignDirection = 1;\n let amountOfShiftNeeded = 0;\n let shiftDirection = 1;\n\n if (align != null) {\n // no alignment, find how much the container boundary requires the content to shift\n alignDirection = align === 'top' || align === 'left' ? 1 : -1;\n alignAmount = contentOverflowSize;\n\n const alignedOverflowAmount = contentOverflowSize + alignAmount;\n const needsShift =\n alignedOverflowAmount > availableSpace[positionComplements[align]];\n\n amountOfShiftNeeded = needsShift\n ? alignedOverflowAmount - availableSpace[positionComplements[align]]\n : 0;\n shiftDirection = -1 * alignDirection;\n } else {\n // shifting the popover to one side may yield a better fit\n const spaceAvailableOnFirstSide = availableSpace[crossAxisFirstSide];\n const spaceAvailableOnSecondSide = availableSpace[crossAxisSecondSide];\n\n const isShiftTowardFirstSide =\n spaceAvailableOnFirstSide > spaceAvailableOnSecondSide;\n\n shiftDirection = isShiftTowardFirstSide ? -1 : 1;\n\n // determine which direction has more room and the popover should shift to\n const leastAvailableSpace = Math.min(\n spaceAvailableOnFirstSide,\n spaceAvailableOnSecondSide\n );\n\n const needsShift = contentOverflowSize > leastAvailableSpace;\n\n amountOfShiftNeeded = needsShift\n ? contentOverflowSize - leastAvailableSpace\n : 0;\n }\n\n // shift over the popover if necessary\n const shiftAmount = amountOfShiftNeeded * shiftDirection;\n let crossAxisPosition =\n crossAxisPositionOriginal + shiftAmount + alignAmount * alignDirection;\n\n // if an `arrowConfig` is specified, find where to position the arrow\n let crossAxisArrowPosition;\n\n if (arrowConfig) {\n const { arrowWidth } = arrowConfig;\n\n crossAxisArrowPosition =\n anchorBoundingBox[crossAxisFirstSide] + anchorHalfSize - arrowWidth / 2;\n\n // make sure there's enough buffer around the arrow\n // by calculating how how much the arrow would need to move\n // but instead of moving the arrow, shift the popover content\n if (crossAxisArrowPosition < crossAxisPosition + minimumSpace) {\n // arrow is too close to the minimum side\n const difference =\n crossAxisPosition + minimumSpace - crossAxisArrowPosition;\n\n crossAxisPosition -= difference;\n } else if (\n crossAxisArrowPosition + minimumSpace + arrowWidth >\n crossAxisPosition + popoverSizeOnCrossAxis\n ) {\n // arrow is too close to the maximum side\n const edge = crossAxisPosition + popoverSizeOnCrossAxis;\n const difference =\n crossAxisArrowPosition - (edge - minimumSpace - arrowWidth);\n\n crossAxisPosition += difference;\n }\n }\n\n return {\n crossAxisPosition,\n crossAxisArrowPosition\n };\n}\n\ninterface GetPrimaryAxisPositionArgs {\n position: EuiPopoverPosition;\n offset: number;\n popoverBoundingBox: BoundingBox;\n anchorBoundingBox: BoundingBox;\n arrowConfig?: { arrowWidth: number; arrowBuffer: number };\n}\n\nfunction getPrimaryAxisPosition({\n position,\n offset,\n popoverBoundingBox,\n anchorBoundingBox,\n arrowConfig\n}: GetPrimaryAxisPositionArgs): {\n primaryAxisPosition: number;\n primaryAxisArrowPosition: number | undefined;\n} {\n // if positioning to the top or left, the target position decreases\n // from the anchor's top or left, otherwise the position adds to the anchor's\n const isOffsetDecreasing = position === 'top' || position === 'left';\n\n const primaryAxisDimension = relatedDimension[position]; // \"top\" -> \"height\"\n const popoverSizeOnPrimaryAxis = popoverBoundingBox[primaryAxisDimension];\n\n // start at the top or left edge of the anchor element\n const primaryAxisPositionName =\n dimensionPositionAttribute[primaryAxisDimension]; // \"height\" -> \"top\"\n const anchorEdgeOrigin = anchorBoundingBox[primaryAxisPositionName];\n\n // find the popover position on the primary axis\n const anchorSizeOnPrimaryAxis = anchorBoundingBox[primaryAxisDimension];\n const primaryAxisOffset =\n (isOffsetDecreasing ? popoverSizeOnPrimaryAxis : anchorSizeOnPrimaryAxis) ||\n 0;\n const contentOffset =\n (offset + primaryAxisOffset) * (isOffsetDecreasing ? -1 : 1);\n const primaryAxisPosition = anchorEdgeOrigin + contentOffset;\n\n let primaryAxisArrowPosition;\n\n if (arrowConfig) {\n primaryAxisArrowPosition = isOffsetDecreasing\n ? popoverSizeOnPrimaryAxis\n : 0;\n }\n\n return {\n primaryAxisPosition,\n primaryAxisArrowPosition\n };\n}\n\n/**\n * Finds the client pixel coordinate of each edge for the element's bounding box,\n * and the bounding box's width & height\n *\n * @param {HTMLElement} element\n * @returns {{top: number, right: number, bottom: number, left: number, height: number, width: number}}\n */\nexport function getElementBoundingBox(element: HTMLElement): EuiClientRect {\n const rect = element.getBoundingClientRect();\n\n return {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n height: rect.height,\n width: rect.width\n };\n}\n\n/**\n * Calculates the available content space between anchor and container\n *\n * @param {Object} anchorBoundingBox Client bounding box of the anchor element\n * @param {Object} containerBoundingBox Client bounding box of the container element\n * @param {number} buffer Minimum distance between the popover and the bounding container\n * @param {number} offset Distance between the popover and the anchor\n * @param {string} offsetSide Side the offset needs to be applied to, one\n * of [\"top\", \"right\", \"bottom\", \"left\"]\n * @returns {{top: number, right: number, bottom: number, left: number}}\n */\nexport function getAvailableSpace(\n anchorBoundingBox: BoundingBox,\n containerBoundingBox: BoundingBox,\n buffer: number | [number, number, number, number],\n offset: number,\n offsetSide: EuiPopoverPosition\n): BoundingBox {\n const [topBuffer, rightBuffer, bottomBuffer, leftBuffer] =\n getBufferValues(buffer);\n\n return {\n top:\n anchorBoundingBox.top -\n containerBoundingBox.top -\n topBuffer -\n (offsetSide === 'top' ? offset : 0),\n right:\n containerBoundingBox.right -\n anchorBoundingBox.right -\n rightBuffer -\n (offsetSide === 'right' ? offset : 0),\n bottom:\n containerBoundingBox.bottom -\n anchorBoundingBox.bottom -\n bottomBuffer -\n (offsetSide === 'bottom' ? offset : 0),\n left:\n anchorBoundingBox.left -\n containerBoundingBox.left -\n leftBuffer -\n (offsetSide === 'left' ? offset : 0)\n };\n}\n\n/**\n * Computes the fit (overlap) of the content within the container, fit is in range 0.0 => 1.0\n * @param contentBoundingBox bounding box of content to calculate fit for\n * @param containerBoundingBox bounding box of container\n * @returns {number}\n */\nexport function getVisibleFit(\n contentBoundingBox: BoundingBox,\n containerBoundingBox: BoundingBox\n): number {\n const intersection = intersectBoundingBoxes(\n contentBoundingBox,\n containerBoundingBox\n );\n\n if (\n intersection.left > intersection.right ||\n intersection.top > intersection.top\n ) {\n // there is no intersection, the boxes are completely separated on at least one axis\n return 0;\n }\n\n const intersectionArea =\n (intersection.right - intersection.left) *\n (intersection.bottom - intersection.top);\n const contentArea =\n (contentBoundingBox.right - contentBoundingBox.left) *\n (contentBoundingBox.bottom - contentBoundingBox.top);\n\n return intersectionArea / contentArea;\n}\n\n/**\n * Calculates the intersection space between two bounding boxes\n *\n * @param firstBox\n * @param secondBox\n * @returns {EuiClientRect}\n */\nexport function intersectBoundingBoxes(\n firstBox: BoundingBox,\n secondBox: BoundingBox\n): EuiClientRect {\n const top = Math.max(firstBox.top, secondBox.top);\n const right = Math.min(firstBox.right, secondBox.right);\n const bottom = Math.min(firstBox.bottom, secondBox.bottom);\n const left = Math.max(firstBox.left, secondBox.left);\n const height = Math.max(bottom - top, 0);\n const width = Math.max(right - left, 0);\n\n return {\n top,\n right,\n bottom,\n left,\n height,\n width\n };\n}\n\n/**\n * Returns the top-most defined z-index in the element's ancestor hierarchy\n * relative to the `target` element; if no z-index is defined, returns 0\n * @param element {HTMLElement}\n * @param cousin {HTMLElement}\n * @returns {number}\n */\nexport function getElementZIndex(\n element: HTMLElement,\n cousin: HTMLElement\n): number {\n /**\n * finding the z-index of `element` is not the full story\n * its the CSS stacking context that is important\n * take this DOM for example:\n * body\n * section[z-index: 1000]\n * p[z-index: 500]\n * button\n * div\n *\n * what z-index does the `div` need to display next to `button`?\n * the `div` and `section` are where the stacking context splits\n * so `div` needs to copy `section`'s z-index in order to\n * appear next to / over `button`\n *\n * calculate this by starting at `button` and finding its offsetParents\n * then walk the parents from top -> down until the stacking context\n * split is found, or if there is no split then a specific z-index is unimportant\n */\n\n // build the array of the element + its offset parents\n const nodesToInspect: HTMLElement[] = [];\n // eslint-disable-next-line\n while (true) {\n nodesToInspect.push(element);\n\n // AFAICT this is a valid cast - the libdefs appear wrong\n element = element.offsetParent as HTMLElement;\n\n // stop if there is no parent\n if (element == null) {\n break;\n }\n\n // stop if the parent contains the related element\n // as this is the z-index ancestor\n if (element.contains(cousin)) {\n break;\n }\n }\n\n // reverse the nodes to walk from top -> element\n nodesToInspect.reverse();\n\n for (const node of nodesToInspect) {\n // get this node's z-index css value\n const zIndex = window.document\n .defaultView!.getComputedStyle(node)\n .getPropertyValue('z-index');\n\n // if the z-index is not a number (e.g. \"auto\") return null, else the value\n const parsedZIndex = parseInt(zIndex, 10);\n\n if (!isNaN(parsedZIndex)) {\n return parsedZIndex;\n }\n }\n\n return 0;\n}\n"],"names":["POSITIONS","relatedDimension","top","right","bottom","left","dimensionPositionAttribute","height","width","positionComplements","positionSubstitutes","getBufferValues","buffer","Array","isArray","topBuffer","rightBuffer","bottomBuffer","leftBuffer","findPopoverPosition","anchor","popover","align","position","forcePosition","host","offset","allowCrossAxis","container","arrowConfig","returnBoundingBox","anchorBoundingBox","getElementBoundingBox","popoverBoundingBox","documentWidth","document","documentElement","clientWidth","window","innerWidth","documentHeight","clientHeight","innerHeight","windowBoundingBox","containerBoundingBox","hostBoundingBox","anchorBoundingRelativeToHost","iterationPositions","iterationAlignments","push","undefined","bestFit","bestPosition","idx","length","iterationPosition","screenCoordinates","getPopoverScreenCoordinates","fit","pageYOffset","pageXOffset","arrow","Error","crossAxisFirstSide","crossAxisSecondSide","crossAxisDimension","crossAxisPosition","crossAxisArrowPosition","getCrossAxisPosition","primaryAxisDimension","primaryAxisPositionName","primaryAxisPosition","primaryAxisArrowPosition","getPrimaryAxisPosition","popoverPlacement","combinedBoundingBox","intersectBoundingBoxes","getVisibleFit","popoverSizeOnCrossAxis","anchorSizeOnCrossAxis","anchorHalfSize","crossAxisPositionOriginal","availableSpace","getAvailableSpace","minimumSpace","arrowBuffer","contentOverflowSize","alignAmount","alignDirection","amountOfShiftNeeded","shiftDirection","alignedOverflowAmount","needsShift","spaceAvailableOnFirstSide","spaceAvailableOnSecondSide","isShiftTowardFirstSide","leastAvailableSpace","Math","min","shiftAmount","arrowWidth","difference","edge","isOffsetDecreasing","popoverSizeOnPrimaryAxis","anchorEdgeOrigin","anchorSizeOnPrimaryAxis","primaryAxisOffset","contentOffset","element","rect","getBoundingClientRect","offsetSide","contentBoundingBox","intersection","intersectionArea","contentArea","firstBox","secondBox","max","getElementZIndex","cousin","nodesToInspect","offsetParent","contains","reverse","node","zIndex","defaultView","getComputedStyle","getPropertyValue","parsedZIndex","parseInt","isNaN"],"mappings":"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"}