@ember-eui/core 10.0.0 → 10.0.1

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 (364) hide show
  1. package/dist/components/eui-accordion.js +11 -11
  2. package/dist/components/eui-accordion.js.map +1 -1
  3. package/dist/components/eui-auto-sizer.js +4 -4
  4. package/dist/components/eui-auto-sizer.js.map +1 -1
  5. package/dist/components/eui-avatar.js +5 -5
  6. package/dist/components/eui-avatar.js.map +1 -1
  7. package/dist/components/eui-badge-group.js +5 -5
  8. package/dist/components/eui-badge-group.js.map +1 -1
  9. package/dist/components/eui-badge.js +7 -7
  10. package/dist/components/eui-badge.js.map +1 -1
  11. package/dist/components/eui-beta-badge.js +4 -4
  12. package/dist/components/eui-beta-badge.js.map +1 -1
  13. package/dist/components/eui-bottom-bar.js +6 -6
  14. package/dist/components/eui-bottom-bar.js.map +1 -1
  15. package/dist/components/eui-breadcrumbs.js +12 -12
  16. package/dist/components/eui-breadcrumbs.js.map +1 -1
  17. package/dist/components/eui-button-content.js +4 -4
  18. package/dist/components/eui-button-content.js.map +1 -1
  19. package/dist/components/eui-button-empty.js +3 -3
  20. package/dist/components/eui-button-empty.js.map +1 -1
  21. package/dist/components/eui-button-group-button.js +8 -8
  22. package/dist/components/eui-button-group-button.js.map +1 -1
  23. package/dist/components/eui-button-group.js +5 -5
  24. package/dist/components/eui-button-group.js.map +1 -1
  25. package/dist/components/eui-button-icon.js +4 -4
  26. package/dist/components/eui-button-icon.js.map +1 -1
  27. package/dist/components/eui-button.js +6 -6
  28. package/dist/components/eui-button.js.map +1 -1
  29. package/dist/components/eui-call-out.js +5 -5
  30. package/dist/components/eui-call-out.js.map +1 -1
  31. package/dist/components/eui-card-select.js +5 -5
  32. package/dist/components/eui-card-select.js.map +1 -1
  33. package/dist/components/eui-card.js +13 -13
  34. package/dist/components/eui-card.js.map +1 -1
  35. package/dist/components/eui-checkable-card.js +5 -5
  36. package/dist/components/eui-checkable-card.js.map +1 -1
  37. package/dist/components/eui-checkbox-group.js +6 -6
  38. package/dist/components/eui-checkbox-group.js.map +1 -1
  39. package/dist/components/eui-checkbox.js +5 -5
  40. package/dist/components/eui-checkbox.js.map +1 -1
  41. package/dist/components/eui-code-block/controls.js +3 -3
  42. package/dist/components/eui-code-block/controls.js.map +1 -1
  43. package/dist/components/eui-code-block/full-screen-display.js +4 -4
  44. package/dist/components/eui-code-block/full-screen-display.js.map +1 -1
  45. package/dist/components/eui-code-block/virtualized.js +6 -6
  46. package/dist/components/eui-code-block/virtualized.js.map +1 -1
  47. package/dist/components/eui-code-block.js +14 -14
  48. package/dist/components/eui-code-block.js.map +1 -1
  49. package/dist/components/eui-code.js +8 -8
  50. package/dist/components/eui-code.js.map +1 -1
  51. package/dist/components/eui-collapsible-nav-group.js +6 -6
  52. package/dist/components/eui-collapsible-nav-group.js.map +1 -1
  53. package/dist/components/eui-collapsible-nav.js +7 -6
  54. package/dist/components/eui-collapsible-nav.js.map +1 -1
  55. package/dist/components/eui-combo-box/create-option.js +4 -4
  56. package/dist/components/eui-combo-box/create-option.js.map +1 -1
  57. package/dist/components/eui-combo-box/no-matches-message.js +2 -2
  58. package/dist/components/eui-combo-box/no-matches-message.js.map +1 -1
  59. package/dist/components/eui-combo-box/options.js +11 -11
  60. package/dist/components/eui-combo-box/options.js.map +1 -1
  61. package/dist/components/eui-combo-box/search-message.js +2 -2
  62. package/dist/components/eui-combo-box/search-message.js.map +1 -1
  63. package/dist/components/eui-combo-box/trigger/input.js +5 -5
  64. package/dist/components/eui-combo-box/trigger/input.js.map +1 -1
  65. package/dist/components/eui-combo-box/trigger.js +9 -9
  66. package/dist/components/eui-combo-box/trigger.js.map +1 -1
  67. package/dist/components/eui-combo-box-pill.js +4 -4
  68. package/dist/components/eui-combo-box-pill.js.map +1 -1
  69. package/dist/components/eui-combo-box.js +12 -12
  70. package/dist/components/eui-combo-box.js.map +1 -1
  71. package/dist/components/eui-comment-timeline.js +3 -3
  72. package/dist/components/eui-comment-timeline.js.map +1 -1
  73. package/dist/components/eui-comment.js +4 -4
  74. package/dist/components/eui-comment.js.map +1 -1
  75. package/dist/components/eui-confirm-modal.js +8 -8
  76. package/dist/components/eui-confirm-modal.js.map +1 -1
  77. package/dist/components/eui-context-menu-item.js +8 -8
  78. package/dist/components/eui-context-menu-item.js.map +1 -1
  79. package/dist/components/eui-copy.js +3 -3
  80. package/dist/components/eui-copy.js.map +1 -1
  81. package/dist/components/eui-described-form-group.js +4 -4
  82. package/dist/components/eui-described-form-group.js.map +1 -1
  83. package/dist/components/eui-description-list.js +4 -4
  84. package/dist/components/eui-description-list.js.map +1 -1
  85. package/dist/components/eui-dual-range.js +15 -15
  86. package/dist/components/eui-dual-range.js.map +1 -1
  87. package/dist/components/eui-empty-prompt.js +9 -9
  88. package/dist/components/eui-empty-prompt.js.map +1 -1
  89. package/dist/components/eui-field-number.js +5 -5
  90. package/dist/components/eui-field-number.js.map +1 -1
  91. package/dist/components/eui-field-password.js +9 -9
  92. package/dist/components/eui-field-password.js.map +1 -1
  93. package/dist/components/eui-field-search.js +11 -11
  94. package/dist/components/eui-field-search.js.map +1 -1
  95. package/dist/components/eui-field-text.js +5 -5
  96. package/dist/components/eui-field-text.js.map +1 -1
  97. package/dist/components/eui-file-picker.js +9 -9
  98. package/dist/components/eui-file-picker.js.map +1 -1
  99. package/dist/components/eui-flex-grid.js +4 -4
  100. package/dist/components/eui-flex-grid.js.map +1 -1
  101. package/dist/components/eui-flex-group.js +3 -3
  102. package/dist/components/eui-flex-group.js.map +1 -1
  103. package/dist/components/eui-flex-item.js +4 -4
  104. package/dist/components/eui-flex-item.js.map +1 -1
  105. package/dist/components/eui-flyout-body.js +3 -3
  106. package/dist/components/eui-flyout-body.js.map +1 -1
  107. package/dist/components/eui-flyout-header.js +2 -2
  108. package/dist/components/eui-flyout-header.js.map +1 -1
  109. package/dist/components/eui-flyout.js +15 -14
  110. package/dist/components/eui-flyout.js.map +1 -1
  111. package/dist/components/eui-form-control-layout-clear-button.js +3 -3
  112. package/dist/components/eui-form-control-layout-clear-button.js.map +1 -1
  113. package/dist/components/eui-form-control-layout-custom-icon.js +2 -2
  114. package/dist/components/eui-form-control-layout-custom-icon.js.map +1 -1
  115. package/dist/components/eui-form-control-layout-delimited.js +3 -3
  116. package/dist/components/eui-form-control-layout-delimited.js.map +1 -1
  117. package/dist/components/eui-form-control-layout-icons.js +5 -5
  118. package/dist/components/eui-form-control-layout-icons.js.map +1 -1
  119. package/dist/components/eui-form-control-layout.js +3 -3
  120. package/dist/components/eui-form-control-layout.js.map +1 -1
  121. package/dist/components/eui-form-fieldset.js +2 -2
  122. package/dist/components/eui-form-fieldset.js.map +1 -1
  123. package/dist/components/eui-form-label.js +3 -3
  124. package/dist/components/eui-form-label.js.map +1 -1
  125. package/dist/components/eui-form-legend.js +3 -3
  126. package/dist/components/eui-form-legend.js.map +1 -1
  127. package/dist/components/eui-form-row.js +8 -8
  128. package/dist/components/eui-form-row.js.map +1 -1
  129. package/dist/components/eui-form.js +4 -4
  130. package/dist/components/eui-form.js.map +1 -1
  131. package/dist/components/eui-global-toast-list.js +10 -10
  132. package/dist/components/eui-global-toast-list.js.map +1 -1
  133. package/dist/components/eui-header-alert.js +2 -2
  134. package/dist/components/eui-header-alert.js.map +1 -1
  135. package/dist/components/eui-header-breadcrumbs.js +2 -2
  136. package/dist/components/eui-header-breadcrumbs.js.map +1 -1
  137. package/dist/components/eui-header-link.js +3 -3
  138. package/dist/components/eui-header-link.js.map +1 -1
  139. package/dist/components/eui-header-links.js +9 -9
  140. package/dist/components/eui-header-links.js.map +1 -1
  141. package/dist/components/eui-header-logo.js +3 -3
  142. package/dist/components/eui-header-logo.js.map +1 -1
  143. package/dist/components/eui-header-section-item-button.js +6 -6
  144. package/dist/components/eui-header-section-item-button.js.map +1 -1
  145. package/dist/components/eui-header-section-item.js +3 -3
  146. package/dist/components/eui-header-section-item.js.map +1 -1
  147. package/dist/components/eui-header-section.js +3 -3
  148. package/dist/components/eui-header-section.js.map +1 -1
  149. package/dist/components/eui-header.js +4 -4
  150. package/dist/components/eui-header.js.map +1 -1
  151. package/dist/components/eui-health.js +3 -3
  152. package/dist/components/eui-health.js.map +1 -1
  153. package/dist/components/eui-horizontal-rule.js +3 -3
  154. package/dist/components/eui-horizontal-rule.js.map +1 -1
  155. package/dist/components/eui-i18n.js +4 -4
  156. package/dist/components/eui-i18n.js.map +1 -1
  157. package/dist/components/eui-icon-tip.js +4 -4
  158. package/dist/components/eui-icon-tip.js.map +1 -1
  159. package/dist/components/eui-icon.js +6 -6
  160. package/dist/components/eui-icon.js.map +1 -1
  161. package/dist/components/eui-image.js +9 -9
  162. package/dist/components/eui-image.js.map +1 -1
  163. package/dist/components/eui-inner-text.js +1 -1
  164. package/dist/components/eui-input-popover.js +9 -9
  165. package/dist/components/eui-input-popover.js.map +1 -1
  166. package/dist/components/eui-key-pad-menu-item.js +8 -8
  167. package/dist/components/eui-key-pad-menu-item.js.map +1 -1
  168. package/dist/components/eui-key-pad-menu.js +3 -3
  169. package/dist/components/eui-key-pad-menu.js.map +1 -1
  170. package/dist/components/eui-link.js +4 -4
  171. package/dist/components/eui-link.js.map +1 -1
  172. package/dist/components/eui-list-group-item.js +6 -6
  173. package/dist/components/eui-list-group-item.js.map +1 -1
  174. package/dist/components/eui-list-group.js +6 -6
  175. package/dist/components/eui-list-group.js.map +1 -1
  176. package/dist/components/eui-loading-content.js +2 -2
  177. package/dist/components/eui-loading-content.js.map +1 -1
  178. package/dist/components/eui-loading-logo.js +4 -4
  179. package/dist/components/eui-loading-logo.js.map +1 -1
  180. package/dist/components/eui-loading-spinner.js +3 -3
  181. package/dist/components/eui-loading-spinner.js.map +1 -1
  182. package/dist/components/eui-markdown-editor-drop-zone.js +2 -2
  183. package/dist/components/eui-markdown-editor-drop-zone.js.map +1 -1
  184. package/dist/components/eui-markdown-editor-footer.js +14 -14
  185. package/dist/components/eui-markdown-editor-footer.js.map +1 -1
  186. package/dist/components/eui-markdown-editor-text-area.js +3 -3
  187. package/dist/components/eui-markdown-editor-text-area.js.map +1 -1
  188. package/dist/components/eui-markdown-editor-toolbar.js +9 -9
  189. package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
  190. package/dist/components/eui-markdown-editor.js +16 -16
  191. package/dist/components/eui-markdown-editor.js.map +1 -1
  192. package/dist/components/eui-markdown-format/markdown-checkbox.js +4 -4
  193. package/dist/components/eui-markdown-format/markdown-checkbox.js.map +1 -1
  194. package/dist/components/eui-markdown-format/markdown-code-block.js +2 -2
  195. package/dist/components/eui-markdown-format/markdown-code-block.js.map +1 -1
  196. package/dist/components/eui-markdown-format/markdown-code.js +2 -2
  197. package/dist/components/eui-markdown-format/markdown-code.js.map +1 -1
  198. package/dist/components/eui-markdown-format/markdown-tooltip.js +3 -3
  199. package/dist/components/eui-markdown-format/markdown-tooltip.js.map +1 -1
  200. package/dist/components/eui-markdown-format.js +5 -5
  201. package/dist/components/eui-markdown-format.js.map +1 -1
  202. package/dist/components/eui-modal.js +11 -11
  203. package/dist/components/eui-modal.js.map +1 -1
  204. package/dist/components/eui-notification-badge.js +3 -3
  205. package/dist/components/eui-notification-badge.js.map +1 -1
  206. package/dist/components/eui-notification-event-messages.js +5 -5
  207. package/dist/components/eui-notification-event-messages.js.map +1 -1
  208. package/dist/components/eui-notification-event-meta.js +10 -10
  209. package/dist/components/eui-notification-event-meta.js.map +1 -1
  210. package/dist/components/eui-notification-event-read-button.js +3 -3
  211. package/dist/components/eui-notification-event-read-button.js.map +1 -1
  212. package/dist/components/eui-notification-event-read-icon.js +4 -4
  213. package/dist/components/eui-notification-event-read-icon.js.map +1 -1
  214. package/dist/components/eui-notification-event.js +9 -9
  215. package/dist/components/eui-notification-event.js.map +1 -1
  216. package/dist/components/eui-overlay-mask.js +6 -6
  217. package/dist/components/eui-overlay-mask.js.map +1 -1
  218. package/dist/components/eui-page-body.js +7 -7
  219. package/dist/components/eui-page-body.js.map +1 -1
  220. package/dist/components/eui-page-content-body.js +5 -5
  221. package/dist/components/eui-page-content-body.js.map +1 -1
  222. package/dist/components/eui-page-content-header.js +2 -2
  223. package/dist/components/eui-page-content-header.js.map +1 -1
  224. package/dist/components/eui-page-content.js +4 -4
  225. package/dist/components/eui-page-content.js.map +1 -1
  226. package/dist/components/eui-page-header-content.js +13 -13
  227. package/dist/components/eui-page-header-content.js.map +1 -1
  228. package/dist/components/eui-page-header.js +6 -6
  229. package/dist/components/eui-page-header.js.map +1 -1
  230. package/dist/components/eui-page-side-bar.js +3 -3
  231. package/dist/components/eui-page-side-bar.js.map +1 -1
  232. package/dist/components/eui-page-template.js +12 -12
  233. package/dist/components/eui-page-template.js.map +1 -1
  234. package/dist/components/eui-page.js +5 -5
  235. package/dist/components/eui-page.js.map +1 -1
  236. package/dist/components/eui-pagination/button-wrapper.js +5 -5
  237. package/dist/components/eui-pagination/button-wrapper.js.map +1 -1
  238. package/dist/components/eui-pagination/next-button.js +6 -6
  239. package/dist/components/eui-pagination/next-button.js.map +1 -1
  240. package/dist/components/eui-pagination/previous-button.js +5 -5
  241. package/dist/components/eui-pagination/previous-button.js.map +1 -1
  242. package/dist/components/eui-pagination-button.js +6 -6
  243. package/dist/components/eui-pagination-button.js.map +1 -1
  244. package/dist/components/eui-pagination.js +7 -7
  245. package/dist/components/eui-pagination.js.map +1 -1
  246. package/dist/components/eui-panel.js +4 -4
  247. package/dist/components/eui-panel.js.map +1 -1
  248. package/dist/components/eui-popover-footer.js +2 -2
  249. package/dist/components/eui-popover-footer.js.map +1 -1
  250. package/dist/components/eui-popover-title.js +2 -2
  251. package/dist/components/eui-popover-title.js.map +1 -1
  252. package/dist/components/eui-popover.js +18 -18
  253. package/dist/components/eui-popover.js.map +1 -1
  254. package/dist/components/eui-portal.js +1 -1
  255. package/dist/components/eui-progress.js +3 -3
  256. package/dist/components/eui-progress.js.map +1 -1
  257. package/dist/components/eui-radio-group.js +5 -5
  258. package/dist/components/eui-radio-group.js.map +1 -1
  259. package/dist/components/eui-radio.js +5 -5
  260. package/dist/components/eui-radio.js.map +1 -1
  261. package/dist/components/eui-range-highlight.js +4 -4
  262. package/dist/components/eui-range-highlight.js.map +1 -1
  263. package/dist/components/eui-range-input.js +5 -5
  264. package/dist/components/eui-range-input.js.map +1 -1
  265. package/dist/components/eui-range-label.js +3 -3
  266. package/dist/components/eui-range-label.js.map +1 -1
  267. package/dist/components/eui-range-levels.js +6 -6
  268. package/dist/components/eui-range-levels.js.map +1 -1
  269. package/dist/components/eui-range-slider.js +2 -2
  270. package/dist/components/eui-range-slider.js.map +1 -1
  271. package/dist/components/eui-range-thumb.js +3 -3
  272. package/dist/components/eui-range-thumb.js.map +1 -1
  273. package/dist/components/eui-range-ticks.js +6 -6
  274. package/dist/components/eui-range-ticks.js.map +1 -1
  275. package/dist/components/eui-range-tooltip.js +3 -3
  276. package/dist/components/eui-range-tooltip.js.map +1 -1
  277. package/dist/components/eui-range-track.js +8 -8
  278. package/dist/components/eui-range-track.js.map +1 -1
  279. package/dist/components/eui-range-wrapper.js +2 -2
  280. package/dist/components/eui-range-wrapper.js.map +1 -1
  281. package/dist/components/eui-range.js +12 -12
  282. package/dist/components/eui-range.js.map +1 -1
  283. package/dist/components/eui-select.js +6 -6
  284. package/dist/components/eui-select.js.map +1 -1
  285. package/dist/components/eui-selectable-list-item.js +3 -3
  286. package/dist/components/eui-selectable-list-item.js.map +1 -1
  287. package/dist/components/eui-show-for.js +1 -1
  288. package/dist/components/eui-side-nav-item/button.js +4 -4
  289. package/dist/components/eui-side-nav-item/button.js.map +1 -1
  290. package/dist/components/eui-side-nav-item.js +5 -5
  291. package/dist/components/eui-side-nav-item.js.map +1 -1
  292. package/dist/components/eui-side-nav.js +11 -11
  293. package/dist/components/eui-side-nav.js.map +1 -1
  294. package/dist/components/eui-spacer.js +3 -3
  295. package/dist/components/eui-spacer.js.map +1 -1
  296. package/dist/components/eui-split-panel/inner.js +3 -3
  297. package/dist/components/eui-split-panel/inner.js.map +1 -1
  298. package/dist/components/eui-split-panel/outer.js +5 -5
  299. package/dist/components/eui-split-panel/outer.js.map +1 -1
  300. package/dist/components/eui-stat/description.js +2 -2
  301. package/dist/components/eui-stat/description.js.map +1 -1
  302. package/dist/components/eui-stat/title.js +4 -4
  303. package/dist/components/eui-stat/title.js.map +1 -1
  304. package/dist/components/eui-stat.js +6 -6
  305. package/dist/components/eui-stat.js.map +1 -1
  306. package/dist/components/eui-step-horizontal.js +5 -5
  307. package/dist/components/eui-step-horizontal.js.map +1 -1
  308. package/dist/components/eui-step-number.js +4 -4
  309. package/dist/components/eui-step-number.js.map +1 -1
  310. package/dist/components/eui-step.js +4 -4
  311. package/dist/components/eui-step.js.map +1 -1
  312. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js +8 -8
  313. package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
  314. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js +8 -8
  315. package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
  316. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js +8 -8
  317. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
  318. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js +7 -7
  319. package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
  320. package/dist/components/eui-super-date-picker/date-popover/now-tab.js +6 -6
  321. package/dist/components/eui-super-date-picker/date-popover/now-tab.js.map +1 -1
  322. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js +11 -11
  323. package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
  324. package/dist/components/eui-super-date-picker/eui-date-picker-range.js +2 -2
  325. package/dist/components/eui-super-date-picker/eui-date-picker-range.js.map +1 -1
  326. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js +6 -6
  327. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js.map +1 -1
  328. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js +14 -14
  329. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
  330. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js +6 -6
  331. package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js.map +1 -1
  332. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js +9 -9
  333. package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
  334. package/dist/components/eui-super-date-picker/eui-super-update-button.js +6 -6
  335. package/dist/components/eui-super-date-picker/eui-super-update-button.js.map +1 -1
  336. package/dist/components/eui-super-date-picker.js +9 -9
  337. package/dist/components/eui-super-date-picker.js.map +1 -1
  338. package/dist/components/eui-switch.js +6 -6
  339. package/dist/components/eui-switch.js.map +1 -1
  340. package/dist/components/eui-tab.js +4 -4
  341. package/dist/components/eui-tab.js.map +1 -1
  342. package/dist/components/eui-tabbed-content.js +9 -9
  343. package/dist/components/eui-tabbed-content.js.map +1 -1
  344. package/dist/components/eui-tabs.js +2 -2
  345. package/dist/components/eui-tabs.js.map +1 -1
  346. package/dist/components/eui-text-align.js +3 -3
  347. package/dist/components/eui-text-align.js.map +1 -1
  348. package/dist/components/eui-text-area.js +6 -6
  349. package/dist/components/eui-text-area.js.map +1 -1
  350. package/dist/components/eui-text-color.js +3 -3
  351. package/dist/components/eui-text-color.js.map +1 -1
  352. package/dist/components/eui-text.js +4 -4
  353. package/dist/components/eui-text.js.map +1 -1
  354. package/dist/components/eui-title.js +3 -3
  355. package/dist/components/eui-title.js.map +1 -1
  356. package/dist/components/eui-toast.js +4 -4
  357. package/dist/components/eui-toast.js.map +1 -1
  358. package/dist/components/eui-tool-tip-popover.js +4 -4
  359. package/dist/components/eui-tool-tip-popover.js.map +1 -1
  360. package/dist/components/eui-tool-tip.js +9 -9
  361. package/dist/components/eui-tool-tip.js.map +1 -1
  362. package/dist/components/text-block.js +2 -2
  363. package/dist/components/text-block.js.map +1 -1
  364. package/package.json +3 -3
