@ember-eui/core 12.0.0 → 12.0.2

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 (312) hide show
  1. package/declarations/components/common.d.ts +1 -1
  2. package/declarations/components/common.d.ts.map +1 -1
  3. package/declarations/components/eui-accordion.d.ts.map +1 -1
  4. package/declarations/components/eui-badge.d.ts.map +1 -1
  5. package/declarations/components/eui-button-group-button.d.ts.map +1 -1
  6. package/declarations/components/eui-combo-box/options.d.ts.map +1 -1
  7. package/declarations/components/eui-combo-box/trigger/input.d.ts.map +1 -1
  8. package/declarations/components/eui-combo-box.d.ts +2 -1
  9. package/declarations/components/eui-combo-box.d.ts.map +1 -1
  10. package/declarations/components/eui-described-form-group.d.ts +2 -0
  11. package/declarations/components/eui-described-form-group.d.ts.map +1 -1
  12. package/declarations/components/eui-dual-range.d.ts.map +1 -1
  13. package/declarations/components/eui-header-section-item-button.d.ts.map +1 -1
  14. package/declarations/components/eui-list-group-item.d.ts.map +1 -1
  15. package/declarations/components/eui-loading-content.d.ts.map +1 -1
  16. package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
  17. package/declarations/components/eui-markdown-format.d.ts.map +1 -1
  18. package/declarations/components/eui-notification-event-messages.d.ts.map +1 -1
  19. package/declarations/components/eui-page-header-content.d.ts.map +1 -1
  20. package/declarations/components/eui-popover.d.ts.map +1 -1
  21. package/declarations/components/eui-range.d.ts.map +1 -1
  22. package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts +1 -0
  23. package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts.map +1 -1
  24. package/declarations/components/eui-super-date-picker/utils/index.d.ts +1 -0
  25. package/declarations/components/eui-super-date-picker/utils/index.d.ts.map +1 -1
  26. package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts +1 -0
  27. package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts.map +1 -1
  28. package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts +1 -0
  29. package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts.map +1 -1
  30. package/declarations/components/eui-super-date-picker/utils/time-options.d.ts +1 -0
  31. package/declarations/components/eui-super-date-picker/utils/time-options.d.ts.map +1 -1
  32. package/declarations/components/eui-tabbed-content.d.ts.map +1 -1
  33. package/declarations/utils/common.d.ts +42 -0
  34. package/declarations/utils/common.d.ts.map +1 -0
  35. package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js +63 -0
  36. package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js.map +1 -0
  37. package/dist/components/common.js +1 -19
  38. package/dist/components/common.js.map +1 -1
  39. package/dist/components/eui-accordion.js +9 -9
  40. package/dist/components/eui-accordion.js.map +1 -1
  41. package/dist/components/eui-auto-sizer.js +2 -2
  42. package/dist/components/eui-auto-sizer.js.map +1 -1
  43. package/dist/components/eui-badge.js +1 -1
  44. package/dist/components/eui-badge.js.map +1 -1
  45. package/dist/components/eui-bottom-bar.js +1 -1
  46. package/dist/components/eui-bottom-bar.js.map +1 -1
  47. package/dist/components/eui-breadcrumbs.js +2 -2
  48. package/dist/components/eui-breadcrumbs.js.map +1 -1
  49. package/dist/components/eui-button-group-button.js +7 -3
  50. package/dist/components/eui-button-group-button.js.map +1 -1
  51. package/dist/components/eui-card-select.js +1 -1
  52. package/dist/components/eui-card-select.js.map +1 -1
  53. package/dist/components/eui-card.js +2 -2
  54. package/dist/components/eui-card.js.map +1 -1
  55. package/dist/components/eui-checkbox.js +1 -1
  56. package/dist/components/eui-checkbox.js.map +1 -1
  57. package/dist/components/eui-code-block.js +7 -7
  58. package/dist/components/eui-code-block.js.map +1 -1
  59. package/dist/components/eui-code.js +2 -2
  60. package/dist/components/eui-code.js.map +1 -1
  61. package/dist/components/eui-collapsible-nav.js +1 -1
  62. package/dist/components/eui-collapsible-nav.js.map +1 -1
  63. package/dist/components/eui-combo-box/create-option.js +1 -1
  64. package/dist/components/eui-combo-box/create-option.js.map +1 -1
  65. package/dist/components/eui-combo-box/options.js +4 -20
  66. package/dist/components/eui-combo-box/options.js.map +1 -1
  67. package/dist/components/eui-combo-box/trigger/input.js +2 -4
  68. package/dist/components/eui-combo-box/trigger/input.js.map +1 -1
  69. package/dist/components/eui-combo-box/trigger.js +2 -2
  70. package/dist/components/eui-combo-box/trigger.js.map +1 -1
  71. package/dist/components/eui-combo-box-pill.js +1 -1
  72. package/dist/components/eui-combo-box-pill.js.map +1 -1
  73. package/dist/components/eui-combo-box.js +10 -11
  74. package/dist/components/eui-combo-box.js.map +1 -1
  75. package/dist/components/eui-context-menu-item.js +1 -1
  76. package/dist/components/eui-context-menu-item.js.map +1 -1
  77. package/dist/components/eui-copy.js +1 -1
  78. package/dist/components/eui-copy.js.map +1 -1
  79. package/dist/components/eui-described-form-group.js +1 -1
  80. package/dist/components/eui-described-form-group.js.map +1 -1
  81. package/dist/components/eui-dual-range.js +17 -17
  82. package/dist/components/eui-dual-range.js.map +1 -1
  83. package/dist/components/eui-field-number.js +1 -1
  84. package/dist/components/eui-field-number.js.map +1 -1
  85. package/dist/components/eui-field-password.js +1 -1
  86. package/dist/components/eui-field-password.js.map +1 -1
  87. package/dist/components/eui-field-search.js +3 -3
  88. package/dist/components/eui-field-search.js.map +1 -1
  89. package/dist/components/eui-field-text.js +1 -1
  90. package/dist/components/eui-field-text.js.map +1 -1
  91. package/dist/components/eui-file-picker.js +6 -6
  92. package/dist/components/eui-file-picker.js.map +1 -1
  93. package/dist/components/eui-flyout.js +2 -2
  94. package/dist/components/eui-flyout.js.map +1 -1
  95. package/dist/components/eui-global-toast-list.js +4 -4
  96. package/dist/components/eui-global-toast-list.js.map +1 -1
  97. package/dist/components/eui-header-links.js +1 -1
  98. package/dist/components/eui-header-links.js.map +1 -1
  99. package/dist/components/eui-header-section-item-button.js +3 -3
  100. package/dist/components/eui-header-section-item-button.js.map +1 -1
  101. package/dist/components/eui-i18n.js +1 -1
  102. package/dist/components/eui-i18n.js.map +1 -1
  103. package/dist/components/eui-icon.js +2 -2
  104. package/dist/components/eui-icon.js.map +1 -1
  105. package/dist/components/eui-image.js +2 -2
  106. package/dist/components/eui-image.js.map +1 -1
  107. package/dist/components/eui-inner-text.js +2 -2
  108. package/dist/components/eui-inner-text.js.map +1 -1
  109. package/dist/components/eui-input-popover.js +9 -9
  110. package/dist/components/eui-input-popover.js.map +1 -1
  111. package/dist/components/eui-list-group-item.js +1 -4
  112. package/dist/components/eui-list-group-item.js.map +1 -1
  113. package/dist/components/eui-loading-content.js +17 -5
  114. package/dist/components/eui-loading-content.js.map +1 -1
  115. package/dist/components/eui-markdown-editor-footer.js +2 -2
  116. package/dist/components/eui-markdown-editor-footer.js.map +1 -1
  117. package/dist/components/eui-markdown-editor.js +16 -16
  118. package/dist/components/eui-markdown-editor.js.map +1 -1
  119. package/dist/components/eui-markdown-format.js +1 -1
  120. package/dist/components/eui-markdown-format.js.map +1 -1
  121. package/dist/components/eui-modal.js +1 -1
  122. package/dist/components/eui-modal.js.map +1 -1
  123. package/dist/components/eui-notification-event-messages.js +4 -2
  124. package/dist/components/eui-notification-event-messages.js.map +1 -1
  125. package/dist/components/eui-notification-event-meta.js +2 -2
  126. package/dist/components/eui-notification-event-meta.js.map +1 -1
  127. package/dist/components/eui-notification-event.js +1 -1
  128. package/dist/components/eui-notification-event.js.map +1 -1
  129. package/dist/components/eui-overlay-mask.js +1 -1
  130. package/dist/components/eui-overlay-mask.js.map +1 -1
  131. package/dist/components/eui-page-header-content.js +4 -4
  132. package/dist/components/eui-page-header-content.js.map +1 -1
  133. package/dist/components/eui-page-template.js +3 -3
  134. package/dist/components/eui-page-template.js.map +1 -1
  135. package/dist/components/eui-popover.js +22 -22
  136. package/dist/components/eui-popover.js.map +1 -1
  137. package/dist/components/eui-portal.js +1 -1
  138. package/dist/components/eui-portal.js.map +1 -1
  139. package/dist/components/eui-radio.js +1 -1
  140. package/dist/components/eui-radio.js.map +1 -1
  141. package/dist/components/eui-range-ticks.js +1 -1
  142. package/dist/components/eui-range-ticks.js.map +1 -1
  143. package/dist/components/eui-range-track.js +1 -1
  144. package/dist/components/eui-range-track.js.map +1 -1
  145. package/dist/components/eui-range.js +15 -15
  146. package/dist/components/eui-range.js.map +1 -1
  147. package/dist/components/eui-select.js +1 -1
  148. package/dist/components/eui-select.js.map +1 -1
  149. package/dist/components/eui-show-for.js +1 -1
  150. package/dist/components/eui-show-for.js.map +1 -1
  151. package/dist/components/eui-side-nav-item.js +1 -1
  152. package/dist/components/eui-side-nav-item.js.map +1 -1
  153. package/dist/components/eui-side-nav.js +1 -1
  154. package/dist/components/eui-side-nav.js.map +1 -1
  155. package/dist/components/eui-step-horizontal.js +1 -1
  156. package/dist/components/eui-step-horizontal.js.map +1 -1
  157. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +3 -3
  158. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
  159. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js +8 -8
  160. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
  161. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js +2 -2
  162. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
  163. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js +2 -2
  164. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
  165. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js +4 -4
  166. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
  167. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +4 -4
  168. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
  169. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +2 -2
  170. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
  171. package/dist/components/eui-super-date-picker/utils/date-utils.js +1 -1
  172. package/dist/components/eui-super-date-picker/utils/date-utils.js.map +1 -1
  173. package/dist/components/eui-super-date-picker/utils/index.js +1 -1
  174. package/dist/components/eui-super-date-picker/utils/index.js.map +1 -1
  175. package/dist/components/eui-super-date-picker/utils/pretty-duration.js +1 -1
  176. package/dist/components/eui-super-date-picker/utils/pretty-duration.js.map +1 -1
  177. package/dist/components/eui-super-date-picker/utils/quick-select.js +1 -1
  178. package/dist/components/eui-super-date-picker/utils/quick-select.js.map +1 -1
  179. package/dist/components/eui-super-date-picker/utils/time-options.js +1 -1
  180. package/dist/components/eui-super-date-picker/utils/time-options.js.map +1 -1
  181. package/dist/components/eui-super-date-picker.js +13 -13
  182. package/dist/components/eui-super-date-picker.js.map +1 -1
  183. package/dist/components/eui-tabbed-content.js +4 -4
  184. package/dist/components/eui-tabbed-content.js.map +1 -1
  185. package/dist/components/eui-text-area.js +1 -1
  186. package/dist/components/eui-text-area.js.map +1 -1
  187. package/dist/components/eui-tool-tip.js +9 -9
  188. package/dist/components/eui-tool-tip.js.map +1 -1
  189. package/dist/helpers/get-eui-config.js +1 -1
  190. package/dist/helpers/get-eui-config.js.map +1 -1
  191. package/dist/helpers/use-state.js +1 -1
  192. package/dist/helpers/use-state.js.map +1 -1
  193. package/dist/services/eui-config.js +1 -1
  194. package/dist/services/eui-config.js.map +1 -1
  195. package/dist/services/eui-toaster.js +1 -1
  196. package/dist/services/eui-toaster.js.map +1 -1
  197. package/package.json +8 -122
  198. package/dist/_app_/utils/accesibility/accessible-click-keys.js +0 -1
  199. package/dist/_app_/utils/accesibility/cascading-menu-keys.js +0 -1
  200. package/dist/_app_/utils/accesibility/combo-box-keys.js +0 -1
  201. package/dist/_app_/utils/accesibility/index.js +0 -1
  202. package/dist/_app_/utils/breakpoint.js +0 -1
  203. package/dist/_app_/utils/browser/browser.js +0 -1
  204. package/dist/_app_/utils/browser/index.js +0 -1
  205. package/dist/_app_/utils/code/utils.js +0 -1
  206. package/dist/_app_/utils/color/color_palette.js +0 -1
  207. package/dist/_app_/utils/color/eui_palettes.js +0 -1
  208. package/dist/_app_/utils/color/index.js +0 -1
  209. package/dist/_app_/utils/copy-to-clipboard.js +0 -1
  210. package/dist/_app_/utils/css-mappings/eui-accordion.js +0 -1
  211. package/dist/_app_/utils/css-mappings/eui-avatar.js +0 -1
  212. package/dist/_app_/utils/css-mappings/eui-badge-group.js +0 -1
  213. package/dist/_app_/utils/css-mappings/eui-badge.js +0 -1
  214. package/dist/_app_/utils/css-mappings/eui-beta-badge.js +0 -1
  215. package/dist/_app_/utils/css-mappings/eui-bottom-bar.js +0 -1
  216. package/dist/_app_/utils/css-mappings/eui-button-empty.js +0 -1
  217. package/dist/_app_/utils/css-mappings/eui-button-group-button.js +0 -1
  218. package/dist/_app_/utils/css-mappings/eui-button-group.js +0 -1
  219. package/dist/_app_/utils/css-mappings/eui-button-icon.js +0 -1
  220. package/dist/_app_/utils/css-mappings/eui-button.js +0 -1
  221. package/dist/_app_/utils/css-mappings/eui-call-out.js +0 -1
  222. package/dist/_app_/utils/css-mappings/eui-card-select.js +0 -1
  223. package/dist/_app_/utils/css-mappings/eui-card.js +0 -1
  224. package/dist/_app_/utils/css-mappings/eui-code-block.js +0 -1
  225. package/dist/_app_/utils/css-mappings/eui-collapsible-nav-group.js +0 -1
  226. package/dist/_app_/utils/css-mappings/eui-comment-event.js +0 -1
  227. package/dist/_app_/utils/css-mappings/eui-comment-timeline-icon.js +0 -1
  228. package/dist/_app_/utils/css-mappings/eui-context-menu-item.js +0 -1
  229. package/dist/_app_/utils/css-mappings/eui-described-form-group.js +0 -1
  230. package/dist/_app_/utils/css-mappings/eui-description-list.js +0 -1
  231. package/dist/_app_/utils/css-mappings/eui-empty-prompt.js +0 -1
  232. package/dist/_app_/utils/css-mappings/eui-file-picker.js +0 -1
  233. package/dist/_app_/utils/css-mappings/eui-flex-grid.js +0 -1
  234. package/dist/_app_/utils/css-mappings/eui-flex-group.js +0 -1
  235. package/dist/_app_/utils/css-mappings/eui-flex-item.js +0 -1
  236. package/dist/_app_/utils/css-mappings/eui-flyout.js +0 -1
  237. package/dist/_app_/utils/css-mappings/eui-form-control-layout-clear-button.js +0 -1
  238. package/dist/_app_/utils/css-mappings/eui-form-row.js +0 -1
  239. package/dist/_app_/utils/css-mappings/eui-global-toast-list.js +0 -1
  240. package/dist/_app_/utils/css-mappings/eui-header-links.js +0 -1
  241. package/dist/_app_/utils/css-mappings/eui-header-section-item.js +0 -1
  242. package/dist/_app_/utils/css-mappings/eui-header-section.js +0 -1
  243. package/dist/_app_/utils/css-mappings/eui-header.js +0 -1
  244. package/dist/_app_/utils/css-mappings/eui-health.js +0 -1
  245. package/dist/_app_/utils/css-mappings/eui-horizontal-rule.js +0 -1
  246. package/dist/_app_/utils/css-mappings/eui-icon.js +0 -1
  247. package/dist/_app_/utils/css-mappings/eui-image.js +0 -1
  248. package/dist/_app_/utils/css-mappings/eui-link.js +0 -1
  249. package/dist/_app_/utils/css-mappings/eui-list-group-item.js +0 -1
  250. package/dist/_app_/utils/css-mappings/eui-list-group.js +0 -1
  251. package/dist/_app_/utils/css-mappings/eui-loading-spinner.js +0 -1
  252. package/dist/_app_/utils/css-mappings/eui-modal.js +0 -1
  253. package/dist/_app_/utils/css-mappings/eui-notification-badge.js +0 -1
  254. package/dist/_app_/utils/css-mappings/eui-page-body.js +0 -1
  255. package/dist/_app_/utils/css-mappings/eui-page-content-body.js +0 -1
  256. package/dist/_app_/utils/css-mappings/eui-page-content.js +0 -1
  257. package/dist/_app_/utils/css-mappings/eui-page-header.js +0 -1
  258. package/dist/_app_/utils/css-mappings/eui-page-side-bar.js +0 -1
  259. package/dist/_app_/utils/css-mappings/eui-page.js +0 -1
  260. package/dist/_app_/utils/css-mappings/eui-panel.js +0 -1
  261. package/dist/_app_/utils/css-mappings/eui-popover-footer.js +0 -1
  262. package/dist/_app_/utils/css-mappings/eui-popover-title.js +0 -1
  263. package/dist/_app_/utils/css-mappings/eui-popover.js +0 -1
  264. package/dist/_app_/utils/css-mappings/eui-progress-data.js +0 -1
  265. package/dist/_app_/utils/css-mappings/eui-progress.js +0 -1
  266. package/dist/_app_/utils/css-mappings/eui-range-highlight.js +0 -1
  267. package/dist/_app_/utils/css-mappings/eui-range-input.js +0 -1
  268. package/dist/_app_/utils/css-mappings/eui-range-levels.js +0 -1
  269. package/dist/_app_/utils/css-mappings/eui-selectable-list-item.js +0 -1
  270. package/dist/_app_/utils/css-mappings/eui-spacer.js +0 -1
  271. package/dist/_app_/utils/css-mappings/eui-stat.js +0 -1
  272. package/dist/_app_/utils/css-mappings/eui-step-number.js +0 -1
  273. package/dist/_app_/utils/css-mappings/eui-tabs.js +0 -1
  274. package/dist/_app_/utils/css-mappings/eui-text-align.js +0 -1
  275. package/dist/_app_/utils/css-mappings/eui-text-area.js +0 -1
  276. package/dist/_app_/utils/css-mappings/eui-text-color.js +0 -1
  277. package/dist/_app_/utils/css-mappings/eui-text.js +0 -1
  278. package/dist/_app_/utils/css-mappings/eui-title.js +0 -1
  279. package/dist/_app_/utils/css-mappings/eui-toast.js +0 -1
  280. package/dist/_app_/utils/css-mappings/eui-tool-tip.js +0 -1
  281. package/dist/_app_/utils/css-mappings/index.js +0 -1
  282. package/dist/_app_/utils/detect-element-resize.js +0 -1
  283. package/dist/_app_/utils/index.js +0 -1
  284. package/dist/_app_/utils/keys.js +0 -1
  285. package/dist/_app_/utils/markdown/markdown-actions.js +0 -1
  286. package/dist/_app_/utils/markdown/markdown-modes.js +0 -1
  287. package/dist/_app_/utils/markdown/markdown-types.js +0 -1
  288. package/dist/_app_/utils/markdown/plugins/markdown-add-components/index.js +0 -1
  289. package/dist/_app_/utils/markdown/plugins/markdown-add-components/processor.js +0 -1
  290. package/dist/_app_/utils/markdown/plugins/markdown-checkbox/index.js +0 -1
  291. package/dist/_app_/utils/markdown/plugins/markdown-checkbox/parser.js +0 -1
  292. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/index.js +0 -1
  293. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js +0 -1
  294. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/plugins.js +0 -1
  295. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/processing-plugins.js +0 -1
  296. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/ui-plugins.js +0 -1
  297. package/dist/_app_/utils/markdown/plugins/markdown-tooltip/index.js +0 -1
  298. package/dist/_app_/utils/markdown/plugins/markdown-tooltip/parser.js +0 -1
  299. package/dist/_app_/utils/markdown/plugins/markdown-tooltip/plugin.js +0 -1
  300. package/dist/_app_/utils/markdown/plugins/to-dom.js +0 -1
  301. package/dist/_app_/utils/markdown/remark/remark-prismjs.js +0 -1
  302. package/dist/_app_/utils/maybe-unwrap-proxy.js +0 -1
  303. package/dist/_app_/utils/number/index.js +0 -1
  304. package/dist/_app_/utils/number/number.js +0 -1
  305. package/dist/_app_/utils/popover/index.js +0 -1
  306. package/dist/_app_/utils/popover/types.js +0 -1
  307. package/dist/_app_/utils/predicate/common_predicates.js +0 -1
  308. package/dist/_app_/utils/predicate/index.js +0 -1
  309. package/dist/_app_/utils/predicate/lodash_predicates.js +0 -1
  310. package/dist/_app_/utils/range/index.js +0 -1
  311. package/dist/_app_/utils/timer.js +0 -1
  312. package/dist/_app_/utils/transition.js +0 -1
