@ember-eui/core 12.0.1 → 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 (308) 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.d.ts +1 -1
  7. package/declarations/components/eui-combo-box.d.ts.map +1 -1
  8. package/declarations/components/eui-described-form-group.d.ts +2 -0
  9. package/declarations/components/eui-described-form-group.d.ts.map +1 -1
  10. package/declarations/components/eui-dual-range.d.ts.map +1 -1
  11. package/declarations/components/eui-header-section-item-button.d.ts.map +1 -1
  12. package/declarations/components/eui-list-group-item.d.ts.map +1 -1
  13. package/declarations/components/eui-loading-content.d.ts.map +1 -1
  14. package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
  15. package/declarations/components/eui-markdown-format.d.ts.map +1 -1
  16. package/declarations/components/eui-notification-event-messages.d.ts.map +1 -1
  17. package/declarations/components/eui-page-header-content.d.ts.map +1 -1
  18. package/declarations/components/eui-popover.d.ts.map +1 -1
  19. package/declarations/components/eui-range.d.ts.map +1 -1
  20. package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts +1 -0
  21. package/declarations/components/eui-super-date-picker/utils/date-utils.d.ts.map +1 -1
  22. package/declarations/components/eui-super-date-picker/utils/index.d.ts +1 -0
  23. package/declarations/components/eui-super-date-picker/utils/index.d.ts.map +1 -1
  24. package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts +1 -0
  25. package/declarations/components/eui-super-date-picker/utils/pretty-duration.d.ts.map +1 -1
  26. package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts +1 -0
  27. package/declarations/components/eui-super-date-picker/utils/quick-select.d.ts.map +1 -1
  28. package/declarations/components/eui-super-date-picker/utils/time-options.d.ts +1 -0
  29. package/declarations/components/eui-super-date-picker/utils/time-options.d.ts.map +1 -1
  30. package/declarations/components/eui-tabbed-content.d.ts.map +1 -1
  31. package/declarations/utils/common.d.ts +42 -0
  32. package/declarations/utils/common.d.ts.map +1 -0
  33. package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js +63 -0
  34. package/dist/_rollupPluginBabelHelpers-9wjJaosZ.js.map +1 -0
  35. package/dist/components/common.js +1 -19
  36. package/dist/components/common.js.map +1 -1
  37. package/dist/components/eui-accordion.js +9 -9
  38. package/dist/components/eui-accordion.js.map +1 -1
  39. package/dist/components/eui-auto-sizer.js +2 -2
  40. package/dist/components/eui-auto-sizer.js.map +1 -1
  41. package/dist/components/eui-badge.js +1 -1
  42. package/dist/components/eui-badge.js.map +1 -1
  43. package/dist/components/eui-bottom-bar.js +1 -1
  44. package/dist/components/eui-bottom-bar.js.map +1 -1
  45. package/dist/components/eui-breadcrumbs.js +2 -2
  46. package/dist/components/eui-breadcrumbs.js.map +1 -1
  47. package/dist/components/eui-button-group-button.js +7 -3
  48. package/dist/components/eui-button-group-button.js.map +1 -1
  49. package/dist/components/eui-card-select.js +1 -1
  50. package/dist/components/eui-card-select.js.map +1 -1
  51. package/dist/components/eui-card.js +2 -2
  52. package/dist/components/eui-card.js.map +1 -1
  53. package/dist/components/eui-checkbox.js +1 -1
  54. package/dist/components/eui-checkbox.js.map +1 -1
  55. package/dist/components/eui-code-block.js +7 -7
  56. package/dist/components/eui-code-block.js.map +1 -1
  57. package/dist/components/eui-code.js +2 -2
  58. package/dist/components/eui-code.js.map +1 -1
  59. package/dist/components/eui-collapsible-nav.js +1 -1
  60. package/dist/components/eui-collapsible-nav.js.map +1 -1
  61. package/dist/components/eui-combo-box/create-option.js +1 -1
  62. package/dist/components/eui-combo-box/create-option.js.map +1 -1
  63. package/dist/components/eui-combo-box/options.js +1 -1
  64. package/dist/components/eui-combo-box/options.js.map +1 -1
  65. package/dist/components/eui-combo-box/trigger.js +1 -1
  66. package/dist/components/eui-combo-box/trigger.js.map +1 -1
  67. package/dist/components/eui-combo-box-pill.js +1 -1
  68. package/dist/components/eui-combo-box-pill.js.map +1 -1
  69. package/dist/components/eui-combo-box.js +9 -11
  70. package/dist/components/eui-combo-box.js.map +1 -1
  71. package/dist/components/eui-context-menu-item.js +1 -1
  72. package/dist/components/eui-context-menu-item.js.map +1 -1
  73. package/dist/components/eui-copy.js +1 -1
  74. package/dist/components/eui-copy.js.map +1 -1
  75. package/dist/components/eui-described-form-group.js +1 -1
  76. package/dist/components/eui-described-form-group.js.map +1 -1
  77. package/dist/components/eui-dual-range.js +17 -17
  78. package/dist/components/eui-dual-range.js.map +1 -1
  79. package/dist/components/eui-field-number.js +1 -1
  80. package/dist/components/eui-field-number.js.map +1 -1
  81. package/dist/components/eui-field-password.js +1 -1
  82. package/dist/components/eui-field-password.js.map +1 -1
  83. package/dist/components/eui-field-search.js +3 -3
  84. package/dist/components/eui-field-search.js.map +1 -1
  85. package/dist/components/eui-field-text.js +1 -1
  86. package/dist/components/eui-field-text.js.map +1 -1
  87. package/dist/components/eui-file-picker.js +6 -6
  88. package/dist/components/eui-file-picker.js.map +1 -1
  89. package/dist/components/eui-flyout.js +2 -2
  90. package/dist/components/eui-flyout.js.map +1 -1
  91. package/dist/components/eui-global-toast-list.js +4 -4
  92. package/dist/components/eui-global-toast-list.js.map +1 -1
  93. package/dist/components/eui-header-links.js +1 -1
  94. package/dist/components/eui-header-links.js.map +1 -1
  95. package/dist/components/eui-header-section-item-button.js +3 -3
  96. package/dist/components/eui-header-section-item-button.js.map +1 -1
  97. package/dist/components/eui-i18n.js +1 -1
  98. package/dist/components/eui-i18n.js.map +1 -1
  99. package/dist/components/eui-icon.js +2 -2
  100. package/dist/components/eui-icon.js.map +1 -1
  101. package/dist/components/eui-image.js +2 -2
  102. package/dist/components/eui-image.js.map +1 -1
  103. package/dist/components/eui-inner-text.js +2 -2
  104. package/dist/components/eui-inner-text.js.map +1 -1
  105. package/dist/components/eui-input-popover.js +9 -9
  106. package/dist/components/eui-input-popover.js.map +1 -1
  107. package/dist/components/eui-list-group-item.js +1 -4
  108. package/dist/components/eui-list-group-item.js.map +1 -1
  109. package/dist/components/eui-loading-content.js +17 -5
  110. package/dist/components/eui-loading-content.js.map +1 -1
  111. package/dist/components/eui-markdown-editor-footer.js +2 -2
  112. package/dist/components/eui-markdown-editor-footer.js.map +1 -1
  113. package/dist/components/eui-markdown-editor.js +16 -16
  114. package/dist/components/eui-markdown-editor.js.map +1 -1
  115. package/dist/components/eui-markdown-format.js +1 -1
  116. package/dist/components/eui-markdown-format.js.map +1 -1
  117. package/dist/components/eui-modal.js +1 -1
  118. package/dist/components/eui-modal.js.map +1 -1
  119. package/dist/components/eui-notification-event-messages.js +4 -2
  120. package/dist/components/eui-notification-event-messages.js.map +1 -1
  121. package/dist/components/eui-notification-event-meta.js +2 -2
  122. package/dist/components/eui-notification-event-meta.js.map +1 -1
  123. package/dist/components/eui-notification-event.js +1 -1
  124. package/dist/components/eui-notification-event.js.map +1 -1
  125. package/dist/components/eui-overlay-mask.js +1 -1
  126. package/dist/components/eui-overlay-mask.js.map +1 -1
  127. package/dist/components/eui-page-header-content.js +4 -4
  128. package/dist/components/eui-page-header-content.js.map +1 -1
  129. package/dist/components/eui-page-template.js +3 -3
  130. package/dist/components/eui-page-template.js.map +1 -1
  131. package/dist/components/eui-popover.js +22 -22
  132. package/dist/components/eui-popover.js.map +1 -1
  133. package/dist/components/eui-portal.js +1 -1
  134. package/dist/components/eui-portal.js.map +1 -1
  135. package/dist/components/eui-radio.js +1 -1
  136. package/dist/components/eui-radio.js.map +1 -1
  137. package/dist/components/eui-range-ticks.js +1 -1
  138. package/dist/components/eui-range-ticks.js.map +1 -1
  139. package/dist/components/eui-range-track.js +1 -1
  140. package/dist/components/eui-range-track.js.map +1 -1
  141. package/dist/components/eui-range.js +15 -15
  142. package/dist/components/eui-range.js.map +1 -1
  143. package/dist/components/eui-select.js +1 -1
  144. package/dist/components/eui-select.js.map +1 -1
  145. package/dist/components/eui-show-for.js +1 -1
  146. package/dist/components/eui-show-for.js.map +1 -1
  147. package/dist/components/eui-side-nav-item.js +1 -1
  148. package/dist/components/eui-side-nav-item.js.map +1 -1
  149. package/dist/components/eui-side-nav.js +1 -1
  150. package/dist/components/eui-side-nav.js.map +1 -1
  151. package/dist/components/eui-step-horizontal.js +1 -1
  152. package/dist/components/eui-step-horizontal.js.map +1 -1
  153. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +3 -3
  154. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
  155. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js +8 -8
  156. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
  157. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js +2 -2
  158. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
  159. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js +2 -2
  160. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
  161. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js +4 -4
  162. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
  163. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +4 -4
  164. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
  165. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +2 -2
  166. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
  167. package/dist/components/eui-super-date-picker/utils/date-utils.js +1 -1
  168. package/dist/components/eui-super-date-picker/utils/date-utils.js.map +1 -1
  169. package/dist/components/eui-super-date-picker/utils/index.js +1 -1
  170. package/dist/components/eui-super-date-picker/utils/index.js.map +1 -1
  171. package/dist/components/eui-super-date-picker/utils/pretty-duration.js +1 -1
  172. package/dist/components/eui-super-date-picker/utils/pretty-duration.js.map +1 -1
  173. package/dist/components/eui-super-date-picker/utils/quick-select.js +1 -1
  174. package/dist/components/eui-super-date-picker/utils/quick-select.js.map +1 -1
  175. package/dist/components/eui-super-date-picker/utils/time-options.js +1 -1
  176. package/dist/components/eui-super-date-picker/utils/time-options.js.map +1 -1
  177. package/dist/components/eui-super-date-picker.js +13 -13
  178. package/dist/components/eui-super-date-picker.js.map +1 -1
  179. package/dist/components/eui-tabbed-content.js +4 -4
  180. package/dist/components/eui-tabbed-content.js.map +1 -1
  181. package/dist/components/eui-text-area.js +1 -1
  182. package/dist/components/eui-text-area.js.map +1 -1
  183. package/dist/components/eui-tool-tip.js +9 -9
  184. package/dist/components/eui-tool-tip.js.map +1 -1
  185. package/dist/helpers/get-eui-config.js +1 -1
  186. package/dist/helpers/get-eui-config.js.map +1 -1
  187. package/dist/helpers/use-state.js +1 -1
  188. package/dist/helpers/use-state.js.map +1 -1
  189. package/dist/services/eui-config.js +1 -1
  190. package/dist/services/eui-config.js.map +1 -1
  191. package/dist/services/eui-toaster.js +1 -1
  192. package/dist/services/eui-toaster.js.map +1 -1
  193. package/package.json +9 -123
  194. package/dist/_app_/utils/accesibility/accessible-click-keys.js +0 -1
  195. package/dist/_app_/utils/accesibility/cascading-menu-keys.js +0 -1
  196. package/dist/_app_/utils/accesibility/combo-box-keys.js +0 -1
  197. package/dist/_app_/utils/accesibility/index.js +0 -1
  198. package/dist/_app_/utils/breakpoint.js +0 -1
  199. package/dist/_app_/utils/browser/browser.js +0 -1
  200. package/dist/_app_/utils/browser/index.js +0 -1
  201. package/dist/_app_/utils/code/utils.js +0 -1
  202. package/dist/_app_/utils/color/color_palette.js +0 -1
  203. package/dist/_app_/utils/color/eui_palettes.js +0 -1
  204. package/dist/_app_/utils/color/index.js +0 -1
  205. package/dist/_app_/utils/copy-to-clipboard.js +0 -1
  206. package/dist/_app_/utils/css-mappings/eui-accordion.js +0 -1
  207. package/dist/_app_/utils/css-mappings/eui-avatar.js +0 -1
  208. package/dist/_app_/utils/css-mappings/eui-badge-group.js +0 -1
  209. package/dist/_app_/utils/css-mappings/eui-badge.js +0 -1
  210. package/dist/_app_/utils/css-mappings/eui-beta-badge.js +0 -1
  211. package/dist/_app_/utils/css-mappings/eui-bottom-bar.js +0 -1
  212. package/dist/_app_/utils/css-mappings/eui-button-empty.js +0 -1
  213. package/dist/_app_/utils/css-mappings/eui-button-group-button.js +0 -1
  214. package/dist/_app_/utils/css-mappings/eui-button-group.js +0 -1
  215. package/dist/_app_/utils/css-mappings/eui-button-icon.js +0 -1
  216. package/dist/_app_/utils/css-mappings/eui-button.js +0 -1
  217. package/dist/_app_/utils/css-mappings/eui-call-out.js +0 -1
  218. package/dist/_app_/utils/css-mappings/eui-card-select.js +0 -1
  219. package/dist/_app_/utils/css-mappings/eui-card.js +0 -1
  220. package/dist/_app_/utils/css-mappings/eui-code-block.js +0 -1
  221. package/dist/_app_/utils/css-mappings/eui-collapsible-nav-group.js +0 -1
  222. package/dist/_app_/utils/css-mappings/eui-comment-event.js +0 -1
  223. package/dist/_app_/utils/css-mappings/eui-comment-timeline-icon.js +0 -1
  224. package/dist/_app_/utils/css-mappings/eui-context-menu-item.js +0 -1
  225. package/dist/_app_/utils/css-mappings/eui-described-form-group.js +0 -1
  226. package/dist/_app_/utils/css-mappings/eui-description-list.js +0 -1
  227. package/dist/_app_/utils/css-mappings/eui-empty-prompt.js +0 -1
  228. package/dist/_app_/utils/css-mappings/eui-file-picker.js +0 -1
  229. package/dist/_app_/utils/css-mappings/eui-flex-grid.js +0 -1
  230. package/dist/_app_/utils/css-mappings/eui-flex-group.js +0 -1
  231. package/dist/_app_/utils/css-mappings/eui-flex-item.js +0 -1
  232. package/dist/_app_/utils/css-mappings/eui-flyout.js +0 -1
  233. package/dist/_app_/utils/css-mappings/eui-form-control-layout-clear-button.js +0 -1
  234. package/dist/_app_/utils/css-mappings/eui-form-row.js +0 -1
  235. package/dist/_app_/utils/css-mappings/eui-global-toast-list.js +0 -1
  236. package/dist/_app_/utils/css-mappings/eui-header-links.js +0 -1
  237. package/dist/_app_/utils/css-mappings/eui-header-section-item.js +0 -1
  238. package/dist/_app_/utils/css-mappings/eui-header-section.js +0 -1
  239. package/dist/_app_/utils/css-mappings/eui-header.js +0 -1
  240. package/dist/_app_/utils/css-mappings/eui-health.js +0 -1
  241. package/dist/_app_/utils/css-mappings/eui-horizontal-rule.js +0 -1
  242. package/dist/_app_/utils/css-mappings/eui-icon.js +0 -1
  243. package/dist/_app_/utils/css-mappings/eui-image.js +0 -1
  244. package/dist/_app_/utils/css-mappings/eui-link.js +0 -1
  245. package/dist/_app_/utils/css-mappings/eui-list-group-item.js +0 -1
  246. package/dist/_app_/utils/css-mappings/eui-list-group.js +0 -1
  247. package/dist/_app_/utils/css-mappings/eui-loading-spinner.js +0 -1
  248. package/dist/_app_/utils/css-mappings/eui-modal.js +0 -1
  249. package/dist/_app_/utils/css-mappings/eui-notification-badge.js +0 -1
  250. package/dist/_app_/utils/css-mappings/eui-page-body.js +0 -1
  251. package/dist/_app_/utils/css-mappings/eui-page-content-body.js +0 -1
  252. package/dist/_app_/utils/css-mappings/eui-page-content.js +0 -1
  253. package/dist/_app_/utils/css-mappings/eui-page-header.js +0 -1
  254. package/dist/_app_/utils/css-mappings/eui-page-side-bar.js +0 -1
  255. package/dist/_app_/utils/css-mappings/eui-page.js +0 -1
  256. package/dist/_app_/utils/css-mappings/eui-panel.js +0 -1
  257. package/dist/_app_/utils/css-mappings/eui-popover-footer.js +0 -1
  258. package/dist/_app_/utils/css-mappings/eui-popover-title.js +0 -1
  259. package/dist/_app_/utils/css-mappings/eui-popover.js +0 -1
  260. package/dist/_app_/utils/css-mappings/eui-progress-data.js +0 -1
  261. package/dist/_app_/utils/css-mappings/eui-progress.js +0 -1
  262. package/dist/_app_/utils/css-mappings/eui-range-highlight.js +0 -1
  263. package/dist/_app_/utils/css-mappings/eui-range-input.js +0 -1
  264. package/dist/_app_/utils/css-mappings/eui-range-levels.js +0 -1
  265. package/dist/_app_/utils/css-mappings/eui-selectable-list-item.js +0 -1
  266. package/dist/_app_/utils/css-mappings/eui-spacer.js +0 -1
  267. package/dist/_app_/utils/css-mappings/eui-stat.js +0 -1
  268. package/dist/_app_/utils/css-mappings/eui-step-number.js +0 -1
  269. package/dist/_app_/utils/css-mappings/eui-tabs.js +0 -1
  270. package/dist/_app_/utils/css-mappings/eui-text-align.js +0 -1
  271. package/dist/_app_/utils/css-mappings/eui-text-area.js +0 -1
  272. package/dist/_app_/utils/css-mappings/eui-text-color.js +0 -1
  273. package/dist/_app_/utils/css-mappings/eui-text.js +0 -1
  274. package/dist/_app_/utils/css-mappings/eui-title.js +0 -1
  275. package/dist/_app_/utils/css-mappings/eui-toast.js +0 -1
  276. package/dist/_app_/utils/css-mappings/eui-tool-tip.js +0 -1
  277. package/dist/_app_/utils/css-mappings/index.js +0 -1
  278. package/dist/_app_/utils/detect-element-resize.js +0 -1
  279. package/dist/_app_/utils/index.js +0 -1
  280. package/dist/_app_/utils/keys.js +0 -1
  281. package/dist/_app_/utils/markdown/markdown-actions.js +0 -1
  282. package/dist/_app_/utils/markdown/markdown-modes.js +0 -1
  283. package/dist/_app_/utils/markdown/markdown-types.js +0 -1
  284. package/dist/_app_/utils/markdown/plugins/markdown-add-components/index.js +0 -1
  285. package/dist/_app_/utils/markdown/plugins/markdown-add-components/processor.js +0 -1
  286. package/dist/_app_/utils/markdown/plugins/markdown-checkbox/index.js +0 -1
  287. package/dist/_app_/utils/markdown/plugins/markdown-checkbox/parser.js +0 -1
  288. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/index.js +0 -1
  289. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js +0 -1
  290. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/plugins.js +0 -1
  291. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/processing-plugins.js +0 -1
  292. package/dist/_app_/utils/markdown/plugins/markdown-default-plugins/ui-plugins.js +0 -1
  293. package/dist/_app_/utils/markdown/plugins/markdown-tooltip/index.js +0 -1
  294. package/dist/_app_/utils/markdown/plugins/markdown-tooltip/parser.js +0 -1
  295. package/dist/_app_/utils/markdown/plugins/markdown-tooltip/plugin.js +0 -1
  296. package/dist/_app_/utils/markdown/plugins/to-dom.js +0 -1
  297. package/dist/_app_/utils/markdown/remark/remark-prismjs.js +0 -1
  298. package/dist/_app_/utils/maybe-unwrap-proxy.js +0 -1
  299. package/dist/_app_/utils/number/index.js +0 -1
  300. package/dist/_app_/utils/number/number.js +0 -1
  301. package/dist/_app_/utils/popover/index.js +0 -1
  302. package/dist/_app_/utils/popover/types.js +0 -1
  303. package/dist/_app_/utils/predicate/common_predicates.js +0 -1
  304. package/dist/_app_/utils/predicate/index.js +0 -1
  305. package/dist/_app_/utils/predicate/lodash_predicates.js +0 -1
  306. package/dist/_app_/utils/range/index.js +0 -1
  307. package/dist/_app_/utils/timer.js +0 -1
  308. package/dist/_app_/utils/transition.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-field-password.js","sources":["../../src/components/eui-field-password.gts"],"sourcesContent":["import { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { and, eq, 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';\nimport useState from '../helpers/use-state.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiFieldPasswordSignature {\n Element: HTMLInputElement;\n Args: {\n value?: string;\n id?: string;\n type?: 'dual' | 'text' | 'password';\n fullWidth?: boolean;\n compressed?: boolean;\n isLoading?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n clear?: EuiFormControlLayoutSignature['Args']['clear'];\n inputRef?: (element: HTMLInputElement) => void;\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n placeholder?: string;\n };\n Blocks: {\n prepend: [unknown, string];\n append: [unknown, string];\n };\n}\n\nconst EuiFieldPassword: TemplateOnlyComponent<EuiFieldPasswordSignature> =\n <template>\n {{#let\n (argOrDefault @type \"dual\")\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |type hasPrepend hasAppend inputId|\n }}\n {{#let\n (useState (if (eq type \"dual\") \"password\" type))\n as |inputTypeState|\n }}\n {{#let\n (classNames\n (if @fullWidth \"euiFieldPassword--fullWidth\")\n (if @compressed \"euiFieldPassword--compressed\")\n (if\n (or hasPrepend hasAppend (eq type \"dual\"))\n \"euiFieldPassword--inGroup\"\n )\n (if @isLoading \"euiFieldPassword--isLoading\")\n (if (eq type \"dual\") \"euiFieldPassword--withToggle\")\n \"euiFieldPassword\"\n )\n as |classes|\n }}\n {{#let (eq inputTypeState.value \"text\") as |isVisible|}}\n <EuiFormControlLayout\n @icon=\"lock\"\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend (or hasAppend (eq type \"dual\"))}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n type={{inputTypeState.value}}\n value={{@value}}\n disabled={{@disabled}}\n placeholder={{@placeholder}}\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n {{#if (eq type \"dual\")}}\n <EuiButtonIcon\n tabindex=\"-1\"\n @iconType={{if isVisible \"eyeClosed\" \"eye\"}}\n {{on\n \"click\"\n (fn\n inputTypeState.setState (if isVisible \"password\" \"text\")\n )\n }}\n />\n {{/if}}\n </:append>\n </EuiFormControlLayout>\n {{/let}}\n {{/let}}\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiFieldPassword;\n"],"names":["EuiFieldPassword","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","not","randomId","useState","eq","classNames","or","EuiFormControlLayout","validatableControl","didInsert","optional","EuiButtonIcon","on","fn","templateOnly"],"mappings":";;;;;;;;;;;;;;;;AA0CA,MAAMA,gBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAyEA,s6DAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,EAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,oBAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,aAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-field-password.js","sources":["../../src/components/eui-field-password.gts"],"sourcesContent":["import { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { and, eq, 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';\nimport useState from '../helpers/use-state.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiFieldPasswordSignature {\n Element: HTMLInputElement;\n Args: {\n value?: string;\n id?: string;\n type?: 'dual' | 'text' | 'password';\n fullWidth?: boolean;\n compressed?: boolean;\n isLoading?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n clear?: EuiFormControlLayoutSignature['Args']['clear'];\n inputRef?: (element: HTMLInputElement) => void;\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n placeholder?: string;\n };\n Blocks: {\n prepend: [unknown, string];\n append: [unknown, string];\n };\n}\n\nconst EuiFieldPassword: TemplateOnlyComponent<EuiFieldPasswordSignature> =\n <template>\n {{#let\n (argOrDefault @type \"dual\")\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |type hasPrepend hasAppend inputId|\n }}\n {{#let\n (useState (if (eq type \"dual\") \"password\" type))\n as |inputTypeState|\n }}\n {{#let\n (classNames\n (if @fullWidth \"euiFieldPassword--fullWidth\")\n (if @compressed \"euiFieldPassword--compressed\")\n (if\n (or hasPrepend hasAppend (eq type \"dual\"))\n \"euiFieldPassword--inGroup\"\n )\n (if @isLoading \"euiFieldPassword--isLoading\")\n (if (eq type \"dual\") \"euiFieldPassword--withToggle\")\n \"euiFieldPassword\"\n )\n as |classes|\n }}\n {{#let (eq inputTypeState.value \"text\") as |isVisible|}}\n <EuiFormControlLayout\n @icon=\"lock\"\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend (or hasAppend (eq type \"dual\"))}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n type={{inputTypeState.value}}\n value={{@value}}\n disabled={{@disabled}}\n placeholder={{@placeholder}}\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n ...attributes\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n {{#if (eq type \"dual\")}}\n <EuiButtonIcon\n tabindex=\"-1\"\n @iconType={{if isVisible \"eyeClosed\" \"eye\"}}\n {{on\n \"click\"\n (fn\n inputTypeState.setState (if isVisible \"password\" \"text\")\n )\n }}\n />\n {{/if}}\n </:append>\n </EuiFormControlLayout>\n {{/let}}\n {{/let}}\n {{/let}}\n {{/let}}\n </template>;\n\nexport default EuiFieldPassword;\n"],"names":["EuiFieldPassword","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","not","randomId","useState","eq","classNames","or","EuiFormControlLayout","validatableControl","didInsert","optional","EuiButtonIcon","on","fn","templateOnly"],"mappings":";;;;;;;;;;;;;;;;AA0CA,MAAMA,gBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAyEA,s6DAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,EAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,oBAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,aAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -28,19 +28,19 @@ class EuiFieldSearch extends Component {
28
28
  return null;
29
29
  });
30
30
  }
31
- #inputElement = (i(this, "inputElement"), undefined);
31
+ #inputElement = (i(this, "inputElement"), void 0);
32
32
  static {
33
33
  g(this.prototype, "value", [tracked], function () {
34
34
  return this.args.value || (this.args.defaultValue ? `${this.args.defaultValue}` : '');
35
35
  });
36
36
  }
37
- #value = (i(this, "value"), undefined);
37
+ #value = (i(this, "value"), void 0);
38
38
  static {
39
39
  g(this.prototype, "incremental", [argOrDefaultDecorator(false)], function () {
40
40
  return false;
41
41
  });
42
42
  }
43
- #incremental = (i(this, "incremental"), undefined);
43
+ #incremental = (i(this, "incremental"), void 0);
44
44
  setValue(e) {
45
45
  const value = e.target.value;
46
46
  if (this.value !== value) {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-field-search.js","sources":["../../src/components/eui-field-search.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport { Browser } from '../utils/browser/index.ts';\nimport { keys } from '../utils/keys.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\n\nlet isSearchSupported = false;\n\n/**\n * You can find more typing on the template\n */\ntype EuiFieldSearchArgs = {\n value?: string;\n defaultValue?: string;\n\n /**\n * When `true` the search will be executed (that is, the `onSearch` will be called) as the\n * user types.\n */\n incremental?: boolean;\n /**\n * Optional callback method called on open and close with a single `isOpen` parameter\n */\n onKeyUp?: (e: KeyboardEvent) => void;\n onSearch: (value: string) => void;\n\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n fullWidth?: boolean;\n compressed?: boolean;\n isLoading?: boolean;\n isClearable?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n placeholder?: string;\n id?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n};\n\nexport interface EuiFieldSearchSignature {\n Element: HTMLInputElement;\n Args: EuiFieldSearchArgs;\n Blocks: {\n prepend: [...EuiFormControlLayoutSignature['Blocks']['prepend'], string];\n field: [];\n append: [...EuiFormControlLayoutSignature['Blocks']['append'], string];\n };\n}\n\nexport default class EuiFieldSearch extends Component<EuiFieldSearchSignature> {\n @tracked inputElement: HTMLInputElement | null = null;\n @tracked value: string | undefined =\n this.args.value ||\n (this.args.defaultValue ? `${this.args.defaultValue}` : '');\n\n @argOrDefaultDecorator(false) incremental = false;\n\n @action\n setValue(e: Event): void {\n const value = (e.target as HTMLInputElement).value;\n\n if (this.value !== value) {\n this.value = value;\n }\n\n this.args.onSearch?.(this.value);\n }\n\n @action\n onKeyUp(\n incremental: boolean,\n onSearch: (value: string) => void,\n e: KeyboardEvent\n ): void {\n this.value = (e.target as HTMLInputElement).value;\n\n if (this.args.onKeyUp) {\n this.args.onKeyUp(e);\n\n if (e.defaultPrevented) {\n return;\n }\n }\n\n if (\n onSearch &&\n ((e.key !== keys.ENTER && incremental) ||\n (e.key === keys.ENTER && !isSearchSupported))\n ) {\n onSearch((e.target as HTMLInputElement).value);\n }\n }\n\n @action\n didUpdateValue() {\n this.value = this.args.value;\n }\n\n @action\n onClear(): void {\n const nativeInputValue = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n );\n const nativeInputValueSetter = nativeInputValue\n ? nativeInputValue.set\n : undefined;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(this.inputElement, '');\n }\n\n // dispatch input event, with IE11 support/fallback\n let event;\n\n if ('Event' in window && typeof Event === 'function') {\n event = new Event('input', {\n bubbles: true,\n cancelable: false\n });\n } else {\n // IE11\n event = document.createEvent('Event');\n event.initEvent('input', true, false);\n }\n\n if (this.inputElement) {\n if (event) {\n this.inputElement.dispatchEvent(event);\n }\n\n // set focus on the search field\n this.inputElement.focus();\n this.inputElement.dispatchEvent(new Event('change'));\n }\n\n this.value = '';\n\n if (this.args.onSearch && this.incremental) {\n this.args.onSearch('');\n }\n }\n\n @action\n didInsertInput(inputRef: HTMLInputElement): void {\n this.inputElement = inputRef;\n isSearchSupported = Browser.isEventSupported('search', this.inputElement);\n }\n\n <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @fullWidth \"euiFieldSearch--fullWidth\")\n (if @compressed \"euiFieldSearch--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldSearch--inGroup\")\n (if @isLoading \"euiFieldSearch--isLoading\")\n (if\n (and (argOrDefault @isClearable true) @value)\n \"euiFieldSearch--isClearable\"\n )\n \"euiFieldSearch\"\n )\n as |classes|\n }}\n <EuiFormControlLayout\n @icon=\"search\"\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @disabled={{@disabled}}\n @clear={{if\n (and\n @isClearable\n @value\n (not @readOnly)\n (and (not @isDisabled) (not @disabled))\n )\n this.onClear\n }}\n @compressed={{@compressed}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n value={{this.value}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n ...attributes\n {{on \"keyup\" (fn this.onKeyUp this.incremental @onSearch)}}\n {{on \"search\" this.setValue}}\n {{on \"change\" this.setValue}}\n {{didInsert this.didInsertInput}}\n {{didUpdate this.didUpdateValue @value}}\n {{validatableControl @isInvalid}}\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["isSearchSupported","EuiFieldSearch","Component","g","prototype","tracked","i","void 0","args","value","defaultValue","argOrDefaultDecorator","setValue","e","target","onSearch","n","action","onKeyUp","incremental","defaultPrevented","key","keys","ENTER","didUpdateValue","onClear","nativeInputValue","Object","getOwnPropertyDescriptor","HTMLInputElement","nativeInputValueSetter","set","undefined","call","inputElement","event","window","Event","bubbles","cancelable","document","createEvent","initEvent","dispatchEvent","focus","didInsertInput","inputRef","Browser","isEventSupported","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","EuiFormControlLayout","on","fn","didInsert","didUpdate","validatableControl"],"mappings":"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"}
1
+ {"version":3,"file":"eui-field-search.js","sources":["../../src/components/eui-field-search.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nimport { and, not, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport { Browser } from '../utils/browser/index.ts';\nimport { keys } from '../utils/keys.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\n\nlet isSearchSupported = false;\n\n/**\n * You can find more typing on the template\n */\ntype EuiFieldSearchArgs = {\n value?: string;\n defaultValue?: string;\n\n /**\n * When `true` the search will be executed (that is, the `onSearch` will be called) as the\n * user types.\n */\n incremental?: boolean;\n /**\n * Optional callback method called on open and close with a single `isOpen` parameter\n */\n onKeyUp?: (e: KeyboardEvent) => void;\n onSearch: (value: string) => void;\n\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n fullWidth?: boolean;\n compressed?: boolean;\n isLoading?: boolean;\n isClearable?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n placeholder?: string;\n id?: string;\n isInvalid?: boolean;\n isDisabled?: boolean;\n};\n\nexport interface EuiFieldSearchSignature {\n Element: HTMLInputElement;\n Args: EuiFieldSearchArgs;\n Blocks: {\n prepend: [...EuiFormControlLayoutSignature['Blocks']['prepend'], string];\n field: [];\n append: [...EuiFormControlLayoutSignature['Blocks']['append'], string];\n };\n}\n\nexport default class EuiFieldSearch extends Component<EuiFieldSearchSignature> {\n @tracked inputElement: HTMLInputElement | null = null;\n @tracked value: string | undefined =\n this.args.value ||\n (this.args.defaultValue ? `${this.args.defaultValue}` : '');\n\n @argOrDefaultDecorator(false) incremental = false;\n\n @action\n setValue(e: Event): void {\n const value = (e.target as HTMLInputElement).value;\n\n if (this.value !== value) {\n this.value = value;\n }\n\n this.args.onSearch?.(this.value);\n }\n\n @action\n onKeyUp(\n incremental: boolean,\n onSearch: (value: string) => void,\n e: KeyboardEvent\n ): void {\n this.value = (e.target as HTMLInputElement).value;\n\n if (this.args.onKeyUp) {\n this.args.onKeyUp(e);\n\n if (e.defaultPrevented) {\n return;\n }\n }\n\n if (\n onSearch &&\n ((e.key !== keys.ENTER && incremental) ||\n (e.key === keys.ENTER && !isSearchSupported))\n ) {\n onSearch((e.target as HTMLInputElement).value);\n }\n }\n\n @action\n didUpdateValue() {\n this.value = this.args.value;\n }\n\n @action\n onClear(): void {\n const nativeInputValue = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n 'value'\n );\n const nativeInputValueSetter = nativeInputValue\n ? nativeInputValue.set\n : undefined;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(this.inputElement, '');\n }\n\n // dispatch input event, with IE11 support/fallback\n let event;\n\n if ('Event' in window && typeof Event === 'function') {\n event = new Event('input', {\n bubbles: true,\n cancelable: false\n });\n } else {\n // IE11\n event = document.createEvent('Event');\n event.initEvent('input', true, false);\n }\n\n if (this.inputElement) {\n if (event) {\n this.inputElement.dispatchEvent(event);\n }\n\n // set focus on the search field\n this.inputElement.focus();\n this.inputElement.dispatchEvent(new Event('change'));\n }\n\n this.value = '';\n\n if (this.args.onSearch && this.incremental) {\n this.args.onSearch('');\n }\n }\n\n @action\n didInsertInput(inputRef: HTMLInputElement): void {\n this.inputElement = inputRef;\n isSearchSupported = Browser.isEventSupported('search', this.inputElement);\n }\n\n <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @fullWidth \"euiFieldSearch--fullWidth\")\n (if @compressed \"euiFieldSearch--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldSearch--inGroup\")\n (if @isLoading \"euiFieldSearch--isLoading\")\n (if\n (and (argOrDefault @isClearable true) @value)\n \"euiFieldSearch--isClearable\"\n )\n \"euiFieldSearch\"\n )\n as |classes|\n }}\n <EuiFormControlLayout\n @icon=\"search\"\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @disabled={{@disabled}}\n @clear={{if\n (and\n @isClearable\n @value\n (not @readOnly)\n (and (not @isDisabled) (not @disabled))\n )\n this.onClear\n }}\n @compressed={{@compressed}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n class={{classes}}\n value={{this.value}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n ...attributes\n {{on \"keyup\" (fn this.onKeyUp this.incremental @onSearch)}}\n {{on \"search\" this.setValue}}\n {{on \"change\" this.setValue}}\n {{didInsert this.didInsertInput}}\n {{didUpdate this.didUpdateValue @value}}\n {{validatableControl @isInvalid}}\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["isSearchSupported","EuiFieldSearch","Component","g","prototype","tracked","i","void 0","args","value","defaultValue","argOrDefaultDecorator","setValue","e","target","onSearch","n","action","onKeyUp","incremental","defaultPrevented","key","keys","ENTER","didUpdateValue","onClear","nativeInputValue","Object","getOwnPropertyDescriptor","HTMLInputElement","nativeInputValueSetter","set","undefined","call","inputElement","event","window","Event","bubbles","cancelable","document","createEvent","initEvent","dispatchEvent","focus","didInsertInput","inputRef","Browser","isEventSupported","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","EuiFormControlLayout","on","fn","didInsert","didUpdate","validatableControl"],"mappings":"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"}
@@ -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-field-text.js","sources":["../../src/components/eui-field-text.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';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiFieldTextSignature {\n Element: HTMLInputElement;\n Args: {\n id?: string;\n value?: string;\n placeholder?: string;\n icon?: EuiFormControlLayoutSignature['Args']['icon'];\n fullWidth?: boolean;\n isLoading?: boolean;\n compressed?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n clear?: () => void;\n controlOnly?: boolean;\n isInvalid?: boolean;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n };\n Blocks: {\n prepend: [...EuiFormControlLayoutSignature['Blocks']['prepend'], string];\n append: [...EuiFormControlLayoutSignature['Blocks']['append'], string];\n };\n}\n\nconst EuiFieldText: TemplateOnlyComponent<EuiFieldTextSignature> = <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldText--withIcon\")\n (if @fullWidth \"euiFieldText--fullWidth\")\n (if @compressed \"euiFieldText--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldText--inGroup\")\n (if @isLoading \"euiFieldText--isLoading\")\n \"euiFieldText\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n ...attributes\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n readonly={{@readOnly}}\n ...attributes\n {{validatableControl @isInvalid}}\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiFieldText;\n"],"names":["EuiFieldText","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AAuCA,MAAMA,YAA6D,GAAAC,oBAAA,CAAAC,kBAAA,CAgEnE,gjDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-field-text.js","sources":["../../src/components/eui-field-text.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';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiFormControlLayout from './eui-form-control-layout.gts';\n\nimport type { EuiFormControlLayoutSignature } from './eui-form-control-layout';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiFieldTextSignature {\n Element: HTMLInputElement;\n Args: {\n id?: string;\n value?: string;\n placeholder?: string;\n icon?: EuiFormControlLayoutSignature['Args']['icon'];\n fullWidth?: boolean;\n isLoading?: boolean;\n compressed?: boolean;\n readOnly?: boolean;\n disabled?: boolean;\n clear?: () => void;\n controlOnly?: boolean;\n isInvalid?: boolean;\n inputRef?: (element: HTMLInputElement | null) => void;\n isFakePrependBlock?: boolean;\n isFakeAppendBlock?: boolean;\n };\n Blocks: {\n prepend: [...EuiFormControlLayoutSignature['Blocks']['prepend'], string];\n append: [...EuiFormControlLayoutSignature['Blocks']['append'], string];\n };\n}\n\nconst EuiFieldText: TemplateOnlyComponent<EuiFieldTextSignature> = <template>\n {{#let\n (and (not (argOrDefault @isFakePrependBlock false)) (has-block \"prepend\"))\n (and (not (argOrDefault @isFakeAppendBlock false)) (has-block \"append\"))\n (argOrDefault @id (randomId))\n as |hasPrepend hasAppend inputId|\n }}\n {{#let\n (classNames\n (if @icon \"euiFieldText--withIcon\")\n (if @fullWidth \"euiFieldText--fullWidth\")\n (if @compressed \"euiFieldText--compressed\")\n (if (or hasPrepend hasAppend) \"euiFieldText--inGroup\")\n (if @isLoading \"euiFieldText--isLoading\")\n \"euiFieldText\"\n )\n as |classes|\n }}\n {{#if @controlOnly}}\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n ...attributes\n {{validatableControl @isInvalid}}\n {{didInsert (optional @inputRef)}}\n />\n {{else}}\n <EuiFormControlLayout\n @icon={{@icon}}\n @clear={{@clear}}\n @fullWidth={{@fullWidth}}\n @isLoading={{@isLoading}}\n @compressed={{@compressed}}\n @readOnly={{@readOnly}}\n @disabled={{@disabled}}\n @useGroup={{or hasPrepend hasAppend}}\n >\n <:prepend as |prependClasses|>\n {{yield prependClasses inputId to=\"prepend\"}}\n </:prepend>\n <:field>\n <input\n id={{inputId}}\n value={{@value}}\n class={{classes}}\n disabled={{@disabled}}\n type=\"text\"\n placeholder={{@placeholder}}\n readonly={{@readOnly}}\n ...attributes\n {{validatableControl @isInvalid}}\n />\n </:field>\n <:append as |appendClasses|>\n {{yield appendClasses inputId to=\"append\"}}\n </:append>\n </EuiFormControlLayout>\n {{/if}}\n {{/let}}\n {{/let}}\n</template>;\n\nexport default EuiFieldText;\n"],"names":["EuiFieldText","setComponentTemplate","precompileTemplate","strictMode","scope","and","not","argOrDefault","randomId","classNames","or","validatableControl","didInsert","optional","EuiFormControlLayout","templateOnly"],"mappings":";;;;;;;;;;;;AAuCA,MAAMA,YAA6D,GAAAC,oBAAA,CAAAC,kBAAA,CAgEnE,gjDAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,kBAAA;IAAAC,SAAA;IAAAC,QAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -23,31 +23,31 @@ class EuiFilePickerComponent extends Component {
23
23
  return null;
24
24
  });
25
25
  }
26
- #fileInput = (i(this, "fileInput"), undefined);
26
+ #fileInput = (i(this, "fileInput"), void 0);
27
27
  static {
28
28
  g(this.prototype, "promptText", [tracked], function () {
29
29
  return null;
30
30
  });
31
31
  }
32
- #promptText = (i(this, "promptText"), undefined);
32
+ #promptText = (i(this, "promptText"), void 0);
33
33
  static {
34
34
  g(this.prototype, "isHoveringDrop", [tracked], function () {
35
35
  return false;
36
36
  });
37
37
  }
38
- #isHoveringDrop = (i(this, "isHoveringDrop"), undefined);
38
+ #isHoveringDrop = (i(this, "isHoveringDrop"), void 0);
39
39
  static {
40
40
  g(this.prototype, "initialPromptText", [argOrDefaultDecorator('Select or drag and drop a file')]);
41
41
  }
42
- #initialPromptText = (i(this, "initialPromptText"), undefined);
42
+ #initialPromptText = (i(this, "initialPromptText"), 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, "display", [argOrDefaultDecorator('')]);
49
49
  }
50
- #display = (i(this, "display"), undefined);
50
+ #display = (i(this, "display"), void 0);
51
51
  showDrop() {
52
52
  if (!this.args.disabled) {
53
53
  this.isHoveringDrop = true;
@@ -1 +1 @@
1
- {"version":3,"file":"eui-file-picker.js","sources":["../../src/components/eui-file-picker.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, eq, not, notEq, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiProgress from './eui-progress.gts';\n\nimport type { displayMapping } from '../utils/css-mappings/eui-file-picker.ts';\n\nexport type EuiFilePickerDisplay = keyof typeof displayMapping;\n\n/**\n * You can find more typing on the template\n */\ntype EuiFilePicker = {\n id?: string;\n name?: string;\n class?: string;\n /**\n * The content that appears in the dropzone if no file is attached\n */\n initialPromptText?: Component | string | null;\n /**\n * Use as a callback to access the HTML FileList API\n */\n onChange?: (files: FileList | null) => void;\n /**\n * Reduces the size to a typical (compressed) input\n */\n compressed?: boolean;\n /**\n * Size or type of display;\n * `default` for normal height, similar to other controls;\n * `large` for taller size\n */\n display?: EuiFilePickerDisplay;\n fullWidth?: boolean;\n isInvalid?: boolean;\n isLoading?: boolean;\n disabled?: boolean;\n multiple?: boolean;\n\n /**\n * Optionally pass a fn to get the instance of the component to access it programatically\n */\n ref?: (c: typeof EuiFilePickerComponent) => void;\n};\n\nexport interface EuiFilePickerSignature {\n Element: HTMLInputElement;\n Args: EuiFilePicker;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFilePickerComponent extends Component<EuiFilePickerSignature> {\n @tracked fileInput: HTMLInputElement | null = null;\n @tracked promptText: string | null | undefined = null;\n @tracked isHoveringDrop = false;\n\n @argOrDefaultDecorator('Select or drag and drop a file') initialPromptText!:\n | Component\n | string\n | null;\n\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator('') display!: string;\n\n @action\n showDrop(): void {\n if (!this.args.disabled) {\n this.isHoveringDrop = true;\n }\n }\n\n @action\n hideDrop(): void {\n this.isHoveringDrop = false;\n }\n\n @action\n handleChange(): void {\n if (!this.fileInput) return;\n\n if (this.fileInput.files && this.fileInput.files.length > 1) {\n this.promptText = `${this.fileInput.files.length} files selected`;\n // TODO: Change when EuiI18n is available\n // <EuiI18n\n // token=\"euiFilePicker.filesSelected\"\n // default=\"{fileCount} files selected\"\n // values={{ fileCount: this.fileInput.files.length }}\n // />\n } else if (this.fileInput.files && this.fileInput.files.length === 0) {\n this.promptText = null;\n } else {\n this.promptText = this.fileInput.value.split('\\\\').pop();\n }\n\n const { onChange } = this.args;\n\n if (onChange) {\n onChange(this.fileInput.files);\n }\n }\n\n @action\n removeFiles(e?: MouseEvent): void {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (!this.fileInput) return;\n\n this.fileInput.value = '';\n this.handleChange();\n }\n\n @action\n didInsertInput(inputRef: HTMLInputElement): void {\n this.fileInput = inputRef;\n this.args.ref?.(this as any as typeof EuiFilePickerComponent);\n }\n\n <template>\n {{#let\n (classNames\n (if @compressed \"euiFilePicker--compressed\")\n (if @fullWidth \"euiFilePicker--fullWidth\")\n (if @isInvalid \"euiFilePicker--isInvalid\")\n (if @isLoading \"euiFilePicker--isLoading\")\n display=this.display\n componentName=\"EuiFilePicker\"\n )\n (argOrDefault @id (randomId))\n as |classes inputId|\n }}\n {{#let\n (if inputId (concat inputId \"-filePicker__prompt\") (randomId))\n (notEq this.promptText null)\n (eq this.display \"default\")\n as |promptId isOverridingInitialPrompt normalFormControl|\n }}\n <div\n class=\"{{classes}}\n {{if this.isHoveringDrop 'euiFilePicker__showDrop'}}\n {{if isOverridingInitialPrompt 'euiFilePicker--hasFiles'}}\"\n >\n <div class=\"euiFilePicker__wrap\">\n <input\n type=\"file\"\n id={{inputId}}\n name={{@name}}\n class=\"euiFilePicker__input\"\n disabled={{@disabled}}\n aria-describedby={{promptId}}\n multiple={{@multiple}}\n {{on \"dragover\" this.showDrop}}\n {{on \"dragleave\" this.hideDrop}}\n {{on \"drop\" this.hideDrop}}\n {{on \"change\" this.handleChange}}\n {{didInsert this.didInsertInput}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n <div class=\"euiFilePicker__prompt\" id={{promptId}}>\n <EuiIcon\n @iconClasses=\"euiFilePicker__icon\"\n @type=\"importAction\"\n @size={{if true \"m\" \"l\"}}\n aria-hidden=\"true\"\n />\n <div class=\"euiFilePicker__promptText\">\n {{if this.promptText this.promptText this.initialPromptText}}\n </div>\n {{#if (and @isLoading normalFormControl)}}\n <EuiLoadingSpinner class=\"euiFilePicker__loadingSpinner\" />\n {{else if isOverridingInitialPrompt}}\n {{#if normalFormControl}}\n <button\n type=\"button\"\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n {{on \"click\" this.removeFiles}}\n >\n <EuiIcon\n @iconClasses=\"euiFilePicker__clearIcon\"\n @type=\"cross\"\n />\n </button>\n {{else}}\n <EuiButtonEmpty\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n @size=\"xs\"\n {{on \"click\" this.removeFiles}}\n >\n Remove\n </EuiButtonEmpty>\n {{/if}}\n {{/if}}\n {{#if (and (not normalFormControl) @isLoading)}}\n <EuiProgress @size=\"xs\" @color=\"accent\" position=\"absolute\" />\n {{/if}}\n </div>\n </div>\n </div>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["EuiFilePickerComponent","Component","g","prototype","tracked","i","void 0","argOrDefaultDecorator","showDrop","args","disabled","isHoveringDrop","n","action","hideDrop","handleChange","fileInput","files","length","promptText","value","split","pop","onChange","removeFiles","e","stopPropagation","preventDefault","didInsertInput","inputRef","ref","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","randomId","concat","notEq","eq","on","didInsert","validatableControl","EuiIcon","and","EuiLoadingSpinner","EuiButtonEmpty","not","EuiProgress"],"mappings":"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"}
1
+ {"version":3,"file":"eui-file-picker.js","sources":["../../src/components/eui-file-picker.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport { and, eq, not, notEq, or } from 'ember-truth-helpers';\n\nimport randomId from '../-private/random-id.ts';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiProgress from './eui-progress.gts';\n\nimport type { displayMapping } from '../utils/css-mappings/eui-file-picker.ts';\n\nexport type EuiFilePickerDisplay = keyof typeof displayMapping;\n\n/**\n * You can find more typing on the template\n */\ntype EuiFilePicker = {\n id?: string;\n name?: string;\n class?: string;\n /**\n * The content that appears in the dropzone if no file is attached\n */\n initialPromptText?: Component | string | null;\n /**\n * Use as a callback to access the HTML FileList API\n */\n onChange?: (files: FileList | null) => void;\n /**\n * Reduces the size to a typical (compressed) input\n */\n compressed?: boolean;\n /**\n * Size or type of display;\n * `default` for normal height, similar to other controls;\n * `large` for taller size\n */\n display?: EuiFilePickerDisplay;\n fullWidth?: boolean;\n isInvalid?: boolean;\n isLoading?: boolean;\n disabled?: boolean;\n multiple?: boolean;\n\n /**\n * Optionally pass a fn to get the instance of the component to access it programatically\n */\n ref?: (c: typeof EuiFilePickerComponent) => void;\n};\n\nexport interface EuiFilePickerSignature {\n Element: HTMLInputElement;\n Args: EuiFilePicker;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFilePickerComponent extends Component<EuiFilePickerSignature> {\n @tracked fileInput: HTMLInputElement | null = null;\n @tracked promptText: string | null | undefined = null;\n @tracked isHoveringDrop = false;\n\n @argOrDefaultDecorator('Select or drag and drop a file') initialPromptText!:\n | Component\n | string\n | null;\n\n @argOrDefaultDecorator(false) compressed!: boolean;\n @argOrDefaultDecorator('') display!: string;\n\n @action\n showDrop(): void {\n if (!this.args.disabled) {\n this.isHoveringDrop = true;\n }\n }\n\n @action\n hideDrop(): void {\n this.isHoveringDrop = false;\n }\n\n @action\n handleChange(): void {\n if (!this.fileInput) return;\n\n if (this.fileInput.files && this.fileInput.files.length > 1) {\n this.promptText = `${this.fileInput.files.length} files selected`;\n // TODO: Change when EuiI18n is available\n // <EuiI18n\n // token=\"euiFilePicker.filesSelected\"\n // default=\"{fileCount} files selected\"\n // values={{ fileCount: this.fileInput.files.length }}\n // />\n } else if (this.fileInput.files && this.fileInput.files.length === 0) {\n this.promptText = null;\n } else {\n this.promptText = this.fileInput.value.split('\\\\').pop();\n }\n\n const { onChange } = this.args;\n\n if (onChange) {\n onChange(this.fileInput.files);\n }\n }\n\n @action\n removeFiles(e?: MouseEvent): void {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n if (!this.fileInput) return;\n\n this.fileInput.value = '';\n this.handleChange();\n }\n\n @action\n didInsertInput(inputRef: HTMLInputElement): void {\n this.fileInput = inputRef;\n this.args.ref?.(this as any as typeof EuiFilePickerComponent);\n }\n\n <template>\n {{#let\n (classNames\n (if @compressed \"euiFilePicker--compressed\")\n (if @fullWidth \"euiFilePicker--fullWidth\")\n (if @isInvalid \"euiFilePicker--isInvalid\")\n (if @isLoading \"euiFilePicker--isLoading\")\n display=this.display\n componentName=\"EuiFilePicker\"\n )\n (argOrDefault @id (randomId))\n as |classes inputId|\n }}\n {{#let\n (if inputId (concat inputId \"-filePicker__prompt\") (randomId))\n (notEq this.promptText null)\n (eq this.display \"default\")\n as |promptId isOverridingInitialPrompt normalFormControl|\n }}\n <div\n class=\"{{classes}}\n {{if this.isHoveringDrop 'euiFilePicker__showDrop'}}\n {{if isOverridingInitialPrompt 'euiFilePicker--hasFiles'}}\"\n >\n <div class=\"euiFilePicker__wrap\">\n <input\n type=\"file\"\n id={{inputId}}\n name={{@name}}\n class=\"euiFilePicker__input\"\n disabled={{@disabled}}\n aria-describedby={{promptId}}\n multiple={{@multiple}}\n {{on \"dragover\" this.showDrop}}\n {{on \"dragleave\" this.hideDrop}}\n {{on \"drop\" this.hideDrop}}\n {{on \"change\" this.handleChange}}\n {{didInsert this.didInsertInput}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n <div class=\"euiFilePicker__prompt\" id={{promptId}}>\n <EuiIcon\n @iconClasses=\"euiFilePicker__icon\"\n @type=\"importAction\"\n @size={{if true \"m\" \"l\"}}\n aria-hidden=\"true\"\n />\n <div class=\"euiFilePicker__promptText\">\n {{if this.promptText this.promptText this.initialPromptText}}\n </div>\n {{#if (and @isLoading normalFormControl)}}\n <EuiLoadingSpinner class=\"euiFilePicker__loadingSpinner\" />\n {{else if isOverridingInitialPrompt}}\n {{#if normalFormControl}}\n <button\n type=\"button\"\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n {{on \"click\" this.removeFiles}}\n >\n <EuiIcon\n @iconClasses=\"euiFilePicker__clearIcon\"\n @type=\"cross\"\n />\n </button>\n {{else}}\n <EuiButtonEmpty\n aria-label=\"Clear selected files\"\n class=\"euiFilePicker__clearButton\"\n @size=\"xs\"\n {{on \"click\" this.removeFiles}}\n >\n Remove\n </EuiButtonEmpty>\n {{/if}}\n {{/if}}\n {{#if (and (not normalFormControl) @isLoading)}}\n <EuiProgress @size=\"xs\" @color=\"accent\" position=\"absolute\" />\n {{/if}}\n </div>\n </div>\n </div>\n {{/let}}\n {{/let}}\n </template>\n}\n"],"names":["EuiFilePickerComponent","Component","g","prototype","tracked","i","void 0","argOrDefaultDecorator","showDrop","args","disabled","isHoveringDrop","n","action","hideDrop","handleChange","fileInput","files","length","promptText","value","split","pop","onChange","removeFiles","e","stopPropagation","preventDefault","didInsertInput","inputRef","ref","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","randomId","concat","notEq","eq","on","didInsert","validatableControl","EuiIcon","and","EuiLoadingSpinner","EuiButtonEmpty","not","EuiProgress"],"mappings":"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"}
@@ -69,11 +69,11 @@ class EuiFlyoutComponent extends Component {
69
69
  return isWithinMinBreakpoint(typeof window === 'undefined' ? -Infinity : window.innerWidth, this.pushMinBreakpoint);
70
70
  });
71
71
  }
72
- #windowIsLargeEnoughToPush = (i(this, "windowIsLargeEnoughToPush"), undefined);
72
+ #windowIsLargeEnoughToPush = (i(this, "windowIsLargeEnoughToPush"), void 0);
73
73
  static {
74
74
  g(this.prototype, "dimensions", [tracked]);
75
75
  }
76
- #dimensions = (i(this, "dimensions"), undefined);
76
+ #dimensions = (i(this, "dimensions"), void 0);
77
77
  get as() {
78
78
  return this.args.as ?? 'div';
79
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-flyout.js","sources":["../../src/components/eui-flyout.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier as modBuilder } from 'ember-modifier';\nimport styleModifier from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport outsideClickDetectorModifier from '../modifiers/outside-click-detector.ts';\nimport resizeObserverModifier from '../modifiers/resize-observer.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-flyout.ts';\nimport { keysOf } from './common.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiFlyoutArgs = {\n closeAriaLabel?: string;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n isFocusTrapActive?: boolean;\n\n as?: string;\n\n size?: number | string;\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n hideCloseButton?: boolean;\n\n closeButtonProps?: {\n className?: string;\n onClick?: (e: MouseEvent) => void;\n classes?: string;\n };\n\n closeButtonAriaLabel?: string;\n\n onClose: () => void;\n\n maxWidth?: boolean | number;\n\n maskProps?: Record<string, unknown>;\n\n type?: string;\n\n pushMinBreakpoint?: number | EuiBreakpointSize;\n\n shouldSelfFocus?: boolean;\n\n focusTrapOptions?: {\n allowOutsideClick?: boolean;\n clickOutsideDeactivates?: boolean;\n initialFocus?: string | HTMLElement | (() => HTMLElement);\n fallbackFocus?: string | HTMLElement | (() => HTMLElement);\n escapeDeactivates?: boolean;\n returnFocusOnDeactivate?: boolean;\n preventScroll?: boolean;\n };\n};\n\nconst classesModifier = modBuilder(\n (\n _element: Element,\n _pos,\n {\n type,\n isPushed,\n side,\n dimensions = {},\n functionToCallOnWindowResize\n }: {\n type: string;\n isPushed: boolean;\n side: string;\n dimensions?: { width?: number };\n functionToCallOnWindowResize: () => void;\n }\n ) => {\n // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)\n document.body.classList.add('euiBody--hasFlyout');\n\n /**\n * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element\n */\n if (type === 'push') {\n // Only add the event listener if we'll need to accommodate with padding\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n if (isPushed && dimensions.width) {\n if (side === 'right') {\n document.body.style.paddingRight = `${dimensions.width}px`;\n } else if (side === 'left') {\n document.body.style.paddingLeft = `${dimensions.width}px`;\n }\n }\n }\n\n return () => {\n document.body.classList.remove('euiBody--hasFlyout');\n\n if (type === 'push') {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n\n if (side === 'right') {\n document.body.style.paddingRight = '';\n } else if (side === 'left') {\n document.body.style.paddingLeft = '';\n }\n }\n };\n }\n);\n\nexport const SIZES = keysOf(sizeMapping);\nexport type EuiFlyoutSize = (typeof SIZES)[number];\n\nfunction isEuiFlyoutSizeNamed(value: any): value is EuiFlyoutSize {\n return SIZES.includes(value);\n}\n\nexport interface EuiFlyoutSignature {\n Element: any;\n Args: EuiFlyoutArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFlyoutComponent extends Component<EuiFlyoutSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.pushMinBreakpoint\n );\n\n @tracked dimensions?: { width?: number; height?: number };\n\n get as() {\n return this.args.as ?? 'div';\n }\n\n get hideCloseButton() {\n return this.args.hideCloseButton ?? false;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'inside';\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get side() {\n return this.args.side ?? 'right';\n }\n\n get size() {\n return this.args.size ?? 'm';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get maxWidth() {\n return this.args.maxWidth ?? false;\n }\n\n get type() {\n return this.args.type ?? 'overlay';\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? false;\n }\n\n get role() {\n return this.args.role ?? 'dialog';\n }\n\n get pushMinBreakpoint() {\n return this.args.pushMinBreakpoint ?? 'l';\n }\n\n get isPushed() {\n return this.type === 'push' && this.windowIsLargeEnoughToPush;\n }\n\n get styles() {\n let newStyle: { [key: string]: unknown } = {};\n\n if (this.maxWidth !== false) {\n const value =\n typeof this.maxWidth === 'number'\n ? `${this.maxWidth}px`\n : this.maxWidth;\n\n newStyle = { maxWidth: value };\n }\n\n if (!isEuiFlyoutSizeNamed(this.size) && newStyle) {\n newStyle['width'] = this.size;\n } else {\n newStyle = { width: this.size };\n }\n\n return newStyle;\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.pushMinBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n @action\n onClose() {\n this.args.onClose?.();\n }\n\n @action\n onButtonCloseClicked(e: MouseEvent) {\n this.onClose();\n this.args.closeButtonProps?.onClick?.(e);\n }\n\n @action\n onResize(dimensions: { width: number; height: number }) {\n this.dimensions = dimensions;\n }\n\n <template>\n {{#let\n (classNames\n (if (eq this.maxWidth true) \"euiFlyout--maxWidth-default\")\n componentName=\"EuiFlyout\"\n type=this.type\n side=this.side\n size=this.size\n padding=this.paddingSize\n )\n (classNames\n \"euiFlyout__closeButton\"\n (concat \"euiFlyout__closeButton--\" this.closeButtonPosition)\n (or @closeButtonProps.className @closeButtonProps.classes)\n )\n (modifier\n focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=this.isPushed\n focusTrapOptions=(argOrDefault\n @focusTrapOptions\n (hash\n allowOutsideClick=true clickOutsideDeactivates=(not this.ownFocus)\n )\n )\n )\n (modifier\n outsideClickDetectorModifier\n isDisabled=(or this.isPushed (not this.outsideClickCloses))\n onOutsideClick=this.onClose\n )\n (modifier styleModifier this.styles)\n (modifier onKey \"Escape\" this.onClose)\n (modifier\n classesModifier\n type=this.type\n isPushed=this.isPushed\n side=this.side\n dimensions=this.dimensions\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n )\n (modifier resizeObserverModifier onResize=this.onResize)\n (element this.as)\n as |classes closeButtonClasses focusTrapModifier outsideClickDetector currentStyles onEscape classesModifier resizeObserver TheElement|\n }}\n\n {{#if (and this.ownFocus (not this.isPushed))}}\n <EuiOverlayMask @headerZindexLocation=\"below\" @onClick={{this.onClose}}>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{!@glint-expect-error}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiOverlayMask>\n {{else if (not this.isPushed)}}\n <EuiPortal>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiPortal>\n {{else}}\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{onEscape}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["classesModifier","modBuilder","_element","_pos","type","isPushed","side","dimensions","functionToCallOnWindowResize","document","body","classList","add","window","addEventListener","width","style","paddingRight","paddingLeft","remove","removeEventListener","SIZES","keysOf","sizeMapping","isEuiFlyoutSizeNamed","value","includes","EuiFlyoutComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","pushMinBreakpoint","i","void 0","as","args","hideCloseButton","closeButtonPosition","ownFocus","size","paddingSize","maxWidth","outsideClickCloses","role","windowIsLargeEnoughToPush","styles","newStyle","throttle","n","action","onClose","onButtonCloseClicked","e","closeButtonProps","onClick","onResize","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","concat","or","focusTrap","argOrDefault","hash","not","outsideClickDetectorModifier","styleModifier","onKey","resizeObserverModifier","element","and","EuiOverlayMask","EuiButtonIcon","on","EuiPortal"],"mappings":"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"}
1
+ {"version":3,"file":"eui-flyout.js","sources":["../../src/components/eui-flyout.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { throttle } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { modifier as modBuilder } from 'ember-modifier';\nimport styleModifier from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport outsideClickDetectorModifier from '../modifiers/outside-click-detector.ts';\nimport resizeObserverModifier from '../modifiers/resize-observer.ts';\nimport { isWithinMinBreakpoint } from '../utils/breakpoint.ts';\nimport { sizeMapping } from '../utils/css-mappings/eui-flyout.ts';\nimport { keysOf } from './common.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\nimport EuiPortal from './eui-portal.gts';\n\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\n\nexport type EuiFlyoutArgs = {\n closeAriaLabel?: string;\n /**\n * Shows the navigation flyout\n */\n isOpen?: boolean;\n /**\n * Keeps navigation flyout visible and push `<body>` content via padding\n */\n isDocked?: boolean;\n /**\n * Named breakpoint or pixel value for customizing the minimum window width to enable docking\n */\n dockedBreakpoint?: EuiBreakpointSize | number;\n /**\n * Keeps the display of toggle button when in docked state\n */\n showButtonIfDocked?: boolean;\n\n isFocusTrapActive?: boolean;\n\n as?: string;\n\n size?: number | string;\n\n side?: 'left' | 'right';\n\n role?: null | string;\n\n ownFocus?: boolean;\n\n outsideClickCloses?: boolean;\n\n closeButtonPosition?: 'outside' | 'inside';\n\n paddingSize?: string;\n\n hideCloseButton?: boolean;\n\n closeButtonProps?: {\n className?: string;\n onClick?: (e: MouseEvent) => void;\n classes?: string;\n };\n\n closeButtonAriaLabel?: string;\n\n onClose: () => void;\n\n maxWidth?: boolean | number;\n\n maskProps?: Record<string, unknown>;\n\n type?: string;\n\n pushMinBreakpoint?: number | EuiBreakpointSize;\n\n shouldSelfFocus?: boolean;\n\n focusTrapOptions?: {\n allowOutsideClick?: boolean;\n clickOutsideDeactivates?: boolean;\n initialFocus?: string | HTMLElement | (() => HTMLElement);\n fallbackFocus?: string | HTMLElement | (() => HTMLElement);\n escapeDeactivates?: boolean;\n returnFocusOnDeactivate?: boolean;\n preventScroll?: boolean;\n };\n};\n\nconst classesModifier = modBuilder(\n (\n _element: Element,\n _pos,\n {\n type,\n isPushed,\n side,\n dimensions = {},\n functionToCallOnWindowResize\n }: {\n type: string;\n isPushed: boolean;\n side: string;\n dimensions?: { width?: number };\n functionToCallOnWindowResize: () => void;\n }\n ) => {\n // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)\n document.body.classList.add('euiBody--hasFlyout');\n\n /**\n * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element\n */\n if (type === 'push') {\n // Only add the event listener if we'll need to accommodate with padding\n window.addEventListener('resize', functionToCallOnWindowResize);\n\n if (isPushed && dimensions.width) {\n if (side === 'right') {\n document.body.style.paddingRight = `${dimensions.width}px`;\n } else if (side === 'left') {\n document.body.style.paddingLeft = `${dimensions.width}px`;\n }\n }\n }\n\n return () => {\n document.body.classList.remove('euiBody--hasFlyout');\n\n if (type === 'push') {\n window.removeEventListener('resize', functionToCallOnWindowResize);\n\n if (side === 'right') {\n document.body.style.paddingRight = '';\n } else if (side === 'left') {\n document.body.style.paddingLeft = '';\n }\n }\n };\n }\n);\n\nexport const SIZES = keysOf(sizeMapping);\nexport type EuiFlyoutSize = (typeof SIZES)[number];\n\nfunction isEuiFlyoutSizeNamed(value: any): value is EuiFlyoutSize {\n return SIZES.includes(value);\n}\n\nexport interface EuiFlyoutSignature {\n Element: any;\n Args: EuiFlyoutArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiFlyoutComponent extends Component<EuiFlyoutSignature> {\n @tracked windowIsLargeEnoughToPush = isWithinMinBreakpoint(\n typeof window === 'undefined' ? -Infinity : window.innerWidth,\n this.pushMinBreakpoint\n );\n\n @tracked dimensions?: { width?: number; height?: number };\n\n get as() {\n return this.args.as ?? 'div';\n }\n\n get hideCloseButton() {\n return this.args.hideCloseButton ?? false;\n }\n\n get closeButtonPosition() {\n return this.args.closeButtonPosition ?? 'inside';\n }\n\n get ownFocus() {\n return this.args.ownFocus ?? true;\n }\n\n get side() {\n return this.args.side ?? 'right';\n }\n\n get size() {\n return this.args.size ?? 'm';\n }\n\n get paddingSize() {\n return this.args.paddingSize ?? 'l';\n }\n\n get maxWidth() {\n return this.args.maxWidth ?? false;\n }\n\n get type() {\n return this.args.type ?? 'overlay';\n }\n\n get outsideClickCloses() {\n return this.args.outsideClickCloses ?? false;\n }\n\n get role() {\n return this.args.role ?? 'dialog';\n }\n\n get pushMinBreakpoint() {\n return this.args.pushMinBreakpoint ?? 'l';\n }\n\n get isPushed() {\n return this.type === 'push' && this.windowIsLargeEnoughToPush;\n }\n\n get styles() {\n let newStyle: { [key: string]: unknown } = {};\n\n if (this.maxWidth !== false) {\n const value =\n typeof this.maxWidth === 'number'\n ? `${this.maxWidth}px`\n : this.maxWidth;\n\n newStyle = { maxWidth: value };\n }\n\n if (!isEuiFlyoutSizeNamed(this.size) && newStyle) {\n newStyle['width'] = this.size;\n } else {\n newStyle = { width: this.size };\n }\n\n return newStyle;\n }\n\n @action\n functionToCallOnWindowResize() {\n throttle(() => {\n if (isWithinMinBreakpoint(window.innerWidth, this.pushMinBreakpoint)) {\n this.windowIsLargeEnoughToPush = true;\n } else {\n this.windowIsLargeEnoughToPush = false;\n }\n }, 50);\n }\n\n @action\n onClose() {\n this.args.onClose?.();\n }\n\n @action\n onButtonCloseClicked(e: MouseEvent) {\n this.onClose();\n this.args.closeButtonProps?.onClick?.(e);\n }\n\n @action\n onResize(dimensions: { width: number; height: number }) {\n this.dimensions = dimensions;\n }\n\n <template>\n {{#let\n (classNames\n (if (eq this.maxWidth true) \"euiFlyout--maxWidth-default\")\n componentName=\"EuiFlyout\"\n type=this.type\n side=this.side\n size=this.size\n padding=this.paddingSize\n )\n (classNames\n \"euiFlyout__closeButton\"\n (concat \"euiFlyout__closeButton--\" this.closeButtonPosition)\n (or @closeButtonProps.className @closeButtonProps.classes)\n )\n (modifier\n focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=this.isPushed\n focusTrapOptions=(argOrDefault\n @focusTrapOptions\n (hash\n allowOutsideClick=true clickOutsideDeactivates=(not this.ownFocus)\n )\n )\n )\n (modifier\n outsideClickDetectorModifier\n isDisabled=(or this.isPushed (not this.outsideClickCloses))\n onOutsideClick=this.onClose\n )\n (modifier styleModifier this.styles)\n (modifier onKey \"Escape\" this.onClose)\n (modifier\n classesModifier\n type=this.type\n isPushed=this.isPushed\n side=this.side\n dimensions=this.dimensions\n functionToCallOnWindowResize=this.functionToCallOnWindowResize\n )\n (modifier resizeObserverModifier onResize=this.onResize)\n (element this.as)\n as |classes closeButtonClasses focusTrapModifier outsideClickDetector currentStyles onEscape classesModifier resizeObserver TheElement|\n }}\n\n {{#if (and this.ownFocus (not this.isPushed))}}\n <EuiOverlayMask @headerZindexLocation=\"below\" @onClick={{this.onClose}}>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{!@glint-expect-error}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiOverlayMask>\n {{else if (not this.isPushed)}}\n <EuiPortal>\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n </EuiPortal>\n {{else}}\n <TheElement\n role={{this.role}}\n class={{classes}}\n tabindex={{-1}}\n {{currentStyles}}\n {{!@glint-expect-error}}\n {{focusTrapModifier}}\n {{outsideClickDetector}}\n {{onEscape}}\n {{classesModifier}}\n {{resizeObserver}}\n ...attributes\n >\n {{#if (and @onClose (not @hideCloseButton))}}\n <EuiButtonIcon\n @display={{if\n (eq this.closeButtonPosition \"outside\")\n \"fill\"\n \"empty\"\n }}\n @iconType=\"cross\"\n @color=\"text\"\n aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}\n data-test-subj=\"euiFlyoutCloseButton\"\n class={{closeButtonClasses}}\n {{on \"click\" this.onButtonCloseClicked}}\n />\n {{/if}}\n {{yield}}\n </TheElement>\n {{/if}}\n {{/let}}\n </template>\n}\n"],"names":["classesModifier","modBuilder","_element","_pos","type","isPushed","side","dimensions","functionToCallOnWindowResize","document","body","classList","add","window","addEventListener","width","style","paddingRight","paddingLeft","remove","removeEventListener","SIZES","keysOf","sizeMapping","isEuiFlyoutSizeNamed","value","includes","EuiFlyoutComponent","Component","g","prototype","tracked","isWithinMinBreakpoint","Infinity","innerWidth","pushMinBreakpoint","i","void 0","as","args","hideCloseButton","closeButtonPosition","ownFocus","size","paddingSize","maxWidth","outsideClickCloses","role","windowIsLargeEnoughToPush","styles","newStyle","throttle","n","action","onClose","onButtonCloseClicked","e","closeButtonProps","onClick","onResize","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","concat","or","focusTrap","argOrDefault","hash","not","outsideClickDetectorModifier","styleModifier","onKey","resizeObserverModifier","element","and","EuiOverlayMask","EuiButtonIcon","on","EuiPortal"],"mappings":"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"}
@@ -5,8 +5,8 @@ import { on } from '@ember/modifier';
5
5
  import { action } from '@ember/object';
6
6
  import didInsert from '@ember/render-modifiers/modifiers/did-insert';
7
7
  import { inject } from '@ember/service';
8
- import optional from 'ember-composable-helpers/helpers/optional';
9
- import queue from 'ember-composable-helpers/helpers/queue';
8
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
9
+ import queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';
10
10
  import argOrDefault from '../helpers/arg-or-default.js';
11
11
  import classNames from '../helpers/class-names.js';
12
12
  import Timer from '../utils/timer.js';
@@ -20,7 +20,7 @@ class EuiGlobalToastList extends Component {
20
20
  static {
21
21
  g(this.prototype, "euiToaster", [inject]);
22
22
  }
23
- #euiToaster = (i(this, "euiToaster"), undefined);
23
+ #euiToaster = (i(this, "euiToaster"), void 0);
24
24
  dismissTimeoutIds = [];
25
25
  toastIdToTimerMap = {};
26
26
  isScrollingToBottom = false;
@@ -36,7 +36,7 @@ class EuiGlobalToastList extends Component {
36
36
  return {};
37
37
  });
38
38
  }
39
- #toastIdToDismissedMap = (i(this, "toastIdToDismissedMap"), undefined);
39
+ #toastIdToDismissedMap = (i(this, "toastIdToDismissedMap"), void 0);
40
40
  startScrollingToBottom() {
41
41
  this.isScrollingToBottom = true;
42
42
  const scrollToBottom = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-global-toast-list.js","sources":["../../src/components/eui-global-toast-list.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { get } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { inject as service } from '@ember/service';\nimport type Owner from '@ember/owner';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport queue from 'ember-composable-helpers/helpers/queue';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport Timer from '../utils/timer.ts';\nimport EuiToast from './eui-toast.gts';\n\nimport type EuiToasterService from '../services/eui-toaster';\nimport type {\n EuiToastProps,\n EuiToastPropsWithId\n} from '../services/eui-toaster';\nimport type { sideMapping } from '../utils/css-mappings/eui-global-toast-list.ts';\n\ntype EuiToastSide = keyof typeof sideMapping;\n\ntype GlobalToastListArgs = {\n dismissToast?: (this: EuiGlobalToastList, toast: EuiToastProps) => void;\n toastLifeTimeMs: number;\n\n /*\n Determines which side of the browser window the toasts should appear\n Default: 'right'\n\n */\n side?: EuiToastSide;\n};\n\nconst TOAST_FADE_OUT_MS = 250;\n\nexport interface EuiGlobalToastListItemSignature {\n Element: HTMLDivElement;\n Args: GlobalToastListArgs;\n}\n\nexport default class EuiGlobalToastList extends Component<EuiGlobalToastListItemSignature> {\n @service declare euiToaster: EuiToasterService;\n\n dismissTimeoutIds: number[] = [];\n toastIdToTimerMap: { [toastId: string]: Timer } = {};\n\n isScrollingToBottom = false;\n isScrolledToBottom = true;\n isUserInteracting = false;\n\n // See [Return Value](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame#Return_value)\n // for information on initial value of 0\n isScrollingAnimationFrame = 0;\n startScrollingAnimationFrame = 0;\n\n listElement: Element | null = null;\n @tracked toastIdToDismissedMap: {\n [toastId: string]: boolean;\n } = {};\n\n startScrollingToBottom(): void {\n this.isScrollingToBottom = true;\n\n const scrollToBottom = () => {\n // Although we cancel the requestAnimationFrame in componentWillUnmount,\n // it's possible for this.listElement to become null in the meantime\n if (!this.listElement) {\n return;\n }\n\n const position = this.listElement.scrollTop;\n const destination =\n this.listElement.scrollHeight - this.listElement.clientHeight;\n const distanceToDestination = destination - position;\n\n if (distanceToDestination < 5) {\n this.listElement.scrollTop = destination;\n this.isScrollingToBottom = false;\n this.isScrolledToBottom = true;\n\n return;\n }\n\n this.listElement.scrollTop = position + distanceToDestination * 0.25;\n\n if (this.isScrollingToBottom) {\n this.isScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n };\n\n this.startScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n\n @action\n didInsertToast(toast: EuiToastPropsWithId): void {\n this.scheduleToastForDismissal(toast);\n\n if (!this.isUserInteracting) {\n // If the user has scrolled up the toast list then we don't want to annoy them by scrolling\n // all the way back to the bottom.\n if (this.isScrolledToBottom) {\n this.startScrollingToBottom();\n }\n }\n }\n\n @action\n onMouseEnter(): void {\n // Stop scrolling to bottom if we're in mid-scroll, because the user wants to interact with\n // the list.\n this.isScrollingToBottom = false;\n this.isUserInteracting = true;\n\n // Don't let toasts dismiss themselves while the user is interacting with them.\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.pause();\n }\n }\n }\n\n @action\n onMouseLeave(): void {\n this.isUserInteracting = false;\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.resume();\n }\n }\n }\n\n @action\n onScroll(): void {\n if (this.listElement) {\n this.isScrolledToBottom =\n this.listElement.scrollHeight - this.listElement.scrollTop ===\n this.listElement.clientHeight;\n }\n }\n\n scheduleAllToastsForDismissal(): void {\n this.euiToaster.toasts.forEach((toast) => {\n if (!this.toastIdToTimerMap[toast.id]) {\n this.scheduleToastForDismissal(toast);\n }\n });\n }\n\n @action\n scheduleToastForDismissal(toast: EuiToastPropsWithId): void {\n // Start fading the toast out once its lifetime elapses.\n this.toastIdToTimerMap[toast.id] = new Timer(\n this.dismissToast.bind(this, toast),\n toast.toastLifeTimeMs != null\n ? toast.toastLifeTimeMs\n : this.args.toastLifeTimeMs\n );\n }\n\n @action\n dismissToast(toast: EuiToastPropsWithId): void {\n // Remove the toast after it's done fading out.\n this.dismissTimeoutIds.push(\n window.setTimeout(() => {\n // Because this is wrapped in a setTimeout, and because React does not guarantee when\n // state updates happen, it is possible to double-dismiss a toast\n // including by double-clicking the \"x\" button on the toast\n // so, first check to make sure we haven't already dismissed this toast\n if (this.toastIdToTimerMap.hasOwnProperty(toast.id)) {\n if (this.args.dismissToast) {\n this.args.dismissToast.apply(this, [toast]);\n }\n\n this.toastIdToTimerMap[toast.id]!.clear();\n delete this.toastIdToTimerMap[toast.id];\n\n delete this.toastIdToDismissedMap[toast.id];\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap\n };\n this.euiToaster.remove(toast);\n }\n }, TOAST_FADE_OUT_MS)\n );\n\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap,\n [toast.id]: true\n };\n }\n\n constructor(owner: Owner, args: GlobalToastListArgs) {\n super(owner, args);\n this.scheduleAllToastsForDismissal();\n }\n\n @action\n didInsert(element: Element): void {\n this.listElement = element;\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.isScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.isScrollingAnimationFrame);\n }\n\n if (this.startScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.startScrollingAnimationFrame);\n }\n\n this.dismissTimeoutIds.forEach(clearTimeout);\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.clear();\n }\n }\n }\n\n <template>\n <div\n aria-live=\"polite\"\n role=\"region\"\n class={{classNames\n componentName=\"EuiGlobalToastList\"\n side=(argOrDefault @side \"right\")\n }}\n style={{unless this.euiToaster.toasts.length \"padding:0px;\"}}\n {{didInsert this.didInsert}}\n {{on \"scroll\" this.onScroll}}\n {{on \"mouseenter\" this.onMouseEnter}}\n {{on \"mouseleave\" this.onMouseLeave}}\n ...attributes\n >\n {{#each this.euiToaster.toasts as |toast|}}\n <EuiToast\n class={{classNames\n \"euiGlobalToastListItem\"\n (if\n (get this.toastIdToDismissedMap toast.id)\n \"euiGlobalToastListItem-isDismissed\"\n )\n }}\n @title={{toast.title}}\n @useMarkdownFormat={{toast.useMarkdownFormat}}\n @body={{toast.body}}\n @color={{toast.color}}\n @iconType={{toast.iconType}}\n @onClose={{queue\n (fn this.dismissToast toast)\n (optional toast.onClose)\n }}\n {{didInsert (fn this.didInsertToast toast)}}\n {{on \"focus\" this.onMouseEnter}}\n {{on \"blur\" this.onMouseLeave}}\n />\n {{/each}}\n </div>\n </template>\n}\n"],"names":["TOAST_FADE_OUT_MS","EuiGlobalToastList","Component","g","prototype","service","i","void 0","dismissTimeoutIds","toastIdToTimerMap","isScrollingToBottom","isScrolledToBottom","isUserInteracting","isScrollingAnimationFrame","startScrollingAnimationFrame","listElement","tracked","startScrollingToBottom","scrollToBottom","position","scrollTop","destination","scrollHeight","clientHeight","distanceToDestination","window","requestAnimationFrame","didInsertToast","toast","scheduleToastForDismissal","n","action","onMouseEnter","toastId","hasOwnProperty","timer","pause","onMouseLeave","resume","onScroll","scheduleAllToastsForDismissal","euiToaster","toasts","forEach","id","Timer","dismissToast","bind","toastLifeTimeMs","args","push","setTimeout","apply","clear","toastIdToDismissedMap","remove","constructor","owner","didInsert","element","willDestroy","cancelAnimationFrame","clearTimeout","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","on","EuiToast","get","queue","fn","optional"],"mappings":"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"}
1
+ {"version":3,"file":"eui-global-toast-list.js","sources":["../../src/components/eui-global-toast-list.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { get } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport { inject as service } from '@ember/service';\nimport type Owner from '@ember/owner';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport Timer from '../utils/timer.ts';\nimport EuiToast from './eui-toast.gts';\n\nimport type EuiToasterService from '../services/eui-toaster';\nimport type {\n EuiToastProps,\n EuiToastPropsWithId\n} from '../services/eui-toaster';\nimport type { sideMapping } from '../utils/css-mappings/eui-global-toast-list.ts';\n\ntype EuiToastSide = keyof typeof sideMapping;\n\ntype GlobalToastListArgs = {\n dismissToast?: (this: EuiGlobalToastList, toast: EuiToastProps) => void;\n toastLifeTimeMs: number;\n\n /*\n Determines which side of the browser window the toasts should appear\n Default: 'right'\n\n */\n side?: EuiToastSide;\n};\n\nconst TOAST_FADE_OUT_MS = 250;\n\nexport interface EuiGlobalToastListItemSignature {\n Element: HTMLDivElement;\n Args: GlobalToastListArgs;\n}\n\nexport default class EuiGlobalToastList extends Component<EuiGlobalToastListItemSignature> {\n @service declare euiToaster: EuiToasterService;\n\n dismissTimeoutIds: number[] = [];\n toastIdToTimerMap: { [toastId: string]: Timer } = {};\n\n isScrollingToBottom = false;\n isScrolledToBottom = true;\n isUserInteracting = false;\n\n // See [Return Value](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame#Return_value)\n // for information on initial value of 0\n isScrollingAnimationFrame = 0;\n startScrollingAnimationFrame = 0;\n\n listElement: Element | null = null;\n @tracked toastIdToDismissedMap: {\n [toastId: string]: boolean;\n } = {};\n\n startScrollingToBottom(): void {\n this.isScrollingToBottom = true;\n\n const scrollToBottom = () => {\n // Although we cancel the requestAnimationFrame in componentWillUnmount,\n // it's possible for this.listElement to become null in the meantime\n if (!this.listElement) {\n return;\n }\n\n const position = this.listElement.scrollTop;\n const destination =\n this.listElement.scrollHeight - this.listElement.clientHeight;\n const distanceToDestination = destination - position;\n\n if (distanceToDestination < 5) {\n this.listElement.scrollTop = destination;\n this.isScrollingToBottom = false;\n this.isScrolledToBottom = true;\n\n return;\n }\n\n this.listElement.scrollTop = position + distanceToDestination * 0.25;\n\n if (this.isScrollingToBottom) {\n this.isScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n };\n\n this.startScrollingAnimationFrame =\n window.requestAnimationFrame(scrollToBottom);\n }\n\n @action\n didInsertToast(toast: EuiToastPropsWithId): void {\n this.scheduleToastForDismissal(toast);\n\n if (!this.isUserInteracting) {\n // If the user has scrolled up the toast list then we don't want to annoy them by scrolling\n // all the way back to the bottom.\n if (this.isScrolledToBottom) {\n this.startScrollingToBottom();\n }\n }\n }\n\n @action\n onMouseEnter(): void {\n // Stop scrolling to bottom if we're in mid-scroll, because the user wants to interact with\n // the list.\n this.isScrollingToBottom = false;\n this.isUserInteracting = true;\n\n // Don't let toasts dismiss themselves while the user is interacting with them.\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.pause();\n }\n }\n }\n\n @action\n onMouseLeave(): void {\n this.isUserInteracting = false;\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.resume();\n }\n }\n }\n\n @action\n onScroll(): void {\n if (this.listElement) {\n this.isScrolledToBottom =\n this.listElement.scrollHeight - this.listElement.scrollTop ===\n this.listElement.clientHeight;\n }\n }\n\n scheduleAllToastsForDismissal(): void {\n this.euiToaster.toasts.forEach((toast) => {\n if (!this.toastIdToTimerMap[toast.id]) {\n this.scheduleToastForDismissal(toast);\n }\n });\n }\n\n @action\n scheduleToastForDismissal(toast: EuiToastPropsWithId): void {\n // Start fading the toast out once its lifetime elapses.\n this.toastIdToTimerMap[toast.id] = new Timer(\n this.dismissToast.bind(this, toast),\n toast.toastLifeTimeMs != null\n ? toast.toastLifeTimeMs\n : this.args.toastLifeTimeMs\n );\n }\n\n @action\n dismissToast(toast: EuiToastPropsWithId): void {\n // Remove the toast after it's done fading out.\n this.dismissTimeoutIds.push(\n window.setTimeout(() => {\n // Because this is wrapped in a setTimeout, and because React does not guarantee when\n // state updates happen, it is possible to double-dismiss a toast\n // including by double-clicking the \"x\" button on the toast\n // so, first check to make sure we haven't already dismissed this toast\n if (this.toastIdToTimerMap.hasOwnProperty(toast.id)) {\n if (this.args.dismissToast) {\n this.args.dismissToast.apply(this, [toast]);\n }\n\n this.toastIdToTimerMap[toast.id]!.clear();\n delete this.toastIdToTimerMap[toast.id];\n\n delete this.toastIdToDismissedMap[toast.id];\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap\n };\n this.euiToaster.remove(toast);\n }\n }, TOAST_FADE_OUT_MS)\n );\n\n this.toastIdToDismissedMap = {\n ...this.toastIdToDismissedMap,\n [toast.id]: true\n };\n }\n\n constructor(owner: Owner, args: GlobalToastListArgs) {\n super(owner, args);\n this.scheduleAllToastsForDismissal();\n }\n\n @action\n didInsert(element: Element): void {\n this.listElement = element;\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n if (this.isScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.isScrollingAnimationFrame);\n }\n\n if (this.startScrollingAnimationFrame !== 0) {\n window.cancelAnimationFrame(this.startScrollingAnimationFrame);\n }\n\n this.dismissTimeoutIds.forEach(clearTimeout);\n\n for (const toastId in this.toastIdToTimerMap) {\n if (this.toastIdToTimerMap.hasOwnProperty(toastId)) {\n const timer = this.toastIdToTimerMap[toastId];\n\n timer?.clear();\n }\n }\n }\n\n <template>\n <div\n aria-live=\"polite\"\n role=\"region\"\n class={{classNames\n componentName=\"EuiGlobalToastList\"\n side=(argOrDefault @side \"right\")\n }}\n style={{unless this.euiToaster.toasts.length \"padding:0px;\"}}\n {{didInsert this.didInsert}}\n {{on \"scroll\" this.onScroll}}\n {{on \"mouseenter\" this.onMouseEnter}}\n {{on \"mouseleave\" this.onMouseLeave}}\n ...attributes\n >\n {{#each this.euiToaster.toasts as |toast|}}\n <EuiToast\n class={{classNames\n \"euiGlobalToastListItem\"\n (if\n (get this.toastIdToDismissedMap toast.id)\n \"euiGlobalToastListItem-isDismissed\"\n )\n }}\n @title={{toast.title}}\n @useMarkdownFormat={{toast.useMarkdownFormat}}\n @body={{toast.body}}\n @color={{toast.color}}\n @iconType={{toast.iconType}}\n @onClose={{queue\n (fn this.dismissToast toast)\n (optional toast.onClose)\n }}\n {{didInsert (fn this.didInsertToast toast)}}\n {{on \"focus\" this.onMouseEnter}}\n {{on \"blur\" this.onMouseLeave}}\n />\n {{/each}}\n </div>\n </template>\n}\n"],"names":["TOAST_FADE_OUT_MS","EuiGlobalToastList","Component","g","prototype","service","i","void 0","dismissTimeoutIds","toastIdToTimerMap","isScrollingToBottom","isScrolledToBottom","isUserInteracting","isScrollingAnimationFrame","startScrollingAnimationFrame","listElement","tracked","startScrollingToBottom","scrollToBottom","position","scrollTop","destination","scrollHeight","clientHeight","distanceToDestination","window","requestAnimationFrame","didInsertToast","toast","scheduleToastForDismissal","n","action","onMouseEnter","toastId","hasOwnProperty","timer","pause","onMouseLeave","resume","onScroll","scheduleAllToastsForDismissal","euiToaster","toasts","forEach","id","Timer","dismissToast","bind","toastLifeTimeMs","args","push","setTimeout","apply","clear","toastIdToDismissedMap","remove","constructor","owner","didInsert","element","willDestroy","cancelAnimationFrame","clearTimeout","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","argOrDefault","on","EuiToast","get","queue","fn","optional"],"mappings":";;;;;;;;;;;;;;;;;AAuCA,MAAMA,iBAAoB,GAAA,GAAA;AAOX,MAAMC,2BAA2BC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACvDC,MAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAEDC,EAAAA,iBAAmB,GAAW,EAAE;EAChCC,iBAAA,GAAkD,EAAG;AAErDC,EAAAA,mBAAA,GAAsB,KAAM;AAC5BC,EAAAA,kBAAA,GAAqB,IAAK;AAC1BC,EAAAA,iBAAA,GAAoB,KAAM;AAE1B;AACA;AACAC,EAAAA,yBAAA,GAA4B,CAAE;AAC9BC,EAAAA,4BAAA,GAA+B,CAAE;AAEjCC,EAAAA,WAAa,GAAiB,IAAK;AAAA,EAAA;IAAAZ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,uBAAA,EAAA,CAClCY,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAEG,EAAG;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,sBAAA,IAAAV,CAAA,CAAA,IAAA,EAAA,uBAAA,CAAA,EAAAC,MAAA;AAEPU,EAAAA,sBAAAA,GAA+B;IAC7B,IAAI,CAACP,mBAAmB,GAAG,IAAA;IAE3B,MAAMQ,cAAiB,GAAAA,MAAA;AACrB;AACA;AACA,MAAA,IAAI,CAAC,IAAI,CAACH,WAAW,EAAE;AACrB,QAAA;AACF;AAEA,MAAA,MAAMI,QAAW,GAAA,IAAI,CAACJ,WAAW,CAACK,SAAS;AAC3C,MAAA,MAAMC,WAAA,GACJ,IAAI,CAACN,WAAW,CAACO,YAAY,GAAG,IAAI,CAACP,WAAW,CAACQ,YAAY;AAC/D,MAAA,MAAMC,wBAAwBH,WAAc,GAAAF,QAAA;MAE5C,IAAIK,wBAAwB,CAAG,EAAA;AAC7B,QAAA,IAAI,CAACT,WAAW,CAACK,SAAS,GAAGC,WAAA;QAC7B,IAAI,CAACX,mBAAmB,GAAG,KAAA;QAC3B,IAAI,CAACC,kBAAkB,GAAG,IAAA;AAE1B,QAAA;AACF;MAEA,IAAI,CAACI,WAAW,CAACK,SAAS,GAAGD,WAAWK,qBAAwB,GAAA,IAAA;MAEhE,IAAI,IAAI,CAACd,mBAAmB,EAAE;QAC5B,IAAI,CAACG,yBAAyB,GAC5BY,MAAA,CAAOC,qBAAqB,CAACR,cAAA,CAAA;AACjC;KACF;IAEA,IAAI,CAACJ,4BAA4B,GAC/BW,MAAA,CAAOC,qBAAqB,CAACR,cAAA,CAAA;AACjC;EAGAS,cAAAA,CAAeC,KAA0B,EAAQ;AAC/C,IAAA,IAAI,CAACC,yBAAyB,CAACD,KAAA,CAAA;AAE/B,IAAA,IAAI,CAAC,IAAI,CAAChB,iBAAiB,EAAE;AAC3B;AACA;MACA,IAAI,IAAI,CAACD,kBAAkB,EAAE;QAC3B,IAAI,CAACM,sBAAsB,EAAA;AAC7B;AACF;AACF;AAAA,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,gBAAA,EAAA,CAXC2B,MAAA,CAAA,CAAA;AAAA;AAcDC,EAAAA,YAAAA,GAAqB;AACnB;AACA;IACA,IAAI,CAACtB,mBAAmB,GAAG,KAAA;IAC3B,IAAI,CAACE,iBAAiB,GAAG,IAAA;AAEzB;AACA,IAAA,KAAK,MAAMqB,OAAA,IAAW,IAAI,CAACxB,iBAAiB,EAAE;MAC5C,IAAI,IAAI,CAACA,iBAAiB,CAACyB,cAAc,CAACD,OAAU,CAAA,EAAA;AAClD,QAAA,MAAME,KAAQ,GAAA,IAAI,CAAC1B,iBAAiB,CAACwB,OAAQ,CAAA;QAE7CE,KAAO,EAAAC,KAAA,EAAA;AACT;AACF;AACF;AAAA,EAAA;IAAAN,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,cAAA,EAAA,CAfC2B,MAAA,CAAA,CAAA;AAAA;AAkBDM,EAAAA,YAAAA,GAAqB;IACnB,IAAI,CAACzB,iBAAiB,GAAG,KAAA;AAEzB,IAAA,KAAK,MAAMqB,OAAA,IAAW,IAAI,CAACxB,iBAAiB,EAAE;MAC5C,IAAI,IAAI,CAACA,iBAAiB,CAACyB,cAAc,CAACD,OAAU,CAAA,EAAA;AAClD,QAAA,MAAME,KAAQ,GAAA,IAAI,CAAC1B,iBAAiB,CAACwB,OAAQ,CAAA;QAE7CE,KAAO,EAAAG,MAAA,EAAA;AACT;AACF;AACF;AAAA,EAAA;IAAAR,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,cAAA,EAAA,CAXC2B,MAAA,CAAA,CAAA;AAAA;AAcDQ,EAAAA,QAAAA,GAAiB;IACf,IAAI,IAAI,CAACxB,WAAW,EAAE;AACpB,MAAA,IAAI,CAACJ,kBAAkB,GACrB,IAAI,CAACI,WAAW,CAACO,YAAY,GAAG,IAAI,CAACP,WAAW,CAACK,SAAS,KAC1D,IAAI,CAACL,WAAW,CAACQ,YAAY;AACjC;AACF;AAAA,EAAA;IAAAO,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,UAAA,EAAA,CAPC2B,MAAA,CAAA,CAAA;AAAA;AASDS,EAAAA,6BAAAA,GAAsC;IACpC,IAAI,CAACC,UAAU,CAACC,MAAM,CAACC,OAAO,CAAEf,KAAA,IAAA;MAC9B,IAAI,CAAC,IAAI,CAACnB,iBAAiB,CAACmB,KAAM,CAAAgB,EAAE,CAAC,EAAE;AACrC,QAAA,IAAI,CAACf,yBAAyB,CAACD,KAAA,CAAA;AACjC;AACF,KAAA,CAAA;AACF;EAGAC,yBAAAA,CAA0BD,KAA0B,EAAQ;AAC1D;AACA,IAAA,IAAI,CAACnB,iBAAiB,CAACmB,KAAA,CAAMgB,EAAE,CAAC,GAAG,IAAIC,KACrC,CAAA,IAAI,CAACC,YAAY,CAACC,IAAI,CAAC,IAAI,EAAEnB,KAAA,CAAA,EAC7BA,KAAM,CAAAoB,eAAe,IAAI,IAAA,GACrBpB,KAAM,CAAAoB,eAAe,GACrB,IAAI,CAACC,IAAI,CAACD,eAAe,CAAA;AAEjC;AAAA,EAAA;IAAAlB,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,2BAAA,EAAA,CATC2B,MAAA,CAAA,CAAA;AAAA;EAYDe,YAAAA,CAAalB,KAA0B,EAAQ;AAC7C;IACA,IAAI,CAACpB,iBAAiB,CAAC0C,IAAI,CACzBzB,MAAA,CAAO0B,UAAU,CAAC,MAAA;AAChB;AACA;AACA;AACA;MACA,IAAI,IAAI,CAAC1C,iBAAiB,CAACyB,cAAc,CAACN,KAAA,CAAMgB,EAAE,CAAG,EAAA;AACnD,QAAA,IAAI,IAAI,CAACK,IAAI,CAACH,YAAY,EAAE;AAC1B,UAAA,IAAI,CAACG,IAAI,CAACH,YAAY,CAACM,KAAK,CAAC,IAAI,EAAE,CAACxB,KAAA,CAAM,CAAA;AAC5C;QAEA,IAAI,CAACnB,iBAAiB,CAACmB,MAAMgB,EAAE,CAAC,CAAES,KAAK,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC5C,iBAAiB,CAACmB,KAAA,CAAMgB,EAAE,CAAC;AAEvC,QAAA,OAAO,IAAI,CAACU,qBAAqB,CAAC1B,KAAA,CAAMgB,EAAE,CAAC;QAC3C,IAAI,CAACU,qBAAqB,GAAG;AAC3B,UAAA,GAAG,IAAI,CAACA;SACV;AACA,QAAA,IAAI,CAACb,UAAU,CAACc,MAAM,CAAC3B,KAAA,CAAA;AACzB;KACC,EAAA5B,iBAAA,CAAA,CAAA;IAGL,IAAI,CAACsD,qBAAqB,GAAG;MAC3B,GAAG,IAAI,CAACA,qBAAqB;MAC7B,CAAC1B,KAAA,CAAMgB,EAAE,GAAG;KACd;AACF;AAAA,EAAA;IAAAd,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,cAAA,EAAA,CA9BC2B,MAAA,CAAA,CAAA;AAAA;AAgCDyB,EAAAA,WAAAA,CAAYC,KAAY,EAAER,IAAyB,EAAE;AACnD,IAAA,KAAK,CAACQ,KAAO,EAAAR,IAAA,CAAA;IACb,IAAI,CAACT,6BAA6B,EAAA;AACpC;EAGAkB,SAAAA,CAAUC,OAAgB,EAAQ;IAChC,IAAI,CAAC5C,WAAW,GAAG4C,OAAA;AACrB;AAAA,EAAA;IAAA7B,CAAA,CAAA,IAAA,CAAA1B,SAAA,EAAA,WAAA,EAAA,CAHC2B,MAAA,CAAA,CAAA;AAAA;AAKD6B,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AAEN,IAAA,IAAI,IAAI,CAAC/C,yBAAyB,KAAK,CAAG,EAAA;AACxCY,MAAAA,MAAA,CAAOoC,oBAAoB,CAAC,IAAI,CAAChD,yBAAyB,CAAA;AAC5D;AAEA,IAAA,IAAI,IAAI,CAACC,4BAA4B,KAAK,CAAG,EAAA;AAC3CW,MAAAA,MAAA,CAAOoC,oBAAoB,CAAC,IAAI,CAAC/C,4BAA4B,CAAA;AAC/D;AAEA,IAAA,IAAI,CAACN,iBAAiB,CAACmC,OAAO,CAACmB,YAAA,CAAA;AAE/B,IAAA,KAAK,MAAM7B,OAAA,IAAW,IAAI,CAACxB,iBAAiB,EAAE;MAC5C,IAAI,IAAI,CAACA,iBAAiB,CAACyB,cAAc,CAACD,OAAU,CAAA,EAAA;AAClD,QAAA,MAAME,KAAQ,GAAA,IAAI,CAAC1B,iBAAiB,CAACwB,OAAQ,CAAA;QAE7CE,KAAO,EAAAkB,KAAA,EAAA;AACT;AACF;AACF;AAEA,EAAA;IAAAU,oBAAA,CAAAC,kBAAA,CAuCA,q6BAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,YAAA;QAAAV,SAAA;QAAAW,EAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,KAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -19,7 +19,7 @@ class EuiHeaderLinksComponent extends Component {
19
19
  return false;
20
20
  });
21
21
  }
22
- #pop1 = (i(this, "pop1"), undefined);
22
+ #pop1 = (i(this, "pop1"), void 0);
23
23
  get popoverBreakpoints() {
24
24
  return this.args.popoverBreakpoints || ['xs', 's'];
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-header-links.js","sources":["../../src/components/eui-header-links.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { gutterSizeMapping } from '../utils/css-mappings/eui-header-links.ts';\nimport type { EuiHideForSignature } from './eui-hide-for';\nimport type { EuiPopoverSignature } from './eui-popover';\n\nexport interface EuiHeaderLinkSignature {\n Args: {\n popoverBreakpoints?: EuiHideForSignature['Args']['sizes'];\n gutterSize?: keyof typeof gutterSizeMapping;\n panelPaddingSize?: EuiPopoverSignature['Args']['panelPaddingSize'];\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiHeaderLinksComponent extends Component<EuiHeaderLinkSignature> {\n @tracked pop1 = false;\n\n get popoverBreakpoints() {\n return this.args.popoverBreakpoints || ['xs', 's'];\n }\n\n get hasMobileVersion() {\n return this.popoverBreakpoints?.length > 0;\n }\n\n <template>\n <nav class=\"euiHeaderLinks\">\n <EuiHideFor @sizes={{this.popoverBreakpoints}}>\n <div\n class={{classNames\n \"euiHeaderLinks__list\"\n componentName=\"EuiHeaderLinks\"\n gutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </EuiHideFor>\n\n {{#if this.hasMobileVersion}}\n <EuiShowFor @sizes={{this.popoverBreakpoints}}>\n <EuiPopover\n @isOpen={{this.pop1}}\n @anchorPosition=\"downRight\"\n @panelPaddingSize={{argOrDefault @panelPaddingSize \"none\"}}\n @closePopover={{set this \"pop1\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @color=\"text\"\n {{on \"click\" (set this \"pop1\" true)}}\n >\n <EuiIcon @type=\"apps\" />\n </EuiButtonEmpty>\n </:button>\n <:content>\n <div\n class={{classNames\n \"euiHeaderLinks__mobileList\"\n componentName=\"EuiHeaderLinks\"\n mobileGutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </:content>\n </EuiPopover>\n </EuiShowFor>\n {{/if}}\n </nav>\n </template>\n}\n"],"names":["EuiHeaderLinksComponent","Component","g","prototype","tracked","i","void 0","popoverBreakpoints","args","hasMobileVersion","length","setComponentTemplate","precompileTemplate","strictMode","scope","EuiHideFor","classNames","argOrDefault","EuiShowFor","EuiPopover","set","EuiButtonEmpty","on","EuiIcon"],"mappings":";;;;;;;;;;;;;;;AA6Be,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAC5DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAe,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,SAAA;EAEtB,IAAIC,kBAAqBA,GAAA;IACvB,OAAO,IAAI,CAACC,IAAI,CAACD,kBAAkB,IAAI,CAAC,IAAA,EAAM,GAAA,CAAI;AACpD;EAEA,IAAIE,gBAAmBA,GAAA;AACrB,IAAA,OAAO,IAAI,CAACF,kBAAkB,EAAEG,MAAS,GAAA,CAAA;AAC3C;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA6CA,0lCAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;oBAAAC,mBAAA;QAAAC,UAAA;QAAAC,YAAA;oBAAAC,mBAAA;oBAAAC,mBAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-header-links.js","sources":["../../src/components/eui-header-links.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { gutterSizeMapping } from '../utils/css-mappings/eui-header-links.ts';\nimport type { EuiHideForSignature } from './eui-hide-for';\nimport type { EuiPopoverSignature } from './eui-popover';\n\nexport interface EuiHeaderLinkSignature {\n Args: {\n popoverBreakpoints?: EuiHideForSignature['Args']['sizes'];\n gutterSize?: keyof typeof gutterSizeMapping;\n panelPaddingSize?: EuiPopoverSignature['Args']['panelPaddingSize'];\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiHeaderLinksComponent extends Component<EuiHeaderLinkSignature> {\n @tracked pop1 = false;\n\n get popoverBreakpoints() {\n return this.args.popoverBreakpoints || ['xs', 's'];\n }\n\n get hasMobileVersion() {\n return this.popoverBreakpoints?.length > 0;\n }\n\n <template>\n <nav class=\"euiHeaderLinks\">\n <EuiHideFor @sizes={{this.popoverBreakpoints}}>\n <div\n class={{classNames\n \"euiHeaderLinks__list\"\n componentName=\"EuiHeaderLinks\"\n gutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </EuiHideFor>\n\n {{#if this.hasMobileVersion}}\n <EuiShowFor @sizes={{this.popoverBreakpoints}}>\n <EuiPopover\n @isOpen={{this.pop1}}\n @anchorPosition=\"downRight\"\n @panelPaddingSize={{argOrDefault @panelPaddingSize \"none\"}}\n @closePopover={{set this \"pop1\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @color=\"text\"\n {{on \"click\" (set this \"pop1\" true)}}\n >\n <EuiIcon @type=\"apps\" />\n </EuiButtonEmpty>\n </:button>\n <:content>\n <div\n class={{classNames\n \"euiHeaderLinks__mobileList\"\n componentName=\"EuiHeaderLinks\"\n mobileGutterSize=(argOrDefault @gutterSize \"xs\")\n }}\n >\n {{yield}}\n </div>\n </:content>\n </EuiPopover>\n </EuiShowFor>\n {{/if}}\n </nav>\n </template>\n}\n"],"names":["EuiHeaderLinksComponent","Component","g","prototype","tracked","i","void 0","popoverBreakpoints","args","hasMobileVersion","length","setComponentTemplate","precompileTemplate","strictMode","scope","EuiHideFor","classNames","argOrDefault","EuiShowFor","EuiPopover","set","EuiButtonEmpty","on","EuiIcon"],"mappings":";;;;;;;;;;;;;;;AA6Be,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,MAAA,EAAA,CAC5DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAe,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;EAEtB,IAAIC,kBAAqBA,GAAA;IACvB,OAAO,IAAI,CAACC,IAAI,CAACD,kBAAkB,IAAI,CAAC,IAAA,EAAM,GAAA,CAAI;AACpD;EAEA,IAAIE,gBAAmBA,GAAA;AACrB,IAAA,OAAO,IAAI,CAACF,kBAAkB,EAAEG,MAAS,GAAA,CAAA;AAC3C;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA6CA,0lCAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;oBAAAC,mBAAA;QAAAC,UAAA;QAAAC,YAAA;oBAAAC,mBAAA;oBAAAC,mBAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { on } from '@ember/modifier';
4
4
  import didInsert from '@ember/render-modifiers/modifiers/did-insert';
5
- import optional from 'ember-composable-helpers/helpers/optional';
5
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
6
6
  import { eq } from 'ember-truth-helpers';
7
7
  import argOrDefault from '../helpers/arg-or-default.js';
8
8
  import EuiButtonEmpty from './eui-button-empty.js';
@@ -116,11 +116,11 @@ class EuiHeaderSectionItemButtonComponent extends Component {
116
116
  static {
117
117
  g(this.prototype, "buttonRef", [tracked]);
118
118
  }
119
- #buttonRef = (i(this, "buttonRef"), undefined);
119
+ #buttonRef = (i(this, "buttonRef"), void 0);
120
120
  static {
121
121
  g(this.prototype, "animationTargetRef", [tracked]);
122
122
  }
123
- #animationTargetRef = (i(this, "animationTargetRef"), undefined);
123
+ #animationTargetRef = (i(this, "animationTargetRef"), void 0);
124
124
  setAnimationTargetRef = ele => {
125
125
  this.animationTargetRef = ele;
126
126
  this.args.ref?.({
@@ -1 +1 @@
1
- {"version":3,"file":"eui-header-section-item-button.js","sources":["../../src/components/eui-header-section-item-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiNotificationBadge from './eui-notification-badge.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type {\n colorMapping,\n} from '../utils/css-mappings/eui-notification-badge.ts';\nimport type { EuiHideForBreakpoints } from './eui-hide-for';\n\nconst keyframes: Keyframe[] = [\n { transform: 'rotate(0)', offset: 0, easing: 'ease-in-out' },\n {\n transform: 'rotate(30deg)',\n offset: 0.01,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.03,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(34deg)',\n offset: 0.05,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-32deg)',\n offset: 0.07,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(30deg)',\n offset: 0.09,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.11,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(26deg)',\n offset: 0.13,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-24deg)',\n offset: 0.15,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(22deg)',\n offset: 0.17,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-20deg)',\n offset: 0.19,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(18deg)',\n offset: 0.21,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-16deg)',\n offset: 0.23,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(14deg)',\n offset: 0.25,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-12deg)',\n offset: 0.27,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(10deg)',\n offset: 0.29,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-8deg)',\n offset: 0.31,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(6deg)',\n offset: 0.33,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-4deg)',\n offset: 0.35,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(2deg)',\n offset: 0.37,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-1deg)',\n offset: 0.39,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(1deg)',\n offset: 0.41,\n easing: 'ease-in-out'\n },\n { transform: 'rotate(0)', offset: 0.43, easing: 'ease-in-out' },\n { transform: 'rotate(0)', offset: 1, easing: 'ease-in-out' }\n];\n\nexport interface EuiHeaderSectionItemButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement;\n Args: {\n ref?: (api: { euiAnimate: () => void }) => void;\n disabled?: boolean;\n href?: string;\n onClick?: (event: MouseEvent) => void;\n notification?: boolean | number;\n notificationColor?: keyof typeof colorMapping;\n };\n Blocks: { default: [] };\n}\n\nconst sizes: EuiHideForBreakpoints[] = ['xs'];\n\nexport default class EuiHeaderSectionItemButtonComponent extends Component<EuiHeaderSectionItemButtonSignature> {\n @tracked buttonRef: HTMLButtonElement | HTMLAnchorElement | undefined;\n @tracked animationTargetRef: HTMLSpanElement | undefined;\n\n setAnimationTargetRef = (ele: HTMLSpanElement) => {\n this.animationTargetRef = ele;\n this.args.ref?.({ euiAnimate: this.animate });\n };\n\n animate = () => {\n this.animationTargetRef?.animate(keyframes, { duration: 5000 });\n };\n\n setButtonRef = (ele: HTMLButtonElement | HTMLAnchorElement) => {\n this.buttonRef = ele;\n };\n\n <template>\n <EuiButtonEmpty\n class=\"euiHeaderSectionItemButton\"\n @isDisabled={{@disabled}}\n @href={{@href}}\n @color=\"text\"\n {{didInsert this.setButtonRef}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n <span\n {{didInsert this.setAnimationTargetRef}}\n class=\"euiHeaderSectionItemButton__content\"\n >\n {{yield}}\n </span>\n {{#if @notification}}\n {{#if (eq @notification true)}}\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n {{else if @notification}}\n <EuiHideFor @sizes={{sizes}}>\n <EuiNotificationBadge\n class=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--badge\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n >\n {{@notification}}\n </EuiNotificationBadge>\n </EuiHideFor>\n <EuiShowFor @sizes={{sizes}}>\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n </EuiShowFor>\n {{/if}}\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["keyframes","transform","offset","easing","sizes","EuiHeaderSectionItemButtonComponent","Component","g","prototype","tracked","i","void 0","setAnimationTargetRef","ele","animationTargetRef","args","ref","euiAnimate","animate","duration","setButtonRef","buttonRef","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","didInsert","on","optional","eq","EuiIcon","argOrDefault","EuiHideFor","EuiNotificationBadge","EuiShowFor"],"mappings":"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"}
1
+ {"version":3,"file":"eui-header-section-item-button.js","sources":["../../src/components/eui-header-section-item-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiNotificationBadge from './eui-notification-badge.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { colorMapping } from '../utils/css-mappings/eui-notification-badge.ts';\nimport type { EuiHideForBreakpoints } from './eui-hide-for';\n\nconst keyframes: Keyframe[] = [\n { transform: 'rotate(0)', offset: 0, easing: 'ease-in-out' },\n {\n transform: 'rotate(30deg)',\n offset: 0.01,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.03,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(34deg)',\n offset: 0.05,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-32deg)',\n offset: 0.07,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(30deg)',\n offset: 0.09,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.11,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(26deg)',\n offset: 0.13,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-24deg)',\n offset: 0.15,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(22deg)',\n offset: 0.17,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-20deg)',\n offset: 0.19,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(18deg)',\n offset: 0.21,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-16deg)',\n offset: 0.23,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(14deg)',\n offset: 0.25,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-12deg)',\n offset: 0.27,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(10deg)',\n offset: 0.29,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-8deg)',\n offset: 0.31,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(6deg)',\n offset: 0.33,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-4deg)',\n offset: 0.35,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(2deg)',\n offset: 0.37,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-1deg)',\n offset: 0.39,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(1deg)',\n offset: 0.41,\n easing: 'ease-in-out'\n },\n { transform: 'rotate(0)', offset: 0.43, easing: 'ease-in-out' },\n { transform: 'rotate(0)', offset: 1, easing: 'ease-in-out' }\n];\n\nexport interface EuiHeaderSectionItemButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement;\n Args: {\n ref?: (api: { euiAnimate: () => void }) => void;\n disabled?: boolean;\n href?: string;\n onClick?: (event: MouseEvent) => void;\n notification?: boolean | number;\n notificationColor?: keyof typeof colorMapping;\n };\n Blocks: { default: [] };\n}\n\nconst sizes: EuiHideForBreakpoints[] = ['xs'];\n\nexport default class EuiHeaderSectionItemButtonComponent extends Component<EuiHeaderSectionItemButtonSignature> {\n @tracked buttonRef: HTMLButtonElement | HTMLAnchorElement | undefined;\n @tracked animationTargetRef: HTMLSpanElement | undefined;\n\n setAnimationTargetRef = (ele: HTMLSpanElement) => {\n this.animationTargetRef = ele;\n this.args.ref?.({ euiAnimate: this.animate });\n };\n\n animate = () => {\n this.animationTargetRef?.animate(keyframes, { duration: 5000 });\n };\n\n setButtonRef = (ele: HTMLButtonElement | HTMLAnchorElement) => {\n this.buttonRef = ele;\n };\n\n <template>\n <EuiButtonEmpty\n class=\"euiHeaderSectionItemButton\"\n @isDisabled={{@disabled}}\n @href={{@href}}\n @color=\"text\"\n {{didInsert this.setButtonRef}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n <span\n {{didInsert this.setAnimationTargetRef}}\n class=\"euiHeaderSectionItemButton__content\"\n >\n {{yield}}\n </span>\n {{#if @notification}}\n {{#if (eq @notification true)}}\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n {{else if @notification}}\n <EuiHideFor @sizes={{sizes}}>\n <EuiNotificationBadge\n class=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--badge\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n >\n {{@notification}}\n </EuiNotificationBadge>\n </EuiHideFor>\n <EuiShowFor @sizes={{sizes}}>\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n </EuiShowFor>\n {{/if}}\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["keyframes","transform","offset","easing","sizes","EuiHeaderSectionItemButtonComponent","Component","g","prototype","tracked","i","void 0","setAnimationTargetRef","ele","animationTargetRef","args","ref","euiAnimate","animate","duration","setButtonRef","buttonRef","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","didInsert","on","optional","eq","EuiIcon","argOrDefault","EuiHideFor","EuiNotificationBadge","EuiShowFor"],"mappings":"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"}
@@ -13,7 +13,7 @@ class EuiI18nComponent extends Component {
13
13
  static {
14
14
  g(this.prototype, "euiI18n", [inject]);
15
15
  }
16
- #euiI18n = (i(this, "euiI18n"), undefined);
16
+ #euiI18n = (i(this, "euiI18n"), void 0);
17
17
  get lookupToken() {
18
18
  const lookupToken = this.euiI18n._lookupToken;
19
19
  return lookupToken({