@@ -1,34 +1,34 @@
1
1
  import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { assert } from '@ember/debug';
4
+ import { concat, hash } from '@ember/helper';
4
5
  import { action } from '@ember/object';
6
+ import didInsert from '@ember/render-modifiers/modifiers/did-insert';
7
+ import didUpdate from '@ember/render-modifiers/modifiers/did-update';
5
8
  import { cancel, later, scheduleOnce } from '@ember/runloop';
6
9
  import { htmlSafe } from '@ember/template';
10
+ import optional from 'ember-composable-helpers/helpers/optional';
11
+ import { focusTrap } from 'ember-focus-trap';
12
+ import onKey from 'ember-keyboard/modifiers/on-key';
13
+ import { or, not, and } from 'ember-truth-helpers';
7
14
  import { tabbable } from 'tabbable';
15
+ import randomId from '../-private/random-id.js';
8
16
  import { argOrDefaultDecorator } from '../helpers/arg-or-default.js';
17
+ import classNames from '../helpers/class-names.js';
18
+ import merge from '../helpers/merge.js';
19
+ import mutationObserver from '../modifiers/mutation-observer.js';
20
+ import OutsideClickDetector from '../modifiers/outside-click-detector.js';
21
+ import screenReaderOnly from '../modifiers/screen-reader-only.js';
22
+ import simpleStyle from '../modifiers/simple-style.js';
9
23
  import { cascadingMenuKeys } from '../utils/accesibility/cascading-menu-keys.js';
10
24
  import { anchorPositionMapping, displayMapping } from '../utils/css-mappings/eui-popover.js';
11
25
  import { findPopoverPosition, getElementZIndex } from '../utils/popover/index.js';
12
26
  import { getTransitionTimings, getWaitDuration, performOnFrame } from '../utils/transition.js';
13
- import { g, i, n } from 'decorator-transforms/runtime';
14
- import randomId from '../-private/random-id.js';
15
- import classNames from '../helpers/class-names.js';
16
- import { concat, hash } from '@ember/helper';
17
- import { or, not, and } from 'ember-truth-helpers';
18
- import onKey from 'ember-keyboard/modifiers/on-key';
19
- import didInsert from '@ember/render-modifiers/modifiers/did-insert';
20
- import didUpdate from '@ember/render-modifiers/modifiers/did-update';
21
- import optional from 'ember-composable-helpers/helpers/optional';
22
- import EuiPortal from './eui-portal.js';
23
27
  import EuiPanel from './eui-panel.js';
24
- import simpleStyle from '../modifiers/simple-style.js';
25
- import OutsideClickDetector from '../modifiers/outside-click-detector.js';
26
- import { focusTrap } from 'ember-focus-trap';
27
- import merge from '../helpers/merge.js';
28
- import screenReaderOnly from '../modifiers/screen-reader-only.js';
29
- import mutationObserver from '../modifiers/mutation-observer.js';
28
+ import EuiPortal from './eui-portal.js';
30
29
  import { precompileTemplate } from '@ember/template-compilation';
31
30
  import { setComponentTemplate } from '@ember/component';
31
+ import { g, i, n } from 'decorator-transforms/runtime';
32
32
 
33
33
  const anchorPositionToPopoverPositionMap = {
34
34
  up: 'top',
@@ -500,6 +500,7 @@ class EuiPopoverComponent extends Component {
500
500
  }
501
501
  static {
502
502
  setComponentTemplate(precompileTemplate("\n {{#let (randomId) (classNames (if this.isOpening \"euiPopover-isOpen\") position=this.anchorPosition display=this.display componentName=\"EuiPopover\") (classNames \"euiPopover__panel\" (concat \"euiPopover__panel--\" this.arrowPosition) (if this.isOpening \"euiPopover__panel-isOpen\") (if (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\") (if @attachToAnchor \"euiPopover__panel-isAttached\") @panelClasses) as |descriptionId classes panelClasses|}}\n <div class={{classes}} {{onKey \"_all\" this.onKeyDown priority=1}} {{didInsert this.didInsertPopover}} {{didUpdate this.didUpdateIsOpen @isOpen}} {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}} {{didInsert (optional @popoverRef)}} ...attributes>\n\n {{!-- button --}}\n <div class=\"euiPopover__anchor {{@anchorClassName}}\" {{didInsert this.registerButton}}>\n {{yield to=\"button\"}}\n </div>\n\n {{!-- content --}}\n {{#if (and (not this.suppressingPopover) (or this.isCurrentlyOpen this.isClosing))}}\n <EuiPortal @insert={{@insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel id={{panelId}} class={{panelClasses}} aria-live={{if this.ownFocus \"off\" \"assertive\"}} role=\"dialog\" aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-modal=\"true\" aria-describedby={{if this.ownFocus descriptionId}} tabindex={{this.tabindex}} @hasShadow={{false}} @paddingSize={{this.panelPaddingSize}} {{simpleStyle this._popoverStyles}} {{didInsert this.registerPanel}} {{outsideClickDetector onOutsideClick=this.onClickOutside}} {{onKey \"Escape\" this.onEscapeKey}} {{focusTrap isActive=(not (or (not this.ownFocus) (not this.isOpenStable) this.isClosing)) shouldSelfFocus=this.shouldSelfFocus isPaused=this.isFocusTrapPaused focusTrapOptions=(merge (hash returnFocusOnDeactivate=this.isOpenStable initialFocus=(or @initialFocus this.panel) onDeactivate=(optional @onTrapDeactivation) preventScroll=true clickOutsideDeactivates=true fallbackFocus=(concat \"#\" panelId)) @focusTrapOptions)}}>\n <div class={{concat \"euiPopover__panelArrow euiPopover__panelArrow--\" this.arrowPosition}} style={{this._arrowStyles}}>\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div {{mutationObserver onMutation=this.onMutation observerOptions=(merge (hash attributes=true childList=true characterData=true subtree=true) @mutationObserverOptions)}}>\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n ", {
503
+ strictMode: true,
503
504
  scope: () => ({
504
505
  randomId,
505
506
  classNames,
@@ -520,8 +521,7 @@ class EuiPopoverComponent extends Component {
520
521
  hash,
521
522
  screenReaderOnly,
522
523
  mutationObserver
523
- }),
524
- strictMode: true
524
+ })
525
525
  }), this);
526
526
  }