@@ -7,7 +7,7 @@ import didInsert from '@ember/render-modifiers/modifiers/did-insert';
7
7
  import didUpdate from '@ember/render-modifiers/modifiers/did-update';
8
8
  import { cancel, later, scheduleOnce } from '@ember/runloop';
9
9
  import { htmlSafe } from '@ember/template';
10
- import optional from 'ember-composable-helpers/helpers/optional';
10
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
11
11
  import { focusTrap } from 'ember-focus-trap';
12
12
  import onKey from 'ember-keyboard/modifiers/on-key';
13
13
  import { and, not, or } from 'ember-truth-helpers';
@@ -84,95 +84,95 @@ class EuiPopoverComponent extends Component {
84
84
  static {
85
85
  g(this.prototype, "isOpen", [argOrDefaultDecorator(false)]);
86
86
  }
87
- #isOpen = (i(this, "isOpen"), undefined); // Defaults
87
+ #isOpen = (i(this, "isOpen"), void 0); // Defaults
88
88
  static {
89
89
  g(this.prototype, "ownFocus", [argOrDefaultDecorator(true)]);
90
90
  }
91
- #ownFocus = (i(this, "ownFocus"), undefined);
91
+ #ownFocus = (i(this, "ownFocus"), void 0);
92
92
  static {
93
93
  g(this.prototype, "anchorPosition", [argOrDefaultDecorator('downCenter')]);
94
94
  }
95
- #anchorPosition = (i(this, "anchorPosition"), undefined);
95
+ #anchorPosition = (i(this, "anchorPosition"), void 0);
96
96
  static {
97
97
  g(this.prototype, "panelPaddingSize", [argOrDefaultDecorator('m')]);
98
98
  }
99
- #panelPaddingSize = (i(this, "panelPaddingSize"), undefined);
99
+ #panelPaddingSize = (i(this, "panelPaddingSize"), void 0);
100
100
  static {
101
101
  g(this.prototype, "hasArrow", [argOrDefaultDecorator(true)]);
102
102
  }
103
- #hasArrow = (i(this, "hasArrow"), undefined);
103
+ #hasArrow = (i(this, "hasArrow"), void 0);
104
104
  static {
105
105
  g(this.prototype, "display", [argOrDefaultDecorator('inlineBlock')]);
106
106
  }
107
- #display = (i(this, "display"), undefined);
107
+ #display = (i(this, "display"), void 0);
108
108
  static {
109
109
  g(this.prototype, "shouldSelfFocus", [argOrDefaultDecorator(true)]);
110
110
  }
111
- #shouldSelfFocus = (i(this, "shouldSelfFocus"), undefined);
111
+ #shouldSelfFocus = (i(this, "shouldSelfFocus"), void 0);
112
112
  static {
113
113
  g(this.prototype, "isFocusTrapPaused", [argOrDefaultDecorator(false)]);
114
114
  }
115
- #isFocusTrapPaused = (i(this, "isFocusTrapPaused"), undefined);
115
+ #isFocusTrapPaused = (i(this, "isFocusTrapPaused"), void 0);
116
116
  static {
117
117
  g(this.prototype, "prevIsOpen", [tracked]);
118
118
  }
119
- #prevIsOpen = (i(this, "prevIsOpen"), undefined); //State
119
+ #prevIsOpen = (i(this, "prevIsOpen"), void 0); //State
120
120
  static {
121
121
  g(this.prototype, "suppressingPopover", [tracked]);
122
122
  }
123
- #suppressingPopover = (i(this, "suppressingPopover"), undefined);
123
+ #suppressingPopover = (i(this, "suppressingPopover"), void 0);
124
124
  static {
125
125
  g(this.prototype, "isClosing", [tracked], function () {
126
126
  return false;
127
127
  });
128
128
  }
129
- #isClosing = (i(this, "isClosing"), undefined);
129
+ #isClosing = (i(this, "isClosing"), void 0);
130
130
  static {
131
131
  g(this.prototype, "isOpening", [tracked], function () {
132
132
  return false;
133
133
  });
134
134
  }
135
- #isOpening = (i(this, "isOpening"), undefined);
135
+ #isOpening = (i(this, "isOpening"), void 0);
136
136
  static {
137
137
  g(this.prototype, "popoverStyles", [tracked], function () {
138
138
  return {};
139
139
  });
140
140
  }
141
- #popoverStyles = (i(this, "popoverStyles"), undefined);
141
+ #popoverStyles = (i(this, "popoverStyles"), void 0);
142
142
  static {
143
143
  g(this.prototype, "arrowStyles", [tracked], function () {
144
144
  return {};
145
145
  });
146
146
  }
147
- #arrowStyles = (i(this, "arrowStyles"), undefined);
147
+ #arrowStyles = (i(this, "arrowStyles"), void 0);
148
148
  static {
149
149
  g(this.prototype, "arrowPosition", [tracked], function () {
150
150
  return null;
151
151
  });
152
152
  }
153
- #arrowPosition = (i(this, "arrowPosition"), undefined);
153
+ #arrowPosition = (i(this, "arrowPosition"), void 0);
154
154
  static {
155
155
  g(this.prototype, "openPosition", [tracked], function () {
156
156
  return null;
157
157
  });
158
158
  }
159
- #openPosition = (i(this, "openPosition"), undefined);
159
+ #openPosition = (i(this, "openPosition"), void 0);
160
160
  static {
161
161
  g(this.prototype, "isOpenStable", [tracked], function () {
162
162
  return false;
163
163
  });
164
164
  }
165
- #isOpenStable = (i(this, "isOpenStable"), undefined);
165
+ #isOpenStable = (i(this, "isOpenStable"), void 0);
166
166
  static {
167
167
  g(this.prototype, "isCurrentlyOpen", [tracked]);
168
168
  }
169
- #isCurrentlyOpen = (i(this, "isCurrentlyOpen"), undefined);
169
+ #isCurrentlyOpen = (i(this, "isCurrentlyOpen"), void 0);
170
170
  static {
171
171
  g(this.prototype, "popoverHost", [tracked], function () {
172
172
  return null;
173
173
  });
174
174
  }
175
- #popoverHost = (i(this, "popoverHost"), undefined);
175
+ #popoverHost = (i(this, "popoverHost"), void 0);
176
176
  ///
177
177
  respositionTimeout = null;
178
178
  closingTransitionTimeout = null;
@@ -184,13 +184,13 @@ class EuiPopoverComponent extends Component {
184
184
  return null;
185
185
  });
