@pega/cosmos-react-rte 9.0.0-build.9.8 → 9.0.0

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 (191) hide show
  1. package/lib/components/DynamicContentEditor/DynamicContentEditor.d.ts +4 -2
  2. package/lib/components/DynamicContentEditor/DynamicContentEditor.d.ts.map +1 -1
  3. package/lib/components/DynamicContentEditor/DynamicContentEditor.js +64 -59
  4. package/lib/components/DynamicContentEditor/DynamicContentEditor.js.map +1 -1
  5. package/lib/components/Editor/Editor.context.d.ts +6 -6
  6. package/lib/components/Editor/Editor.context.d.ts.map +1 -1
  7. package/lib/components/Editor/Editor.context.js +1 -1
  8. package/lib/components/Editor/Editor.context.js.map +1 -1
  9. package/lib/components/Editor/Editor.d.ts +1 -10
  10. package/lib/components/Editor/Editor.d.ts.map +1 -1
  11. package/lib/components/Editor/Editor.js +301 -490
  12. package/lib/components/Editor/Editor.js.map +1 -1
  13. package/lib/components/Editor/Editor.styles.d.ts +37 -7
  14. package/lib/components/Editor/Editor.styles.d.ts.map +1 -1
  15. package/lib/components/Editor/Editor.styles.js +60 -30
  16. package/lib/components/Editor/Editor.styles.js.map +1 -1
  17. package/lib/components/Editor/Editor.test-ids.d.ts +2 -1
  18. package/lib/components/Editor/Editor.test-ids.d.ts.map +1 -1
  19. package/lib/components/Editor/Editor.test-ids.js +2 -0
  20. package/lib/components/Editor/Editor.test-ids.js.map +1 -1
  21. package/lib/components/Editor/Editor.types.d.ts +34 -14
  22. package/lib/components/Editor/Editor.types.d.ts.map +1 -1
  23. package/lib/components/Editor/Editor.types.js.map +1 -1
  24. package/lib/components/Editor/IframeTiptapEditor.d.ts +30 -0
  25. package/lib/components/Editor/IframeTiptapEditor.d.ts.map +1 -0
  26. package/lib/components/Editor/IframeTiptapEditor.js +695 -0
  27. package/lib/components/Editor/IframeTiptapEditor.js.map +1 -0
  28. package/lib/components/Editor/ImageActionButtons.d.ts +20 -0
  29. package/lib/components/Editor/ImageActionButtons.d.ts.map +1 -0
  30. package/lib/components/Editor/ImageActionButtons.js +84 -0
  31. package/lib/components/Editor/ImageActionButtons.js.map +1 -0
  32. package/lib/components/Editor/ImageEditDialog.d.ts +17 -0
  33. package/lib/components/Editor/ImageEditDialog.d.ts.map +1 -0
  34. package/lib/components/Editor/ImageEditDialog.js +90 -0
  35. package/lib/components/Editor/ImageEditDialog.js.map +1 -0
  36. package/lib/components/Editor/TableCellMenu.d.ts +35 -0
  37. package/lib/components/Editor/TableCellMenu.d.ts.map +1 -0
  38. package/lib/components/Editor/TableCellMenu.js +120 -0
  39. package/lib/components/Editor/TableCellMenu.js.map +1 -0
  40. package/lib/components/Editor/Toolbar/AIRewriteButton.d.ts +17 -0
  41. package/lib/components/Editor/Toolbar/AIRewriteButton.d.ts.map +1 -0
  42. package/lib/components/Editor/Toolbar/AIRewriteButton.js +79 -0
  43. package/lib/components/Editor/Toolbar/AIRewriteButton.js.map +1 -0
  44. package/lib/components/Editor/Toolbar/AlignmentSelect.d.ts +8 -0
  45. package/lib/components/Editor/Toolbar/AlignmentSelect.d.ts.map +1 -0
  46. package/lib/components/Editor/Toolbar/AlignmentSelect.js +137 -0
  47. package/lib/components/Editor/Toolbar/AlignmentSelect.js.map +1 -0
  48. package/lib/components/Editor/Toolbar/AnchorButton.d.ts +3 -4
  49. package/lib/components/Editor/Toolbar/AnchorButton.d.ts.map +1 -1
  50. package/lib/components/Editor/Toolbar/AnchorButton.js +156 -82
  51. package/lib/components/Editor/Toolbar/AnchorButton.js.map +1 -1
  52. package/lib/components/Editor/Toolbar/ColorPickerButton.d.ts +9 -0
  53. package/lib/components/Editor/Toolbar/ColorPickerButton.d.ts.map +1 -0
  54. package/lib/components/Editor/Toolbar/ColorPickerButton.js +190 -0
  55. package/lib/components/Editor/Toolbar/ColorPickerButton.js.map +1 -0
  56. package/lib/components/Editor/Toolbar/FontFamilySelect.d.ts +8 -0
  57. package/lib/components/Editor/Toolbar/FontFamilySelect.d.ts.map +1 -0
  58. package/lib/components/Editor/Toolbar/FontFamilySelect.js +150 -0
  59. package/lib/components/Editor/Toolbar/FontFamilySelect.js.map +1 -0
  60. package/lib/components/Editor/Toolbar/FontSizeSelect.d.ts +8 -0
  61. package/lib/components/Editor/Toolbar/FontSizeSelect.d.ts.map +1 -0
  62. package/lib/components/Editor/Toolbar/FontSizeSelect.js +145 -0
  63. package/lib/components/Editor/Toolbar/FontSizeSelect.js.map +1 -0
  64. package/lib/components/Editor/Toolbar/ImageButton.d.ts +5 -5
  65. package/lib/components/Editor/Toolbar/ImageButton.d.ts.map +1 -1
  66. package/lib/components/Editor/Toolbar/ImageButton.js +131 -18
  67. package/lib/components/Editor/Toolbar/ImageButton.js.map +1 -1
  68. package/lib/components/Editor/Toolbar/SourceCodeButton.d.ts +8 -0
  69. package/lib/components/Editor/Toolbar/SourceCodeButton.d.ts.map +1 -0
  70. package/lib/components/Editor/Toolbar/SourceCodeButton.js +49 -0
  71. package/lib/components/Editor/Toolbar/SourceCodeButton.js.map +1 -0
  72. package/lib/components/Editor/Toolbar/TableButton.d.ts +8 -0
  73. package/lib/components/Editor/Toolbar/TableButton.d.ts.map +1 -0
  74. package/lib/components/Editor/Toolbar/TableButton.js +291 -0
  75. package/lib/components/Editor/Toolbar/TableButton.js.map +1 -0
  76. package/lib/components/Editor/Toolbar/TextSelect.d.ts +4 -5
  77. package/lib/components/Editor/Toolbar/TextSelect.d.ts.map +1 -1
  78. package/lib/components/Editor/Toolbar/TextSelect.js +61 -30
  79. package/lib/components/Editor/Toolbar/TextSelect.js.map +1 -1
  80. package/lib/components/Editor/Toolbar/Toolbar.d.ts +17 -6
  81. package/lib/components/Editor/Toolbar/Toolbar.d.ts.map +1 -1
  82. package/lib/components/Editor/Toolbar/Toolbar.js +169 -47
  83. package/lib/components/Editor/Toolbar/Toolbar.js.map +1 -1
  84. package/lib/components/Editor/Toolbar/Toolbar.test-ids.d.ts +2 -2
  85. package/lib/components/Editor/Toolbar/Toolbar.test-ids.d.ts.map +1 -1
  86. package/lib/components/Editor/Toolbar/Toolbar.test-ids.js +17 -1
  87. package/lib/components/Editor/Toolbar/Toolbar.test-ids.js.map +1 -1
  88. package/lib/components/Editor/Toolbar/WordCount.d.ts +8 -0
  89. package/lib/components/Editor/Toolbar/WordCount.d.ts.map +1 -0
  90. package/lib/components/Editor/Toolbar/WordCount.js +31 -0
  91. package/lib/components/Editor/Toolbar/WordCount.js.map +1 -0
  92. package/lib/components/Editor/extensions/FontSize.d.ts +21 -0
  93. package/lib/components/Editor/extensions/FontSize.d.ts.map +1 -0
  94. package/lib/components/Editor/extensions/FontSize.js +42 -0
  95. package/lib/components/Editor/extensions/FontSize.js.map +1 -0
  96. package/lib/components/Editor/extensions/PreserveDiv.d.ts +13 -0
  97. package/lib/components/Editor/extensions/PreserveDiv.d.ts.map +1 -0
  98. package/lib/components/Editor/extensions/PreserveDiv.js +73 -0
  99. package/lib/components/Editor/extensions/PreserveDiv.js.map +1 -0
  100. package/lib/components/Editor/extensions/TableCellSelection.d.ts +4 -0
  101. package/lib/components/Editor/extensions/TableCellSelection.d.ts.map +1 -0
  102. package/lib/components/Editor/extensions/TableCellSelection.js +53 -0
  103. package/lib/components/Editor/extensions/TableCellSelection.js.map +1 -0
  104. package/lib/components/Editor/extensions/TextIndent.d.ts +22 -0
  105. package/lib/components/Editor/extensions/TextIndent.d.ts.map +1 -0
  106. package/lib/components/Editor/extensions/TextIndent.js +137 -0
  107. package/lib/components/Editor/extensions/TextIndent.js.map +1 -0
  108. package/lib/components/Editor/hooks/useCloseOnEditorClick.d.ts +5 -0
  109. package/lib/components/Editor/hooks/useCloseOnEditorClick.d.ts.map +1 -0
  110. package/lib/components/Editor/hooks/useCloseOnEditorClick.js +18 -0
  111. package/lib/components/Editor/hooks/useCloseOnEditorClick.js.map +1 -0
  112. package/lib/components/Editor/hooks/useEscapeKey.d.ts +4 -0
  113. package/lib/components/Editor/hooks/useEscapeKey.d.ts.map +1 -0
  114. package/lib/components/Editor/hooks/useEscapeKey.js +24 -0
  115. package/lib/components/Editor/hooks/useEscapeKey.js.map +1 -0
  116. package/lib/components/Editor/hooks/useIframeSetup.d.ts +54 -0
  117. package/lib/components/Editor/hooks/useIframeSetup.d.ts.map +1 -0
  118. package/lib/components/Editor/hooks/useIframeSetup.js +284 -0
  119. package/lib/components/Editor/hooks/useIframeSetup.js.map +1 -0
  120. package/lib/components/Editor/hooks/useImageActions.d.ts +19 -0
  121. package/lib/components/Editor/hooks/useImageActions.d.ts.map +1 -0
  122. package/lib/components/Editor/hooks/useImageActions.js +198 -0
  123. package/lib/components/Editor/hooks/useImageActions.js.map +1 -0
  124. package/lib/components/Editor/hooks/useTableCellMenu.d.ts +22 -0
  125. package/lib/components/Editor/hooks/useTableCellMenu.d.ts.map +1 -0
  126. package/lib/components/Editor/hooks/useTableCellMenu.js +120 -0
  127. package/lib/components/Editor/hooks/useTableCellMenu.js.map +1 -0
  128. package/lib/components/Editor/iframeContentStyles.d.ts +10 -0
  129. package/lib/components/Editor/iframeContentStyles.d.ts.map +1 -0
  130. package/lib/components/Editor/iframeContentStyles.js +162 -0
  131. package/lib/components/Editor/iframeContentStyles.js.map +1 -0
  132. package/lib/components/Editor/index.d.ts +2 -0
  133. package/lib/components/Editor/index.d.ts.map +1 -1
  134. package/lib/components/Editor/index.js +1 -0
  135. package/lib/components/Editor/index.js.map +1 -1
  136. package/lib/components/Editor/sanitize.d.ts +3 -0
  137. package/lib/components/Editor/sanitize.d.ts.map +1 -0
  138. package/lib/components/Editor/sanitize.js +11 -0
  139. package/lib/components/Editor/sanitize.js.map +1 -0
  140. package/lib/components/Editor/utils/htmlPlaceholder.d.ts +69 -0
  141. package/lib/components/Editor/utils/htmlPlaceholder.d.ts.map +1 -0
  142. package/lib/components/Editor/utils/htmlPlaceholder.js +154 -0
  143. package/lib/components/Editor/utils/htmlPlaceholder.js.map +1 -0
  144. package/lib/components/RichTextEditor/DecoratorComponents/Table.d.ts +6 -4
  145. package/lib/components/RichTextEditor/DecoratorComponents/Table.d.ts.map +1 -1
  146. package/lib/components/RichTextEditor/DecoratorComponents/Table.js +10 -8
  147. package/lib/components/RichTextEditor/DecoratorComponents/Table.js.map +1 -1
  148. package/lib/components/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  149. package/lib/components/RichTextEditor/RichTextEditor.js +15 -2
  150. package/lib/components/RichTextEditor/RichTextEditor.js.map +1 -1
  151. package/lib/components/RichTextEditor/RichTextEditor.styles.d.ts +5 -5
  152. package/lib/components/RichTextEditor/RichTextEditor.styles.d.ts.map +1 -1
  153. package/lib/components/RichTextEditor/RichTextEditor.styles.js +3 -5
  154. package/lib/components/RichTextEditor/RichTextEditor.styles.js.map +1 -1
  155. package/lib/components/RichTextEditor/RichTextEditor.types.d.ts +5 -0
  156. package/lib/components/RichTextEditor/RichTextEditor.types.d.ts.map +1 -1
  157. package/lib/components/RichTextEditor/RichTextEditor.types.js.map +1 -1
  158. package/lib/components/RichTextEditor/RichTextViewer.d.ts.map +1 -1
  159. package/lib/components/RichTextEditor/RichTextViewer.js +9 -2
  160. package/lib/components/RichTextEditor/RichTextViewer.js.map +1 -1
  161. package/lib/components/RichTextEditor/Toolbar/Toolbar.js +1 -1
  162. package/lib/components/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  163. package/lib/components/RichTextEditor/Toolbar/Toolbar.types.d.ts +4 -4
  164. package/lib/components/RichTextEditor/Toolbar/Toolbar.types.d.ts.map +1 -1
  165. package/lib/components/RichTextEditor/Toolbar/Toolbar.types.js.map +1 -1
  166. package/lib/components/RichTextEditor/Toolbar/ToolbarButton.d.ts.map +1 -1
  167. package/lib/components/RichTextEditor/Toolbar/ToolbarButton.js +41 -26
  168. package/lib/components/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  169. package/lib/components/RichTextEditor/utils/htmlConverter.d.ts +2 -0
  170. package/lib/components/RichTextEditor/utils/htmlConverter.d.ts.map +1 -1
  171. package/lib/components/RichTextEditor/utils/htmlConverter.js +12 -0
  172. package/lib/components/RichTextEditor/utils/htmlConverter.js.map +1 -1
  173. package/lib/components/RichTextEditor/utils/interactionRenderer.d.ts.map +1 -1
  174. package/lib/components/RichTextEditor/utils/interactionRenderer.js +20 -19
  175. package/lib/components/RichTextEditor/utils/interactionRenderer.js.map +1 -1
  176. package/lib/components/RichTextEditor/utils/markdownConverter.d.ts.map +1 -1
  177. package/lib/components/RichTextEditor/utils/markdownConverter.js +131 -30
  178. package/lib/components/RichTextEditor/utils/markdownConverter.js.map +1 -1
  179. package/lib/components/RichTextEditor/utils/renderers.d.ts +5 -3
  180. package/lib/components/RichTextEditor/utils/renderers.d.ts.map +1 -1
  181. package/lib/components/RichTextEditor/utils/renderers.js +62 -34
  182. package/lib/components/RichTextEditor/utils/renderers.js.map +1 -1
  183. package/lib/components/RichTextEditor/utils/slateConverter.d.ts +4 -3
  184. package/lib/components/RichTextEditor/utils/slateConverter.d.ts.map +1 -1
  185. package/lib/components/RichTextEditor/utils/slateConverter.js +86 -38
  186. package/lib/components/RichTextEditor/utils/slateConverter.js.map +1 -1
  187. package/package.json +30 -8
  188. package/lib/components/Editor/ImageEditor.d.ts +0 -10
  189. package/lib/components/Editor/ImageEditor.d.ts.map +0 -1
  190. package/lib/components/Editor/ImageEditor.js +0 -292
  191. package/lib/components/Editor/ImageEditor.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImageEditor.js","sourceRoot":"","sources":["../../../src/components/Editor/ImageEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, useState, useLayoutEffect } from 'react';\nimport type {\n FC,\n MouseEvent as ReactMouseEvent,\n ChangeEvent,\n CSSProperties,\n FocusEvent\n} from 'react';\nimport type { Editor } from 'tinymce';\nimport styled from 'styled-components';\nimport { remToPx, stripUnit } from 'polished';\n\nimport {\n Button,\n Checkbox,\n createUID,\n Grid,\n Icon,\n Input,\n NumberInput,\n useAfterInitialEffect,\n useElement,\n useI18n,\n useTheme,\n useUID,\n VisuallyHiddenText\n} from '@pega/cosmos-react-core';\n\nimport { StyledFormDialog } from './Editor.styles';\n\nconst IgnoreMouseEventsIcon = styled(Icon)`\n pointer-events: none;\n`;\n\nexport const imgHoverClass = createUID();\n\nconst ImageEditor: FC<{ editorEl: HTMLElement; editor: Editor; onChange: () => void }> = ({\n editorEl,\n editor,\n onChange\n}) => {\n const t = useI18n();\n const id = useUID();\n const theme = useTheme();\n const [showImageDialog, setShowImageDialog] = useState(false);\n const [imageEditHover, setImageEditHover] = useState(false);\n const [imageEditFocus, setImageEditFocus] = useState(false);\n const [canShowButtons, setCanShowButtons] = useState(false);\n const [imgEl, setImageEl] = useState<HTMLImageElement | null>(null);\n const [imgElements, setImageElements] = useState<HTMLImageElement[]>([]);\n const [editButtonEl, setEditButtonEl] = useElement<HTMLButtonElement>(null);\n const [deleteButtonEl, setDeleteButtonEl] = useElement<HTMLButtonElement>(null);\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const [aspectRatio, setAspectRatio] = useState(0);\n const [altText, setAltText] = useState('');\n const [customSize, setCustomSize] = useState(false);\n const [keyCommandText, setKeyCommandText] = useState('');\n const imageDialogRef = useRef<HTMLDivElement>(null);\n const altTextInputRef = useRef<HTMLInputElement>(null);\n const editorOpenedWithEnter = useRef(false);\n const [btnStyle, setBtnStyle] = useState<CSSProperties>({});\n\n const onImageClick = (e: MouseEvent | ReactMouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setShowImageDialog(true);\n };\n\n const calculateBtnStyles = (el: HTMLElement): CSSProperties => {\n const elementRect = el.getBoundingClientRect();\n const padding = Number(stripUnit(remToPx(theme.base.spacing)));\n return {\n position: 'absolute',\n display: 'flex',\n top: elementRect.top + padding,\n left:\n elementRect.right +\n padding -\n ((editButtonEl?.scrollWidth ?? 0) + (deleteButtonEl?.scrollWidth ?? 0) * 2)\n };\n };\n\n const onImageMouseEnter = (e: MouseEvent) => {\n if (!showImageDialog) {\n const el = e.target as HTMLElement;\n setImageEditHover(true);\n setImageEl(el as HTMLImageElement);\n }\n };\n\n const onImageMouseLeave = (e: MouseEvent) => {\n if (e.relatedTarget && (e.relatedTarget as HTMLDivElement).id !== id && !showImageDialog) {\n setImageEl(null);\n setImageEditHover(false);\n }\n };\n\n const setImageState = () => {\n if (imgEl) {\n let imgHeight;\n let imgWidth;\n let hasHeightOrWidthAttribute = false;\n if (imgEl.getAttribute('height')) {\n imgHeight = parseInt(imgEl.getAttribute('height') as string, 10);\n hasHeightOrWidthAttribute = true;\n } else {\n imgHeight = imgEl.naturalHeight;\n }\n if (imgEl.getAttribute('width')) {\n imgWidth = parseInt(imgEl.getAttribute('width') as string, 10);\n hasHeightOrWidthAttribute = true;\n } else {\n imgWidth = imgEl.naturalWidth;\n }\n setAltText(imgEl.getAttribute('alt') || '');\n setHeight(imgHeight);\n setWidth(imgWidth);\n setAspectRatio(imgWidth / imgHeight);\n setCustomSize(hasHeightOrWidthAttribute);\n }\n };\n\n const onCheckBoxClick = (e: ReactMouseEvent) => {\n e.stopPropagation();\n };\n\n const onInputClick = (e: ReactMouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n };\n\n const onInputFocus = (e: FocusEvent) => {\n e.stopPropagation();\n };\n\n const onAltTextChange = (e: ChangeEvent<HTMLInputElement>) => {\n setAltText(e.target.value);\n };\n\n // The next two functions handle changing the height and width of the selected image element.\n // If the value entered is too small, the value will be defaulted.\n // When the height is input, a new width will be calculated and vice versa.\n const onHeightChange = (incomingValue: string) => {\n const inputHeight = parseInt(incomingValue, 10);\n\n setHeight(inputHeight);\n setWidth(inputHeight * aspectRatio);\n };\n\n const onWidthChange = (incomingValue: string) => {\n const inputWidth = parseInt(incomingValue, 10);\n\n setWidth(inputWidth);\n setHeight(inputWidth / aspectRatio);\n };\n\n const onImageChangeSubmit = () => {\n if (imgEl) {\n if (customSize) {\n if (Number.isNaN(height) || Number.isNaN(width)) {\n imgEl.removeAttribute('height');\n imgEl.removeAttribute('width');\n setHeight(imgEl.naturalHeight);\n setWidth(imgEl.naturalWidth);\n } else {\n imgEl.setAttribute('height', height.toString());\n imgEl.setAttribute('width', width.toString());\n }\n } else {\n imgEl.removeAttribute('height');\n imgEl.removeAttribute('width');\n }\n imgEl.setAttribute('alt', altText);\n }\n\n editor.selection.select(editor.dom.select(`img[src=\"${imgEl?.src}\"]`)[0]);\n setImageEl(null);\n setShowImageDialog(false);\n onChange();\n };\n\n const onImageChangeCancel = () => {\n setImageEl(null);\n setShowImageDialog(false);\n };\n\n const onImageDelete = () => {\n if (imgEl) {\n imgEl.remove();\n }\n setImageEl(null);\n setShowImageDialog(false);\n setImageEditFocus(false);\n onChange();\n };\n\n // Keeps the imageElements state up to date with existing and newly added img tags inside of TinyMCE\n useEffect(() => {\n const iframeDoc = editor.getDoc();\n const imageElements = iframeDoc?.querySelectorAll('img') ?? ([] as HTMLImageElement[]);\n setImageElements(() => {\n return [...imageElements];\n });\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (\n mutation.type === 'childList' &&\n (mutation.addedNodes.length || mutation.removedNodes.length)\n ) {\n const newImageElements = iframeDoc?.querySelectorAll('img') ?? ([] as HTMLImageElement[]);\n setImageElements(() => [...newImageElements]);\n }\n });\n });\n if (iframeDoc) {\n observer.observe(iframeDoc.body, { childList: true, subtree: true });\n }\n return () => {\n observer.disconnect();\n };\n }, [editorEl, editor, setImageElements]);\n\n // Adds event listeners to HTML img elements inside of TinyMCE\n // This has to be done because there are no react components for these images\n useEffect(() => {\n imgElements.forEach(imgElement => {\n imgElement.addEventListener('mouseenter', onImageMouseEnter);\n imgElement.addEventListener('mouseout', onImageMouseLeave);\n imgElement.addEventListener('click', onImageClick);\n });\n return () => {\n imgElements.forEach(imgElement => {\n imgElement.removeEventListener('mouseenter', onImageMouseEnter);\n imgElement.removeEventListener('mouseout', onImageMouseLeave);\n imgElement.removeEventListener('click', onImageClick);\n });\n };\n }, [imgElements, onImageMouseEnter, onImageMouseLeave, onImageClick]);\n\n useEffect(() => {\n setImageState();\n imgEl?.setAttribute('class', imgHoverClass);\n if (imgEl && imgEl.clientHeight > 64 && imgEl.clientWidth > 104) {\n setCanShowButtons(true);\n } else {\n setCanShowButtons(false);\n }\n return () => {\n imgEl?.removeAttribute('class');\n };\n }, [imgEl]);\n\n useEffect(() => {\n const onKeyUp = () => {\n const selection = editor.selection.getSel();\n let nextToImg = false;\n // If your selection is next to an image on it's own line (not breaking text)\n if (\n selection &&\n selection.anchorNode?.childNodes.length === 1 &&\n selection.anchorNode?.firstChild?.nodeName === 'IMG' &&\n selection.anchorOffset === 0\n ) {\n setImageEl(selection.anchorNode.firstChild as HTMLImageElement);\n setImageEditFocus(true);\n nextToImg = true;\n // If your selection is next to an image that breaks text up inside of a paragraph\n } else if (selection?.anchorNode?.nextSibling?.nodeName === 'IMG') {\n setImageEl(selection.anchorNode.nextSibling as HTMLImageElement);\n setImageEditFocus(true);\n nextToImg = true;\n } else if (selection && imgEl && imageEditFocus) {\n setImageEl(null);\n setImageEditFocus(false);\n setKeyCommandText('');\n }\n\n if (nextToImg) {\n setKeyCommandText(t('rte_image_key_command'));\n }\n };\n\n const onMouseUp = () => {\n const selection = editor.selection.getSel();\n // If your selection is next to an image\n if (selection?.anchorNode?.firstChild?.nodeName === 'IMG') {\n setImageEl(selection.anchorNode.firstChild as HTMLImageElement);\n setImageEditFocus(true);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' && imageEditFocus) {\n e.stopPropagation();\n e.preventDefault();\n editorOpenedWithEnter.current = true;\n setShowImageDialog(true);\n } else if ((e.key === 'Del' || e.key === 'Backspace') && imageEditFocus) {\n onImageDelete();\n }\n };\n\n editor.on('keyup', onKeyUp);\n editor.on('mouseup', onMouseUp);\n editor.on('keydown', onKeyDown, true);\n\n return () => {\n editor.off('keyup', onKeyUp);\n editor.off('mouseup', onMouseUp);\n editor.off('keydown', onKeyDown);\n };\n }, [editor, imgEl, imageEditFocus]);\n\n useAfterInitialEffect(() => {\n if (showImageDialog) {\n editor.selection.getSel()?.collapseToEnd();\n\n if (editorOpenedWithEnter.current) {\n altTextInputRef.current?.focus();\n editorOpenedWithEnter.current = false;\n }\n } else {\n editor.focus();\n }\n }, [showImageDialog]);\n\n useLayoutEffect(() => {\n if (imgEl && editButtonEl && deleteButtonEl) {\n setBtnStyle(calculateBtnStyles(imgEl));\n }\n }, [imgEl, editButtonEl, deleteButtonEl]);\n\n return (\n <>\n {(imageEditFocus || imageEditHover) && imgEl && canShowButtons && (\n <div id={id} style={btnStyle}>\n <Button\n ref={setEditButtonEl}\n icon\n label={t('rte_edit_image')}\n aria-label={t('rte_edit_image', [altText])}\n onClick={() => {\n setShowImageDialog(true);\n }}\n >\n <IgnoreMouseEventsIcon name='pencil' />\n </Button>\n <Button\n ref={setDeleteButtonEl}\n icon\n label={t('rte_delete_image')}\n aria-label={t('rte_delete_image', [altText])}\n onClick={onImageDelete}\n >\n <IgnoreMouseEventsIcon name='trash' />\n </Button>\n </div>\n )}\n\n <VisuallyHiddenText aria-live='polite'>{keyCommandText}</VisuallyHiddenText>\n\n {showImageDialog && (editButtonEl || !canShowButtons) && imgEl && (\n <StyledFormDialog\n ref={imageDialogRef}\n target={editButtonEl && canShowButtons ? editButtonEl : imgEl}\n heading={t('rte_image_settings')}\n onCancel={onImageChangeCancel}\n onSubmit={onImageChangeSubmit}\n onDismiss={() => {\n setShowImageDialog(false);\n }}\n >\n <Grid\n container={{\n gap: 2,\n areas: customSize\n ? '\"desc desc\" \"radio radio\" \"width height\"'\n : '\"desc desc\" \"radio radio\"'\n }}\n >\n <Grid item={{ area: 'desc' }}>\n <Input\n label={t('description')}\n value={altText}\n onClick={onInputClick}\n onChange={onAltTextChange}\n onFocus={onInputFocus}\n info={t('rte_image_description_info')}\n ref={altTextInputRef}\n />\n </Grid>\n\n <Grid item={{ area: 'radio' }}>\n <Checkbox\n checked={customSize}\n label={t('rte_image_custom_size')}\n onClick={onCheckBoxClick}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setCustomSize(e.target.checked);\n }}\n />\n </Grid>\n\n {customSize && (\n <>\n <Grid item={{ area: 'width' }}>\n <NumberInput\n label={t('rte_width_in_pixels')}\n value={Math.floor(Math.max(width, 1)).toString()}\n onClick={onInputClick}\n onChange={onWidthChange}\n />\n </Grid>\n\n <Grid item={{ area: 'height' }}>\n <NumberInput\n label={t('rte_height_in_pixels')}\n value={Math.floor(Math.max(height, 1)).toString()}\n onClick={onInputClick}\n onChange={onHeightChange}\n />\n </Grid>\n </>\n )}\n </Grid>\n </StyledFormDialog>\n )}\n </>\n );\n};\n\nexport default ImageEditor;\n"]}