@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-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from 'ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport { MODE_EDITING, MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins) declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins) declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":"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"}
1
+ {"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from '@nullvoxpopuli/ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport {\n MODE_EDITING,\n MODE_VIEWING\n} from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins)\n declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins)\n declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":"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"}
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
2
2
  import { cached } from '@glimmer/tracking';
3
3
  import { isArray } from '@ember/array';
4
4
  import { EnsureSafeComponentHelper } from '@embroider/util';
5
- import optional from 'ember-composable-helpers/helpers/optional';
5
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
6
6
  import unified from 'unified';
7
7
  import { defaultParsingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/parsing-plugins.js';
8
8
  import { defaultProcessingPlugins } from '../utils/markdown/plugins/markdown-default-plugins/processing-plugins.js';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-markdown-format.js","sources":["../../src/components/eui-markdown-format.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport unified from 'unified';\n\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport { toDOM } from '../utils/markdown/plugins/to-dom.ts';\n\nimport type {\n EuiMarkdownAstNodePosition,\n RehypeNode} from '../utils/markdown/markdown-types';\nimport type { Processor } from 'unified';\n\nexport type Replacer = (\n position: EuiMarkdownAstNodePosition,\n str: string\n) => void;\n\nexport interface EuiMarkdownFormatSignature {\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n replaceNode?: Replacer;\n value: string;\n //you can pass in a string or an array of strings to be added to the root element\n rootClasses?: string | string[];\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownFormatSignature> {\n get parsingPluginList() {\n return this.args.parsingPluginList || defaultParsingPlugins;\n }\n\n get processingPluginList() {\n return this.args.processingPluginList || defaultProcessingPlugins;\n }\n\n @cached\n get processor() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified()\n .use(this.parsingPluginList)\n .use(this.processingPluginList)\n .use(identityCompiler);\n }\n\n get rootClasses(): string[] {\n let baseClasses = ['euiMarkdownFormat', 'euiText', 'euiText--medium'];\n\n if (this.args.rootClasses) {\n let rootClasses = isArray(this.args.rootClasses)\n ? this.args.rootClasses\n : (this.args.rootClasses as string)?.trim()?.split(' ') || [];\n\n baseClasses = baseClasses.concat(rootClasses);\n }\n\n return baseClasses;\n }\n\n @cached\n get result() {\n try {\n const processed = this.processor.processSync(this.args.value);\n\n return toDOM(processed['result'] as RehypeNode, {\n rootClasses: this.rootClasses\n });\n //eslint-disable-next-line\n } catch (e) {\n console.warn(e);\n }\n \n return null;\n }\n\n <template>\n {{! This hbs was inspired by https://github.com/ampatspell/ember-cli-remark-static/blob/v3.0.5/addon/components/remark.hbs }}\n {{#if this.result}}\n {{this.result.element}}\n {{#each this.result.components as |CompNode|}}\n {{#in-element CompNode.element}}\n {{#if CompNode.componentName}}\n {{#let\n (component (EnsureSafeComponentHelper CompNode.componentName))\n as |DynamicComponent|\n }}\n <DynamicComponent\n @replaceNode={{optional @replaceNode}}\n @node={{CompNode}}\n />\n {{/let}}\n {{/if}}\n {{/in-element}}\n {{/each}}\n {{/if}}\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","parsingPluginList","args","defaultParsingPlugins","processingPluginList","defaultProcessingPlugins","processor","Compiler","tree","identityCompiler","unified","use","n","prototype","cached","rootClasses","baseClasses","isArray","trim","split","concat","result","processed","processSync","value","toDOM","e","console","warn","setComponentTemplate","precompileTemplate","strictMode","scope","EnsureSafeComponentHelper","optional"],"mappings":";;;;;;;;;;;;;;AAiCe,MAAMA,0CAA0CC,SAAU,CAAA;EACvE,IAAIC,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,iBAAiB,IAAIE,qBAAA;AACxC;EAEA,IAAIC,oBAAuBA,GAAA;AACzB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,oBAAoB,IAAIC,wBAAA;AAC3C;EAEA,IACIC,SAAYA,GAAA;IACd,MAAMC,QAAA,GAAYC,IAAS,IAAA;AACzB,MAAA,OAAOA,IAAA;KACT;IAEA,SAASC,gBAAAA,GAAgC;AACvC;MACA,IAAI,CAACF,QAAQ,GAAGA,QAAA;AAClB;IAEA,OAAOG,OACJ,EAAA,CAAAC,GAAG,CAAC,IAAI,CAACV,iBAAiB,CAAA,CAC1BU,GAAG,CAAC,IAAI,CAACP,oBAAoB,CAAA,CAC7BO,GAAG,CAACF,gBAAA,CAAA;AACT;AAAA,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAfCC,MAAA,CAAA,CAAA;AAAA;EAiBD,IAAIC,WAAAA,GAAwB;IAC1B,IAAIC,WAAc,GAAA,CAAC,mBAAA,EAAqB,SAAA,EAAW,iBAAA,CAAkB;AAErE,IAAA,IAAI,IAAI,CAACd,IAAI,CAACa,WAAW,EAAE;AACzB,MAAA,IAAIA,WAAA,GAAcE,OAAQ,CAAA,IAAI,CAACf,IAAI,CAACa,WAAW,CAC3C,GAAA,IAAI,CAACb,IAAI,CAACa,WAAW,GACpB,IAAI,CAACb,IAAI,CAACa,WAAW,EAAaG,IAAA,EAAA,EAAQC,KAAM,CAAA,GAAA,CAAA,IAAQ,EAAE;AAE/DH,MAAAA,WAAc,GAAAA,WAAA,CAAYI,MAAM,CAACL,WAAA,CAAA;AACnC;AAEA,IAAA,OAAOC,WAAA;AACT;EAEA,IACIK,MAASA,GAAA;IACX,IAAI;AACF,MAAA,MAAMC,SAAA,GAAY,IAAI,CAAChB,SAAS,CAACiB,WAAW,CAAC,IAAI,CAACrB,IAAI,CAACsB,KAAK,CAAA;AAE5D,MAAA,OAAOC,KAAM,CAAAH,SAAS,CAAC,QAAA,CAAS,EAAgB;QAC9CP,WAAa,EAAA,IAAI,CAACA;AACpB,OAAA,CAAA;AACA;KACF,CAAE,OAAOW,CAAG,EAAA;AACVC,MAAAA,OAAA,CAAQC,IAAI,CAACF,CAAA,CAAA;AACf;AAEA,IAAA,OAAO,IAAA;AACT;AAAA,EAAA;IAAAd,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAdCC,MAAA,CAAA,CAAA;AAAA;AAgBD,EAAA;IAAAe,oBAAA,CAAAC,kBAAA,CAoBA,wnBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,yBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-markdown-format.js","sources":["../../src/components/eui-markdown-format.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { isArray } from '@ember/array';\nimport { EnsureSafeComponentHelper } from '@embroider/util';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport unified from 'unified';\n\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport { toDOM } from '../utils/markdown/plugins/to-dom.ts';\n\nimport type {\n EuiMarkdownAstNodePosition,\n RehypeNode\n} from '../utils/markdown/markdown-types';\nimport type { Processor } from 'unified';\n\nexport type Replacer = (\n position: EuiMarkdownAstNodePosition,\n str: string\n) => void;\n\nexport interface EuiMarkdownFormatSignature {\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n replaceNode?: Replacer;\n value: string;\n //you can pass in a string or an array of strings to be added to the root element\n rootClasses?: string | string[];\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownFormatSignature> {\n get parsingPluginList() {\n return this.args.parsingPluginList || defaultParsingPlugins;\n }\n\n get processingPluginList() {\n return this.args.processingPluginList || defaultProcessingPlugins;\n }\n\n @cached\n get processor() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified()\n .use(this.parsingPluginList)\n .use(this.processingPluginList)\n .use(identityCompiler);\n }\n\n get rootClasses(): string[] {\n let baseClasses = ['euiMarkdownFormat', 'euiText', 'euiText--medium'];\n\n if (this.args.rootClasses) {\n let rootClasses = isArray(this.args.rootClasses)\n ? this.args.rootClasses\n : (this.args.rootClasses as string)?.trim()?.split(' ') || [];\n\n baseClasses = baseClasses.concat(rootClasses);\n }\n\n return baseClasses;\n }\n\n @cached\n get result() {\n try {\n const processed = this.processor.processSync(this.args.value);\n\n return toDOM(processed['result'] as RehypeNode, {\n rootClasses: this.rootClasses\n });\n //eslint-disable-next-line\n } catch (e) {\n console.warn(e);\n }\n\n return null;\n }\n\n <template>\n {{! This hbs was inspired by https://github.com/ampatspell/ember-cli-remark-static/blob/v3.0.5/addon/components/remark.hbs }}\n {{#if this.result}}\n {{this.result.element}}\n {{#each this.result.components as |CompNode|}}\n {{#in-element CompNode.element}}\n {{#if CompNode.componentName}}\n {{#let\n (component (EnsureSafeComponentHelper CompNode.componentName))\n as |DynamicComponent|\n }}\n <DynamicComponent\n @replaceNode={{optional @replaceNode}}\n @node={{CompNode}}\n />\n {{/let}}\n {{/if}}\n {{/in-element}}\n {{/each}}\n {{/if}}\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","parsingPluginList","args","defaultParsingPlugins","processingPluginList","defaultProcessingPlugins","processor","Compiler","tree","identityCompiler","unified","use","n","prototype","cached","rootClasses","baseClasses","isArray","trim","split","concat","result","processed","processSync","value","toDOM","e","console","warn","setComponentTemplate","precompileTemplate","strictMode","scope","EnsureSafeComponentHelper","optional"],"mappings":";;;;;;;;;;;;;;AAkCe,MAAMA,0CAA0CC,SAAU,CAAA;EACvE,IAAIC,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,iBAAiB,IAAIE,qBAAA;AACxC;EAEA,IAAIC,oBAAuBA,GAAA;AACzB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,oBAAoB,IAAIC,wBAAA;AAC3C;EAEA,IACIC,SAAYA,GAAA;IACd,MAAMC,QAAA,GAAYC,IAAS,IAAA;AACzB,MAAA,OAAOA,IAAA;KACT;IAEA,SAASC,gBAAAA,GAAgC;AACvC;MACA,IAAI,CAACF,QAAQ,GAAGA,QAAA;AAClB;IAEA,OAAOG,OACJ,EAAA,CAAAC,GAAG,CAAC,IAAI,CAACV,iBAAiB,CAAA,CAC1BU,GAAG,CAAC,IAAI,CAACP,oBAAoB,CAAA,CAC7BO,GAAG,CAACF,gBAAA,CAAA;AACT;AAAA,EAAA;IAAAG,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAfCC,MAAA,CAAA,CAAA;AAAA;EAiBD,IAAIC,WAAAA,GAAwB;IAC1B,IAAIC,WAAc,GAAA,CAAC,mBAAA,EAAqB,SAAA,EAAW,iBAAA,CAAkB;AAErE,IAAA,IAAI,IAAI,CAACd,IAAI,CAACa,WAAW,EAAE;AACzB,MAAA,IAAIA,WAAA,GAAcE,OAAQ,CAAA,IAAI,CAACf,IAAI,CAACa,WAAW,CAC3C,GAAA,IAAI,CAACb,IAAI,CAACa,WAAW,GACpB,IAAI,CAACb,IAAI,CAACa,WAAW,EAAaG,IAAA,EAAA,EAAQC,KAAM,CAAA,GAAA,CAAA,IAAQ,EAAE;AAE/DH,MAAAA,WAAc,GAAAA,WAAA,CAAYI,MAAM,CAACL,WAAA,CAAA;AACnC;AAEA,IAAA,OAAOC,WAAA;AACT;EAEA,IACIK,MAASA,GAAA;IACX,IAAI;AACF,MAAA,MAAMC,SAAA,GAAY,IAAI,CAAChB,SAAS,CAACiB,WAAW,CAAC,IAAI,CAACrB,IAAI,CAACsB,KAAK,CAAA;AAE5D,MAAA,OAAOC,KAAM,CAAAH,SAAS,CAAC,QAAA,CAAS,EAAgB;QAC9CP,WAAa,EAAA,IAAI,CAACA;AACpB,OAAA,CAAA;AACA;KACF,CAAE,OAAOW,CAAG,EAAA;AACVC,MAAAA,OAAA,CAAQC,IAAI,CAACF,CAAA,CAAA;AACf;AAEA,IAAA,OAAO,IAAA;AACT;AAAA,EAAA;IAAAd,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CAdCC,MAAA,CAAA,CAAA;AAAA;AAgBD,EAAA;IAAAe,oBAAA,CAAAC,kBAAA,CAoBA,wnBAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,yBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { hash } from '@ember/helper';
2
2
  import { on } from '@ember/modifier';
3
- import optional from 'ember-composable-helpers/helpers/optional';
3
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
4
4
  import preventDefault from 'ember-event-helpers/helpers/prevent-default';
5
5
  import stopPropagation from 'ember-event-helpers/helpers/stop-propagation';
6
6
  import { focusTrap } from 'ember-focus-trap';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-modal.js","sources":["../../src/components/eui-modal.gts"],"sourcesContent":["import { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport preventDefault from 'ember-event-helpers/helpers/prevent-default';\nimport stopPropagation from 'ember-event-helpers/helpers/stop-propagation';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, notEq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiModalSignature {\n Element: HTMLDivElement;\n Args: {\n onClose?: (e: Event) => void;\n maxWidth?: boolean | string;\n clickOutsideToClose?: boolean;\n isFocusTrapActive?: boolean;\n shouldSelfFocus?: boolean;\n isFocusTrapPaused?: boolean;\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 Blocks: {\n default: [];\n };\n}\n\nconst EuiModal: TemplateOnlyComponent<EuiModalSignature> = <template>\n {{#let\n (if\n (and @maxWidth (notEq @maxWidth true))\n (inlineStyles\n componentName=\"EuiModal\" componentArgs=(hash maxWidth=@maxWidth)\n )\n (hash)\n )\n as |inlineStyles|\n }}\n <EuiOverlayMask\n @onClick={{if @clickOutsideToClose (optional @onClose) (optional)}}\n >\n <div\n class={{classNames\n \"euiModal\"\n (if (eq @maxWidth true) \"euiModal--maxWidth-default\")\n }}\n tabindex=\"0\"\n ...attributes\n {{style inlineStyles}}\n {{focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=(argOrDefault @isFocusTrapPaused false)\n focusTrapOptions=(argOrDefault @focusTrapOptions (hash))\n }}\n {{onKey\n \"Escape\"\n (preventDefault (stopPropagation (optional @onClose)))\n }}\n >\n <EuiButtonIcon\n class=\"euiModal__closeIcon\"\n @iconType=\"cross\"\n @color=\"text\"\n {{on \"click\" (optional @onClose)}}\n />\n <div class=\"euiModal__flex\">\n {{yield}}\n </div>\n </div>\n </EuiOverlayMask>\n {{/let}}\n</template>;\n\nexport default EuiModal;\n"],"names":["EuiModal","setComponentTemplate","precompileTemplate","strictMode","scope","and","notEq","inlineStyles","hash","EuiOverlayMask","optional","classNames","eq","style","focusTrap","argOrDefault","onKey","preventDefault","stopPropagation","EuiButtonIcon","on","templateOnly"],"mappings":";;;;;;;;;;;;;;;;;;AA2CA,MAAMA,QAAqD,GAAAC,oBAAA,CAAAC,kBAAA,CA6C3D,q8BAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,KAAA;IAAAC,YAAA;IAAAC,IAAA;oBAAAC,uBAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,YAAA;IAAAC,KAAA;IAAAC,cAAA;IAAAC,eAAA;IAAAC,aAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-modal.js","sources":["../../src/components/eui-modal.gts"],"sourcesContent":["import { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport preventDefault from 'ember-event-helpers/helpers/prevent-default';\nimport stopPropagation from 'ember-event-helpers/helpers/stop-propagation';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, notEq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiOverlayMask from './eui-overlay-mask.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiModalSignature {\n Element: HTMLDivElement;\n Args: {\n onClose?: (e: Event) => void;\n maxWidth?: boolean | string;\n clickOutsideToClose?: boolean;\n isFocusTrapActive?: boolean;\n shouldSelfFocus?: boolean;\n isFocusTrapPaused?: boolean;\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 Blocks: {\n default: [];\n };\n}\n\nconst EuiModal: TemplateOnlyComponent<EuiModalSignature> = <template>\n {{#let\n (if\n (and @maxWidth (notEq @maxWidth true))\n (inlineStyles\n componentName=\"EuiModal\" componentArgs=(hash maxWidth=@maxWidth)\n )\n (hash)\n )\n as |inlineStyles|\n }}\n <EuiOverlayMask\n @onClick={{if @clickOutsideToClose (optional @onClose) (optional)}}\n >\n <div\n class={{classNames\n \"euiModal\"\n (if (eq @maxWidth true) \"euiModal--maxWidth-default\")\n }}\n tabindex=\"0\"\n ...attributes\n {{style inlineStyles}}\n {{focusTrap\n isActive=(argOrDefault @isFocusTrapActive true)\n shouldSelfFocus=(argOrDefault @shouldSelfFocus true)\n isPaused=(argOrDefault @isFocusTrapPaused false)\n focusTrapOptions=(argOrDefault @focusTrapOptions (hash))\n }}\n {{onKey\n \"Escape\"\n (preventDefault (stopPropagation (optional @onClose)))\n }}\n >\n <EuiButtonIcon\n class=\"euiModal__closeIcon\"\n @iconType=\"cross\"\n @color=\"text\"\n {{on \"click\" (optional @onClose)}}\n />\n <div class=\"euiModal__flex\">\n {{yield}}\n </div>\n </div>\n </EuiOverlayMask>\n {{/let}}\n</template>;\n\nexport default EuiModal;\n"],"names":["EuiModal","setComponentTemplate","precompileTemplate","strictMode","scope","and","notEq","inlineStyles","hash","EuiOverlayMask","optional","classNames","eq","style","focusTrap","argOrDefault","onKey","preventDefault","stopPropagation","EuiButtonIcon","on","templateOnly"],"mappings":";;;;;;;;;;;;;;;;;;AA2CA,MAAMA,QAAqD,GAAAC,oBAAA,CAAAC,kBAAA,CA6C3D,q8BAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,KAAA;IAAAC,YAAA;IAAAC,IAAA;oBAAAC,uBAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,YAAA;IAAAC,KAAA;IAAAC,cAAA;IAAAC,eAAA;IAAAC,aAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,6 +1,4 @@
1
1
  import { concat } from '@ember/helper';
2
- import objectAt from 'ember-composable-helpers/helpers/object-at';
3
- import without from 'ember-composable-helpers/helpers/without';
4
2
  import randomId from '../-private/random-id.js';
5
3
  import EuiAccordionAccordionComponent from './eui-accordion.js';
6
4
  import EuiTextComponent from './eui-text.js';
@@ -8,6 +6,10 @@ import { precompileTemplate } from '@ember/template-compilation';
8
6
  import { setComponentTemplate } from '@ember/component';
9
7
  import templateOnly from '@ember/component/template-only';
10
8
 
9
+ const objectAt = (pos, array) => array[pos];
10
+ const without = (obj, array) => {
11
+ return array.filter(item => item !== obj);
12
+ };
11
13
  const EuiNotificationEventMessages = setComponentTemplate(precompileTemplate("\n <div class=\"euiNotificationEventMessages\" ...attributes>\n {{#let (objectAt 0 @messages) (without (objectAt 0 @messages) @messages) as |first rest|}}\n\n {{#if first}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{first}}</p>\n </EuiText>\n {{/if}}\n\n {{#if rest}}\n\n <EuiAccordion id={{concat \"euiNotificationEventMessagesAccordion\" (randomId)}} class=\"euiNotificationEventMessages__accordion\" @buttonClassName=\"euiNotificationEventMessages__accordionButton\" @arrowDisplay=\"none\">\n <:buttonContent as |isOpen|>\n {{@accordionButtonText}}\n {{#unless isOpen}}\n ({{@accordionHideText}})\n {{/unless}}\n </:buttonContent>\n\n <:content>\n <div class=\"euiNotificationEventMessages__accordionContent\">\n {{#each rest as |msg|}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{msg}}</p>\n </EuiText>\n {{/each}}\n </div>\n </:content>\n\n </EuiAccordion>\n {{/if}}\n\n {{/let}}\n </div>\n ", {
12
14
  strictMode: true,
13
15
  scope: () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"eui-notification-event-messages.js","sources":["../../src/components/eui-notification-event-messages.gts"],"sourcesContent":["import { concat } from '@ember/helper';\n\nimport objectAt from 'ember-composable-helpers/helpers/object-at';\nimport without from 'ember-composable-helpers/helpers/without';\n\nimport randomId from '../-private/random-id.ts';\nimport EuiAccordion from './eui-accordion.gts';\nimport EuiText from './eui-text.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiNotificationEventMessagesSignature {\n Element: HTMLDivElement;\n Args: {\n messages: string[];\n accordionButtonText?: string;\n accordionHideText?: string;\n accordionAriaLabelButtonText?: string;\n };\n}\n\nconst EuiNotificationEventMessages: TemplateOnlyComponent<EuiNotificationEventMessagesSignature> =\n <template>\n <div class=\"euiNotificationEventMessages\" ...attributes>\n {{#let\n (objectAt 0 @messages) (without (objectAt 0 @messages) @messages)\n as |first rest|\n }}\n\n {{#if first}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{first}}</p>\n </EuiText>\n {{/if}}\n\n {{#if rest}}\n\n <EuiAccordion\n id={{concat \"euiNotificationEventMessagesAccordion\" (randomId)}}\n class=\"euiNotificationEventMessages__accordion\"\n @buttonClassName=\"euiNotificationEventMessages__accordionButton\"\n @arrowDisplay=\"none\"\n >\n <:buttonContent as |isOpen|>\n {{@accordionButtonText}}\n {{#unless isOpen}}\n ({{@accordionHideText}})\n {{/unless}}\n </:buttonContent>\n\n <:content>\n <div class=\"euiNotificationEventMessages__accordionContent\">\n {{#each rest as |msg|}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{msg}}</p>\n </EuiText>\n {{/each}}\n </div>\n </:content>\n\n </EuiAccordion>\n {{/if}}\n\n {{/let}}\n </div>\n </template>;\n\nexport default EuiNotificationEventMessages;\n"],"names":["EuiNotificationEventMessages","setComponentTemplate","precompileTemplate","strictMode","scope","objectAt","without","EuiText","EuiAccordion","concat","randomId","templateOnly"],"mappings":";;;;;;;;;;AAqBA,MAAMA,4BACJ,GAAAC,oBAAA,CAAAC,kBAAA,CA2CA,0rCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,QAAA;IAAAC,OAAA;aAAAC,gBAAA;kBAAAC,8BAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-notification-event-messages.js","sources":["../../src/components/eui-notification-event-messages.gts"],"sourcesContent":["import { concat } from '@ember/helper';\n\nimport randomId from '../-private/random-id.ts';\nimport EuiAccordion from './eui-accordion.gts';\nimport EuiText from './eui-text.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nconst objectAt = <T,>(pos: number, array: T[]) => array[pos];\nconst without = <T,>(obj: T, array: T[]) => {\n return array.filter((item) => item !== obj);\n};\n\nexport interface EuiNotificationEventMessagesSignature {\n Element: HTMLDivElement;\n Args: {\n messages: string[];\n accordionButtonText?: string;\n accordionHideText?: string;\n accordionAriaLabelButtonText?: string;\n };\n}\n\nconst EuiNotificationEventMessages: TemplateOnlyComponent<EuiNotificationEventMessagesSignature> =\n <template>\n <div class=\"euiNotificationEventMessages\" ...attributes>\n {{#let\n (objectAt 0 @messages) (without (objectAt 0 @messages) @messages)\n as |first rest|\n }}\n\n {{#if first}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{first}}</p>\n </EuiText>\n {{/if}}\n\n {{#if rest}}\n\n <EuiAccordion\n id={{concat \"euiNotificationEventMessagesAccordion\" (randomId)}}\n class=\"euiNotificationEventMessages__accordion\"\n @buttonClassName=\"euiNotificationEventMessages__accordionButton\"\n @arrowDisplay=\"none\"\n >\n <:buttonContent as |isOpen|>\n {{@accordionButtonText}}\n {{#unless isOpen}}\n ({{@accordionHideText}})\n {{/unless}}\n </:buttonContent>\n\n <:content>\n <div class=\"euiNotificationEventMessages__accordionContent\">\n {{#each rest as |msg|}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{msg}}</p>\n </EuiText>\n {{/each}}\n </div>\n </:content>\n\n </EuiAccordion>\n {{/if}}\n\n {{/let}}\n </div>\n </template>;\n\nexport default EuiNotificationEventMessages;\n"],"names":["objectAt","pos","array","without","obj","filter","item","EuiNotificationEventMessages","setComponentTemplate","precompileTemplate","strictMode","scope","EuiText","EuiAccordion","concat","randomId","templateOnly"],"mappings":";;;;;;;;AAQA,MAAMA,QAAA,GAAWA,CAAKC,GAAW,EAAEC,KAAO,KAAQA,KAAK,CAACD,GAAI,CAAA;AAC5D,MAAME,OAAU,GAAAA,CAAKC,KAAQF,KAAO,KAAA;EAClC,OAAOA,KAAM,CAAAG,MAAM,CAAEC,QAASA,IAAS,KAAAF,GAAA,CAAA;AACzC,CAAA;AAYA,MAAMG,4BACJ,GAAAC,oBAAA,CAAAC,kBAAA,CA2CA,0rCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAX,QAAA;IAAAG,OAAA;aAAAS,gBAAA;kBAAAC,8BAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { concat, fn } from '@ember/helper';
2
2
  import { on } from '@ember/modifier';
3
- import optional from 'ember-composable-helpers/helpers/optional';
4
- import queue from 'ember-composable-helpers/helpers/queue';
3
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
4
+ import queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';
5
5
  import { and } from 'ember-truth-helpers';
6
6
  import randomId from '../-private/random-id.js';
7
7
  import argOrDefault from '../helpers/arg-or-default.js';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-notification-event-meta.js","sources":["../../src/components/eui-notification-event-meta.gts"],"sourcesContent":["import { concat } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport queue from 'ember-composable-helpers/helpers/queue';\nimport { and } 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 EuiBadge from './eui-badge.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPopover from './eui-popover.gts';\n\nimport type { EuiBadgeSignature } from './eui-badge';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiNotificationEventSignature {\n Element: HTMLDivElement;\n Args: {\n id?: string;\n time?: string;\n type?: string;\n severity?: string;\n iconType?: EuiIconSignature['Args']['type'];\n iconColor?: EuiIconSignature['Args']['color'];\n iconAriaLabel?: EuiIconSignature['Args']['aria-label'];\n badgeColor?: EuiBadgeSignature['Args']['color'];\n hasDefaultBlock?: boolean;\n onOpenContextMenu?: (e: MouseEvent) => void;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiNotificationEvent: TemplateOnlyComponent<EuiNotificationEventSignature> =\n <template>\n {{#let\n (and (argOrDefault @hasDefaultBlock true) (has-block))\n as |hasDefaultBlock|\n }}\n <div\n class={{classNames\n \"euiNotificationEventMeta\"\n (if hasDefaultBlock \"euiNotificationEventMeta--hasContextMenu\")\n }}\n ...attributes\n >\n <div class=\"euiNotificationEventMeta__section\">\n\n {{#if @iconType}}\n <EuiIcon\n @iconClasses=\"euiNotificationEventMeta__icon\"\n @type={{@iconType}}\n @color={{@iconColor}}\n {{! TODO only add one of the following html attributes }}\n aria-label={{@iconAriaLabel}}\n aria-hidden={{if @iconAriaLabel false true}}\n />\n {{/if}}\n\n {{#if @type}}\n <EuiBadge\n class=\"euiNotificationEventMeta__badge\"\n @color={{@badgeColor}}\n >\n {{#if @severity}}\n {{@type}}:\n {{@severity}}\n {{else}}\n {{@type}}\n {{/if}}\n </EuiBadge>\n {{/if}}\n\n </div>\n\n <div class=\"euiNotificationEventMeta__section\">\n <span class=\"euiNotificationEventMeta__time\">{{@time}}</span>\n </div>\n\n {{#if hasDefaultBlock}}\n {{#let\n (randomId) (useState false)\n as |randomPopoverId isPopoverOpen|\n }}\n <div class=\"euiNotificationEventMeta__contextMenuWrapper\">\n <EuiPopover\n id={{randomPopoverId}}\n @ownFocus={{true}}\n @repositionOnScroll={{true}}\n @isOpen={{isPopoverOpen.value}}\n @panelPaddingSize=\"none\"\n @anchorPosition=\"leftUp\"\n @closePopover={{fn isPopoverOpen.setState false}}\n >\n\n <:button>\n <EuiButtonIcon\n {{! aria-label={contextMenuButton} }}\n aria-controls={{randomPopoverId}}\n aria-expanded={{isPopoverOpen.value}}\n aria-haspopup=\"true\"\n @iconType=\"boxesVertical\"\n @color=\"text\"\n data-test-subj={{concat @id \"-notificationEventMetaButton\"}}\n {{on\n \"click\"\n (if\n isPopoverOpen.value\n (fn isPopoverOpen.setState false)\n (fn isPopoverOpen.setState true)\n )\n }}\n />\n </:button>\n\n {{! The EuiContextMenu is wrapped with a div so it closes after an item is clicked }}\n <:content>\n <div\n {{on\n \"click\"\n (queue\n (optional @onOpenContextMenu)\n (fn isPopoverOpen.setState false)\n )\n }}\n role=\"button\"\n >\n {{yield}}\n </div>\n </:content>\n\n </EuiPopover>\n </div>\n {{/let}}\n {{/if}}\n\n </div>\n {{/let}}\n </template>;\n\nexport default EuiNotificationEvent;\n"],"names":["EuiNotificationEvent","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","classNames","EuiIcon","EuiBadge","randomId","useState","EuiPopover","fn","EuiButtonIcon","concat","on","queue","optional","templateOnly"],"mappings":";;;;;;;;;;;;;;;;;AAwCA,MAAMA,oBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAwGA,y4EAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,UAAA;IAAAC,OAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,QAAA;gBAAAC,mBAAA;IAAAC,EAAA;IAAAC,aAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,KAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-notification-event-meta.js","sources":["../../src/components/eui-notification-event-meta.gts"],"sourcesContent":["import { concat } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport queue from '@nullvoxpopuli/ember-composable-helpers/helpers/queue';\nimport { and } 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 EuiBadge from './eui-badge.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiPopover from './eui-popover.gts';\n\nimport type { EuiBadgeSignature } from './eui-badge';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiNotificationEventSignature {\n Element: HTMLDivElement;\n Args: {\n id?: string;\n time?: string;\n type?: string;\n severity?: string;\n iconType?: EuiIconSignature['Args']['type'];\n iconColor?: EuiIconSignature['Args']['color'];\n iconAriaLabel?: EuiIconSignature['Args']['aria-label'];\n badgeColor?: EuiBadgeSignature['Args']['color'];\n hasDefaultBlock?: boolean;\n onOpenContextMenu?: (e: MouseEvent) => void;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst EuiNotificationEvent: TemplateOnlyComponent<EuiNotificationEventSignature> =\n <template>\n {{#let\n (and (argOrDefault @hasDefaultBlock true) (has-block))\n as |hasDefaultBlock|\n }}\n <div\n class={{classNames\n \"euiNotificationEventMeta\"\n (if hasDefaultBlock \"euiNotificationEventMeta--hasContextMenu\")\n }}\n ...attributes\n >\n <div class=\"euiNotificationEventMeta__section\">\n\n {{#if @iconType}}\n <EuiIcon\n @iconClasses=\"euiNotificationEventMeta__icon\"\n @type={{@iconType}}\n @color={{@iconColor}}\n {{! TODO only add one of the following html attributes }}\n aria-label={{@iconAriaLabel}}\n aria-hidden={{if @iconAriaLabel false true}}\n />\n {{/if}}\n\n {{#if @type}}\n <EuiBadge\n class=\"euiNotificationEventMeta__badge\"\n @color={{@badgeColor}}\n >\n {{#if @severity}}\n {{@type}}:\n {{@severity}}\n {{else}}\n {{@type}}\n {{/if}}\n </EuiBadge>\n {{/if}}\n\n </div>\n\n <div class=\"euiNotificationEventMeta__section\">\n <span class=\"euiNotificationEventMeta__time\">{{@time}}</span>\n </div>\n\n {{#if hasDefaultBlock}}\n {{#let\n (randomId) (useState false)\n as |randomPopoverId isPopoverOpen|\n }}\n <div class=\"euiNotificationEventMeta__contextMenuWrapper\">\n <EuiPopover\n id={{randomPopoverId}}\n @ownFocus={{true}}\n @repositionOnScroll={{true}}\n @isOpen={{isPopoverOpen.value}}\n @panelPaddingSize=\"none\"\n @anchorPosition=\"leftUp\"\n @closePopover={{fn isPopoverOpen.setState false}}\n >\n\n <:button>\n <EuiButtonIcon\n {{! aria-label={contextMenuButton} }}\n aria-controls={{randomPopoverId}}\n aria-expanded={{isPopoverOpen.value}}\n aria-haspopup=\"true\"\n @iconType=\"boxesVertical\"\n @color=\"text\"\n data-test-subj={{concat @id \"-notificationEventMetaButton\"}}\n {{on\n \"click\"\n (if\n isPopoverOpen.value\n (fn isPopoverOpen.setState false)\n (fn isPopoverOpen.setState true)\n )\n }}\n />\n </:button>\n\n {{! The EuiContextMenu is wrapped with a div so it closes after an item is clicked }}\n <:content>\n <div\n {{on\n \"click\"\n (queue\n (optional @onOpenContextMenu)\n (fn isPopoverOpen.setState false)\n )\n }}\n role=\"button\"\n >\n {{yield}}\n </div>\n </:content>\n\n </EuiPopover>\n </div>\n {{/let}}\n {{/if}}\n\n </div>\n {{/let}}\n </template>;\n\nexport default EuiNotificationEvent;\n"],"names":["EuiNotificationEvent","setComponentTemplate","precompileTemplate","strictMode","scope","and","argOrDefault","classNames","EuiIcon","EuiBadge","randomId","useState","EuiPopover","fn","EuiButtonIcon","concat","on","queue","optional","templateOnly"],"mappings":";;;;;;;;;;;;;;;;;AAwCA,MAAMA,oBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAwGA,y4EAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,GAAA;IAAAC,YAAA;IAAAC,UAAA;IAAAC,OAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,QAAA;gBAAAC,mBAAA;IAAAC,EAAA;IAAAC,aAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,KAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { on } from '@ember/modifier';
2
- import optional from 'ember-composable-helpers/helpers/optional';
2
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
3
3
  import { element } from 'ember-element-helper';
4
4
  import { or, eq, and } from 'ember-truth-helpers';
5
5
  import randomId from '../-private/random-id.js';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-notification-event.js","sources":["../../src/components/eui-notification-event.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { element } from 'ember-element-helper';\nimport { and,eq, 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 typeOf from '../helpers/type-of.ts';\nimport EuiLink from './eui-link.gts';\nimport EuiNotificationEventMessages from './eui-notification-event-messages.gts';\nimport EuiNotificationEventMeta from './eui-notification-event-meta.gts';\nimport EuiNotificationEventReadButton from './eui-notification-event-read-button.gts';\nimport EuiNotificationEventReadIcon from './eui-notification-event-read-icon.gts';\nimport TextBlock from './text-block.gts';\n\nimport type { EuiBadgeSignature } from './eui-badge';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { EuiNotificationEventMessagesSignature } from './eui-notification-event-messages';\nimport type { TextBlockSignature } from './text-block';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiNotificationEventSignature {\n Element: any;\n Args: {\n id?: string;\n tagName?: string;\n hasContextMenuBlock?: boolean;\n hasPrimaryActionBlock?: boolean;\n isRead?: boolean;\n href?: string;\n onClickTitle?: (event: MouseEvent) => void;\n onRead?: (event: MouseEvent) => void;\n onOpenContextMenu?: (event: MouseEvent) => void;\n title?: string;\n type?: string;\n severity?: string;\n badgeColor?: EuiBadgeSignature['Args']['color'];\n iconType?: EuiIconSignature['Args']['type'];\n iconAriaLabel?: string;\n time?: string;\n iconColor?: string;\n readIconColor?: string;\n headingLevel?: TextBlockSignature['Args']['tagName'];\n messages: EuiNotificationEventMessagesSignature['Args']['messages'];\n accordionButtonText?: EuiNotificationEventMessagesSignature['Args']['accordionButtonText'];\n accordionHideText?: EuiNotificationEventMessagesSignature['Args']['accordionHideText'];\n };\n Blocks: {\n default: [];\n contextMenu: [];\n primaryAction: [];\n };\n}\n\nconst EuiNotificationEvent: TemplateOnlyComponent<EuiNotificationEventSignature> =\n <template>\n {{#let\n (randomId)\n (element (argOrDefault @tagName \"article\"))\n (and (argOrDefault @hasContextMenuBlock true) (has-block \"contextMenu\"))\n (and\n (argOrDefault @hasPrimaryActionBlock true) (has-block \"primaryAction\")\n )\n as |id Element hasContextMenuBlock hasPrimaryActionBlock|\n }}\n <Element\n aria-labelledby={{id}}\n key={{@id}}\n class={{classNames\n \"euiNotificationEvent\"\n (if\n (eq (typeOf @isRead) \"boolean\")\n \"euiNotificationEvent--withReadState\"\n )\n }}\n ...attributes\n >\n\n {{#if (eq (typeOf @isRead) \"boolean\")}}\n <div class=\"euiNotificationEvent__readButton\">\n {{#if @onRead}}\n <EuiNotificationEventReadButton\n @id={{@id}}\n @isRead={{@isRead}}\n @eventName={{@title}}\n {{on \"click\" @onRead}}\n />\n {{else}}\n <EuiNotificationEventReadIcon\n @id={{@id}}\n @isRead={{@isRead}}\n @eventName={{@title}}\n @readIconColor={{@readIconColor}}\n />\n {{/if}}\n </div>\n {{/if}}\n\n <div class=\"euiNotificationEvent__content\">\n <EuiNotificationEventMeta\n @id={{@id}}\n @type={{@type}}\n @severity={{@severity}}\n @badgeColor={{@badgeColor}}\n @iconType={{@iconType}}\n @iconAriaLabel={{@iconAriaLabel}}\n @time={{@time}}\n @onOpenContextMenu={{@onOpenContextMenu}}\n @hasDefaultBlock={{hasContextMenuBlock}}\n @iconColor={{@iconColor}}\n >\n {{yield to=\"contextMenu\"}}\n </EuiNotificationEventMeta>\n\n {{#let\n (classNames\n \"euiNotificationEvent__title\"\n (if @isRead \"euiNotificationEvent__title--isRead\")\n )\n (argOrDefault @headingLevel \"h2\")\n as |classNames headingLevel|\n }}\n {{#if (or @href @onClickTitle)}}\n <EuiLink\n class={{classNames}}\n id={{id}}\n @href={{@href}}\n {{on \"click\" (optional @onClickTitle)}}\n >\n <TextBlock @tagName={{headingLevel}}>\n {{@title}}\n </TextBlock>\n </EuiLink>\n {{else if @title}}\n <TextBlock\n id={{id}}\n class={{classNames}}\n @tagName={{headingLevel}}\n >\n {{@title}}\n </TextBlock>\n {{/if}}\n {{/let}}\n\n <EuiNotificationEventMessages\n @messages={{@messages}}\n @accordionButtonText={{@accordionButtonText}}\n @accordionHideText={{@accordionHideText}}\n />\n\n {{#if hasPrimaryActionBlock}}\n <div class=\"euiNotificationEvent__primaryAction\">\n {{yield to=\"primaryAction\"}}\n </div>\n {{/if}}\n\n </div>\n\n </Element>\n {{/let}}\n </template>;\n\nexport default EuiNotificationEvent;\n"],"names":["EuiNotificationEvent","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","element","argOrDefault","and","classNames","eq","typeOf","EuiNotificationEventReadButton","on","EuiNotificationEventReadIcon","EuiNotificationEventMeta","or","EuiLink","optional","TextBlock","EuiNotificationEventMessages","templateOnly"],"mappings":";;;;;;;;;;;;;;;;;;AAwDA,MAAMA,oBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAyGA,08EAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,QAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,GAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,MAAA;IAAAC,8BAAA;IAAAC,EAAA;IAAAC,4BAAA;8BAAAC,sBAAA;IAAAC,EAAA;IAAAC,OAAA;IAAAC,QAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-notification-event.js","sources":["../../src/components/eui-notification-event.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { element } from 'ember-element-helper';\nimport { and, eq, 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 typeOf from '../helpers/type-of.ts';\nimport EuiLink from './eui-link.gts';\nimport EuiNotificationEventMessages from './eui-notification-event-messages.gts';\nimport EuiNotificationEventMeta from './eui-notification-event-meta.gts';\nimport EuiNotificationEventReadButton from './eui-notification-event-read-button.gts';\nimport EuiNotificationEventReadIcon from './eui-notification-event-read-icon.gts';\nimport TextBlock from './text-block.gts';\n\nimport type { EuiBadgeSignature } from './eui-badge';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { EuiNotificationEventMessagesSignature } from './eui-notification-event-messages';\nimport type { TextBlockSignature } from './text-block';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface EuiNotificationEventSignature {\n Element: any;\n Args: {\n id?: string;\n tagName?: string;\n hasContextMenuBlock?: boolean;\n hasPrimaryActionBlock?: boolean;\n isRead?: boolean;\n href?: string;\n onClickTitle?: (event: MouseEvent) => void;\n onRead?: (event: MouseEvent) => void;\n onOpenContextMenu?: (event: MouseEvent) => void;\n title?: string;\n type?: string;\n severity?: string;\n badgeColor?: EuiBadgeSignature['Args']['color'];\n iconType?: EuiIconSignature['Args']['type'];\n iconAriaLabel?: string;\n time?: string;\n iconColor?: string;\n readIconColor?: string;\n headingLevel?: TextBlockSignature['Args']['tagName'];\n messages: EuiNotificationEventMessagesSignature['Args']['messages'];\n accordionButtonText?: EuiNotificationEventMessagesSignature['Args']['accordionButtonText'];\n accordionHideText?: EuiNotificationEventMessagesSignature['Args']['accordionHideText'];\n };\n Blocks: {\n default: [];\n contextMenu: [];\n primaryAction: [];\n };\n}\n\nconst EuiNotificationEvent: TemplateOnlyComponent<EuiNotificationEventSignature> =\n <template>\n {{#let\n (randomId)\n (element (argOrDefault @tagName \"article\"))\n (and (argOrDefault @hasContextMenuBlock true) (has-block \"contextMenu\"))\n (and\n (argOrDefault @hasPrimaryActionBlock true) (has-block \"primaryAction\")\n )\n as |id Element hasContextMenuBlock hasPrimaryActionBlock|\n }}\n <Element\n aria-labelledby={{id}}\n key={{@id}}\n class={{classNames\n \"euiNotificationEvent\"\n (if\n (eq (typeOf @isRead) \"boolean\")\n \"euiNotificationEvent--withReadState\"\n )\n }}\n ...attributes\n >\n\n {{#if (eq (typeOf @isRead) \"boolean\")}}\n <div class=\"euiNotificationEvent__readButton\">\n {{#if @onRead}}\n <EuiNotificationEventReadButton\n @id={{@id}}\n @isRead={{@isRead}}\n @eventName={{@title}}\n {{on \"click\" @onRead}}\n />\n {{else}}\n <EuiNotificationEventReadIcon\n @id={{@id}}\n @isRead={{@isRead}}\n @eventName={{@title}}\n @readIconColor={{@readIconColor}}\n />\n {{/if}}\n </div>\n {{/if}}\n\n <div class=\"euiNotificationEvent__content\">\n <EuiNotificationEventMeta\n @id={{@id}}\n @type={{@type}}\n @severity={{@severity}}\n @badgeColor={{@badgeColor}}\n @iconType={{@iconType}}\n @iconAriaLabel={{@iconAriaLabel}}\n @time={{@time}}\n @onOpenContextMenu={{@onOpenContextMenu}}\n @hasDefaultBlock={{hasContextMenuBlock}}\n @iconColor={{@iconColor}}\n >\n {{yield to=\"contextMenu\"}}\n </EuiNotificationEventMeta>\n\n {{#let\n (classNames\n \"euiNotificationEvent__title\"\n (if @isRead \"euiNotificationEvent__title--isRead\")\n )\n (argOrDefault @headingLevel \"h2\")\n as |classNames headingLevel|\n }}\n {{#if (or @href @onClickTitle)}}\n <EuiLink\n class={{classNames}}\n id={{id}}\n @href={{@href}}\n {{on \"click\" (optional @onClickTitle)}}\n >\n <TextBlock @tagName={{headingLevel}}>\n {{@title}}\n </TextBlock>\n </EuiLink>\n {{else if @title}}\n <TextBlock\n id={{id}}\n class={{classNames}}\n @tagName={{headingLevel}}\n >\n {{@title}}\n </TextBlock>\n {{/if}}\n {{/let}}\n\n <EuiNotificationEventMessages\n @messages={{@messages}}\n @accordionButtonText={{@accordionButtonText}}\n @accordionHideText={{@accordionHideText}}\n />\n\n {{#if hasPrimaryActionBlock}}\n <div class=\"euiNotificationEvent__primaryAction\">\n {{yield to=\"primaryAction\"}}\n </div>\n {{/if}}\n\n </div>\n\n </Element>\n {{/let}}\n </template>;\n\nexport default EuiNotificationEvent;\n"],"names":["EuiNotificationEvent","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","element","argOrDefault","and","classNames","eq","typeOf","EuiNotificationEventReadButton","on","EuiNotificationEventReadIcon","EuiNotificationEventMeta","or","EuiLink","optional","TextBlock","EuiNotificationEventMessages","templateOnly"],"mappings":";;;;;;;;;;;;;;;;;;AAwDA,MAAMA,oBACJ,GAAAC,oBAAA,CAAAC,kBAAA,CAyGA,08EAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,QAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,GAAA;IAAAC,UAAA;IAAAC,EAAA;IAAAC,MAAA;IAAAC,8BAAA;IAAAC,EAAA;IAAAC,4BAAA;8BAAAC,sBAAA;IAAAC,EAAA;IAAAC,OAAA;IAAAC,QAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -14,7 +14,7 @@ class EuiOverlayMaskComponent extends Component {
14
14
  static {
15
15
  g(this.prototype, "overlayMaskNode", [tracked]);
16
16
  }
17
- #overlayMaskNode = (i(this, "overlayMaskNode"), undefined);
17
+ #overlayMaskNode = (i(this, "overlayMaskNode"), void 0);
18
18
  destinationElement = document.body;
19
19
  onClick(e) {
20
20
  if (e.target === this.overlayMaskNode) {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-overlay-mask.js","sources":["../../src/components/eui-overlay-mask.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport setBodyClass from 'ember-set-body-class/helpers/set-body-class';\nimport { eq } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\n\ninterface EuiOverlayMaskArgs {\n onClick?: (e: Event) => void;\n headerZindexLocation?: 'above' | 'below';\n}\n\nexport interface EuiOverlayMaskSignature {\n Element: HTMLDivElement;\n Args: EuiOverlayMaskArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiOverlayMaskComponent extends Component<EuiOverlayMaskSignature> {\n @tracked overlayMaskNode: HTMLDivElement | undefined;\n\n destinationElement = document.body;\n\n @action\n onClick(e: MouseEvent) {\n if (e.target === this.overlayMaskNode) {\n this.args.onClick?.(e);\n }\n }\n\n @action\n setOverlayMaskNode(node: HTMLDivElement) {\n this.overlayMaskNode = node;\n }\n\n <template>\n {{(setBodyClass \"euiBody-hasOverlayMask\")}}\n {{#in-element this.destinationElement insertBefore=null}}\n <div\n class={{classNames\n \"euiOverlayMask\"\n (unless\n (eq @headerZindexLocation \"below\")\n \"euiOverlayMask--aboveHeader\"\n \"euiOverlayMask--belowHeader\"\n )\n }}\n {{didInsert this.setOverlayMaskNode}}\n {{! template-lint-disable }}\n {{on \"click\" this.onClick}}\n ...attributes\n >\n {{yield}}\n </div>\n {{/in-element}}\n </template>\n}\n"],"names":["EuiOverlayMaskComponent","Component","g","prototype","tracked","i","void 0","destinationElement","document","body","onClick","e","target","overlayMaskNode","args","n","action","setOverlayMaskNode","node","setComponentTemplate","precompileTemplate","strictMode","scope","setBodyClass","classNames","eq","didInsert","on"],"mappings":";;;;;;;;;;;;AAwBe,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CAC5DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,gBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,EAAAC,SAAA;EAEDC,kBAAqB,GAAAC,QAAA,CAASC,IAAI;EAGlCC,OAAQA,CAAAC,CAAa,EAAE;AACrB,IAAA,IAAIA,EAAEC,MAAM,KAAK,IAAI,CAACC,eAAe,EAAE;AACrC,MAAA,IAAI,CAACC,IAAI,CAACJ,OAAO,GAAGC,CAAA,CAAA;AACtB;AACF;AAAA,EAAA;IAAAI,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,SAAA,EAAA,CALCa,MAAA,CAAA,CAAA;AAAA;EAQDC,kBAAmBA,CAAAC,IAAoB,EAAE;IACvC,IAAI,CAACL,eAAe,GAAGK,IAAA;AACzB;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,oBAAA,EAAA,CAHCa,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAoBA,ocAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-overlay-mask.js","sources":["../../src/components/eui-overlay-mask.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport setBodyClass from 'ember-set-body-class/helpers/set-body-class';\nimport { eq } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\n\ninterface EuiOverlayMaskArgs {\n onClick?: (e: Event) => void;\n headerZindexLocation?: 'above' | 'below';\n}\n\nexport interface EuiOverlayMaskSignature {\n Element: HTMLDivElement;\n Args: EuiOverlayMaskArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiOverlayMaskComponent extends Component<EuiOverlayMaskSignature> {\n @tracked overlayMaskNode: HTMLDivElement | undefined;\n\n destinationElement = document.body;\n\n @action\n onClick(e: MouseEvent) {\n if (e.target === this.overlayMaskNode) {\n this.args.onClick?.(e);\n }\n }\n\n @action\n setOverlayMaskNode(node: HTMLDivElement) {\n this.overlayMaskNode = node;\n }\n\n <template>\n {{(setBodyClass \"euiBody-hasOverlayMask\")}}\n {{#in-element this.destinationElement insertBefore=null}}\n <div\n class={{classNames\n \"euiOverlayMask\"\n (unless\n (eq @headerZindexLocation \"below\")\n \"euiOverlayMask--aboveHeader\"\n \"euiOverlayMask--belowHeader\"\n )\n }}\n {{didInsert this.setOverlayMaskNode}}\n {{! template-lint-disable }}\n {{on \"click\" this.onClick}}\n ...attributes\n >\n {{yield}}\n </div>\n {{/in-element}}\n </template>\n}\n"],"names":["EuiOverlayMaskComponent","Component","g","prototype","tracked","i","void 0","destinationElement","document","body","onClick","e","target","overlayMaskNode","args","n","action","setOverlayMaskNode","node","setComponentTemplate","precompileTemplate","strictMode","scope","setBodyClass","classNames","eq","didInsert","on"],"mappings":";;;;;;;;;;;;AAwBe,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CAC5DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,gBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,EAAAC,MAAA;EAEDC,kBAAqB,GAAAC,QAAA,CAASC,IAAI;EAGlCC,OAAQA,CAAAC,CAAa,EAAE;AACrB,IAAA,IAAIA,EAAEC,MAAM,KAAK,IAAI,CAACC,eAAe,EAAE;AACrC,MAAA,IAAI,CAACC,IAAI,CAACJ,OAAO,GAAGC,CAAA,CAAA;AACtB;AACF;AAAA,EAAA;IAAAI,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,SAAA,EAAA,CALCa,MAAA,CAAA,CAAA;AAAA;EAQDC,kBAAmBA,CAAAC,IAAoB,EAAE;IACvC,IAAI,CAACL,eAAe,GAAGK,IAAA;AACzB;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,oBAAA,EAAA,CAHCa,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAoBA,ocAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import Component from '@glimmer/component';
2
2
  import { array } from '@ember/helper';
3
3
  import { on } from '@ember/modifier';
4
- import optional from 'ember-composable-helpers/helpers/optional';
4
+ import optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';
5
5
  import style from 'ember-style-modifier/modifiers/style';
6
6
  import { eq, not, or, and } from 'ember-truth-helpers';
7
7
  import argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.js';
@@ -27,15 +27,15 @@ class EuiPageHeaderContent extends Component {
27
27
  static {
28
28
  g(this.prototype, "minHeight", [argOrDefaultDecorator(460)]);
29
29
  }
30
- #minHeight = (i(this, "minHeight"), undefined); // Defaults
30
+ #minHeight = (i(this, "minHeight"), void 0); // Defaults
31
31
  static {
32
32
  g(this.prototype, "fullHeight", [argOrDefaultDecorator(false)]);
33
33
  }
34
- #fullHeight = (i(this, "fullHeight"), undefined);
34
+ #fullHeight = (i(this, "fullHeight"), void 0);
35
35
  static {
36
36
  g(this.prototype, "template", [argOrDefaultDecorator('default')]);
37
37
  }
38
- #template = (i(this, "template"), undefined);
38
+ #template = (i(this, "template"), void 0);
39
39
  get classes() {
40
40
  return 'euiPageTemplate '.concat(this.fullHeightClass);
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-page-header-content.js","sources":["../../src/components/eui-page-header-content.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { array } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useState from '../helpers/use-state.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBreadcrumbs from './eui-breadcrumbs.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiTab from './eui-tab.gts';\nimport EuiTabs from './eui-tabs.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-page-content-body.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiBreadcrumbsSignature } from './eui-breadcrumbs';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { IEuiTab } from './eui-tab';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\n\ntype Tab = IEuiTab & {\n label?: string;\n onClick?: () => void;\n};\n\nexport type EuiPageHeaderContentProps = {\n template?: (typeof TEMPLATES)[number];\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */\n bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */\n fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */\n minHeight?: number;\n\n /**\n * Restrict the width of the page content body\n */\n restrictWidth?: boolean | string;\n\n /**\n * Adds a bottom border to the page header\n */\n bottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyBottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n /**\n * Adds a bottom border to the page content body\n */\n contentProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n\n alignItems?: 'top' | 'bottom' | 'center' | 'stretch';\n\n responsive?: boolean | 'reverse';\n\n hasDescriptionBlock?: boolean;\n\n hasRightSideItemsBlock?: boolean;\n\n hasPageTitleBlock?: boolean;\n\n hasDefaultBlock?: boolean;\n\n pageTitle?: string;\n\n breadcrumbs?: EuiBreadcrumbsSignature['Args']['breadcrumbs'];\n\n breadcrumbProps?: {\n className?: string;\n };\n\n rightSideGroupProps?: {\n className?: string;\n };\n\n pageTitleProps?: {\n className?: string;\n };\n\n iconType?: EuiIconSignature['Args']['type'];\n\n description?: string;\n\n iconProps?: {\n className?: string;\n };\n\n tabs?: Tab[];\n};\n\nexport interface EuiPageHeaderContentSignature {\n Element: HTMLDivElement;\n Args: EuiPageHeaderContentProps;\n Blocks: {\n default: [];\n pageTitle: [];\n description: [];\n rightSideItems: [WithBoundArgs<typeof EuiFlexItem, 'grow'>?];\n };\n}\n\nexport default class EuiPageHeaderContent extends Component<EuiPageHeaderContentSignature> {\n // Defaults\n @argOrDefaultDecorator(460) minHeight!: number;\n @argOrDefaultDecorator(false) fullHeight!: boolean;\n @argOrDefaultDecorator('default') template!: (typeof TEMPLATES)[number];\n\n get classes() {\n return 'euiPageTemplate '.concat(this.fullHeightClass);\n }\n\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight\n ? 'eui-fullHeight eui-yScroll'\n : '';\n }\n\n get canFullHeight() {\n return this.template === 'default' || this.template === 'empty';\n }\n\n <template>\n {{#let\n (argOrDefault @responsive true)\n (argOrDefault @alignItems \"top\")\n (useState false)\n (and (argOrDefault @hasDescriptionBlock true) (has-block \"description\"))\n (and\n (argOrDefault @hasRightSideItemsBlock true) (has-block \"rightSideItems\")\n )\n (or\n (and (argOrDefault @hasPageTitleBlock true) (has-block \"pageTitle\"))\n @pageTitle\n )\n (and (argOrDefault @hasDefaultBlock true) (has-block \"default\"))\n as |responsive alignItems isResponsiveBreakpoint hasDescriptionBlock hasRightSideItemsBlock hasPageTitleBlock hasDefaultBlock|\n }}\n <div\n class={{classNames\n \"euiPageHeaderContent\"\n (if @restrictWidth \"euiPanel--restrictWidth-custom\" \"\")\n }}\n {{style (inlineStyles width=@restrictWidth)}}\n {{useIsWithinBreakpoints\n sizes=(array \"xs\" \"s\")\n isActive=(not (not responsive))\n setIsWithinBreakpointsValue=isResponsiveBreakpoint.setState\n }}\n ...attributes\n >\n {{#if @breadcrumbs}}\n <EuiBreadcrumbs\n @breadcrumbs={{@breadcrumbs}}\n class={{@breadcrumbProps.className}}\n />\n <EuiSpacer @size=\"s\" />\n {{/if}}\n {{#if (or (eq alignItems \"top\") isResponsiveBreakpoint.value)}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n @alignItems={{if hasPageTitleBlock \"flexStart\" \"baseline\"}}\n @gutterSize=\"l\"\n >\n {{#if (and isResponsiveBreakpoint.value (eq responsive \"reverse\"))}}\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{else}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n {{/if}}\n </EuiFlexGroup>\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n {{else}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n {{!@glint-expect-error}}\n @alignItems={{if (eq alignItems \"bottom\") \"flexEnd\" alignItems}}\n @gutterSize=\"l\"\n >\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs\n @size=\"l\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n </EuiFlexGroup>\n {{/if}}\n </div>\n {{/let}}\n </template>\n}\n"],"names":["TEMPLATES","EuiPageHeaderContent","Component","g","prototype","argOrDefaultDecorator","i","void 0","classes","concat","fullHeightClass","fullHeight","canFullHeight","template","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","useState","and","or","classNames","style","inlineStyles","useIsWithinBreakpoints","array","not","EuiBreadcrumbs","EuiSpacer","eq","EuiFlexGroup","EuiFlexItem","EuiTabs","EuiTab","on","optional","EuiTitle","EuiIcon","EuiText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAMA,SAAY,GAAA,CACvB,SAAA,EACA,cAAA,EACA,iBAAA,EACA,OAAA;AA6Ga,MAAMC,6BAA6BC,SAAU,CAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,MAAAC,SAAA,EAAA,WAAA,EAAA,CAEzDC,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,SAAA,EADvB;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,YAAA,EAAA,CAECC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,SAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,UAAA,EAAA,CACtBC,qBAAsB,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,SAAA;EAEvB,IAAIC,OAAUA,GAAA;AACZ,IAAA,OAAO,kBAAmB,CAAAC,MAAM,CAAC,IAAI,CAACC,eAAe,CAAA;AACvD;EAEA,IAAIA,eAAkBA,GAAA;IACpB,OAAO,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,aAAa,GACxC,4BACA,GAAA,EAAA;AACN;EAEA,IAAIA,aAAgBA,GAAA;IAClB,OAAO,IAAI,CAACC,QAAQ,KAAK,aAAa,IAAI,CAACA,QAAQ,KAAK,OAAA;AAC1D;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAyTA,6kRAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,UAAA;QAAAC,KAAA;QAAAC,YAAA;QAAAC,sBAAA;QAAAC,KAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,YAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,OAAA;AAAAC,iBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-page-header-content.js","sources":["../../src/components/eui-page-header-content.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { array } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, not, or } from 'ember-truth-helpers';\n\nimport argOrDefault, {\n argOrDefaultDecorator\n} from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useState from '../helpers/use-state.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBreadcrumbs from './eui-breadcrumbs.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiTab from './eui-tab.gts';\nimport EuiTabs from './eui-tabs.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-page-content-body.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiBreadcrumbsSignature } from './eui-breadcrumbs';\nimport type { EuiIconSignature } from './eui-icon';\nimport type { IEuiTab } from './eui-tab';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\n\ntype Tab = IEuiTab & {\n label?: string;\n onClick?: () => void;\n};\n\nexport type EuiPageHeaderContentProps = {\n template?: (typeof TEMPLATES)[number];\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */\n bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */\n fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */\n minHeight?: number;\n\n /**\n * Restrict the width of the page content body\n */\n restrictWidth?: boolean | string;\n\n /**\n * Adds a bottom border to the page header\n */\n bottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyBottomBorder?: boolean;\n\n /**\n * Adds a bottom border to the page content body\n */\n bodyProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n /**\n * Adds a bottom border to the page content body\n */\n contentProps?: {\n /**\n * Adds padding to the page content body\n */\n paddingSize?: keyof typeof paddingSizeMapping;\n };\n\n alignItems?: 'top' | 'bottom' | 'center' | 'stretch';\n\n responsive?: boolean | 'reverse';\n\n hasDescriptionBlock?: boolean;\n\n hasRightSideItemsBlock?: boolean;\n\n hasPageTitleBlock?: boolean;\n\n hasDefaultBlock?: boolean;\n\n pageTitle?: string;\n\n breadcrumbs?: EuiBreadcrumbsSignature['Args']['breadcrumbs'];\n\n breadcrumbProps?: {\n className?: string;\n };\n\n rightSideGroupProps?: {\n className?: string;\n };\n\n pageTitleProps?: {\n className?: string;\n };\n\n iconType?: EuiIconSignature['Args']['type'];\n\n description?: string;\n\n iconProps?: {\n className?: string;\n };\n\n tabs?: Tab[];\n};\n\nexport interface EuiPageHeaderContentSignature {\n Element: HTMLDivElement;\n Args: EuiPageHeaderContentProps;\n Blocks: {\n default: [];\n pageTitle: [];\n description: [];\n rightSideItems: [WithBoundArgs<typeof EuiFlexItem, 'grow'>?];\n };\n}\n\nexport default class EuiPageHeaderContent extends Component<EuiPageHeaderContentSignature> {\n // Defaults\n @argOrDefaultDecorator(460) minHeight!: number;\n @argOrDefaultDecorator(false) fullHeight!: boolean;\n @argOrDefaultDecorator('default') template!: (typeof TEMPLATES)[number];\n\n get classes() {\n return 'euiPageTemplate '.concat(this.fullHeightClass);\n }\n\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight\n ? 'eui-fullHeight eui-yScroll'\n : '';\n }\n\n get canFullHeight() {\n return this.template === 'default' || this.template === 'empty';\n }\n\n <template>\n {{#let\n (argOrDefault @responsive true)\n (argOrDefault @alignItems \"top\")\n (useState false)\n (and (argOrDefault @hasDescriptionBlock true) (has-block \"description\"))\n (and\n (argOrDefault @hasRightSideItemsBlock true) (has-block \"rightSideItems\")\n )\n (or\n (and (argOrDefault @hasPageTitleBlock true) (has-block \"pageTitle\"))\n @pageTitle\n )\n (and (argOrDefault @hasDefaultBlock true) (has-block \"default\"))\n as |responsive alignItems isResponsiveBreakpoint hasDescriptionBlock hasRightSideItemsBlock hasPageTitleBlock hasDefaultBlock|\n }}\n <div\n class={{classNames\n \"euiPageHeaderContent\"\n (if @restrictWidth \"euiPanel--restrictWidth-custom\" \"\")\n }}\n {{style (inlineStyles width=@restrictWidth)}}\n {{useIsWithinBreakpoints\n sizes=(array \"xs\" \"s\")\n isActive=(not (not responsive))\n setIsWithinBreakpointsValue=isResponsiveBreakpoint.setState\n }}\n ...attributes\n >\n {{#if @breadcrumbs}}\n <EuiBreadcrumbs\n @breadcrumbs={{@breadcrumbs}}\n class={{@breadcrumbProps.className}}\n />\n <EuiSpacer @size=\"s\" />\n {{/if}}\n {{#if (or (eq alignItems \"top\") isResponsiveBreakpoint.value)}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n @alignItems={{if hasPageTitleBlock \"flexStart\" \"baseline\"}}\n @gutterSize=\"l\"\n >\n {{#if (and isResponsiveBreakpoint.value (eq responsive \"reverse\"))}}\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{else}}\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n {{/if}}\n </EuiFlexGroup>\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs @size=\"l\" @display=\"condensed\" @bottomBorder={{false}}>\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n {{else}}\n <EuiFlexGroup\n class=\"euiPageHeaderContent__top\"\n @responsive={{not (not responsive)}}\n {{!@glint-expect-error}}\n @alignItems={{if (eq alignItems \"bottom\") \"flexEnd\" alignItems}}\n @gutterSize=\"l\"\n >\n <EuiFlexItem>\n {{#if (and (not hasPageTitleBlock) @tabs)}}\n <EuiTabs\n @size=\"xl\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n {{#if hasPageTitleBlock}}\n <EuiTitle\n class={{@pageTitleProps.className}}\n @size=\"l\"\n @tagName=\"h1\"\n >\n {{#if @iconType}}\n <EuiIcon\n @size=\"xl\"\n @type={{@iconType}}\n @iconClasses={{classNames\n \"euiPageHeaderContent__titleIcon\"\n @iconProps.className\n }}\n />\n {{/if}}\n\n {{@pageTitle}}\n {{yield to=\"pageTitle\"}}\n </EuiTitle>\n {{/if}}\n\n {{#if hasDescriptionBlock}}\n {{#if (or hasPageTitleBlock @tabs)}}\n <EuiSpacer />\n {{/if}}\n <EuiText @grow={{false}}>\n {{@description}}\n {{yield to=\"description\"}}\n </EuiText>\n {{/if}}\n {{#if (or hasDefaultBlock (and hasPageTitleBlock @tabs))}}\n <div class=\"euiPageHeaderContent__bottom\">\n <EuiSpacer />\n {{yield to=\"default\"}}\n {{#if hasPageTitleBlock}}\n <EuiTabs\n @size=\"l\"\n @display=\"condensed\"\n @bottomBorder={{false}}\n >\n {{#each @tabs as |tab|}}\n <EuiTab\n @id={{tab.id}}\n @disabled={{tab.disabled}}\n @isSelected={{tab.isSelected}}\n @href={{tab.href}}\n {{on \"click\" (optional tab.onClick)}}\n >\n {{tab.label}}\n </EuiTab>\n {{/each}}\n </EuiTabs>\n {{/if}}\n </div>\n {{/if}}\n </EuiFlexItem>\n {{#if hasRightSideItemsBlock}}\n <EuiFlexItem @grow={{false}}>\n <EuiFlexGroup\n @wrap={{true}}\n @responsive={{false}}\n class={{classNames\n \"euiPageHeaderContent__rightSideItems\"\n @rightSideGroupProps.className\n }}\n >\n {{yield\n (component EuiFlexItem grow=false)\n to=\"rightSideItems\"\n }}\n </EuiFlexGroup>\n </EuiFlexItem>\n {{/if}}\n </EuiFlexGroup>\n {{/if}}\n </div>\n {{/let}}\n </template>\n}\n"],"names":["TEMPLATES","EuiPageHeaderContent","Component","g","prototype","argOrDefaultDecorator","i","void 0","classes","concat","fullHeightClass","fullHeight","canFullHeight","template","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","useState","and","or","classNames","style","inlineStyles","useIsWithinBreakpoints","array","not","EuiBreadcrumbs","EuiSpacer","eq","EuiFlexGroup","EuiFlexItem","EuiTabs","EuiTab","on","optional","EuiTitle","EuiIcon","EuiText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAMA,SAAY,GAAA,CACvB,SAAA,EACA,cAAA,EACA,iBAAA,EACA,OAAA;AA6Ga,MAAMC,6BAA6BC,SAAU,CAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,MAAAC,SAAA,EAAA,WAAA,EAAA,CAEzDC,qBAAsB,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA,EADvB;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,YAAA,EAAA,CAECC,qBAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,MAAAC,SAAA,EAAA,UAAA,EAAA,CACtBC,qBAAsB,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;EAEvB,IAAIC,OAAUA,GAAA;AACZ,IAAA,OAAO,kBAAmB,CAAAC,MAAM,CAAC,IAAI,CAACC,eAAe,CAAA;AACvD;EAEA,IAAIA,eAAkBA,GAAA;IACpB,OAAO,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,aAAa,GACxC,4BACA,GAAA,EAAA;AACN;EAEA,IAAIA,aAAgBA,GAAA;IAClB,OAAO,IAAI,CAACC,QAAQ,KAAK,aAAa,IAAI,CAACA,QAAQ,KAAK,OAAA;AAC1D;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAyTA,6kRAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,GAAA;QAAAC,EAAA;QAAAC,UAAA;QAAAC,KAAA;QAAAC,YAAA;QAAAC,sBAAA;QAAAC,KAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,YAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,OAAA;AAAAC,iBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -25,17 +25,17 @@ class EuiPageTemplate extends Component {
25
25
  static {
26
26
  g(this.prototype, "fullHeight", [argOrDefaultDecorator(false)]);
27
27
  }
28
- #fullHeight = (i(this, "fullHeight"), undefined); // Defaults
28
+ #fullHeight = (i(this, "fullHeight"), void 0); // Defaults
29
29
  static {
30
30
  g(this.prototype, "template", [argOrDefaultDecorator('default')]);
31
31
  }
32
- #template = (i(this, "template"), undefined);
32
+ #template = (i(this, "template"), void 0);
33
33
  static {
34
34
  g(this.prototype, "isWithinBreakpoints", [tracked], function () {
35
35
  return false;
36
36
  });
37
37
  }
38
- #isWithinBreakpoints = (i(this, "isWithinBreakpoints"), undefined);
38
+ #isWithinBreakpoints = (i(this, "isWithinBreakpoints"), void 0);
39
39
  setIsWithinBreakpoints = value => {
40
40
  this.isWithinBreakpoints = value;
41
41
  };