186
186
  }
187
- #button = (i(this, "button"), undefined);
187
+ #button = (i(this, "button"), void 0);
188
188
  static {
189
189
  g(this.prototype, "panel", [tracked], function () {
190
190
  return null;
191
191
  });
192
192
  }
193
- #panel = (i(this, "panel"), undefined);
193
+ #panel = (i(this, "panel"), void 0);
194
194
  constructor(owner, args) {
195
195
  super(owner, args);
196
196
  assert(`Must provide closePopover function`, this.args.closePopover);
@@ -1 +1 @@
1
- {"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport {\n anchorPositionMapping,\n displayMapping\n} from '../utils/css-mappings/eui-popover.ts';\nimport { findPopoverPosition, getElementZIndex } from '../utils/popover/index.ts';\nimport {\n getTransitionTimings,\n getWaitDuration,\n performOnFrame\n} from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\n\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\n\nexport type PopoverAnchorPosition =\n | 'upCenter'\n | 'upLeft'\n | 'upRight'\n | 'downCenter'\n | 'downLeft'\n | 'downRight'\n | 'leftCenter'\n | 'leftUp'\n | 'leftDown'\n | 'rightCenter'\n | 'rightUp'\n | 'rightDown';\n\nexport type EuiPopoverArgs = {\n /**\n * Class name passed to the direct parent of the button\n */\n anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */\n anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */\n attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */\n button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */\n closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */\n container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */\n display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */\n hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */\n initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */\n insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */\n isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */\n ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */\n panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */\n panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */\n panelStyle?: { [i: string]: string };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n\n /**\n * when not `false`, the popover will check if this popover is inside another popover and if so. will reposition itself to be inside the other popover\n */\n shouldAccountForOtherPopovers?: boolean;\n\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */\n repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */\n zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */\n onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */\n offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */\n buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */\n arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */\n ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */\n ariaLabelledBy?: string;\n\n tabindex?: string | number;\n\n shouldSelfFocus?: boolean;\n\n isFocusTrapPaused?: boolean;\n\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\n\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\n\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\n\nexport function getPopoverPositionFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match = anchorPosition.match(/^(.*?)[A-Z]/);\n\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[match[1] as AnchorPosition];\n }\n\n return anchorPositionToPopoverPositionMap['up'];\n}\n\nexport function getPopoverAlignFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match = anchorPosition.match(/([A-Z].*)/);\n\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[\n match[1]?.toLowerCase() as AnchorPosition\n ];\n }\n\n return anchorPositionToPopoverPositionMap['left'];\n}\n\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\n\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\n\nfunction getElementFromInitialFocus(\n initialFocus?: FocusTarget\n): HTMLElement | null {\n const initialFocusType = typeof initialFocus;\n\n if (initialFocusType === 'string') {\n return document.querySelector(initialFocus as string);\n }\n\n if (initialFocusType === 'function') {\n return (initialFocus as () => HTMLElement | null)();\n }\n\n return initialFocus as HTMLElement | null;\n}\n\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\n\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\n\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isOpen!: boolean;\n @argOrDefaultDecorator(true) ownFocus!: boolean;\n @argOrDefaultDecorator('downCenter') anchorPosition!: PopoverAnchorPosition;\n @argOrDefaultDecorator('m') panelPaddingSize!: PanelPaddingSize;\n @argOrDefaultDecorator(true) hasArrow!: boolean;\n @argOrDefaultDecorator('inlineBlock') display!: string;\n @argOrDefaultDecorator(true) shouldSelfFocus!: boolean;\n @argOrDefaultDecorator(false) isFocusTrapPaused!: boolean;\n\n //State\n @tracked prevIsOpen: boolean | undefined;\n @tracked suppressingPopover: boolean | undefined;\n @tracked isClosing = false;\n @tracked isOpening = false;\n @tracked popoverStyles: CssProps = {};\n @tracked arrowStyles: CssProps | undefined = {};\n @tracked arrowPosition: EuiPopoverPosition | null = null;\n @tracked openPosition: EuiPopoverPosition | null = null;\n @tracked isOpenStable = false;\n @tracked isCurrentlyOpen: boolean | undefined;\n @tracked popoverHost?: HTMLElement | null = null;\n ///\n\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked button: HTMLElement | null = null;\n @tracked panel: HTMLElement | null = null;\n\n constructor(owner: Owner, args: EuiPopoverArgs) {\n super(owner, args);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n\n get insert() {\n if (this.args.insert) {\n return this.args.insert;\n }\n\n if (this.shouldAccountForOtherPopovers) {\n if (this.popoverHost) {\n return {\n sibling: this.popoverHost.children[0] as HTMLElement,\n position: 'after'\n };\n }\n }\n\n return undefined;\n }\n\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n\n @action\n onEscapeKey(event: Event, ekEvent?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent?.stopPropagation();\n ekEvent?.stopImmediatePropagation();\n event.preventDefault();\n event.stopPropagation();\n this.closePopover();\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent, ekEvent: EmberKeyboardEvent): void {\n if (event.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event as unknown as Event, ekEvent as unknown as Event);\n }\n }\n\n @action\n onClickOutside(event: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(() => {\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n\n // If we've already focused on something inside the panel, everything's fine.\n if (\n this.hasSetInitialFocus &&\n this.panel.contains(document.activeElement)\n ) {\n return;\n }\n\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget;\n\n if (this.args.initialFocus != null) {\n focusTarget = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems = tabbable(this.panel);\n\n if (tabbableItems.length) {\n focusTarget = tabbableItems[0];\n }\n }\n\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility = window.getComputedStyle(this.panel).opacity;\n\n if (panelVisibility === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility = window.getComputedStyle(focusTarget).visibility;\n\n if (visibility === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n\n if (focusTarget != null) {\n this.hasSetInitialFocus = true;\n focusTarget.focus();\n }\n });\n }\n\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(() => {\n this.isOpening = true;\n });\n\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch, delayMatch } = Array.prototype.slice\n .call(this.panel ? this.panel.children : [])\n .reduce(\n (\n {\n durationMatch,\n delayMatch\n }: { durationMatch: number; delayMatch: number },\n element: HTMLElement\n ) => {\n const transitionTimings = getTransitionTimings(element);\n\n return {\n durationMatch: Math.max(\n durationMatch,\n transitionTimings.durationMatch\n ),\n delayMatch: Math.max(delayMatch, transitionTimings.delayMatch)\n };\n },\n { durationMatch: 0, delayMatch: 0 }\n );\n\n this.respositionTimeout = later(\n this,\n () => {\n this.isOpenStable = true;\n\n const fn = (): void => {\n this.positionPopoverFixed();\n this.updateFocus();\n };\n\n scheduleOnce('afterRender', this, fn);\n },\n durationMatch + delayMatch\n );\n }\n\n get shouldAccountForOtherPopovers() {\n return this.args.shouldAccountForOtherPopovers ?? true;\n }\n\n checkIfPopoverIsInsideAnotherPopover(ele: HTMLElement) {\n const otherPopover = ele.closest<HTMLDivElement>('div.euiPopover__panel');\n\n this.popoverHost = otherPopover;\n }\n\n @action\n didInsertPopover(ele: HTMLDivElement): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n\n const fn = (): void => this.onOpenPopover();\n\n scheduleOnce('afterRender', this, fn);\n }\n\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n\n if (this.shouldAccountForOtherPopovers) {\n this.checkIfPopoverIsInsideAnotherPopover(ele);\n }\n\n this.updateFocus();\n }\n\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(\n this,\n () => {\n this.isClosing = false;\n },\n 250\n );\n }\n\n this.prevIsOpen = this.args.isOpen;\n }\n\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n this.popoverHost = null;\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n\n @action\n onMutation(records: MutationRecord[]): void {\n const waitDuration = getWaitDuration(records);\n\n this.positionPopoverFixed();\n\n performOnFrame(waitDuration, this.positionPopoverFixed);\n }\n\n @action\n positionPopover(allowEnforcePosition: boolean): void {\n if (this.button == null || this.panel == null) return;\n\n let position = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition = undefined;\n\n if (\n allowEnforcePosition &&\n this.isOpenStable &&\n this.openPosition != null\n ) {\n position = this.openPosition;\n forcePosition = true;\n }\n\n // get the position of the element relative to the offsetParent, which could be the document\n function getPos(ele: HTMLElement): [number, number] {\n let currTop = 0;\n let currLeft = 0;\n\n if (ele.offsetParent) {\n do {\n currTop += ele.offsetTop;\n currLeft += ele.offsetLeft;\n } while ((ele = ele.offsetParent as HTMLElement));\n } else {\n currTop = ele.offsetTop;\n currLeft = ele.offsetLeft;\n }\n\n return [currTop, currLeft];\n }\n\n const {\n top,\n left,\n position: foundPosition,\n arrow,\n anchorBoundingBox\n } = findPopoverPosition({\n container: this.args.container,\n host: this.shouldAccountForOtherPopovers ? this.popoverHost : null,\n position,\n forcePosition,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset:\n !this.args.attachToAnchor && this.hasArrow\n ? 16 + (this.args.offset || 0)\n : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp } = this.args;\n const zIndex =\n zIndexProp == null\n ? getElementZIndex(this.button, this.panel) + 2000\n : zIndexProp;\n\n const popoverStyles = {\n top,\n left:\n this.args.attachToAnchor && anchorBoundingBox\n ? anchorBoundingBox.left\n : left,\n zIndex\n };\n\n const willRenderArrow = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles = willRenderArrow ? arrow : undefined;\n const arrowPosition = foundPosition;\n\n this.popoverStyles = popoverStyles;\n this.arrowStyles = arrowStyles;\n this.arrowPosition = arrowPosition;\n this.openPosition = foundPosition;\n }\n\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles } = this;\n\n return arrowStyles\n ? htmlSafe(`top: ${arrowStyles?.top}px; left: ${arrowStyles?.left}px;`)\n : undefined;\n }\n\n get _popoverStyles(): { [i: string]: string } {\n const { panelStyle } = this.args;\n const { popoverStyles } = this;\n\n return {\n ...panelStyle,\n top: `${popoverStyles.top}px`,\n left: `${popoverStyles.left}px`,\n zIndex: `${popoverStyles.zIndex}`\n };\n }\n\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n\n return '-1';\n }\n\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n\n @action\n registerButton(btn: HTMLDivElement): void {\n this.button = btn;\n this.args.buttonRef?.(btn);\n }\n\n @action\n registerPanel(panel: HTMLElement): void {\n this.panel = panel;\n this.args.panelRef?.(panel);\n\n if (panel === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n\n <template>\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClassName\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{this.insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n </template>\n}\n"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus","initialFocusType","document","querySelector","EuiPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner","args","assert","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","insert","shouldAccountForOtherPopovers","popoverHost","sibling","children","position","undefined","n","action","onEscapeKey","event","ekEvent","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","activeElement","focusTarget","tabbableItems","tabbable","panelVisibility","getComputedStyle","opacity","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","delayMatch","Array","slice","call","reduce","element","transitionTimings","getTransitionTimings","Math","max","later","isOpenStable","fn","positionPopoverFixed","scheduleOnce","checkIfPopoverIsInsideAnotherPopover","ele","otherPopover","closest","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","cancelAnimationFrame","onMutation","records","waitDuration","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition","forcePosition","openPosition","foundPosition","arrow","anchorBoundingBox","findPopoverPosition","container","host","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp","getElementZIndex","popoverStyles","willRenderArrow","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","tabindex","positionPopoverFluid","registerButton","btn","buttonRef","registerPanel","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":"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"}
1
+ {"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport {\n anchorPositionMapping,\n displayMapping\n} from '../utils/css-mappings/eui-popover.ts';\nimport {\n findPopoverPosition,\n getElementZIndex\n} from '../utils/popover/index.ts';\nimport {\n getTransitionTimings,\n getWaitDuration,\n performOnFrame\n} from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\n\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\n\nexport type PopoverAnchorPosition =\n | 'upCenter'\n | 'upLeft'\n | 'upRight'\n | 'downCenter'\n | 'downLeft'\n | 'downRight'\n | 'leftCenter'\n | 'leftUp'\n | 'leftDown'\n | 'rightCenter'\n | 'rightUp'\n | 'rightDown';\n\nexport type EuiPopoverArgs = {\n /**\n * Class name passed to the direct parent of the button\n */\n anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */\n anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */\n attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */\n button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */\n closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */\n container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */\n display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */\n hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */\n initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */\n insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */\n isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */\n ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */\n panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */\n panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */\n panelStyle?: { [i: string]: string };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n\n /**\n * when not `false`, the popover will check if this popover is inside another popover and if so. will reposition itself to be inside the other popover\n */\n shouldAccountForOtherPopovers?: boolean;\n\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */\n repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */\n zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */\n onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */\n offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */\n buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */\n arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */\n ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */\n ariaLabelledBy?: string;\n\n tabindex?: string | number;\n\n shouldSelfFocus?: boolean;\n\n isFocusTrapPaused?: boolean;\n\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\n\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\n\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\n\nexport function getPopoverPositionFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match = anchorPosition.match(/^(.*?)[A-Z]/);\n\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[match[1] as AnchorPosition];\n }\n\n return anchorPositionToPopoverPositionMap['up'];\n}\n\nexport function getPopoverAlignFromAnchorPosition(\n anchorPosition: PopoverAnchorPosition\n): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match = anchorPosition.match(/([A-Z].*)/);\n\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match?.length && match.length > 1) {\n return anchorPositionToPopoverPositionMap[\n match[1]?.toLowerCase() as AnchorPosition\n ];\n }\n\n return anchorPositionToPopoverPositionMap['left'];\n}\n\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\n\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\n\nfunction getElementFromInitialFocus(\n initialFocus?: FocusTarget\n): HTMLElement | null {\n const initialFocusType = typeof initialFocus;\n\n if (initialFocusType === 'string') {\n return document.querySelector(initialFocus as string);\n }\n\n if (initialFocusType === 'function') {\n return (initialFocus as () => HTMLElement | null)();\n }\n\n return initialFocus as HTMLElement | null;\n}\n\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\n\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\n\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false) isOpen!: boolean;\n @argOrDefaultDecorator(true) ownFocus!: boolean;\n @argOrDefaultDecorator('downCenter') anchorPosition!: PopoverAnchorPosition;\n @argOrDefaultDecorator('m') panelPaddingSize!: PanelPaddingSize;\n @argOrDefaultDecorator(true) hasArrow!: boolean;\n @argOrDefaultDecorator('inlineBlock') display!: string;\n @argOrDefaultDecorator(true) shouldSelfFocus!: boolean;\n @argOrDefaultDecorator(false) isFocusTrapPaused!: boolean;\n\n //State\n @tracked prevIsOpen: boolean | undefined;\n @tracked suppressingPopover: boolean | undefined;\n @tracked isClosing = false;\n @tracked isOpening = false;\n @tracked popoverStyles: CssProps = {};\n @tracked arrowStyles: CssProps | undefined = {};\n @tracked arrowPosition: EuiPopoverPosition | null = null;\n @tracked openPosition: EuiPopoverPosition | null = null;\n @tracked isOpenStable = false;\n @tracked isCurrentlyOpen: boolean | undefined;\n @tracked popoverHost?: HTMLElement | null = null;\n ///\n\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked button: HTMLElement | null = null;\n @tracked panel: HTMLElement | null = null;\n\n constructor(owner: Owner, args: EuiPopoverArgs) {\n super(owner, args);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n\n get insert() {\n if (this.args.insert) {\n return this.args.insert;\n }\n\n if (this.shouldAccountForOtherPopovers) {\n if (this.popoverHost) {\n return {\n sibling: this.popoverHost.children[0] as HTMLElement,\n position: 'after'\n };\n }\n }\n\n return undefined;\n }\n\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n\n @action\n onEscapeKey(event: Event, ekEvent?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent?.stopPropagation();\n ekEvent?.stopImmediatePropagation();\n event.preventDefault();\n event.stopPropagation();\n this.closePopover();\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent, ekEvent: EmberKeyboardEvent): void {\n if (event.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event as unknown as Event, ekEvent as unknown as Event);\n }\n }\n\n @action\n onClickOutside(event: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(() => {\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n\n // If we've already focused on something inside the panel, everything's fine.\n if (\n this.hasSetInitialFocus &&\n this.panel.contains(document.activeElement)\n ) {\n return;\n }\n\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget;\n\n if (this.args.initialFocus != null) {\n focusTarget = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems = tabbable(this.panel);\n\n if (tabbableItems.length) {\n focusTarget = tabbableItems[0];\n }\n }\n\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility = window.getComputedStyle(this.panel).opacity;\n\n if (panelVisibility === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility = window.getComputedStyle(focusTarget).visibility;\n\n if (visibility === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n\n if (focusTarget != null) {\n this.hasSetInitialFocus = true;\n focusTarget.focus();\n }\n });\n }\n\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(() => {\n this.isOpening = true;\n });\n\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch, delayMatch } = Array.prototype.slice\n .call(this.panel ? this.panel.children : [])\n .reduce(\n (\n {\n durationMatch,\n delayMatch\n }: { durationMatch: number; delayMatch: number },\n element: HTMLElement\n ) => {\n const transitionTimings = getTransitionTimings(element);\n\n return {\n durationMatch: Math.max(\n durationMatch,\n transitionTimings.durationMatch\n ),\n delayMatch: Math.max(delayMatch, transitionTimings.delayMatch)\n };\n },\n { durationMatch: 0, delayMatch: 0 }\n );\n\n this.respositionTimeout = later(\n this,\n () => {\n this.isOpenStable = true;\n\n const fn = (): void => {\n this.positionPopoverFixed();\n this.updateFocus();\n };\n\n scheduleOnce('afterRender', this, fn);\n },\n durationMatch + delayMatch\n );\n }\n\n get shouldAccountForOtherPopovers() {\n return this.args.shouldAccountForOtherPopovers ?? true;\n }\n\n checkIfPopoverIsInsideAnotherPopover(ele: HTMLElement) {\n const otherPopover = ele.closest<HTMLDivElement>('div.euiPopover__panel');\n\n this.popoverHost = otherPopover;\n }\n\n @action\n didInsertPopover(ele: HTMLDivElement): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n\n const fn = (): void => this.onOpenPopover();\n\n scheduleOnce('afterRender', this, fn);\n }\n\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n\n if (this.shouldAccountForOtherPopovers) {\n this.checkIfPopoverIsInsideAnotherPopover(ele);\n }\n\n this.updateFocus();\n }\n\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(\n this,\n () => {\n this.isClosing = false;\n },\n 250\n );\n }\n\n this.prevIsOpen = this.args.isOpen;\n }\n\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n this.popoverHost = null;\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n\n @action\n onMutation(records: MutationRecord[]): void {\n const waitDuration = getWaitDuration(records);\n\n this.positionPopoverFixed();\n\n performOnFrame(waitDuration, this.positionPopoverFixed);\n }\n\n @action\n positionPopover(allowEnforcePosition: boolean): void {\n if (this.button == null || this.panel == null) return;\n\n let position = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition = undefined;\n\n if (\n allowEnforcePosition &&\n this.isOpenStable &&\n this.openPosition != null\n ) {\n position = this.openPosition;\n forcePosition = true;\n }\n\n // get the position of the element relative to the offsetParent, which could be the document\n function getPos(ele: HTMLElement): [number, number] {\n let currTop = 0;\n let currLeft = 0;\n\n if (ele.offsetParent) {\n do {\n currTop += ele.offsetTop;\n currLeft += ele.offsetLeft;\n } while ((ele = ele.offsetParent as HTMLElement));\n } else {\n currTop = ele.offsetTop;\n currLeft = ele.offsetLeft;\n }\n\n return [currTop, currLeft];\n }\n\n const {\n top,\n left,\n position: foundPosition,\n arrow,\n anchorBoundingBox\n } = findPopoverPosition({\n container: this.args.container,\n host: this.shouldAccountForOtherPopovers ? this.popoverHost : null,\n position,\n forcePosition,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset:\n !this.args.attachToAnchor && this.hasArrow\n ? 16 + (this.args.offset || 0)\n : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp } = this.args;\n const zIndex =\n zIndexProp == null\n ? getElementZIndex(this.button, this.panel) + 2000\n : zIndexProp;\n\n const popoverStyles = {\n top,\n left:\n this.args.attachToAnchor && anchorBoundingBox\n ? anchorBoundingBox.left\n : left,\n zIndex\n };\n\n const willRenderArrow = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles = willRenderArrow ? arrow : undefined;\n const arrowPosition = foundPosition;\n\n this.popoverStyles = popoverStyles;\n this.arrowStyles = arrowStyles;\n this.arrowPosition = arrowPosition;\n this.openPosition = foundPosition;\n }\n\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles } = this;\n\n return arrowStyles\n ? htmlSafe(`top: ${arrowStyles?.top}px; left: ${arrowStyles?.left}px;`)\n : undefined;\n }\n\n get _popoverStyles(): { [i: string]: string } {\n const { panelStyle } = this.args;\n const { popoverStyles } = this;\n\n return {\n ...panelStyle,\n top: `${popoverStyles.top}px`,\n left: `${popoverStyles.left}px`,\n zIndex: `${popoverStyles.zIndex}`\n };\n }\n\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n\n return '-1';\n }\n\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n\n @action\n registerButton(btn: HTMLDivElement): void {\n this.button = btn;\n this.args.buttonRef?.(btn);\n }\n\n @action\n registerPanel(panel: HTMLElement): void {\n this.panel = panel;\n this.args.panelRef?.(panel);\n\n if (panel === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n\n <template>\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClassName\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{this.insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n </template>\n}\n"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus","initialFocusType","document","querySelector","EuiPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner","args","assert","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","insert","shouldAccountForOtherPopovers","popoverHost","sibling","children","position","undefined","n","action","onEscapeKey","event","ekEvent","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","activeElement","focusTarget","tabbableItems","tabbable","panelVisibility","getComputedStyle","opacity","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","delayMatch","Array","slice","call","reduce","element","transitionTimings","getTransitionTimings","Math","max","later","isOpenStable","fn","positionPopoverFixed","scheduleOnce","checkIfPopoverIsInsideAnotherPopover","ele","otherPopover","closest","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","cancelAnimationFrame","onMutation","records","waitDuration","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition","forcePosition","openPosition","foundPosition","arrow","anchorBoundingBox","findPopoverPosition","container","host","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp","getElementZIndex","popoverStyles","willRenderArrow","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","tabindex","positionPopoverFluid","registerButton","btn","buttonRef","registerPanel","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":"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"}
@@ -16,7 +16,7 @@ class EuiPortal extends Component {
16
16
  static {
17
17
  g(this.prototype, "portalNode", [tracked]);
18
18
  }
19
- #portalNode = (i(this, "portalNode"), undefined);
19
+ #portalNode = (i(this, "portalNode"), void 0);
20
20
  constructor(owner, args) {
21
21
  super(owner, args);
22
22
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-portal.js","sources":["../../src/components/eui-portal.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { isBlank } from '@ember/utils';\nimport type Owner from '@ember/owner';\n\nimport { keysOf } from './common.ts';\n\ninterface InsertPositionsMap {\n [key: string]: string;\n}\n\nexport const insertPositions: InsertPositionsMap = {\n after: 'afterend',\n before: 'beforebegin'\n};\n\nexport const INSERT_POSITIONS: EuiPortalInsertPosition[] =\n keysOf(insertPositions);\n\ntype EuiPortalInsertPosition = keyof typeof insertPositions;\n\nexport interface EuiPortalArgs {\n insert?: { sibling: HTMLElement; position: EuiPortalInsertPosition };\n portalRef?: (ref: HTMLDivElement | null) => void;\n}\n\nexport interface EuiPortalSignature {\n Args: EuiPortalArgs;\n Element: HTMLDivElement;\n Blocks: { default: [] };\n}\n\nexport default class EuiPortal extends Component<EuiPortalSignature> {\n @tracked portalNode!: HTMLElement;\n\n constructor(owner: Owner, args: EuiPortalArgs) {\n super(owner, args);\n\n const { insert } = this.args;\n\n this.portalNode = document.createElement('div');\n this.portalNode.id = `${guidFor({})}-portal`;\n\n if (isBlank(this.args.insert)) {\n document.body.appendChild(this.portalNode);\n } else {\n // inserting before or after an element\n const { sibling, position } = insert!;\n\n sibling.insertAdjacentElement(\n insertPositions[position] as InsertPosition,\n this.portalNode\n );\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.portalNode.parentNode) {\n this.portalNode.parentNode.removeChild(this.portalNode);\n }\n }\n\n <template>\n {{#if this.portalNode}}\n {{#in-element this.portalNode}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n </template>\n}\n"],"names":["insertPositions","after","before","INSERT_POSITIONS","keysOf","EuiPortal","Component","g","prototype","tracked","i","void 0","constructor","owner","args","insert","portalNode","document","createElement","id","guidFor","isBlank","body","appendChild","sibling","position","insertAdjacentElement","willDestroy","parentNode","removeChild","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;;;AAYO,MAAMA,eAAsC,GAAA;AACjDC,EAAAA,KAAO,EAAA,UAAA;AACPC,EAAAA,MAAQ,EAAA;AACV;MAEaC,gBACX,GAAAC,MAAA,CAAOJ,eAAiB;AAeX,MAAMK,kBAAkBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CAC9CC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,SAAA;AAEDC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAmB,EAAE;AAC7C,IAAA,KAAK,CAACD,KAAO,EAAAC,IAAA,CAAA;IAEb,MAAM;AAAEC,MAAAA;KAAQ,GAAG,IAAI,CAACD,IAAI;IAE5B,IAAI,CAACE,UAAU,GAAGC,QAAA,CAASC,aAAa,CAAC,KAAA,CAAA;IACzC,IAAI,CAACF,UAAU,CAACG,EAAE,GAAG,CAAGC,EAAAA,OAAQ,CAAA,EAAI,CAAA,CAAQ,OAAA,CAAA;IAE5C,IAAIC,QAAQ,IAAI,CAACP,IAAI,CAACC,MAAM,CAAG,EAAA;MAC7BE,QAAA,CAASK,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,UAAU,CAAA;AAC3C,KAAO,MAAA;AACL;MACA,MAAM;QAAEQ,OAAO;AAAEC,QAAAA;OAAU,GAAGV,MAAA;MAE9BS,OAAQ,CAAAE,qBAAqB,CAC3B1B,eAAe,CAACyB,SAAS,EACzB,IAAI,CAACT,UAAU,CAAA;AAEnB;AACF;AAEAW,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AAEN,IAAA,IAAI,IAAI,CAACX,UAAU,CAACY,UAAU,EAAE;MAC9B,IAAI,CAACZ,UAAU,CAACY,UAAU,CAACC,WAAW,CAAC,IAAI,CAACb,UAAU,CAAA;AACxD;AACF;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAMA,iIAAA,EAAA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-portal.js","sources":["../../src/components/eui-portal.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { isBlank } from '@ember/utils';\nimport type Owner from '@ember/owner';\n\nimport { keysOf } from './common.ts';\n\ninterface InsertPositionsMap {\n [key: string]: string;\n}\n\nexport const insertPositions: InsertPositionsMap = {\n after: 'afterend',\n before: 'beforebegin'\n};\n\nexport const INSERT_POSITIONS: EuiPortalInsertPosition[] =\n keysOf(insertPositions);\n\ntype EuiPortalInsertPosition = keyof typeof insertPositions;\n\nexport interface EuiPortalArgs {\n insert?: { sibling: HTMLElement; position: EuiPortalInsertPosition };\n portalRef?: (ref: HTMLDivElement | null) => void;\n}\n\nexport interface EuiPortalSignature {\n Args: EuiPortalArgs;\n Element: HTMLDivElement;\n Blocks: { default: [] };\n}\n\nexport default class EuiPortal extends Component<EuiPortalSignature> {\n @tracked portalNode!: HTMLElement;\n\n constructor(owner: Owner, args: EuiPortalArgs) {\n super(owner, args);\n\n const { insert } = this.args;\n\n this.portalNode = document.createElement('div');\n this.portalNode.id = `${guidFor({})}-portal`;\n\n if (isBlank(this.args.insert)) {\n document.body.appendChild(this.portalNode);\n } else {\n // inserting before or after an element\n const { sibling, position } = insert!;\n\n sibling.insertAdjacentElement(\n insertPositions[position] as InsertPosition,\n this.portalNode\n );\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.portalNode.parentNode) {\n this.portalNode.parentNode.removeChild(this.portalNode);\n }\n }\n\n <template>\n {{#if this.portalNode}}\n {{#in-element this.portalNode}}\n {{yield}}\n {{/in-element}}\n {{/if}}\n </template>\n}\n"],"names":["insertPositions","after","before","INSERT_POSITIONS","keysOf","EuiPortal","Component","g","prototype","tracked","i","void 0","constructor","owner","args","insert","portalNode","document","createElement","id","guidFor","isBlank","body","appendChild","sibling","position","insertAdjacentElement","willDestroy","parentNode","removeChild","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;;;AAYO,MAAMA,eAAsC,GAAA;AACjDC,EAAAA,KAAO,EAAA,UAAA;AACPC,EAAAA,MAAQ,EAAA;AACV;MAEaC,gBACX,GAAAC,MAAA,CAAOJ,eAAiB;AAeX,MAAMK,kBAAkBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CAC9CC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAEDC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAmB,EAAE;AAC7C,IAAA,KAAK,CAACD,KAAO,EAAAC,IAAA,CAAA;IAEb,MAAM;AAAEC,MAAAA;KAAQ,GAAG,IAAI,CAACD,IAAI;IAE5B,IAAI,CAACE,UAAU,GAAGC,QAAA,CAASC,aAAa,CAAC,KAAA,CAAA;IACzC,IAAI,CAACF,UAAU,CAACG,EAAE,GAAG,CAAGC,EAAAA,OAAQ,CAAA,EAAI,CAAA,CAAQ,OAAA,CAAA;IAE5C,IAAIC,QAAQ,IAAI,CAACP,IAAI,CAACC,MAAM,CAAG,EAAA;MAC7BE,QAAA,CAASK,IAAI,CAACC,WAAW,CAAC,IAAI,CAACP,UAAU,CAAA;AAC3C,KAAO,MAAA;AACL;MACA,MAAM;QAAEQ,OAAO;AAAEC,QAAAA;OAAU,GAAGV,MAAA;MAE9BS,OAAQ,CAAAE,qBAAqB,CAC3B1B,eAAe,CAACyB,SAAS,EACzB,IAAI,CAACT,UAAU,CAAA;AAEnB;AACF;AAEAW,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AAEN,IAAA,IAAI,IAAI,CAACX,UAAU,CAACY,UAAU,EAAE;MAC9B,IAAI,CAACZ,UAAU,CAACY,UAAU,CAACC,WAAW,CAAC,IAAI,CAACb,UAAU,CAAA;AACxD;AACF;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAMA,iIAAA,EAAA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,5 +1,5 @@
1
1
  import didInsert from '@ember/render-modifiers/modifiers/did-insert';
2
- import optional from 'ember-composable-helpers/helpers/optional';
2
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
3
3
  import { or, not, and } from 'ember-truth-helpers';
4
4
  import randomId from '../-private/random-id.js';
5
5
  import argOrDefault from '../helpers/arg-or-default.js';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-radio.js","sources":["../../src/components/eui-radio.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiRadioSignature {\n Element: HTMLInputElement;\n Args: {\n checked?: boolean;\n disabled?: boolean;\n name?: string;\n label?: string;\n labelProps?: {\n className?: string;\n };\n compressed?: boolean;\n containerClass?: string;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakeLabelBlock?: boolean;\n id?: string;\n };\n Blocks: {\n label: [];\n };\n}\n\nconst EuiRadio: TemplateOnlyComponent<EuiRadioSignature> = <template>\n {{#let\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n (argOrDefault @id (randomId))\n as |hasLabelBlock id|\n }}\n {{#let\n (classNames\n @containerClass\n (if (not (or hasLabelBlock @label)) \"euiRadio--noLabel\")\n (if @compressed \"euiRadio--compressed\")\n \"euiRadio\"\n )\n as |classes|\n }}\n <div class={{classes}}>\n <input\n class=\"euiRadio__input\"\n type=\"radio\"\n id={{id}}\n checked={{@checked}}\n disabled={{@disabled}}\n name={{@name}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n <div class=\"euiRadio__circle\"></div>\n {{#if (or hasLabelBlock @label)}}\n <label\n class={{classNames \"euiRadio__label\" @labelProps.className}}\n for={{id}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </label>\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiRadio;\n"],"names":["EuiRadio","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;AAgCA,MAAMA,QAAqD,GAAAC,oBAAA,CAAAC,kBAAA,CA0C3D,25BAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-radio.js","sources":["../../src/components/eui-radio.gts"],"sourcesContent":["import didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiRadioSignature {\n Element: HTMLInputElement;\n Args: {\n checked?: boolean;\n disabled?: boolean;\n name?: string;\n label?: string;\n labelProps?: {\n className?: string;\n };\n compressed?: boolean;\n containerClass?: string;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakeLabelBlock?: boolean;\n id?: string;\n };\n Blocks: {\n label: [];\n };\n}\n\nconst EuiRadio: TemplateOnlyComponent<EuiRadioSignature> = <template>\n {{#let\n (and (has-block \"label\") (not (argOrDefault @isFakeLabelBlock false)))\n (argOrDefault @id (randomId))\n as |hasLabelBlock id|\n }}\n {{#let\n (classNames\n @containerClass\n (if (not (or hasLabelBlock @label)) \"euiRadio--noLabel\")\n (if @compressed \"euiRadio--compressed\")\n \"euiRadio\"\n )\n as |classes|\n }}\n <div class={{classes}}>\n <input\n class=\"euiRadio__input\"\n type=\"radio\"\n id={{id}}\n checked={{@checked}}\n disabled={{@disabled}}\n name={{@name}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n <div class=\"euiRadio__circle\"></div>\n {{#if (or hasLabelBlock @label)}}\n <label\n class={{classNames \"euiRadio__label\" @labelProps.className}}\n for={{id}}\n >\n {{#if hasLabelBlock}}\n {{yield to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </label>\n {{/if}}\n </div>\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiRadio;\n"],"names":["EuiRadio","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","didInsert","optional","templateOnly"],"mappings":";;;;;;;;;;AAgCA,MAAMA,QAAqD,GAAAC,oBAAA,CAAAC,kBAAA,CA0C3D,25BAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,7 +1,7 @@
1
1
  import Component from '@glimmer/component';
2
2
  import { on } from '@ember/modifier';
3
3
  import { htmlSafe } from '@ember/template';
4
- import optional from 'ember-composable-helpers/helpers/optional';
4
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
5
5
  import { eq } from 'ember-truth-helpers';
6
6
  import classNames from '../helpers/class-names.js';
7
7
  import getRangeTick from '../helpers/get-range-tick.js';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-range-ticks.js","sources":["../../src/components/eui-range-ticks.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { htmlSafe } from '@ember/template';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\nimport getRangeTick from '../helpers/get-range-tick.ts';\n\nexport interface EuiRangeTick {\n value: number;\n label: Component;\n}\n\ntype Value = string | number;\n\nexport type EuiRangeTicksArgs = {\n ticks: EuiRangeTick[];\n tickSequence: number[];\n value?: Value | Value[];\n min: number;\n max: number;\n compressed?: boolean;\n interval?: number;\n disabled?: boolean;\n onChange?: (e: MouseEvent) => void;\n trackWidth: number;\n};\n\nexport interface EuiRangeTicksSignature {\n Element: HTMLDivElement;\n Args: EuiRangeTicksArgs;\n}\n\nexport default class EuiRangeTicksComponent extends Component<EuiRangeTicksSignature> {\n get percentageWidth(): number {\n const { max, min, interval = 1 } = this.args;\n\n return (interval / (max - min + interval)) * 100;\n }\n\n get ticksStyle(): ReturnType<typeof htmlSafe> | undefined {\n const { ticks } = this.args;\n\n return !ticks\n ? undefined\n : htmlSafe(`margin: 0 ${this.percentageWidth / -2}%; left: 0; right: 0;`);\n }\n\n <template>\n <div\n class=\"euiRangeTicks {{if @compressed 'euiRangeTicks--compressed'}}\"\n style={{this.ticksStyle}}\n ...attributes\n >\n {{#each @tickSequence key=\"value\" as |tickValue|}}\n {{#let\n (getRangeTick\n @ticks tickValue @min @max this.percentageWidth @trackWidth\n )\n as |derivedState|\n }}\n <button\n type=\"button\"\n class={{classNames\n (if (eq @value tickValue) \"euiRangeTick--selected\")\n (if derivedState.customTick \"euiRangeTick--isCustom\")\n \"euiRangeTick\"\n }}\n value={{tickValue}}\n disabled={{@disabled}}\n style={{derivedState.style}}\n tabindex=\"-1\"\n {{on \"click\" (optional @onChange)}}\n >\n {{!@glint-expect-error}}\n {{derivedState.label}}\n </button>\n {{/let}}\n {{/each}}\n </div>\n </template>\n}\n"],"names":["EuiRangeTicksComponent","Component","percentageWidth","max","min","interval","args","ticksStyle","ticks","undefined","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","getRangeTick","classNames","eq","on","optional"],"mappings":";;;;;;;;;;AAmCe,MAAMA,+BAA+BC,SAAU,CAAA;EAC5D,IAAIC,eAAAA,GAA0B;IAC5B,MAAM;MAAEC,GAAG;MAAEC,GAAG;AAAEC,MAAAA,QAAW,GAAA;KAAG,GAAG,IAAI,CAACC,IAAI;IAE5C,OAAQD,QAAW,IAACF,MAAMC,GAAM,GAAAC,QAAQ,CAAC,GAAI,GAAA;AAC/C;EAEA,IAAIE,UAAcA,GAAwC;IACxD,MAAM;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACF,IAAI;AAE3B,IAAA,OAAO,CAACE,KAAA,GACJC,SACA,GAAAC,QAAA,CAAS,CAAa,UAAA,EAAA,IAAI,CAACR,eAAe,GAAG,EAAC,uBAAwB,CAAA;AAC5E;AAEA,EAAA;IAAAS,oBAAA,CAAAC,kBAAA,CAgCA,qvBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-range-ticks.js","sources":["../../src/components/eui-range-ticks.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { htmlSafe } from '@ember/template';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\nimport getRangeTick from '../helpers/get-range-tick.ts';\n\nexport interface EuiRangeTick {\n value: number;\n label: Component;\n}\n\ntype Value = string | number;\n\nexport type EuiRangeTicksArgs = {\n ticks: EuiRangeTick[];\n tickSequence: number[];\n value?: Value | Value[];\n min: number;\n max: number;\n compressed?: boolean;\n interval?: number;\n disabled?: boolean;\n onChange?: (e: MouseEvent) => void;\n trackWidth: number;\n};\n\nexport interface EuiRangeTicksSignature {\n Element: HTMLDivElement;\n Args: EuiRangeTicksArgs;\n}\n\nexport default class EuiRangeTicksComponent extends Component<EuiRangeTicksSignature> {\n get percentageWidth(): number {\n const { max, min, interval = 1 } = this.args;\n\n return (interval / (max - min + interval)) * 100;\n }\n\n get ticksStyle(): ReturnType<typeof htmlSafe> | undefined {\n const { ticks } = this.args;\n\n return !ticks\n ? undefined\n : htmlSafe(`margin: 0 ${this.percentageWidth / -2}%; left: 0; right: 0;`);\n }\n\n <template>\n <div\n class=\"euiRangeTicks {{if @compressed 'euiRangeTicks--compressed'}}\"\n style={{this.ticksStyle}}\n ...attributes\n >\n {{#each @tickSequence key=\"value\" as |tickValue|}}\n {{#let\n (getRangeTick\n @ticks tickValue @min @max this.percentageWidth @trackWidth\n )\n as |derivedState|\n }}\n <button\n type=\"button\"\n class={{classNames\n (if (eq @value tickValue) \"euiRangeTick--selected\")\n (if derivedState.customTick \"euiRangeTick--isCustom\")\n \"euiRangeTick\"\n }}\n value={{tickValue}}\n disabled={{@disabled}}\n style={{derivedState.style}}\n tabindex=\"-1\"\n {{on \"click\" (optional @onChange)}}\n >\n {{!@glint-expect-error}}\n {{derivedState.label}}\n </button>\n {{/let}}\n {{/each}}\n </div>\n </template>\n}\n"],"names":["EuiRangeTicksComponent","Component","percentageWidth","max","min","interval","args","ticksStyle","ticks","undefined","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","getRangeTick","classNames","eq","on","optional"],"mappings":";;;;;;;;;;AAmCe,MAAMA,+BAA+BC,SAAU,CAAA;EAC5D,IAAIC,eAAAA,GAA0B;IAC5B,MAAM;MAAEC,GAAG;MAAEC,GAAG;AAAEC,MAAAA,QAAW,GAAA;KAAG,GAAG,IAAI,CAACC,IAAI;IAE5C,OAAQD,QAAW,IAACF,MAAMC,GAAM,GAAAC,QAAQ,CAAC,GAAI,GAAA;AAC/C;EAEA,IAAIE,UAAcA,GAAwC;IACxD,MAAM;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACF,IAAI;AAE3B,IAAA,OAAO,CAACE,KAAA,GACJC,SACA,GAAAC,QAAA,CAAS,CAAa,UAAA,EAAA,IAAI,CAACR,eAAe,GAAG,EAAC,uBAAwB,CAAA;AAC5E;AAEA,EAAA;IAAAS,oBAAA,CAAAC,kBAAA,CAgCA,qvBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -21,7 +21,7 @@ class EuiRangeTrackComponent extends Component {
21
21
  static {
22
22
  g(this.prototype, "trackEl", [tracked]);
23
23
  }
24
- #trackEl = (i(this, "trackEl"), undefined);
24
+ #trackEl = (i(this, "trackEl"), void 0);
25
25
  registerTrack(el) {
26
26
  this.trackEl = el;
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-range-track.js","sources":["../../src/components/eui-range-track.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { fn } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { htmlSafe } from '@ember/template';\n\nimport { and, gt,or } from 'ember-truth-helpers';\nimport { range } from 'lodash-es';\n\nimport classNames from '../helpers/class-names.ts';\nimport { isEvenlyDivisibleBy } from '../utils/number/index.ts';\nimport { LEVEL_COLORS } from './eui-range-levels.gts';\nimport EuiRangeLevels from './eui-range-levels.gts';\nimport EuiRangeTicks from './eui-range-ticks.gts';\n\nimport type { EuiRangeLevel } from './eui-range-levels';\n\nexport { LEVEL_COLORS };\n\nexport interface EuiRangeTick {\n value: number;\n label: Component;\n}\n\ntype Value = number | string;\n\nexport type EuiRangeTrackArgs = {\n min: number;\n max: number;\n step?: number;\n value?: Value | Value[];\n compressed?: boolean;\n disabled?: boolean;\n showTicks?: boolean;\n tickInterval?: number;\n ticks?: EuiRangeTick[];\n onChange?: (e: MouseEvent) => void;\n levels?: EuiRangeLevel[];\n};\n\ntype Styling = {\n tickSequence?: number[];\n styles: ReturnType<typeof htmlSafe>;\n};\n\nexport interface EuiRangeTrackSignature {\n Element: HTMLElement;\n Args: EuiRangeTrackArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiRangeTrackComponent extends Component<EuiRangeTrackSignature> {\n @tracked declare trackEl: HTMLElement;\n\n @action\n registerTrack(el: HTMLElement) {\n this.trackEl = el;\n }\n\n @action\n validateValueIsInStep(value: number): number {\n const { min, max, step } = this.args;\n\n if (value < min) {\n assert(\n `The value of ${value} is lower than the min value of ${min}.`,\n false\n );\n }\n\n if (value > max) {\n assert(\n `The value of ${value} is higher than the max value of ${max}.`,\n false\n );\n }\n\n // Error out if the value doesn't line up with the sequence of steps\n if (!isEvenlyDivisibleBy(value - min, step !== undefined ? step : 1)) {\n assert(\n `The value of ${value} is not included in the possible sequence provided by the step of ${step}.`,\n false\n );\n }\n\n // Return the value if nothing fails\n return value;\n }\n\n calculateSequence(\n min: EuiRangeTrackArgs['min'],\n max: EuiRangeTrackArgs['max'],\n interval?: EuiRangeTrackArgs['tickInterval']\n ): number[] {\n // Loop from min to max, creating adding values at each interval\n // (adds a very small number to the max since `range` is not inclusive of the max value)\n const toBeInclusive = 0.000000001;\n\n return range(min, max + toBeInclusive, interval);\n }\n\n calculateTicks(\n min: EuiRangeTrackArgs['min'],\n max: EuiRangeTrackArgs['max'],\n step?: EuiRangeTrackArgs['step'],\n tickInterval?: EuiRangeTrackArgs['tickInterval'],\n customTicks?: EuiRangeTick[]\n ): number[] {\n let ticks;\n\n if (customTicks) {\n // If custom values were passed, use those for the sequence\n // But make sure they align with the possible sequence\n ticks = customTicks.map((tick) => {\n return this.validateValueIsInStep(tick.value);\n });\n } else {\n // If a custom interval was passed, use those for the sequence\n // But make sure they align with the possible sequence\n const interval = tickInterval || step;\n const tickSequence = this.calculateSequence(min, max, interval);\n\n ticks = tickSequence.map((tick) => {\n return this.validateValueIsInStep(tick);\n });\n }\n\n // Error out if there are too many ticks to render\n if (ticks.length > 20) {\n assert(\n `The number of ticks to render is too high (${ticks.length}), increase the interval.`,\n true\n );\n }\n\n return ticks;\n }\n\n get derivedState(): Styling {\n let tickSequence;\n let styles = '';\n const { showTicks, min, max, step, tickInterval, ticks } = this.args;\n\n if (showTicks) {\n tickSequence = this.calculateTicks(min, max, step, tickInterval, ticks);\n\n // Calculate if any extra margin should be added to the inputWrapper\n // because of longer tick labels on the ends\n const lengthOfMinLabel = String(tickSequence[0]).length;\n const lenghtOfMaxLabel = String(\n tickSequence[tickSequence.length - 1]\n ).length;\n const isLastTickTheMax = tickSequence[tickSequence.length - 1] === max;\n\n if (lengthOfMinLabel > 2) {\n styles = `margin-left: ${lengthOfMinLabel / 5}em`;\n }\n\n if (isLastTickTheMax && lenghtOfMaxLabel > 2) {\n styles = `margin-right: ${lenghtOfMaxLabel / 5}em`;\n }\n }\n\n return {\n tickSequence,\n styles: htmlSafe(styles)\n };\n }\n\n <template>\n <div\n class={{classNames\n \"euiRangeTrack\"\n (if @disabled \"euiRangeTrack--disabled\")\n (if @showTicks \"euiRangeTrack--hasTicks\")\n (if (and @levels (gt @levels.length 0)) \"euiRangeTrack--hasLevels\")\n }}\n style={{if this.derivedState.styles this.derivedState.styles}}\n ...attributes\n {{didInsert (fn this.validateValueIsInStep @max)}}\n {{didInsert this.registerTrack}}\n {{didUpdate (fn this.validateValueIsInStep @max) @max}}\n {{didUpdate (fn this.validateValueIsInStep @max) @min}}\n {{didUpdate (fn this.validateValueIsInStep @max) @step}}\n >\n {{#if (gt @levels.length 0)}}\n <EuiRangeLevels\n @compressed={{@compressed}}\n @levels={{@levels}}\n @max={{@max}}\n @min={{@min}}\n @showTicks={{@showTicks}}\n @trackWidth={{this.trackEl.clientWidth}}\n />\n {{/if}}\n {{#if this.derivedState.tickSequence}}\n {{#if @ticks}}\n <EuiRangeTicks\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @ticks={{@ticks}}\n @tickSequence={{this.derivedState.tickSequence}}\n @value={{@value}}\n @min={{@min}}\n @max={{@max}}\n @interval={{or @tickInterval @step}}\n @onChange={{@onChange}}\n @trackWidth={{this.trackEl.clientWidth}}\n />\n {{/if}}\n {{/if}}\n {{yield}}\n </div>\n </template>\n}\n"],"names":["EuiRangeTrackComponent","Component","g","prototype","tracked","i","void 0","registerTrack","el","trackEl","n","action","validateValueIsInStep","value","min","max","step","args","assert","isEvenlyDivisibleBy","undefined","calculateSequence","interval","toBeInclusive","range","calculateTicks","tickInterval","customTicks","ticks","map","tick","tickSequence","length","derivedState","styles","showTicks","lengthOfMinLabel","String","lenghtOfMaxLabel","isLastTickTheMax","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","and","gt","didInsert","fn","didUpdate","EuiRangeLevels","EuiRangeTicks","or"],"mappings":";;;;;;;;;;;;;;;;;;;AAwDe,MAAMA,+BAA+BC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAC3DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,SAAA;EAGDC,aAAcA,CAAAC,EAAe,EAAE;IAC7B,IAAI,CAACC,OAAO,GAAGD,EAAA;AACjB;AAAA,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAP,SAAA,EAAA,eAAA,EAAA,CAHCQ,MAAA,CAAA,CAAA;AAAA;EAMDC,qBAAAA,CAAsBC,KAAa,EAAU;IAC3C,MAAM;MAAEC,GAAG;MAAEC,GAAG;AAAEC,MAAAA;KAAM,GAAG,IAAI,CAACC,IAAI;IAEpC,IAAIJ,QAAQC,GAAK,EAAA;MACfI,MACE,CAAA,gBAAgBL,KAAA,CAAA,gCAAA,EAAwCC,GAAA,CAAM,CAAA,CAAA,EAC9D,KAAA,CAAA;AAEJ;IAEA,IAAID,QAAQE,GAAK,EAAA;MACfG,MACE,CAAA,gBAAgBL,KAAA,CAAA,iCAAA,EAAyCE,GAAA,CAAM,CAAA,CAAA,EAC/D,KAAA,CAAA;AAEJ;AAEA;AACA,IAAA,IAAI,CAACI,mBAAoB,CAAAN,KAAA,GAAQC,KAAKE,IAAS,KAAAI,SAAA,GAAYJ,OAAO,CAAI,CAAA,EAAA;MACpEE,MACE,CAAA,gBAAgBL,KAAA,CAAA,kEAAA,EAA0EG,IAAA,CAAO,CAAA,CAAA,EACjG,KAAA,CAAA;AAEJ;AAEA;AACA,IAAA,OAAOH,KAAA;AACT;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAP,SAAA,EAAA,uBAAA,EAAA,CA5BCQ,MAAA,CAAA,CAAA;AAAA;AA8BDU,EAAAA,iBAAAA,CACEP,GAA6B,EAC7BC,GAA6B,EAC7BO,QAA4C,EAClC;AACV;AACA;IACA,MAAMC,aAAgB,GAAA,WAAA;IAEtB,OAAOC,KAAA,CAAMV,GAAK,EAAAC,GAAA,GAAMQ,aAAe,EAAAD,QAAA,CAAA;AACzC;EAEAG,cACEA,CAAAX,GAA6B,EAC7BC,GAA6B,EAC7BC,IAAgC,EAChCU,YAAgD,EAChDC,WAA4B,EAClB;AACV,IAAA,IAAIC,KAAA;AAEJ,IAAA,IAAID,WAAa,EAAA;AACf;AACA;AACAC,MAAAA,KAAQ,GAAAD,WAAA,CAAYE,GAAG,CAAEC,IAAA,IAAA;AACvB,QAAA,OAAO,IAAI,CAAClB,qBAAqB,CAACkB,KAAKjB,KAAK,CAAA;AAC9C,OAAA,CAAA;AACF,KAAO,MAAA;AACL;AACA;AACA,MAAA,MAAMS,WAAWI,YAAgB,IAAAV,IAAA;MACjC,MAAMe,eAAe,IAAI,CAACV,iBAAiB,CAACP,KAAKC,GAAK,EAAAO,QAAA,CAAA;AAEtDM,MAAAA,KAAQ,GAAAG,YAAA,CAAaF,GAAG,CAAEC,IAAA,IAAA;AACxB,QAAA,OAAO,IAAI,CAAClB,qBAAqB,CAACkB,IAAA,CAAA;AACpC,OAAA,CAAA;AACF;AAEA;AACA,IAAA,IAAIF,KAAA,CAAMI,MAAM,GAAG,EAAI,EAAA;MACrBd,MACE,CAAA,8CAA8CU,KAAA,CAAMI,MAAM,CAA2B,yBAAA,CAAA,EACrF,IAAA,CAAA;AAEJ;AAEA,IAAA,OAAOJ,KAAA;AACT;EAEA,IAAIK,eAAwB;AAC1B,IAAA,IAAIF,YAAA;IACJ,IAAIG,MAAS,GAAA,EAAA;IACb,MAAM;MAAEC,SAAS;MAAErB,GAAG;MAAEC,GAAG;MAAEC,IAAI;MAAEU,YAAY;AAAEE,MAAAA;KAAO,GAAG,IAAI,CAACX,IAAI;AAEpE,IAAA,IAAIkB,SAAW,EAAA;AACbJ,MAAAA,YAAA,GAAe,IAAI,CAACN,cAAc,CAACX,GAAK,EAAAC,GAAA,EAAKC,MAAMU,YAAc,EAAAE,KAAA,CAAA;AAEjE;AACA;MACA,MAAMQ,mBAAmBC,MAAO,CAAAN,YAAY,CAAC,CAAA,CAAE,EAAEC,MAAM;AACvD,MAAA,MAAMM,gBAAA,GAAmBD,OACvBN,YAAY,CAACA,aAAaC,MAAM,GAAG,CAAE,CAAA,CAAA,CACrCA,MAAM;MACR,MAAMO,mBAAmBR,YAAY,CAACA,aAAaC,MAAM,GAAG,EAAE,KAAKjB,GAAA;MAEnE,IAAIqB,mBAAmB,CAAG,EAAA;AACxBF,QAAAA,MAAA,GAAS,CAAA,aAAA,EAAgBE,gBAAmB,GAAA,CAAA,CAAK,EAAA,CAAA;AACnD;AAEA,MAAA,IAAIG,gBAAA,IAAoBD,mBAAmB,CAAG,EAAA;AAC5CJ,QAAAA,MAAA,GAAS,CAAA,cAAA,EAAiBI,gBAAmB,GAAA,CAAA,CAAK,EAAA,CAAA;AACpD;AACF;IAEA,OAAO;MACLP,YAAA;MACAG,MAAA,EAAQM,QAAS,CAAAN,MAAA;KACnB;AACF;AAEA,EAAA;IAAAO,oBAAA,CAAAC,kBAAA,CA4CA,yqCAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,SAAA;wBAAAC,uBAAA;uBAAAC,sBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-range-track.js","sources":["../../src/components/eui-range-track.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { fn } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { htmlSafe } from '@ember/template';\n\nimport { and, gt,or } from 'ember-truth-helpers';\nimport { range } from 'lodash-es';\n\nimport classNames from '../helpers/class-names.ts';\nimport { isEvenlyDivisibleBy } from '../utils/number/index.ts';\nimport { LEVEL_COLORS } from './eui-range-levels.gts';\nimport EuiRangeLevels from './eui-range-levels.gts';\nimport EuiRangeTicks from './eui-range-ticks.gts';\n\nimport type { EuiRangeLevel } from './eui-range-levels';\n\nexport { LEVEL_COLORS };\n\nexport interface EuiRangeTick {\n value: number;\n label: Component;\n}\n\ntype Value = number | string;\n\nexport type EuiRangeTrackArgs = {\n min: number;\n max: number;\n step?: number;\n value?: Value | Value[];\n compressed?: boolean;\n disabled?: boolean;\n showTicks?: boolean;\n tickInterval?: number;\n ticks?: EuiRangeTick[];\n onChange?: (e: MouseEvent) => void;\n levels?: EuiRangeLevel[];\n};\n\ntype Styling = {\n tickSequence?: number[];\n styles: ReturnType<typeof htmlSafe>;\n};\n\nexport interface EuiRangeTrackSignature {\n Element: HTMLElement;\n Args: EuiRangeTrackArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiRangeTrackComponent extends Component<EuiRangeTrackSignature> {\n @tracked declare trackEl: HTMLElement;\n\n @action\n registerTrack(el: HTMLElement) {\n this.trackEl = el;\n }\n\n @action\n validateValueIsInStep(value: number): number {\n const { min, max, step } = this.args;\n\n if (value < min) {\n assert(\n `The value of ${value} is lower than the min value of ${min}.`,\n false\n );\n }\n\n if (value > max) {\n assert(\n `The value of ${value} is higher than the max value of ${max}.`,\n false\n );\n }\n\n // Error out if the value doesn't line up with the sequence of steps\n if (!isEvenlyDivisibleBy(value - min, step !== undefined ? step : 1)) {\n assert(\n `The value of ${value} is not included in the possible sequence provided by the step of ${step}.`,\n false\n );\n }\n\n // Return the value if nothing fails\n return value;\n }\n\n calculateSequence(\n min: EuiRangeTrackArgs['min'],\n max: EuiRangeTrackArgs['max'],\n interval?: EuiRangeTrackArgs['tickInterval']\n ): number[] {\n // Loop from min to max, creating adding values at each interval\n // (adds a very small number to the max since `range` is not inclusive of the max value)\n const toBeInclusive = 0.000000001;\n\n return range(min, max + toBeInclusive, interval);\n }\n\n calculateTicks(\n min: EuiRangeTrackArgs['min'],\n max: EuiRangeTrackArgs['max'],\n step?: EuiRangeTrackArgs['step'],\n tickInterval?: EuiRangeTrackArgs['tickInterval'],\n customTicks?: EuiRangeTick[]\n ): number[] {\n let ticks;\n\n if (customTicks) {\n // If custom values were passed, use those for the sequence\n // But make sure they align with the possible sequence\n ticks = customTicks.map((tick) => {\n return this.validateValueIsInStep(tick.value);\n });\n } else {\n // If a custom interval was passed, use those for the sequence\n // But make sure they align with the possible sequence\n const interval = tickInterval || step;\n const tickSequence = this.calculateSequence(min, max, interval);\n\n ticks = tickSequence.map((tick) => {\n return this.validateValueIsInStep(tick);\n });\n }\n\n // Error out if there are too many ticks to render\n if (ticks.length > 20) {\n assert(\n `The number of ticks to render is too high (${ticks.length}), increase the interval.`,\n true\n );\n }\n\n return ticks;\n }\n\n get derivedState(): Styling {\n let tickSequence;\n let styles = '';\n const { showTicks, min, max, step, tickInterval, ticks } = this.args;\n\n if (showTicks) {\n tickSequence = this.calculateTicks(min, max, step, tickInterval, ticks);\n\n // Calculate if any extra margin should be added to the inputWrapper\n // because of longer tick labels on the ends\n const lengthOfMinLabel = String(tickSequence[0]).length;\n const lenghtOfMaxLabel = String(\n tickSequence[tickSequence.length - 1]\n ).length;\n const isLastTickTheMax = tickSequence[tickSequence.length - 1] === max;\n\n if (lengthOfMinLabel > 2) {\n styles = `margin-left: ${lengthOfMinLabel / 5}em`;\n }\n\n if (isLastTickTheMax && lenghtOfMaxLabel > 2) {\n styles = `margin-right: ${lenghtOfMaxLabel / 5}em`;\n }\n }\n\n return {\n tickSequence,\n styles: htmlSafe(styles)\n };\n }\n\n <template>\n <div\n class={{classNames\n \"euiRangeTrack\"\n (if @disabled \"euiRangeTrack--disabled\")\n (if @showTicks \"euiRangeTrack--hasTicks\")\n (if (and @levels (gt @levels.length 0)) \"euiRangeTrack--hasLevels\")\n }}\n style={{if this.derivedState.styles this.derivedState.styles}}\n ...attributes\n {{didInsert (fn this.validateValueIsInStep @max)}}\n {{didInsert this.registerTrack}}\n {{didUpdate (fn this.validateValueIsInStep @max) @max}}\n {{didUpdate (fn this.validateValueIsInStep @max) @min}}\n {{didUpdate (fn this.validateValueIsInStep @max) @step}}\n >\n {{#if (gt @levels.length 0)}}\n <EuiRangeLevels\n @compressed={{@compressed}}\n @levels={{@levels}}\n @max={{@max}}\n @min={{@min}}\n @showTicks={{@showTicks}}\n @trackWidth={{this.trackEl.clientWidth}}\n />\n {{/if}}\n {{#if this.derivedState.tickSequence}}\n {{#if @ticks}}\n <EuiRangeTicks\n @disabled={{@disabled}}\n @compressed={{@compressed}}\n @ticks={{@ticks}}\n @tickSequence={{this.derivedState.tickSequence}}\n @value={{@value}}\n @min={{@min}}\n @max={{@max}}\n @interval={{or @tickInterval @step}}\n @onChange={{@onChange}}\n @trackWidth={{this.trackEl.clientWidth}}\n />\n {{/if}}\n {{/if}}\n {{yield}}\n </div>\n </template>\n}\n"],"names":["EuiRangeTrackComponent","Component","g","prototype","tracked","i","void 0","registerTrack","el","trackEl","n","action","validateValueIsInStep","value","min","max","step","args","assert","isEvenlyDivisibleBy","undefined","calculateSequence","interval","toBeInclusive","range","calculateTicks","tickInterval","customTicks","ticks","map","tick","tickSequence","length","derivedState","styles","showTicks","lengthOfMinLabel","String","lenghtOfMaxLabel","isLastTickTheMax","htmlSafe","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","and","gt","didInsert","fn","didUpdate","EuiRangeLevels","EuiRangeTicks","or"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { on } from '@ember/modifier';
5
5
  import { action } from '@ember/object';
6
6
  import { guidFor } from '@ember/object/internals';
7
7
  import { later } from '@ember/runloop';
8
- import optional from 'ember-composable-helpers/helpers/optional';
8
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
9
9
  import { eq, not, and } from 'ember-truth-helpers';
10
10
  import argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.js';
11
11
  import castTo from '../helpers/cast-to.js';
@@ -27,51 +27,51 @@ class EuiRangeComponent extends Component {
27
27
  static {
28
28
  g(this.prototype, "min", [argOrDefaultDecorator(0)]);
29
29
  }
30
- #min = (i(this, "min"), undefined); // Defaults
30
+ #min = (i(this, "min"), void 0); // Defaults
31
31
  static {
32
32
  g(this.prototype, "max", [argOrDefaultDecorator(100)]);
33
33
  }
34
- #max = (i(this, "max"), undefined);
34
+ #max = (i(this, "max"), void 0);
35
35
  static {
36
36
  g(this.prototype, "step", [argOrDefaultDecorator(1)]);
37
37
  }
38
- #step = (i(this, "step"), undefined);
38
+ #step = (i(this, "step"), void 0);
39
39
  static {
40
40
  g(this.prototype, "fullWidth", [argOrDefaultDecorator(false)]);
41
41
  }
42
- #fullWidth = (i(this, "fullWidth"), undefined);
42
+ #fullWidth = (i(this, "fullWidth"), void 0);
43
43
  static {
44
44
  g(this.prototype, "compressed", [argOrDefaultDecorator(false)]);
45
45
  }
46
- #compressed = (i(this, "compressed"), undefined);
46
+ #compressed = (i(this, "compressed"), void 0);
47
47
  static {
48
48
  g(this.prototype, "isLoading", [argOrDefaultDecorator(false)]);
49
49
  }
50
- #isLoading = (i(this, "isLoading"), undefined);
50
+ #isLoading = (i(this, "isLoading"), void 0);
51
51
  static {
52
52
  g(this.prototype, "showLabels", [argOrDefaultDecorator(false)]);
53
53
  }
54
- #showLabels = (i(this, "showLabels"), undefined);
54
+ #showLabels = (i(this, "showLabels"), void 0);
55
55
  static {
56
56
  g(this.prototype, "showInput", [argOrDefaultDecorator(false)]);
57
57
  }
58
- #showInput = (i(this, "showInput"), undefined);
58
+ #showInput = (i(this, "showInput"), void 0);
59
59
  static {
60
60
  g(this.prototype, "showRange", [argOrDefaultDecorator(false)]);
61
61
  }
62
- #showRange = (i(this, "showRange"), undefined);
62
+ #showRange = (i(this, "showRange"), void 0);
63
63
  static {
64
64
  g(this.prototype, "showTicks", [argOrDefaultDecorator(false)]);
65
65
  }
66
- #showTicks = (i(this, "showTicks"), undefined);
66
+ #showTicks = (i(this, "showTicks"), void 0);
67
67
  static {
68
68
  g(this.prototype, "showValue", [argOrDefaultDecorator(false)]);
69
69
  }
70
- #showValue = (i(this, "showValue"), undefined);
70
+ #showValue = (i(this, "showValue"), void 0);
71
71
  static {
72
72
  g(this.prototype, "levels", [argOrDefaultDecorator([])]);
73
73
  }
74
- #levels = (i(this, "levels"), undefined);
74
+ #levels = (i(this, "levels"), void 0);
75
75
  preventPopoverClose = false;
76
76
  //State
77
77
  static {
@@ -79,13 +79,13 @@ class EuiRangeComponent extends Component {
79
79
  return this.args.id || guidFor({});
80
80
  });
81
81
  }
82
- #id = (i(this, "id"), undefined);
82
+ #id = (i(this, "id"), void 0);
83
83
  static {
84
84
  g(this.prototype, "isPopoverOpen", [tracked], function () {
85
85
  return false;
86
86
  });
87
87
  }
88
- #isPopoverOpen = (i(this, "isPopoverOpen"), undefined);
88
+ #isPopoverOpen = (i(this, "isPopoverOpen"), void 0);
89
89
  ///
90
90
  handleOnChange(e) {
91
91
  const isValid = isWithinRange(this.min, this.max, e.currentTarget.value);