527
527
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport { anchorPositionMapping, displayMapping } from '../utils/css-mappings/eui-popover.ts';\nimport { findPopoverPosition, getElementZIndex } from '../utils/popover/index.ts';\nimport { getTransitionTimings, getWaitDuration, performOnFrame } from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\nexport type PopoverAnchorPosition = 'upCenter' | 'upLeft' | 'upRight' | 'downCenter' | 'downLeft' | 'downRight' | 'leftCenter' | 'leftUp' | 'leftDown' | 'rightCenter' | 'rightUp' | 'rightDown';\nexport type EuiPopoverArgs = {\n panelClasses?: string;\n /**\n * Class name passed to the direct parent of the button\n */ anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */ anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */ attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */ button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */ closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */ container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */ display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */ hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */ initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */ insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */ isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */ ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */ panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */ panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */ panelStyle?: {\n [i: string]: string;\n };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */ repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */ zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */ onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */ offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */ buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */ arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */ ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */ ariaLabelledBy?: string;\n tabindex?: string | number;\n shouldSelfFocus?: boolean;\n isFocusTrapPaused?: boolean;\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\nexport function getPopoverPositionFromAnchorPosition(anchorPosition1: PopoverAnchorPosition): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match1 = anchorPosition1.match(/^(.*?)[A-Z]/);\n if (match1?.length && match1.length > 1) {\n return anchorPositionToPopoverPositionMap[match1[1] as AnchorPosition];\n }\n return anchorPositionToPopoverPositionMap['up'];\n}\nexport function getPopoverAlignFromAnchorPosition(anchorPosition1: PopoverAnchorPosition): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match1 = anchorPosition1.match(/([A-Z].*)/);\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match1?.length && match1.length > 1) {\n return anchorPositionToPopoverPositionMap[match1[1]?.toLowerCase() as AnchorPosition];\n }\n return anchorPositionToPopoverPositionMap['left'];\n}\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\nfunction getElementFromInitialFocus(initialFocus1?: FocusTarget): HTMLElement | null {\n const initialFocusType1 = typeof initialFocus1;\n if (initialFocusType1 === 'string') {\n return document.querySelector(initialFocus1 as string);\n }\n if (initialFocusType1 === 'function') {\n return (initialFocus1 as () => HTMLElement | null)();\n }\n return initialFocus1 as HTMLElement | null;\n}\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false)\n isOpen: boolean;\n @argOrDefaultDecorator(true)\n ownFocus: boolean;\n @argOrDefaultDecorator('downCenter')\n anchorPosition: PopoverAnchorPosition;\n @argOrDefaultDecorator('m')\n panelPaddingSize: PanelPaddingSize;\n @argOrDefaultDecorator(true)\n hasArrow: boolean;\n @argOrDefaultDecorator('inlineBlock')\n display: string;\n @argOrDefaultDecorator(true)\n shouldSelfFocus: boolean;\n @argOrDefaultDecorator(false)\n isFocusTrapPaused: boolean;\n //State\n @tracked\n prevIsOpen: boolean | undefined;\n @tracked\n suppressingPopover: boolean | undefined;\n @tracked\n isClosing = false;\n @tracked\n isOpening = false;\n @tracked\n popoverStyles: CssProps = {};\n @tracked\n arrowStyles: CssProps | undefined = {};\n @tracked\n arrowPosition: EuiPopoverPosition | null = null;\n @tracked\n openPosition: EuiPopoverPosition | null = null;\n @tracked\n isOpenStable = false;\n @tracked\n isCurrentlyOpen: boolean | undefined;\n ///\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked\n button: HTMLElement | null = null;\n @tracked\n panel: HTMLElement | null = null;\n constructor(owner1: unknown, args1: EuiPopoverArgs){\n super(owner1, args1);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n @action\n onEscapeKey(event1: Event, ekEvent1?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent1?.stopPropagation();\n ekEvent1?.stopImmediatePropagation();\n event1.preventDefault();\n event1.stopPropagation();\n this.closePopover();\n }\n }\n @action\n onKeyDown(event1: KeyboardEvent, ekEvent1: EmberKeyboardEvent): void {\n if (event1.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event1 as unknown as Event, ekEvent1 as unknown as Event);\n }\n }\n @action\n onClickOutside(event1: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event1);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event1.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(()=>{\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n // If we've already focused on something inside the panel, everything's fine.\n if (this.hasSetInitialFocus && this.panel.contains(document.activeElement)) {\n return;\n }\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget1;\n if (this.args.initialFocus != null) {\n focusTarget1 = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems1 = tabbable(this.panel);\n if (tabbableItems1.length) {\n focusTarget1 = tabbableItems1[0];\n }\n }\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget1 == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility1 = window.getComputedStyle(this.panel).opacity;\n if (panelVisibility1 === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget1 = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility1 = window.getComputedStyle(focusTarget1).visibility;\n if (visibility1 === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n if (focusTarget1 != null) {\n this.hasSetInitialFocus = true;\n focusTarget1.focus();\n }\n });\n }\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(()=>{\n this.isOpening = true;\n });\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch: durationMatch1, delayMatch: delayMatch1 } = Array.prototype.slice.call(this.panel ? this.panel.children : []).reduce(({ durationMatch: durationMatch1, delayMatch: delayMatch1 }: {\n durationMatch: number;\n delayMatch: number;\n }, element1: HTMLElement)=>{\n const transitionTimings1 = getTransitionTimings(element1);\n return {\n durationMatch: Math.max(durationMatch1, transitionTimings1.durationMatch),\n delayMatch: Math.max(delayMatch1, transitionTimings1.delayMatch)\n };\n }, {\n durationMatch: 0,\n delayMatch: 0\n });\n this.respositionTimeout = later(this, ()=>{\n this.isOpenStable = true;\n const fn1 = (): void =>{\n this.positionPopoverFixed();\n this.updateFocus();\n };\n scheduleOnce('afterRender', this, fn1);\n }, durationMatch1 + delayMatch1);\n }\n @action\n didInsertPopover(): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n const fn1 = (): void =>this.onOpenPopover();\n scheduleOnce('afterRender', this, fn1);\n }\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n this.updateFocus();\n }\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(this, ()=>{\n this.isClosing = false;\n }, 250);\n }\n this.prevIsOpen = this.args.isOpen;\n }\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n @action\n onMutation(records1: MutationRecord[]): void {\n const waitDuration1 = getWaitDuration(records1);\n this.positionPopoverFixed();\n performOnFrame(waitDuration1, this.positionPopoverFixed);\n }\n @action\n positionPopover(allowEnforcePosition1: boolean): void {\n if (this.button == null || this.panel == null) return;\n let position1 = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition1 = undefined;\n if (allowEnforcePosition1 && this.isOpenStable && this.openPosition != null) {\n position1 = this.openPosition;\n forcePosition1 = true;\n }\n const { top: top1, left: left1, position: foundPosition1, arrow: arrow1, anchorBoundingBox: anchorBoundingBox1 } = findPopoverPosition({\n container: this.args.container,\n position: position1,\n forcePosition: forcePosition1,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset: !this.args.attachToAnchor && this.hasArrow ? 16 + (this.args.offset || 0) : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp1 } = this.args;\n const zIndex1 = zIndexProp1 == null ? getElementZIndex(this.button, this.panel) + 2000 : zIndexProp1;\n const popoverStyles1 = {\n top: top1,\n left: this.args.attachToAnchor && anchorBoundingBox1 ? anchorBoundingBox1.left : left1,\n zIndex: zIndex1\n };\n const willRenderArrow1 = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles1 = willRenderArrow1 ? arrow1 : undefined;\n const arrowPosition1 = foundPosition1;\n this.popoverStyles = popoverStyles1;\n this.arrowStyles = arrowStyles1;\n this.arrowPosition = arrowPosition1;\n this.openPosition = foundPosition1;\n }\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles: arrowStyles1 } = this;\n return arrowStyles1 ? htmlSafe(`top: ${arrowStyles1?.top}px; left: ${arrowStyles1?.left}px;`) : undefined;\n }\n get _popoverStyles(): {\n [i: string]: string;\n } {\n const { panelStyle: panelStyle1 } = this.args;\n const { popoverStyles: popoverStyles1 } = this;\n return {\n ...panelStyle1,\n top: `${popoverStyles1.top}px`,\n left: `${popoverStyles1.left}px`,\n zIndex: `${popoverStyles1.zIndex}`\n };\n }\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n return '-1';\n }\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n @action\n registerButton(btn1: HTMLDivElement): void {\n this.button = btn1;\n this.args.buttonRef?.(btn1);\n }\n @action\n registerPanel(panel1: HTMLElement): void {\n this.panel = panel1;\n this.args.panelRef?.(panel1);\n if (panel1 === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n static{\n template(`\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClasses\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{@insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wb3BvdmVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IGNvbmNhdCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCBkaWRVcGRhdGUgZnJvbSAnQGVtYmVyL3JlbmRlci1tb2RpZmllcnMvbW9kaWZpZXJzL2RpZC11cGRhdGUnO1xuaW1wb3J0IHsgY2FuY2VsLCBsYXRlciwgc2NoZWR1bGVPbmNlIH0gZnJvbSAnQGVtYmVyL3J1bmxvb3AnO1xuaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuXG5pbXBvcnQgb3B0aW9uYWwgZnJvbSAnZW1iZXItY29tcG9zYWJsZS1oZWxwZXJzL2hlbHBlcnMvb3B0aW9uYWwnO1xuaW1wb3J0IHsgZm9jdXNUcmFwIH0gZnJvbSAnZW1iZXItZm9jdXMtdHJhcCc7XG5pbXBvcnQgb25LZXkgZnJvbSAnZW1iZXIta2V5Ym9hcmQvbW9kaWZpZXJzL29uLWtleSc7XG5pbXBvcnQgeyBhbmQsIG5vdCwgb3IgfSBmcm9tICdlbWJlci10cnV0aC1oZWxwZXJzJztcbmltcG9ydCB7IHRhYmJhYmxlIH0gZnJvbSAndGFiYmFibGUnO1xuXG5pbXBvcnQgcmFuZG9tSWQgZnJvbSAnLi4vLXByaXZhdGUvcmFuZG9tLWlkLnRzJztcbmltcG9ydCB7IGFyZ09yRGVmYXVsdERlY29yYXRvciB9IGZyb20gJy4uL2hlbHBlcnMvYXJnLW9yLWRlZmF1bHQudHMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnLi4vaGVscGVycy9jbGFzcy1uYW1lcy50cyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnLi4vaGVscGVycy9tZXJnZS50cyc7XG5pbXBvcnQgbXV0YXRpb25PYnNlcnZlciBmcm9tICcuLi9tb2RpZmllcnMvbXV0YXRpb24tb2JzZXJ2ZXIudHMnO1xuaW1wb3J0IG91dHNpZGVDbGlja0RldGVjdG9yIGZyb20gJy4uL21vZGlmaWVycy9vdXRzaWRlLWNsaWNrLWRldGVjdG9yLnRzJztcbmltcG9ydCBzY3JlZW5SZWFkZXJPbmx5IGZyb20gJy4uL21vZGlmaWVycy9zY3JlZW4tcmVhZGVyLW9ubHkudHMnO1xuaW1wb3J0IHNpbXBsZVN0eWxlIGZyb20gJy4uL21vZGlmaWVycy9zaW1wbGUtc3R5bGUudHMnO1xuaW1wb3J0IHsgY2FzY2FkaW5nTWVudUtleXMgfSBmcm9tICcuLi91dGlscy9hY2Nlc2liaWxpdHkvaW5kZXgudHMnO1xuaW1wb3J0IHtcbiAgYW5jaG9yUG9zaXRpb25NYXBwaW5nLFxuICBkaXNwbGF5TWFwcGluZ1xufSBmcm9tICcuLi91dGlscy9jc3MtbWFwcGluZ3MvZXVpLXBvcG92ZXIudHMnO1xuaW1wb3J0IHsgZmluZFBvcG92ZXJQb3NpdGlvbiwgZ2V0RWxlbWVudFpJbmRleCB9IGZyb20gJy4uL3V0aWxzL3BvcG92ZXIvaW5kZXgudHMnO1xuaW1wb3J0IHtcbiAgZ2V0VHJhbnNpdGlvblRpbWluZ3MsXG4gIGdldFdhaXREdXJhdGlvbixcbiAgcGVyZm9ybU9uRnJhbWVcbn0gZnJvbSAnLi4vdXRpbHMvdHJhbnNpdGlvbi50cyc7XG5pbXBvcnQgRXVpUGFuZWwgZnJvbSAnLi9ldWktcGFuZWwuZ3RzJztcbmltcG9ydCBFdWlQb3J0YWwgZnJvbSAnLi9ldWktcG9ydGFsLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgcGFkZGluZ1NpemVNYXBwaW5nIH0gZnJvbSAnLi4vdXRpbHMvY3NzLW1hcHBpbmdzL2V1aS1wYW5lbC50cyc7XG5pbXBvcnQgdHlwZSB7IEV1aVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxzL3BvcG92ZXIvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBFbWJlcktleWJvYXJkRXZlbnQgfSBmcm9tICdlbWJlci1rZXlib2FyZC9tb2RpZmllcnMvb24ta2V5JztcblxudHlwZSBQYW5lbFBhZGRpbmdTaXplID0ga2V5b2YgdHlwZW9mIHBhZGRpbmdTaXplTWFwcGluZztcblxuZXhwb3J0IHR5cGUgUG9wb3ZlckFuY2hvclBvc2l0aW9uID1cbiAgfCAndXBDZW50ZXInXG4gIHwgJ3VwTGVmdCdcbiAgfCAndXBSaWdodCdcbiAgfCAnZG93bkNlbnRlcidcbiAgfCAnZG93bkxlZnQnXG4gIHwgJ2Rvd25SaWdodCdcbiAgfCAnbGVmdENlbnRlcidcbiAgfCAnbGVmdFVwJ1xuICB8ICdsZWZ0RG93bidcbiAgfCAncmlnaHRDZW50ZXInXG4gIHwgJ3JpZ2h0VXAnXG4gIHwgJ3JpZ2h0RG93bic7XG5cbmV4cG9ydCB0eXBlIEV1aVBvcG92ZXJBcmdzID0ge1xuICBwYW5lbENsYXNzZXM_OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDbGFzcyBuYW1lIHBhc3NlZCB0byB0aGUgZGlyZWN0IHBhcmVudCBvZiB0aGUgYnV0dG9uXG4gICAqL1xuICBhbmNob3JDbGFzc05hbWU_OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgYW5kIGFycm93IHJlbGF0aXZlIHRvIHRoZSBidXR0b25cbiAgICovXG4gIGFuY2hvclBvc2l0aW9uPzogUG9wb3ZlckFuY2hvclBvc2l0aW9uO1xuICAvKipcbiAgICogU3R5bGUgYW5kIHBvc2l0aW9uIGFsdGVyYXRpb24gZm9yIGFycm93LWxlc3MsIGxlZnQtYWxpZ25lZFxuICAgKiBhdHRhY2htZW50LiBJbnRlbmRlZCBmb3IgdXNlIHdpdGggaW5wdXRzIGFzIGFuY2hvcnMsIGUuZy5cbiAgICogRXVpSW5wdXRQb3BvdmVyXG4gICAqL1xuICBhdHRhY2hUb0FuY2hvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcmlnZ2VyaW5nIGVsZW1lbnQgZm9yIHdoaWNoIHRvIGFsaWduIHRoZSBwb3BvdmVyIHRvXG4gICAqL1xuICBidXR0b24_OiBDb21wb25lbnQ7XG4gIGJ1dHRvblJlZj86IChlOiBIVE1MRGl2RWxlbWVudCkgPT4gdW5rbm93bjtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGhhbmRsZSBoaWRpbmcgb2YgdGhlIHBvcG92ZXJcbiAgICovXG4gIGNsb3NlUG9wb3ZlcjogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSBwb3BvdmVyJ3MgcG9zaXRpb24gd2l0aGluIHRoaXMgZWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XG4gIC8qKlxuICAgKiBDU1MgZGlzcGxheSB0eXBlIGZvciBib3RoIHRoZSBwb3BvdmVyIGFuZCBhbmNob3JcbiAgICovXG4gIGRpc3BsYXk_OiBrZXlvZiB0eXBlb2YgZGlzcGxheU1hcHBpbmc7XG4gIC8qKlxuICAgKiBTaG93IGFycm93IGluZGljYXRpbmcgdG8gb3JpZ2luYXRpbmcgYnV0dG9uXG4gICAqL1xuICBoYXNBcnJvdz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hhdCBlbGVtZW50IHNob3VsZCBpbml0aWFsbHkgaGF2ZSBmb2N1czsgQ2FuIGJlIGEgRE9NXG4gICAqIG5vZGUsIG9yIGEgc2VsZWN0b3Igc3RyaW5nICh3aGljaCB3aWxsIGJlIHBhc3NlZCB0b1xuICAgKiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCkgdG8gZmluZCB0aGUgRE9NIG5vZGUpLCBvciBhIGZ1bmN0aW9uIHRoYXRcbiAgICogcmV0dXJucyBhIERPTSBub2RlXG4gICAqL1xuICBpbml0aWFsRm9jdXM_OiBGb2N1c1RhcmdldCB8IGZhbHNlO1xuICAvKipcbiAgICogUGFzc2VkIGRpcmVjdGx5IHRvIEV1aVBvcnRhbCBmb3IgRE9NIHBvc2l0aW9uaW5nLiBCb3RoIHByb3BlcnRpZXMgYXJlXG4gICAqIHJlcXVpcmVkIGlmIHByb3AgaXMgc3BlY2lmaWVkXG4gICAqL1xuICBpbnNlcnQ_OiB7XG4gICAgc2libGluZzogSFRNTEVsZW1lbnQ7XG4gICAgcG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJztcbiAgfTtcbiAgLyoqXG4gICAqIFZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHBvcG92ZXJcbiAgICovXG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcmFwcyB0YWIgZm9jdXMgd2l0aGluIHRoZSBwb3BvdmVyIGNvbnRlbnRzXG4gICAqL1xuICBvd25Gb2N1cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gY2xhc3MgYWRkZWQgdG8gdGhlIEV1aVBhbmVsIGNvbnRhaW5pbmcgdGhlIHBvcG92ZXIgY29udGVudHNcbiAgICovXG4gIHBhbmVsQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogRXVpUGFuZWwgcGFkZGluZyBvbiBhbGwgc2lkZXNcbiAgICovXG4gIHBhbmVsUGFkZGluZ1NpemU_OiBQYW5lbFBhZGRpbmdTaXplO1xuICAvKipcbiAgICogU3RhbmRhcmQgRE9NIGBzdHlsZWAgYXR0cmlidXRlLiBQYXNzZWQgdG8gdGhlIEV1aVBhbmVsXG4gICAqL1xuICBwYW5lbFN0eWxlPzogeyBbaTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHBhbmVsUmVmPzogKGU6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdW5rbm93bjtcbiAgcG9wb3ZlclJlZj86IChlOiBIVE1MRWxlbWVudCkgPT4gdW5rbm93bjtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgcG9wb3ZlcidzIHBvc2l0aW9uIGlzIHJlLWNhbGN1bGF0ZWQgd2hlbiB0aGUgdXNlclxuICAgKiBzY3JvbGxzLCB0aGlzIHN1cHBvcnRzIGhhdmluZyBmaXhlZC1wb3NpdGlvbiBwb3BvdmVyIGFuY2hvcnNcbiAgICovXG4gIHJlcG9zaXRpb25PblNjcm9sbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBwb3BvdmVyIGNvbnRlbnQgaW5oZXJpdHMgdGhlIHotaW5kZXggb2YgdGhlIGFuY2hvclxuICAgKiBjb21wb25lbnQ7IHBhc3MgYHpJbmRleGAgdG8gb3ZlcnJpZGVcbiAgICovXG4gIHpJbmRleD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGNhbGxiYWNrIGZvciB3aGVuIHRoZSBmb2N1cyB0cmFwIGlzIGRlYWN0aXZhdGVkXG4gICAqL1xuICBvblRyYXBEZWFjdGl2YXRpb24_OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogRGlzdGFuY2UgYXdheSBmcm9tIHRoZSBhbmNob3IgdGhhdCB0aGUgcG9wb3ZlciB3aWxsIHJlbmRlclxuICAgKi9cbiAgb2Zmc2V0PzogbnVtYmVyO1xuICAvKipcbiAgICogTWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb3BvdmVyIGFuZCB0aGUgYm91bmRpbmcgY29udGFpbmVyO1xuICAgKiBQYXNzIGFuIGFycmF5IG9mIDQgdmFsdWVzIHRvIGFkanVzdCBlYWNoIHNpZGUgZGlmZmVyZW50bHk6IGBbdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0XWBcbiAgICogRGVmYXVsdCBpcyAxNlxuICAgKi9cbiAgYnVmZmVyPzogbnVtYmVyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBFbGVtZW50IHRvIHBhc3MgYXMgdGhlIGNoaWxkIGVsZW1lbnQgb2YgdGhlIGFycm93O1xuICAgKiBVc2UgY2FzZSBpcyB0eXBpY2FsbHkgbGltaXRlZCB0byBhbiBhY2NvbXBhbnlpbmcgYEV1aUJlYWNvbmBcbiAgICovXG4gIGFycm93Q2hpbGRyZW4_OiBDb21wb25lbnQ7XG4gIC8qKlxuICAgKiBQcm92aWRlIGEgbmFtZSB0byB0aGUgcG9wb3ZlciBwYW5lbFxuICAgKi9cbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgb3B0aW9uIHRvIGBhcmlhLWxhYmVsYCB0aGF0IHRha2VzIGFuIGBpZGAuXG4gICAqIFVzdWFsbHkgdGFrZXMgdGhlIGBpZGAgb2YgdGhlIHBvcG92ZXIgdGl0bGVcbiAgICovXG4gIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuXG4gIHRhYmluZGV4Pzogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIHNob3VsZFNlbGZGb2N1cz86IGJvb2xlYW47XG5cbiAgaXNGb2N1c1RyYXBQYXVzZWQ_OiBib29sZWFuO1xuXG4gIGZvY3VzVHJhcE9wdGlvbnM_OiB7XG4gICAgb25DbGlja091dHNpZGU_OiAoZTogRXZlbnQpID0-IHZvaWQ7XG4gIH07XG5cbiAgbXV0YXRpb25PYnNlcnZlck9wdGlvbnM_OiB7XG4gICAgYXR0cmlidXRlcz86IGJvb2xlYW47XG4gICAgY2hpbGRMaXN0PzogYm9vbGVhbjtcbiAgICBjaGFyYWN0ZXJEYXRhPzogYm9vbGVhbjtcbiAgICBzdWJ0cmVlPzogYm9vbGVhbjtcbiAgfTtcbn07XG5cbnR5cGUgQW5jaG9yUG9zaXRpb24gPSAndXAnIHwgJ3JpZ2h0JyB8ICdkb3duJyB8ICdsZWZ0JztcblxuY29uc3QgYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcDoge1xuICBbcG9zaXRpb24gaW4gQW5jaG9yUG9zaXRpb25dOiBFdWlQb3BvdmVyUG9zaXRpb247XG59ID0ge1xuICB1cDogJ3RvcCcsXG4gIHJpZ2h0OiAncmlnaHQnLFxuICBkb3duOiAnYm90dG9tJyxcbiAgbGVmdDogJ2xlZnQnXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9wb3ZlclBvc2l0aW9uRnJvbUFuY2hvclBvc2l0aW9uKFxuICBhbmNob3JQb3NpdGlvbjogUG9wb3ZlckFuY2hvclBvc2l0aW9uXG4pOiBFdWlQb3BvdmVyUG9zaXRpb24ge1xuICAvLyBtYXBzIHRoZSBhbmNob3IgcG9zaXRpb24gdG8gdGhlIG1hdGNoaW5nIHBvcG92ZXIgcG9zaXRpb25cbiAgLy8gZS5nLiBcInVwTGVmdFwiIC0-IFwidG9wXCIsIFwiZG93blJpZ2h0XCIgLT4gXCJib3R0b21cIlxuXG4gIC8vIGV4dHJhY3QgdGhlIGZpcnN0IHBvc2l0aW9uYWwgd29yZCBmcm9tIGFuY2hvclBvc2l0aW9uOlxuICAvLyBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyAoXCIgXiBcIikgb2YgYW5jaG9yUG9zaXRpb24gYW5kXG4gIC8vIGNhcHR1cmVzIGFsbCBvZiB0aGUgY2hhcmFjdGVycyAoXCIgKC4qPykgXCIpIHVudGlsIHRoZVxuICAvLyBmaXJzdCBjYXBpdGFsIGxldHRlciAoXCIgW0EtWl0gXCIpIGlzIGVuY291bnRlcmVkXG4gIGNvbnN0IG1hdGNoID0gYW5jaG9yUG9zaXRpb24ubWF0Y2goL14oLio_KVtBLVpdLyk7XG5cbiAgaWYgKG1hdGNoPy5sZW5ndGggJiYgbWF0Y2gubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiBhbmNob3JQb3NpdGlvblRvUG9wb3ZlclBvc2l0aW9uTWFwW21hdGNoWzFdIGFzIEFuY2hvclBvc2l0aW9uXTtcbiAgfVxuXG4gIHJldHVybiBhbmNob3JQb3NpdGlvblRvUG9wb3ZlclBvc2l0aW9uTWFwWyd1cCddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9wb3ZlckFsaWduRnJvbUFuY2hvclBvc2l0aW9uKFxuICBhbmNob3JQb3NpdGlvbjogUG9wb3ZlckFuY2hvclBvc2l0aW9uXG4pOiBFdWlQb3BvdmVyUG9zaXRpb24ge1xuICAvLyBtYXBzIHRoZSBncmF2aXR5IHRvIHRoZSBtYXRjaGluZyBwb3BvdmVyIHBvc2l0aW9uXG4gIC8vIGUuZy4gXCJ1cExlZnRcIiAtPiBcImxlZnRcIiwgXCJyaWdodERvd25cIiAtPiBcImJvdHRvbVwiXG5cbiAgLy8gZXh0cmFjdCB0aGUgc2Vjb25kIHBvc2l0aW9uYWwgd29yZCBmcm9tIGFuY2hvclBvc2l0aW9uOlxuICAvLyBzdGFydHMgYSBjYXB0dXJlIGdyb3VwIGF0IHRoZSBmaXJzdCBjYXBpdGFsIGxldHRlclxuICAvLyBhbmQgaW5jbHVkZXMgZXZlcnl0aGluZyBhZnRlciBpdFxuICBjb25zdCBtYXRjaCA9IGFuY2hvclBvc2l0aW9uLm1hdGNoKC8oW0EtWl0uKikvKTtcblxuICAvLyB0aGlzIHBlcmZvcm1zIHR3byB0YXNrczpcbiAgLy8gMS4gbm9ybWFsaXplcyB0aGUgYWxpZ24gcG9zaXRpb24gYnkgbG93ZXJjYXNpbmcgaXRcbiAgLy8gMi4gYGNlbnRlcmAgZG9lc24ndCBleGlzdCBpbiB0aGUgbG9va3VwIG1hcCB3aGljaCBjb252ZXJ0cyBpdCB0byBgdW5kZWZpbmVkYCBtZWFuaW5nIG5vIGFsaWduXG4gIGlmIChtYXRjaD8ubGVuZ3RoICYmIG1hdGNoLmxlbmd0aCA-IDEpIHtcbiAgICByZXR1cm4gYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcFtcbiAgICAgIG1hdGNoWzFdPy50b0xvd2VyQ2FzZSgpIGFzIEFuY2hvclBvc2l0aW9uXG4gICAgXTtcbiAgfVxuXG4gIHJldHVybiBhbmNob3JQb3NpdGlvblRvUG9wb3ZlclBvc2l0aW9uTWFwWydsZWZ0J107XG59XG5cbmV4cG9ydCBjb25zdCBBTkNIT1JfUE9TSVRJT05TID0gT2JqZWN0LmtleXMoYW5jaG9yUG9zaXRpb25NYXBwaW5nKTtcbmV4cG9ydCBjb25zdCBESVNQTEFZID0gT2JqZWN0LmtleXMoZGlzcGxheU1hcHBpbmcpO1xuZXhwb3J0IHR5cGUgRm9jdXNUYXJnZXQgPSBIVE1MRWxlbWVudCB8IHN0cmluZyB8ICgoKSA9PiBIVE1MRWxlbWVudCk7XG5cbmNvbnN0IERFRkFVTFRfUE9QT1ZFUl9TVFlMRVMgPSB7XG4gIHRvcDogNTAsXG4gIGxlZnQ6IDUwXG59O1xuXG5mdW5jdGlvbiBnZXRFbGVtZW50RnJvbUluaXRpYWxGb2N1cyhcbiAgaW5pdGlhbEZvY3VzPzogRm9jdXNUYXJnZXRcbik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGluaXRpYWxGb2N1c1R5cGUgPSB0eXBlb2YgaW5pdGlhbEZvY3VzO1xuXG4gIGlmIChpbml0aWFsRm9jdXNUeXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGluaXRpYWxGb2N1cyBhcyBzdHJpbmcpO1xuICB9XG5cbiAgaWYgKGluaXRpYWxGb2N1c1R5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gKGluaXRpYWxGb2N1cyBhcyAoKSA9PiBIVE1MRWxlbWVudCB8IG51bGwpKCk7XG4gIH1cblxuICByZXR1cm4gaW5pdGlhbEZvY3VzIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbn1cblxudHlwZSBDc3NQcm9wcyA9IHtcbiAgdG9wPzogbnVtYmVyO1xuICBsZWZ0PzogbnVtYmVyO1xuICByaWdodD86IG51bWJlcjtcbiAgYm90dG9tPzogbnVtYmVyO1xuICB6SW5kZXg_OiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVBvcG92ZXJTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczogRXVpUG9wb3ZlckFyZ3M7XG4gIEJsb2Nrczoge1xuICAgIGJ1dHRvbjogW107XG4gICAgY29udGVudDogW107XG4gICAgYXJyb3dDaGlsZHJlbjogW107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV1aVBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ8RXVpUG9wb3ZlclNpZ25hdHVyZT4ge1xuICAvLyBEZWZhdWx0c1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKGZhbHNlKSBpc09wZW4hOiBib29sZWFuO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKHRydWUpIG93bkZvY3VzITogYm9vbGVhbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcignZG93bkNlbnRlcicpIGFuY2hvclBvc2l0aW9uITogUG9wb3ZlckFuY2hvclBvc2l0aW9uO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdtJykgcGFuZWxQYWRkaW5nU2l6ZSE6IFBhbmVsUGFkZGluZ1NpemU7XG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IodHJ1ZSkgaGFzQXJyb3chOiBib29sZWFuO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdpbmxpbmVCbG9jaycpIGRpc3BsYXkhOiBzdHJpbmc7XG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IodHJ1ZSkgc2hvdWxkU2VsZkZvY3VzITogYm9vbGVhbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcihmYWxzZSkgaXNGb2N1c1RyYXBQYXVzZWQhOiBib29sZWFuO1xuXG4gIC8vU3RhdGVcbiAgQHRyYWNrZWQgcHJldklzT3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQHRyYWNrZWQgc3VwcHJlc3NpbmdQb3BvdmVyOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBAdHJhY2tlZCBpc0Nsb3NpbmcgPSBmYWxzZTtcbiAgQHRyYWNrZWQgaXNPcGVuaW5nID0gZmFsc2U7XG4gIEB0cmFja2VkIHBvcG92ZXJTdHlsZXM6IENzc1Byb3BzID0ge307XG4gIEB0cmFja2VkIGFycm93U3R5bGVzOiBDc3NQcm9wcyB8IHVuZGVmaW5lZCA9IHt9O1xuICBAdHJhY2tlZCBhcnJvd1Bvc2l0aW9uOiBFdWlQb3BvdmVyUG9zaXRpb24gfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgb3BlblBvc2l0aW9uOiBFdWlQb3BvdmVyUG9zaXRpb24gfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgaXNPcGVuU3RhYmxlID0gZmFsc2U7XG4gIEB0cmFja2VkIGlzQ3VycmVudGx5T3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLy8vXG5cbiAgcHJpdmF0ZSByZXNwb3NpdGlvblRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIGxhdGVyPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNsb3NpbmdUcmFuc2l0aW9uVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2xvc2luZ1RyYW5zaXRpb25BbmltYXRpb25GcmFtZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHVwZGF0ZUZvY3VzQW5pbWF0aW9uRnJhbWU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBoYXNTZXRJbml0aWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQHRyYWNrZWQgYnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBAdHJhY2tlZCBwYW5lbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihvd25lcjogdW5rbm93biwgYXJnczogRXVpUG9wb3ZlckFyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgYXNzZXJ0KGBNdXN0IHByb3ZpZGUgY2xvc2VQb3BvdmVyIGZ1bmN0aW9uYCwgdGhpcy5hcmdzLmNsb3NlUG9wb3Zlcik7XG4gICAgdGhpcy5wcmV2SXNPcGVuID0gdGhpcy5pc09wZW47XG4gICAgdGhpcy5zdXBwcmVzc2luZ1BvcG92ZXIgPSB0aGlzLmlzT3BlbjtcbiAgICB0aGlzLmlzQ3VycmVudGx5T3BlbiA9IHRoaXMuaXNPcGVuO1xuICB9XG5cbiAgQGFjdGlvblxuICBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmFyZ3MuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBvbkVzY2FwZUtleShldmVudDogRXZlbnQsIGVrRXZlbnQ_OiBFbWJlcktleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGVrRXZlbnQ_LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZWtFdmVudD8uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBla0V2ZW50OiBFbWJlcktleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBjYXNjYWRpbmdNZW51S2V5cy5FU0NBUEUpIHtcbiAgICAgIHRoaXMub25Fc2NhcGVLZXkoZXZlbnQgYXMgdW5rbm93biBhcyBFdmVudCwgZWtFdmVudCBhcyB1bmtub3duIGFzIEV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFyZ3MuZm9jdXNUcmFwT3B0aW9ucz8ub25DbGlja091dHNpZGUpIHtcbiAgICAgIHRoaXMuYXJncy5mb2N1c1RyYXBPcHRpb25zLm9uQ2xpY2tPdXRzaWRlKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb25seSBjbG9zZSB0aGUgcG9wb3ZlciBpZiB0aGUgZXZlbnQgc291cmNlIGlzbid0IHRoZSBhbmNob3IgYnV0dG9uXG4gICAgICAvLyBvdGhlcndpc2UsIGl0IGlzIHVwIHRvIHRoZSBhbmNob3IgdG8gdG9nZ2xlIHRoZSBwb3BvdmVyJ3Mgb3BlbiBzdGF0dXNcbiAgICAgIGlmICh0aGlzLmJ1dHRvbiAmJiB0aGlzLmJ1dHRvbi5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIERPTSB0byB1cGRhdGUuXG4gICAgdGhpcy51cGRhdGVGb2N1c0FuaW1hdGlvbkZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMub3duRm9jdXMgfHwgIXRoaXMucGFuZWwgfHwgdGhpcy5hcmdzLmluaXRpYWxGb2N1cyA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZvY3VzZWQgb24gc29tZXRoaW5nIGluc2lkZSB0aGUgcGFuZWwsIGV2ZXJ5dGhpbmcncyBmaW5lLlxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmhhc1NldEluaXRpYWxGb2N1cyAmJlxuICAgICAgICB0aGlzLnBhbmVsLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UgbGV0J3MgZm9jdXMgdGhlIGZpcnN0IHRhYmJhYmxlIGl0ZW0gYW5kIGV4cGVkaXRlIGlucHV0IGZyb20gdGhlIHVzZXIuXG4gICAgICBsZXQgZm9jdXNUYXJnZXQ7XG5cbiAgICAgIGlmICh0aGlzLmFyZ3MuaW5pdGlhbEZvY3VzICE9IG51bGwpIHtcbiAgICAgICAgZm9jdXNUYXJnZXQgPSBnZXRFbGVtZW50RnJvbUluaXRpYWxGb2N1cyh0aGlzLmFyZ3MuaW5pdGlhbEZvY3VzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRhYmJhYmxlSXRlbXMgPSB0YWJiYWJsZSh0aGlzLnBhbmVsKTtcblxuICAgICAgICBpZiAodGFiYmFibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICBmb2N1c1RhcmdldCA9IHRhYmJhYmxlSXRlbXNbMF07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gdGhlcmUncyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIHBvcG92ZXIgY29udGVudCBiZWNvbWluZyB2aXNpYmxlIGFuZCB0aGlzIGZ1bmN0aW9uIGNhbGxcbiAgICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzbid0IHZpc2libGUgeWV0IChkdWUgdG8gY3NzIHN0eWxpbmcpIHRoZW4gaXQgY2FuJ3QgYWNjZXB0IGZvY3VzXG4gICAgICAvLyBzbyB3YWl0IGZvciBhbm90aGVyIHJlbmRlciBhbmQgdHJ5IGFnYWluXG4gICAgICBpZiAoZm9jdXNUYXJnZXQgPT0gbnVsbCkge1xuICAgICAgICAvLyB0aGVyZSBpc24ndCBhIGZvY3VzIHRhcmdldCwgb25lIG9mIHR3byByZWFzb25zOlxuICAgICAgICAvLyAjMSBpcyB0aGUgd2hvbGUgcGFuZWwgaGlkZGVuPyBJZiBzbywgc2NoZWR1bGUgYW5vdGhlciBjaGVja1xuICAgICAgICAvLyAjMiBwYW5lbCBpcyB2aXNpYmxlIGJ1dCBubyB0YWJiYWJsZXMgZXhpc3QsIG1vdmUgZm9jdXMgdG8gdGhlIHBhbmVsXG4gICAgICAgIGNvbnN0IHBhbmVsVmlzaWJpbGl0eSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucGFuZWwpLm9wYWNpdHk7XG5cbiAgICAgICAgaWYgKHBhbmVsVmlzaWJpbGl0eSA9PT0gJzAnKSB7XG4gICAgICAgICAgLy8gIzFcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gIzJcbiAgICAgICAgICBmb2N1c1RhcmdldCA9IHRoaXMucGFuZWw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGZvdW5kIGFuIGVsZW1lbnQgdG8gZm9jdXMsIGJ1dCBpcyBpdCB2aXNpYmxlP1xuICAgICAgICBjb25zdCB2aXNpYmlsaXR5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZm9jdXNUYXJnZXQpLnZpc2liaWxpdHk7XG5cbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgLy8gbm90IHZpc2libGUsIGNoZWNrIGFnYWluIG5leHQgcmVuZGVyIGZyYW1lXG4gICAgICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChmb2N1c1RhcmdldCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuaGFzU2V0SW5pdGlhbEZvY3VzID0gdHJ1ZTtcbiAgICAgICAgZm9jdXNUYXJnZXQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25PcGVuUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBjYW5jZWwodGhpcy5jbG9zaW5nVHJhbnNpdGlvblRpbWVvdXQgYXMgUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-KTtcbiAgICAvLyBXZSBuZWVkIHRvIHNldCB0aGlzIHN0YXRlIGEgYmVhdCBhZnRlciB0aGUgcmVuZGVyIHRha2VzIHBsYWNlLCBzbyB0aGF0IHRoZSBDU1NcbiAgICAvLyB0cmFuc2l0aW9uIGNhbiB0YWtlIGVmZmVjdC5cbiAgICB0aGlzLmNsb3NpbmdUcmFuc2l0aW9uQW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIHRoaXMuaXNPcGVuaW5nID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIC8vIGZvciBlYWNoIGNoaWxkIGVsZW1lbnQgb2YgYHRoaXMucGFuZWxgLCBmaW5kIGFueSB0cmFuc2l0aW9uIGR1cmF0aW9uIHdlIHNob3VsZCB3YWl0IGZvciBiZWZvcmUgc3RhYmlsaXppbmdcbiAgICBjb25zdCB7IGR1cmF0aW9uTWF0Y2gsIGRlbGF5TWF0Y2ggfSA9IEFycmF5LnByb3RvdHlwZS5zbGljZVxuICAgICAgLmNhbGwodGhpcy5wYW5lbCA_IHRoaXMucGFuZWwuY2hpbGRyZW4gOiBbXSlcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkdXJhdGlvbk1hdGNoLFxuICAgICAgICAgICAgZGVsYXlNYXRjaFxuICAgICAgICAgIH06IHsgZHVyYXRpb25NYXRjaDogbnVtYmVyOyBkZWxheU1hdGNoOiBudW1iZXIgfSxcbiAgICAgICAgICBlbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgICApID0-IHtcbiAgICAgICAgICBjb25zdCB0cmFuc2l0aW9uVGltaW5ncyA9IGdldFRyYW5zaXRpb25UaW1pbmdzKGVsZW1lbnQpO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGR1cmF0aW9uTWF0Y2g6IE1hdGgubWF4KFxuICAgICAgICAgICAgICBkdXJhdGlvbk1hdGNoLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uVGltaW5ncy5kdXJhdGlvbk1hdGNoXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVsYXlNYXRjaDogTWF0aC5tYXgoZGVsYXlNYXRjaCwgdHJhbnNpdGlvblRpbWluZ3MuZGVsYXlNYXRjaClcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICB7IGR1cmF0aW9uTWF0Y2g6IDAsIGRlbGF5TWF0Y2g6IDAgfVxuICAgICAgKTtcblxuICAgIHRoaXMucmVzcG9zaXRpb25UaW1lb3V0ID0gbGF0ZXIoXG4gICAgICB0aGlzLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlblN0YWJsZSA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZm4gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCgpO1xuICAgICAgICAgIHRoaXMudXBkYXRlRm9jdXMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgZm4pO1xuICAgICAgfSxcbiAgICAgIGR1cmF0aW9uTWF0Y2ggKyBkZWxheU1hdGNoXG4gICAgKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgZGlkSW5zZXJ0UG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdXBwcmVzc2luZ1BvcG92ZXIpIHtcbiAgICAgIC8vIGNvbXBvbmVudCB3YXMgY3JlYXRlZCB3aXRoIGlzT3Blbj10cnVlOyBub3cgdGhhdCBpdCdzIGluc2VydGVkXG4gICAgICAvLyBzdG9wIHN1cHByZXNzaW5nIGFuZCBzdGFydCBvcGVuaW5nXG4gICAgICB0aGlzLnN1cHByZXNzaW5nUG9wb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5pc09wZW5pbmcgPSB0cnVlO1xuXG4gICAgICBjb25zdCBmbiA9ICgpOiB2b2lkID0-IHRoaXMub25PcGVuUG9wb3ZlcigpO1xuXG4gICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgZm4pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFyZ3MucmVwb3NpdGlvbk9uU2Nyb2xsKSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICB9XG5cbiAgQGFjdGlvblxuICBkaWRVcGRhdGVSZXBvc2l0aW9uT25TY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXJncy5yZXBvc2l0aW9uT25TY3JvbGwpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMucG9zaXRpb25Qb3BvdmVyRml4ZWQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgZGlkVXBkYXRlSXNPcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuaXNDdXJyZW50bHlPcGVuID0gdGhpcy5pc09wZW47XG5cbiAgICBpZiAoIXRoaXMucHJldklzT3BlbiAmJiB0aGlzLmFyZ3MuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9uT3BlblBvcG92ZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcmV2SXNPcGVuICYmICF0aGlzLmFyZ3MuaXNPcGVuKSB7XG4gICAgICAvLyBJZiB0aGUgdXNlciBoYXMganVzdCBjbG9zZWQgdGhlIHBvcG92ZXIsIHF1ZXVlIHVwIHRoZSByZW1vdmFsIG9mIHRoZSBjb250ZW50IGFmdGVyIHRoZVxuICAgICAgLy8gdHJhbnNpdGlvbiBpcyBjb21wbGV0ZS5cbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNPcGVuaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NpbmdUcmFuc2l0aW9uVGltZW91dCA9IGxhdGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0Nsb3NpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgMjUwXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucHJldklzT3BlbiA9IHRoaXMuYXJncy5pc09wZW47XG4gIH1cblxuICB3aWxsRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci53aWxsRGVzdHJveSgpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkLCB0cnVlKTtcbiAgICBjYW5jZWwodGhpcy5yZXNwb3NpdGlvblRpbWVvdXQgYXMgUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-KTtcbiAgICBjYW5jZWwodGhpcy5jbG9zaW5nVHJhbnNpdGlvblRpbWVvdXQgYXMgUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-KTtcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmNsb3NpbmdUcmFuc2l0aW9uQW5pbWF0aW9uRnJhbWUgYXMgbnVtYmVyKTtcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZUZvY3VzQW5pbWF0aW9uRnJhbWUgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25NdXRhdGlvbihyZWNvcmRzOiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgY29uc3Qgd2FpdER1cmF0aW9uID0gZ2V0V2FpdER1cmF0aW9uKHJlY29yZHMpO1xuXG4gICAgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCgpO1xuXG4gICAgcGVyZm9ybU9uRnJhbWUod2FpdER1cmF0aW9uLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgcG9zaXRpb25Qb3BvdmVyKGFsbG93RW5mb3JjZVBvc2l0aW9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYnV0dG9uID09IG51bGwgfHwgdGhpcy5wYW5lbCA9PSBudWxsKSByZXR1cm47XG5cbiAgICBsZXQgcG9zaXRpb24gPSBnZXRQb3BvdmVyUG9zaXRpb25Gcm9tQW5jaG9yUG9zaXRpb24odGhpcy5hbmNob3JQb3NpdGlvbik7XG4gICAgbGV0IGZvcmNlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoXG4gICAgICBhbGxvd0VuZm9yY2VQb3NpdGlvbiAmJlxuICAgICAgdGhpcy5pc09wZW5TdGFibGUgJiZcbiAgICAgIHRoaXMub3BlblBvc2l0aW9uICE9IG51bGxcbiAgICApIHtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5vcGVuUG9zaXRpb247XG4gICAgICBmb3JjZVBvc2l0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICB0b3AsXG4gICAgICBsZWZ0LFxuICAgICAgcG9zaXRpb246IGZvdW5kUG9zaXRpb24sXG4gICAgICBhcnJvdyxcbiAgICAgIGFuY2hvckJvdW5kaW5nQm94XG4gICAgfSA9IGZpbmRQb3BvdmVyUG9zaXRpb24oe1xuICAgICAgY29udGFpbmVyOiB0aGlzLmFyZ3MuY29udGFpbmVyLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBmb3JjZVBvc2l0aW9uLFxuICAgICAgYWxpZ246IGdldFBvcG92ZXJBbGlnbkZyb21BbmNob3JQb3NpdGlvbih0aGlzLmFuY2hvclBvc2l0aW9uKSxcbiAgICAgIGFuY2hvcjogdGhpcy5idXR0b24sXG4gICAgICBwb3BvdmVyOiB0aGlzLnBhbmVsLFxuICAgICAgb2Zmc2V0OlxuICAgICAgICAhdGhpcy5hcmdzLmF0dGFjaFRvQW5jaG9yICYmIHRoaXMuaGFzQXJyb3dcbiAgICAgICAgICA_IDE2ICsgKHRoaXMuYXJncy5vZmZzZXQgfHwgMClcbiAgICAgICAgICA6IDggKyAodGhpcy5hcmdzLm9mZnNldCB8fCAwKSxcbiAgICAgIGFycm93Q29uZmlnOiB7XG4gICAgICAgIGFycm93V2lkdGg6IDI0LFxuICAgICAgICBhcnJvd0J1ZmZlcjogMTBcbiAgICAgIH0sXG4gICAgICByZXR1cm5Cb3VuZGluZ0JveDogdGhpcy5hcmdzLmF0dGFjaFRvQW5jaG9yLFxuICAgICAgYnVmZmVyOiB0aGlzLmFyZ3MuYnVmZmVyXG4gICAgfSk7XG5cbiAgICAvLyB0aGUgcG9wb3ZlcidzIHotaW5kZXggbXVzdCBpbmhlcml0IGZyb20gdGhlIGJ1dHRvblxuICAgIC8vIHRoaXMga2VlcHMgYSBidXR0b24ncyBwb3BvdmVyIHVuZGVyIGEgZmx5b3V0IHRoYXQgd291bGQgY292ZXIgdGhlIGJ1dHRvblxuICAgIC8vIGJ1dCBhIHBvcG92ZXIgdHJpZ2dlcmVkIGluc2lkZSBhIGZseW91dCB3aWxsIGFwcGVhciBvdmVyIHRoYXQgZmx5b3V0XG4gICAgY29uc3QgeyB6SW5kZXg6IHpJbmRleFByb3AgfSA9IHRoaXMuYXJncztcbiAgICBjb25zdCB6SW5kZXggPVxuICAgICAgekluZGV4UHJvcCA9PSBudWxsXG4gICAgICAgID8gZ2V0RWxlbWVudFpJbmRleCh0aGlzLmJ1dHRvbiwgdGhpcy5wYW5lbCkgKyAyMDAwXG4gICAgICAgIDogekluZGV4UHJvcDtcblxuICAgIGNvbnN0IHBvcG92ZXJTdHlsZXMgPSB7XG4gICAgICB0b3AsXG4gICAgICBsZWZ0OlxuICAgICAgICB0aGlzLmFyZ3MuYXR0YWNoVG9BbmNob3IgJiYgYW5jaG9yQm91bmRpbmdCb3hcbiAgICAgICAgICA_IGFuY2hvckJvdW5kaW5nQm94LmxlZnRcbiAgICAgICAgICA6IGxlZnQsXG4gICAgICB6SW5kZXhcbiAgICB9O1xuXG4gICAgY29uc3Qgd2lsbFJlbmRlckFycm93ID0gIXRoaXMuYXJncy5hdHRhY2hUb0FuY2hvciAmJiB0aGlzLmhhc0Fycm93O1xuICAgIGNvbnN0IGFycm93U3R5bGVzID0gd2lsbFJlbmRlckFycm93ID8gYXJyb3cgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgYXJyb3dQb3NpdGlvbiA9IGZvdW5kUG9zaXRpb247XG5cbiAgICB0aGlzLnBvcG92ZXJTdHlsZXMgPSBwb3BvdmVyU3R5bGVzO1xuICAgIHRoaXMuYXJyb3dTdHlsZXMgPSBhcnJvd1N0eWxlcztcbiAgICB0aGlzLmFycm93UG9zaXRpb24gPSBhcnJvd1Bvc2l0aW9uO1xuICAgIHRoaXMub3BlblBvc2l0aW9uID0gZm91bmRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldCBfYXJyb3dTdHlsZXMoKTogUmV0dXJuVHlwZTx0eXBlb2YgaHRtbFNhZmU-IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB7IGFycm93U3R5bGVzIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIGFycm93U3R5bGVzXG4gICAgICA_IGh0bWxTYWZlKGB0b3A6ICR7YXJyb3dTdHlsZXM_LnRvcH1weDsgbGVmdDogJHthcnJvd1N0eWxlcz8ubGVmdH1weDtgKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgX3BvcG92ZXJTdHlsZXMoKTogeyBbaTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHsgcGFuZWxTdHlsZSB9ID0gdGhpcy5hcmdzO1xuICAgIGNvbnN0IHsgcG9wb3ZlclN0eWxlcyB9ID0gdGhpcztcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYW5lbFN0eWxlLFxuICAgICAgdG9wOiBgJHtwb3BvdmVyU3R5bGVzLnRvcH1weGAsXG4gICAgICBsZWZ0OiBgJHtwb3BvdmVyU3R5bGVzLmxlZnR9cHhgLFxuICAgICAgekluZGV4OiBgJHtwb3BvdmVyU3R5bGVzLnpJbmRleH1gXG4gICAgfTtcbiAgfVxuXG4gIGdldCB0YWJpbmRleCgpIHtcbiAgICBpZiAodGhpcy5vd25Gb2N1cykge1xuICAgICAgcmV0dXJuIHRoaXMuYXJncy50YWJpbmRleCA_PyAnMCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICctMSc7XG4gIH1cblxuICBAYWN0aW9uXG4gIHBvc2l0aW9uUG9wb3ZlckZpeGVkKCk6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25Qb3BvdmVyKHRydWUpO1xuICB9XG5cbiAgQGFjdGlvblxuICBwb3NpdGlvblBvcG92ZXJGbHVpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uUG9wb3ZlcihmYWxzZSk7XG4gIH1cblxuICBAYWN0aW9uXG4gIHJlZ2lzdGVyQnV0dG9uKGJ0bjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvbiA9IGJ0bjtcbiAgICB0aGlzLmFyZ3MuYnV0dG9uUmVmPy4oYnRuKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgcmVnaXN0ZXJQYW5lbChwYW5lbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBhbmVsID0gcGFuZWw7XG4gICAgdGhpcy5hcmdzLnBhbmVsUmVmPy4ocGFuZWwpO1xuXG4gICAgaWYgKHBhbmVsID09PSBudWxsKSB7XG4gICAgICAvLyBwYW5lbCBoYXMgdW5tb3VudGVkLCByZXN0b3JlIHRoZSBzdGF0ZSBkZWZhdWx0c1xuICAgICAgdGhpcy5wb3BvdmVyU3R5bGVzID0gREVGQVVMVF9QT1BPVkVSX1NUWUxFUztcbiAgICAgIHRoaXMuYXJyb3dTdHlsZXMgPSB7fTtcbiAgICAgIHRoaXMuYXJyb3dQb3NpdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLm9wZW5Qb3NpdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLmlzT3BlblN0YWJsZSA9IGZhbHNlO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucG9zaXRpb25Qb3BvdmVyRmx1aWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBwYW5lbCBpcyBjb21pbmcgaW50byBleGlzdGVuY2VcbiAgICAgIHRoaXMucG9zaXRpb25Qb3BvdmVyRmx1aWQoKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZsdWlkKTtcbiAgICB9XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjbGV0XG4gICAgICAocmFuZG9tSWQpXG4gICAgICAoY2xhc3NOYW1lc1xuICAgICAgICAoaWYgdGhpcy5pc09wZW5pbmcgXCJldWlQb3BvdmVyLWlzT3BlblwiKVxuICAgICAgICBwb3NpdGlvbj10aGlzLmFuY2hvclBvc2l0aW9uXG4gICAgICAgIGRpc3BsYXk9dGhpcy5kaXNwbGF5XG4gICAgICAgIGNvbXBvbmVudE5hbWU9XCJFdWlQb3BvdmVyXCJcbiAgICAgIClcbiAgICAgIChjbGFzc05hbWVzXG4gICAgICAgIFwiZXVpUG9wb3Zlcl9fcGFuZWxcIlxuICAgICAgICAoY29uY2F0IFwiZXVpUG9wb3Zlcl9fcGFuZWwtLVwiIHRoaXMuYXJyb3dQb3NpdGlvbilcbiAgICAgICAgKGlmIHRoaXMuaXNPcGVuaW5nIFwiZXVpUG9wb3Zlcl9fcGFuZWwtaXNPcGVuXCIpXG4gICAgICAgIChpZlxuICAgICAgICAgIChvciAobm90IHRoaXMuaGFzQXJyb3cpIEBhdHRhY2hUb0FuY2hvcikgXCJldWlQb3BvdmVyX19wYW5lbC1ub0Fycm93XCJcbiAgICAgICAgKVxuICAgICAgICAoaWYgQGF0dGFjaFRvQW5jaG9yIFwiZXVpUG9wb3Zlcl9fcGFuZWwtaXNBdHRhY2hlZFwiKVxuICAgICAgICBAcGFuZWxDbGFzc2VzXG4gICAgICApXG4gICAgICBhcyB8ZGVzY3JpcHRpb25JZCBjbGFzc2VzIHBhbmVsQ2xhc3Nlc3xcbiAgICB9fVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz17e2NsYXNzZXN9fVxuICAgICAgICB7e29uS2V5IFwiX2FsbFwiIHRoaXMub25LZXlEb3duIHByaW9yaXR5PTF9fVxuICAgICAgICB7e2RpZEluc2VydCB0aGlzLmRpZEluc2VydFBvcG92ZXJ9fVxuICAgICAgICB7e2RpZFVwZGF0ZSB0aGlzLmRpZFVwZGF0ZUlzT3BlbiBAaXNPcGVufX1cbiAgICAgICAge3tkaWRVcGRhdGUgdGhpcy5kaWRVcGRhdGVSZXBvc2l0aW9uT25TY3JvbGwgQHJlcG9zaXRpb25PblNjcm9sbH19XG4gICAgICAgIHt7ZGlkSW5zZXJ0IChvcHRpb25hbCBAcG9wb3ZlclJlZil9fVxuICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICA-XG5cbiAgICAgICAge3shIGJ1dHRvbiB9fVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJldWlQb3BvdmVyX19hbmNob3Ige3tAYW5jaG9yQ2xhc3NOYW1lfX1cIlxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMucmVnaXN0ZXJCdXR0b259fVxuICAgICAgICA-XG4gICAgICAgICAge3t5aWVsZCB0bz1cImJ1dHRvblwifX1cbiAgICAgICAgPC9kaXY-XG5cbiAgICAgICAge3shIGNvbnRlbnQgfX1cbiAgICAgICAge3sjaWZcbiAgICAgICAgICAoYW5kXG4gICAgICAgICAgICAobm90IHRoaXMuc3VwcHJlc3NpbmdQb3BvdmVyKVxuICAgICAgICAgICAgKG9yIHRoaXMuaXNDdXJyZW50bHlPcGVuIHRoaXMuaXNDbG9zaW5nKVxuICAgICAgICAgIClcbiAgICAgICAgfX1cbiAgICAgICAgICA8RXVpUG9ydGFsIEBpbnNlcnQ9e3tAaW5zZXJ0fX0-XG4gICAgICAgICAgICB7eyNsZXQgKHJhbmRvbUlkKSBhcyB8cGFuZWxJZHx9fVxuICAgICAgICAgICAgICA8RXVpUGFuZWxcbiAgICAgICAgICAgICAgICBpZD17e3BhbmVsSWR9fVxuICAgICAgICAgICAgICAgIGNsYXNzPXt7cGFuZWxDbGFzc2VzfX1cbiAgICAgICAgICAgICAgICBhcmlhLWxpdmU9e3tpZiB0aGlzLm93bkZvY3VzIFwib2ZmXCIgXCJhc3NlcnRpdmVcIn19XG4gICAgICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17e0BhcmlhTGFiZWx9fVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17e0BhcmlhTGFiZWxsZWRCeX19XG4gICAgICAgICAgICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e3tpZiB0aGlzLm93bkZvY3VzIGRlc2NyaXB0aW9uSWR9fVxuICAgICAgICAgICAgICAgIHRhYmluZGV4PXt7dGhpcy50YWJpbmRleH19XG4gICAgICAgICAgICAgICAgQGhhc1NoYWRvdz17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3t0aGlzLnBhbmVsUGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgIHt7c2ltcGxlU3R5bGUgdGhpcy5fcG9wb3ZlclN0eWxlc319XG4gICAgICAgICAgICAgICAge3tkaWRJbnNlcnQgdGhpcy5yZWdpc3RlclBhbmVsfX1cbiAgICAgICAgICAgICAgICB7e291dHNpZGVDbGlja0RldGVjdG9yIG9uT3V0c2lkZUNsaWNrPXRoaXMub25DbGlja091dHNpZGV9fVxuICAgICAgICAgICAgICAgIHt7b25LZXkgXCJFc2NhcGVcIiB0aGlzLm9uRXNjYXBlS2V5fX1cbiAgICAgICAgICAgICAgICB7e2ZvY3VzVHJhcFxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9KG5vdFxuICAgICAgICAgICAgICAgICAgICAob3JcbiAgICAgICAgICAgICAgICAgICAgICAobm90IHRoaXMub3duRm9jdXMpIChub3QgdGhpcy5pc09wZW5TdGFibGUpIHRoaXMuaXNDbG9zaW5nXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHNob3VsZFNlbGZGb2N1cz10aGlzLnNob3VsZFNlbGZGb2N1c1xuICAgICAgICAgICAgICAgICAgaXNQYXVzZWQ9dGhpcy5pc0ZvY3VzVHJhcFBhdXNlZFxuICAgICAgICAgICAgICAgICAgZm9jdXNUcmFwT3B0aW9ucz0obWVyZ2VcbiAgICAgICAgICAgICAgICAgICAgKGhhc2hcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZT10aGlzLmlzT3BlblN0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxGb2N1cz0ob3IgQGluaXRpYWxGb2N1cyB0aGlzLnBhbmVsKVxuICAgICAgICAgICAgICAgICAgICAgIG9uRGVhY3RpdmF0ZT0ob3B0aW9uYWwgQG9uVHJhcERlYWN0aXZhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICBwcmV2ZW50U2Nyb2xsPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlcz10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tGb2N1cz0oY29uY2F0IFwiI1wiIHBhbmVsSWQpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgQGZvY3VzVHJhcE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9e3tjb25jYXRcbiAgICAgICAgICAgICAgICAgICAgXCJldWlQb3BvdmVyX19wYW5lbEFycm93IGV1aVBvcG92ZXJfX3BhbmVsQXJyb3ctLVwiXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXJyb3dQb3NpdGlvblxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7dGhpcy5fYXJyb3dTdHlsZXN9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJhcnJvd0NoaWxkcmVuXCJ9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHt7I2lmIHRoaXMub3duRm9jdXN9fVxuICAgICAgICAgICAgICAgICAgPHAgaWQ9e3tkZXNjcmlwdGlvbklkfX0ge3tzY3JlZW5SZWFkZXJPbmx5fX0-XG4gICAgICAgICAgICAgICAgICAgIFlvdSBhcmUgaW4gYSBkaWFsb2cuIFRvIGNsb3NlIHRoaXMgZGlhbG9nLCBoaXQgZXNjYXBlLlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICB7e211dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgb25NdXRhdGlvbj10aGlzLm9uTXV0YXRpb25cbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXJPcHRpb25zPShtZXJnZVxuICAgICAgICAgICAgICAgICAgICAgIChoYXNoXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkTGlzdD10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJEYXRhPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnRyZWU9dHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICBAbXV0YXRpb25PYnNlcnZlck9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiY29udGVudFwifX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9FdWlQYW5lbD5cbiAgICAgICAgICAgIHt7L2xldH19XG4gICAgICAgICAgPC9FdWlQb3J0YWw-XG4gICAgICAgIHt7L2lmfX1cblxuICAgICAgPC9kaXY-XG4gICAge3svbGV0fX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFDNUMsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxNQUFNLFFBQVEsZ0JBQWdCO0FBQ3ZDLFNBQVMsTUFBTSxRQUFRLGdCQUFnQjtBQUN2QyxPQUFPLGVBQWUsK0NBQStDO0FBQ3JFLE9BQU8sZUFBZSwrQ0FBK0M7QUFDckUsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksUUFBUSxpQkFBaUI7QUFDN0QsU0FBUyxRQUFRLFFBQVEsa0JBQWtCO0FBRTNDLE9BQU8sY0FBYyw0Q0FBNEM7QUFDakUsU0FBUyxTQUFTLFFBQVEsbUJBQW1CO0FBQzdDLE9BQU8sV0FBVyxrQ0FBa0M7QUFDcEQsU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxzQkFBc0I7QUFDbkQsU0FBUyxRQUFRLFFBQVEsV0FBVztBQUVwQyxPQUFPLGNBQWMsMkJBQTJCO0FBQ2hELFNBQVMscUJBQXFCLFFBQVEsK0JBQStCO0FBQ3JFLE9BQU8sZ0JBQWdCLDRCQUE0QjtBQUNuRCxPQUFPLFdBQVcsc0JBQXNCO0FBQ3hDLE9BQU8sc0JBQXNCLG9DQUFvQztBQUNqRSxPQUFPLDBCQUEwQix5Q0FBeUM7QUFDMUUsT0FBTyxzQkFBc0IscUNBQXFDO0FBQ2xFLE9BQU8saUJBQWlCLCtCQUErQjtBQUN2RCxTQUFTLGlCQUFpQixRQUFRLGlDQUFpQztBQUNuRSxTQUNFLHFCQUFxQixFQUNyQixjQUFjLFFBQ1QsdUNBQXVDO0FBQzlDLFNBQVMsbUJBQW1CLEVBQUUsZ0JBQWdCLFFBQVEsNEJBQTRCO0FBQ2xGLFNBQ0Usb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixjQUFjLFFBQ1QseUJBQXlCO0FBQ2hDLE9BQU8sY0FBYyxrQkFBa0I7QUFDdkMsT0FBTyxlQUFlLG1CQUFt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"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition1","match1","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus1","initialFocusType1","document","querySelector","EuiPopoverComponent","Component","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner1","args1","assert","args","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","n","action","onEscapeKey","event1","ekEvent1","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","initialFocus","activeElement","focusTarget1","tabbableItems1","tabbable","panelVisibility1","getComputedStyle","opacity","visibility1","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","durationMatch1","delayMatch","delayMatch1","Array","slice","call","children","reduce","element1","transitionTimings1","getTransitionTimings","Math","max","later","isOpenStable","fn1","positionPopoverFixed","scheduleOnce","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","cancelAnimationFrame","onMutation","records1","waitDuration1","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition1","position1","anchorPosition","forcePosition1","undefined","openPosition","top1","left1","position","foundPosition1","arrow","arrow1","anchorBoundingBox","anchorBoundingBox1","findPopoverPosition","container","forcePosition","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp1","zIndex1","getElementZIndex","popoverStyles1","willRenderArrow1","arrowStyles1","arrowPosition1","popoverStyles","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","panelStyle1","tabindex","positionPopoverFluid","registerButton","btn1","buttonRef","registerPanel","panel1","panelRef","setComponentTemplate","precompileTemplate","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver","strictMode"],"mappings":"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"}
1
+ {"version":3,"file":"eui-popover.js","sources":["../../src/components/eui-popover.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { hash } from '@ember/helper';\nimport { concat } from '@ember/helper';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { cancel, later, scheduleOnce } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport optional from 'ember-composable-helpers/helpers/optional';\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { and, not, or } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport merge from '../helpers/merge.ts';\nimport mutationObserver from '../modifiers/mutation-observer.ts';\nimport outsideClickDetector from '../modifiers/outside-click-detector.ts';\nimport screenReaderOnly from '../modifiers/screen-reader-only.ts';\nimport simpleStyle from '../modifiers/simple-style.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport { anchorPositionMapping, displayMapping } from '../utils/css-mappings/eui-popover.ts';\nimport { findPopoverPosition, getElementZIndex } from '../utils/popover/index.ts';\nimport { getTransitionTimings, getWaitDuration, performOnFrame } from '../utils/transition.ts';\nimport EuiPanel from './eui-panel.gts';\nimport EuiPortal from './eui-portal.gts';\nimport type { paddingSizeMapping } from '../utils/css-mappings/eui-panel.ts';\nimport type { EuiPopoverPosition } from '../utils/popover/types';\nimport type { EmberKeyboardEvent } from 'ember-keyboard/modifiers/on-key';\ntype PanelPaddingSize = keyof typeof paddingSizeMapping;\nexport type PopoverAnchorPosition = 'upCenter' | 'upLeft' | 'upRight' | 'downCenter' | 'downLeft' | 'downRight' | 'leftCenter' | 'leftUp' | 'leftDown' | 'rightCenter' | 'rightUp' | 'rightDown';\nexport type EuiPopoverArgs = {\n panelClasses?: string;\n /**\n * Class name passed to the direct parent of the button\n */ anchorClassName?: string;\n /**\n * Alignment of the popover and arrow relative to the button\n */ anchorPosition?: PopoverAnchorPosition;\n /**\n * Style and position alteration for arrow-less, left-aligned\n * attachment. Intended for use with inputs as anchors, e.g.\n * EuiInputPopover\n */ attachToAnchor?: boolean;\n /**\n * Triggering element for which to align the popover to\n */ button?: Component;\n buttonRef?: (e: HTMLDivElement) => unknown;\n /**\n * Callback to handle hiding of the popover\n */ closePopover: () => void;\n /**\n * Restrict the popover's position within this element\n */ container?: HTMLElement;\n /**\n * CSS display type for both the popover and anchor\n */ display?: keyof typeof displayMapping;\n /**\n * Show arrow indicating to originating button\n */ hasArrow?: boolean;\n /**\n * Specifies what element should initially have focus; Can be a DOM\n * node, or a selector string (which will be passed to\n * document.querySelector() to find the DOM node), or a function that\n * returns a DOM node\n */ initialFocus?: FocusTarget | false;\n /**\n * Passed directly to EuiPortal for DOM positioning. Both properties are\n * required if prop is specified\n */ insert?: {\n sibling: HTMLElement;\n position: 'before' | 'after';\n };\n /**\n * Visibility state of the popover\n */ isOpen?: boolean;\n /**\n * Traps tab focus within the popover contents\n */ ownFocus?: boolean;\n /**\n * Custom class added to the EuiPanel containing the popover contents\n */ panelClassName?: string;\n /**\n * EuiPanel padding on all sides\n */ panelPaddingSize?: PanelPaddingSize;\n /**\n * Standard DOM `style` attribute. Passed to the EuiPanel\n */ panelStyle?: {\n [i: string]: string;\n };\n panelRef?: (e: HTMLElement | null) => unknown;\n popoverRef?: (e: HTMLElement) => unknown;\n /**\n * When `true`, the popover's position is re-calculated when the user\n * scrolls, this supports having fixed-position popover anchors\n */ repositionOnScroll?: boolean;\n /**\n * By default, popover content inherits the z-index of the anchor\n * component; pass `zIndex` to override\n */ zIndex?: number;\n /**\n * Function callback for when the focus trap is deactivated\n */ onTrapDeactivation?: () => void;\n /**\n * Distance away from the anchor that the popover will render\n */ offset?: number;\n /**\n * Minimum distance between the popover and the bounding container;\n * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`\n * Default is 16\n */ buffer?: number | [number, number, number, number];\n /**\n * Element to pass as the child element of the arrow;\n * Use case is typically limited to an accompanying `EuiBeacon`\n */ arrowChildren?: Component;\n /**\n * Provide a name to the popover panel\n */ ariaLabel?: string;\n /**\n * Alternative option to `aria-label` that takes an `id`.\n * Usually takes the `id` of the popover title\n */ ariaLabelledBy?: string;\n tabindex?: string | number;\n shouldSelfFocus?: boolean;\n isFocusTrapPaused?: boolean;\n focusTrapOptions?: {\n onClickOutside?: (e: Event) => void;\n };\n mutationObserverOptions?: {\n attributes?: boolean;\n childList?: boolean;\n characterData?: boolean;\n subtree?: boolean;\n };\n};\ntype AnchorPosition = 'up' | 'right' | 'down' | 'left';\nconst anchorPositionToPopoverPositionMap: {\n [position in AnchorPosition]: EuiPopoverPosition;\n} = {\n up: 'top',\n right: 'right',\n down: 'bottom',\n left: 'left'\n};\nexport function getPopoverPositionFromAnchorPosition(anchorPosition1: PopoverAnchorPosition): EuiPopoverPosition {\n // maps the anchor position to the matching popover position\n // e.g. \"upLeft\" -> \"top\", \"downRight\" -> \"bottom\"\n // extract the first positional word from anchorPosition:\n // starts at the beginning (\" ^ \") of anchorPosition and\n // captures all of the characters (\" (.*?) \") until the\n // first capital letter (\" [A-Z] \") is encountered\n const match1 = anchorPosition1.match(/^(.*?)[A-Z]/);\n if (match1?.length && match1.length > 1) {\n return anchorPositionToPopoverPositionMap[match1[1] as AnchorPosition];\n }\n return anchorPositionToPopoverPositionMap['up'];\n}\nexport function getPopoverAlignFromAnchorPosition(anchorPosition1: PopoverAnchorPosition): EuiPopoverPosition {\n // maps the gravity to the matching popover position\n // e.g. \"upLeft\" -> \"left\", \"rightDown\" -> \"bottom\"\n // extract the second positional word from anchorPosition:\n // starts a capture group at the first capital letter\n // and includes everything after it\n const match1 = anchorPosition1.match(/([A-Z].*)/);\n // this performs two tasks:\n // 1. normalizes the align position by lowercasing it\n // 2. `center` doesn't exist in the lookup map which converts it to `undefined` meaning no align\n if (match1?.length && match1.length > 1) {\n return anchorPositionToPopoverPositionMap[match1[1]?.toLowerCase() as AnchorPosition];\n }\n return anchorPositionToPopoverPositionMap['left'];\n}\nexport const ANCHOR_POSITIONS = Object.keys(anchorPositionMapping);\nexport const DISPLAY = Object.keys(displayMapping);\nexport type FocusTarget = HTMLElement | string | (() => HTMLElement);\nconst DEFAULT_POPOVER_STYLES = {\n top: 50,\n left: 50\n};\nfunction getElementFromInitialFocus(initialFocus1?: FocusTarget): HTMLElement | null {\n const initialFocusType1 = typeof initialFocus1;\n if (initialFocusType1 === 'string') {\n return document.querySelector(initialFocus1 as string);\n }\n if (initialFocusType1 === 'function') {\n return (initialFocus1 as () => HTMLElement | null)();\n }\n return initialFocus1 as HTMLElement | null;\n}\ntype CssProps = {\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n zIndex?: number;\n};\nexport interface EuiPopoverSignature {\n Element: HTMLDivElement;\n Args: EuiPopoverArgs;\n Blocks: {\n button: [];\n content: [];\n arrowChildren: [];\n };\n}\nexport default class EuiPopoverComponent extends Component<EuiPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator(false)\n isOpen: boolean;\n @argOrDefaultDecorator(true)\n ownFocus: boolean;\n @argOrDefaultDecorator('downCenter')\n anchorPosition: PopoverAnchorPosition;\n @argOrDefaultDecorator('m')\n panelPaddingSize: PanelPaddingSize;\n @argOrDefaultDecorator(true)\n hasArrow: boolean;\n @argOrDefaultDecorator('inlineBlock')\n display: string;\n @argOrDefaultDecorator(true)\n shouldSelfFocus: boolean;\n @argOrDefaultDecorator(false)\n isFocusTrapPaused: boolean;\n //State\n @tracked\n prevIsOpen: boolean | undefined;\n @tracked\n suppressingPopover: boolean | undefined;\n @tracked\n isClosing = false;\n @tracked\n isOpening = false;\n @tracked\n popoverStyles: CssProps = {};\n @tracked\n arrowStyles: CssProps | undefined = {};\n @tracked\n arrowPosition: EuiPopoverPosition | null = null;\n @tracked\n openPosition: EuiPopoverPosition | null = null;\n @tracked\n isOpenStable = false;\n @tracked\n isCurrentlyOpen: boolean | undefined;\n ///\n private respositionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionTimeout: ReturnType<typeof later> | null = null;\n private closingTransitionAnimationFrame: number | undefined;\n private updateFocusAnimationFrame: number | undefined;\n private hasSetInitialFocus: boolean = false;\n @tracked\n button: HTMLElement | null = null;\n @tracked\n panel: HTMLElement | null = null;\n constructor(owner1: unknown, args1: EuiPopoverArgs){\n super(owner1, args1);\n assert(`Must provide closePopover function`, this.args.closePopover);\n this.prevIsOpen = this.isOpen;\n this.suppressingPopover = this.isOpen;\n this.isCurrentlyOpen = this.isOpen;\n }\n @action\n closePopover(): void {\n if (this.isOpen) {\n this.args.closePopover();\n }\n }\n @action\n onEscapeKey(event1: Event, ekEvent1?: EmberKeyboardEvent): void {\n if (this.isOpen) {\n ekEvent1?.stopPropagation();\n ekEvent1?.stopImmediatePropagation();\n event1.preventDefault();\n event1.stopPropagation();\n this.closePopover();\n }\n }\n @action\n onKeyDown(event1: KeyboardEvent, ekEvent1: EmberKeyboardEvent): void {\n if (event1.key === cascadingMenuKeys.ESCAPE) {\n this.onEscapeKey(event1 as unknown as Event, ekEvent1 as unknown as Event);\n }\n }\n @action\n onClickOutside(event1: Event): void {\n if (this.args.focusTrapOptions?.onClickOutside) {\n this.args.focusTrapOptions.onClickOutside(event1);\n } else {\n // only close the popover if the event source isn't the anchor button\n // otherwise, it is up to the anchor to toggle the popover's open status\n if (this.button && this.button.contains(event1.target as Node) === false) {\n this.closePopover();\n }\n }\n }\n updateFocus(): void {\n // Wait for the DOM to update.\n this.updateFocusAnimationFrame = window.requestAnimationFrame(()=>{\n if (!this.ownFocus || !this.panel || this.args.initialFocus === false) {\n return;\n }\n // If we've already focused on something inside the panel, everything's fine.\n if (this.hasSetInitialFocus && this.panel.contains(document.activeElement)) {\n return;\n }\n // Otherwise let's focus the first tabbable item and expedite input from the user.\n let focusTarget1;\n if (this.args.initialFocus != null) {\n focusTarget1 = getElementFromInitialFocus(this.args.initialFocus);\n } else {\n const tabbableItems1 = tabbable(this.panel);\n if (tabbableItems1.length) {\n focusTarget1 = tabbableItems1[0];\n }\n }\n // there's a race condition between the popover content becoming visible and this function call\n // if the element isn't visible yet (due to css styling) then it can't accept focus\n // so wait for another render and try again\n if (focusTarget1 == null) {\n // there isn't a focus target, one of two reasons:\n // #1 is the whole panel hidden? If so, schedule another check\n // #2 panel is visible but no tabbables exist, move focus to the panel\n const panelVisibility1 = window.getComputedStyle(this.panel).opacity;\n if (panelVisibility1 === '0') {\n // #1\n this.updateFocus();\n } else {\n // #2\n focusTarget1 = this.panel;\n }\n } else {\n // found an element to focus, but is it visible?\n const visibility1 = window.getComputedStyle(focusTarget1).visibility;\n if (visibility1 === 'hidden') {\n // not visible, check again next render frame\n this.updateFocus();\n }\n }\n if (focusTarget1 != null) {\n this.hasSetInitialFocus = true;\n focusTarget1.focus();\n }\n });\n }\n @action\n onOpenPopover(): void {\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n // We need to set this state a beat after the render takes place, so that the CSS\n // transition can take effect.\n this.closingTransitionAnimationFrame = window.requestAnimationFrame(()=>{\n this.isOpening = true;\n });\n // for each child element of `this.panel`, find any transition duration we should wait for before stabilizing\n const { durationMatch: durationMatch1, delayMatch: delayMatch1 } = Array.prototype.slice.call(this.panel ? this.panel.children : []).reduce(({ durationMatch: durationMatch1, delayMatch: delayMatch1 }: {\n durationMatch: number;\n delayMatch: number;\n }, element1: HTMLElement)=>{\n const transitionTimings1 = getTransitionTimings(element1);\n return {\n durationMatch: Math.max(durationMatch1, transitionTimings1.durationMatch),\n delayMatch: Math.max(delayMatch1, transitionTimings1.delayMatch)\n };\n }, {\n durationMatch: 0,\n delayMatch: 0\n });\n this.respositionTimeout = later(this, ()=>{\n this.isOpenStable = true;\n const fn1 = (): void =>{\n this.positionPopoverFixed();\n this.updateFocus();\n };\n scheduleOnce('afterRender', this, fn1);\n }, durationMatch1 + delayMatch1);\n }\n @action\n didInsertPopover(): void {\n if (this.suppressingPopover) {\n // component was created with isOpen=true; now that it's inserted\n // stop suppressing and start opening\n this.suppressingPopover = false;\n this.isOpening = true;\n const fn1 = (): void =>this.onOpenPopover();\n scheduleOnce('afterRender', this, fn1);\n }\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n }\n this.updateFocus();\n }\n @action\n didUpdateRepositionOnScroll(): void {\n if (this.args.repositionOnScroll) {\n window.addEventListener('scroll', this.positionPopoverFixed, true);\n } else {\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n }\n }\n @action\n didUpdateIsOpen(): void {\n this.isCurrentlyOpen = this.isOpen;\n if (!this.prevIsOpen && this.args.isOpen) {\n this.onOpenPopover();\n }\n if (this.prevIsOpen && !this.args.isOpen) {\n // If the user has just closed the popover, queue up the removal of the content after the\n // transition is complete.\n this.isClosing = true;\n this.isOpening = false;\n this.closingTransitionTimeout = later(this, ()=>{\n this.isClosing = false;\n }, 250);\n }\n this.prevIsOpen = this.args.isOpen;\n }\n willDestroy(): void {\n super.willDestroy();\n window.removeEventListener('scroll', this.positionPopoverFixed, true);\n cancel(this.respositionTimeout as ReturnType<typeof later>);\n cancel(this.closingTransitionTimeout as ReturnType<typeof later>);\n cancelAnimationFrame(this.closingTransitionAnimationFrame as number);\n cancelAnimationFrame(this.updateFocusAnimationFrame as number);\n }\n @action\n onMutation(records1: MutationRecord[]): void {\n const waitDuration1 = getWaitDuration(records1);\n this.positionPopoverFixed();\n performOnFrame(waitDuration1, this.positionPopoverFixed);\n }\n @action\n positionPopover(allowEnforcePosition1: boolean): void {\n if (this.button == null || this.panel == null) return;\n let position1 = getPopoverPositionFromAnchorPosition(this.anchorPosition);\n let forcePosition1 = undefined;\n if (allowEnforcePosition1 && this.isOpenStable && this.openPosition != null) {\n position1 = this.openPosition;\n forcePosition1 = true;\n }\n const { top: top1, left: left1, position: foundPosition1, arrow: arrow1, anchorBoundingBox: anchorBoundingBox1 } = findPopoverPosition({\n container: this.args.container,\n position: position1,\n forcePosition: forcePosition1,\n align: getPopoverAlignFromAnchorPosition(this.anchorPosition),\n anchor: this.button,\n popover: this.panel,\n offset: !this.args.attachToAnchor && this.hasArrow ? 16 + (this.args.offset || 0) : 8 + (this.args.offset || 0),\n arrowConfig: {\n arrowWidth: 24,\n arrowBuffer: 10\n },\n returnBoundingBox: this.args.attachToAnchor,\n buffer: this.args.buffer\n });\n // the popover's z-index must inherit from the button\n // this keeps a button's popover under a flyout that would cover the button\n // but a popover triggered inside a flyout will appear over that flyout\n const { zIndex: zIndexProp1 } = this.args;\n const zIndex1 = zIndexProp1 == null ? getElementZIndex(this.button, this.panel) + 2000 : zIndexProp1;\n const popoverStyles1 = {\n top: top1,\n left: this.args.attachToAnchor && anchorBoundingBox1 ? anchorBoundingBox1.left : left1,\n zIndex: zIndex1\n };\n const willRenderArrow1 = !this.args.attachToAnchor && this.hasArrow;\n const arrowStyles1 = willRenderArrow1 ? arrow1 : undefined;\n const arrowPosition1 = foundPosition1;\n this.popoverStyles = popoverStyles1;\n this.arrowStyles = arrowStyles1;\n this.arrowPosition = arrowPosition1;\n this.openPosition = foundPosition1;\n }\n get _arrowStyles(): ReturnType<typeof htmlSafe> | undefined {\n const { arrowStyles: arrowStyles1 } = this;\n return arrowStyles1 ? htmlSafe(`top: ${arrowStyles1?.top}px; left: ${arrowStyles1?.left}px;`) : undefined;\n }\n get _popoverStyles(): {\n [i: string]: string;\n } {\n const { panelStyle: panelStyle1 } = this.args;\n const { popoverStyles: popoverStyles1 } = this;\n return {\n ...panelStyle1,\n top: `${popoverStyles1.top}px`,\n left: `${popoverStyles1.left}px`,\n zIndex: `${popoverStyles1.zIndex}`\n };\n }\n get tabindex() {\n if (this.ownFocus) {\n return this.args.tabindex ?? '0';\n }\n return '-1';\n }\n @action\n positionPopoverFixed(): void {\n this.positionPopover(true);\n }\n @action\n positionPopoverFluid(): void {\n this.positionPopover(false);\n }\n @action\n registerButton(btn1: HTMLDivElement): void {\n this.button = btn1;\n this.args.buttonRef?.(btn1);\n }\n @action\n registerPanel(panel1: HTMLElement): void {\n this.panel = panel1;\n this.args.panelRef?.(panel1);\n if (panel1 === null) {\n // panel has unmounted, restore the state defaults\n this.popoverStyles = DEFAULT_POPOVER_STYLES;\n this.arrowStyles = {};\n this.arrowPosition = null;\n this.openPosition = null;\n this.isOpenStable = false;\n window.removeEventListener('resize', this.positionPopoverFluid);\n } else {\n // panel is coming into existence\n this.positionPopoverFluid();\n window.addEventListener('resize', this.positionPopoverFluid);\n }\n }\n static{\n template(`\n {{#let\n (randomId)\n (classNames\n (if this.isOpening \"euiPopover-isOpen\")\n position=this.anchorPosition\n display=this.display\n componentName=\"EuiPopover\"\n )\n (classNames\n \"euiPopover__panel\"\n (concat \"euiPopover__panel--\" this.arrowPosition)\n (if this.isOpening \"euiPopover__panel-isOpen\")\n (if\n (or (not this.hasArrow) @attachToAnchor) \"euiPopover__panel-noArrow\"\n )\n (if @attachToAnchor \"euiPopover__panel-isAttached\")\n @panelClasses\n )\n as |descriptionId classes panelClasses|\n }}\n <div\n class={{classes}}\n {{onKey \"_all\" this.onKeyDown priority=1}}\n {{didInsert this.didInsertPopover}}\n {{didUpdate this.didUpdateIsOpen @isOpen}}\n {{didUpdate this.didUpdateRepositionOnScroll @repositionOnScroll}}\n {{didInsert (optional @popoverRef)}}\n ...attributes\n >\n\n {{! button }}\n <div\n class=\"euiPopover__anchor {{@anchorClassName}}\"\n {{didInsert this.registerButton}}\n >\n {{yield to=\"button\"}}\n </div>\n\n {{! content }}\n {{#if\n (and\n (not this.suppressingPopover)\n (or this.isCurrentlyOpen this.isClosing)\n )\n }}\n <EuiPortal @insert={{@insert}}>\n {{#let (randomId) as |panelId|}}\n <EuiPanel\n id={{panelId}}\n class={{panelClasses}}\n aria-live={{if this.ownFocus \"off\" \"assertive\"}}\n role=\"dialog\"\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-modal=\"true\"\n aria-describedby={{if this.ownFocus descriptionId}}\n tabindex={{this.tabindex}}\n @hasShadow={{false}}\n @paddingSize={{this.panelPaddingSize}}\n {{simpleStyle this._popoverStyles}}\n {{didInsert this.registerPanel}}\n {{outsideClickDetector onOutsideClick=this.onClickOutside}}\n {{onKey \"Escape\" this.onEscapeKey}}\n {{focusTrap\n isActive=(not\n (or\n (not this.ownFocus) (not this.isOpenStable) this.isClosing\n )\n )\n shouldSelfFocus=this.shouldSelfFocus\n isPaused=this.isFocusTrapPaused\n focusTrapOptions=(merge\n (hash\n returnFocusOnDeactivate=this.isOpenStable\n initialFocus=(or @initialFocus this.panel)\n onDeactivate=(optional @onTrapDeactivation)\n preventScroll=true\n clickOutsideDeactivates=true\n fallbackFocus=(concat \"#\" panelId)\n )\n @focusTrapOptions\n )\n }}\n >\n <div\n class={{concat\n \"euiPopover__panelArrow euiPopover__panelArrow--\"\n this.arrowPosition\n }}\n style={{this._arrowStyles}}\n >\n {{yield to=\"arrowChildren\"}}\n </div>\n {{#if this.ownFocus}}\n <p id={{descriptionId}} {{screenReaderOnly}}>\n You are in a dialog. To close this dialog, hit escape.\n </p>\n {{/if}}\n <div\n {{mutationObserver\n onMutation=this.onMutation\n observerOptions=(merge\n (hash\n attributes=true\n childList=true\n characterData=true\n subtree=true\n )\n @mutationObserverOptions\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </EuiPanel>\n {{/let}}\n </EuiPortal>\n {{/if}}\n\n </div>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wb3BvdmVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IGNvbmNhdCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQGVtYmVyL29iamVjdCc7XG5pbXBvcnQgZGlkSW5zZXJ0IGZyb20gJ0BlbWJlci9yZW5kZXItbW9kaWZpZXJzL21vZGlmaWVycy9kaWQtaW5zZXJ0JztcbmltcG9ydCBkaWRVcGRhdGUgZnJvbSAnQGVtYmVyL3JlbmRlci1tb2RpZmllcnMvbW9kaWZpZXJzL2RpZC11cGRhdGUnO1xuaW1wb3J0IHsgY2FuY2VsLCBsYXRlciwgc2NoZWR1bGVPbmNlIH0gZnJvbSAnQGVtYmVyL3J1bmxvb3AnO1xuaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuXG5pbXBvcnQgb3B0aW9uYWwgZnJvbSAnZW1iZXItY29tcG9zYWJsZS1oZWxwZXJzL2hlbHBlcnMvb3B0aW9uYWwnO1xuaW1wb3J0IHsgZm9jdXNUcmFwIH0gZnJvbSAnZW1iZXItZm9jdXMtdHJhcCc7XG5pbXBvcnQgb25LZXkgZnJvbSAnZW1iZXIta2V5Ym9hcmQvbW9kaWZpZXJzL29uLWtleSc7XG5pbXBvcnQgeyBhbmQsIG5vdCwgb3IgfSBmcm9tICdlbWJlci10cnV0aC1oZWxwZXJzJztcbmltcG9ydCB7IHRhYmJhYmxlIH0gZnJvbSAndGFiYmFibGUnO1xuXG5pbXBvcnQgcmFuZG9tSWQgZnJvbSAnLi4vLXByaXZhdGUvcmFuZG9tLWlkLnRzJztcbmltcG9ydCB7IGFyZ09yRGVmYXVsdERlY29yYXRvciB9IGZyb20gJy4uL2hlbHBlcnMvYXJnLW9yLWRlZmF1bHQudHMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnLi4vaGVscGVycy9jbGFzcy1uYW1lcy50cyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnLi4vaGVscGVycy9tZXJnZS50cyc7XG5pbXBvcnQgbXV0YXRpb25PYnNlcnZlciBmcm9tICcuLi9tb2RpZmllcnMvbXV0YXRpb24tb2JzZXJ2ZXIudHMnO1xuaW1wb3J0IG91dHNpZGVDbGlja0RldGVjdG9yIGZyb20gJy4uL21vZGlmaWVycy9vdXRzaWRlLWNsaWNrLWRldGVjdG9yLnRzJztcbmltcG9ydCBzY3JlZW5SZWFkZXJPbmx5IGZyb20gJy4uL21vZGlmaWVycy9zY3JlZW4tcmVhZGVyLW9ubHkudHMnO1xuaW1wb3J0IHNpbXBsZVN0eWxlIGZyb20gJy4uL21vZGlmaWVycy9zaW1wbGUtc3R5bGUudHMnO1xuaW1wb3J0IHsgY2FzY2FkaW5nTWVudUtleXMgfSBmcm9tICcuLi91dGlscy9hY2Nlc2liaWxpdHkvaW5kZXgudHMnO1xuaW1wb3J0IHtcbiAgYW5jaG9yUG9zaXRpb25NYXBwaW5nLFxuICBkaXNwbGF5TWFwcGluZ1xufSBmcm9tICcuLi91dGlscy9jc3MtbWFwcGluZ3MvZXVpLXBvcG92ZXIudHMnO1xuaW1wb3J0IHsgZmluZFBvcG92ZXJQb3NpdGlvbiwgZ2V0RWxlbWVudFpJbmRleCB9IGZyb20gJy4uL3V0aWxzL3BvcG92ZXIvaW5kZXgudHMnO1xuaW1wb3J0IHtcbiAgZ2V0VHJhbnNpdGlvblRpbWluZ3MsXG4gIGdldFdhaXREdXJhdGlvbixcbiAgcGVyZm9ybU9uRnJhbWVcbn0gZnJvbSAnLi4vdXRpbHMvdHJhbnNpdGlvbi50cyc7XG5pbXBvcnQgRXVpUGFuZWwgZnJvbSAnLi9ldWktcGFuZWwuZ3RzJztcbmltcG9ydCBFdWlQb3J0YWwgZnJvbSAnLi9ldWktcG9ydGFsLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgcGFkZGluZ1NpemVNYXBwaW5nIH0gZnJvbSAnLi4vdXRpbHMvY3NzLW1hcHBpbmdzL2V1aS1wYW5lbC50cyc7XG5pbXBvcnQgdHlwZSB7IEV1aVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxzL3BvcG92ZXIvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBFbWJlcktleWJvYXJkRXZlbnQgfSBmcm9tICdlbWJlci1rZXlib2FyZC9tb2RpZmllcnMvb24ta2V5JztcblxudHlwZSBQYW5lbFBhZGRpbmdTaXplID0ga2V5b2YgdHlwZW9mIHBhZGRpbmdTaXplTWFwcGluZztcblxuZXhwb3J0IHR5cGUgUG9wb3ZlckFuY2hvclBvc2l0aW9uID1cbiAgfCAndXBDZW50ZXInXG4gIHwgJ3VwTGVmdCdcbiAgfCAndXBSaWdodCdcbiAgfCAnZG93bkNlbnRlcidcbiAgfCAnZG93bkxlZnQnXG4gIHwgJ2Rvd25SaWdodCdcbiAgfCAnbGVmdENlbnRlcidcbiAgfCAnbGVmdFVwJ1xuICB8ICdsZWZ0RG93bidcbiAgfCAncmlnaHRDZW50ZXInXG4gIHwgJ3JpZ2h0VXAnXG4gIHwgJ3JpZ2h0RG93bic7XG5cbmV4cG9ydCB0eXBlIEV1aVBvcG92ZXJBcmdzID0ge1xuICBwYW5lbENsYXNzZXM_OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDbGFzcyBuYW1lIHBhc3NlZCB0byB0aGUgZGlyZWN0IHBhcmVudCBvZiB0aGUgYnV0dG9uXG4gICAqL1xuICBhbmNob3JDbGFzc05hbWU_OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgYW5kIGFycm93IHJlbGF0aXZlIHRvIHRoZSBidXR0b25cbiAgICovXG4gIGFuY2hvclBvc2l0aW9uPzogUG9wb3ZlckFuY2hvclBvc2l0aW9uO1xuICAvKipcbiAgICogU3R5bGUgYW5kIHBvc2l0aW9uIGFsdGVyYXRpb24gZm9yIGFycm93LWxlc3MsIGxlZnQtYWxpZ25lZFxuICAgKiBhdHRhY2htZW50LiBJbnRlbmRlZCBmb3IgdXNlIHdpdGggaW5wdXRzIGFzIGFuY2hvcnMsIGUuZy5cbiAgICogRXVpSW5wdXRQb3BvdmVyXG4gICAqL1xuICBhdHRhY2hUb0FuY2hvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcmlnZ2VyaW5nIGVsZW1lbnQgZm9yIHdoaWNoIHRvIGFsaWduIHRoZSBwb3BvdmVyIHRvXG4gICAqL1xuICBidXR0b24_OiBDb21wb25lbnQ7XG4gIGJ1dHRvblJlZj86IChlOiBIVE1MRGl2RWxlbWVudCkgPT4gdW5rbm93bjtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGhhbmRsZSBoaWRpbmcgb2YgdGhlIHBvcG92ZXJcbiAgICovXG4gIGNsb3NlUG9wb3ZlcjogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSBwb3BvdmVyJ3MgcG9zaXRpb24gd2l0aGluIHRoaXMgZWxlbWVudFxuICAgKi9cbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XG4gIC8qKlxuICAgKiBDU1MgZGlzcGxheSB0eXBlIGZvciBib3RoIHRoZSBwb3BvdmVyIGFuZCBhbmNob3JcbiAgICovXG4gIGRpc3BsYXk_OiBrZXlvZiB0eXBlb2YgZGlzcGxheU1hcHBpbmc7XG4gIC8qKlxuICAgKiBTaG93IGFycm93IGluZGljYXRpbmcgdG8gb3JpZ2luYXRpbmcgYnV0dG9uXG4gICAqL1xuICBoYXNBcnJvdz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hhdCBlbGVtZW50IHNob3VsZCBpbml0aWFsbHkgaGF2ZSBmb2N1czsgQ2FuIGJlIGEgRE9NXG4gICAqIG5vZGUsIG9yIGEgc2VsZWN0b3Igc3RyaW5nICh3aGljaCB3aWxsIGJlIHBhc3NlZCB0b1xuICAgKiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCkgdG8gZmluZCB0aGUgRE9NIG5vZGUpLCBvciBhIGZ1bmN0aW9uIHRoYXRcbiAgICogcmV0dXJucyBhIERPTSBub2RlXG4gICAqL1xuICBpbml0aWFsRm9jdXM_OiBGb2N1c1RhcmdldCB8IGZhbHNlO1xuICAvKipcbiAgICogUGFzc2VkIGRpcmVjdGx5IHRvIEV1aVBvcnRhbCBmb3IgRE9NIHBvc2l0aW9uaW5nLiBCb3RoIHByb3BlcnRpZXMgYXJlXG4gICAqIHJlcXVpcmVkIGlmIHByb3AgaXMgc3BlY2lmaWVkXG4gICAqL1xuICBpbnNlcnQ_OiB7XG4gICAgc2libGluZzogSFRNTEVsZW1lbnQ7XG4gICAgcG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJztcbiAgfTtcbiAgLyoqXG4gICAqIFZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHBvcG92ZXJcbiAgICovXG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcmFwcyB0YWIgZm9jdXMgd2l0aGluIHRoZSBwb3BvdmVyIGNvbnRlbnRzXG4gICAqL1xuICBvd25Gb2N1cz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDdXN0b20gY2xhc3MgYWRkZWQgdG8gdGhlIEV1aVBhbmVsIGNvbnRhaW5pbmcgdGhlIHBvcG92ZXIgY29udGVudHNcbiAgICovXG4gIHBhbmVsQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogRXVpUGFuZWwgcGFkZGluZyBvbiBhbGwgc2lkZXNcbiAgICovXG4gIHBhbmVsUGFkZGluZ1NpemU_OiBQYW5lbFBhZGRpbmdTaXplO1xuICAvKipcbiAgICogU3RhbmRhcmQgRE9NIGBzdHlsZWAgYXR0cmlidXRlLiBQYXNzZWQgdG8gdGhlIEV1aVBhbmVsXG4gICAqL1xuICBwYW5lbFN0eWxlPzogeyBbaTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHBhbmVsUmVmPzogKGU6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4gdW5rbm93bjtcbiAgcG9wb3ZlclJlZj86IChlOiBIVE1MRWxlbWVudCkgPT4gdW5rbm93bjtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgcG9wb3ZlcidzIHBvc2l0aW9uIGlzIHJlLWNhbGN1bGF0ZWQgd2hlbiB0aGUgdXNlclxuICAgKiBzY3JvbGxzLCB0aGlzIHN1cHBvcnRzIGhhdmluZyBmaXhlZC1wb3NpdGlvbiBwb3BvdmVyIGFuY2hvcnNcbiAgICovXG4gIHJlcG9zaXRpb25PblNjcm9sbD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCBwb3BvdmVyIGNvbnRlbnQgaW5oZXJpdHMgdGhlIHotaW5kZXggb2YgdGhlIGFuY2hvclxuICAgKiBjb21wb25lbnQ7IHBhc3MgYHpJbmRleGAgdG8gb3ZlcnJpZGVcbiAgICovXG4gIHpJbmRleD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGNhbGxiYWNrIGZvciB3aGVuIHRoZSBmb2N1cyB0cmFwIGlzIGRlYWN0aXZhdGVkXG4gICAqL1xuICBvblRyYXBEZWFjdGl2YXRpb24_OiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogRGlzdGFuY2UgYXdheSBmcm9tIHRoZSBhbmNob3IgdGhhdCB0aGUgcG9wb3ZlciB3aWxsIHJlbmRlclxuICAgKi9cbiAgb2Zmc2V0PzogbnVtYmVyO1xuICAvKipcbiAgICogTWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb3BvdmVyIGFuZCB0aGUgYm91bmRpbmcgY29udGFpbmVyO1xuICAgKiBQYXNzIGFuIGFycmF5IG9mIDQgdmFsdWVzIHRvIGFkanVzdCBlYWNoIHNpZGUgZGlmZmVyZW50bHk6IGBbdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0XWBcbiAgICogRGVmYXVsdCBpcyAxNlxuICAgKi9cbiAgYnVmZmVyPzogbnVtYmVyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBFbGVtZW50IHRvIHBhc3MgYXMgdGhlIGNoaWxkIGVsZW1lbnQgb2YgdGhlIGFycm93O1xuICAgKiBVc2UgY2FzZSBpcyB0eXBpY2FsbHkgbGltaXRlZCB0byBhbiBhY2NvbXBhbnlpbmcgYEV1aUJlYWNvbmBcbiAgICovXG4gIGFycm93Q2hpbGRyZW4_OiBDb21wb25lbnQ7XG4gIC8qKlxuICAgKiBQcm92aWRlIGEgbmFtZSB0byB0aGUgcG9wb3ZlciBwYW5lbFxuICAgKi9cbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgb3B0aW9uIHRvIGBhcmlhLWxhYmVsYCB0aGF0IHRha2VzIGFuIGBpZGAuXG4gICAqIFVzdWFsbHkgdGFrZXMgdGhlIGBpZGAgb2YgdGhlIHBvcG92ZXIgdGl0bGVcbiAgICovXG4gIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuXG4gIHRhYmluZGV4Pzogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIHNob3VsZFNlbGZGb2N1cz86IGJvb2xlYW47XG5cbiAgaXNGb2N1c1RyYXBQYXVzZWQ_OiBib29sZWFuO1xuXG4gIGZvY3VzVHJhcE9wdGlvbnM_OiB7XG4gICAgb25DbGlja091dHNpZGU_OiAoZTogRXZlbnQpID0-IHZvaWQ7XG4gIH07XG5cbiAgbXV0YXRpb25PYnNlcnZlck9wdGlvbnM_OiB7XG4gICAgYXR0cmlidXRlcz86IGJvb2xlYW47XG4gICAgY2hpbGRMaXN0PzogYm9vbGVhbjtcbiAgICBjaGFyYWN0ZXJEYXRhPzogYm9vbGVhbjtcbiAgICBzdWJ0cmVlPzogYm9vbGVhbjtcbiAgfTtcbn07XG5cbnR5cGUgQW5jaG9yUG9zaXRpb24gPSAndXAnIHwgJ3JpZ2h0JyB8ICdkb3duJyB8ICdsZWZ0JztcblxuY29uc3QgYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcDoge1xuICBbcG9zaXRpb24gaW4gQW5jaG9yUG9zaXRpb25dOiBFdWlQb3BvdmVyUG9zaXRpb247XG59ID0ge1xuICB1cDogJ3RvcCcsXG4gIHJpZ2h0OiAncmlnaHQnLFxuICBkb3duOiAnYm90dG9tJyxcbiAgbGVmdDogJ2xlZnQnXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9wb3ZlclBvc2l0aW9uRnJvbUFuY2hvclBvc2l0aW9uKFxuICBhbmNob3JQb3NpdGlvbjogUG9wb3ZlckFuY2hvclBvc2l0aW9uXG4pOiBFdWlQb3BvdmVyUG9zaXRpb24ge1xuICAvLyBtYXBzIHRoZSBhbmNob3IgcG9zaXRpb24gdG8gdGhlIG1hdGNoaW5nIHBvcG92ZXIgcG9zaXRpb25cbiAgLy8gZS5nLiBcInVwTGVmdFwiIC0-IFwidG9wXCIsIFwiZG93blJpZ2h0XCIgLT4gXCJib3R0b21cIlxuXG4gIC8vIGV4dHJhY3QgdGhlIGZpcnN0IHBvc2l0aW9uYWwgd29yZCBmcm9tIGFuY2hvclBvc2l0aW9uOlxuICAvLyBzdGFydHMgYXQgdGhlIGJlZ2lubmluZyAoXCIgXiBcIikgb2YgYW5jaG9yUG9zaXRpb24gYW5kXG4gIC8vIGNhcHR1cmVzIGFsbCBvZiB0aGUgY2hhcmFjdGVycyAoXCIgKC4qPykgXCIpIHVudGlsIHRoZVxuICAvLyBmaXJzdCBjYXBpdGFsIGxldHRlciAoXCIgW0EtWl0gXCIpIGlzIGVuY291bnRlcmVkXG4gIGNvbnN0IG1hdGNoID0gYW5jaG9yUG9zaXRpb24ubWF0Y2goL14oLio_KVtBLVpdLyk7XG5cbiAgaWYgKG1hdGNoPy5sZW5ndGggJiYgbWF0Y2gubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiBhbmNob3JQb3NpdGlvblRvUG9wb3ZlclBvc2l0aW9uTWFwW21hdGNoWzFdIGFzIEFuY2hvclBvc2l0aW9uXTtcbiAgfVxuXG4gIHJldHVybiBhbmNob3JQb3NpdGlvblRvUG9wb3ZlclBvc2l0aW9uTWFwWyd1cCddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9wb3ZlckFsaWduRnJvbUFuY2hvclBvc2l0aW9uKFxuICBhbmNob3JQb3NpdGlvbjogUG9wb3ZlckFuY2hvclBvc2l0aW9uXG4pOiBFdWlQb3BvdmVyUG9zaXRpb24ge1xuICAvLyBtYXBzIHRoZSBncmF2aXR5IHRvIHRoZSBtYXRjaGluZyBwb3BvdmVyIHBvc2l0aW9uXG4gIC8vIGUuZy4gXCJ1cExlZnRcIiAtPiBcImxlZnRcIiwgXCJyaWdodERvd25cIiAtPiBcImJvdHRvbVwiXG5cbiAgLy8gZXh0cmFjdCB0aGUgc2Vjb25kIHBvc2l0aW9uYWwgd29yZCBmcm9tIGFuY2hvclBvc2l0aW9uOlxuICAvLyBzdGFydHMgYSBjYXB0dXJlIGdyb3VwIGF0IHRoZSBmaXJzdCBjYXBpdGFsIGxldHRlclxuICAvLyBhbmQgaW5jbHVkZXMgZXZlcnl0aGluZyBhZnRlciBpdFxuICBjb25zdCBtYXRjaCA9IGFuY2hvclBvc2l0aW9uLm1hdGNoKC8oW0EtWl0uKikvKTtcblxuICAvLyB0aGlzIHBlcmZvcm1zIHR3byB0YXNrczpcbiAgLy8gMS4gbm9ybWFsaXplcyB0aGUgYWxpZ24gcG9zaXRpb24gYnkgbG93ZXJjYXNpbmcgaXRcbiAgLy8gMi4gYGNlbnRlcmAgZG9lc24ndCBleGlzdCBpbiB0aGUgbG9va3VwIG1hcCB3aGljaCBjb252ZXJ0cyBpdCB0byBgdW5kZWZpbmVkYCBtZWFuaW5nIG5vIGFsaWduXG4gIGlmIChtYXRjaD8ubGVuZ3RoICYmIG1hdGNoLmxlbmd0aCA-IDEpIHtcbiAgICByZXR1cm4gYW5jaG9yUG9zaXRpb25Ub1BvcG92ZXJQb3NpdGlvbk1hcFtcbiAgICAgIG1hdGNoWzFdPy50b0xvd2VyQ2FzZSgpIGFzIEFuY2hvclBvc2l0aW9uXG4gICAgXTtcbiAgfVxuXG4gIHJldHVybiBhbmNob3JQb3NpdGlvblRvUG9wb3ZlclBvc2l0aW9uTWFwWydsZWZ0J107XG59XG5cbmV4cG9ydCBjb25zdCBBTkNIT1JfUE9TSVRJT05TID0gT2JqZWN0LmtleXMoYW5jaG9yUG9zaXRpb25NYXBwaW5nKTtcbmV4cG9ydCBjb25zdCBESVNQTEFZID0gT2JqZWN0LmtleXMoZGlzcGxheU1hcHBpbmcpO1xuZXhwb3J0IHR5cGUgRm9jdXNUYXJnZXQgPSBIVE1MRWxlbWVudCB8IHN0cmluZyB8ICgoKSA9PiBIVE1MRWxlbWVudCk7XG5cbmNvbnN0IERFRkFVTFRfUE9QT1ZFUl9TVFlMRVMgPSB7XG4gIHRvcDogNTAsXG4gIGxlZnQ6IDUwXG59O1xuXG5mdW5jdGlvbiBnZXRFbGVtZW50RnJvbUluaXRpYWxGb2N1cyhcbiAgaW5pdGlhbEZvY3VzPzogRm9jdXNUYXJnZXRcbik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGluaXRpYWxGb2N1c1R5cGUgPSB0eXBlb2YgaW5pdGlhbEZvY3VzO1xuXG4gIGlmIChpbml0aWFsRm9jdXNUeXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGluaXRpYWxGb2N1cyBhcyBzdHJpbmcpO1xuICB9XG5cbiAgaWYgKGluaXRpYWxGb2N1c1R5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gKGluaXRpYWxGb2N1cyBhcyAoKSA9PiBIVE1MRWxlbWVudCB8IG51bGwpKCk7XG4gIH1cblxuICByZXR1cm4gaW5pdGlhbEZvY3VzIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbn1cblxudHlwZSBDc3NQcm9wcyA9IHtcbiAgdG9wPzogbnVtYmVyO1xuICBsZWZ0PzogbnVtYmVyO1xuICByaWdodD86IG51bWJlcjtcbiAgYm90dG9tPzogbnVtYmVyO1xuICB6SW5kZXg_OiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVBvcG92ZXJTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczogRXVpUG9wb3ZlckFyZ3M7XG4gIEJsb2Nrczoge1xuICAgIGJ1dHRvbjogW107XG4gICAgY29udGVudDogW107XG4gICAgYXJyb3dDaGlsZHJlbjogW107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV1aVBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ8RXVpUG9wb3ZlclNpZ25hdHVyZT4ge1xuICAvLyBEZWZhdWx0c1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKGZhbHNlKSBpc09wZW4hOiBib29sZWFuO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKHRydWUpIG93bkZvY3VzITogYm9vbGVhbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcignZG93bkNlbnRlcicpIGFuY2hvclBvc2l0aW9uITogUG9wb3ZlckFuY2hvclBvc2l0aW9uO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdtJykgcGFuZWxQYWRkaW5nU2l6ZSE6IFBhbmVsUGFkZGluZ1NpemU7XG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IodHJ1ZSkgaGFzQXJyb3chOiBib29sZWFuO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdpbmxpbmVCbG9jaycpIGRpc3BsYXkhOiBzdHJpbmc7XG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IodHJ1ZSkgc2hvdWxkU2VsZkZvY3VzITogYm9vbGVhbjtcbiAgQGFyZ09yRGVmYXVsdERlY29yYXRvcihmYWxzZSkgaXNGb2N1c1RyYXBQYXVzZWQhOiBib29sZWFuO1xuXG4gIC8vU3RhdGVcbiAgQHRyYWNrZWQgcHJldklzT3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQHRyYWNrZWQgc3VwcHJlc3NpbmdQb3BvdmVyOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBAdHJhY2tlZCBpc0Nsb3NpbmcgPSBmYWxzZTtcbiAgQHRyYWNrZWQgaXNPcGVuaW5nID0gZmFsc2U7XG4gIEB0cmFja2VkIHBvcG92ZXJTdHlsZXM6IENzc1Byb3BzID0ge307XG4gIEB0cmFja2VkIGFycm93U3R5bGVzOiBDc3NQcm9wcyB8IHVuZGVmaW5lZCA9IHt9O1xuICBAdHJhY2tlZCBhcnJvd1Bvc2l0aW9uOiBFdWlQb3BvdmVyUG9zaXRpb24gfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgb3BlblBvc2l0aW9uOiBFdWlQb3BvdmVyUG9zaXRpb24gfCBudWxsID0gbnVsbDtcbiAgQHRyYWNrZWQgaXNPcGVuU3RhYmxlID0gZmFsc2U7XG4gIEB0cmFja2VkIGlzQ3VycmVudGx5T3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgLy8vXG5cbiAgcHJpdmF0ZSByZXNwb3NpdGlvblRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIGxhdGVyPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNsb3NpbmdUcmFuc2l0aW9uVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2xvc2luZ1RyYW5zaXRpb25BbmltYXRpb25GcmFtZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHVwZGF0ZUZvY3VzQW5pbWF0aW9uRnJhbWU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBoYXNTZXRJbml0aWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQHRyYWNrZWQgYnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBAdHJhY2tlZCBwYW5lbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihvd25lcjogdW5rbm93biwgYXJnczogRXVpUG9wb3ZlckFyZ3MpIHtcbiAgICBzdXBlcihvd25lciwgYXJncyk7XG4gICAgYXNzZXJ0KGBNdXN0IHByb3ZpZGUgY2xvc2VQb3BvdmVyIGZ1bmN0aW9uYCwgdGhpcy5hcmdzLmNsb3NlUG9wb3Zlcik7XG4gICAgdGhpcy5wcmV2SXNPcGVuID0gdGhpcy5pc09wZW47XG4gICAgdGhpcy5zdXBwcmVzc2luZ1BvcG92ZXIgPSB0aGlzLmlzT3BlbjtcbiAgICB0aGlzLmlzQ3VycmVudGx5T3BlbiA9IHRoaXMuaXNPcGVuO1xuICB9XG5cbiAgQGFjdGlvblxuICBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmFyZ3MuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgQGFjdGlvblxuICBvbkVzY2FwZUtleShldmVudDogRXZlbnQsIGVrRXZlbnQ_OiBFbWJlcktleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGVrRXZlbnQ_LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZWtFdmVudD8uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBla0V2ZW50OiBFbWJlcktleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBjYXNjYWRpbmdNZW51S2V5cy5FU0NBUEUpIHtcbiAgICAgIHRoaXMub25Fc2NhcGVLZXkoZXZlbnQgYXMgdW5rbm93biBhcyBFdmVudCwgZWtFdmVudCBhcyB1bmtub3duIGFzIEV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBAYWN0aW9uXG4gIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFyZ3MuZm9jdXNUcmFwT3B0aW9ucz8ub25DbGlja091dHNpZGUpIHtcbiAgICAgIHRoaXMuYXJncy5mb2N1c1RyYXBPcHRpb25zLm9uQ2xpY2tPdXRzaWRlKGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb25seSBjbG9zZSB0aGUgcG9wb3ZlciBpZiB0aGUgZXZlbnQgc291cmNlIGlzbid0IHRoZSBhbmNob3IgYnV0dG9uXG4gICAgICAvLyBvdGhlcndpc2UsIGl0IGlzIHVwIHRvIHRoZSBhbmNob3IgdG8gdG9nZ2xlIHRoZSBwb3BvdmVyJ3Mgb3BlbiBzdGF0dXNcbiAgICAgIGlmICh0aGlzLmJ1dHRvbiAmJiB0aGlzLmJ1dHRvbi5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRm9jdXMoKTogdm9pZCB7XG4gICAgLy8gV2FpdCBmb3IgdGhlIERPTSB0byB1cGRhdGUuXG4gICAgdGhpcy51cGRhdGVGb2N1c0FuaW1hdGlvbkZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMub3duRm9jdXMgfHwgIXRoaXMucGFuZWwgfHwgdGhpcy5hcmdzLmluaXRpYWxGb2N1cyA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZvY3VzZWQgb24gc29tZXRoaW5nIGluc2lkZSB0aGUgcGFuZWwsIGV2ZXJ5dGhpbmcncyBmaW5lLlxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmhhc1NldEluaXRpYWxGb2N1cyAmJlxuICAgICAgICB0aGlzLnBhbmVsLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UgbGV0J3MgZm9jdXMgdGhlIGZpcnN0IHRhYmJhYmxlIGl0ZW0gYW5kIGV4cGVkaXRlIGlucHV0IGZyb20gdGhlIHVzZXIuXG4gICAgICBsZXQgZm9jdXNUYXJnZXQ7XG5cbiAgICAgIGlmICh0aGlzLmFyZ3MuaW5pdGlhbEZvY3VzICE9IG51bGwpIHtcbiAgICAgICAgZm9jdXNUYXJnZXQgPSBnZXRFbGVtZW50RnJvbUluaXRpYWxGb2N1cyh0aGlzLmFyZ3MuaW5pdGlhbEZvY3VzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRhYmJhYmxlSXRlbXMgPSB0YWJiYWJsZSh0aGlzLnBhbmVsKTtcblxuICAgICAgICBpZiAodGFiYmFibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICBmb2N1c1RhcmdldCA9IHRhYmJhYmxlSXRlbXNbMF07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gdGhlcmUncyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIHBvcG92ZXIgY29udGVudCBiZWNvbWluZyB2aXNpYmxlIGFuZCB0aGlzIGZ1bmN0aW9uIGNhbGxcbiAgICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzbid0IHZpc2libGUgeWV0IChkdWUgdG8gY3NzIHN0eWxpbmcpIHRoZW4gaXQgY2FuJ3QgYWNjZXB0IGZvY3VzXG4gICAgICAvLyBzbyB3YWl0IGZvciBhbm90aGVyIHJlbmRlciBhbmQgdHJ5IGFnYWluXG4gICAgICBpZiAoZm9jdXNUYXJnZXQgPT0gbnVsbCkge1xuICAgICAgICAvLyB0aGVyZSBpc24ndCBhIGZvY3VzIHRhcmdldCwgb25lIG9mIHR3byByZWFzb25zOlxuICAgICAgICAvLyAjMSBpcyB0aGUgd2hvbGUgcGFuZWwgaGlkZGVuPyBJZiBzbywgc2NoZWR1bGUgYW5vdGhlciBjaGVja1xuICAgICAgICAvLyAjMiBwYW5lbCBpcyB2aXNpYmxlIGJ1dCBubyB0YWJiYWJsZXMgZXhpc3QsIG1vdmUgZm9jdXMgdG8gdGhlIHBhbmVsXG4gICAgICAgIGNvbnN0IHBhbmVsVmlzaWJpbGl0eSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucGFuZWwpLm9wYWNpdHk7XG5cbiAgICAgICAgaWYgKHBhbmVsVmlzaWJpbGl0eSA9PT0gJzAnKSB7XG4gICAgICAgICAgLy8gIzFcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gIzJcbiAgICAgICAgICBmb2N1c1RhcmdldCA9IHRoaXMucGFuZWw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGZvdW5kIGFuIGVsZW1lbnQgdG8gZm9jdXMsIGJ1dCBpcyBpdCB2aXNpYmxlP1xuICAgICAgICBjb25zdCB2aXNpYmlsaXR5ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZm9jdXNUYXJnZXQpLnZpc2liaWxpdHk7XG5cbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgLy8gbm90IHZpc2libGUsIGNoZWNrIGFnYWluIG5leHQgcmVuZGVyIGZyYW1lXG4gICAgICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChmb2N1c1RhcmdldCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuaGFzU2V0SW5pdGlhbEZvY3VzID0gdHJ1ZTtcbiAgICAgICAgZm9jdXNUYXJnZXQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25PcGVuUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBjYW5jZWwodGhpcy5jbG9zaW5nVHJhbnNpdGlvblRpbWVvdXQgYXMgUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-KTtcbiAgICAvLyBXZSBuZWVkIHRvIHNldCB0aGlzIHN0YXRlIGEgYmVhdCBhZnRlciB0aGUgcmVuZGVyIHRha2VzIHBsYWNlLCBzbyB0aGF0IHRoZSBDU1NcbiAgICAvLyB0cmFuc2l0aW9uIGNhbiB0YWtlIGVmZmVjdC5cbiAgICB0aGlzLmNsb3NpbmdUcmFuc2l0aW9uQW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0-IHtcbiAgICAgIHRoaXMuaXNPcGVuaW5nID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIC8vIGZvciBlYWNoIGNoaWxkIGVsZW1lbnQgb2YgYHRoaXMucGFuZWxgLCBmaW5kIGFueSB0cmFuc2l0aW9uIGR1cmF0aW9uIHdlIHNob3VsZCB3YWl0IGZvciBiZWZvcmUgc3RhYmlsaXppbmdcbiAgICBjb25zdCB7IGR1cmF0aW9uTWF0Y2gsIGRlbGF5TWF0Y2ggfSA9IEFycmF5LnByb3RvdHlwZS5zbGljZVxuICAgICAgLmNhbGwodGhpcy5wYW5lbCA_IHRoaXMucGFuZWwuY2hpbGRyZW4gOiBbXSlcbiAgICAgIC5yZWR1Y2UoXG4gICAgICAgIChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkdXJhdGlvbk1hdGNoLFxuICAgICAgICAgICAgZGVsYXlNYXRjaFxuICAgICAgICAgIH06IHsgZHVyYXRpb25NYXRjaDogbnVtYmVyOyBkZWxheU1hdGNoOiBudW1iZXIgfSxcbiAgICAgICAgICBlbGVtZW50OiBIVE1MRWxlbWVudFxuICAgICAgICApID0-IHtcbiAgICAgICAgICBjb25zdCB0cmFuc2l0aW9uVGltaW5ncyA9IGdldFRyYW5zaXRpb25UaW1pbmdzKGVsZW1lbnQpO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGR1cmF0aW9uTWF0Y2g6IE1hdGgubWF4KFxuICAgICAgICAgICAgICBkdXJhdGlvbk1hdGNoLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uVGltaW5ncy5kdXJhdGlvbk1hdGNoXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVsYXlNYXRjaDogTWF0aC5tYXgoZGVsYXlNYXRjaCwgdHJhbnNpdGlvblRpbWluZ3MuZGVsYXlNYXRjaClcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICB7IGR1cmF0aW9uTWF0Y2g6IDAsIGRlbGF5TWF0Y2g6IDAgfVxuICAgICAgKTtcblxuICAgIHRoaXMucmVzcG9zaXRpb25UaW1lb3V0ID0gbGF0ZXIoXG4gICAgICB0aGlzLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlblN0YWJsZSA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZm4gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCgpO1xuICAgICAgICAgIHRoaXMudXBkYXRlRm9jdXMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgZm4pO1xuICAgICAgfSxcbiAgICAgIGR1cmF0aW9uTWF0Y2ggKyBkZWxheU1hdGNoXG4gICAgKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgZGlkSW5zZXJ0UG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdXBwcmVzc2luZ1BvcG92ZXIpIHtcbiAgICAgIC8vIGNvbXBvbmVudCB3YXMgY3JlYXRlZCB3aXRoIGlzT3Blbj10cnVlOyBub3cgdGhhdCBpdCdzIGluc2VydGVkXG4gICAgICAvLyBzdG9wIHN1cHByZXNzaW5nIGFuZCBzdGFydCBvcGVuaW5nXG4gICAgICB0aGlzLnN1cHByZXNzaW5nUG9wb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5pc09wZW5pbmcgPSB0cnVlO1xuXG4gICAgICBjb25zdCBmbiA9ICgpOiB2b2lkID0-IHRoaXMub25PcGVuUG9wb3ZlcigpO1xuXG4gICAgICBzY2hlZHVsZU9uY2UoJ2FmdGVyUmVuZGVyJywgdGhpcywgZm4pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFyZ3MucmVwb3NpdGlvbk9uU2Nyb2xsKSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICB9XG5cbiAgQGFjdGlvblxuICBkaWRVcGRhdGVSZXBvc2l0aW9uT25TY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXJncy5yZXBvc2l0aW9uT25TY3JvbGwpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMucG9zaXRpb25Qb3BvdmVyRml4ZWQsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIEBhY3Rpb25cbiAgZGlkVXBkYXRlSXNPcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuaXNDdXJyZW50bHlPcGVuID0gdGhpcy5pc09wZW47XG5cbiAgICBpZiAoIXRoaXMucHJldklzT3BlbiAmJiB0aGlzLmFyZ3MuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9uT3BlblBvcG92ZXIoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcmV2SXNPcGVuICYmICF0aGlzLmFyZ3MuaXNPcGVuKSB7XG4gICAgICAvLyBJZiB0aGUgdXNlciBoYXMganVzdCBjbG9zZWQgdGhlIHBvcG92ZXIsIHF1ZXVlIHVwIHRoZSByZW1vdmFsIG9mIHRoZSBjb250ZW50IGFmdGVyIHRoZVxuICAgICAgLy8gdHJhbnNpdGlvbiBpcyBjb21wbGV0ZS5cbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNPcGVuaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NpbmdUcmFuc2l0aW9uVGltZW91dCA9IGxhdGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0Nsb3NpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgMjUwXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucHJldklzT3BlbiA9IHRoaXMuYXJncy5pc09wZW47XG4gIH1cblxuICB3aWxsRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci53aWxsRGVzdHJveSgpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkLCB0cnVlKTtcbiAgICBjYW5jZWwodGhpcy5yZXNwb3NpdGlvblRpbWVvdXQgYXMgUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-KTtcbiAgICBjYW5jZWwodGhpcy5jbG9zaW5nVHJhbnNpdGlvblRpbWVvdXQgYXMgUmV0dXJuVHlwZTx0eXBlb2YgbGF0ZXI-KTtcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmNsb3NpbmdUcmFuc2l0aW9uQW5pbWF0aW9uRnJhbWUgYXMgbnVtYmVyKTtcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnVwZGF0ZUZvY3VzQW5pbWF0aW9uRnJhbWUgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgb25NdXRhdGlvbihyZWNvcmRzOiBNdXRhdGlvblJlY29yZFtdKTogdm9pZCB7XG4gICAgY29uc3Qgd2FpdER1cmF0aW9uID0gZ2V0V2FpdER1cmF0aW9uKHJlY29yZHMpO1xuXG4gICAgdGhpcy5wb3NpdGlvblBvcG92ZXJGaXhlZCgpO1xuXG4gICAgcGVyZm9ybU9uRnJhbWUod2FpdER1cmF0aW9uLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZpeGVkKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgcG9zaXRpb25Qb3BvdmVyKGFsbG93RW5mb3JjZVBvc2l0aW9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYnV0dG9uID09IG51bGwgfHwgdGhpcy5wYW5lbCA9PSBudWxsKSByZXR1cm47XG5cbiAgICBsZXQgcG9zaXRpb24gPSBnZXRQb3BvdmVyUG9zaXRpb25Gcm9tQW5jaG9yUG9zaXRpb24odGhpcy5hbmNob3JQb3NpdGlvbik7XG4gICAgbGV0IGZvcmNlUG9zaXRpb24gPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoXG4gICAgICBhbGxvd0VuZm9yY2VQb3NpdGlvbiAmJlxuICAgICAgdGhpcy5pc09wZW5TdGFibGUgJiZcbiAgICAgIHRoaXMub3BlblBvc2l0aW9uICE9IG51bGxcbiAgICApIHtcbiAgICAgIHBvc2l0aW9uID0gdGhpcy5vcGVuUG9zaXRpb247XG4gICAgICBmb3JjZVBvc2l0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICB0b3AsXG4gICAgICBsZWZ0LFxuICAgICAgcG9zaXRpb246IGZvdW5kUG9zaXRpb24sXG4gICAgICBhcnJvdyxcbiAgICAgIGFuY2hvckJvdW5kaW5nQm94XG4gICAgfSA9IGZpbmRQb3BvdmVyUG9zaXRpb24oe1xuICAgICAgY29udGFpbmVyOiB0aGlzLmFyZ3MuY29udGFpbmVyLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBmb3JjZVBvc2l0aW9uLFxuICAgICAgYWxpZ246IGdldFBvcG92ZXJBbGlnbkZyb21BbmNob3JQb3NpdGlvbih0aGlzLmFuY2hvclBvc2l0aW9uKSxcbiAgICAgIGFuY2hvcjogdGhpcy5idXR0b24sXG4gICAgICBwb3BvdmVyOiB0aGlzLnBhbmVsLFxuICAgICAgb2Zmc2V0OlxuICAgICAgICAhdGhpcy5hcmdzLmF0dGFjaFRvQW5jaG9yICYmIHRoaXMuaGFzQXJyb3dcbiAgICAgICAgICA_IDE2ICsgKHRoaXMuYXJncy5vZmZzZXQgfHwgMClcbiAgICAgICAgICA6IDggKyAodGhpcy5hcmdzLm9mZnNldCB8fCAwKSxcbiAgICAgIGFycm93Q29uZmlnOiB7XG4gICAgICAgIGFycm93V2lkdGg6IDI0LFxuICAgICAgICBhcnJvd0J1ZmZlcjogMTBcbiAgICAgIH0sXG4gICAgICByZXR1cm5Cb3VuZGluZ0JveDogdGhpcy5hcmdzLmF0dGFjaFRvQW5jaG9yLFxuICAgICAgYnVmZmVyOiB0aGlzLmFyZ3MuYnVmZmVyXG4gICAgfSk7XG5cbiAgICAvLyB0aGUgcG9wb3ZlcidzIHotaW5kZXggbXVzdCBpbmhlcml0IGZyb20gdGhlIGJ1dHRvblxuICAgIC8vIHRoaXMga2VlcHMgYSBidXR0b24ncyBwb3BvdmVyIHVuZGVyIGEgZmx5b3V0IHRoYXQgd291bGQgY292ZXIgdGhlIGJ1dHRvblxuICAgIC8vIGJ1dCBhIHBvcG92ZXIgdHJpZ2dlcmVkIGluc2lkZSBhIGZseW91dCB3aWxsIGFwcGVhciBvdmVyIHRoYXQgZmx5b3V0XG4gICAgY29uc3QgeyB6SW5kZXg6IHpJbmRleFByb3AgfSA9IHRoaXMuYXJncztcbiAgICBjb25zdCB6SW5kZXggPVxuICAgICAgekluZGV4UHJvcCA9PSBudWxsXG4gICAgICAgID8gZ2V0RWxlbWVudFpJbmRleCh0aGlzLmJ1dHRvbiwgdGhpcy5wYW5lbCkgKyAyMDAwXG4gICAgICAgIDogekluZGV4UHJvcDtcblxuICAgIGNvbnN0IHBvcG92ZXJTdHlsZXMgPSB7XG4gICAgICB0b3AsXG4gICAgICBsZWZ0OlxuICAgICAgICB0aGlzLmFyZ3MuYXR0YWNoVG9BbmNob3IgJiYgYW5jaG9yQm91bmRpbmdCb3hcbiAgICAgICAgICA_IGFuY2hvckJvdW5kaW5nQm94LmxlZnRcbiAgICAgICAgICA6IGxlZnQsXG4gICAgICB6SW5kZXhcbiAgICB9O1xuXG4gICAgY29uc3Qgd2lsbFJlbmRlckFycm93ID0gIXRoaXMuYXJncy5hdHRhY2hUb0FuY2hvciAmJiB0aGlzLmhhc0Fycm93O1xuICAgIGNvbnN0IGFycm93U3R5bGVzID0gd2lsbFJlbmRlckFycm93ID8gYXJyb3cgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgYXJyb3dQb3NpdGlvbiA9IGZvdW5kUG9zaXRpb247XG5cbiAgICB0aGlzLnBvcG92ZXJTdHlsZXMgPSBwb3BvdmVyU3R5bGVzO1xuICAgIHRoaXMuYXJyb3dTdHlsZXMgPSBhcnJvd1N0eWxlcztcbiAgICB0aGlzLmFycm93UG9zaXRpb24gPSBhcnJvd1Bvc2l0aW9uO1xuICAgIHRoaXMub3BlblBvc2l0aW9uID0gZm91bmRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldCBfYXJyb3dTdHlsZXMoKTogUmV0dXJuVHlwZTx0eXBlb2YgaHRtbFNhZmU-IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB7IGFycm93U3R5bGVzIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIGFycm93U3R5bGVzXG4gICAgICA_IGh0bWxTYWZlKGB0b3A6ICR7YXJyb3dTdHlsZXM_LnRvcH1weDsgbGVmdDogJHthcnJvd1N0eWxlcz8ubGVmdH1weDtgKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgX3BvcG92ZXJTdHlsZXMoKTogeyBbaTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHsgcGFuZWxTdHlsZSB9ID0gdGhpcy5hcmdzO1xuICAgIGNvbnN0IHsgcG9wb3ZlclN0eWxlcyB9ID0gdGhpcztcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYW5lbFN0eWxlLFxuICAgICAgdG9wOiBgJHtwb3BvdmVyU3R5bGVzLnRvcH1weGAsXG4gICAgICBsZWZ0OiBgJHtwb3BvdmVyU3R5bGVzLmxlZnR9cHhgLFxuICAgICAgekluZGV4OiBgJHtwb3BvdmVyU3R5bGVzLnpJbmRleH1gXG4gICAgfTtcbiAgfVxuXG4gIGdldCB0YWJpbmRleCgpIHtcbiAgICBpZiAodGhpcy5vd25Gb2N1cykge1xuICAgICAgcmV0dXJuIHRoaXMuYXJncy50YWJpbmRleCA_PyAnMCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICctMSc7XG4gIH1cblxuICBAYWN0aW9uXG4gIHBvc2l0aW9uUG9wb3ZlckZpeGVkKCk6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25Qb3BvdmVyKHRydWUpO1xuICB9XG5cbiAgQGFjdGlvblxuICBwb3NpdGlvblBvcG92ZXJGbHVpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnBvc2l0aW9uUG9wb3ZlcihmYWxzZSk7XG4gIH1cblxuICBAYWN0aW9uXG4gIHJlZ2lzdGVyQnV0dG9uKGJ0bjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvbiA9IGJ0bjtcbiAgICB0aGlzLmFyZ3MuYnV0dG9uUmVmPy4oYnRuKTtcbiAgfVxuXG4gIEBhY3Rpb25cbiAgcmVnaXN0ZXJQYW5lbChwYW5lbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnBhbmVsID0gcGFuZWw7XG4gICAgdGhpcy5hcmdzLnBhbmVsUmVmPy4ocGFuZWwpO1xuXG4gICAgaWYgKHBhbmVsID09PSBudWxsKSB7XG4gICAgICAvLyBwYW5lbCBoYXMgdW5tb3VudGVkLCByZXN0b3JlIHRoZSBzdGF0ZSBkZWZhdWx0c1xuICAgICAgdGhpcy5wb3BvdmVyU3R5bGVzID0gREVGQVVMVF9QT1BPVkVSX1NUWUxFUztcbiAgICAgIHRoaXMuYXJyb3dTdHlsZXMgPSB7fTtcbiAgICAgIHRoaXMuYXJyb3dQb3NpdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLm9wZW5Qb3NpdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLmlzT3BlblN0YWJsZSA9IGZhbHNlO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucG9zaXRpb25Qb3BvdmVyRmx1aWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBwYW5lbCBpcyBjb21pbmcgaW50byBleGlzdGVuY2VcbiAgICAgIHRoaXMucG9zaXRpb25Qb3BvdmVyRmx1aWQoKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnBvc2l0aW9uUG9wb3ZlckZsdWlkKTtcbiAgICB9XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjbGV0XG4gICAgICAocmFuZG9tSWQpXG4gICAgICAoY2xhc3NOYW1lc1xuICAgICAgICAoaWYgdGhpcy5pc09wZW5pbmcgXCJldWlQb3BvdmVyLWlzT3BlblwiKVxuICAgICAgICBwb3NpdGlvbj10aGlzLmFuY2hvclBvc2l0aW9uXG4gICAgICAgIGRpc3BsYXk9dGhpcy5kaXNwbGF5XG4gICAgICAgIGNvbXBvbmVudE5hbWU9XCJFdWlQb3BvdmVyXCJcbiAgICAgIClcbiAgICAgIChjbGFzc05hbWVzXG4gICAgICAgIFwiZXVpUG9wb3Zlcl9fcGFuZWxcIlxuICAgICAgICAoY29uY2F0IFwiZXVpUG9wb3Zlcl9fcGFuZWwtLVwiIHRoaXMuYXJyb3dQb3NpdGlvbilcbiAgICAgICAgKGlmIHRoaXMuaXNPcGVuaW5nIFwiZXVpUG9wb3Zlcl9fcGFuZWwtaXNPcGVuXCIpXG4gICAgICAgIChpZlxuICAgICAgICAgIChvciAobm90IHRoaXMuaGFzQXJyb3cpIEBhdHRhY2hUb0FuY2hvcikgXCJldWlQb3BvdmVyX19wYW5lbC1ub0Fycm93XCJcbiAgICAgICAgKVxuICAgICAgICAoaWYgQGF0dGFjaFRvQW5jaG9yIFwiZXVpUG9wb3Zlcl9fcGFuZWwtaXNBdHRhY2hlZFwiKVxuICAgICAgICBAcGFuZWxDbGFzc2VzXG4gICAgICApXG4gICAgICBhcyB8ZGVzY3JpcHRpb25JZCBjbGFzc2VzIHBhbmVsQ2xhc3Nlc3xcbiAgICB9fVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz17e2NsYXNzZXN9fVxuICAgICAgICB7e29uS2V5IFwiX2FsbFwiIHRoaXMub25LZXlEb3duIHByaW9yaXR5PTF9fVxuICAgICAgICB7e2RpZEluc2VydCB0aGlzLmRpZEluc2VydFBvcG92ZXJ9fVxuICAgICAgICB7e2RpZFVwZGF0ZSB0aGlzLmRpZFVwZGF0ZUlzT3BlbiBAaXNPcGVufX1cbiAgICAgICAge3tkaWRVcGRhdGUgdGhpcy5kaWRVcGRhdGVSZXBvc2l0aW9uT25TY3JvbGwgQHJlcG9zaXRpb25PblNjcm9sbH19XG4gICAgICAgIHt7ZGlkSW5zZXJ0IChvcHRpb25hbCBAcG9wb3ZlclJlZil9fVxuICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICA-XG5cbiAgICAgICAge3shIGJ1dHRvbiB9fVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJldWlQb3BvdmVyX19hbmNob3Ige3tAYW5jaG9yQ2xhc3NOYW1lfX1cIlxuICAgICAgICAgIHt7ZGlkSW5zZXJ0IHRoaXMucmVnaXN0ZXJCdXR0b259fVxuICAgICAgICA-XG4gICAgICAgICAge3t5aWVsZCB0bz1cImJ1dHRvblwifX1cbiAgICAgICAgPC9kaXY-XG5cbiAgICAgICAge3shIGNvbnRlbnQgfX1cbiAgICAgICAge3sjaWZcbiAgICAgICAgICAoYW5kXG4gICAgICAgICAgICAobm90IHRoaXMuc3VwcHJlc3NpbmdQb3BvdmVyKVxuICAgICAgICAgICAgKG9yIHRoaXMuaXNDdXJyZW50bHlPcGVuIHRoaXMuaXNDbG9zaW5nKVxuICAgICAgICAgIClcbiAgICAgICAgfX1cbiAgICAgICAgICA8RXVpUG9ydGFsIEBpbnNlcnQ9e3tAaW5zZXJ0fX0-XG4gICAgICAgICAgICB7eyNsZXQgKHJhbmRvbUlkKSBhcyB8cGFuZWxJZHx9fVxuICAgICAgICAgICAgICA8RXVpUGFuZWxcbiAgICAgICAgICAgICAgICBpZD17e3BhbmVsSWR9fVxuICAgICAgICAgICAgICAgIGNsYXNzPXt7cGFuZWxDbGFzc2VzfX1cbiAgICAgICAgICAgICAgICBhcmlhLWxpdmU9e3tpZiB0aGlzLm93bkZvY3VzIFwib2ZmXCIgXCJhc3NlcnRpdmVcIn19XG4gICAgICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17e0BhcmlhTGFiZWx9fVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17e0BhcmlhTGFiZWxsZWRCeX19XG4gICAgICAgICAgICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e3tpZiB0aGlzLm93bkZvY3VzIGRlc2NyaXB0aW9uSWR9fVxuICAgICAgICAgICAgICAgIHRhYmluZGV4PXt7dGhpcy50YWJpbmRleH19XG4gICAgICAgICAgICAgICAgQGhhc1NoYWRvdz17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3t0aGlzLnBhbmVsUGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgIHt7c2ltcGxlU3R5bGUgdGhpcy5fcG9wb3ZlclN0eWxlc319XG4gICAgICAgICAgICAgICAge3tkaWRJbnNlcnQgdGhpcy5yZWdpc3RlclBhbmVsfX1cbiAgICAgICAgICAgICAgICB7e291dHNpZGVDbGlja0RldGVjdG9yIG9uT3V0c2lkZUNsaWNrPXRoaXMub25DbGlja091dHNpZGV9fVxuICAgICAgICAgICAgICAgIHt7b25LZXkgXCJFc2NhcGVcIiB0aGlzLm9uRXNjYXBlS2V5fX1cbiAgICAgICAgICAgICAgICB7e2ZvY3VzVHJhcFxuICAgICAgICAgICAgICAgICAgaXNBY3RpdmU9KG5vdFxuICAgICAgICAgICAgICAgICAgICAob3JcbiAgICAgICAgICAgICAgICAgICAgICAobm90IHRoaXMub3duRm9jdXMpIChub3QgdGhpcy5pc09wZW5TdGFibGUpIHRoaXMuaXNDbG9zaW5nXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHNob3VsZFNlbGZGb2N1cz10aGlzLnNob3VsZFNlbGZGb2N1c1xuICAgICAgICAgICAgICAgICAgaXNQYXVzZWQ9dGhpcy5pc0ZvY3VzVHJhcFBhdXNlZFxuICAgICAgICAgICAgICAgICAgZm9jdXNUcmFwT3B0aW9ucz0obWVyZ2VcbiAgICAgICAgICAgICAgICAgICAgKGhhc2hcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Gb2N1c09uRGVhY3RpdmF0ZT10aGlzLmlzT3BlblN0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxGb2N1cz0ob3IgQGluaXRpYWxGb2N1cyB0aGlzLnBhbmVsKVxuICAgICAgICAgICAgICAgICAgICAgIG9uRGVhY3RpdmF0ZT0ob3B0aW9uYWwgQG9uVHJhcERlYWN0aXZhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICBwcmV2ZW50U2Nyb2xsPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICBjbGlja091dHNpZGVEZWFjdGl2YXRlcz10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tGb2N1cz0oY29uY2F0IFwiI1wiIHBhbmVsSWQpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgQGZvY3VzVHJhcE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9e3tjb25jYXRcbiAgICAgICAgICAgICAgICAgICAgXCJldWlQb3BvdmVyX19wYW5lbEFycm93IGV1aVBvcG92ZXJfX3BhbmVsQXJyb3ctLVwiXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXJyb3dQb3NpdGlvblxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7dGhpcy5fYXJyb3dTdHlsZXN9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJhcnJvd0NoaWxkcmVuXCJ9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHt7I2lmIHRoaXMub3duRm9jdXN9fVxuICAgICAgICAgICAgICAgICAgPHAgaWQ9e3tkZXNjcmlwdGlvbklkfX0ge3tzY3JlZW5SZWFkZXJPbmx5fX0-XG4gICAgICAgICAgICAgICAgICAgIFlvdSBhcmUgaW4gYSBkaWFsb2cuIFRvIGNsb3NlIHRoaXMgZGlhbG9nLCBoaXQgZXNjYXBlLlxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICB7e211dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgICAgICAgICAgICAgb25NdXRhdGlvbj10aGlzLm9uTXV0YXRpb25cbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXJPcHRpb25zPShtZXJnZVxuICAgICAgICAgICAgICAgICAgICAgIChoYXNoXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkTGlzdD10cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJEYXRhPXRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnRyZWU9dHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICBAbXV0YXRpb25PYnNlcnZlck9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiY29udGVudFwifX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9FdWlQYW5lbD5cbiAgICAgICAgICAgIHt7L2xldH19XG4gICAgICAgICAgPC9FdWlQb3J0YWw-XG4gICAgICAgIHt7L2lmfX1cblxuICAgICAgPC9kaXY-XG4gICAge3svbGV0fX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFDNUMsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUN0QyxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxNQUFNLFFBQVEsZ0JBQWdCO0FBQ3ZDLFNBQVMsTUFBTSxRQUFRLGdCQUFnQjtBQUN2QyxPQUFPLGVBQWUsK0NBQStDO0FBQ3JFLE9BQU8sZUFBZSwrQ0FBK0M7QUFDckUsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksUUFBUSxpQkFBaUI7QUFDN0QsU0FBUyxRQUFRLFFBQVEsa0JBQWtCO0FBRTNDLE9BQU8sY0FBYyw0Q0FBNEM7QUFDakUsU0FBUyxTQUFTLFFBQVEsbUJBQW1CO0FBQzdDLE9BQU8sV0FBVyxrQ0FBa0M7QUFDcEQsU0FBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsUUFBUSxzQkFBc0I7QUFDbkQsU0FBUyxRQUFRLFFBQVEsV0FBVztBQUVwQyxPQUFPLGNBQWMsMkJBQTJCO0FBQ2hELFNBQVMscUJBQXFCLFFBQVEsK0JBQStCO0FBQ3JFLE9BQU8sZ0JBQWdCLDRCQUE0QjtBQUNuRCxPQUFPLFdBQVcsc0JBQXNCO0FBQ3hDLE9BQU8sc0JBQXNCLG9DQUFvQztBQUNqRSxPQUFPLDBCQUEwQix5Q0FBeUM7QUFDMUUsT0FBTyxzQkFBc0IscUNBQXFDO0FBQ2xFLE9BQU8saUJBQWlCLCtCQUErQjtBQUN2RCxTQUFTLGlCQUFpQixRQUFRLGlDQUFpQztBQUNuRSxTQUNFLHFCQUFxQixFQUNyQixjQUFjLFFBQ1QsdUNBQXVDO0FBQzlDLFNBQVMsbUJBQW1CLEVBQUUsZ0JBQWdCLFFBQVEsNEJBQTRCO0FBQ2xGLFNBQ0Usb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixjQUFjLFFBQ1QseUJBQXlCO0FBQ2hDLE9BQU8sY0FBYyxrQkFBa0I7QUFDdkMsT0FBTyxlQUFlLG1CQUFt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"],"names":["anchorPositionToPopoverPositionMap","up","right","down","left","getPopoverPositionFromAnchorPosition","anchorPosition1","match1","match","length","getPopoverAlignFromAnchorPosition","toLowerCase","ANCHOR_POSITIONS","Object","keys","anchorPositionMapping","DISPLAY","displayMapping","DEFAULT_POPOVER_STYLES","top","getElementFromInitialFocus","initialFocus1","initialFocusType1","document","querySelector","EuiPopoverComponent","Component","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","respositionTimeout","closingTransitionTimeout","closingTransitionAnimationFrame","updateFocusAnimationFrame","hasSetInitialFocus","constructor","owner1","args1","assert","args","closePopover","prevIsOpen","isOpen","suppressingPopover","isCurrentlyOpen","n","action","onEscapeKey","event1","ekEvent1","stopPropagation","stopImmediatePropagation","preventDefault","onKeyDown","key","cascadingMenuKeys","ESCAPE","onClickOutside","focusTrapOptions","button","contains","target","updateFocus","window","requestAnimationFrame","ownFocus","panel","initialFocus","activeElement","focusTarget1","tabbableItems1","tabbable","panelVisibility1","getComputedStyle","opacity","visibility1","visibility","focus","onOpenPopover","cancel","isOpening","durationMatch","durationMatch1","delayMatch","delayMatch1","Array","slice","call","children","reduce","element1","transitionTimings1","getTransitionTimings","Math","max","later","isOpenStable","fn1","positionPopoverFixed","scheduleOnce","didInsertPopover","repositionOnScroll","addEventListener","didUpdateRepositionOnScroll","removeEventListener","didUpdateIsOpen","isClosing","willDestroy","cancelAnimationFrame","onMutation","records1","waitDuration1","getWaitDuration","performOnFrame","positionPopover","allowEnforcePosition1","position1","anchorPosition","forcePosition1","undefined","openPosition","top1","left1","position","foundPosition1","arrow","arrow1","anchorBoundingBox","anchorBoundingBox1","findPopoverPosition","container","forcePosition","align","anchor","popover","offset","attachToAnchor","hasArrow","arrowConfig","arrowWidth","arrowBuffer","returnBoundingBox","buffer","zIndex","zIndexProp1","zIndex1","getElementZIndex","popoverStyles1","willRenderArrow1","arrowStyles1","arrowPosition1","popoverStyles","arrowStyles","arrowPosition","_arrowStyles","htmlSafe","_popoverStyles","panelStyle","panelStyle1","tabindex","positionPopoverFluid","registerButton","btn1","buttonRef","registerPanel","panel1","panelRef","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","classNames","concat","or","not","onKey","didInsert","didUpdate","optional","and","EuiPortal","EuiPanel","simpleStyle","outsideClickDetector","focusTrap","merge","hash","screenReaderOnly","mutationObserver"],"mappings":"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"}
@@ -2,9 +2,9 @@ import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { guidFor } from '@ember/object/internals';
4
4
  import { keysOf } from './common.js';
