@ember-eui/core 12.0.10 → 12.0.12

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 (104) hide show
  1. package/declarations/components/eui-accordion.d.ts +3 -2
  2. package/declarations/components/eui-accordion.d.ts.map +1 -1
  3. package/declarations/components/eui-auto-sizer.d.ts.map +1 -1
  4. package/declarations/components/eui-card.d.ts +1 -0
  5. package/declarations/components/eui-card.d.ts.map +1 -1
  6. package/declarations/components/eui-code-block.d.ts +1 -0
  7. package/declarations/components/eui-code-block.d.ts.map +1 -1
  8. package/declarations/components/eui-code.d.ts +2 -2
  9. package/declarations/components/eui-code.d.ts.map +1 -1
  10. package/declarations/components/eui-context-menu-item.d.ts +1 -0
  11. package/declarations/components/eui-context-menu-item.d.ts.map +1 -1
  12. package/declarations/components/eui-dual-range.d.ts +1 -0
  13. package/declarations/components/eui-dual-range.d.ts.map +1 -1
  14. package/declarations/components/eui-field-search.d.ts +1 -0
  15. package/declarations/components/eui-field-search.d.ts.map +1 -1
  16. package/declarations/components/eui-file-picker.d.ts +1 -0
  17. package/declarations/components/eui-file-picker.d.ts.map +1 -1
  18. package/declarations/components/eui-flyout.d.ts +1 -1
  19. package/declarations/components/eui-flyout.d.ts.map +1 -1
  20. package/declarations/components/eui-header-section-item-button.d.ts +1 -0
  21. package/declarations/components/eui-header-section-item-button.d.ts.map +1 -1
  22. package/declarations/components/eui-inner-text.d.ts.map +1 -1
  23. package/declarations/components/eui-input-popover.d.ts +1 -0
  24. package/declarations/components/eui-input-popover.d.ts.map +1 -1
  25. package/declarations/components/eui-markdown-editor-footer.d.ts.map +1 -1
  26. package/declarations/components/eui-markdown-editor-toolbar.d.ts.map +1 -1
  27. package/declarations/components/eui-markdown-editor.d.ts +1 -0
  28. package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
  29. package/declarations/components/eui-overlay-mask.d.ts +1 -0
  30. package/declarations/components/eui-overlay-mask.d.ts.map +1 -1
  31. package/declarations/components/eui-popover.d.ts.map +1 -1
  32. package/declarations/components/eui-portal.d.ts +1 -1
  33. package/declarations/components/eui-portal.d.ts.map +1 -1
  34. package/declarations/components/eui-range-ticks.d.ts +2 -1
  35. package/declarations/components/eui-range-ticks.d.ts.map +1 -1
  36. package/declarations/components/eui-range-track.d.ts +2 -1
  37. package/declarations/components/eui-range-track.d.ts.map +1 -1
  38. package/declarations/components/eui-range.d.ts +2 -2
  39. package/declarations/components/eui-range.d.ts.map +1 -1
  40. package/declarations/components/eui-tool-tip-popover.d.ts.map +1 -1
  41. package/declarations/components/eui-tool-tip.d.ts +1 -1
  42. package/declarations/components/eui-tool-tip.d.ts.map +1 -1
  43. package/declarations/components/eui-wrapping-popover.d.ts.map +1 -1
  44. package/declarations/modifiers/outside-click-detector.d.ts +3 -3
  45. package/declarations/modifiers/outside-click-detector.d.ts.map +1 -1
  46. package/declarations/modifiers/resize-observer.d.ts +4 -4
  47. package/declarations/modifiers/resize-observer.d.ts.map +1 -1
  48. package/dist/components/eui-accordion.js +13 -10
  49. package/dist/components/eui-accordion.js.map +1 -1
  50. package/dist/components/eui-auto-sizer.js +4 -0
  51. package/dist/components/eui-auto-sizer.js.map +1 -1
  52. package/dist/components/eui-card.js +4 -0
  53. package/dist/components/eui-card.js.map +1 -1
  54. package/dist/components/eui-code-block.js +7 -0
  55. package/dist/components/eui-code-block.js.map +1 -1
  56. package/dist/components/eui-code.js +3 -1
  57. package/dist/components/eui-code.js.map +1 -1
  58. package/dist/components/eui-collapsible-nav-group.js +2 -2
  59. package/dist/components/eui-collapsible-nav-group.js.map +1 -1
  60. package/dist/components/eui-context-menu-item.js +4 -0
  61. package/dist/components/eui-context-menu-item.js.map +1 -1
  62. package/dist/components/eui-dual-range.js +4 -0
  63. package/dist/components/eui-dual-range.js.map +1 -1
  64. package/dist/components/eui-field-search.js +4 -0
  65. package/dist/components/eui-field-search.js.map +1 -1
  66. package/dist/components/eui-file-picker.js +4 -0
  67. package/dist/components/eui-file-picker.js.map +1 -1
  68. package/dist/components/eui-flyout.js.map +1 -1
  69. package/dist/components/eui-header-section-item-button.js +5 -0
  70. package/dist/components/eui-header-section-item-button.js.map +1 -1
  71. package/dist/components/eui-inner-text.js +1 -0
  72. package/dist/components/eui-inner-text.js.map +1 -1
  73. package/dist/components/eui-input-popover.js +5 -0
  74. package/dist/components/eui-input-popover.js.map +1 -1
  75. package/dist/components/eui-markdown-editor-footer.js +14 -5
  76. package/dist/components/eui-markdown-editor-footer.js.map +1 -1
  77. package/dist/components/eui-markdown-editor-toolbar.js +4 -2
  78. package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
  79. package/dist/components/eui-markdown-editor.js +6 -0
  80. package/dist/components/eui-markdown-editor.js.map +1 -1
  81. package/dist/components/eui-notification-event-messages.js +2 -2
  82. package/dist/components/eui-notification-event-messages.js.map +1 -1
  83. package/dist/components/eui-overlay-mask.js +4 -0
  84. package/dist/components/eui-overlay-mask.js.map +1 -1
  85. package/dist/components/eui-popover.js +3 -0
  86. package/dist/components/eui-popover.js.map +1 -1
  87. package/dist/components/eui-portal.js +2 -1
  88. package/dist/components/eui-portal.js.map +1 -1
  89. package/dist/components/eui-range-ticks.js +4 -1
  90. package/dist/components/eui-range-ticks.js.map +1 -1
  91. package/dist/components/eui-range-track.js +4 -0
  92. package/dist/components/eui-range-track.js.map +1 -1
  93. package/dist/components/eui-range.js.map +1 -1
  94. package/dist/components/eui-tool-tip-popover.js +1 -0
  95. package/dist/components/eui-tool-tip-popover.js.map +1 -1
  96. package/dist/components/eui-tool-tip.js +8 -5
  97. package/dist/components/eui-tool-tip.js.map +1 -1
  98. package/dist/components/eui-wrapping-popover.js +2 -0
  99. package/dist/components/eui-wrapping-popover.js.map +1 -1
  100. package/dist/modifiers/outside-click-detector.js +6 -3
  101. package/dist/modifiers/outside-click-detector.js.map +1 -1
  102. package/dist/modifiers/resize-observer.js +10 -3
  103. package/dist/modifiers/resize-observer.js.map +1 -1
  104. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-header-section-item-button.js","sources":["../../src/components/eui-header-section-item-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiNotificationBadge from './eui-notification-badge.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { colorMapping } from '../utils/css-mappings/eui-notification-badge.ts';\nimport type { EuiHideForBreakpoints } from './eui-hide-for';\n\nconst keyframes: Keyframe[] = [\n { transform: 'rotate(0)', offset: 0, easing: 'ease-in-out' },\n {\n transform: 'rotate(30deg)',\n offset: 0.01,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.03,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(34deg)',\n offset: 0.05,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-32deg)',\n offset: 0.07,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(30deg)',\n offset: 0.09,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.11,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(26deg)',\n offset: 0.13,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-24deg)',\n offset: 0.15,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(22deg)',\n offset: 0.17,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-20deg)',\n offset: 0.19,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(18deg)',\n offset: 0.21,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-16deg)',\n offset: 0.23,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(14deg)',\n offset: 0.25,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-12deg)',\n offset: 0.27,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(10deg)',\n offset: 0.29,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-8deg)',\n offset: 0.31,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(6deg)',\n offset: 0.33,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-4deg)',\n offset: 0.35,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(2deg)',\n offset: 0.37,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-1deg)',\n offset: 0.39,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(1deg)',\n offset: 0.41,\n easing: 'ease-in-out'\n },\n { transform: 'rotate(0)', offset: 0.43, easing: 'ease-in-out' },\n { transform: 'rotate(0)', offset: 1, easing: 'ease-in-out' }\n];\n\nexport interface EuiHeaderSectionItemButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement;\n Args: {\n ref?: (api: { euiAnimate: () => void }) => void;\n disabled?: boolean;\n href?: string;\n onClick?: (event: MouseEvent) => void;\n notification?: boolean | number;\n notificationColor?: keyof typeof colorMapping;\n };\n Blocks: { default: [] };\n}\n\nconst sizes: EuiHideForBreakpoints[] = ['xs'];\n\nexport default class EuiHeaderSectionItemButtonComponent extends Component<EuiHeaderSectionItemButtonSignature> {\n @tracked buttonRef: HTMLButtonElement | HTMLAnchorElement | undefined;\n @tracked animationTargetRef: HTMLSpanElement | undefined;\n\n setAnimationTargetRef = (ele: HTMLSpanElement) => {\n this.animationTargetRef = ele;\n this.args.ref?.({ euiAnimate: this.animate });\n };\n\n animate = () => {\n this.animationTargetRef?.animate(keyframes, { duration: 5000 });\n };\n\n setButtonRef = (ele: HTMLButtonElement | HTMLAnchorElement) => {\n this.buttonRef = ele;\n };\n\n <template>\n <EuiButtonEmpty\n class=\"euiHeaderSectionItemButton\"\n @isDisabled={{@disabled}}\n @href={{@href}}\n @color=\"text\"\n {{didInsert this.setButtonRef}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n <span\n {{didInsert this.setAnimationTargetRef}}\n class=\"euiHeaderSectionItemButton__content\"\n >\n {{yield}}\n </span>\n {{#if @notification}}\n {{#if (eq @notification true)}}\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n {{else if @notification}}\n <EuiHideFor @sizes={{sizes}}>\n <EuiNotificationBadge\n class=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--badge\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n >\n {{@notification}}\n </EuiNotificationBadge>\n </EuiHideFor>\n <EuiShowFor @sizes={{sizes}}>\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n </EuiShowFor>\n {{/if}}\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["keyframes","transform","offset","easing","sizes","EuiHeaderSectionItemButtonComponent","Component","g","prototype","tracked","i","void 0","setAnimationTargetRef","ele","animationTargetRef","args","ref","euiAnimate","animate","duration","setButtonRef","buttonRef","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","didInsert","on","optional","eq","EuiIcon","argOrDefault","EuiHideFor","EuiNotificationBadge","EuiShowFor"],"mappings":"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"}
