@instructure/canvas-rce 5.14.1 → 5.15.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 (489) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/DEVELOPMENT.md +2 -2
  3. package/README.md +0 -8
  4. package/__tests__/common/indicate.test.js +84 -0
  5. package/__tests__/common/mimeClass.test.js +85 -0
  6. package/__tests__/module/contentInsertionUtils.test.js +52 -0
  7. package/__tests__/module/indicatorRegion.test.js +75 -0
  8. package/__tests__/module/normalizeLocale.test.js +46 -0
  9. package/__tests__/module/normalizeProps.test.js +51 -0
  10. package/__tests__/module/sanitizePlugins.test.js +48 -0
  11. package/__tests__/module/wrapInitCb.test.js +56 -0
  12. package/__tests__/rcs/api.test.js +819 -0
  13. package/{mocha-reporter-config.js → __tests__/sidebar/actions/all_files.test.js} +10 -9
  14. package/__tests__/sidebar/actions/data.test.js +196 -0
  15. package/__tests__/sidebar/actions/utils.js +44 -0
  16. package/{es/rce/__mocks__/_mockStudioPlayer.js → __tests__/sidebar/reducers/all_files.test.js} +12 -4
  17. package/babel.config.js +3 -1
  18. package/es/bridge/Bridge.js +18 -73
  19. package/es/bridge/index.js +1 -0
  20. package/es/canvasFileBrowser/FileBrowser.js +21 -77
  21. package/es/canvasFileBrowser/en-US.js +3 -6
  22. package/es/common/FlashAlert.js +15 -39
  23. package/es/common/browser.js +4 -2
  24. package/es/common/fileUrl.js +105 -64
  25. package/es/common/incremental-loading/LoadMoreButton.js +4 -4
  26. package/es/common/incremental-loading/LoadingIndicator.js +1 -2
  27. package/es/common/incremental-loading/LoadingStatus.js +5 -13
  28. package/es/common/incremental-loading/index.js +1 -0
  29. package/es/common/incremental-loading/useIncrementalLoading.js +1 -3
  30. package/es/common/indicate.js +16 -10
  31. package/es/common/mimeClass.js +3 -4
  32. package/es/common/natcompare.js +1 -4
  33. package/es/defaultTinymceConfig.js +5 -3
  34. package/es/elementDenylist.js +1 -0
  35. package/es/enhance-user-content/doc_previews.js +24 -35
  36. package/es/enhance-user-content/enhance_user_content.js +32 -67
  37. package/es/enhance-user-content/external_links.js +6 -9
  38. package/es/enhance-user-content/index.js +1 -0
  39. package/es/enhance-user-content/instructure_helper.js +22 -50
  40. package/es/enhance-user-content/jqueryish_funcs.js +8 -11
  41. package/es/enhance-user-content/mathml.js +48 -107
  42. package/es/enhance-user-content/media_comment_thumbnail.js +6 -25
  43. package/es/format-message.js +4 -5
  44. package/es/getThemeVars.js +8 -6
  45. package/es/getTranslations.js +1 -78
  46. package/es/index.d.ts +59 -0
  47. package/es/index.js +6 -6
  48. package/es/rce/AlertMessageArea.js +15 -16
  49. package/es/rce/DraggingBlocker.js +4 -2
  50. package/es/rce/KeyboardShortcutModal.js +3 -2
  51. package/es/rce/RCE.js +16 -17
  52. package/es/rce/RCEGlobals.js +12 -10
  53. package/es/rce/RCEVariants.js +29 -14
  54. package/es/rce/RCEWrapper.js +530 -641
  55. package/es/rce/RCEWrapper.utils.js +131 -0
  56. package/es/rce/RCEWrapperProps.js +9 -5
  57. package/es/rce/RceHtmlEditor.js +17 -19
  58. package/es/rce/ResizeHandle.js +4 -10
  59. package/es/rce/RestoreAutoSaveModal.js +1 -2
  60. package/es/rce/ShowOnFocusButton/index.js +2 -8
  61. package/es/rce/StatusBar.js +10 -44
  62. package/es/rce/alertHandler.js +1 -4
  63. package/es/rce/contentInsertion.js +36 -59
  64. package/es/rce/contentInsertionUtils.js +6 -8
  65. package/es/rce/contentRendering.js +13 -17
  66. package/es/rce/customEvents.js +1 -0
  67. package/es/rce/editorLanguage.js +23 -11
  68. package/es/rce/indicatorRegion.js +7 -7
  69. package/es/rce/normalizeLocale.js +5 -3
  70. package/es/rce/normalizeProps.js +7 -5
  71. package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
  72. package/es/rce/plugins/instructure_color/clickCallback.js +82 -0
  73. package/es/rce/plugins/instructure_color/components/ColorPicker.js +294 -0
  74. package/es/rce/plugins/instructure_color/components/ColorPopup.js +67 -0
  75. package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
  76. package/es/rce/plugins/instructure_color/plugin.js +40 -0
  77. package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
  78. package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
  79. package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
  80. package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
  81. package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
  82. package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +26 -25
  83. package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +2 -3
  84. package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
  85. package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
  86. package/es/rce/plugins/instructure_documents/components/Link.js +4 -20
  87. package/es/rce/plugins/instructure_documents/plugin.js +7 -14
  88. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
  89. package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
  90. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +17 -37
  91. package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +14 -15
  92. package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +6 -5
  93. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
  94. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +14 -8
  95. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +13 -18
  96. package/es/rce/plugins/instructure_equation/MathIcon/index.js +4 -5
  97. package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
  98. package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
  99. package/es/rce/plugins/instructure_equation/mathlive/index.js +167 -16
  100. package/es/rce/plugins/instructure_equation/plugin.js +7 -10
  101. package/es/rce/plugins/instructure_fullscreen/plugin.js +1 -6
  102. package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
  103. package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
  104. package/es/rce/plugins/instructure_icon_maker/clickCallback.js +5 -8
  105. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +47 -51
  106. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +10 -10
  107. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +11 -11
  108. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +6 -6
  109. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +8 -10
  110. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +32 -31
  111. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +24 -35
  112. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +32 -32
  113. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +11 -11
  114. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +16 -15
  115. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
  116. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +11 -11
  117. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +9 -13
  118. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +12 -13
  119. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +33 -80
  120. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +34 -28
  121. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
  122. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
  123. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +5 -5
  124. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +7 -8
  125. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +5 -7
  126. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +5 -10
  127. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
  128. package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +38 -60
  129. package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
  130. package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
  131. package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
  132. package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
  133. package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +2 -4
  134. package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
  135. package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
  136. package/es/rce/plugins/instructure_icon_maker/svg/image.js +74 -90
  137. package/es/rce/plugins/instructure_icon_maker/svg/index.js +17 -24
  138. package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  139. package/es/rce/plugins/instructure_icon_maker/svg/settings.js +48 -58
  140. package/es/rce/plugins/instructure_icon_maker/svg/shape.js +5 -54
  141. package/es/rce/plugins/instructure_icon_maker/svg/text.js +35 -124
  142. package/es/rce/plugins/instructure_icon_maker/svg/utils.js +3 -11
  143. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +4 -9
  144. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
  145. package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
  146. package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +2 -3
  147. package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
  148. package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
  149. package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +9 -31
  150. package/es/rce/plugins/instructure_image/ImageList/Image.js +8 -14
  151. package/es/rce/plugins/instructure_image/ImageList/index.js +8 -10
  152. package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +9 -31
  153. package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +6 -19
  154. package/es/rce/plugins/instructure_image/Images/index.js +1 -3
  155. package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
  156. package/es/rce/plugins/instructure_image/plugin.js +14 -20
  157. package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
  158. package/es/rce/plugins/instructure_links/components/AccordionSection.js +8 -8
  159. package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
  160. package/es/rce/plugins/instructure_links/components/Link.js +68 -84
  161. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +2 -23
  162. package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +3 -6
  163. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
  164. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +3 -14
  165. package/es/rce/plugins/instructure_links/components/LinkSet.js +32 -57
  166. package/es/rce/plugins/instructure_links/components/LinksPanel.js +22 -10
  167. package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
  168. package/es/rce/plugins/instructure_links/components/NoResults.js +7 -14
  169. package/es/rce/plugins/instructure_links/plugin.js +23 -49
  170. package/es/rce/plugins/instructure_links/validateURL.js +81 -36
  171. package/es/rce/plugins/instructure_media_embed/clickCallback.js +5 -9
  172. package/es/rce/plugins/instructure_media_embed/components/Embed.js +7 -7
  173. package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
  174. package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
  175. package/es/rce/plugins/instructure_paste/plugin.js +29 -33
  176. package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +31 -79
  177. package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +24 -83
  178. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +39 -69
  179. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
  180. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
  181. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +5 -14
  182. package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
  183. package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
  184. package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
  185. package/es/rce/plugins/instructure_rce_external_tools/constants.js +28 -0
  186. package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +20 -6
  187. package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
  188. package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +129 -136
  189. package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +110 -112
  190. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
  191. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +4 -21
  192. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +5 -19
  193. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
  194. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
  195. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
  196. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
  197. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +23 -16
  198. package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +3 -4
  199. package/es/rce/plugins/instructure_rce_external_tools/plugin.js +11 -20
  200. package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
  201. package/es/rce/plugins/instructure_rce_external_tools/util/externalToolsForToolbar.js +42 -0
  202. package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +6 -35
  203. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +13 -17
  204. package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
  205. package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +16 -66
  206. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +21 -35
  207. package/es/rce/plugins/instructure_record/clickCallback.js +32 -44
  208. package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
  209. package/es/rce/plugins/instructure_record/plugin.js +11 -18
  210. package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +4 -8
  211. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +34 -51
  212. package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +12 -30
  213. package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
  214. package/es/rce/plugins/instructure_search_and_replace/plugin.js +2 -5
  215. package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
  216. package/es/rce/plugins/instructure_wordcount/clickCallback.js +5 -9
  217. package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +27 -37
  218. package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
  219. package/es/rce/plugins/instructure_wordcount/utils/countContent.js +4 -11
  220. package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +6 -8
  221. package/es/rce/plugins/shared/CanvasContentTray.js +29 -63
  222. package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
  223. package/es/rce/plugins/shared/ColorInput.js +27 -39
  224. package/es/rce/plugins/shared/ConditionalTooltip.js +6 -6
  225. package/es/rce/plugins/shared/ContentSelection.js +29 -78
  226. package/es/rce/plugins/shared/DimensionUtils.js +3 -12
  227. package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
  228. package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
  229. package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
  230. package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
  231. package/es/rce/plugins/shared/EventUtils.js +2 -4
  232. package/es/rce/plugins/shared/Filter.js +8 -38
  233. package/es/rce/plugins/shared/FixedContentTray.js +16 -17
  234. package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +4 -12
  235. package/es/rce/plugins/shared/ImageCropper/Modal.js +16 -20
  236. package/es/rce/plugins/shared/ImageCropper/Preview.js +18 -24
  237. package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
  238. package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +10 -14
  239. package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +4 -4
  240. package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +5 -15
  241. package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +8 -11
  242. package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +5 -16
  243. package/es/rce/plugins/shared/ImageCropper/controls/index.js +5 -5
  244. package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +16 -31
  245. package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
  246. package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +19 -31
  247. package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
  248. package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
  249. package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
  250. package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
  251. package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
  252. package/es/rce/plugins/shared/ImageCropper/svg/shape.js +5 -22
  253. package/es/rce/plugins/shared/ImageCropper/svg/utils.js +3 -4
  254. package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +20 -50
  255. package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
  256. package/es/rce/plugins/shared/ImageOptionsForm.js +18 -20
  257. package/es/rce/plugins/shared/LinkDisplay.js +9 -11
  258. package/es/rce/plugins/shared/PreviewIcon.js +9 -15
  259. package/es/rce/plugins/shared/Previewable.js +1 -0
  260. package/es/rce/plugins/shared/RceFileBrowser.js +7 -10
  261. package/es/rce/plugins/shared/StoreContext.js +9 -12
  262. package/es/rce/plugins/shared/StudioLtiSupportUtils.js +15 -12
  263. package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
  264. package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +19 -25
  265. package/es/rce/plugins/shared/Upload/CategoryProcessor.js +2 -3
  266. package/es/rce/plugins/shared/Upload/ComputerPanel.js +19 -40
  267. package/es/rce/plugins/shared/Upload/PanelFilter.js +10 -20
  268. package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
  269. package/es/rce/plugins/shared/Upload/UploadFile.js +32 -38
  270. package/es/rce/plugins/shared/Upload/UploadFileModal.js +37 -59
  271. package/es/rce/plugins/shared/Upload/UrlPanel.js +5 -5
  272. package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +25 -36
  273. package/es/rce/plugins/shared/Upload/doFileUpload.js +10 -13
  274. package/es/rce/plugins/shared/Upload/index.js +1 -0
  275. package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +8 -11
  276. package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +19 -40
  277. package/es/rce/plugins/shared/ai_tools/aiicons.js +3 -2
  278. package/es/rce/plugins/shared/ai_tools/index.js +1 -0
  279. package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
  280. package/es/rce/plugins/shared/canvasContentUtils.js +7 -11
  281. package/es/rce/plugins/shared/compressionUtils.js +18 -28
  282. package/es/rce/plugins/shared/dateUtils.js +1 -1
  283. package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
  284. package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +18 -24
  285. package/es/rce/plugins/shared/do-fetch-api-effect/get-cookie.js +1 -1
  286. package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
  287. package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
  288. package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
  289. package/es/rce/plugins/shared/fileShape.js +4 -9
  290. package/es/rce/plugins/shared/fileTypeUtils.js +34 -47
  291. package/es/rce/plugins/shared/fileUtils.js +1 -2
  292. package/es/rce/plugins/shared/linkUtils.js +1 -16
  293. package/es/rce/plugins/shared/round.js +2 -2
  294. package/es/rce/plugins/shared/trayUtils.js +7 -3
  295. package/es/rce/plugins/shared/useDataUrl.js +13 -14
  296. package/es/rce/plugins/shared/useFilterSettings.js +3 -3
  297. package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +4 -8
  298. package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +12 -72
  299. package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
  300. package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
  301. package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
  302. package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +2 -9
  303. package/es/rce/plugins/tinymce-a11y-checker/plugin.js +18 -24
  304. package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
  305. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
  306. package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +2 -7
  307. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
  308. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
  309. package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
  310. package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
  311. package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +2 -6
  312. package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
  313. package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
  314. package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +2 -8
  315. package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
  316. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
  317. package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
  318. package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
  319. package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
  320. package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +3 -30
  321. package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +18 -18
  322. package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +6 -12
  323. package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
  324. package/es/rce/root.js +17 -16
  325. package/es/rce/sanitizePlugins.js +1 -3
  326. package/es/rce/style.js +1 -4
  327. package/es/rce/tinyRCE.js +14 -9
  328. package/es/rce/tinymce.oxide.content.min.css.js +1 -0
  329. package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
  330. package/es/rce/transformContent.js +9 -11
  331. package/es/rce/types.js +1 -0
  332. package/es/rce/userOS.js +1 -1
  333. package/es/rce/wrapInitCb.js +50 -43
  334. package/es/rcs/api.js +100 -171
  335. package/es/rcs/buildError.js +8 -20
  336. package/es/rcs/fake.js +9 -20
  337. package/es/sidebar/actions/all_files.js +2 -0
  338. package/es/sidebar/actions/data.js +4 -7
  339. package/es/sidebar/actions/documents.js +19 -18
  340. package/es/sidebar/actions/files.js +21 -28
  341. package/es/sidebar/actions/filter.js +5 -5
  342. package/es/sidebar/actions/flickr.js +1 -1
  343. package/es/sidebar/actions/images.js +32 -37
  344. package/es/sidebar/actions/links.js +1 -0
  345. package/es/sidebar/actions/media.js +27 -28
  346. package/es/sidebar/actions/session.js +2 -5
  347. package/es/sidebar/actions/ui.js +1 -0
  348. package/es/sidebar/actions/upload.js +38 -74
  349. package/es/sidebar/containers/Sidebar.js +1 -2
  350. package/es/sidebar/containers/sidebarHandlers.js +9 -13
  351. package/es/sidebar/dragHtml.js +11 -5
  352. package/es/sidebar/reducers/all_files.js +5 -6
  353. package/es/sidebar/reducers/collection.js +12 -15
  354. package/es/sidebar/reducers/collections.js +6 -8
  355. package/es/sidebar/reducers/documents.js +7 -16
  356. package/es/sidebar/reducers/files.js +4 -6
  357. package/es/sidebar/reducers/filter.js +8 -23
  358. package/es/sidebar/reducers/flickr.js +10 -12
  359. package/es/sidebar/reducers/folder.js +16 -18
  360. package/es/sidebar/reducers/folders.js +4 -6
  361. package/es/sidebar/reducers/images.js +4 -16
  362. package/es/sidebar/reducers/index.js +3 -1
  363. package/es/sidebar/reducers/media.js +7 -16
  364. package/es/sidebar/reducers/newPageLinkExpanded.js +2 -5
  365. package/es/sidebar/reducers/noop.js +2 -2
  366. package/es/sidebar/reducers/rootFolderId.js +2 -5
  367. package/es/sidebar/reducers/session.js +4 -6
  368. package/es/sidebar/reducers/ui.js +6 -25
  369. package/es/sidebar/reducers/upload.js +16 -64
  370. package/es/sidebar/store/configureStore.js +1 -0
  371. package/es/sidebar/store/initialState.js +14 -26
  372. package/es/translations/locales/ab.js +1 -0
  373. package/es/translations/locales/ar.js +72 -8
  374. package/es/translations/locales/ca.js +72 -8
  375. package/es/translations/locales/cs.js +1 -0
  376. package/es/translations/locales/cs_CZ.js +1 -0
  377. package/es/translations/locales/cy.js +72 -8
  378. package/es/translations/locales/da-x-k12.js +72 -8
  379. package/es/translations/locales/da.js +72 -8
  380. package/es/translations/locales/da_DK.js +1 -0
  381. package/es/translations/locales/de.js +72 -8
  382. package/es/translations/locales/el.js +4 -0
  383. package/es/translations/locales/en-AU-x-unimelb.js +72 -8
  384. package/es/translations/locales/en-GB-x-ukhe.js +72 -8
  385. package/es/translations/locales/en.js +72 -8
  386. package/es/translations/locales/en_AU.js +72 -8
  387. package/es/translations/locales/en_CA.js +72 -8
  388. package/es/translations/locales/en_CY.js +72 -8
  389. package/es/translations/locales/en_GB.js +72 -8
  390. package/es/translations/locales/en_NZ.js +1 -0
  391. package/es/translations/locales/en_SE.js +1 -0
  392. package/es/translations/locales/en_US.js +1 -0
  393. package/es/translations/locales/es.js +72 -8
  394. package/es/translations/locales/es_ES.js +72 -8
  395. package/es/translations/locales/es_GT.js +1 -0
  396. package/es/translations/locales/fa_IR.js +7 -0
  397. package/es/translations/locales/fi.js +72 -8
  398. package/es/translations/locales/fr.js +72 -8
  399. package/es/translations/locales/fr_CA.js +73 -9
  400. package/es/translations/locales/ga.js +5 -13
  401. package/es/translations/locales/he.js +7 -0
  402. package/es/translations/locales/hi.js +72 -8
  403. package/es/translations/locales/ht.js +72 -8
  404. package/es/translations/locales/hu.js +7 -6
  405. package/es/translations/locales/hu_HU.js +1 -0
  406. package/es/translations/locales/hy.js +1 -0
  407. package/es/translations/locales/id.js +72 -8
  408. package/es/translations/locales/id_ID.js +1 -0
  409. package/es/translations/locales/is.js +72 -8
  410. package/es/translations/locales/it.js +72 -8
  411. package/es/translations/locales/ja.js +72 -8
  412. package/es/translations/locales/ko.js +1 -0
  413. package/es/translations/locales/ko_KR.js +1 -0
  414. package/es/translations/locales/lt.js +1 -0
  415. package/es/translations/locales/lt_LT.js +1 -0
  416. package/es/translations/locales/mi.js +72 -8
  417. package/es/translations/locales/mn_MN.js +1 -0
  418. package/es/translations/locales/ms.js +72 -8
  419. package/es/translations/locales/nb-x-k12.js +72 -8
  420. package/es/translations/locales/nb.js +72 -8
  421. package/es/translations/locales/nl.js +72 -8
  422. package/es/translations/locales/nl_NL.js +1 -0
  423. package/es/translations/locales/nn.js +7 -6
  424. package/es/translations/locales/pl.js +72 -8
  425. package/es/translations/locales/pt.js +72 -8
  426. package/es/translations/locales/pt_BR.js +72 -8
  427. package/es/translations/locales/ro.js +1 -0
  428. package/es/translations/locales/ru.js +72 -8
  429. package/es/translations/locales/se.js +1 -0
  430. package/es/translations/locales/sl.js +72 -8
  431. package/es/translations/locales/sv-x-k12.js +72 -8
  432. package/es/translations/locales/sv.js +72 -8
  433. package/es/translations/locales/sv_SE.js +1 -0
  434. package/es/translations/locales/tg.js +1 -0
  435. package/es/translations/locales/th.js +72 -8
  436. package/es/translations/locales/th_TH.js +1 -0
  437. package/es/translations/locales/tl_PH.js +1 -0
  438. package/es/translations/locales/tr.js +7 -0
  439. package/es/translations/locales/uk_UA.js +7 -0
  440. package/es/translations/locales/vi.js +72 -8
  441. package/es/translations/locales/vi_VN.js +1 -0
  442. package/es/translations/locales/zh-Hans.js +72 -8
  443. package/es/translations/locales/zh-Hant.js +72 -8
  444. package/es/translations/locales/zh.js +72 -8
  445. package/es/translations/locales/zh_HK.js +72 -8
  446. package/es/translations/locales/zh_TW.Big5.js +1 -0
  447. package/es/translations/locales/zh_TW.js +1 -0
  448. package/es/translations/tinymce/ar_SA.js +1 -0
  449. package/es/translations/tinymce/fi.js +1 -0
  450. package/es/translations/tinymce/ga.js +1 -0
  451. package/es/translations/tinymce/id.js +1 -0
  452. package/es/translations/tinymce/ru.js +1 -0
  453. package/es/translations/tinymce/ru_RU.js +1 -0
  454. package/es/translations/tinymce/sl.js +1 -0
  455. package/es/translations/tinymce/sr.js +1 -0
  456. package/es/translations/tinymce/th.js +1 -0
  457. package/es/translations/tinymce/uk_UA.js +1 -0
  458. package/es/translations/tinymce/vi_VN.js +1 -0
  459. package/es/util/TypedDict.js +4 -2
  460. package/es/util/elem-util.js +1 -1
  461. package/es/util/encrypted-storage.js +3 -13
  462. package/es/util/file-url-util.js +2 -7
  463. package/es/util/fullscreenHelpers.js +9 -9
  464. package/es/util/instui-icon-helper.js +4 -3
  465. package/es/util/loadingPlaceholder.js +39 -41
  466. package/es/util/simpleCache.js +1 -5
  467. package/es/util/string-util.js +1 -1
  468. package/es/util/textarea-editing-util.js +3 -7
  469. package/es/util/tinymce-plugin-util.js +0 -5
  470. package/es/util/url-util.js +20 -29
  471. package/eslint.config.js +250 -0
  472. package/jest.config.js +1 -1
  473. package/locales/en.json +190 -10
  474. package/package.json +78 -82
  475. package/scripts/build-canvas +2 -1
  476. package/scripts/build.js +4 -4
  477. package/scripts/installTranslations.js +7 -8
  478. package/testcafe/RCEWrapper.test.js +0 -1
  479. package/testcafe/StatusBar.test.js +0 -1
  480. package/testcafe/axe.test.js +3 -4
  481. package/testcafe/enhanceUserContent.test.js +0 -1
  482. package/tsconfig.json +21 -16
  483. package/{es/rce/__mocks__/styleMock.js → types/format-message-generate-id.d.ts} +6 -2
  484. package/{es/rce/plugins/shared/__mocks__/screenfull.js → types/js-beautify.d.ts} +4 -7
  485. package/.eslintrc +0 -45
  486. package/.prettierignore +0 -6
  487. package/es/rce/__mocks__/_mockCryptoEs.js +0 -124
  488. package/es/rce/__mocks__/tinymceReact.js +0 -55
  489. package/es/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