5
- import { g, i } from 'decorator-transforms/runtime';
6
5
  import { precompileTemplate } from '@ember/template-compilation';
7
6
  import { setComponentTemplate } from '@ember/component';
7
+ import { g, i } from 'decorator-transforms/runtime';
8
8
 
9
9
  const insertPositions = {
10
10
  after: 'afterend',
@@ -1,19 +1,19 @@
1
1
  import { or, eq, and } from 'ember-truth-helpers';
2
- import classNames from '../helpers/class-names.js';
3
2
  import argOrDefault from '../helpers/arg-or-default.js';
3
+ import classNames from '../helpers/class-names.js';
4
4
  import { precompileTemplate } from '@ember/template-compilation';
5
5
  import { setComponentTemplate } from '@ember/component';
6
6
  import templateOnly from '@ember/component/template-only';
7
7
 
8
8
  const EuiProgress = setComponentTemplate(precompileTemplate("\n {{#if @max}}\n {{#if (or (has-block \"label\") (has-block \"valueText\") @valueText)}}\n <div class={{classNames (if (eq @size \"l\") \"euiProgress__data--l\") componentName=\"EuiProgressData\" color=(argOrDefault @color \"success\")}}>\n {{#if (has-block \"label\")}}\n <span class=\"euiProgress__label\">\n {{yield to=\"label\"}}\n </span>\n {{/if}}\n {{#if (or (has-block \"valueText\") @valueText)}}\n <span class=\"euiProgress__valueText {{@labelClasses}}\">\n {{#if (eq @valueText true)}}\n {{@value}}\n {{else}}\n {{yield to=\"valueText\"}}\n {{/if}}\n </span>\n {{/if}}\n </div>\n {{/if}}\n <progress class={{classNames \"euiProgress--native\" componentName=\"EuiProgress\" size=(argOrDefault @size \"m\") position=(argOrDefault @position \"static\") color=(argOrDefault @color \"success\")}} max={{@max}} value={{@value}} aria-hidden={{and (has-block \"label\") (or @valueText (has-block \"valueText\"))}} ...attributes></progress>\n {{else}}\n <div class={{classNames \"euiProgress--indeterminate\" componentName=\"EuiProgress\" size=(argOrDefault @size \"m\") position=(argOrDefault @position \"static\") color=(argOrDefault @color \"success\")}} ...attributes></div>\n {{/if}}\n", {
9
+ strictMode: true,
9
10
  scope: () => ({
10
11
  or,
11
12
  classNames,
12
13
  eq,
13
14
  argOrDefault,
14
15
  and
15
- }),
16
- strictMode: true
16
+ })
17
17
  }), templateOnly());
18
18
 
19
19
  export { EuiProgress as default };