1
+ {"version":3,"file":"eui-header-section-item-button.js","sources":["../../src/components/eui-header-section-item-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport optional from '@nullvoxpopuli/ember-composable-helpers/helpers/optional';\nimport { eq } from 'ember-truth-helpers';\n\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiHideFor from './eui-hide-for.gts';\nimport EuiIcon from './eui-icon.gts';\nimport EuiNotificationBadge from './eui-notification-badge.gts';\nimport EuiShowFor from './eui-show-for.gts';\n\nimport type { colorMapping } from '../utils/css-mappings/eui-notification-badge.ts';\nimport type { EuiHideForBreakpoints } from './eui-hide-for';\n\nconst keyframes: Keyframe[] = [\n { transform: 'rotate(0)', offset: 0, easing: 'ease-in-out' },\n {\n transform: 'rotate(30deg)',\n offset: 0.01,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.03,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(34deg)',\n offset: 0.05,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-32deg)',\n offset: 0.07,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(30deg)',\n offset: 0.09,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-28deg)',\n offset: 0.11,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(26deg)',\n offset: 0.13,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-24deg)',\n offset: 0.15,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(22deg)',\n offset: 0.17,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-20deg)',\n offset: 0.19,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(18deg)',\n offset: 0.21,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-16deg)',\n offset: 0.23,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(14deg)',\n offset: 0.25,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-12deg)',\n offset: 0.27,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(10deg)',\n offset: 0.29,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-8deg)',\n offset: 0.31,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(6deg)',\n offset: 0.33,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-4deg)',\n offset: 0.35,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(2deg)',\n offset: 0.37,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(-1deg)',\n offset: 0.39,\n easing: 'ease-in-out'\n },\n {\n transform: 'rotate(1deg)',\n offset: 0.41,\n easing: 'ease-in-out'\n },\n { transform: 'rotate(0)', offset: 0.43, easing: 'ease-in-out' },\n { transform: 'rotate(0)', offset: 1, easing: 'ease-in-out' }\n];\n\nexport interface EuiHeaderSectionItemButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement;\n Args: {\n ref?: (api: { euiAnimate: () => void }) => void;\n disabled?: boolean;\n href?: string;\n onClick?: (event: MouseEvent) => void;\n notification?: boolean | number;\n notificationColor?: keyof typeof colorMapping;\n };\n Blocks: { default: [] };\n}\n\nconst sizes: EuiHideForBreakpoints[] = ['xs'];\n\nexport default class EuiHeaderSectionItemButtonComponent extends Component<EuiHeaderSectionItemButtonSignature> {\n @tracked buttonRef: HTMLButtonElement | HTMLAnchorElement | undefined;\n @tracked animationTargetRef: HTMLSpanElement | undefined;\n\n setAnimationTargetRef = (ele: HTMLSpanElement) => {\n this.animationTargetRef = ele;\n this.args.ref?.({ euiAnimate: this.animate });\n };\n\n animate = () => {\n this.animationTargetRef?.animate(keyframes, { duration: 5000 });\n };\n\n setButtonRef = (ele: HTMLButtonElement | HTMLAnchorElement) => {\n this.buttonRef = ele;\n };\n\n willDestroy(): void {\n super.willDestroy();\n \n this.buttonRef = undefined;\n this.animationTargetRef = undefined;\n }\n\n <template>\n <EuiButtonEmpty\n class=\"euiHeaderSectionItemButton\"\n @isDisabled={{@disabled}}\n @href={{@href}}\n @color=\"text\"\n {{didInsert this.setButtonRef}}\n {{on \"click\" (optional @onClick)}}\n ...attributes\n >\n <span\n {{didInsert this.setAnimationTargetRef}}\n class=\"euiHeaderSectionItemButton__content\"\n >\n {{yield}}\n </span>\n {{#if @notification}}\n {{#if (eq @notification true)}}\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n {{else if @notification}}\n <EuiHideFor @sizes={{sizes}}>\n <EuiNotificationBadge\n class=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--badge\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n >\n {{@notification}}\n </EuiNotificationBadge>\n </EuiHideFor>\n <EuiShowFor @sizes={{sizes}}>\n <EuiIcon\n @iconClasses=\"euiHeaderSectionItemButton__notification euiHeaderSectionItemButton__notification--dot\"\n @color={{argOrDefault @notificationColor \"accent\"}}\n @type=\"dot\"\n @size=\"l\"\n />\n </EuiShowFor>\n {{/if}}\n {{/if}}\n </EuiButtonEmpty>\n </template>\n}\n"],"names":["keyframes","transform","offset","easing","sizes","EuiHeaderSectionItemButtonComponent","Component","g","prototype","tracked","i","void 0","setAnimationTargetRef","ele","animationTargetRef","args","ref","euiAnimate","animate","duration","setButtonRef","buttonRef","willDestroy","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonEmpty","didInsert","on","optional","eq","EuiIcon","argOrDefault","EuiHideFor","EuiNotificationBadge","EuiShowFor"],"mappings":";;;;;;;;;;;;;;;;AAkBA,MAAMA,SAAwB,GAAA,CAC5B;AAAEC,EAAAA,SAAW,EAAA,WAAA;AAAaC,EAAAA,MAAQ,EAAA,CAAA;AAAGC,EAAAA,MAAQ,EAAA;AAAc,CAAA,EAC3D;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,gBAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,cAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,cAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,eAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AACEF,EAAAA,SAAW,EAAA,cAAA;AACXC,EAAAA,MAAQ,EAAA,IAAA;AACRC,EAAAA,MAAQ,EAAA;AACV,CAAA,EACA;AAAEF,EAAAA,SAAW,EAAA,WAAA;AAAaC,EAAAA,MAAQ,EAAA,IAAA;AAAMC,EAAAA,MAAQ,EAAA;AAAc,CAAA,EAC9D;AAAEF,EAAAA,SAAW,EAAA,WAAA;AAAaC,EAAAA,MAAQ,EAAA,CAAA;AAAGC,EAAAA,MAAQ,EAAA;AAAc,CAAA,CAC5D;AAeD,MAAMC,KAAiC,GAAA,CAAC,IAAA,CAAK;AAE9B,MAAMC,4CAA4CC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACxEC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CACAC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,mBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,EAAAC,MAAA;EAEDC,qBAAA,GAAyBC,GAAK,IAAA;IAC5B,IAAI,CAACC,kBAAkB,GAAGD,GAAA;AAC1B,IAAA,IAAI,CAACE,IAAI,CAACC,GAAG,GAAG;MAAEC,UAAY,EAAA,IAAI,CAACC;AAAQ,KAAA,CAAA;GAC3C;EAEFA,OAAU,GAAAA,MAAA;AACR,IAAA,IAAI,CAACJ,kBAAkB,EAAEI,OAAA,CAAQlB,SAAW,EAAA;AAAEmB,MAAAA,QAAU,EAAA;AAAK,KAAA,CAAA;GAC7D;EAEFC,YAAe,GAACP,GAAyB,IAAA;IACvC,IAAI,CAACQ,SAAS,GAAGR,GAAA;GACjB;AAEFS,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;IAEN,IAAI,CAACD,SAAS,GAAGE,SAAA;IACjB,IAAI,CAACT,kBAAkB,GAAGS,SAAA;AAC5B;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA4CA,4xCAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,QAAA;QAAAC,EAAA;QAAAC,OAAA;QAAAC,YAAA;oBAAAC,mBAAA;QAAA/B,KAAA;QAAAgC,oBAAA;AAAAC,oBAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -59,6 +59,7 @@ class EuiImage extends Component {
59
59
  willDestroy() {
60
60
  super.willDestroy();
61
61
  this.observer?.disconnect();
62
+ this.ref = null;
62
63
  }
63
64
  static {
64
65
  setComponentTemplate(precompileTemplate("\n {{yield this.setRef this.innerText}}\n ", {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-inner-text.js","sources":["../../src/components/eui-inner-text.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\n\nexport interface EuiInnerTextSignature {\n Args: {\n fallback?: string;\n };\n\n Blocks: {\n default: [(ref: HTMLElement) => void, string];\n };\n}\n\nexport default class EuiImage extends Component<EuiInnerTextSignature> {\n @tracked ref: HTMLElement | null = null;\n @tracked innerText = '';\n observer: MutationObserver | null = null;\n\n get innerTextFallback() {\n return this.args.fallback ?? '';\n }\n\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList) => {\n if (mutationsList.length) this.updateInnerText(this.ref);\n });\n\n if (this.ref) {\n this.updateInnerText(this.ref);\n this.observer.observe(this.ref, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n }\n\n updateInnerText(node: HTMLElement | null) {\n if (!node) return;\n this.setInnerText(\n // Check for `innerText` implementation rather than a simple OR check\n // because in real cases the result of `innerText` could correctly be `null`\n // while the result of `textContent` could correctly be non-`null` due to\n // differing reliance on browser layout calculations.\n // We prefer the result of `innerText`, if available.\n 'innerText' in node\n ? node.innerText\n : (node as HTMLElement).textContent || this.innerTextFallback\n );\n }\n\n setInnerText(text: string) {\n this.innerText = text;\n }\n\n @action\n setRef(ref: HTMLElement): void {\n this.ref = ref;\n this.setupObserver();\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n }\n\n <template>\n {{yield this.setRef this.innerText}}\n </template>\n}\n"],"names":["EuiImage","Component","g","prototype","tracked","i","void 0","observer","innerTextFallback","args","fallback","setupObserver","disconnect","MutationObserver","mutationsList","length","updateInnerText","ref","observe","characterData","subtree","childList","node","setInnerText","innerText","textContent","text","setRef","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;AAee,MAAMA,iBAAiBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,KAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkC,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,IAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACvCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAoB,EAAG;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AACxBC,EAAAA,QAAU,GAA0B,IAAK;EAEzC,IAAIC,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,IAAI,EAAA;AAC/B;AAEAC,EAAAA,aAAgBA,GAAA;AACd,IAAA,IAAI,CAACJ,QAAQ,EAAEK,UAAA,EAAA;AACf,IAAA,IAAI,CAACL,QAAQ,GAAG,IAAIM,iBAAkBC,aAAA,IAAA;MACpC,IAAIA,aAAA,CAAcC,MAAM,EAAE,IAAI,CAACC,eAAe,CAAC,IAAI,CAACC,GAAG,CAAA;AACzD,KAAA,CAAA;IAEA,IAAI,IAAI,CAACA,GAAG,EAAE;AACZ,MAAA,IAAI,CAACD,eAAe,CAAC,IAAI,CAACC,GAAG,CAAA;MAC7B,IAAI,CAACV,QAAQ,CAACW,OAAO,CAAC,IAAI,CAACD,GAAG,EAAE;AAC9BE,QAAAA,aAAe,EAAA,IAAA;AACfC,QAAAA,OAAS,EAAA,IAAA;AACTC,QAAAA,SAAW,EAAA;AACb,OAAA,CAAA;AACF;AACF;EAEAL,eAAgBA,CAAAM,IAAwB,EAAE;IACxC,IAAI,CAACA,IAAM,EAAA;AACX,IAAA,IAAI,CAACC,YAAY;AACf;AACA;AACA;AACA;AACA;AACA,IAAA,WAAA,IAAeD,IACX,GAAAA,IAAA,CAAKE,SAAS,GACbF,IAAA,CAAqBG,WAAW,IAAI,IAAI,CAACjB,iBAAiB,CAAA;AAEnE;EAEAe,YAAaA,CAAAG,IAAY,EAAE;IACzB,IAAI,CAACF,SAAS,GAAGE,IAAA;AACnB;EAGAC,MAAAA,CAAOV,GAAgB,EAAQ;IAC7B,IAAI,CAACA,GAAG,GAAGA,GAAA;IACX,IAAI,CAACN,aAAa,EAAA;AACpB;AAAA,EAAA;IAAAiB,CAAA,CAAA,IAAA,CAAAzB,SAAA,EAAA,QAAA,EAAA,CAJC0B,MAAA,CAAA,CAAA;AAAA;AAMDC,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AACN,IAAA,IAAI,CAACvB,QAAQ,EAAEK,UAAA,EAAA;AACjB;AAEA,EAAA;IAAAmB,oBAAA,CAAAC,kBAAA,CAEA,gDAAA,EAAA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-inner-text.js","sources":["../../src/components/eui-inner-text.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\n\nexport interface EuiInnerTextSignature {\n Args: {\n fallback?: string;\n };\n\n Blocks: {\n default: [(ref: HTMLElement) => void, string];\n };\n}\n\nexport default class EuiImage extends Component<EuiInnerTextSignature> {\n @tracked ref: HTMLElement | null = null;\n @tracked innerText = '';\n observer: MutationObserver | null = null;\n\n get innerTextFallback() {\n return this.args.fallback ?? '';\n }\n\n setupObserver() {\n this.observer?.disconnect();\n this.observer = new MutationObserver((mutationsList) => {\n if (mutationsList.length) this.updateInnerText(this.ref);\n });\n\n if (this.ref) {\n this.updateInnerText(this.ref);\n this.observer.observe(this.ref, {\n characterData: true,\n subtree: true,\n childList: true\n });\n }\n }\n\n updateInnerText(node: HTMLElement | null) {\n if (!node) return;\n this.setInnerText(\n // Check for `innerText` implementation rather than a simple OR check\n // because in real cases the result of `innerText` could correctly be `null`\n // while the result of `textContent` could correctly be non-`null` due to\n // differing reliance on browser layout calculations.\n // We prefer the result of `innerText`, if available.\n 'innerText' in node\n ? node.innerText\n : (node as HTMLElement).textContent || this.innerTextFallback\n );\n }\n\n setInnerText(text: string) {\n this.innerText = text;\n }\n\n @action\n setRef(ref: HTMLElement): void {\n this.ref = ref;\n this.setupObserver();\n }\n\n willDestroy(): void {\n super.willDestroy();\n this.observer?.disconnect();\n this.ref = null;\n }\n\n <template>\n {{yield this.setRef this.innerText}}\n </template>\n}\n"],"names":["EuiImage","Component","g","prototype","tracked","i","void 0","observer","innerTextFallback","args","fallback","setupObserver","disconnect","MutationObserver","mutationsList","length","updateInnerText","ref","observe","characterData","subtree","childList","node","setInnerText","innerText","textContent","text","setRef","n","action","willDestroy","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;;AAee,MAAMA,iBAAiBC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,KAAA,EAAA,CAC7CC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkC,IAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,IAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CACvCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAoB,EAAG;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AACxBC,EAAAA,QAAU,GAA0B,IAAK;EAEzC,IAAIC,iBAAoBA,GAAA;AACtB,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,IAAI,EAAA;AAC/B;AAEAC,EAAAA,aAAgBA,GAAA;AACd,IAAA,IAAI,CAACJ,QAAQ,EAAEK,UAAA,EAAA;AACf,IAAA,IAAI,CAACL,QAAQ,GAAG,IAAIM,iBAAkBC,aAAA,IAAA;MACpC,IAAIA,aAAA,CAAcC,MAAM,EAAE,IAAI,CAACC,eAAe,CAAC,IAAI,CAACC,GAAG,CAAA;AACzD,KAAA,CAAA;IAEA,IAAI,IAAI,CAACA,GAAG,EAAE;AACZ,MAAA,IAAI,CAACD,eAAe,CAAC,IAAI,CAACC,GAAG,CAAA;MAC7B,IAAI,CAACV,QAAQ,CAACW,OAAO,CAAC,IAAI,CAACD,GAAG,EAAE;AAC9BE,QAAAA,aAAe,EAAA,IAAA;AACfC,QAAAA,OAAS,EAAA,IAAA;AACTC,QAAAA,SAAW,EAAA;AACb,OAAA,CAAA;AACF;AACF;EAEAL,eAAgBA,CAAAM,IAAwB,EAAE;IACxC,IAAI,CAACA,IAAM,EAAA;AACX,IAAA,IAAI,CAACC,YAAY;AACf;AACA;AACA;AACA;AACA;AACA,IAAA,WAAA,IAAeD,IACX,GAAAA,IAAA,CAAKE,SAAS,GACbF,IAAA,CAAqBG,WAAW,IAAI,IAAI,CAACjB,iBAAiB,CAAA;AAEnE;EAEAe,YAAaA,CAAAG,IAAY,EAAE;IACzB,IAAI,CAACF,SAAS,GAAGE,IAAA;AACnB;EAGAC,MAAAA,CAAOV,GAAgB,EAAQ;IAC7B,IAAI,CAACA,GAAG,GAAGA,GAAA;IACX,IAAI,CAACN,aAAa,EAAA;AACpB;AAAA,EAAA;IAAAiB,CAAA,CAAA,IAAA,CAAAzB,SAAA,EAAA,QAAA,EAAA,CAJC0B,MAAA,CAAA,CAAA;AAAA;AAMDC,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;AACN,IAAA,IAAI,CAACvB,QAAQ,EAAEK,UAAA,EAAA;IACf,IAAI,CAACK,GAAG,GAAG,IAAA;AACb;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAEA,gDAAA,EAAA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -114,6 +114,11 @@ class EuiInputPopoverComponent extends Component {
114
114
  static {
115
115
  n(this.prototype, "onKeyDown", [action]);
116
116
  }
117
+ willDestroy() {
118
+ super.willDestroy();
119
+ this.panel = null;
120
+ this.input = null;
121
+ }
117
122
  static {
118
123
  setComponentTemplate(precompileTemplate("\n {{#let (randomId) as |id|}}\n <EuiPopover class=\"euiInputPopover\n {{if this.fullWidth \"euiInputPopover--fullWidth\"}}\" @ownFocus={{false}} @buttonRef={{this.didInsertInput}} @panelRef={{this.didInsertPanel}} @anchorPosition={{this.anchorPosition}} @panelPaddingSize={{this.panelPaddingSize}} @attachToAnchor={{this.attachToAnchor}} @display={{this.display}} @closePopover={{@closePopover}} @isOpen={{@isOpen}} ...attributes>\n <:button>\n <div {{resizeObserver onResize=this.onResize}}>\n {{yield to=\"input\"}}\n </div>\n </:button>\n <:content>\n <div id={{id}} {{onKey \"_all\" this.onKeyDown}} {{focusTrap isActive=(not this.disableFocusTrap) focusTrapOptions=(hash clickOutsideDeactivates=true returnFocusOnDeactivate=false fallbackFocus=(concat \"#\" id))}}>\n {{yield to=\"content\"}}\n </div>\n </:content>\n </EuiPopover>\n {{/let}}\n ", {
119
124
  strictMode: true,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-input-popover.js","sources":["../../src/components/eui-input-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { action } from '@ember/object';\n\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { not } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport EuiPopover from './eui-popover.gts';\n\nimport type { EuiPopoverArgs } from './eui-popover';\n\nexport interface EuiInputPopoverArgs\n extends Omit<EuiPopoverArgs, 'button' | 'buttonRef'> {\n disableFocusTrap?: boolean;\n fullWidth?: boolean;\n input?: EuiPopoverArgs['button'];\n inputRef?: EuiPopoverArgs['buttonRef'];\n onPanelResize?: (width?: number) => void;\n}\n\nexport interface EuiInputPopoverSignature {\n Element: HTMLElement;\n Args: EuiInputPopoverArgs;\n Blocks: {\n default: [\n {\n closePopover: () => void;\n isOpen: boolean;\n },\n {\n input: HTMLElement;\n content: HTMLElement;\n }\n ];\n input: [];\n content: [];\n };\n}\n\nexport default class EuiInputPopoverComponent extends Component<EuiInputPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator('downLeft') anchorPosition!: EuiPopoverArgs['anchorPosition'];\n @argOrDefaultDecorator(true) attachToAnchor!: boolean;\n @argOrDefaultDecorator('block') display!: EuiPopoverArgs['display'];\n @argOrDefaultDecorator('s') panelPaddingSize!: EuiPopoverArgs['panelPaddingSize'];\n @argOrDefaultDecorator(false) fullWidth!: boolean;\n @argOrDefaultDecorator(false) disableFocusTrap!: boolean;\n\n //State\n @tracked panel: HTMLElement | null = null;\n @tracked input: HTMLElement | null = null;\n @tracked inputWidth!: number;\n ///\n\n @action\n didInsertPanel(panel: HTMLElement | null): void {\n this.panel = panel;\n this.setPanelWidth();\n }\n\n @action\n didInsertInput(input: HTMLElement): void {\n this.input = input;\n this.onResize();\n }\n\n @action\n setPanelWidth(width?: number): void {\n const { panel, inputWidth } = this;\n const newWidth = width || inputWidth;\n\n if (panel && !!newWidth) {\n panel.style.width = `${newWidth}px`;\n this.args.onPanelResize?.(newWidth);\n }\n }\n\n @action\n onResize(): void {\n const { input } = this;\n\n if (input) {\n const width = input.getBoundingClientRect().width;\n\n this.inputWidth = width;\n this.setPanelWidth(width);\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent): void {\n const { panel } = this;\n\n if (panel && event.key === cascadingMenuKeys.TAB) {\n const tabbableItems = tabbable(panel).filter(\n (el: HTMLElement | SVGElement) => {\n return (\n Array.from(el.attributes)\n .map((el) => el.name)\n .indexOf('data-focus-guard') < 0\n );\n }\n );\n\n if (\n this.args.disableFocusTrap ||\n (tabbableItems.length &&\n tabbableItems[tabbableItems.length - 1] === document.activeElement)\n ) {\n this.args.closePopover?.();\n }\n }\n }\n\n <template>\n {{#let (randomId) as |id|}}\n <EuiPopover\n class=\"euiInputPopover\n {{if this.fullWidth 'euiInputPopover--fullWidth'}}\"\n @ownFocus={{false}}\n @buttonRef={{this.didInsertInput}}\n @panelRef={{this.didInsertPanel}}\n @anchorPosition={{this.anchorPosition}}\n @panelPaddingSize={{this.panelPaddingSize}}\n @attachToAnchor={{this.attachToAnchor}}\n @display={{this.display}}\n @closePopover={{@closePopover}}\n @isOpen={{@isOpen}}\n ...attributes\n >\n <:button>\n <div {{resizeObserver onResize=this.onResize}}>\n {{yield to=\"input\"}}\n </div>\n </:button>\n <:content>\n <div\n id={{id}}\n {{onKey \"_all\" this.onKeyDown}}\n {{focusTrap\n isActive=(not this.disableFocusTrap)\n focusTrapOptions=(hash\n clickOutsideDeactivates=true\n returnFocusOnDeactivate=false\n fallbackFocus=(concat \"#\" id)\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </:content>\n </EuiPopover>\n {{/let}}\n </template>\n}\n"],"names":["EuiInputPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","didInsertPanel","panel","setPanelWidth","n","action","didInsertInput","input","onResize","width","inputWidth","newWidth","style","args","onPanelResize","getBoundingClientRect","onKeyDown","event","key","cascadingMenuKeys","TAB","tabbableItems","tabbable","filter","el","Array","from","attributes","map","name","indexOf","disableFocusTrap","length","document","activeElement","closePopover","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","EuiPopover","resizeObserver","onKey","focusTrap","not","hash","concat"],"mappings":"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"}
1
+ {"version":3,"file":"eui-input-popover.js","sources":["../../src/components/eui-input-popover.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\nimport { hash } from '@ember/helper';\nimport { action } from '@ember/object';\n\nimport { focusTrap } from 'ember-focus-trap';\nimport onKey from 'ember-keyboard/modifiers/on-key';\nimport { not } from 'ember-truth-helpers';\nimport { tabbable } from 'tabbable';\n\nimport randomId from '../-private/random-id.ts';\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport { cascadingMenuKeys } from '../utils/accesibility/index.ts';\nimport EuiPopover from './eui-popover.gts';\n\nimport type { EuiPopoverArgs } from './eui-popover';\n\nexport interface EuiInputPopoverArgs\n extends Omit<EuiPopoverArgs, 'button' | 'buttonRef'> {\n disableFocusTrap?: boolean;\n fullWidth?: boolean;\n input?: EuiPopoverArgs['button'];\n inputRef?: EuiPopoverArgs['buttonRef'];\n onPanelResize?: (width?: number) => void;\n}\n\nexport interface EuiInputPopoverSignature {\n Element: HTMLElement;\n Args: EuiInputPopoverArgs;\n Blocks: {\n default: [\n {\n closePopover: () => void;\n isOpen: boolean;\n },\n {\n input: HTMLElement;\n content: HTMLElement;\n }\n ];\n input: [];\n content: [];\n };\n}\n\nexport default class EuiInputPopoverComponent extends Component<EuiInputPopoverSignature> {\n // Defaults\n @argOrDefaultDecorator('downLeft') anchorPosition!: EuiPopoverArgs['anchorPosition'];\n @argOrDefaultDecorator(true) attachToAnchor!: boolean;\n @argOrDefaultDecorator('block') display!: EuiPopoverArgs['display'];\n @argOrDefaultDecorator('s') panelPaddingSize!: EuiPopoverArgs['panelPaddingSize'];\n @argOrDefaultDecorator(false) fullWidth!: boolean;\n @argOrDefaultDecorator(false) disableFocusTrap!: boolean;\n\n //State\n @tracked panel: HTMLElement | null = null;\n @tracked input: HTMLElement | null = null;\n @tracked inputWidth!: number;\n ///\n\n @action\n didInsertPanel(panel: HTMLElement | null): void {\n this.panel = panel;\n this.setPanelWidth();\n }\n\n @action\n didInsertInput(input: HTMLElement): void {\n this.input = input;\n this.onResize();\n }\n\n @action\n setPanelWidth(width?: number): void {\n const { panel, inputWidth } = this;\n const newWidth = width || inputWidth;\n\n if (panel && !!newWidth) {\n panel.style.width = `${newWidth}px`;\n this.args.onPanelResize?.(newWidth);\n }\n }\n\n @action\n onResize(): void {\n const { input } = this;\n\n if (input) {\n const width = input.getBoundingClientRect().width;\n\n this.inputWidth = width;\n this.setPanelWidth(width);\n }\n }\n\n @action\n onKeyDown(event: KeyboardEvent): void {\n const { panel } = this;\n\n if (panel && event.key === cascadingMenuKeys.TAB) {\n const tabbableItems = tabbable(panel).filter(\n (el: HTMLElement | SVGElement) => {\n return (\n Array.from(el.attributes)\n .map((el) => el.name)\n .indexOf('data-focus-guard') < 0\n );\n }\n );\n\n if (\n this.args.disableFocusTrap ||\n (tabbableItems.length &&\n tabbableItems[tabbableItems.length - 1] === document.activeElement)\n ) {\n this.args.closePopover?.();\n }\n }\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n this.panel = null;\n this.input = null;\n }\n\n <template>\n {{#let (randomId) as |id|}}\n <EuiPopover\n class=\"euiInputPopover\n {{if this.fullWidth 'euiInputPopover--fullWidth'}}\"\n @ownFocus={{false}}\n @buttonRef={{this.didInsertInput}}\n @panelRef={{this.didInsertPanel}}\n @anchorPosition={{this.anchorPosition}}\n @panelPaddingSize={{this.panelPaddingSize}}\n @attachToAnchor={{this.attachToAnchor}}\n @display={{this.display}}\n @closePopover={{@closePopover}}\n @isOpen={{@isOpen}}\n ...attributes\n >\n <:button>\n <div {{resizeObserver onResize=this.onResize}}>\n {{yield to=\"input\"}}\n </div>\n </:button>\n <:content>\n <div\n id={{id}}\n {{onKey \"_all\" this.onKeyDown}}\n {{focusTrap\n isActive=(not this.disableFocusTrap)\n focusTrapOptions=(hash\n clickOutsideDeactivates=true\n returnFocusOnDeactivate=false\n fallbackFocus=(concat \"#\" id)\n )\n }}\n >\n {{yield to=\"content\"}}\n </div>\n </:content>\n </EuiPopover>\n {{/let}}\n </template>\n}\n"],"names":["EuiInputPopoverComponent","Component","g","prototype","argOrDefaultDecorator","i","void 0","tracked","didInsertPanel","panel","setPanelWidth","n","action","didInsertInput","input","onResize","width","inputWidth","newWidth","style","args","onPanelResize","getBoundingClientRect","onKeyDown","event","key","cascadingMenuKeys","TAB","tabbableItems","tabbable","filter","el","Array","from","attributes","map","name","indexOf","disableFocusTrap","length","document","activeElement","closePopover","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","randomId","EuiPopover","resizeObserver","onKey","focusTrap","not","hash","concat"],"mappings":"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"}
@@ -7,6 +7,7 @@ import MarkdownLogo from './eui-markdown-editor-footer/icons/markdown-logo.js';
7
7
  import EuiButtonEmpty from './eui-button-empty.js';
8
8
  import EuiButtonIcon from './eui-button-icon.js';
9
9
  import EuiHorizontalRule from './eui-horizontal-rule.js';
10
+ import EuiI18nComponent from './eui-i18n.js';
10
11
  import EuiLoadingSpinner from './eui-loading-spinner.js';
11
12
  import EuiMarkdownEditorToolbarComponent from './eui-markdown-format.js';
12
13
  import EuiModal from './eui-modal.js';
@@ -14,12 +15,19 @@ import EuiModalBody from './eui-modal-body.js';
14
15
  import EuiModalHeader from './eui-modal-header.js';
15
16
  import EuiPopoverComponent from './eui-popover.js';
16
17
  import EuiSpacer from './eui-spacer.js';
17
- import EuiTextComponent from './eui-text.js';
18
+ import './eui-text.js';
18
19
  import EuiTitle from './eui-title.js';
19
20
  import { precompileTemplate } from '@ember/template-compilation';
20
21
  import { setComponentTemplate } from '@ember/component';
21
22
  import { g, i } from 'decorator-transforms/runtime';
22
23
 
24
+ const defaultMarkdownSyntaxHelp = `
25
+ The editor uses
26
+
27
+ [Github flavored markdown](https://github.github.com/gfm/).
28
+
29
+ You can also utilize these additional syntax plugins to add rich content to your text.
30
+ `;
23
31
  class EuiMarkdownEditorFooterComponent extends Component {
24
32
  static {
25
33
  g(this.prototype, "isPopoverOpen", [tracked], function () {
@@ -34,7 +42,7 @@ class EuiMarkdownEditorFooterComponent extends Component {
34
42
  }
35
43
  #isShowingHelp = (i(this, "isShowingHelp"), void 0);
36
44
  static {
37
- setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{!-- pending implementation--}}\n <EuiButtonIcon @iconType={{component EuiLoadingSpinner}} @useComponent={{true}} {{!-- aria-label={ariaLabels.uploadingFiles} --}} />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover @isOpen={{this.isPopoverOpen}} @closePopover={{set this \"isPopoverOpen\" false}}>\n <:button>\n <EuiButtonEmpty @iconType=\"error\" @size=\"s\" @color=\"danger\" {{!-- aria-label={ariaLabels.showSyntaxErrors} --}} {{on \"click\" (set this \"isPopoverOpen\" (not this.isPopoverOpen))}}>\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon class=\"euiMarkdownEditorFooter__help\" @iconType={{component MarkdownLogo}} @useComponent={{true}} @color=\"text\" @useSvg={{true}} {{!-- aria-label={ariaLabels.showMarkdownHelp} --}} {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}} />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n Syntax Help\n {{!-- <EuiI18n\n token=\"euiMarkdownEditorFooter.syntaxTitle\"\n default=\"Syntax help\"\n /> --}}\n </h3>\n </EuiTitle>\n </EuiModalHeader>\n <EuiModalBody>\n\n <EuiText>\n <p>The editor uses</p>\n <a href=\"https://github.github.com/gfm/\" target=\"_blank\" rel=\"noreferrer noopener\">\n Github flavored markdown\n </a>\n <p>You can also utilize these additional syntax plugins to add\n rich content to yoru text.</p>\n </EuiText>\n <EuiHorizontalRule />\n {{#each @uiPlugins as |uiPlugin|}}\n {{#if uiPlugin.helpText}}\n <EuiTitle size=\"xxs\">\n <p>\n <strong>{{uiPlugin.name}}</strong>\n </p>\n </EuiTitle>\n <EuiSpacer size=\"s\" />\n <EuiMarkdownFormat @value={{uiPlugin.helpText}} />\n <EuiSpacer size=\"l\" />\n\n {{/if}}\n {{/each}}\n </EuiModalBody>\n </EuiModal>\n\n {{/if}}\n </div>\n ", {
45
+ setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{!-- pending implementation--}}\n <EuiButtonIcon @iconType={{component EuiLoadingSpinner}} @useComponent={{true}} {{!-- aria-label={ariaLabels.uploadingFiles} --}} />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover @isOpen={{this.isPopoverOpen}} @closePopover={{set this \"isPopoverOpen\" false}}>\n <:button>\n <EuiButtonEmpty @iconType=\"error\" @size=\"s\" @color=\"danger\" {{!-- aria-label={ariaLabels.showSyntaxErrors} --}} {{on \"click\" (set this \"isPopoverOpen\" (not this.isPopoverOpen))}}>\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon class=\"euiMarkdownEditorFooter__help\" @iconType={{component MarkdownLogo}} @useComponent={{true}} @color=\"text\" @useSvg={{true}} {{!-- aria-label={ariaLabels.showMarkdownHelp} --}} {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}} />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n <EuiI18n @token=\"euiMarkdownEditorFooter.syntaxTitle\" @default=\"Syntax Help\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </h3>\n </EuiTitle>\n </EuiModalHeader>\n <EuiModalBody>\n\n <EuiI18n @token=\"euiMarkdownEditorFooter.syntaxHelp\" @default={{defaultMarkdownSyntaxHelp}} as |Token|>\n <Token as |value|>\n <EuiMarkdownFormat @value={{value}} />\n </Token>\n </EuiI18n>\n\n <EuiHorizontalRule />\n {{#each @uiPlugins as |uiPlugin|}}\n {{#if uiPlugin.helpText}}\n <EuiTitle size=\"xxs\">\n <p>\n <strong>{{uiPlugin.name}}</strong>\n </p>\n </EuiTitle>\n <EuiSpacer size=\"s\" />\n <EuiMarkdownFormat @value={{uiPlugin.helpText}} />\n <EuiSpacer size=\"l\" />\n\n {{/if}}\n {{/each}}\n </EuiModalBody>\n </EuiModal>\n\n {{/if}}\n </div>\n ", {
38
46
  strictMode: true,
39
47
  scope: () => ({
40
48
  EuiButtonIcon,
@@ -49,11 +57,12 @@ class EuiMarkdownEditorFooterComponent extends Component {
49
57
  EuiModal,
50
58
  EuiModalHeader,
51
59
  EuiTitle,
60
+ EuiI18n: EuiI18nComponent,
52
61
  EuiModalBody,
53
- EuiText: EuiTextComponent,
62
+ defaultMarkdownSyntaxHelp,
63
+ EuiMarkdownFormat: EuiMarkdownEditorToolbarComponent,
54
64
  EuiHorizontalRule,
55
- EuiSpacer,
56
- EuiMarkdownFormat: EuiMarkdownEditorToolbarComponent
65
+ EuiSpacer
57
66
  })
58
67
  }), this);
59
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-markdown-editor-footer.js","sources":["../../src/components/eui-markdown-editor-footer.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\nimport { and, not } from 'ember-truth-helpers';\n\nimport MarkdownLogo from '../components/eui-markdown-editor-footer/icons/markdown-logo.gts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiHorizontalRule from './eui-horizontal-rule.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\nimport EuiModalBody from './eui-modal-body.gts';\nimport EuiModalHeader from './eui-modal-header.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nexport interface EuiMarkdownEditorFooterSignature {\n Args: {\n isUploadingFiles?: boolean;\n errors?: string[];\n uiPlugins?: any[];\n };\n}\n\nexport default class EuiMarkdownEditorFooterComponent extends Component<EuiMarkdownEditorFooterSignature> {\n @tracked isPopoverOpen = false;\n @tracked isShowingHelp = false;\n\n <template>\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{! pending implementation}}\n <EuiButtonIcon\n @iconType={{component EuiLoadingSpinner}}\n @useComponent={{true}}\n {{! aria-label={ariaLabels.uploadingFiles} }}\n />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{set this \"isPopoverOpen\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @iconType=\"error\"\n @size=\"s\"\n @color=\"danger\"\n {{! aria-label={ariaLabels.showSyntaxErrors} }}\n {{on\n \"click\"\n (set this \"isPopoverOpen\" (not this.isPopoverOpen))\n }}\n >\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon\n class=\"euiMarkdownEditorFooter__help\"\n @iconType={{component MarkdownLogo}}\n @useComponent={{true}}\n @color=\"text\"\n @useSvg={{true}}\n {{! aria-label={ariaLabels.showMarkdownHelp} }}\n {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}}\n />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n Syntax Help\n {{! <EuiI18n\n token=\"euiMarkdownEditorFooter.syntaxTitle\"\n default=\"Syntax help\"\n /> }}\n </h3>\n </EuiTitle>\n </EuiModalHeader>\n <EuiModalBody>\n\n <EuiText>\n <p>The editor uses</p>\n <a\n href=\"https://github.github.com/gfm/\"\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n >\n Github flavored markdown\n </a>\n <p>You can also utilize these additional syntax plugins to add\n rich content to yoru text.</p>\n </EuiText>\n <EuiHorizontalRule />\n {{#each @uiPlugins as |uiPlugin|}}\n {{#if uiPlugin.helpText}}\n <EuiTitle size=\"xxs\">\n <p>\n <strong>{{uiPlugin.name}}</strong>\n </p>\n </EuiTitle>\n <EuiSpacer size=\"s\" />\n <EuiMarkdownFormat @value={{uiPlugin.helpText}} />\n <EuiSpacer size=\"l\" />\n\n {{/if}}\n {{/each}}\n </EuiModalBody>\n </EuiModal>\n\n {{/if}}\n </div>\n </template>\n}\n"],"names":["EuiMarkdownEditorFooterComponent","Component","g","prototype","tracked","i","void 0","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonIcon","EuiLoadingSpinner","and","EuiPopover","set","EuiButtonEmpty","on","not","MarkdownLogo","EuiModal","EuiModalHeader","EuiTitle","EuiModalBody","EuiText","EuiHorizontalRule","EuiSpacer","EuiMarkdownFormat"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6Be,MAAMA,yCAAyCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACrEC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC9BC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAE/B,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA2FA,khFAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,aAAA;QAAAC,iBAAA;QAAAC,GAAA;oBAAAC,mBAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,cAAA;QAAAC,QAAA;QAAAC,YAAA;iBAAAC,gBAAA;QAAAC,iBAAA;QAAAC,SAAA;AAAAC,2BAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-markdown-editor-footer.js","sources":["../../src/components/eui-markdown-editor-footer.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n\nimport set from 'ember-set-helper/helpers/set';\nimport { and, not } from 'ember-truth-helpers';\n\nimport MarkdownLogo from '../components/eui-markdown-editor-footer/icons/markdown-logo.gts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiHorizontalRule from './eui-horizontal-rule.gts';\nimport EuiI18n from './eui-i18n.gts';\nimport EuiLoadingSpinner from './eui-loading-spinner.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\nimport EuiModalBody from './eui-modal-body.gts';\nimport EuiModalHeader from './eui-modal-header.gts';\nimport EuiPopover from './eui-popover.gts';\nimport EuiSpacer from './eui-spacer.gts';\nimport EuiText from './eui-text.gts';\nimport EuiTitle from './eui-title.gts';\n\nexport interface EuiMarkdownEditorFooterSignature {\n Args: {\n isUploadingFiles?: boolean;\n errors?: string[];\n uiPlugins?: any[];\n };\n}\n\nconst defaultMarkdownSyntaxHelp = `\nThe editor uses \n\n[Github flavored markdown](https://github.github.com/gfm/).\n\nYou can also utilize these additional syntax plugins to add rich content to your text.\n`;\n\nexport default class EuiMarkdownEditorFooterComponent extends Component<EuiMarkdownEditorFooterSignature> {\n @tracked isPopoverOpen = false;\n @tracked isShowingHelp = false;\n\n <template>\n <div class=\"euiMarkdownEditorFooter\">\n <div class=\"euiMarkdownEditorFooter__actions\">\n\n {{#if @isUploadingFiles}}\n {{! pending implementation}}\n <EuiButtonIcon\n @iconType={{component EuiLoadingSpinner}}\n @useComponent={{true}}\n {{! aria-label={ariaLabels.uploadingFiles} }}\n />\n {{/if}}\n {{#if (and @errors @errors.length)}}\n <EuiPopover\n @isOpen={{this.isPopoverOpen}}\n @closePopover={{set this \"isPopoverOpen\" false}}\n >\n <:button>\n <EuiButtonEmpty\n @iconType=\"error\"\n @size=\"s\"\n @color=\"danger\"\n {{! aria-label={ariaLabels.showSyntaxErrors} }}\n {{on\n \"click\"\n (set this \"isPopoverOpen\" (not this.isPopoverOpen))\n }}\n >\n {{@errors.length}}\n </EuiButtonEmpty>\n </:button>\n </EuiPopover>\n {{/if}}\n </div>\n <EuiButtonIcon\n class=\"euiMarkdownEditorFooter__help\"\n @iconType={{component MarkdownLogo}}\n @useComponent={{true}}\n @color=\"text\"\n @useSvg={{true}}\n {{! aria-label={ariaLabels.showMarkdownHelp} }}\n {{on \"click\" (set this \"isShowingHelp\" (not this.isShowingHelp))}}\n />\n\n {{#if this.isShowingHelp}}\n\n <EuiModal @onClose={{set this \"isShowingHelp\" false}}>\n <EuiModalHeader>\n <EuiTitle>\n <h3>\n <EuiI18n\n @token=\"euiMarkdownEditorFooter.syntaxTitle\"\n @default=\"Syntax Help\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </h3>\n </EuiTitle>\n </EuiModalHeader>\n <EuiModalBody>\n\n <EuiI18n\n @token=\"euiMarkdownEditorFooter.syntaxHelp\"\n @default={{defaultMarkdownSyntaxHelp}}\n as |Token|\n >\n <Token as |value|>\n <EuiMarkdownFormat @value={{value}} />\n </Token>\n </EuiI18n>\n\n <EuiHorizontalRule />\n {{#each @uiPlugins as |uiPlugin|}}\n {{#if uiPlugin.helpText}}\n <EuiTitle size=\"xxs\">\n <p>\n <strong>{{uiPlugin.name}}</strong>\n </p>\n </EuiTitle>\n <EuiSpacer size=\"s\" />\n <EuiMarkdownFormat @value={{uiPlugin.helpText}} />\n <EuiSpacer size=\"l\" />\n\n {{/if}}\n {{/each}}\n </EuiModalBody>\n </EuiModal>\n\n {{/if}}\n </div>\n </template>\n}\n"],"names":["defaultMarkdownSyntaxHelp","EuiMarkdownEditorFooterComponent","Component","g","prototype","tracked","i","void 0","setComponentTemplate","precompileTemplate","strictMode","scope","EuiButtonIcon","EuiLoadingSpinner","and","EuiPopover","set","EuiButtonEmpty","on","not","MarkdownLogo","EuiModal","EuiModalHeader","EuiTitle","EuiI18n","EuiModalBody","EuiMarkdownFormat","EuiHorizontalRule","EuiSpacer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,4BAA4B;;;;;;AAMlC,CAAC;AAEc,MAAMC,yCAAyCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CACrEC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC9BC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwB,KAAM;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAAC,MAAA;AAE/B,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA6FA,08EAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,aAAA;QAAAC,iBAAA;QAAAC,GAAA;oBAAAC,mBAAA;QAAAC,GAAA;QAAAC,cAAA;QAAAC,EAAA;QAAAC,GAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAC,cAAA;QAAAC,QAAA;iBAAAC,gBAAA;QAAAC,YAAA;QAAAzB,yBAAA;2BAAA0B,iCAAA;QAAAC,iBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -8,6 +8,7 @@ import { eq, and, gte } from 'ember-truth-helpers';
8
8
  import { MODE_VIEWING } from '../utils/markdown/markdown-modes.js';
9
9
  import EuiButtonEmpty from './eui-button-empty.js';
10
10
  import EuiButtonIcon from './eui-button-icon.js';
11
+ import EuiI18nComponent from './eui-i18n.js';
11
12
  import MarkdownCheckmark from './eui-markdown-editor-toolbar/icons/markdown-checkmark.js';
12
13
  import EuiToolTip from './eui-tool-tip.js';
13
14
  import { precompileTemplate } from '@ember/template-compilation';
@@ -84,7 +85,7 @@ class EuiMarkdownEditorToolbarComponent extends Component {
84
85
  return item.iconType.component;
85
86
  }
86
87
  static {
87
- setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{this.itemComponent item}} {{!--@glint-expect-error--}} @useComponent={{if item.iconType.component true}} aria-label={{item.label}} @useSvg={{item.useSvg}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let (and @selectedNode (eq @selectedNode.type plugin.name)) as |isSelectedNodeType|}}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{style (if isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\"))}} {{on \"click\" (fn this.handleMdButtonClick plugin.name)}} @iconType={{plugin.button.iconType}} aria-label={{plugin.button.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty @iconType=\"editorCodeBlock\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n Editor\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty @iconType=\"eye\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n Preview\n </EuiButtonEmpty>\n {{/if}}\n </div>\n ", {
88
+ setComponentTemplate(precompileTemplate("\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{this.itemComponent item}} {{!--@glint-expect-error--}} @useComponent={{if item.iconType.component true}} aria-label={{item.label}} @useSvg={{item.useSvg}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{on \"click\" (fn this.handleMdButtonClick item.id)}} @iconType={{item.iconType}} aria-label={{item.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let (and @selectedNode (eq @selectedNode.type plugin.name)) as |isSelectedNodeType|}}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon @color=\"text\" {{style (if isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\"))}} {{on \"click\" (fn this.handleMdButtonClick plugin.name)}} @iconType={{plugin.button.iconType}} aria-label={{plugin.button.label}} @isDisabled={{this.isPreviewing}} />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty @iconType=\"editorCodeBlock\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n\n <EuiI18n @token=\"euiMarkdownEditorToolbar.editor\" @default=\"Editor\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty @iconType=\"eye\" @color=\"text\" @size=\"s\" {{on \"click\" @onClickPreview}}>\n <EuiI18n @token=\"euiMarkdownEditorToolbar.preview\" @default=\"Preview\" as |Token|>\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n {{/if}}\n </div>\n ", {
88
89
  strictMode: true,
89
90
  scope: () => ({
90
91
  EuiToolTip,
@@ -96,7 +97,8 @@ class EuiMarkdownEditorToolbarComponent extends Component {
96
97
  eq,
97
98
  style,
98
99
  hash,
99
- EuiButtonEmpty
100
+ EuiButtonEmpty,
101
+ EuiI18n: EuiI18nComponent
100
102
  })
101
103
  }), this);
102
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eui-markdown-editor-toolbar.js","sources":["../../src/components/eui-markdown-editor-toolbar.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\n\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, gte, or } from 'ember-truth-helpers';\n\nimport { MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport MarkdownCheckmark from './eui-markdown-editor-toolbar/icons/markdown-checkmark.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type MarkdownActions from '../utils/markdown/markdown-actions';\nimport type { EuiMarkdownEditorUiPlugin } from '../utils/markdown/markdown-types';\n\nexport interface EuiMarkdownEditorToolbarArgs {\n viewMode?: string;\n markdownActions: MarkdownActions;\n uiPlugins: any[];\n openPluginEditor?: (plugin: EuiMarkdownEditorUiPlugin) => void;\n onClickPreview: () => void;\n selectedNode: any;\n}\n\nexport interface EuiMarkdownEditorToolbarSignature {\n Element: HTMLDivElement;\n Args: EuiMarkdownEditorToolbarArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport interface EuiMarkdownEditorToolbarItem {\n id: string;\n label: string;\n name: string;\n iconType:\n | string\n | {\n component: any;\n };\n useSvg?: boolean;\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownEditorToolbarSignature> {\n boldItalicsButtons = [\n {\n id: 'mdBold',\n label: 'Bold',\n name: 'bold',\n iconType: 'editorBold'\n },\n {\n id: 'mdItalic',\n label: 'Italic',\n name: 'italic',\n iconType: 'editorItalic'\n }\n ];\n\n @cached\n get listButtons() {\n return [\n {\n id: 'mdUl',\n label: 'Unordered list',\n name: 'ul',\n iconType: 'editorUnorderedList'\n },\n {\n id: 'mdOl',\n label: 'Ordered list',\n name: 'ol',\n iconType: 'editorOrderedList'\n },\n {\n id: 'mdTl',\n label: 'Task list',\n name: 'tl',\n useSvg: true,\n iconType: {\n component: MarkdownCheckmark\n }\n }\n ];\n }\n\n quoteCodeLinkButtons = [\n {\n id: 'mdQuote',\n label: 'Quote',\n name: 'quote',\n iconType: 'quote'\n },\n {\n id: 'mdCode',\n label: 'Code',\n name: 'code',\n iconType: 'editorCodeBlock'\n },\n {\n id: 'mdLink',\n label: 'Link',\n name: 'link',\n iconType: 'editorLink'\n }\n ];\n\n get uiPlugins() {\n return this.args.uiPlugins || [];\n }\n\n get isPreviewing() {\n return this.args.viewMode === MODE_VIEWING;\n }\n\n @action\n handleMdButtonClick(mdButtonId: string) {\n const actionResult = this.args.markdownActions.do(mdButtonId);\n\n if (actionResult !== true) this.args.openPluginEditor?.(actionResult!);\n }\n\n itemComponent(item: EuiMarkdownEditorToolbarItem) {\n if (typeof item.iconType === 'string') return item.iconType;\n\n return item.iconType.component;\n }\n\n <template>\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{this.itemComponent item}}\n {{!@glint-expect-error}}\n @useComponent={{if item.iconType.component true}}\n aria-label={{item.label}}\n @useSvg={{item.useSvg}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let\n (and @selectedNode (eq @selectedNode.type plugin.name))\n as |isSelectedNodeType|\n }}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{style\n (if\n isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\")\n )\n }}\n {{on \"click\" (fn this.handleMdButtonClick plugin.name)}}\n @iconType={{plugin.button.iconType}}\n aria-label={{plugin.button.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty\n @iconType=\"editorCodeBlock\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n Editor\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty\n @iconType=\"eye\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n Preview\n </EuiButtonEmpty>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","boldItalicsButtons","id","label","name","iconType","listButtons","useSvg","component","MarkdownCheckmark","n","prototype","cached","quoteCodeLinkButtons","uiPlugins","args","isPreviewing","viewMode","MODE_VIEWING","handleMdButtonClick","mdButtonId","actionResult","markdownActions","do","openPluginEditor","action","itemComponent","item","setComponentTemplate","precompileTemplate","strictMode","scope","EuiToolTip","EuiButtonIcon","on","fn","gte","and","eq","style","hash","EuiButtonEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"eui-markdown-editor-toolbar.js","sources":["../../src/components/eui-markdown-editor-toolbar.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\n\nimport style from 'ember-style-modifier/modifiers/style';\nimport { and, eq, gte, or } from 'ember-truth-helpers';\n\nimport { MODE_VIEWING } from '../utils/markdown/markdown-modes.ts';\nimport EuiButtonEmpty from './eui-button-empty.gts';\nimport EuiButtonIcon from './eui-button-icon.gts';\nimport EuiI18n from './eui-i18n.gts';\nimport MarkdownCheckmark from './eui-markdown-editor-toolbar/icons/markdown-checkmark.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type MarkdownActions from '../utils/markdown/markdown-actions';\nimport type { EuiMarkdownEditorUiPlugin } from '../utils/markdown/markdown-types';\n\nexport interface EuiMarkdownEditorToolbarArgs {\n viewMode?: string;\n markdownActions: MarkdownActions;\n uiPlugins: any[];\n openPluginEditor?: (plugin: EuiMarkdownEditorUiPlugin) => void;\n onClickPreview: () => void;\n selectedNode: any;\n}\n\nexport interface EuiMarkdownEditorToolbarSignature {\n Element: HTMLDivElement;\n Args: EuiMarkdownEditorToolbarArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport interface EuiMarkdownEditorToolbarItem {\n id: string;\n label: string;\n name: string;\n iconType:\n | string\n | {\n component: any;\n };\n useSvg?: boolean;\n}\n\nexport default class EuiMarkdownEditorToolbarComponent extends Component<EuiMarkdownEditorToolbarSignature> {\n boldItalicsButtons = [\n {\n id: 'mdBold',\n label: 'Bold',\n name: 'bold',\n iconType: 'editorBold'\n },\n {\n id: 'mdItalic',\n label: 'Italic',\n name: 'italic',\n iconType: 'editorItalic'\n }\n ];\n\n @cached\n get listButtons() {\n return [\n {\n id: 'mdUl',\n label: 'Unordered list',\n name: 'ul',\n iconType: 'editorUnorderedList'\n },\n {\n id: 'mdOl',\n label: 'Ordered list',\n name: 'ol',\n iconType: 'editorOrderedList'\n },\n {\n id: 'mdTl',\n label: 'Task list',\n name: 'tl',\n useSvg: true,\n iconType: {\n component: MarkdownCheckmark\n }\n }\n ];\n }\n\n quoteCodeLinkButtons = [\n {\n id: 'mdQuote',\n label: 'Quote',\n name: 'quote',\n iconType: 'quote'\n },\n {\n id: 'mdCode',\n label: 'Code',\n name: 'code',\n iconType: 'editorCodeBlock'\n },\n {\n id: 'mdLink',\n label: 'Link',\n name: 'link',\n iconType: 'editorLink'\n }\n ];\n\n get uiPlugins() {\n return this.args.uiPlugins || [];\n }\n\n get isPreviewing() {\n return this.args.viewMode === MODE_VIEWING;\n }\n\n @action\n handleMdButtonClick(mdButtonId: string) {\n const actionResult = this.args.markdownActions.do(mdButtonId);\n\n if (actionResult !== true) this.args.openPluginEditor?.(actionResult!);\n }\n\n itemComponent(item: EuiMarkdownEditorToolbarItem) {\n if (typeof item.iconType === 'string') return item.iconType;\n\n return item.iconType.component;\n }\n\n <template>\n <div class=\"euiMarkdownEditorToolbar\" ...attributes>\n <div class=\"euiMarkdownEditorToolbar__buttons\">\n {{#each this.boldItalicsButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.listButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{this.itemComponent item}}\n {{!@glint-expect-error}}\n @useComponent={{if item.iconType.component true}}\n aria-label={{item.label}}\n @useSvg={{item.useSvg}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.quoteCodeLinkButtons as |item|}}\n <EuiToolTip @content={{item.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{on \"click\" (fn this.handleMdButtonClick item.id)}}\n @iconType={{item.iconType}}\n aria-label={{item.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n\n {{/each}}\n {{#if (gte this.uiPlugins.length 0)}}\n <span class=\"euiMarkdownEditorToolbar__divider\"></span>\n {{#each this.uiPlugins as |plugin|}}\n {{#let\n (and @selectedNode (eq @selectedNode.type plugin.name))\n as |isSelectedNodeType|\n }}\n <EuiToolTip @content={{plugin.button.label}} @delay=\"long\">\n <EuiButtonIcon\n @color=\"text\"\n {{style\n (if\n isSelectedNodeType (hash background=\"rgba(0, 0, 0, 0.15)\")\n )\n }}\n {{on \"click\" (fn this.handleMdButtonClick plugin.name)}}\n @iconType={{plugin.button.iconType}}\n aria-label={{plugin.button.label}}\n @isDisabled={{this.isPreviewing}}\n />\n </EuiToolTip>\n {{/let}}\n {{/each}}\n {{/if}}\n </div>\n\n {{#if this.isPreviewing}}\n <EuiButtonEmpty\n @iconType=\"editorCodeBlock\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n\n <EuiI18n\n @token=\"euiMarkdownEditorToolbar.editor\"\n @default=\"Editor\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n\n {{else}}\n <EuiButtonEmpty\n @iconType=\"eye\"\n @color=\"text\"\n @size=\"s\"\n {{on \"click\" @onClickPreview}}\n >\n <EuiI18n\n @token=\"euiMarkdownEditorToolbar.preview\"\n @default=\"Preview\"\n as |Token|\n >\n <Token as |value|>\n {{value}}\n </Token>\n </EuiI18n>\n </EuiButtonEmpty>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["EuiMarkdownEditorToolbarComponent","Component","boldItalicsButtons","id","label","name","iconType","listButtons","useSvg","component","MarkdownCheckmark","n","prototype","cached","quoteCodeLinkButtons","uiPlugins","args","isPreviewing","viewMode","MODE_VIEWING","handleMdButtonClick","mdButtonId","actionResult","markdownActions","do","openPluginEditor","action","itemComponent","item","setComponentTemplate","precompileTemplate","strictMode","scope","EuiToolTip","EuiButtonIcon","on","fn","gte","and","eq","style","hash","EuiButtonEmpty","EuiI18n"],"mappings":"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"}
@@ -346,6 +346,12 @@ class EuiMarkdownEditorComponent extends Component {
346
346
  });
347
347
  this.pluginEditorPlugin = undefined;
348
348
  };
349
+ willDestroy() {
350
+ super.willDestroy();
351
+ this.textareaRef = null;
352
+ this.previewRef = null;
353
+ this.editorToolbarRef = null;
354
+ }
349
355
  static {
350
356
  setComponentTemplate(precompileTemplate("\n <div class={{classNames \"euiMarkdownEditor\" (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\") (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")}} {{didUpdate this.updateCurrentHeight this.currentHeight this.isPreviewing this.height this.autoExpandPreview}}>\n <EuiMarkdownEditorToolbar @selectedNode={{this.selectedNode}} @markdownActions={{this.markdownActions}} @onClickPreview={{this.setViewMode}} @openPluginEditor={{this.openPluginEditor}} @viewMode={{this.viewMode}} @uiPlugins={{this.toolbarPlugins}} {{didInsert this.setEditorToolbarRef}} />\n {{#if this.isPreviewing}}\n <div class=\"euiMarkdownEditorPreview\" {{didInsert (set this \"previewRef\")}} {{style (hash height=this.previewHeight)}}>\n <EuiMarkdownFormat @parsingPluginList={{this.parsingPluginList}} @processingPluginList={{this.processingPluginList}} @value={{@value}} @replaceNode={{this.replaceNode}} @rootClasses={{@formatRootClasses}} @textSize={{@formatTextSize}} @shouldIncludeDefaultRootClasses={{@formatShouldIncludeDefaultRootClasses}} />\n </div>\n {{/if}}\n\n <div class=\"euiMarkdownEditor__toggleContainer\" {{style height=this.editorToggleContainerHeight}}>\n <EuiMarkdownEditorDropZone @uiPlugins={{this.toolbarPlugins}} {{resizeObserver onResize=this.onResize}}>\n <EuiMarkdownEditorTextArea {{getCursorNodeModifier this.vFile this.setSelectedNode}} {{didUpdate this.onParse this.parsed}} {{didInsert this.setTextAreaRef}} disabled={{@disabled}} id={{this.editorId}} @height={{this.textAreaHeight}} @maxHeight={{this.textAreaMaxHeight}} value={{@value}} aria-label={{@ariaLabel}} aria-labelledby={{@ariaLabelledBy}} aria-describedby={{@ariaDescribedBy}} {{on \"input\" (pick \"target.value\" @onChange)}} {{validatableControl @isInvalid}} ...attributes />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor @node={{this.selectedNode}} @onCancel={{set this \"pluginEditorPlugin\" undefined}} @onSave={{this.onEditorPluginSave}} />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n ", {
351
357
  strictMode: true,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from '@nullvoxpopuli/ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport {\n MODE_EDITING,\n MODE_VIEWING\n} from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { EuiMarkdownFormatSignature } from './eui-markdown-format.gts';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n formatRootClasses?: EuiMarkdownFormatSignature['Args']['rootClasses'];\n formatTextSize?: EuiMarkdownFormatSignature['Args']['textSize'];\n formatShouldIncludeDefaultRootClasses?: EuiMarkdownFormatSignature['Args']['shouldIncludeDefaultRootClasses'];\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins)\n declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins)\n declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n @rootClasses={{@formatRootClasses}}\n @textSize={{@formatTextSize}}\n @shouldIncludeDefaultRootClasses={{@formatShouldIncludeDefaultRootClasses}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":"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"}
1
+ {"version":3,"file":"eui-markdown-editor.js","sources":["../../src/components/eui-markdown-editor.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\nimport { scheduleOnce } from '@ember/runloop';\nimport type Owner from '@ember/owner';\n\nimport pick from '@nullvoxpopuli/ember-composable-helpers/helpers/pick';\nimport { modifier } from 'ember-modifier';\nimport set from 'ember-set-helper/helpers/set';\nimport style from 'ember-style-modifier/modifiers/style';\nimport { eq } from 'ember-truth-helpers';\nimport unified from 'unified';\n\nimport { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport resizeObserver from '../modifiers/resize-observer.ts';\nimport validatableControl from '../modifiers/validatable-control.ts';\nimport MarkdownActions, {\n insertText\n} from '../utils/markdown/markdown-actions.ts';\nimport {\n MODE_EDITING,\n MODE_VIEWING\n} from '../utils/markdown/markdown-modes.ts';\nimport {\n defaultParsingPlugins,\n defaultProcessingPlugins\n} from '../utils/markdown/plugins/markdown-default-plugins/index.ts';\nimport * as MarkdownTooltipPlugin from '../utils/markdown/plugins/markdown-tooltip/index.ts';\nimport EuiMarkdownEditorDropZone from './eui-markdown-editor-drop-zone.gts';\nimport EuiMarkdownEditorTextArea from './eui-markdown-editor-text-area.gts';\nimport EuiMarkdownEditorToolbar from './eui-markdown-editor-toolbar.gts';\nimport EuiMarkdownFormat from './eui-markdown-format.gts';\nimport EuiModal from './eui-modal.gts';\n\nimport type {\n EuiMarkdownAstNode,\n EuiMarkdownAstNodePosition,\n EuiMarkdownEditorUiPlugin\n} from '../utils/markdown/markdown-types';\nimport type { EuiMarkdownEditorTextAreaSignature } from './eui-markdown-editor-text-area';\nimport type { EuiMarkdownEditorToolbarSignature } from './eui-markdown-editor-toolbar';\nimport type { EuiMarkdownFormatSignature } from './eui-markdown-format.gts';\nimport type { Processor } from 'unified';\n\nexport interface EuiMarkdownEditorArgs {\n initialViewMode?: string;\n editorId?: string;\n uiPlugins: EuiMarkdownEditorUiPlugin[];\n parsingPluginList?: typeof defaultParsingPlugins;\n processingPluginList?: typeof defaultProcessingPlugins;\n value: string;\n onChange: (str: string) => void;\n onParse?: (\n parseError: unknown | null,\n parsed: { messages: any[]; ast: any }\n ) => void;\n height?: number | string;\n maxHeight?: number | string;\n autoExpandPreview?: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n formatRootClasses?: EuiMarkdownFormatSignature['Args']['rootClasses'];\n formatTextSize?: EuiMarkdownFormatSignature['Args']['textSize'];\n formatShouldIncludeDefaultRootClasses?: EuiMarkdownFormatSignature['Args']['shouldIncludeDefaultRootClasses'];\n}\n\nexport interface EuiMarkdownEditorSignature {\n Element: EuiMarkdownEditorTextAreaSignature['Element'];\n Args: EuiMarkdownEditorArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport const getCursorNode = (\n textareaRef: HTMLTextAreaElement,\n parsed: any\n): EuiMarkdownAstNode => {\n const { selectionStart } = textareaRef;\n\n let node: EuiMarkdownAstNode = parsed.result ?? parsed.contents;\n\n //eslint-disable-next-line\n outer: while (true) {\n if (node.children) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n\n if (\n child &&\n child.position.start.offset < (selectionStart as number) &&\n (selectionStart as number) < child.position.end.offset\n ) {\n if (child.type === 'text') break outer; // don't dive into `text` nodes\n node = child;\n continue outer;\n }\n }\n }\n\n break;\n }\n\n return node;\n};\n\nfunction wrapper(\n textarea: HTMLTextAreaElement,\n parsed: any,\n callback: (node: EuiMarkdownAstNode) => void\n) {\n const node = getCursorNode(textarea, parsed);\n\n callback(node);\n}\n\nexport const getCursorNodeModifier = modifier(function getCursorNodeModifier(\n textarea: EuiMarkdownEditorTextAreaSignature['Element'],\n [parsed, onSelectedNode]: [any, (node: Node) => void]\n) {\n //@ts-expect-error\n const fn = wrapper.bind(null, textarea, parsed, onSelectedNode);\n\n textarea.addEventListener('keyup', fn);\n textarea.addEventListener('mouseup', fn);\n\n return () => {\n textarea.removeEventListener('keyup', fn);\n textarea.removeEventListener('mouseup', fn);\n };\n});\n\nfunction isNewLine(char: string | undefined): boolean {\n if (char == null) return true;\n\n return !!char.match(/[\\r\\n]/);\n}\n\nfunction padWithNewlinesIfNeeded(textarea: HTMLTextAreaElement, text: string) {\n const selectionStart = textarea.selectionStart;\n const selectionEnd = textarea.selectionEnd;\n\n // block parsing requires two leading new lines and none trailing, but we add an extra trailing line for readability\n const isPrevNewLine = isNewLine(textarea.value[selectionStart - 1]);\n const isPrevPrevNewLine = isNewLine(textarea.value[selectionStart - 2]);\n const isNextNewLine = isNewLine(textarea.value[selectionEnd]);\n\n // pad text with newlines as needed\n text = `${isPrevNewLine ? '' : '\\n'}${isPrevPrevNewLine ? '' : '\\n'}${text}${\n isNextNewLine ? '' : '\\n'\n }`;\n\n return text;\n}\n\nexport default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEditorSignature> {\n @tracked pluginEditorPlugin?: EuiMarkdownEditorUiPlugin;\n\n // Defaults\n @argOrDefaultDecorator(defaultParsingPlugins)\n declare parsingPluginList: typeof defaultParsingPlugins;\n\n @argOrDefaultDecorator(250) declare height: number | string;\n @argOrDefaultDecorator(500) declare maxHeight: number | string;\n @argOrDefaultDecorator(true) declare autoExpandPreview: boolean;\n\n @argOrDefaultDecorator(defaultProcessingPlugins)\n declare processingPluginList: typeof defaultProcessingPlugins;\n\n @tracked selectedNode: Node | null = null;\n @tracked editorId = this.args.editorId ?? guidFor({});\n @tracked viewMode = this.args.initialViewMode || MODE_EDITING;\n @tracked textareaRef: HTMLTextAreaElement | null = null;\n @tracked previewRef: HTMLDivElement | null = null;\n @tracked editorToolbarRef: HTMLDivElement | null = null;\n @tracked currentHeight: number | string = 250;\n @tracked editorFooterHeight: number = 0;\n @tracked editorToolbarHeight: number = 0;\n\n markdownActions: MarkdownActions;\n\n get toolbarPlugins() {\n return [MarkdownTooltipPlugin.plugin, ...(this.args.uiPlugins || [])];\n }\n\n constructor(owner: Owner, args: EuiMarkdownEditorArgs) {\n super(owner, args);\n this.markdownActions = new MarkdownActions(\n this.editorId,\n this.toolbarPlugins\n );\n this.currentHeight = this.height;\n }\n\n get previewHeight() {\n if (this.height === 'full') {\n return `calc(100% - ${this.editorFooterHeight}px)`;\n }\n\n return `${this.currentHeight}px`;\n }\n\n get textAreaHeight() {\n return this.height === 'full'\n ? '100%'\n : `calc(${(this.height as number) - this.editorFooterHeight}px)`;\n }\n\n get textAreaMaxHeight() {\n return this.height !== 'full'\n ? `${(this.maxHeight as number) - this.editorFooterHeight}px`\n : '';\n }\n\n get editorToggleContainerHeight() {\n return `calc(100% - ${this.editorToolbarHeight}px)`;\n }\n\n @action\n onResize() {\n if (this.textareaRef && this.isEditing && this.height !== 'full') {\n const resizedTextareaHeight =\n this.textareaRef.offsetHeight + this.editorFooterHeight;\n\n const update = () => {\n this.currentHeight = resizedTextareaHeight;\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n\n @action\n updateCurrentHeight() {\n let { isPreviewing, autoExpandPreview, height, previewRef, currentHeight } =\n this;\n\n if (isPreviewing && autoExpandPreview && height !== 'full' && previewRef) {\n //@ts-ignore\n if (previewRef.scrollHeight > currentHeight) {\n // scrollHeight does not include the border or margin\n // so we ask for the computed value for those,\n // which is always in pixels because getComputedValue\n // returns the resolved values\n const elementComputedStyle = window.getComputedStyle(previewRef);\n const borderWidth =\n parseFloat(elementComputedStyle.borderTopWidth) +\n parseFloat(elementComputedStyle.borderBottomWidth);\n const marginWidth =\n parseFloat(elementComputedStyle.marginTop) +\n parseFloat(elementComputedStyle.marginBottom);\n\n // then add an extra pixel for safety and because the scrollHeight value is rounded\n const extraHeight = borderWidth + marginWidth + 1;\n\n const update = () => {\n if (previewRef) {\n this.currentHeight = previewRef.scrollHeight + extraHeight;\n }\n };\n\n scheduleOnce('afterRender', this, update);\n }\n }\n }\n\n getCursorNode = () => {};\n\n @action\n setTextAreaRef(ref: HTMLTextAreaElement) {\n this.textareaRef = ref;\n }\n\n @action\n setEditorToolbarRef(ref: EuiMarkdownEditorToolbarSignature['Element']) {\n this.editorToolbarRef = ref;\n this.editorToolbarHeight = ref.offsetHeight;\n }\n\n @action\n replaceNode(position: EuiMarkdownAstNodePosition, next: string) {\n let value = this.args.value;\n const leading = value.substr(0, position.start.offset);\n const trailing = value.substr(position.end.offset);\n\n this.args.onChange?.(`${leading}${next}${trailing}`);\n }\n\n get isEditing() {\n return this.viewMode === MODE_EDITING;\n }\n\n get isPreviewing() {\n return this.viewMode === MODE_VIEWING;\n }\n\n @action\n setViewMode() {\n this.viewMode = this.isPreviewing ? MODE_EDITING : MODE_VIEWING;\n }\n\n @cached\n get parser() {\n const Compiler = (tree: any) => {\n return tree;\n };\n\n function identityCompiler(this: Processor) {\n //eslint-disable-next-line\n this.Compiler = Compiler;\n }\n\n return unified().use(this.parsingPluginList).use(identityCompiler);\n }\n\n @cached\n get parsed(): [\n ReturnType<typeof this.parser.processSync> | null,\n null | unknown\n ] {\n try {\n const parsed = this.parser.processSync(this.args.value);\n\n return [parsed, null];\n } catch (e) {\n return [null, e];\n }\n }\n\n get vFile() {\n return this.parsed[0];\n }\n\n @action\n onParse() {\n if (this.args.onParse) {\n const [parsed, parseError] = this.parsed;\n const onParse = this.args.onParse;\n const messages = parsed ? parsed.messages : [];\n const ast = parsed ? parsed['result'] ?? parsed.contents : null;\n\n onParse(parseError, { messages, ast });\n }\n }\n\n @action\n setSelectedNode(node: Node) {\n this.selectedNode = node;\n }\n\n openPluginEditor = (plugin: EuiMarkdownEditorUiPlugin) => {\n this.pluginEditorPlugin = plugin;\n };\n\n onEditorPluginSave = (markdown: any, config: any) => {\n let { selectedNode, textareaRef } = this;\n\n if (\n this.pluginEditorPlugin &&\n selectedNode &&\n // @ts-expect-error\n selectedNode.type === this.pluginEditorPlugin.name &&\n // @ts-expect-error\n selectedNode.position\n ) {\n // modifying an existing node\n textareaRef!.setSelectionRange(\n // @ts-expect-error\n selectedNode.position.start.offset,\n // @ts-expect-error\n selectedNode.position.end.offset\n );\n } else {\n // creating a new node\n if (config.block) {\n // inject newlines if needed\n markdown = padWithNewlinesIfNeeded(textareaRef!, markdown);\n }\n }\n\n insertText(textareaRef!, {\n text: markdown,\n selectionStart: undefined,\n selectionEnd: undefined\n });\n\n this.pluginEditorPlugin = undefined;\n };\n\n willDestroy(): void {\n super.willDestroy();\n\n this.textareaRef = null;\n this.previewRef = null;\n this.editorToolbarRef = null;\n }\n\n <template>\n <div\n class={{classNames\n \"euiMarkdownEditor\"\n (if (eq this.height \"full\") \"euiMarkdownEditor--fullHeight\")\n (if this.isPreviewing \"euiMarkdownEditor--isPreviewing\")\n }}\n {{didUpdate\n this.updateCurrentHeight\n this.currentHeight\n this.isPreviewing\n this.height\n this.autoExpandPreview\n }}\n >\n <EuiMarkdownEditorToolbar\n @selectedNode={{this.selectedNode}}\n @markdownActions={{this.markdownActions}}\n @onClickPreview={{this.setViewMode}}\n @openPluginEditor={{this.openPluginEditor}}\n @viewMode={{this.viewMode}}\n @uiPlugins={{this.toolbarPlugins}}\n {{didInsert this.setEditorToolbarRef}}\n />\n {{#if this.isPreviewing}}\n <div\n class=\"euiMarkdownEditorPreview\"\n {{didInsert (set this \"previewRef\")}}\n {{style (hash height=this.previewHeight)}}\n >\n <EuiMarkdownFormat\n @parsingPluginList={{this.parsingPluginList}}\n @processingPluginList={{this.processingPluginList}}\n @value={{@value}}\n @replaceNode={{this.replaceNode}}\n @rootClasses={{@formatRootClasses}}\n @textSize={{@formatTextSize}}\n @shouldIncludeDefaultRootClasses={{@formatShouldIncludeDefaultRootClasses}}\n />\n </div>\n {{/if}}\n\n <div\n class=\"euiMarkdownEditor__toggleContainer\"\n {{style height=this.editorToggleContainerHeight}}\n >\n <EuiMarkdownEditorDropZone\n @uiPlugins={{this.toolbarPlugins}}\n {{resizeObserver onResize=this.onResize}}\n >\n <EuiMarkdownEditorTextArea\n {{getCursorNodeModifier this.vFile this.setSelectedNode}}\n {{didUpdate this.onParse this.parsed}}\n {{didInsert this.setTextAreaRef}}\n disabled={{@disabled}}\n id={{this.editorId}}\n @height={{this.textAreaHeight}}\n @maxHeight={{this.textAreaMaxHeight}}\n value={{@value}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{@ariaLabelledBy}}\n aria-describedby={{@ariaDescribedBy}}\n {{on \"input\" (pick \"target.value\" @onChange)}}\n {{validatableControl @isInvalid}}\n ...attributes\n />\n </EuiMarkdownEditorDropZone>\n {{#if this.pluginEditorPlugin.editor}}\n <EuiModal @onClose={{set this \"pluginEditorPlugin\" undefined}}>\n {{#let (component this.pluginEditorPlugin.editor) as |Editor|}}\n <Editor\n @node={{this.selectedNode}}\n @onCancel={{set this \"pluginEditorPlugin\" undefined}}\n @onSave={{this.onEditorPluginSave}}\n />\n {{/let}}\n </EuiModal>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["getCursorNode","textareaRef","parsed","selectionStart","node","result","contents","outer","children","i","length","child","position","start","offset","end","type","wrapper","textarea","callback","getCursorNodeModifier","modifier","onSelectedNode","fn","bind","addEventListener","removeEventListener","isNewLine","char","match","padWithNewlinesIfNeeded","text","selectionEnd","isPrevNewLine","value","isPrevPrevNewLine","isNextNewLine","EuiMarkdownEditorComponent","Component","g","prototype","tracked","void 0","argOrDefaultDecorator","defaultParsingPlugins","defaultProcessingPlugins","args","editorId","guidFor","initialViewMode","MODE_EDITING","markdownActions","toolbarPlugins","MarkdownTooltipPlugin","uiPlugins","constructor","owner","MarkdownActions","currentHeight","height","previewHeight","editorFooterHeight","textAreaHeight","textAreaMaxHeight","maxHeight","editorToggleContainerHeight","editorToolbarHeight","onResize","isEditing","resizedTextareaHeight","offsetHeight","update","scheduleOnce","n","action","updateCurrentHeight","isPreviewing","autoExpandPreview","previewRef","scrollHeight","elementComputedStyle","window","getComputedStyle","borderWidth","parseFloat","borderTopWidth","borderBottomWidth","marginWidth","marginTop","marginBottom","extraHeight","setTextAreaRef","ref","setEditorToolbarRef","editorToolbarRef","replaceNode","next","leading","substr","trailing","onChange","viewMode","MODE_VIEWING","setViewMode","parser","Compiler","tree","identityCompiler","unified","use","parsingPluginList","cached","processSync","e","vFile","onParse","parseError","messages","ast","setSelectedNode","selectedNode","openPluginEditor","plugin","pluginEditorPlugin","onEditorPluginSave","markdown","config","name","setSelectionRange","block","insertText","undefined","willDestroy","setComponentTemplate","precompileTemplate","strictMode","scope","classNames","eq","didUpdate","EuiMarkdownEditorToolbar","didInsert","set","style","hash","EuiMarkdownFormat","EuiMarkdownEditorDropZone","resizeObserver","EuiMarkdownEditorTextArea","on","pick","validatableControl","EuiModal"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { concat } from '@ember/helper';
2
2
  import randomId from '../-private/random-id.js';
3
- import EuiAccordionAccordionComponent from './eui-accordion.js';
3
+ import EuiAccordionComponent from './eui-accordion.js';
4
4
  import EuiTextComponent from './eui-text.js';
5
5
  import { precompileTemplate } from '@ember/template-compilation';
6
6
  import { setComponentTemplate } from '@ember/component';
@@ -16,7 +16,7 @@ const EuiNotificationEventMessages = setComponentTemplate(precompileTemplate("\n
16
16
  objectAt,
17
17
  without,
18
18
  EuiText: EuiTextComponent,
19
- EuiAccordion: EuiAccordionAccordionComponent,
19
+ EuiAccordion: EuiAccordionComponent,
20
20
  concat,
21
21
  randomId
22
22
  })
@@ -1 +1 @@
1
- {"version":3,"file":"eui-notification-event-messages.js","sources":["../../src/components/eui-notification-event-messages.gts"],"sourcesContent":["import { concat } from '@ember/helper';\n\nimport randomId from '../-private/random-id.ts';\nimport EuiAccordion from './eui-accordion.gts';\nimport EuiText from './eui-text.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nconst objectAt = <T,>(pos: number, array: T[]) => array[pos];\nconst without = <T,>(obj: T, array: T[]) => {\n return array.filter((item) => item !== obj);\n};\n\nexport interface EuiNotificationEventMessagesSignature {\n Element: HTMLDivElement;\n Args: {\n messages: string[];\n accordionButtonText?: string;\n accordionHideText?: string;\n accordionAriaLabelButtonText?: string;\n };\n}\n\nconst EuiNotificationEventMessages: TemplateOnlyComponent<EuiNotificationEventMessagesSignature> =\n <template>\n <div class=\"euiNotificationEventMessages\" ...attributes>\n {{#let\n (objectAt 0 @messages) (without (objectAt 0 @messages) @messages)\n as |first rest|\n }}\n\n {{#if first}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{first}}</p>\n </EuiText>\n {{/if}}\n\n {{#if rest}}\n\n <EuiAccordion\n id={{concat \"euiNotificationEventMessagesAccordion\" (randomId)}}\n class=\"euiNotificationEventMessages__accordion\"\n @buttonClassName=\"euiNotificationEventMessages__accordionButton\"\n @arrowDisplay=\"none\"\n >\n <:buttonContent as |isOpen|>\n {{@accordionButtonText}}\n {{#unless isOpen}}\n ({{@accordionHideText}})\n {{/unless}}\n </:buttonContent>\n\n <:content>\n <div class=\"euiNotificationEventMessages__accordionContent\">\n {{#each rest as |msg|}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{msg}}</p>\n </EuiText>\n {{/each}}\n </div>\n </:content>\n\n </EuiAccordion>\n {{/if}}\n\n {{/let}}\n </div>\n </template>;\n\nexport default EuiNotificationEventMessages;\n"],"names":["objectAt","pos","array","without","obj","filter","item","EuiNotificationEventMessages","setComponentTemplate","precompileTemplate","strictMode","scope","EuiText","EuiAccordion","concat","randomId","templateOnly"],"mappings":";;;;;;;;AAQA,MAAMA,QAAA,GAAWA,CAAKC,GAAW,EAAEC,KAAO,KAAQA,KAAK,CAACD,GAAI,CAAA;AAC5D,MAAME,OAAU,GAAAA,CAAKC,KAAQF,KAAO,KAAA;EAClC,OAAOA,KAAM,CAAAG,MAAM,CAAEC,QAASA,IAAS,KAAAF,GAAA,CAAA;AACzC,CAAA;AAYA,MAAMG,4BACJ,GAAAC,oBAAA,CAAAC,kBAAA,CA2CA,0rCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAX,QAAA;IAAAG,OAAA;aAAAS,gBAAA;kBAAAC,8BAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"eui-notification-event-messages.js","sources":["../../src/components/eui-notification-event-messages.gts"],"sourcesContent":["import { concat } from '@ember/helper';\n\nimport randomId from '../-private/random-id.ts';\nimport EuiAccordion from './eui-accordion.gts';\nimport EuiText from './eui-text.gts';\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nconst objectAt = <T,>(pos: number, array: T[]) => array[pos];\nconst without = <T,>(obj: T, array: T[]) => {\n return array.filter((item) => item !== obj);\n};\n\nexport interface EuiNotificationEventMessagesSignature {\n Element: HTMLDivElement;\n Args: {\n messages: string[];\n accordionButtonText?: string;\n accordionHideText?: string;\n accordionAriaLabelButtonText?: string;\n };\n}\n\nconst EuiNotificationEventMessages: TemplateOnlyComponent<EuiNotificationEventMessagesSignature> =\n <template>\n <div class=\"euiNotificationEventMessages\" ...attributes>\n {{#let\n (objectAt 0 @messages) (without (objectAt 0 @messages) @messages)\n as |first rest|\n }}\n\n {{#if first}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{first}}</p>\n </EuiText>\n {{/if}}\n\n {{#if rest}}\n\n <EuiAccordion\n id={{concat \"euiNotificationEventMessagesAccordion\" (randomId)}}\n class=\"euiNotificationEventMessages__accordion\"\n @buttonClassName=\"euiNotificationEventMessages__accordionButton\"\n @arrowDisplay=\"none\"\n >\n <:buttonContent as |isOpen|>\n {{@accordionButtonText}}\n {{#unless isOpen}}\n ({{@accordionHideText}})\n {{/unless}}\n </:buttonContent>\n\n <:content>\n <div class=\"euiNotificationEventMessages__accordionContent\">\n {{#each rest as |msg|}}\n <EuiText @size=\"s\" @color=\"subdued\">\n <p>{{msg}}</p>\n </EuiText>\n {{/each}}\n </div>\n </:content>\n\n </EuiAccordion>\n {{/if}}\n\n {{/let}}\n </div>\n </template>;\n\nexport default EuiNotificationEventMessages;\n"],"names":["objectAt","pos","array","without","obj","filter","item","EuiNotificationEventMessages","setComponentTemplate","precompileTemplate","strictMode","scope","EuiText","EuiAccordion","concat","randomId","templateOnly"],"mappings":";;;;;;;;AAQA,MAAMA,QAAA,GAAWA,CAAKC,GAAW,EAAEC,KAAO,KAAQA,KAAK,CAACD,GAAI,CAAA;AAC5D,MAAME,OAAU,GAAAA,CAAKC,KAAQF,KAAO,KAAA;EAClC,OAAOA,KAAM,CAAAG,MAAM,CAAEC,QAASA,IAAS,KAAAF,GAAA,CAAA;AACzC,CAAA;AAYA,MAAMG,4BACJ,GAAAC,oBAAA,CAAAC,kBAAA,CA2CA,0rCAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAX,QAAA;IAAAG,OAAA;aAAAS,gBAAA;kBAAAC,qBAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -30,6 +30,10 @@ class EuiOverlayMaskComponent extends Component {
30
30
  static {
31
31
  n(this.prototype, "setOverlayMaskNode", [action]);
32
32
  }
33
+ willDestroy() {
34
+ super.willDestroy();
35
+ this.overlayMaskNode = undefined;
36
+ }
33
37
  static {
34
38
  setComponentTemplate(precompileTemplate("\n {{(setBodyClass \"euiBody-hasOverlayMask\")}}\n {{#in-element this.destinationElement insertBefore=null}}\n <div class={{classNames \"euiOverlayMask\" (unless (eq @headerZindexLocation \"below\") \"euiOverlayMask--aboveHeader\" \"euiOverlayMask--belowHeader\")}} {{didInsert this.setOverlayMaskNode}} {{!-- template-lint-disable --}} {{on \"click\" this.onClick}} ...attributes>\n {{yield}}\n </div>\n {{/in-element}}\n ", {
35
39
  strictMode: true,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-overlay-mask.js","sources":["../../src/components/eui-overlay-mask.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport setBodyClass from 'ember-set-body-class/helpers/set-body-class';\nimport { eq } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\n\ninterface EuiOverlayMaskArgs {\n onClick?: (e: Event) => void;\n headerZindexLocation?: 'above' | 'below';\n}\n\nexport interface EuiOverlayMaskSignature {\n Element: HTMLDivElement;\n Args: EuiOverlayMaskArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiOverlayMaskComponent extends Component<EuiOverlayMaskSignature> {\n @tracked overlayMaskNode: HTMLDivElement | undefined;\n\n destinationElement = document.body;\n\n @action\n onClick(e: MouseEvent) {\n if (e.target === this.overlayMaskNode) {\n this.args.onClick?.(e);\n }\n }\n\n @action\n setOverlayMaskNode(node: HTMLDivElement) {\n this.overlayMaskNode = node;\n }\n\n <template>\n {{(setBodyClass \"euiBody-hasOverlayMask\")}}\n {{#in-element this.destinationElement insertBefore=null}}\n <div\n class={{classNames\n \"euiOverlayMask\"\n (unless\n (eq @headerZindexLocation \"below\")\n \"euiOverlayMask--aboveHeader\"\n \"euiOverlayMask--belowHeader\"\n )\n }}\n {{didInsert this.setOverlayMaskNode}}\n {{! template-lint-disable }}\n {{on \"click\" this.onClick}}\n ...attributes\n >\n {{yield}}\n </div>\n {{/in-element}}\n </template>\n}\n"],"names":["EuiOverlayMaskComponent","Component","g","prototype","tracked","i","void 0","destinationElement","document","body","onClick","e","target","overlayMaskNode","args","n","action","setOverlayMaskNode","node","setComponentTemplate","precompileTemplate","strictMode","scope","setBodyClass","classNames","eq","didInsert","on"],"mappings":";;;;;;;;;;;;AAwBe,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CAC5DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,gBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,EAAAC,MAAA;EAEDC,kBAAqB,GAAAC,QAAA,CAASC,IAAI;EAGlCC,OAAQA,CAAAC,CAAa,EAAE;AACrB,IAAA,IAAIA,EAAEC,MAAM,KAAK,IAAI,CAACC,eAAe,EAAE;AACrC,MAAA,IAAI,CAACC,IAAI,CAACJ,OAAO,GAAGC,CAAA,CAAA;AACtB;AACF;AAAA,EAAA;IAAAI,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,SAAA,EAAA,CALCa,MAAA,CAAA,CAAA;AAAA;EAQDC,kBAAmBA,CAAAC,IAAoB,EAAE;IACvC,IAAI,CAACL,eAAe,GAAGK,IAAA;AACzB;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,oBAAA,EAAA,CAHCa,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAoBA,ocAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"eui-overlay-mask.js","sources":["../../src/components/eui-overlay-mask.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport setBodyClass from 'ember-set-body-class/helpers/set-body-class';\nimport { eq } from 'ember-truth-helpers';\n\nimport classNames from '../helpers/class-names.ts';\n\ninterface EuiOverlayMaskArgs {\n onClick?: (e: Event) => void;\n headerZindexLocation?: 'above' | 'below';\n}\n\nexport interface EuiOverlayMaskSignature {\n Element: HTMLDivElement;\n Args: EuiOverlayMaskArgs;\n Blocks: {\n default: [];\n };\n}\n\nexport default class EuiOverlayMaskComponent extends Component<EuiOverlayMaskSignature> {\n @tracked overlayMaskNode: HTMLDivElement | undefined;\n\n destinationElement = document.body;\n\n @action\n onClick(e: MouseEvent) {\n if (e.target === this.overlayMaskNode) {\n this.args.onClick?.(e);\n }\n }\n\n @action\n setOverlayMaskNode(node: HTMLDivElement) {\n this.overlayMaskNode = node;\n }\n\n willDestroy(): void {\n super.willDestroy();\n\n this.overlayMaskNode = undefined;\n }\n\n <template>\n {{(setBodyClass \"euiBody-hasOverlayMask\")}}\n {{#in-element this.destinationElement insertBefore=null}}\n <div\n class={{classNames\n \"euiOverlayMask\"\n (unless\n (eq @headerZindexLocation \"below\")\n \"euiOverlayMask--aboveHeader\"\n \"euiOverlayMask--belowHeader\"\n )\n }}\n {{didInsert this.setOverlayMaskNode}}\n {{! template-lint-disable }}\n {{on \"click\" this.onClick}}\n ...attributes\n >\n {{yield}}\n </div>\n {{/in-element}}\n </template>\n}\n"],"names":["EuiOverlayMaskComponent","Component","g","prototype","tracked","i","void 0","destinationElement","document","body","onClick","e","target","overlayMaskNode","args","n","action","setOverlayMaskNode","node","willDestroy","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","setBodyClass","classNames","eq","didInsert","on"],"mappings":";;;;;;;;;;;;AAwBe,MAAMA,gCAAgCC,SAAU,CAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CAC5DC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,gBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,EAAAC,MAAA;EAEDC,kBAAqB,GAAAC,QAAA,CAASC,IAAI;EAGlCC,OAAQA,CAAAC,CAAa,EAAE;AACrB,IAAA,IAAIA,EAAEC,MAAM,KAAK,IAAI,CAACC,eAAe,EAAE;AACrC,MAAA,IAAI,CAACC,IAAI,CAACJ,OAAO,GAAGC,CAAA,CAAA;AACtB;AACF;AAAA,EAAA;IAAAI,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,SAAA,EAAA,CALCa,MAAA,CAAA,CAAA;AAAA;EAQDC,kBAAmBA,CAAAC,IAAoB,EAAE;IACvC,IAAI,CAACL,eAAe,GAAGK,IAAA;AACzB;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,oBAAA,EAAA,CAHCa,MAAA,CAAA,CAAA;AAAA;AAKDG,EAAAA,WAAAA,GAAoB;IAClB,KAAK,CAACA,WAAA,EAAA;IAEN,IAAI,CAACN,eAAe,GAAGO,SAAA;AACzB;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAoBA,ocAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,YAAA;QAAAC,UAAA;QAAAC,EAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}