@@ -15,18 +15,18 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import { createSvgElement, splitTextIntoLines } from './utils';
19
20
  import { TEXT_BACKGROUND_PADDING, BASE_SIZE, TEXT_SIZE, MAX_CHAR_COUNT, Size, TEXT_SIZE_FONT_DIFF } from './constants';
20
21
  import { Shape } from './shape';
21
- export function buildText(_ref) {
22
- let {
23
- text,
24
- textPosition,
25
- textSize,
26
- textColor,
27
- shape,
28
- size
29
- } = _ref;
22
+ export function buildText({
23
+ text,
24
+ textPosition,
25
+ textSize,
26
+ textColor,
27
+ shape,
28
+ size
29
+ }) {
30
30
  if (!text.trim()) return null;
31
31
  const lines = splitTextIntoLines(text, MAX_CHAR_COUNT[textSize]);
32
32
  const textElement = createSvgElement('text', {
@@ -53,21 +53,20 @@ export function buildText(_ref) {
53
53
  });
54
54
  return textElement;
55
55
  }
56
- export function buildTextBackground(_ref2) {
57
- let {
58
- text,
59
- textPosition,
60
- textSize,
61
- textBackgroundColor,
62
- shape,
63
- size
64
- } = _ref2;
56
+ export function buildTextBackground({
57
+ text,
58
+ textPosition,
59
+ textSize,
60
+ textBackgroundColor,
61
+ shape,
62
+ size
63
+ }) {
65
64
  if (!text.trim()) return null;
66
65
  const linesCount = splitTextIntoLines(text, MAX_CHAR_COUNT[textSize]).length;
67
66
  const xValue = getTextXValue(text, textSize, size);
68
67
  const yValue = getTextYValue(textPosition, textSize, shape, size, linesCount);
69
- const textWidth = getTextWidth(text, textSize); // An extra line is added due svg text baseline behavior the first line is not counted regularly.
70
-
68
+ const textWidth = getTextWidth(text, textSize);
69
+ // An extra line is added due svg text baseline behavior the first line is not counted regularly.
71
70
  const textHeight = getTextHeight(linesCount + 1, textSize);
72
71
  const paddingSize = TEXT_BACKGROUND_PADDING * 2;
73
72
  const pathElement = createSvgElement('path');
@@ -82,38 +81,33 @@ export function buildTextBackground(_ref2) {
82
81
  pathElement.setAttribute('fill', textBackgroundColor || '');
83
82
  return pathElement;
84
83
  }
85
- export function getContainerWidth(_ref3) {
86
- let {
87
- text,
88
- textSize,
89
- size
90
- } = _ref3;
84
+ export function getContainerWidth({
85
+ text,
86
+ textSize,
87
+ size
88
+ }) {
91
89
  const fontWeight = 2;
92
90
  const base = BASE_SIZE[size];
93
91
  const textWidth = Math.floor(getTextWidth(text, textSize)) + TEXT_BACKGROUND_PADDING * 2 + fontWeight;
94
92
  return Math.max(base, textWidth);
95
93
  }
96
- export function getContainerHeight(_ref4) {
97
- let {
98
- text,
99
- textPosition,
100
- textSize,
101
- shape,
102
- size
103
- } = _ref4;
94
+ export function getContainerHeight({
95
+ text,
96
+ textPosition,
97
+ textSize,
98
+ shape,
99
+ size
100
+ }) {
104
101
  const base = BASE_SIZE[size];
105
-
106
102
  if (!text || text.trim().length === 0) {
107
103
  return base;
108
104
  }
109
-
110
105
  const linesCount = splitTextIntoLines(text, MAX_CHAR_COUNT[textSize]).length;
111
106
  const textYValue = getTextYValue(textPosition, textSize, shape, size, linesCount);
112
107
  const textHeight = getTextHeight(linesCount, textSize);
113
108
  const textBackgroundHeight = textYValue + textHeight + TEXT_BACKGROUND_PADDING * 2;
114
109
  return Math.max(base, textBackgroundHeight);
115
110
  }
116
-
117
111
  function getTextWidth(text, textSize) {
118
112
  const canvas = document.createElement('canvas');
119
113
  const context = canvas.getContext('2d');
@@ -122,13 +116,11 @@ function getTextWidth(text, textSize) {
122
116
  const widths = lines.map(line => context.measureText(line).width);
123
117
  return Math.max(...widths);
124
118
  }
125
-
126
119
  function getTextHeight(linesCount, textSize) {
127
120
  // Since the svg text's initial Y position starts on the bottom of the first line
128
121
  // one line is subtracted to the count
129
122
  return (linesCount - 1) * TEXT_SIZE[textSize];
130
123
  }
131
-
132
124
  function getTextXValue(text, textSize, size) {
133
125
  const containerWidth = getContainerWidth({
134
126
  text,
@@ -138,90 +130,70 @@ function getTextXValue(text, textSize, size) {
138
130
  const textWidth = getTextWidth(text, textSize);
139
131
  return Math.floor((containerWidth - textWidth) * 0.5);
140
132
  }
141
-
142
133
  function getTextYValue(textPosition, textSize, shape, size, linesCount) {
143
134
  switch (textPosition) {
144
135
  case 'middle':
145
136
  {
146
- const baseline = getYMiddleText(textSize, shape, size); // Represents the Y difference for multiline text to keep it vertically centered
147
-
137
+ const baseline = getYMiddleText(textSize, shape, size);
138
+ // Represents the Y difference for multiline text to keep it vertically centered
148
139
  const multilineDiff = (linesCount - 1) * TEXT_SIZE[textSize] / 2;
149
140
  return baseline - multilineDiff;
150
141
  }
151
-
152
142
  case 'bottom-third':
153
143
  {
154
- const baseline = getYBottomThirdText(textSize, shape, size); // Represents the Y difference for multiline text to keep it vertically centered
155
-
144
+ const baseline = getYBottomThirdText(textSize, shape, size);
145
+ // Represents the Y difference for multiline text to keep it vertically centered
156
146
  const multilineDiff = (linesCount - 1) * TEXT_SIZE[textSize] / 2;
157
147
  return baseline - multilineDiff;
158
148
  }
159
-
160
149
  case 'below':
161
150
  return getYBelowText(textSize, shape, size);
162
-
163
151
  default:
164
152
  throw new Error(`Invalid text position: ${textPosition}`);
165
153
  }
166
154
  }
167
-
168
155
  function getYMiddleText(textSize, shape, size) {
169
156
  switch (textSize) {
170
157
  case Size.Small:
171
158
  return getYMiddleTextForShape(getYMiddleSmallTextForShape, shape, size);
172
-
173
159
  case Size.Medium:
174
160
  return getYMiddleTextForShape(getYMiddleMediumTextForShape, shape, size);
175
-
176
161
  case Size.Large:
177
162
  return getYMiddleTextForShape(getYMiddleLargeTextForShape, shape, size);
178
-
179
163
  case Size.ExtraLarge:
180
164
  return getYMiddleTextForShape(getYMiddleXLargeTextForShape, shape, size);
181
-
182
165
  default:
183
166
  throw new Error(`Invalid text size: ${textSize}`);
184
167
  }
185
168
  }
186
-
187
169
  function getYBottomThirdText(textSize, shape, size) {
188
170
  switch (textSize) {
189
171
  case Size.Small:
190
172
  return getYMiddleTextForShape(getYBottomThirdSmallTextForShape, shape, size);
191
-
192
173
  case Size.Medium:
193
174
  return getYMiddleTextForShape(getYBottomThirdMediumTextForShape, shape, size);
194
-
195
175
  case Size.Large:
196
176
  return getYMiddleTextForShape(getYBottomThirdLargeTextForShape, shape, size);
197
-
198
177
  case Size.ExtraLarge:
199
178
  return getYMiddleTextForShape(getYBottomThirdXLargeTextForShape, shape, size);
200
-
201
179
  default:
202
180
  throw new Error(`Invalid text size: ${textSize}`);
203
181
  }
204
182
  }
205
-
206
183
  function getYBelowText(textSize, shape, size) {
207
184
  switch (textSize) {
208
185
  case Size.Small:
209
186
  return getYMiddleTextForShape(getYBelowSmallTextForShape, shape, size);
210
-
211
187
  case Size.Medium:
212
188
  return getYMiddleTextForShape(getYBelowMediumTextForShape, shape, size);
213
-
214
189
  case Size.Large:
215
190
  return getYMiddleTextForShape(getYBelowLargeTextForShape, shape, size);
216
-
217
191
  case Size.ExtraLarge:
218
192
  return getYMiddleTextForShape(getYBelowXLargeTextForShape, shape, size);
219
-
220
193
  default:
221
194
  throw new Error(`Invalid text size: ${textSize}`);
222
195
  }
223
196
  }
224
-
225
197
  function getYMiddleTextForShape(getYTextSizeCallback, shape, size) {
226
198
  switch (shape) {
227
199
  case Shape.Square:
@@ -233,235 +205,174 @@ function getYMiddleTextForShape(getYTextSizeCallback, shape, size) {
233
205
  case Shape.Octagon:
234
206
  case Shape.Star:
235
207
  return getYTextSizeCallback(size);
236
-
237
208
  default:
238
209
  throw new Error(`Invalid shape: ${shape}`);
239
210
  }
240
211
  }
241
-
242
212
  function getYMiddleSmallTextForShape(size) {
243
213
  switch (size) {
244
214
  case Size.ExtraSmall:
245
215
  return 43;
246
-
247
216
  case Size.Small:
248
217
  return 67;
249
-
250
218
  case Size.Medium:
251
219
  return 85;
252
-
253
220
  case Size.Large:
254
221
  return 115;
255
-
256
222
  default:
257
223
  throw new Error(`Invalid size: ${size}`);
258
224
  }
259
225
  }
260
-
261
226
  function getYMiddleMediumTextForShape(size) {
262
227
  switch (size) {
263
228
  case Size.ExtraSmall:
264
229
  return 43;
265
-
266
230
  case Size.Small:
267
231
  return 67;
268
-
269
232
  case Size.Medium:
270
233
  return 85;
271
-
272
234
  case Size.Large:
273
235
  return 115;
274
-
275
236
  default:
276
237
  throw new Error(`Invalid size: ${size}`);
277
238
  }
278
239
  }
279
-
280
240
  function getYMiddleLargeTextForShape(size) {
281
241
  switch (size) {
282
242
  case Size.ExtraSmall:
283
243
  return 45;
284
-
285
244
  case Size.Small:
286
245
  return 69;
287
-
288
246
  case Size.Medium:
289
247
  return 87;
290
-
291
248
  case Size.Large:
292
249
  return 117;
293
-
294
250
  default:
295
251
  throw new Error(`Invalid size: ${size}`);
296
252
  }
297
253
  }
298
-
299
254
  function getYMiddleXLargeTextForShape(size) {
300
255
  switch (size) {
301
256
  case Size.ExtraSmall:
302
257
  return 47;
303
-
304
258
  case Size.Small:
305
259
  return 71;
306
-
307
260
  case Size.Medium:
308
261
  return 89;
309
-
310
262
  case Size.Large:
311
263
  return 119;
312
-
313
264
  default:
314
265
  throw new Error(`Invalid size: ${size}`);
315
266
  }
316
267
  }
317
-
318
268
  function getYBottomThirdSmallTextForShape(size) {
319
269
  switch (size) {
320
270
  case Size.ExtraSmall:
321
271
  return 73;
322
-
323
272
  case Size.Small:
324
273
  return 121;
325
-
326
274
  case Size.Medium:
327
275
  return 157;
328
-
329
276
  case Size.Large:
330
277
  return 217;
331
-
332
278
  default:
333
279
  throw new Error(`Invalid size: ${size}`);
334
280
  }
335
281
  }
336
-
337
282
  function getYBottomThirdMediumTextForShape(size) {
338
283
  switch (size) {
339
284
  case Size.ExtraSmall:
340
285
  return 74;
341
-
342
286
  case Size.Small:
343
287
  return 122;
344
-
345
288
  case Size.Medium:
346
289
  return 158;
347
-
348
290
  case Size.Large:
349
291
  return 218;
350
-
351
292
  default:
352
293
  throw new Error(`Invalid size: ${size}`);
353
294
  }
354
295
  }
355
-
356
296
  function getYBottomThirdLargeTextForShape(size) {
357
297
  switch (size) {
358
298
  case Size.ExtraSmall:
359
299
  return 75;
360
-
361
300
  case Size.Small:
362
301
  return 123;
363
-
364
302
  case Size.Medium:
365
303
  return 159;
366
-
367
304
  case Size.Large:
368
305
  return 219;
369
-
370
306
  default:
371
307
  throw new Error(`Invalid size: ${size}`);
372
308
  }
373
309
  }
374
-
375
310
  function getYBottomThirdXLargeTextForShape(size) {
376
311
  switch (size) {
377
312
  case Size.ExtraSmall:
378
313
  return 77;
379
-
380
314
  case Size.Small:
381
315
  return 125;
382
-
383
316
  case Size.Medium:
384
317
  return 161;
385
-
386
318
  case Size.Large:
387
319
  return 221;
388
-
389
320
  default:
390
321
  throw new Error(`Invalid size: ${size}`);
391
322
  }
392
323
  }
393
-
394
324
  function getYBelowSmallTextForShape(size) {
395
325
  switch (size) {
396
326
  case Size.ExtraSmall:
397
327
  return 96;
398
-
399
328
  case Size.Small:
400
329
  return 144;
401
-
402
330
  case Size.Medium:
403
331
  return 180;
404
-
405
332
  case Size.Large:
406
333
  return 240;
407
-
408
334
  default:
409
335
  throw new Error(`Invalid size: ${size}`);
410
336
  }
411
337
  }
412
-
413
338
  function getYBelowMediumTextForShape(size) {
414
339
  switch (size) {
415
340
  case Size.ExtraSmall:
416
341
  return 98;
417
-
418
342
  case Size.Small:
419
343
  return 146;
420
-
421
344
  case Size.Medium:
422
345
  return 182;
423
-
424
346
  case Size.Large:
425
347
  return 242;
426
-
427
348
  default:
428
349
  throw new Error(`Invalid size: ${size}`);
429
350
  }
430
351
  }
431
-
432
352
  function getYBelowLargeTextForShape(size) {
433
353
  switch (size) {
434
354
  case Size.ExtraSmall:
435
355
  return 104;
436
-
437
356
  case Size.Small:
438
357
  return 152;
439
-
440
358
  case Size.Medium:
441
359
  return 188;
442
-
443
360
  case Size.Large:
444
361
  return 248;
445
-
446
362
  default:
447
363
  throw new Error(`Invalid size: ${size}`);
448
364
  }
449
365
  }
450
-
451
366
  function getYBelowXLargeTextForShape(size) {
452
367
  switch (size) {
453
368
  case Size.ExtraSmall:
454
369
  return 110;
455
-
456
370
  case Size.Small:
457
371
  return 158;
458
-
459
372
  case Size.Medium:
460
373
  return 194;
461
-
462
374
  case Size.Large:
463
375
  return 254;
464
-
465
376
  default:
466
377
  throw new Error(`Invalid size: ${size}`);
467
378
  }
@@ -15,11 +15,10 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
- export function createSvgElement(tag) {
19
- let attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18
+
19
+ export function createSvgElement(tag, attributes = {}) {
20
20
  const element = document.createElementNS('http://www.w3.org/2000/svg', tag);
21
- Object.entries(attributes).forEach(_ref => {
22
- let [attr, value] = _ref;
21
+ Object.entries(attributes).forEach(([attr, value]) => {
23
22
  element.setAttribute(attr, value);
24
23
  });
25
24
  return element;
@@ -27,23 +26,18 @@ export function createSvgElement(tag) {
27
26
  export function splitTextIntoLines(text, maxChars) {
28
27
  // Removes the beginning or trailing spaces, newlines or tabs.
29
28
  const trimmedText = text.replace(/^\s+|\s+$/g, '');
30
-
31
29
  if (!text || trimmedText.length === 0 || maxChars <= 0) {
32
30
  return [];
33
31
  }
34
-
35
32
  const lines = [];
36
33
  const words = trimmedText.match(/\S+/g);
37
-
38
34
  while (words.length) {
39
35
  let newLineNeeded = false;
40
36
  let line = '';
41
37
  let word;
42
-
43
38
  while (!newLineNeeded && (word = words.shift())) {
44
39
  word = word.trim();
45
40
  const newLength = (line + word).length;
46
-
47
41
  if (word.length >= maxChars + 1) {
48
42
  // if a single word doesn't fit in a line
49
43
  const start = word.substring(0, maxChars - 1);
@@ -60,11 +54,9 @@ export function splitTextIntoLines(text, maxChars) {
60
54
  newLineNeeded = true;
61
55
  }
62
56
  }
63
-
64
57
  line = line.trim();
65
58
  lines.push(line);
66
59
  }
67
-
68
60
  return lines;
69
61
  }
70
62
  export const decode = input => new DOMParser().parseFromString(input, 'text/html').documentElement.textContent;
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  /*
4
2
  * Copyright (C) 2022 - present Instructure, Inc.
5
3
  *
@@ -17,6 +15,7 @@
17
15
  * You should have received a copy of the GNU Affero General Public License along
18
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
19
17
  */
18
+
20
19
  export const ICON_MAKER_ADD_IMAGE_MENU_ID = 'AddImageMenu';
21
20
  export const shouldIgnoreClose = (target, editorId) => {
22
21
  try {
@@ -29,17 +28,13 @@ export const shouldIgnoreClose = (target, editorId) => {
29
28
  return false;
30
29
  }
31
30
  };
32
-
33
31
  const elementTreeHasAttribute = (target, attribute, value) => {
34
32
  while (target) {
35
- var _target, _target$attributes, _target$attributes$at, _target2;
36
-
37
- if (((_target = target) === null || _target === void 0 ? void 0 : (_target$attributes = _target.attributes) === null || _target$attributes === void 0 ? void 0 : (_target$attributes$at = _target$attributes[attribute]) === null || _target$attributes$at === void 0 ? void 0 : _target$attributes$at.value) === value) {
33
+ // @ts-expect-error
34
+ if (target?.attributes?.[attribute]?.value === value) {
38
35
  return true;
39
36
  }
40
-
41
- target = (_target2 = target) === null || _target2 === void 0 ? void 0 : _target2.parentElement;
37
+ target = target?.parentElement;
42
38
  }
43
-
44
39
  return false;
45
40
  };
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  import _ from 'lodash';
19
20
  export class IconMakerFormHasChanges {
20
21
  constructor(initSettings, currSettings) {
@@ -23,61 +24,46 @@ export class IconMakerFormHasChanges {
23
24
  this.initialSettings = initSettings;
24
25
  this.currentSettings = currSettings;
25
26
  }
26
-
27
27
  hasNameChange() {
28
28
  return 'name' in this.currentSettings && this.initialSettings.name !== this.currentSettings.name;
29
29
  }
30
-
31
30
  hasAltChange() {
32
31
  return 'alt' in this.currentSettings && this.initialSettings.alt !== this.currentSettings.alt;
33
32
  }
34
-
35
33
  hasShapeNameChange() {
36
34
  return 'shape' in this.currentSettings && this.initialSettings.shape !== this.currentSettings.shape;
37
35
  }
38
-
39
36
  hasShapeSizeChange() {
40
37
  return 'size' in this.currentSettings && this.initialSettings.size !== this.currentSettings.size;
41
38
  }
42
-
43
39
  hasColorNameChange() {
44
40
  return 'color' in this.currentSettings && this.initialSettings.color !== this.currentSettings.color;
45
41
  }
46
-
47
42
  hasOutlineSizeChange() {
48
43
  return 'outlineSize' in this.currentSettings && this.initialSettings.outlineSize !== this.currentSettings.outlineSize;
49
44
  }
50
-
51
45
  hasOutlineColorChange() {
52
46
  return 'outlineColor' in this.currentSettings && this.initialSettings.outlineColor !== this.currentSettings.outlineColor;
53
47
  }
54
-
55
48
  hasTextChange() {
56
49
  return 'text' in this.currentSettings && this.initialSettings.text !== this.currentSettings.text;
57
50
  }
58
-
59
51
  hasTextSizeChange() {
60
52
  return 'textSize' in this.currentSettings && this.initialSettings.textSize !== this.currentSettings.textSize;
61
53
  }
62
-
63
54
  hasTextColorChange() {
64
55
  return 'textColor' in this.currentSettings && this.initialSettings.textColor !== this.currentSettings.textColor;
65
56
  }
66
-
67
57
  hasTextBackgroundColorChange() {
68
58
  return 'textBackgroundColor' in this.currentSettings && this.initialSettings.textBackgroundColor !== this.currentSettings.textBackgroundColor;
69
59
  }
70
-
71
60
  hasTextPositionChange() {
72
61
  return 'textPosition' in this.currentSettings && this.initialSettings.textPosition !== this.currentSettings.textPosition;
73
62
  }
74
-
75
63
  hasImageSettingsChange() {
76
64
  return 'imageSettings' in this.currentSettings && !_.isEqual(this.initialSettings.imageSettings, this.currentSettings.imageSettings);
77
65
  }
78
-
79
66
  hasChanges() {
80
67
  return this.hasNameChange() || this.hasAltChange() || this.hasShapeNameChange() || this.hasShapeSizeChange() || this.hasColorNameChange() || this.hasOutlineColorChange() || this.hasOutlineSizeChange() || this.hasTextChange() || this.hasTextSizeChange() || this.hasTextColorChange() || this.hasTextBackgroundColorChange() || this.hasTextPositionChange() || this.hasImageSettingsChange();
81
68
  }
82
-
83
69
  }
@@ -1,5 +1,3 @@
1
- // @ts-nocheck
2
-
3
1
  /*
4
2
  * Copyright (C) 2022 - present Instructure, Inc.
5
3
  *
@@ -17,12 +15,13 @@
17
15
  * You should have received a copy of the GNU Affero General Public License along
18
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
19
17
  */
18
+
20
19
  import { ICON_MAKER_ATTRIBUTE, ICON_MAKER_DOWNLOAD_URL_ATTR } from '../svg/constants';
21
20
  import buildDownloadUrl from '../../shared/buildDownloadUrl';
22
-
23
21
  const addIconMakerAttributes = imageAttributes => {
22
+ // @ts-expect-error
24
23
  imageAttributes[ICON_MAKER_ATTRIBUTE] = true;
24
+ // @ts-expect-error
25
25
  imageAttributes[ICON_MAKER_DOWNLOAD_URL_ATTR] = buildDownloadUrl(imageAttributes.src);
26
26
  };
27
-
28
27
  export default addIconMakerAttributes;
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  export const hasBackgroundColor = settings => {
19
20
  return !!settings.color;
20
21
  };
@@ -22,9 +23,7 @@ export const hasText = settings => {
22
23
  return settings.text.length > 0;
23
24
  };
24
25
  export const hasImage = settings => {
25
- var _settings$imageSettin;
26
-
27
- return ((_settings$imageSettin = settings.imageSettings) === null || _settings$imageSettin === void 0 ? void 0 : _settings$imageSettin.image.length) > 0;
26
+ return settings.imageSettings?.image.length > 0;
28
27
  };
29
28
  export const hasOutline = settings => {
30
29
  return settings.outlineSize !== 'none';
@@ -15,6 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License along
16
16
  * with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
  */
18
+
18
19
  const iconLabels = {
19
20
  'أيقونة الفنون': 'art',
20
21
  'أيقونة الهندسة': 'engineering',