@instructure/canvas-rce 5.6.0-beta.0 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5430) hide show
  1. package/.mocharc.js +4 -2
  2. package/CHANGELOG.md +23 -1
  3. package/babel.config.cjs.js +24 -13
  4. package/babel.config.js +48 -29
  5. package/coverage/canvas-rce-jest.xml +3732 -1
  6. package/coverage/canvas-rce-junit.xml +389 -389
  7. package/es/canvasFileBrowser/FlashAlert.js +8 -5
  8. package/es/common/components/LoadMore.js +2 -1
  9. package/es/rce/KeyboardShortcutModal.js +10 -7
  10. package/es/rce/RCE.js +12 -6
  11. package/es/rce/RCEGlobals.js +62 -0
  12. package/es/rce/RCEWrapper.js +49 -19
  13. package/es/rce/RestoreAutoSaveModal.js +4 -3
  14. package/es/rce/contentInsertion.js +3 -1
  15. package/es/rce/initA11yChecker.js +0 -3
  16. package/es/rce/plugins/instructure_documents/components/Link.js +12 -8
  17. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  18. package/es/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  19. package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  20. package/es/rce/plugins/instructure_equation/plugin.js +44 -87
  21. package/es/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  22. package/es/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  23. package/es/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  24. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  25. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  26. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  27. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  28. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  29. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  30. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  31. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  32. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  33. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  34. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  35. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/{useArrowKeys.js → useKeyMouseEvents.js} +82 -27
  36. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +53 -9
  37. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +10 -2
  38. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  39. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  40. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +67 -3
  41. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  42. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  43. package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  44. package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  45. package/es/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  46. package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  47. package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  48. package/es/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  49. package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  50. package/es/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  51. package/es/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  52. package/es/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  53. package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  54. package/es/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  55. package/es/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  56. package/es/rce/plugins/instructure_image/ImageList/index.js +1 -1
  57. package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  58. package/es/rce/plugins/instructure_image/Images/index.js +1 -1
  59. package/es/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  60. package/es/rce/plugins/instructure_links/components/Link.js +47 -54
  61. package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  62. package/es/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  63. package/es/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  64. package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  65. package/es/rce/plugins/instructure_links/plugin.js +18 -3
  66. package/es/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  67. package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  68. package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  69. package/es/rce/plugins/shared/CanvasContentTray.js +90 -7
  70. package/es/rce/plugins/shared/ColorInput.js +4 -3
  71. package/es/rce/plugins/shared/ContentSelection.js +7 -1
  72. package/es/rce/plugins/shared/DimensionsInput/index.js +2 -2
  73. package/es/rce/plugins/shared/Filter.js +6 -5
  74. package/es/rce/plugins/shared/ImageOptionsForm.js +2 -2
  75. package/es/rce/plugins/shared/LinkDisplay.js +84 -0
  76. package/es/rce/plugins/shared/Upload/ComputerPanel.js +14 -12
  77. package/es/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  78. package/es/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  79. package/es/rce/plugins/shared/linkUtils.js +58 -0
  80. package/es/rce/plugins/shared/useDataUrl.js +14 -4
  81. package/es/rce/userOS.js +31 -0
  82. package/jest/jest-setup.js +1 -3
  83. package/jest.config.js +8 -4
  84. package/lib/canvasFileBrowser/FlashAlert.js +8 -5
  85. package/lib/common/components/LoadMore.js +2 -1
  86. package/lib/rce/KeyboardShortcutModal.js +10 -7
  87. package/lib/rce/RCE.js +12 -6
  88. package/lib/rce/RCEGlobals.js +62 -0
  89. package/lib/rce/RCEWrapper.js +49 -19
  90. package/lib/rce/RestoreAutoSaveModal.js +4 -3
  91. package/lib/rce/contentInsertion.js +3 -1
  92. package/lib/rce/initA11yChecker.js +0 -3
  93. package/lib/rce/plugins/instructure_documents/components/Link.js +12 -8
  94. package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  95. package/lib/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  96. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  97. package/lib/rce/plugins/instructure_equation/plugin.js +44 -87
  98. package/lib/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  99. package/lib/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  100. package/lib/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  101. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  102. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  103. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  104. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  105. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  106. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  107. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  108. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  109. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  110. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  111. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  112. package/lib/{translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js → rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js} +82 -27
  113. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +53 -9
  114. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +10 -2
  115. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  116. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  117. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +67 -3
  118. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  119. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  120. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  121. package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  122. package/lib/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  123. package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  124. package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  125. package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  126. package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  127. package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  128. package/lib/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  129. package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  130. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  131. package/lib/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  132. package/lib/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  133. package/lib/rce/plugins/instructure_image/ImageList/index.js +1 -1
  134. package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  135. package/lib/rce/plugins/instructure_image/Images/index.js +1 -1
  136. package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  137. package/lib/rce/plugins/instructure_links/components/Link.js +47 -54
  138. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  139. package/lib/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  140. package/lib/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  141. package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  142. package/lib/rce/plugins/instructure_links/plugin.js +18 -3
  143. package/lib/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  144. package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  145. package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  146. package/lib/rce/plugins/shared/CanvasContentTray.js +90 -7
  147. package/lib/rce/plugins/shared/ColorInput.js +4 -3
  148. package/lib/rce/plugins/shared/ContentSelection.js +7 -1
  149. package/lib/rce/plugins/shared/DimensionsInput/index.js +2 -2
  150. package/lib/rce/plugins/shared/Filter.js +6 -5
  151. package/lib/rce/plugins/shared/ImageOptionsForm.js +2 -2
  152. package/lib/rce/plugins/shared/LinkDisplay.js +84 -0
  153. package/lib/rce/plugins/shared/Upload/ComputerPanel.js +14 -12
  154. package/lib/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  155. package/lib/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  156. package/lib/rce/plugins/shared/linkUtils.js +58 -0
  157. package/lib/rce/plugins/shared/useDataUrl.js +14 -4
  158. package/lib/rce/userOS.js +31 -0
  159. package/lib/translated/ar/modules/canvasFileBrowser/FlashAlert.js +8 -5
  160. package/lib/translated/ar/modules/common/components/LoadMore.js +2 -1
  161. package/lib/translated/ar/modules/rce/KeyboardShortcutModal.js +10 -7
  162. package/lib/translated/ar/modules/rce/RCE.js +12 -6
  163. package/lib/translated/ar/modules/rce/RCEGlobals.js +62 -0
  164. package/lib/translated/ar/modules/rce/RCEWrapper.js +49 -19
  165. package/lib/translated/ar/modules/rce/RestoreAutoSaveModal.js +4 -3
  166. package/lib/translated/ar/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  167. package/lib/translated/ar/modules/rce/__tests__/contentInsertion.test.js +6 -0
  168. package/lib/translated/ar/modules/rce/__tests__/userOS.test.js +68 -0
  169. package/lib/translated/ar/modules/rce/contentInsertion.js +3 -1
  170. package/lib/translated/ar/modules/rce/initA11yChecker.js +0 -3
  171. package/lib/translated/ar/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  172. package/lib/translated/ar/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  173. package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  174. package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  175. package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  176. package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  177. package/lib/translated/ar/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  178. package/lib/translated/ar/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  179. package/lib/translated/ar/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  180. package/lib/translated/ar/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  181. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  182. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  183. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  184. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  185. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  186. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  187. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  188. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  189. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  190. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  191. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  192. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  193. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  194. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  195. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  196. package/lib/{rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js → translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js} +82 -27
  197. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  198. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  199. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  200. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  201. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  202. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  203. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  204. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  205. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  206. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  207. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  208. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  209. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  210. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  211. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  212. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  213. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  214. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  215. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  216. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  217. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  218. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  219. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  220. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  221. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  222. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  223. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  224. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  225. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  226. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  227. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  228. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  229. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  230. package/lib/translated/ar/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  231. package/lib/translated/ar/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  232. package/lib/translated/ar/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  233. package/lib/translated/ar/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  234. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  235. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  236. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  237. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  238. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  239. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  240. package/lib/translated/ar/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  241. package/lib/translated/ar/modules/rce/plugins/instructure_links/plugin.js +18 -3
  242. package/lib/translated/ar/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  243. package/lib/translated/ar/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  244. package/lib/translated/ar/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  245. package/lib/translated/ar/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  246. package/lib/translated/ar/modules/rce/plugins/shared/ColorInput.js +4 -3
  247. package/lib/translated/ar/modules/rce/plugins/shared/ContentSelection.js +7 -1
  248. package/lib/translated/ar/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  249. package/lib/translated/ar/modules/rce/plugins/shared/Filter.js +6 -5
  250. package/lib/translated/ar/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  251. package/lib/translated/ar/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  252. package/lib/translated/ar/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  253. package/lib/translated/ar/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  254. package/lib/translated/ar/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  255. package/lib/translated/ar/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  256. package/lib/translated/ar/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  257. package/lib/translated/ar/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  258. package/lib/translated/ar/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  259. package/lib/translated/ar/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  260. package/lib/translated/ar/modules/rce/plugins/shared/linkUtils.js +58 -0
  261. package/lib/translated/ar/modules/rce/plugins/shared/useDataUrl.js +14 -4
  262. package/lib/translated/ar/modules/rce/userOS.js +31 -0
  263. package/lib/translated/ca/modules/canvasFileBrowser/FlashAlert.js +8 -5
  264. package/lib/translated/ca/modules/common/components/LoadMore.js +2 -1
  265. package/lib/translated/ca/modules/rce/KeyboardShortcutModal.js +10 -7
  266. package/lib/translated/ca/modules/rce/RCE.js +12 -6
  267. package/lib/translated/ca/modules/rce/RCEGlobals.js +62 -0
  268. package/lib/translated/ca/modules/rce/RCEWrapper.js +49 -19
  269. package/lib/translated/ca/modules/rce/RestoreAutoSaveModal.js +4 -3
  270. package/lib/translated/ca/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  271. package/lib/translated/ca/modules/rce/__tests__/contentInsertion.test.js +6 -0
  272. package/lib/translated/ca/modules/rce/__tests__/userOS.test.js +68 -0
  273. package/lib/translated/ca/modules/rce/contentInsertion.js +3 -1
  274. package/lib/translated/ca/modules/rce/initA11yChecker.js +0 -3
  275. package/lib/translated/ca/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  276. package/lib/translated/ca/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  277. package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  278. package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  279. package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  280. package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  281. package/lib/translated/ca/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  282. package/lib/translated/ca/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  283. package/lib/translated/ca/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  284. package/lib/translated/ca/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  285. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  286. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  287. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  288. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  289. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  290. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  291. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  292. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  293. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  294. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  295. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  296. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  297. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  298. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  299. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  300. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/{useArrowKeys.js → useKeyMouseEvents.js} +82 -27
  301. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  302. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  303. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  304. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  305. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  306. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  307. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  308. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  309. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  310. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  311. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  312. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  313. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  314. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  315. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  316. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  317. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  318. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  319. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  320. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  321. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  322. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  323. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  324. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  325. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  326. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  327. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  328. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  329. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  330. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  331. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  332. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  333. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  334. package/lib/translated/ca/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  335. package/lib/translated/ca/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  336. package/lib/translated/ca/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  337. package/lib/translated/ca/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  338. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  339. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  340. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  341. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  342. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  343. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  344. package/lib/translated/ca/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  345. package/lib/translated/ca/modules/rce/plugins/instructure_links/plugin.js +18 -3
  346. package/lib/translated/ca/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  347. package/lib/translated/ca/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  348. package/lib/translated/ca/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  349. package/lib/translated/ca/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  350. package/lib/translated/ca/modules/rce/plugins/shared/ColorInput.js +4 -3
  351. package/lib/translated/ca/modules/rce/plugins/shared/ContentSelection.js +7 -1
  352. package/lib/translated/ca/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  353. package/lib/translated/ca/modules/rce/plugins/shared/Filter.js +6 -5
  354. package/lib/translated/ca/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  355. package/lib/translated/ca/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  356. package/lib/translated/ca/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  357. package/lib/translated/ca/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  358. package/lib/translated/ca/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  359. package/lib/translated/ca/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  360. package/lib/translated/ca/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  361. package/lib/translated/ca/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  362. package/lib/translated/ca/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  363. package/lib/translated/ca/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  364. package/lib/translated/ca/modules/rce/plugins/shared/linkUtils.js +58 -0
  365. package/lib/translated/ca/modules/rce/plugins/shared/useDataUrl.js +14 -4
  366. package/lib/translated/ca/modules/rce/userOS.js +31 -0
  367. package/lib/translated/cy/modules/canvasFileBrowser/FlashAlert.js +8 -5
  368. package/lib/translated/cy/modules/common/components/LoadMore.js +2 -1
  369. package/lib/translated/cy/modules/rce/KeyboardShortcutModal.js +10 -7
  370. package/lib/translated/cy/modules/rce/RCE.js +12 -6
  371. package/lib/translated/cy/modules/rce/RCEGlobals.js +62 -0
  372. package/lib/translated/cy/modules/rce/RCEWrapper.js +49 -19
  373. package/lib/translated/cy/modules/rce/RestoreAutoSaveModal.js +4 -3
  374. package/lib/translated/cy/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  375. package/lib/translated/cy/modules/rce/__tests__/contentInsertion.test.js +6 -0
  376. package/lib/translated/cy/modules/rce/__tests__/userOS.test.js +68 -0
  377. package/lib/translated/cy/modules/rce/contentInsertion.js +3 -1
  378. package/lib/translated/cy/modules/rce/initA11yChecker.js +0 -3
  379. package/lib/translated/cy/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  380. package/lib/translated/cy/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  381. package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  382. package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  383. package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  384. package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  385. package/lib/translated/cy/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  386. package/lib/translated/cy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  387. package/lib/translated/cy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  388. package/lib/translated/cy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  389. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  390. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  391. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  392. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  393. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  394. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  395. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  396. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  397. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  398. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  399. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  400. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  401. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  402. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  403. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  404. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  405. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  406. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  407. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  408. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  409. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  410. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  411. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  412. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  413. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  414. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  415. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  416. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  417. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  418. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  419. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  420. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  421. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  422. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  423. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  424. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  425. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  426. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  427. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  428. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  429. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  430. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  431. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  432. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  433. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  434. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  435. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  436. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  437. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  438. package/lib/translated/cy/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  439. package/lib/translated/cy/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  440. package/lib/translated/cy/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  441. package/lib/translated/cy/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  442. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  443. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  444. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  445. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  446. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  447. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  448. package/lib/translated/cy/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  449. package/lib/translated/cy/modules/rce/plugins/instructure_links/plugin.js +18 -3
  450. package/lib/translated/cy/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  451. package/lib/translated/cy/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  452. package/lib/translated/cy/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  453. package/lib/translated/cy/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  454. package/lib/translated/cy/modules/rce/plugins/shared/ColorInput.js +4 -3
  455. package/lib/translated/cy/modules/rce/plugins/shared/ContentSelection.js +7 -1
  456. package/lib/translated/cy/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  457. package/lib/translated/cy/modules/rce/plugins/shared/Filter.js +6 -5
  458. package/lib/translated/cy/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  459. package/lib/translated/cy/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  460. package/lib/translated/cy/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  461. package/lib/translated/cy/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  462. package/lib/translated/cy/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  463. package/lib/translated/cy/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  464. package/lib/translated/cy/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  465. package/lib/translated/cy/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  466. package/lib/translated/cy/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  467. package/lib/translated/cy/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  468. package/lib/translated/cy/modules/rce/plugins/shared/linkUtils.js +58 -0
  469. package/lib/translated/cy/modules/rce/plugins/shared/useDataUrl.js +14 -4
  470. package/lib/translated/cy/modules/rce/userOS.js +31 -0
  471. package/lib/translated/da/modules/canvasFileBrowser/FlashAlert.js +8 -5
  472. package/lib/translated/da/modules/common/components/LoadMore.js +2 -1
  473. package/lib/translated/da/modules/rce/KeyboardShortcutModal.js +10 -7
  474. package/lib/translated/da/modules/rce/RCE.js +12 -6
  475. package/lib/translated/da/modules/rce/RCEGlobals.js +62 -0
  476. package/lib/translated/da/modules/rce/RCEWrapper.js +49 -19
  477. package/lib/translated/da/modules/rce/RestoreAutoSaveModal.js +4 -3
  478. package/lib/translated/da/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  479. package/lib/translated/da/modules/rce/__tests__/contentInsertion.test.js +6 -0
  480. package/lib/translated/da/modules/rce/__tests__/userOS.test.js +68 -0
  481. package/lib/translated/da/modules/rce/contentInsertion.js +3 -1
  482. package/lib/translated/da/modules/rce/initA11yChecker.js +0 -3
  483. package/lib/translated/da/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  484. package/lib/translated/da/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  485. package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  486. package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  487. package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  488. package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  489. package/lib/translated/da/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  490. package/lib/translated/da/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  491. package/lib/translated/da/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  492. package/lib/translated/da/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  493. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  494. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  495. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  496. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  497. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  498. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  499. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  500. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  501. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  502. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  503. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  504. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  505. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  506. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  507. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  508. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  509. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  510. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  511. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  512. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  513. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  514. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  515. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  516. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  517. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  518. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  519. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  520. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  521. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  522. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  523. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  524. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  525. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  526. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  527. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  528. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  529. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  530. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  531. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  532. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  533. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  534. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  535. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  536. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  537. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  538. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  539. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  540. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  541. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  542. package/lib/translated/da/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  543. package/lib/translated/da/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  544. package/lib/translated/da/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  545. package/lib/translated/da/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  546. package/lib/translated/da/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  547. package/lib/translated/da/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  548. package/lib/translated/da/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  549. package/lib/translated/da/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  550. package/lib/translated/da/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  551. package/lib/translated/da/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  552. package/lib/translated/da/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  553. package/lib/translated/da/modules/rce/plugins/instructure_links/plugin.js +18 -3
  554. package/lib/translated/da/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  555. package/lib/translated/da/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  556. package/lib/translated/da/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  557. package/lib/translated/da/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  558. package/lib/translated/da/modules/rce/plugins/shared/ColorInput.js +4 -3
  559. package/lib/translated/da/modules/rce/plugins/shared/ContentSelection.js +7 -1
  560. package/lib/translated/da/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  561. package/lib/translated/da/modules/rce/plugins/shared/Filter.js +6 -5
  562. package/lib/translated/da/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  563. package/lib/translated/da/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  564. package/lib/translated/da/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  565. package/lib/translated/da/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  566. package/lib/translated/da/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  567. package/lib/translated/da/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  568. package/lib/translated/da/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  569. package/lib/translated/da/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  570. package/lib/translated/da/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  571. package/lib/translated/da/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  572. package/lib/translated/da/modules/rce/plugins/shared/linkUtils.js +58 -0
  573. package/lib/translated/da/modules/rce/plugins/shared/useDataUrl.js +14 -4
  574. package/lib/translated/da/modules/rce/userOS.js +31 -0
  575. package/lib/translated/da-x-k12/modules/canvasFileBrowser/FlashAlert.js +8 -5
  576. package/lib/translated/da-x-k12/modules/common/components/LoadMore.js +2 -1
  577. package/lib/translated/da-x-k12/modules/rce/KeyboardShortcutModal.js +10 -7
  578. package/lib/translated/da-x-k12/modules/rce/RCE.js +12 -6
  579. package/lib/translated/da-x-k12/modules/rce/RCEGlobals.js +62 -0
  580. package/lib/translated/da-x-k12/modules/rce/RCEWrapper.js +49 -19
  581. package/lib/translated/da-x-k12/modules/rce/RestoreAutoSaveModal.js +4 -3
  582. package/lib/translated/da-x-k12/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  583. package/lib/translated/da-x-k12/modules/rce/__tests__/contentInsertion.test.js +6 -0
  584. package/lib/translated/da-x-k12/modules/rce/__tests__/userOS.test.js +68 -0
  585. package/lib/translated/da-x-k12/modules/rce/contentInsertion.js +3 -1
  586. package/lib/translated/da-x-k12/modules/rce/initA11yChecker.js +0 -3
  587. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  588. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  589. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  590. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  591. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  592. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  593. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  594. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  595. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  596. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  597. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  598. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  599. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  600. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  601. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  602. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  603. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  604. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  605. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  606. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  607. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  608. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  609. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  610. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  611. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  612. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  613. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  614. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  615. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  616. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  617. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  618. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  619. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  620. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  621. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  622. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  623. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  624. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  625. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  626. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  627. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  628. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  629. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  630. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  631. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  632. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  633. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  634. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  635. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  636. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  637. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  638. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  639. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  640. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  641. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  642. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  643. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  644. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  645. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  646. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  647. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  648. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  649. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  650. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  651. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  652. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  653. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  654. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  655. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  656. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  657. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/plugin.js +18 -3
  658. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  659. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  660. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  661. package/lib/translated/da-x-k12/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  662. package/lib/translated/da-x-k12/modules/rce/plugins/shared/ColorInput.js +4 -3
  663. package/lib/translated/da-x-k12/modules/rce/plugins/shared/ContentSelection.js +7 -1
  664. package/lib/translated/da-x-k12/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  665. package/lib/translated/da-x-k12/modules/rce/plugins/shared/Filter.js +6 -5
  666. package/lib/translated/da-x-k12/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  667. package/lib/translated/da-x-k12/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  668. package/lib/translated/da-x-k12/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  669. package/lib/translated/da-x-k12/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  670. package/lib/translated/da-x-k12/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  671. package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  672. package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  673. package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  674. package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  675. package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  676. package/lib/translated/da-x-k12/modules/rce/plugins/shared/linkUtils.js +58 -0
  677. package/lib/translated/da-x-k12/modules/rce/plugins/shared/useDataUrl.js +14 -4
  678. package/lib/translated/da-x-k12/modules/rce/userOS.js +31 -0
  679. package/lib/translated/de/modules/canvasFileBrowser/FlashAlert.js +8 -5
  680. package/lib/translated/de/modules/common/components/LoadMore.js +2 -1
  681. package/lib/translated/de/modules/rce/KeyboardShortcutModal.js +10 -7
  682. package/lib/translated/de/modules/rce/RCE.js +12 -6
  683. package/lib/translated/de/modules/rce/RCEGlobals.js +62 -0
  684. package/lib/translated/de/modules/rce/RCEWrapper.js +49 -19
  685. package/lib/translated/de/modules/rce/RestoreAutoSaveModal.js +4 -3
  686. package/lib/translated/de/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  687. package/lib/translated/de/modules/rce/__tests__/contentInsertion.test.js +6 -0
  688. package/lib/translated/de/modules/rce/__tests__/userOS.test.js +68 -0
  689. package/lib/translated/de/modules/rce/contentInsertion.js +3 -1
  690. package/lib/translated/de/modules/rce/initA11yChecker.js +0 -3
  691. package/lib/translated/de/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  692. package/lib/translated/de/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  693. package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  694. package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  695. package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  696. package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  697. package/lib/translated/de/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  698. package/lib/translated/de/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  699. package/lib/translated/de/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  700. package/lib/translated/de/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  701. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  702. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  703. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  704. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  705. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  706. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  707. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  708. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  709. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  710. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  711. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  712. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  713. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  714. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  715. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  716. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  717. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  718. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  719. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  720. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  721. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  722. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  723. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  724. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  725. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  726. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  727. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  728. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  729. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  730. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  731. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  732. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  733. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  734. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  735. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  736. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  737. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  738. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  739. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  740. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  741. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  742. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  743. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  744. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  745. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  746. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  747. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  748. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  749. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  750. package/lib/translated/de/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  751. package/lib/translated/de/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  752. package/lib/translated/de/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  753. package/lib/translated/de/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  754. package/lib/translated/de/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  755. package/lib/translated/de/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  756. package/lib/translated/de/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  757. package/lib/translated/de/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  758. package/lib/translated/de/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  759. package/lib/translated/de/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  760. package/lib/translated/de/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  761. package/lib/translated/de/modules/rce/plugins/instructure_links/plugin.js +18 -3
  762. package/lib/translated/de/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  763. package/lib/translated/de/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  764. package/lib/translated/de/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  765. package/lib/translated/de/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  766. package/lib/translated/de/modules/rce/plugins/shared/ColorInput.js +4 -3
  767. package/lib/translated/de/modules/rce/plugins/shared/ContentSelection.js +7 -1
  768. package/lib/translated/de/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  769. package/lib/translated/de/modules/rce/plugins/shared/Filter.js +6 -5
  770. package/lib/translated/de/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  771. package/lib/translated/de/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  772. package/lib/translated/de/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  773. package/lib/translated/de/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  774. package/lib/translated/de/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  775. package/lib/translated/de/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  776. package/lib/translated/de/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  777. package/lib/translated/de/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  778. package/lib/translated/de/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  779. package/lib/translated/de/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  780. package/lib/translated/de/modules/rce/plugins/shared/linkUtils.js +58 -0
  781. package/lib/translated/de/modules/rce/plugins/shared/useDataUrl.js +14 -4
  782. package/lib/translated/de/modules/rce/userOS.js +31 -0
  783. package/lib/translated/el/modules/canvasFileBrowser/FlashAlert.js +8 -5
  784. package/lib/translated/el/modules/common/components/LoadMore.js +2 -1
  785. package/lib/translated/el/modules/rce/KeyboardShortcutModal.js +10 -7
  786. package/lib/translated/el/modules/rce/RCE.js +12 -6
  787. package/lib/translated/el/modules/rce/RCEGlobals.js +62 -0
  788. package/lib/translated/el/modules/rce/RCEWrapper.js +49 -19
  789. package/lib/translated/el/modules/rce/RestoreAutoSaveModal.js +4 -3
  790. package/lib/translated/el/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  791. package/lib/translated/el/modules/rce/__tests__/contentInsertion.test.js +6 -0
  792. package/lib/translated/el/modules/rce/__tests__/userOS.test.js +68 -0
  793. package/lib/translated/el/modules/rce/contentInsertion.js +3 -1
  794. package/lib/translated/el/modules/rce/initA11yChecker.js +0 -3
  795. package/lib/translated/el/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  796. package/lib/translated/el/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  797. package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  798. package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  799. package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  800. package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  801. package/lib/translated/el/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  802. package/lib/translated/el/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  803. package/lib/translated/el/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  804. package/lib/translated/el/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  805. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  806. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  807. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  808. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  809. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  810. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  811. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  812. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  813. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  814. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  815. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  816. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  817. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  818. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  819. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  820. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  821. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  822. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  823. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  824. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  825. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  826. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  827. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  828. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  829. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  830. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  831. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  832. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  833. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  834. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  835. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  836. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  837. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  838. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  839. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  840. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  841. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  842. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  843. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  844. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  845. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  846. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  847. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  848. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  849. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  850. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  851. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  852. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  853. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  854. package/lib/translated/el/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  855. package/lib/translated/el/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  856. package/lib/translated/el/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  857. package/lib/translated/el/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  858. package/lib/translated/el/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  859. package/lib/translated/el/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  860. package/lib/translated/el/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  861. package/lib/translated/el/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  862. package/lib/translated/el/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  863. package/lib/translated/el/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  864. package/lib/translated/el/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  865. package/lib/translated/el/modules/rce/plugins/instructure_links/plugin.js +18 -3
  866. package/lib/translated/el/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  867. package/lib/translated/el/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  868. package/lib/translated/el/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  869. package/lib/translated/el/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  870. package/lib/translated/el/modules/rce/plugins/shared/ColorInput.js +4 -3
  871. package/lib/translated/el/modules/rce/plugins/shared/ContentSelection.js +7 -1
  872. package/lib/translated/el/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  873. package/lib/translated/el/modules/rce/plugins/shared/Filter.js +6 -5
  874. package/lib/translated/el/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  875. package/lib/translated/el/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  876. package/lib/translated/el/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  877. package/lib/translated/el/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  878. package/lib/translated/el/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  879. package/lib/translated/el/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  880. package/lib/translated/el/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  881. package/lib/translated/el/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  882. package/lib/translated/el/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  883. package/lib/translated/el/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  884. package/lib/translated/el/modules/rce/plugins/shared/linkUtils.js +58 -0
  885. package/lib/translated/el/modules/rce/plugins/shared/useDataUrl.js +14 -4
  886. package/lib/translated/el/modules/rce/userOS.js +31 -0
  887. package/lib/translated/en/modules/canvasFileBrowser/FlashAlert.js +8 -5
  888. package/lib/translated/en/modules/common/components/LoadMore.js +2 -1
  889. package/lib/translated/en/modules/rce/KeyboardShortcutModal.js +10 -7
  890. package/lib/translated/en/modules/rce/RCE.js +12 -6
  891. package/lib/translated/en/modules/rce/RCEGlobals.js +62 -0
  892. package/lib/translated/en/modules/rce/RCEWrapper.js +49 -19
  893. package/lib/translated/en/modules/rce/RestoreAutoSaveModal.js +4 -3
  894. package/lib/translated/en/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  895. package/lib/translated/en/modules/rce/__tests__/contentInsertion.test.js +6 -0
  896. package/lib/translated/en/modules/rce/__tests__/userOS.test.js +68 -0
  897. package/lib/translated/en/modules/rce/contentInsertion.js +3 -1
  898. package/lib/translated/en/modules/rce/initA11yChecker.js +0 -3
  899. package/lib/translated/en/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  900. package/lib/translated/en/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  901. package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  902. package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  903. package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  904. package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  905. package/lib/translated/en/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  906. package/lib/translated/en/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  907. package/lib/translated/en/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  908. package/lib/translated/en/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  909. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  910. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  911. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  912. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  913. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  914. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  915. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  916. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  917. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  918. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  919. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  920. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  921. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  922. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  923. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  924. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  925. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  926. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  927. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  928. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  929. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  930. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  931. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  932. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  933. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  934. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  935. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  936. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  937. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  938. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  939. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  940. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  941. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  942. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  943. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  944. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  945. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  946. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  947. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  948. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  949. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  950. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  951. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  952. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  953. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  954. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  955. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  956. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  957. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  958. package/lib/translated/en/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  959. package/lib/translated/en/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  960. package/lib/translated/en/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  961. package/lib/translated/en/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  962. package/lib/translated/en/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  963. package/lib/translated/en/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  964. package/lib/translated/en/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  965. package/lib/translated/en/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  966. package/lib/translated/en/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  967. package/lib/translated/en/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  968. package/lib/translated/en/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  969. package/lib/translated/en/modules/rce/plugins/instructure_links/plugin.js +18 -3
  970. package/lib/translated/en/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  971. package/lib/translated/en/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  972. package/lib/translated/en/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  973. package/lib/translated/en/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  974. package/lib/translated/en/modules/rce/plugins/shared/ColorInput.js +4 -3
  975. package/lib/translated/en/modules/rce/plugins/shared/ContentSelection.js +7 -1
  976. package/lib/translated/en/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  977. package/lib/translated/en/modules/rce/plugins/shared/Filter.js +6 -5
  978. package/lib/translated/en/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  979. package/lib/translated/en/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  980. package/lib/translated/en/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  981. package/lib/translated/en/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  982. package/lib/translated/en/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  983. package/lib/translated/en/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  984. package/lib/translated/en/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  985. package/lib/translated/en/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  986. package/lib/translated/en/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  987. package/lib/translated/en/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  988. package/lib/translated/en/modules/rce/plugins/shared/linkUtils.js +58 -0
  989. package/lib/translated/en/modules/rce/plugins/shared/useDataUrl.js +14 -4
  990. package/lib/translated/en/modules/rce/userOS.js +31 -0
  991. package/lib/translated/en-AU-x-unimelb/modules/canvasFileBrowser/FlashAlert.js +8 -5
  992. package/lib/translated/en-AU-x-unimelb/modules/common/components/LoadMore.js +2 -1
  993. package/lib/translated/en-AU-x-unimelb/modules/rce/KeyboardShortcutModal.js +10 -7
  994. package/lib/translated/en-AU-x-unimelb/modules/rce/RCE.js +12 -6
  995. package/lib/translated/en-AU-x-unimelb/modules/rce/RCEGlobals.js +62 -0
  996. package/lib/translated/en-AU-x-unimelb/modules/rce/RCEWrapper.js +49 -19
  997. package/lib/translated/en-AU-x-unimelb/modules/rce/RestoreAutoSaveModal.js +4 -3
  998. package/lib/translated/en-AU-x-unimelb/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  999. package/lib/translated/en-AU-x-unimelb/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1000. package/lib/translated/en-AU-x-unimelb/modules/rce/__tests__/userOS.test.js +68 -0
  1001. package/lib/translated/en-AU-x-unimelb/modules/rce/contentInsertion.js +3 -1
  1002. package/lib/translated/en-AU-x-unimelb/modules/rce/initA11yChecker.js +0 -3
  1003. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1004. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1005. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1006. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1007. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1008. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1009. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1010. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1011. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1012. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1013. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1014. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  1015. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1016. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1017. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1018. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1019. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1020. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1021. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1022. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1023. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1024. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1025. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1026. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1027. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1028. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1029. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1030. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1031. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1032. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1033. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1034. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1035. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1036. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1037. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1038. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1039. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1040. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1041. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1042. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1043. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1044. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1045. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1046. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1047. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1048. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1049. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1050. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1051. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1052. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1053. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1054. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1055. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1056. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1057. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1058. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1059. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1060. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1061. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1062. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1063. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1064. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1065. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1066. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1067. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1068. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1069. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1070. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1071. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1072. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1073. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1074. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1075. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1076. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1077. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1078. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/ColorInput.js +4 -3
  1079. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1080. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1081. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Filter.js +6 -5
  1082. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1083. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1084. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1085. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1086. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1087. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1088. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1089. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1090. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1091. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1092. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/linkUtils.js +58 -0
  1093. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1094. package/lib/translated/en-AU-x-unimelb/modules/rce/userOS.js +31 -0
  1095. package/lib/translated/en-GB-x-ukhe/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1096. package/lib/translated/en-GB-x-ukhe/modules/common/components/LoadMore.js +2 -1
  1097. package/lib/translated/en-GB-x-ukhe/modules/rce/KeyboardShortcutModal.js +10 -7
  1098. package/lib/translated/en-GB-x-ukhe/modules/rce/RCE.js +12 -6
  1099. package/lib/translated/en-GB-x-ukhe/modules/rce/RCEGlobals.js +62 -0
  1100. package/lib/translated/en-GB-x-ukhe/modules/rce/RCEWrapper.js +49 -19
  1101. package/lib/translated/en-GB-x-ukhe/modules/rce/RestoreAutoSaveModal.js +4 -3
  1102. package/lib/translated/en-GB-x-ukhe/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1103. package/lib/translated/en-GB-x-ukhe/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1104. package/lib/translated/en-GB-x-ukhe/modules/rce/__tests__/userOS.test.js +68 -0
  1105. package/lib/translated/en-GB-x-ukhe/modules/rce/contentInsertion.js +3 -1
  1106. package/lib/translated/en-GB-x-ukhe/modules/rce/initA11yChecker.js +0 -3
  1107. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1108. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1109. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1110. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1111. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1112. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1113. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1114. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1115. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1116. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1117. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1118. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  1119. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1120. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1121. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1122. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1123. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1124. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1125. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1126. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1127. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1128. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1129. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1130. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1131. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1132. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1133. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1134. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1135. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1136. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1137. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1138. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1139. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1140. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1141. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1142. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1143. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1144. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1145. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1146. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1147. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1148. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1149. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1150. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1151. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1152. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1153. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1154. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1155. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1156. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1157. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1158. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1159. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1160. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1161. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1162. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1163. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1164. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1165. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1166. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1167. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1168. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1169. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1170. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1171. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1172. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1173. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1174. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1175. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1176. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1177. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1178. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1179. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1180. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1181. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1182. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/ColorInput.js +4 -3
  1183. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1184. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1185. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Filter.js +6 -5
  1186. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1187. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1188. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1189. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1190. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1191. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1192. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1193. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1194. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1195. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1196. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/linkUtils.js +58 -0
  1197. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1198. package/lib/translated/en-GB-x-ukhe/modules/rce/userOS.js +31 -0
  1199. package/lib/translated/en_AU/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1200. package/lib/translated/en_AU/modules/common/components/LoadMore.js +2 -1
  1201. package/lib/translated/en_AU/modules/rce/KeyboardShortcutModal.js +10 -7
  1202. package/lib/translated/en_AU/modules/rce/RCE.js +12 -6
  1203. package/lib/translated/en_AU/modules/rce/RCEGlobals.js +62 -0
  1204. package/lib/translated/en_AU/modules/rce/RCEWrapper.js +49 -19
  1205. package/lib/translated/en_AU/modules/rce/RestoreAutoSaveModal.js +4 -3
  1206. package/lib/translated/en_AU/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1207. package/lib/translated/en_AU/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1208. package/lib/translated/en_AU/modules/rce/__tests__/userOS.test.js +68 -0
  1209. package/lib/translated/en_AU/modules/rce/contentInsertion.js +3 -1
  1210. package/lib/translated/en_AU/modules/rce/initA11yChecker.js +0 -3
  1211. package/lib/translated/en_AU/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1212. package/lib/translated/en_AU/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1213. package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1214. package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1215. package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1216. package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1217. package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1218. package/lib/translated/en_AU/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1219. package/lib/translated/en_AU/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1220. package/lib/translated/en_AU/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1221. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1222. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  1223. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1224. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1225. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1226. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1227. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1228. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1229. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1230. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1231. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1232. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1233. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1234. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1235. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1236. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1237. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1238. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1239. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1240. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1241. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1242. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1243. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1244. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1245. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1246. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1247. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1248. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1249. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1250. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1251. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1252. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1253. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1254. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1255. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1256. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1257. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1258. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1259. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1260. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1261. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1262. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1263. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1264. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1265. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1266. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1267. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1268. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1269. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1270. package/lib/translated/en_AU/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1271. package/lib/translated/en_AU/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1272. package/lib/translated/en_AU/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1273. package/lib/translated/en_AU/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1274. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1275. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1276. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1277. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1278. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1279. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1280. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1281. package/lib/translated/en_AU/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1282. package/lib/translated/en_AU/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1283. package/lib/translated/en_AU/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1284. package/lib/translated/en_AU/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1285. package/lib/translated/en_AU/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1286. package/lib/translated/en_AU/modules/rce/plugins/shared/ColorInput.js +4 -3
  1287. package/lib/translated/en_AU/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1288. package/lib/translated/en_AU/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1289. package/lib/translated/en_AU/modules/rce/plugins/shared/Filter.js +6 -5
  1290. package/lib/translated/en_AU/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1291. package/lib/translated/en_AU/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1292. package/lib/translated/en_AU/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1293. package/lib/translated/en_AU/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1294. package/lib/translated/en_AU/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1295. package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1296. package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1297. package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1298. package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1299. package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1300. package/lib/translated/en_AU/modules/rce/plugins/shared/linkUtils.js +58 -0
  1301. package/lib/translated/en_AU/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1302. package/lib/translated/en_AU/modules/rce/userOS.js +31 -0
  1303. package/lib/translated/en_CA/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1304. package/lib/translated/en_CA/modules/common/components/LoadMore.js +2 -1
  1305. package/lib/translated/en_CA/modules/rce/KeyboardShortcutModal.js +10 -7
  1306. package/lib/translated/en_CA/modules/rce/RCE.js +12 -6
  1307. package/lib/translated/en_CA/modules/rce/RCEGlobals.js +62 -0
  1308. package/lib/translated/en_CA/modules/rce/RCEWrapper.js +49 -19
  1309. package/lib/translated/en_CA/modules/rce/RestoreAutoSaveModal.js +4 -3
  1310. package/lib/translated/en_CA/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1311. package/lib/translated/en_CA/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1312. package/lib/translated/en_CA/modules/rce/__tests__/userOS.test.js +68 -0
  1313. package/lib/translated/en_CA/modules/rce/contentInsertion.js +3 -1
  1314. package/lib/translated/en_CA/modules/rce/initA11yChecker.js +0 -3
  1315. package/lib/translated/en_CA/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1316. package/lib/translated/en_CA/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1317. package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1318. package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1319. package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1320. package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1321. package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1322. package/lib/translated/en_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1323. package/lib/translated/en_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1324. package/lib/translated/en_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1325. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1326. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  1327. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1328. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1329. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1330. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1331. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1332. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1333. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1334. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1335. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1336. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1337. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1338. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1339. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1340. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1341. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1342. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1343. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1344. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1345. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1346. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1347. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1348. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1349. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1350. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1351. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1352. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1353. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1354. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1355. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1356. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1357. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1358. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1359. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1360. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1361. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1362. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1363. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1364. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1365. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1366. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1367. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1368. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1369. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1370. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1371. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1372. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1373. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1374. package/lib/translated/en_CA/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1375. package/lib/translated/en_CA/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1376. package/lib/translated/en_CA/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1377. package/lib/translated/en_CA/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1378. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1379. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1380. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1381. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1382. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1383. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1384. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1385. package/lib/translated/en_CA/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1386. package/lib/translated/en_CA/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1387. package/lib/translated/en_CA/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1388. package/lib/translated/en_CA/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1389. package/lib/translated/en_CA/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1390. package/lib/translated/en_CA/modules/rce/plugins/shared/ColorInput.js +4 -3
  1391. package/lib/translated/en_CA/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1392. package/lib/translated/en_CA/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1393. package/lib/translated/en_CA/modules/rce/plugins/shared/Filter.js +6 -5
  1394. package/lib/translated/en_CA/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1395. package/lib/translated/en_CA/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1396. package/lib/translated/en_CA/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1397. package/lib/translated/en_CA/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1398. package/lib/translated/en_CA/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1399. package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1400. package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1401. package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1402. package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1403. package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1404. package/lib/translated/en_CA/modules/rce/plugins/shared/linkUtils.js +58 -0
  1405. package/lib/translated/en_CA/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1406. package/lib/translated/en_CA/modules/rce/userOS.js +31 -0
  1407. package/lib/translated/en_CY/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1408. package/lib/translated/en_CY/modules/common/components/LoadMore.js +2 -1
  1409. package/lib/translated/en_CY/modules/rce/KeyboardShortcutModal.js +10 -7
  1410. package/lib/translated/en_CY/modules/rce/RCE.js +12 -6
  1411. package/lib/translated/en_CY/modules/rce/RCEGlobals.js +62 -0
  1412. package/lib/translated/en_CY/modules/rce/RCEWrapper.js +49 -19
  1413. package/lib/translated/en_CY/modules/rce/RestoreAutoSaveModal.js +4 -3
  1414. package/lib/translated/en_CY/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1415. package/lib/translated/en_CY/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1416. package/lib/translated/en_CY/modules/rce/__tests__/userOS.test.js +68 -0
  1417. package/lib/translated/en_CY/modules/rce/contentInsertion.js +3 -1
  1418. package/lib/translated/en_CY/modules/rce/initA11yChecker.js +0 -3
  1419. package/lib/translated/en_CY/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1420. package/lib/translated/en_CY/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1421. package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1422. package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1423. package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1424. package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1425. package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1426. package/lib/translated/en_CY/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1427. package/lib/translated/en_CY/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1428. package/lib/translated/en_CY/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1429. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1430. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  1431. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1432. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1433. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1434. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1435. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1436. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1437. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1438. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1439. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1440. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1441. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1442. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1443. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1444. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1445. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1446. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1447. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1448. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1449. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1450. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1451. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1452. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1453. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1454. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1455. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1456. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1457. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1458. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1459. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1460. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1461. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1462. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1463. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1464. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1465. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1466. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1467. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1468. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1469. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1470. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1471. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1472. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1473. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1474. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1475. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1476. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1477. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1478. package/lib/translated/en_CY/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1479. package/lib/translated/en_CY/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1480. package/lib/translated/en_CY/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1481. package/lib/translated/en_CY/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1482. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1483. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1484. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1485. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1486. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1487. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1488. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1489. package/lib/translated/en_CY/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1490. package/lib/translated/en_CY/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1491. package/lib/translated/en_CY/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1492. package/lib/translated/en_CY/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1493. package/lib/translated/en_CY/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1494. package/lib/translated/en_CY/modules/rce/plugins/shared/ColorInput.js +4 -3
  1495. package/lib/translated/en_CY/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1496. package/lib/translated/en_CY/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1497. package/lib/translated/en_CY/modules/rce/plugins/shared/Filter.js +6 -5
  1498. package/lib/translated/en_CY/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1499. package/lib/translated/en_CY/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1500. package/lib/translated/en_CY/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1501. package/lib/translated/en_CY/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1502. package/lib/translated/en_CY/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1503. package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1504. package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1505. package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1506. package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1507. package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1508. package/lib/translated/en_CY/modules/rce/plugins/shared/linkUtils.js +58 -0
  1509. package/lib/translated/en_CY/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1510. package/lib/translated/en_CY/modules/rce/userOS.js +31 -0
  1511. package/lib/translated/en_GB/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1512. package/lib/translated/en_GB/modules/common/components/LoadMore.js +2 -1
  1513. package/lib/translated/en_GB/modules/rce/KeyboardShortcutModal.js +10 -7
  1514. package/lib/translated/en_GB/modules/rce/RCE.js +12 -6
  1515. package/lib/translated/en_GB/modules/rce/RCEGlobals.js +62 -0
  1516. package/lib/translated/en_GB/modules/rce/RCEWrapper.js +49 -19
  1517. package/lib/translated/en_GB/modules/rce/RestoreAutoSaveModal.js +4 -3
  1518. package/lib/translated/en_GB/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1519. package/lib/translated/en_GB/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1520. package/lib/translated/en_GB/modules/rce/__tests__/userOS.test.js +68 -0
  1521. package/lib/translated/en_GB/modules/rce/contentInsertion.js +3 -1
  1522. package/lib/translated/en_GB/modules/rce/initA11yChecker.js +0 -3
  1523. package/lib/translated/en_GB/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1524. package/lib/translated/en_GB/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1525. package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1526. package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1527. package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1528. package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1529. package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1530. package/lib/translated/en_GB/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1531. package/lib/translated/en_GB/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1532. package/lib/translated/en_GB/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1533. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1534. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  1535. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1536. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1537. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1538. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1539. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1540. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1541. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1542. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1543. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1544. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1545. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1546. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1547. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1548. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1549. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1550. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1551. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1552. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1553. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1554. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1555. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1556. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1557. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1558. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1559. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1560. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1561. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1562. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1563. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1564. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1565. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1566. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1567. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1568. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1569. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1570. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1571. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1572. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1573. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1574. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1575. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1576. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1577. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1578. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1579. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1580. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1581. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1582. package/lib/translated/en_GB/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1583. package/lib/translated/en_GB/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1584. package/lib/translated/en_GB/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1585. package/lib/translated/en_GB/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1586. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1587. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1588. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1589. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1590. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1591. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1592. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1593. package/lib/translated/en_GB/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1594. package/lib/translated/en_GB/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1595. package/lib/translated/en_GB/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1596. package/lib/translated/en_GB/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1597. package/lib/translated/en_GB/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1598. package/lib/translated/en_GB/modules/rce/plugins/shared/ColorInput.js +4 -3
  1599. package/lib/translated/en_GB/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1600. package/lib/translated/en_GB/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1601. package/lib/translated/en_GB/modules/rce/plugins/shared/Filter.js +6 -5
  1602. package/lib/translated/en_GB/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1603. package/lib/translated/en_GB/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1604. package/lib/translated/en_GB/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1605. package/lib/translated/en_GB/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1606. package/lib/translated/en_GB/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1607. package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1608. package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1609. package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1610. package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1611. package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1612. package/lib/translated/en_GB/modules/rce/plugins/shared/linkUtils.js +58 -0
  1613. package/lib/translated/en_GB/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1614. package/lib/translated/en_GB/modules/rce/userOS.js +31 -0
  1615. package/lib/translated/es/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1616. package/lib/translated/es/modules/common/components/LoadMore.js +2 -1
  1617. package/lib/translated/es/modules/rce/KeyboardShortcutModal.js +10 -7
  1618. package/lib/translated/es/modules/rce/RCE.js +12 -6
  1619. package/lib/translated/es/modules/rce/RCEGlobals.js +62 -0
  1620. package/lib/translated/es/modules/rce/RCEWrapper.js +49 -19
  1621. package/lib/translated/es/modules/rce/RestoreAutoSaveModal.js +4 -3
  1622. package/lib/translated/es/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1623. package/lib/translated/es/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1624. package/lib/translated/es/modules/rce/__tests__/userOS.test.js +68 -0
  1625. package/lib/translated/es/modules/rce/contentInsertion.js +3 -1
  1626. package/lib/translated/es/modules/rce/initA11yChecker.js +0 -3
  1627. package/lib/translated/es/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1628. package/lib/translated/es/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1629. package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1630. package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1631. package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1632. package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1633. package/lib/translated/es/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1634. package/lib/translated/es/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1635. package/lib/translated/es/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1636. package/lib/translated/es/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1637. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1638. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  1639. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1640. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1641. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1642. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1643. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1644. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1645. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1646. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1647. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1648. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1649. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1650. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1651. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1652. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1653. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1654. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1655. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1656. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1657. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1658. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1659. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1660. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1661. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1662. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1663. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1664. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1665. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1666. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1667. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1668. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1669. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1670. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1671. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1672. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1673. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1674. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1675. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1676. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1677. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1678. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1679. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1680. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1681. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1682. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1683. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1684. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1685. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1686. package/lib/translated/es/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1687. package/lib/translated/es/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1688. package/lib/translated/es/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1689. package/lib/translated/es/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1690. package/lib/translated/es/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1691. package/lib/translated/es/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1692. package/lib/translated/es/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1693. package/lib/translated/es/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1694. package/lib/translated/es/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1695. package/lib/translated/es/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1696. package/lib/translated/es/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1697. package/lib/translated/es/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1698. package/lib/translated/es/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1699. package/lib/translated/es/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1700. package/lib/translated/es/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1701. package/lib/translated/es/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1702. package/lib/translated/es/modules/rce/plugins/shared/ColorInput.js +4 -3
  1703. package/lib/translated/es/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1704. package/lib/translated/es/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1705. package/lib/translated/es/modules/rce/plugins/shared/Filter.js +6 -5
  1706. package/lib/translated/es/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1707. package/lib/translated/es/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1708. package/lib/translated/es/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1709. package/lib/translated/es/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1710. package/lib/translated/es/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1711. package/lib/translated/es/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1712. package/lib/translated/es/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1713. package/lib/translated/es/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1714. package/lib/translated/es/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1715. package/lib/translated/es/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1716. package/lib/translated/es/modules/rce/plugins/shared/linkUtils.js +58 -0
  1717. package/lib/translated/es/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1718. package/lib/translated/es/modules/rce/userOS.js +31 -0
  1719. package/lib/translated/es_ES/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1720. package/lib/translated/es_ES/modules/common/components/LoadMore.js +2 -1
  1721. package/lib/translated/es_ES/modules/rce/KeyboardShortcutModal.js +10 -7
  1722. package/lib/translated/es_ES/modules/rce/RCE.js +12 -6
  1723. package/lib/translated/es_ES/modules/rce/RCEGlobals.js +62 -0
  1724. package/lib/translated/es_ES/modules/rce/RCEWrapper.js +49 -19
  1725. package/lib/translated/es_ES/modules/rce/RestoreAutoSaveModal.js +4 -3
  1726. package/lib/translated/es_ES/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1727. package/lib/translated/es_ES/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1728. package/lib/translated/es_ES/modules/rce/__tests__/userOS.test.js +68 -0
  1729. package/lib/translated/es_ES/modules/rce/contentInsertion.js +3 -1
  1730. package/lib/translated/es_ES/modules/rce/initA11yChecker.js +0 -3
  1731. package/lib/translated/es_ES/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1732. package/lib/translated/es_ES/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1733. package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1734. package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1735. package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1736. package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1737. package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1738. package/lib/translated/es_ES/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1739. package/lib/translated/es_ES/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1740. package/lib/translated/es_ES/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1741. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1742. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  1743. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1744. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1745. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1746. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1747. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1748. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1749. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1750. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1751. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1752. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1753. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1754. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1755. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1756. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1757. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1758. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1759. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1760. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1761. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1762. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1763. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1764. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1765. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1766. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1767. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1768. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1769. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1770. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1771. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1772. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1773. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1774. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1775. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1776. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1777. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1778. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1779. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1780. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1781. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1782. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1783. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1784. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1785. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1786. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1787. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1788. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1789. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1790. package/lib/translated/es_ES/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1791. package/lib/translated/es_ES/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1792. package/lib/translated/es_ES/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1793. package/lib/translated/es_ES/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1794. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1795. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1796. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1797. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1798. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1799. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1800. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1801. package/lib/translated/es_ES/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1802. package/lib/translated/es_ES/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1803. package/lib/translated/es_ES/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1804. package/lib/translated/es_ES/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1805. package/lib/translated/es_ES/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1806. package/lib/translated/es_ES/modules/rce/plugins/shared/ColorInput.js +4 -3
  1807. package/lib/translated/es_ES/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1808. package/lib/translated/es_ES/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1809. package/lib/translated/es_ES/modules/rce/plugins/shared/Filter.js +6 -5
  1810. package/lib/translated/es_ES/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1811. package/lib/translated/es_ES/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1812. package/lib/translated/es_ES/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1813. package/lib/translated/es_ES/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1814. package/lib/translated/es_ES/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1815. package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1816. package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1817. package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1818. package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1819. package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1820. package/lib/translated/es_ES/modules/rce/plugins/shared/linkUtils.js +58 -0
  1821. package/lib/translated/es_ES/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1822. package/lib/translated/es_ES/modules/rce/userOS.js +31 -0
  1823. package/lib/translated/fa_IR/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1824. package/lib/translated/fa_IR/modules/common/components/LoadMore.js +2 -1
  1825. package/lib/translated/fa_IR/modules/rce/KeyboardShortcutModal.js +10 -7
  1826. package/lib/translated/fa_IR/modules/rce/RCE.js +12 -6
  1827. package/lib/translated/fa_IR/modules/rce/RCEGlobals.js +62 -0
  1828. package/lib/translated/fa_IR/modules/rce/RCEWrapper.js +49 -19
  1829. package/lib/translated/fa_IR/modules/rce/RestoreAutoSaveModal.js +4 -3
  1830. package/lib/translated/fa_IR/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1831. package/lib/translated/fa_IR/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1832. package/lib/translated/fa_IR/modules/rce/__tests__/userOS.test.js +68 -0
  1833. package/lib/translated/fa_IR/modules/rce/contentInsertion.js +3 -1
  1834. package/lib/translated/fa_IR/modules/rce/initA11yChecker.js +0 -3
  1835. package/lib/translated/fa_IR/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1836. package/lib/translated/fa_IR/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1837. package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1838. package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1839. package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1840. package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1841. package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1842. package/lib/translated/fa_IR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1843. package/lib/translated/fa_IR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1844. package/lib/translated/fa_IR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1845. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1846. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  1847. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1848. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1849. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1850. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1851. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1852. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1853. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1854. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1855. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1856. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1857. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1858. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1859. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1860. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1861. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1862. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1863. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1864. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1865. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1866. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1867. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1868. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1869. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1870. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1871. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1872. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1873. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1874. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1875. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1876. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1877. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1878. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1879. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1880. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1881. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1882. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1883. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1884. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1885. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1886. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1887. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1888. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1889. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1890. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1891. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1892. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1893. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1894. package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1895. package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  1896. package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  1897. package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  1898. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  1899. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  1900. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  1901. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  1902. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  1903. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  1904. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  1905. package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/plugin.js +18 -3
  1906. package/lib/translated/fa_IR/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  1907. package/lib/translated/fa_IR/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  1908. package/lib/translated/fa_IR/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  1909. package/lib/translated/fa_IR/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  1910. package/lib/translated/fa_IR/modules/rce/plugins/shared/ColorInput.js +4 -3
  1911. package/lib/translated/fa_IR/modules/rce/plugins/shared/ContentSelection.js +7 -1
  1912. package/lib/translated/fa_IR/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  1913. package/lib/translated/fa_IR/modules/rce/plugins/shared/Filter.js +6 -5
  1914. package/lib/translated/fa_IR/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  1915. package/lib/translated/fa_IR/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  1916. package/lib/translated/fa_IR/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  1917. package/lib/translated/fa_IR/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  1918. package/lib/translated/fa_IR/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  1919. package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  1920. package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  1921. package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  1922. package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  1923. package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  1924. package/lib/translated/fa_IR/modules/rce/plugins/shared/linkUtils.js +58 -0
  1925. package/lib/translated/fa_IR/modules/rce/plugins/shared/useDataUrl.js +14 -4
  1926. package/lib/translated/fa_IR/modules/rce/userOS.js +31 -0
  1927. package/lib/translated/fi/modules/canvasFileBrowser/FlashAlert.js +8 -5
  1928. package/lib/translated/fi/modules/common/components/LoadMore.js +2 -1
  1929. package/lib/translated/fi/modules/rce/KeyboardShortcutModal.js +10 -7
  1930. package/lib/translated/fi/modules/rce/RCE.js +12 -6
  1931. package/lib/translated/fi/modules/rce/RCEGlobals.js +62 -0
  1932. package/lib/translated/fi/modules/rce/RCEWrapper.js +49 -19
  1933. package/lib/translated/fi/modules/rce/RestoreAutoSaveModal.js +4 -3
  1934. package/lib/translated/fi/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  1935. package/lib/translated/fi/modules/rce/__tests__/contentInsertion.test.js +6 -0
  1936. package/lib/translated/fi/modules/rce/__tests__/userOS.test.js +68 -0
  1937. package/lib/translated/fi/modules/rce/contentInsertion.js +3 -1
  1938. package/lib/translated/fi/modules/rce/initA11yChecker.js +0 -3
  1939. package/lib/translated/fi/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  1940. package/lib/translated/fi/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  1941. package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  1942. package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  1943. package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  1944. package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  1945. package/lib/translated/fi/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  1946. package/lib/translated/fi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  1947. package/lib/translated/fi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  1948. package/lib/translated/fi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  1949. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  1950. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  1951. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  1952. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  1953. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  1954. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  1955. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  1956. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  1957. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  1958. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  1959. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  1960. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  1961. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  1962. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  1963. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  1964. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  1965. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  1966. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  1967. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  1968. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  1969. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  1970. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  1971. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  1972. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  1973. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  1974. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  1975. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  1976. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  1977. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  1978. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  1979. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  1980. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  1981. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  1982. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  1983. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  1984. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  1985. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  1986. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  1987. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  1988. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  1989. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  1990. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  1991. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  1992. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  1993. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  1994. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  1995. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  1996. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  1997. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  1998. package/lib/translated/fi/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  1999. package/lib/translated/fi/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2000. package/lib/translated/fi/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2001. package/lib/translated/fi/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2002. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2003. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2004. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2005. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2006. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2007. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2008. package/lib/translated/fi/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2009. package/lib/translated/fi/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2010. package/lib/translated/fi/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2011. package/lib/translated/fi/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2012. package/lib/translated/fi/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2013. package/lib/translated/fi/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2014. package/lib/translated/fi/modules/rce/plugins/shared/ColorInput.js +4 -3
  2015. package/lib/translated/fi/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2016. package/lib/translated/fi/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2017. package/lib/translated/fi/modules/rce/plugins/shared/Filter.js +6 -5
  2018. package/lib/translated/fi/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2019. package/lib/translated/fi/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2020. package/lib/translated/fi/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2021. package/lib/translated/fi/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2022. package/lib/translated/fi/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2023. package/lib/translated/fi/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2024. package/lib/translated/fi/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2025. package/lib/translated/fi/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2026. package/lib/translated/fi/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2027. package/lib/translated/fi/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2028. package/lib/translated/fi/modules/rce/plugins/shared/linkUtils.js +58 -0
  2029. package/lib/translated/fi/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2030. package/lib/translated/fi/modules/rce/userOS.js +31 -0
  2031. package/lib/translated/fr/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2032. package/lib/translated/fr/modules/common/components/LoadMore.js +2 -1
  2033. package/lib/translated/fr/modules/rce/KeyboardShortcutModal.js +10 -7
  2034. package/lib/translated/fr/modules/rce/RCE.js +12 -6
  2035. package/lib/translated/fr/modules/rce/RCEGlobals.js +62 -0
  2036. package/lib/translated/fr/modules/rce/RCEWrapper.js +49 -19
  2037. package/lib/translated/fr/modules/rce/RestoreAutoSaveModal.js +4 -3
  2038. package/lib/translated/fr/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2039. package/lib/translated/fr/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2040. package/lib/translated/fr/modules/rce/__tests__/userOS.test.js +68 -0
  2041. package/lib/translated/fr/modules/rce/contentInsertion.js +3 -1
  2042. package/lib/translated/fr/modules/rce/initA11yChecker.js +0 -3
  2043. package/lib/translated/fr/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2044. package/lib/translated/fr/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2045. package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2046. package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2047. package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2048. package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2049. package/lib/translated/fr/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2050. package/lib/translated/fr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2051. package/lib/translated/fr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2052. package/lib/translated/fr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2053. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2054. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2055. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2056. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2057. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2058. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2059. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2060. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2061. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2062. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2063. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2064. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2065. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2066. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2067. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2068. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2069. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2070. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2071. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2072. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2073. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2074. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2075. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2076. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2077. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2078. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2079. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2080. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2081. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2082. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2083. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2084. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2085. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2086. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2087. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2088. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2089. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2090. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2091. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2092. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2093. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2094. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2095. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2096. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2097. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2098. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2099. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2100. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2101. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2102. package/lib/translated/fr/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2103. package/lib/translated/fr/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2104. package/lib/translated/fr/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2105. package/lib/translated/fr/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2106. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2107. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2108. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2109. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2110. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2111. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2112. package/lib/translated/fr/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2113. package/lib/translated/fr/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2114. package/lib/translated/fr/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2115. package/lib/translated/fr/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2116. package/lib/translated/fr/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2117. package/lib/translated/fr/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2118. package/lib/translated/fr/modules/rce/plugins/shared/ColorInput.js +4 -3
  2119. package/lib/translated/fr/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2120. package/lib/translated/fr/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2121. package/lib/translated/fr/modules/rce/plugins/shared/Filter.js +6 -5
  2122. package/lib/translated/fr/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2123. package/lib/translated/fr/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2124. package/lib/translated/fr/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2125. package/lib/translated/fr/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2126. package/lib/translated/fr/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2127. package/lib/translated/fr/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2128. package/lib/translated/fr/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2129. package/lib/translated/fr/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2130. package/lib/translated/fr/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2131. package/lib/translated/fr/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2132. package/lib/translated/fr/modules/rce/plugins/shared/linkUtils.js +58 -0
  2133. package/lib/translated/fr/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2134. package/lib/translated/fr/modules/rce/userOS.js +31 -0
  2135. package/lib/translated/fr_CA/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2136. package/lib/translated/fr_CA/modules/common/components/LoadMore.js +2 -1
  2137. package/lib/translated/fr_CA/modules/rce/KeyboardShortcutModal.js +10 -7
  2138. package/lib/translated/fr_CA/modules/rce/RCE.js +12 -6
  2139. package/lib/translated/fr_CA/modules/rce/RCEGlobals.js +62 -0
  2140. package/lib/translated/fr_CA/modules/rce/RCEWrapper.js +49 -19
  2141. package/lib/translated/fr_CA/modules/rce/RestoreAutoSaveModal.js +4 -3
  2142. package/lib/translated/fr_CA/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2143. package/lib/translated/fr_CA/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2144. package/lib/translated/fr_CA/modules/rce/__tests__/userOS.test.js +68 -0
  2145. package/lib/translated/fr_CA/modules/rce/contentInsertion.js +3 -1
  2146. package/lib/translated/fr_CA/modules/rce/initA11yChecker.js +0 -3
  2147. package/lib/translated/fr_CA/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2148. package/lib/translated/fr_CA/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2149. package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2150. package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2151. package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2152. package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2153. package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2154. package/lib/translated/fr_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2155. package/lib/translated/fr_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2156. package/lib/translated/fr_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2157. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2158. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2159. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2160. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2161. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2162. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2163. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2164. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2165. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2166. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2167. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2168. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2169. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2170. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2171. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2172. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2173. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2174. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2175. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2176. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2177. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2178. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2179. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2180. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2181. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2182. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2183. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2184. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2185. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2186. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2187. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2188. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2189. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2190. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2191. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2192. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2193. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2194. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2195. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2196. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2197. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2198. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2199. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2200. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2201. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2202. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2203. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2204. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2205. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2206. package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2207. package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2208. package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2209. package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2210. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2211. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2212. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2213. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2214. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2215. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2216. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2217. package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2218. package/lib/translated/fr_CA/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2219. package/lib/translated/fr_CA/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2220. package/lib/translated/fr_CA/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2221. package/lib/translated/fr_CA/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2222. package/lib/translated/fr_CA/modules/rce/plugins/shared/ColorInput.js +4 -3
  2223. package/lib/translated/fr_CA/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2224. package/lib/translated/fr_CA/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2225. package/lib/translated/fr_CA/modules/rce/plugins/shared/Filter.js +6 -5
  2226. package/lib/translated/fr_CA/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2227. package/lib/translated/fr_CA/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2228. package/lib/translated/fr_CA/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2229. package/lib/translated/fr_CA/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2230. package/lib/translated/fr_CA/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2231. package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2232. package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2233. package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2234. package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2235. package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2236. package/lib/translated/fr_CA/modules/rce/plugins/shared/linkUtils.js +58 -0
  2237. package/lib/translated/fr_CA/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2238. package/lib/translated/fr_CA/modules/rce/userOS.js +31 -0
  2239. package/lib/translated/he/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2240. package/lib/translated/he/modules/common/components/LoadMore.js +2 -1
  2241. package/lib/translated/he/modules/rce/KeyboardShortcutModal.js +10 -7
  2242. package/lib/translated/he/modules/rce/RCE.js +12 -6
  2243. package/lib/translated/he/modules/rce/RCEGlobals.js +62 -0
  2244. package/lib/translated/he/modules/rce/RCEWrapper.js +49 -19
  2245. package/lib/translated/he/modules/rce/RestoreAutoSaveModal.js +4 -3
  2246. package/lib/translated/he/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2247. package/lib/translated/he/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2248. package/lib/translated/he/modules/rce/__tests__/userOS.test.js +68 -0
  2249. package/lib/translated/he/modules/rce/contentInsertion.js +3 -1
  2250. package/lib/translated/he/modules/rce/initA11yChecker.js +0 -3
  2251. package/lib/translated/he/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2252. package/lib/translated/he/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2253. package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2254. package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2255. package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2256. package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2257. package/lib/translated/he/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2258. package/lib/translated/he/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2259. package/lib/translated/he/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2260. package/lib/translated/he/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2261. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2262. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2263. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2264. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2265. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2266. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2267. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2268. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2269. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2270. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2271. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2272. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2273. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2274. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2275. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2276. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2277. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2278. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2279. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2280. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2281. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2282. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2283. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2284. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2285. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2286. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2287. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2288. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2289. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2290. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2291. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2292. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2293. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2294. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2295. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2296. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2297. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2298. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2299. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2300. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2301. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2302. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2303. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2304. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2305. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2306. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2307. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2308. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2309. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2310. package/lib/translated/he/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2311. package/lib/translated/he/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2312. package/lib/translated/he/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2313. package/lib/translated/he/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2314. package/lib/translated/he/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2315. package/lib/translated/he/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2316. package/lib/translated/he/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2317. package/lib/translated/he/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2318. package/lib/translated/he/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2319. package/lib/translated/he/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2320. package/lib/translated/he/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2321. package/lib/translated/he/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2322. package/lib/translated/he/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2323. package/lib/translated/he/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2324. package/lib/translated/he/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2325. package/lib/translated/he/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2326. package/lib/translated/he/modules/rce/plugins/shared/ColorInput.js +4 -3
  2327. package/lib/translated/he/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2328. package/lib/translated/he/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2329. package/lib/translated/he/modules/rce/plugins/shared/Filter.js +6 -5
  2330. package/lib/translated/he/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2331. package/lib/translated/he/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2332. package/lib/translated/he/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2333. package/lib/translated/he/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2334. package/lib/translated/he/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2335. package/lib/translated/he/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2336. package/lib/translated/he/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2337. package/lib/translated/he/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2338. package/lib/translated/he/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2339. package/lib/translated/he/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2340. package/lib/translated/he/modules/rce/plugins/shared/linkUtils.js +58 -0
  2341. package/lib/translated/he/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2342. package/lib/translated/he/modules/rce/userOS.js +31 -0
  2343. package/lib/translated/ht/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2344. package/lib/translated/ht/modules/common/components/LoadMore.js +2 -1
  2345. package/lib/translated/ht/modules/rce/KeyboardShortcutModal.js +10 -7
  2346. package/lib/translated/ht/modules/rce/RCE.js +12 -6
  2347. package/lib/translated/ht/modules/rce/RCEGlobals.js +62 -0
  2348. package/lib/translated/ht/modules/rce/RCEWrapper.js +49 -19
  2349. package/lib/translated/ht/modules/rce/RestoreAutoSaveModal.js +4 -3
  2350. package/lib/translated/ht/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2351. package/lib/translated/ht/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2352. package/lib/translated/ht/modules/rce/__tests__/userOS.test.js +68 -0
  2353. package/lib/translated/ht/modules/rce/contentInsertion.js +3 -1
  2354. package/lib/translated/ht/modules/rce/initA11yChecker.js +0 -3
  2355. package/lib/translated/ht/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2356. package/lib/translated/ht/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2357. package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2358. package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2359. package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2360. package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2361. package/lib/translated/ht/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2362. package/lib/translated/ht/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2363. package/lib/translated/ht/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2364. package/lib/translated/ht/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2365. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2366. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2367. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2368. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2369. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2370. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2371. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2372. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2373. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2374. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2375. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2376. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2377. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2378. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2379. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2380. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2381. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2382. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2383. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2384. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2385. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2386. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2387. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2388. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2389. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2390. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2391. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2392. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2393. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2394. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2395. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2396. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2397. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2398. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2399. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2400. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2401. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2402. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2403. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2404. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2405. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2406. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2407. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2408. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2409. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2410. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2411. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2412. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2413. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2414. package/lib/translated/ht/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2415. package/lib/translated/ht/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2416. package/lib/translated/ht/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2417. package/lib/translated/ht/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2418. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2419. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2420. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2421. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2422. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2423. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2424. package/lib/translated/ht/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2425. package/lib/translated/ht/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2426. package/lib/translated/ht/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2427. package/lib/translated/ht/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2428. package/lib/translated/ht/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2429. package/lib/translated/ht/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2430. package/lib/translated/ht/modules/rce/plugins/shared/ColorInput.js +4 -3
  2431. package/lib/translated/ht/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2432. package/lib/translated/ht/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2433. package/lib/translated/ht/modules/rce/plugins/shared/Filter.js +6 -5
  2434. package/lib/translated/ht/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2435. package/lib/translated/ht/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2436. package/lib/translated/ht/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2437. package/lib/translated/ht/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2438. package/lib/translated/ht/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2439. package/lib/translated/ht/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2440. package/lib/translated/ht/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2441. package/lib/translated/ht/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2442. package/lib/translated/ht/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2443. package/lib/translated/ht/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2444. package/lib/translated/ht/modules/rce/plugins/shared/linkUtils.js +58 -0
  2445. package/lib/translated/ht/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2446. package/lib/translated/ht/modules/rce/userOS.js +31 -0
  2447. package/lib/translated/hu/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2448. package/lib/translated/hu/modules/common/components/LoadMore.js +2 -1
  2449. package/lib/translated/hu/modules/rce/KeyboardShortcutModal.js +10 -7
  2450. package/lib/translated/hu/modules/rce/RCE.js +12 -6
  2451. package/lib/translated/hu/modules/rce/RCEGlobals.js +62 -0
  2452. package/lib/translated/hu/modules/rce/RCEWrapper.js +49 -19
  2453. package/lib/translated/hu/modules/rce/RestoreAutoSaveModal.js +4 -3
  2454. package/lib/translated/hu/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2455. package/lib/translated/hu/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2456. package/lib/translated/hu/modules/rce/__tests__/userOS.test.js +68 -0
  2457. package/lib/translated/hu/modules/rce/contentInsertion.js +3 -1
  2458. package/lib/translated/hu/modules/rce/initA11yChecker.js +0 -3
  2459. package/lib/translated/hu/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2460. package/lib/translated/hu/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2461. package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2462. package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2463. package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2464. package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2465. package/lib/translated/hu/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2466. package/lib/translated/hu/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2467. package/lib/translated/hu/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2468. package/lib/translated/hu/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2469. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2470. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2471. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2472. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2473. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2474. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2475. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2476. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2477. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2478. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2479. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2480. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2481. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2482. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2483. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2484. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2485. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2486. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2487. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2488. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2489. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2490. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2491. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2492. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2493. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2494. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2495. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2496. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2497. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2498. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2499. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2500. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2501. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2502. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2503. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2504. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2505. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2506. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2507. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2508. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2509. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2510. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2511. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2512. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2513. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2514. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2515. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2516. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2517. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2518. package/lib/translated/hu/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2519. package/lib/translated/hu/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2520. package/lib/translated/hu/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2521. package/lib/translated/hu/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2522. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2523. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2524. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2525. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2526. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2527. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2528. package/lib/translated/hu/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2529. package/lib/translated/hu/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2530. package/lib/translated/hu/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2531. package/lib/translated/hu/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2532. package/lib/translated/hu/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2533. package/lib/translated/hu/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2534. package/lib/translated/hu/modules/rce/plugins/shared/ColorInput.js +4 -3
  2535. package/lib/translated/hu/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2536. package/lib/translated/hu/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2537. package/lib/translated/hu/modules/rce/plugins/shared/Filter.js +6 -5
  2538. package/lib/translated/hu/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2539. package/lib/translated/hu/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2540. package/lib/translated/hu/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2541. package/lib/translated/hu/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2542. package/lib/translated/hu/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2543. package/lib/translated/hu/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2544. package/lib/translated/hu/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2545. package/lib/translated/hu/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2546. package/lib/translated/hu/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2547. package/lib/translated/hu/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2548. package/lib/translated/hu/modules/rce/plugins/shared/linkUtils.js +58 -0
  2549. package/lib/translated/hu/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2550. package/lib/translated/hu/modules/rce/userOS.js +31 -0
  2551. package/lib/translated/hy/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2552. package/lib/translated/hy/modules/common/components/LoadMore.js +2 -1
  2553. package/lib/translated/hy/modules/rce/KeyboardShortcutModal.js +10 -7
  2554. package/lib/translated/hy/modules/rce/RCE.js +12 -6
  2555. package/lib/translated/hy/modules/rce/RCEGlobals.js +62 -0
  2556. package/lib/translated/hy/modules/rce/RCEWrapper.js +49 -19
  2557. package/lib/translated/hy/modules/rce/RestoreAutoSaveModal.js +4 -3
  2558. package/lib/translated/hy/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2559. package/lib/translated/hy/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2560. package/lib/translated/hy/modules/rce/__tests__/userOS.test.js +68 -0
  2561. package/lib/translated/hy/modules/rce/contentInsertion.js +3 -1
  2562. package/lib/translated/hy/modules/rce/initA11yChecker.js +0 -3
  2563. package/lib/translated/hy/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2564. package/lib/translated/hy/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2565. package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2566. package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2567. package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2568. package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2569. package/lib/translated/hy/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2570. package/lib/translated/hy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2571. package/lib/translated/hy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2572. package/lib/translated/hy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2573. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2574. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2575. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2576. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2577. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2578. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2579. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2580. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2581. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2582. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2583. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2584. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2585. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2586. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2587. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2588. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2589. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2590. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2591. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2592. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2593. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2594. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2595. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2596. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2597. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2598. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2599. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2600. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2601. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2602. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2603. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2604. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2605. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2606. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2607. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2608. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2609. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2610. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2611. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2612. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2613. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2614. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2615. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2616. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2617. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2618. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2619. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2620. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2621. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2622. package/lib/translated/hy/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2623. package/lib/translated/hy/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2624. package/lib/translated/hy/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2625. package/lib/translated/hy/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2626. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2627. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2628. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2629. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2630. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2631. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2632. package/lib/translated/hy/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2633. package/lib/translated/hy/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2634. package/lib/translated/hy/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2635. package/lib/translated/hy/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2636. package/lib/translated/hy/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2637. package/lib/translated/hy/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2638. package/lib/translated/hy/modules/rce/plugins/shared/ColorInput.js +4 -3
  2639. package/lib/translated/hy/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2640. package/lib/translated/hy/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2641. package/lib/translated/hy/modules/rce/plugins/shared/Filter.js +6 -5
  2642. package/lib/translated/hy/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2643. package/lib/translated/hy/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2644. package/lib/translated/hy/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2645. package/lib/translated/hy/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2646. package/lib/translated/hy/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2647. package/lib/translated/hy/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2648. package/lib/translated/hy/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2649. package/lib/translated/hy/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2650. package/lib/translated/hy/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2651. package/lib/translated/hy/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2652. package/lib/translated/hy/modules/rce/plugins/shared/linkUtils.js +58 -0
  2653. package/lib/translated/hy/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2654. package/lib/translated/hy/modules/rce/userOS.js +31 -0
  2655. package/lib/translated/is/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2656. package/lib/translated/is/modules/common/components/LoadMore.js +2 -1
  2657. package/lib/translated/is/modules/rce/KeyboardShortcutModal.js +10 -7
  2658. package/lib/translated/is/modules/rce/RCE.js +12 -6
  2659. package/lib/translated/is/modules/rce/RCEGlobals.js +62 -0
  2660. package/lib/translated/is/modules/rce/RCEWrapper.js +49 -19
  2661. package/lib/translated/is/modules/rce/RestoreAutoSaveModal.js +4 -3
  2662. package/lib/translated/is/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2663. package/lib/translated/is/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2664. package/lib/translated/is/modules/rce/__tests__/userOS.test.js +68 -0
  2665. package/lib/translated/is/modules/rce/contentInsertion.js +3 -1
  2666. package/lib/translated/is/modules/rce/initA11yChecker.js +0 -3
  2667. package/lib/translated/is/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2668. package/lib/translated/is/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2669. package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2670. package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2671. package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2672. package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2673. package/lib/translated/is/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2674. package/lib/translated/is/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2675. package/lib/translated/is/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2676. package/lib/translated/is/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2677. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2678. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2679. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2680. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2681. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2682. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2683. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2684. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2685. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2686. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2687. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2688. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2689. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2690. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2691. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2692. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2693. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2694. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2695. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2696. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2697. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2698. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2699. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2700. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2701. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2702. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2703. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2704. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2705. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2706. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2707. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2708. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2709. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2710. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2711. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2712. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2713. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2714. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2715. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2716. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2717. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2718. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2719. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2720. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2721. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2722. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2723. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2724. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2725. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2726. package/lib/translated/is/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2727. package/lib/translated/is/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2728. package/lib/translated/is/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2729. package/lib/translated/is/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2730. package/lib/translated/is/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2731. package/lib/translated/is/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2732. package/lib/translated/is/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2733. package/lib/translated/is/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2734. package/lib/translated/is/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2735. package/lib/translated/is/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2736. package/lib/translated/is/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2737. package/lib/translated/is/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2738. package/lib/translated/is/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2739. package/lib/translated/is/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2740. package/lib/translated/is/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2741. package/lib/translated/is/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2742. package/lib/translated/is/modules/rce/plugins/shared/ColorInput.js +4 -3
  2743. package/lib/translated/is/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2744. package/lib/translated/is/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2745. package/lib/translated/is/modules/rce/plugins/shared/Filter.js +6 -5
  2746. package/lib/translated/is/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2747. package/lib/translated/is/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2748. package/lib/translated/is/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2749. package/lib/translated/is/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2750. package/lib/translated/is/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2751. package/lib/translated/is/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2752. package/lib/translated/is/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2753. package/lib/translated/is/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2754. package/lib/translated/is/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2755. package/lib/translated/is/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2756. package/lib/translated/is/modules/rce/plugins/shared/linkUtils.js +58 -0
  2757. package/lib/translated/is/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2758. package/lib/translated/is/modules/rce/userOS.js +31 -0
  2759. package/lib/translated/it/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2760. package/lib/translated/it/modules/common/components/LoadMore.js +2 -1
  2761. package/lib/translated/it/modules/rce/KeyboardShortcutModal.js +10 -7
  2762. package/lib/translated/it/modules/rce/RCE.js +12 -6
  2763. package/lib/translated/it/modules/rce/RCEGlobals.js +62 -0
  2764. package/lib/translated/it/modules/rce/RCEWrapper.js +49 -19
  2765. package/lib/translated/it/modules/rce/RestoreAutoSaveModal.js +4 -3
  2766. package/lib/translated/it/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2767. package/lib/translated/it/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2768. package/lib/translated/it/modules/rce/__tests__/userOS.test.js +68 -0
  2769. package/lib/translated/it/modules/rce/contentInsertion.js +3 -1
  2770. package/lib/translated/it/modules/rce/initA11yChecker.js +0 -3
  2771. package/lib/translated/it/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2772. package/lib/translated/it/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2773. package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2774. package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2775. package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2776. package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2777. package/lib/translated/it/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2778. package/lib/translated/it/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2779. package/lib/translated/it/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2780. package/lib/translated/it/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2781. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2782. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2783. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2784. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2785. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2786. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2787. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2788. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2789. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2790. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2791. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2792. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2793. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2794. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2795. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2796. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2797. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2798. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2799. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2800. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2801. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2802. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2803. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2804. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2805. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2806. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2807. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2808. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2809. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2810. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2811. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2812. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2813. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2814. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2815. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2816. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2817. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2818. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2819. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2820. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2821. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2822. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2823. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2824. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2825. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2826. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2827. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2828. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2829. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2830. package/lib/translated/it/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2831. package/lib/translated/it/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2832. package/lib/translated/it/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2833. package/lib/translated/it/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2834. package/lib/translated/it/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2835. package/lib/translated/it/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2836. package/lib/translated/it/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2837. package/lib/translated/it/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2838. package/lib/translated/it/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2839. package/lib/translated/it/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2840. package/lib/translated/it/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2841. package/lib/translated/it/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2842. package/lib/translated/it/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2843. package/lib/translated/it/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2844. package/lib/translated/it/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2845. package/lib/translated/it/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2846. package/lib/translated/it/modules/rce/plugins/shared/ColorInput.js +4 -3
  2847. package/lib/translated/it/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2848. package/lib/translated/it/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2849. package/lib/translated/it/modules/rce/plugins/shared/Filter.js +6 -5
  2850. package/lib/translated/it/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2851. package/lib/translated/it/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2852. package/lib/translated/it/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2853. package/lib/translated/it/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2854. package/lib/translated/it/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2855. package/lib/translated/it/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2856. package/lib/translated/it/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2857. package/lib/translated/it/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2858. package/lib/translated/it/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2859. package/lib/translated/it/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2860. package/lib/translated/it/modules/rce/plugins/shared/linkUtils.js +58 -0
  2861. package/lib/translated/it/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2862. package/lib/translated/it/modules/rce/userOS.js +31 -0
  2863. package/lib/translated/ja/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2864. package/lib/translated/ja/modules/common/components/LoadMore.js +2 -1
  2865. package/lib/translated/ja/modules/rce/KeyboardShortcutModal.js +10 -7
  2866. package/lib/translated/ja/modules/rce/RCE.js +12 -6
  2867. package/lib/translated/ja/modules/rce/RCEGlobals.js +62 -0
  2868. package/lib/translated/ja/modules/rce/RCEWrapper.js +49 -19
  2869. package/lib/translated/ja/modules/rce/RestoreAutoSaveModal.js +4 -3
  2870. package/lib/translated/ja/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2871. package/lib/translated/ja/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2872. package/lib/translated/ja/modules/rce/__tests__/userOS.test.js +68 -0
  2873. package/lib/translated/ja/modules/rce/contentInsertion.js +3 -1
  2874. package/lib/translated/ja/modules/rce/initA11yChecker.js +0 -3
  2875. package/lib/translated/ja/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2876. package/lib/translated/ja/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2877. package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2878. package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2879. package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2880. package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2881. package/lib/translated/ja/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2882. package/lib/translated/ja/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2883. package/lib/translated/ja/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2884. package/lib/translated/ja/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2885. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2886. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2887. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2888. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2889. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2890. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2891. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2892. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2893. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2894. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2895. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  2896. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  2897. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  2898. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  2899. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  2900. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  2901. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  2902. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  2903. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  2904. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  2905. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  2906. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  2907. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  2908. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  2909. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  2910. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  2911. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  2912. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  2913. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  2914. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  2915. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  2916. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  2917. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  2918. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  2919. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  2920. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  2921. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  2922. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  2923. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  2924. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  2925. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  2926. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  2927. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  2928. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  2929. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  2930. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  2931. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  2932. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  2933. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  2934. package/lib/translated/ja/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  2935. package/lib/translated/ja/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  2936. package/lib/translated/ja/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  2937. package/lib/translated/ja/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  2938. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  2939. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  2940. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  2941. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  2942. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  2943. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  2944. package/lib/translated/ja/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  2945. package/lib/translated/ja/modules/rce/plugins/instructure_links/plugin.js +18 -3
  2946. package/lib/translated/ja/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  2947. package/lib/translated/ja/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  2948. package/lib/translated/ja/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  2949. package/lib/translated/ja/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  2950. package/lib/translated/ja/modules/rce/plugins/shared/ColorInput.js +4 -3
  2951. package/lib/translated/ja/modules/rce/plugins/shared/ContentSelection.js +7 -1
  2952. package/lib/translated/ja/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  2953. package/lib/translated/ja/modules/rce/plugins/shared/Filter.js +6 -5
  2954. package/lib/translated/ja/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  2955. package/lib/translated/ja/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  2956. package/lib/translated/ja/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  2957. package/lib/translated/ja/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  2958. package/lib/translated/ja/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  2959. package/lib/translated/ja/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  2960. package/lib/translated/ja/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  2961. package/lib/translated/ja/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  2962. package/lib/translated/ja/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  2963. package/lib/translated/ja/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  2964. package/lib/translated/ja/modules/rce/plugins/shared/linkUtils.js +58 -0
  2965. package/lib/translated/ja/modules/rce/plugins/shared/useDataUrl.js +14 -4
  2966. package/lib/translated/ja/modules/rce/userOS.js +31 -0
  2967. package/lib/translated/ko/modules/canvasFileBrowser/FlashAlert.js +8 -5
  2968. package/lib/translated/ko/modules/common/components/LoadMore.js +2 -1
  2969. package/lib/translated/ko/modules/rce/KeyboardShortcutModal.js +10 -7
  2970. package/lib/translated/ko/modules/rce/RCE.js +12 -6
  2971. package/lib/translated/ko/modules/rce/RCEGlobals.js +62 -0
  2972. package/lib/translated/ko/modules/rce/RCEWrapper.js +49 -19
  2973. package/lib/translated/ko/modules/rce/RestoreAutoSaveModal.js +4 -3
  2974. package/lib/translated/ko/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  2975. package/lib/translated/ko/modules/rce/__tests__/contentInsertion.test.js +6 -0
  2976. package/lib/translated/ko/modules/rce/__tests__/userOS.test.js +68 -0
  2977. package/lib/translated/ko/modules/rce/contentInsertion.js +3 -1
  2978. package/lib/translated/ko/modules/rce/initA11yChecker.js +0 -3
  2979. package/lib/translated/ko/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  2980. package/lib/translated/ko/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  2981. package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  2982. package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  2983. package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  2984. package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  2985. package/lib/translated/ko/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  2986. package/lib/translated/ko/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  2987. package/lib/translated/ko/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  2988. package/lib/translated/ko/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  2989. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  2990. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  2991. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  2992. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  2993. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  2994. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  2995. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  2996. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  2997. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  2998. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  2999. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3000. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3001. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3002. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3003. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3004. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3005. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3006. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3007. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3008. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3009. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3010. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3011. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3012. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3013. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3014. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3015. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3016. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3017. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3018. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3019. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3020. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3021. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3022. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3023. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3024. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3025. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3026. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3027. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3028. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3029. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3030. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3031. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3032. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3033. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3034. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3035. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3036. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3037. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3038. package/lib/translated/ko/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3039. package/lib/translated/ko/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3040. package/lib/translated/ko/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3041. package/lib/translated/ko/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3042. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3043. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3044. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3045. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3046. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3047. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3048. package/lib/translated/ko/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3049. package/lib/translated/ko/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3050. package/lib/translated/ko/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3051. package/lib/translated/ko/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3052. package/lib/translated/ko/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3053. package/lib/translated/ko/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3054. package/lib/translated/ko/modules/rce/plugins/shared/ColorInput.js +4 -3
  3055. package/lib/translated/ko/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3056. package/lib/translated/ko/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3057. package/lib/translated/ko/modules/rce/plugins/shared/Filter.js +6 -5
  3058. package/lib/translated/ko/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3059. package/lib/translated/ko/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3060. package/lib/translated/ko/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3061. package/lib/translated/ko/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3062. package/lib/translated/ko/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3063. package/lib/translated/ko/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3064. package/lib/translated/ko/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3065. package/lib/translated/ko/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3066. package/lib/translated/ko/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3067. package/lib/translated/ko/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3068. package/lib/translated/ko/modules/rce/plugins/shared/linkUtils.js +58 -0
  3069. package/lib/translated/ko/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3070. package/lib/translated/ko/modules/rce/userOS.js +31 -0
  3071. package/lib/translated/mi/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3072. package/lib/translated/mi/modules/common/components/LoadMore.js +2 -1
  3073. package/lib/translated/mi/modules/rce/KeyboardShortcutModal.js +10 -7
  3074. package/lib/translated/mi/modules/rce/RCE.js +12 -6
  3075. package/lib/translated/mi/modules/rce/RCEGlobals.js +62 -0
  3076. package/lib/translated/mi/modules/rce/RCEWrapper.js +49 -19
  3077. package/lib/translated/mi/modules/rce/RestoreAutoSaveModal.js +4 -3
  3078. package/lib/translated/mi/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3079. package/lib/translated/mi/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3080. package/lib/translated/mi/modules/rce/__tests__/userOS.test.js +68 -0
  3081. package/lib/translated/mi/modules/rce/contentInsertion.js +3 -1
  3082. package/lib/translated/mi/modules/rce/initA11yChecker.js +0 -3
  3083. package/lib/translated/mi/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3084. package/lib/translated/mi/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3085. package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3086. package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3087. package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3088. package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3089. package/lib/translated/mi/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3090. package/lib/translated/mi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3091. package/lib/translated/mi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3092. package/lib/translated/mi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3093. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3094. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3095. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3096. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3097. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3098. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3099. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3100. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3101. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3102. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3103. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3104. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3105. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3106. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3107. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3108. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3109. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3110. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3111. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3112. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3113. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3114. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3115. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3116. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3117. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3118. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3119. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3120. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3121. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3122. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3123. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3124. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3125. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3126. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3127. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3128. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3129. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3130. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3131. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3132. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3133. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3134. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3135. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3136. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3137. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3138. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3139. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3140. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3141. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3142. package/lib/translated/mi/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3143. package/lib/translated/mi/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3144. package/lib/translated/mi/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3145. package/lib/translated/mi/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3146. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3147. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3148. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3149. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3150. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3151. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3152. package/lib/translated/mi/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3153. package/lib/translated/mi/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3154. package/lib/translated/mi/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3155. package/lib/translated/mi/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3156. package/lib/translated/mi/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3157. package/lib/translated/mi/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3158. package/lib/translated/mi/modules/rce/plugins/shared/ColorInput.js +4 -3
  3159. package/lib/translated/mi/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3160. package/lib/translated/mi/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3161. package/lib/translated/mi/modules/rce/plugins/shared/Filter.js +6 -5
  3162. package/lib/translated/mi/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3163. package/lib/translated/mi/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3164. package/lib/translated/mi/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3165. package/lib/translated/mi/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3166. package/lib/translated/mi/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3167. package/lib/translated/mi/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3168. package/lib/translated/mi/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3169. package/lib/translated/mi/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3170. package/lib/translated/mi/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3171. package/lib/translated/mi/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3172. package/lib/translated/mi/modules/rce/plugins/shared/linkUtils.js +58 -0
  3173. package/lib/translated/mi/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3174. package/lib/translated/mi/modules/rce/userOS.js +31 -0
  3175. package/lib/translated/nb/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3176. package/lib/translated/nb/modules/common/components/LoadMore.js +2 -1
  3177. package/lib/translated/nb/modules/rce/KeyboardShortcutModal.js +10 -7
  3178. package/lib/translated/nb/modules/rce/RCE.js +12 -6
  3179. package/lib/translated/nb/modules/rce/RCEGlobals.js +62 -0
  3180. package/lib/translated/nb/modules/rce/RCEWrapper.js +49 -19
  3181. package/lib/translated/nb/modules/rce/RestoreAutoSaveModal.js +4 -3
  3182. package/lib/translated/nb/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3183. package/lib/translated/nb/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3184. package/lib/translated/nb/modules/rce/__tests__/userOS.test.js +68 -0
  3185. package/lib/translated/nb/modules/rce/contentInsertion.js +3 -1
  3186. package/lib/translated/nb/modules/rce/initA11yChecker.js +0 -3
  3187. package/lib/translated/nb/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3188. package/lib/translated/nb/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3189. package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3190. package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3191. package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3192. package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3193. package/lib/translated/nb/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3194. package/lib/translated/nb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3195. package/lib/translated/nb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3196. package/lib/translated/nb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3197. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3198. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3199. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3200. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3201. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3202. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3203. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3204. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3205. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3206. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3207. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3208. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3209. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3210. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3211. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3212. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3213. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3214. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3215. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3216. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3217. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3218. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3219. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3220. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3221. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3222. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3223. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3224. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3225. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3226. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3227. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3228. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3229. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3230. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3231. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3232. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3233. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3234. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3235. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3236. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3237. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3238. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3239. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3240. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3241. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3242. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3243. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3244. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3245. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3246. package/lib/translated/nb/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3247. package/lib/translated/nb/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3248. package/lib/translated/nb/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3249. package/lib/translated/nb/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3250. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3251. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3252. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3253. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3254. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3255. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3256. package/lib/translated/nb/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3257. package/lib/translated/nb/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3258. package/lib/translated/nb/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3259. package/lib/translated/nb/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3260. package/lib/translated/nb/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3261. package/lib/translated/nb/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3262. package/lib/translated/nb/modules/rce/plugins/shared/ColorInput.js +4 -3
  3263. package/lib/translated/nb/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3264. package/lib/translated/nb/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3265. package/lib/translated/nb/modules/rce/plugins/shared/Filter.js +6 -5
  3266. package/lib/translated/nb/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3267. package/lib/translated/nb/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3268. package/lib/translated/nb/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3269. package/lib/translated/nb/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3270. package/lib/translated/nb/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3271. package/lib/translated/nb/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3272. package/lib/translated/nb/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3273. package/lib/translated/nb/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3274. package/lib/translated/nb/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3275. package/lib/translated/nb/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3276. package/lib/translated/nb/modules/rce/plugins/shared/linkUtils.js +58 -0
  3277. package/lib/translated/nb/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3278. package/lib/translated/nb/modules/rce/userOS.js +31 -0
  3279. package/lib/translated/nb-x-k12/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3280. package/lib/translated/nb-x-k12/modules/common/components/LoadMore.js +2 -1
  3281. package/lib/translated/nb-x-k12/modules/rce/KeyboardShortcutModal.js +10 -7
  3282. package/lib/translated/nb-x-k12/modules/rce/RCE.js +12 -6
  3283. package/lib/translated/nb-x-k12/modules/rce/RCEGlobals.js +62 -0
  3284. package/lib/translated/nb-x-k12/modules/rce/RCEWrapper.js +49 -19
  3285. package/lib/translated/nb-x-k12/modules/rce/RestoreAutoSaveModal.js +4 -3
  3286. package/lib/translated/nb-x-k12/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3287. package/lib/translated/nb-x-k12/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3288. package/lib/translated/nb-x-k12/modules/rce/__tests__/userOS.test.js +68 -0
  3289. package/lib/translated/nb-x-k12/modules/rce/contentInsertion.js +3 -1
  3290. package/lib/translated/nb-x-k12/modules/rce/initA11yChecker.js +0 -3
  3291. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3292. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3293. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3294. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3295. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3296. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3297. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3298. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3299. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3300. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3301. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3302. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3303. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3304. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3305. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3306. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3307. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3308. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3309. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3310. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3311. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3312. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3313. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3314. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3315. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3316. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3317. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3318. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3319. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3320. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3321. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3322. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3323. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3324. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3325. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3326. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3327. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3328. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3329. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3330. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3331. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3332. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3333. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3334. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3335. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3336. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3337. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3338. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3339. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3340. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3341. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3342. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3343. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3344. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3345. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3346. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3347. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3348. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3349. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3350. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3351. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3352. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3353. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3354. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3355. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3356. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3357. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3358. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3359. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3360. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3361. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3362. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3363. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3364. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3365. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3366. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/ColorInput.js +4 -3
  3367. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3368. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3369. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Filter.js +6 -5
  3370. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3371. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3372. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3373. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3374. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3375. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3376. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3377. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3378. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3379. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3380. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/linkUtils.js +58 -0
  3381. package/lib/translated/nb-x-k12/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3382. package/lib/translated/nb-x-k12/modules/rce/userOS.js +31 -0
  3383. package/lib/translated/nl/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3384. package/lib/translated/nl/modules/common/components/LoadMore.js +2 -1
  3385. package/lib/translated/nl/modules/rce/KeyboardShortcutModal.js +10 -7
  3386. package/lib/translated/nl/modules/rce/RCE.js +12 -6
  3387. package/lib/translated/nl/modules/rce/RCEGlobals.js +62 -0
  3388. package/lib/translated/nl/modules/rce/RCEWrapper.js +49 -19
  3389. package/lib/translated/nl/modules/rce/RestoreAutoSaveModal.js +4 -3
  3390. package/lib/translated/nl/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3391. package/lib/translated/nl/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3392. package/lib/translated/nl/modules/rce/__tests__/userOS.test.js +68 -0
  3393. package/lib/translated/nl/modules/rce/contentInsertion.js +3 -1
  3394. package/lib/translated/nl/modules/rce/initA11yChecker.js +0 -3
  3395. package/lib/translated/nl/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3396. package/lib/translated/nl/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3397. package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3398. package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3399. package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3400. package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3401. package/lib/translated/nl/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3402. package/lib/translated/nl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3403. package/lib/translated/nl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3404. package/lib/translated/nl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3405. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3406. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3407. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3408. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3409. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3410. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3411. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3412. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3413. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3414. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3415. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3416. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3417. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3418. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3419. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3420. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3421. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3422. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3423. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3424. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3425. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3426. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3427. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3428. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3429. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3430. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3431. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3432. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3433. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3434. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3435. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3436. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3437. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3438. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3439. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3440. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3441. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3442. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3443. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3444. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3445. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3446. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3447. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3448. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3449. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3450. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3451. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3452. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3453. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3454. package/lib/translated/nl/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3455. package/lib/translated/nl/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3456. package/lib/translated/nl/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3457. package/lib/translated/nl/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3458. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3459. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3460. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3461. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3462. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3463. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3464. package/lib/translated/nl/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3465. package/lib/translated/nl/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3466. package/lib/translated/nl/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3467. package/lib/translated/nl/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3468. package/lib/translated/nl/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3469. package/lib/translated/nl/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3470. package/lib/translated/nl/modules/rce/plugins/shared/ColorInput.js +4 -3
  3471. package/lib/translated/nl/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3472. package/lib/translated/nl/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3473. package/lib/translated/nl/modules/rce/plugins/shared/Filter.js +6 -5
  3474. package/lib/translated/nl/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3475. package/lib/translated/nl/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3476. package/lib/translated/nl/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3477. package/lib/translated/nl/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3478. package/lib/translated/nl/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3479. package/lib/translated/nl/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3480. package/lib/translated/nl/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3481. package/lib/translated/nl/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3482. package/lib/translated/nl/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3483. package/lib/translated/nl/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3484. package/lib/translated/nl/modules/rce/plugins/shared/linkUtils.js +58 -0
  3485. package/lib/translated/nl/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3486. package/lib/translated/nl/modules/rce/userOS.js +31 -0
  3487. package/lib/translated/nn/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3488. package/lib/translated/nn/modules/common/components/LoadMore.js +2 -1
  3489. package/lib/translated/nn/modules/rce/KeyboardShortcutModal.js +10 -7
  3490. package/lib/translated/nn/modules/rce/RCE.js +12 -6
  3491. package/lib/translated/nn/modules/rce/RCEGlobals.js +62 -0
  3492. package/lib/translated/nn/modules/rce/RCEWrapper.js +49 -19
  3493. package/lib/translated/nn/modules/rce/RestoreAutoSaveModal.js +4 -3
  3494. package/lib/translated/nn/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3495. package/lib/translated/nn/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3496. package/lib/translated/nn/modules/rce/__tests__/userOS.test.js +68 -0
  3497. package/lib/translated/nn/modules/rce/contentInsertion.js +3 -1
  3498. package/lib/translated/nn/modules/rce/initA11yChecker.js +0 -3
  3499. package/lib/translated/nn/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3500. package/lib/translated/nn/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3501. package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3502. package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3503. package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3504. package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3505. package/lib/translated/nn/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3506. package/lib/translated/nn/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3507. package/lib/translated/nn/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3508. package/lib/translated/nn/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3509. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3510. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3511. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3512. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3513. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3514. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3515. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3516. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3517. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3518. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3519. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3520. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3521. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3522. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3523. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3524. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3525. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3526. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3527. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3528. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3529. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3530. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3531. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3532. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3533. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3534. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3535. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3536. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3537. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3538. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3539. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3540. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3541. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3542. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3543. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3544. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3545. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3546. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3547. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3548. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3549. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3550. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3551. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3552. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3553. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3554. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3555. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3556. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3557. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3558. package/lib/translated/nn/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3559. package/lib/translated/nn/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3560. package/lib/translated/nn/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3561. package/lib/translated/nn/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3562. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3563. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3564. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3565. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3566. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3567. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3568. package/lib/translated/nn/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3569. package/lib/translated/nn/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3570. package/lib/translated/nn/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3571. package/lib/translated/nn/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3572. package/lib/translated/nn/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3573. package/lib/translated/nn/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3574. package/lib/translated/nn/modules/rce/plugins/shared/ColorInput.js +4 -3
  3575. package/lib/translated/nn/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3576. package/lib/translated/nn/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3577. package/lib/translated/nn/modules/rce/plugins/shared/Filter.js +6 -5
  3578. package/lib/translated/nn/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3579. package/lib/translated/nn/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3580. package/lib/translated/nn/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3581. package/lib/translated/nn/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3582. package/lib/translated/nn/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3583. package/lib/translated/nn/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3584. package/lib/translated/nn/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3585. package/lib/translated/nn/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3586. package/lib/translated/nn/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3587. package/lib/translated/nn/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3588. package/lib/translated/nn/modules/rce/plugins/shared/linkUtils.js +58 -0
  3589. package/lib/translated/nn/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3590. package/lib/translated/nn/modules/rce/userOS.js +31 -0
  3591. package/lib/translated/pl/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3592. package/lib/translated/pl/modules/common/components/LoadMore.js +2 -1
  3593. package/lib/translated/pl/modules/rce/KeyboardShortcutModal.js +10 -7
  3594. package/lib/translated/pl/modules/rce/RCE.js +12 -6
  3595. package/lib/translated/pl/modules/rce/RCEGlobals.js +62 -0
  3596. package/lib/translated/pl/modules/rce/RCEWrapper.js +49 -19
  3597. package/lib/translated/pl/modules/rce/RestoreAutoSaveModal.js +4 -3
  3598. package/lib/translated/pl/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3599. package/lib/translated/pl/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3600. package/lib/translated/pl/modules/rce/__tests__/userOS.test.js +68 -0
  3601. package/lib/translated/pl/modules/rce/contentInsertion.js +3 -1
  3602. package/lib/translated/pl/modules/rce/initA11yChecker.js +0 -3
  3603. package/lib/translated/pl/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3604. package/lib/translated/pl/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3605. package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3606. package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3607. package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3608. package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3609. package/lib/translated/pl/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3610. package/lib/translated/pl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3611. package/lib/translated/pl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3612. package/lib/translated/pl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3613. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3614. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3615. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3616. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3617. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3618. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3619. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3620. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3621. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3622. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3623. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3624. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3625. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3626. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3627. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3628. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3629. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3630. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3631. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3632. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3633. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3634. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3635. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3636. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3637. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3638. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3639. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3640. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3641. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3642. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3643. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3644. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3645. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3646. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3647. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3648. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3649. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3650. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3651. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3652. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3653. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3654. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3655. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3656. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3657. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3658. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3659. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3660. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3661. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3662. package/lib/translated/pl/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3663. package/lib/translated/pl/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3664. package/lib/translated/pl/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3665. package/lib/translated/pl/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3666. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3667. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3668. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3669. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3670. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3671. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3672. package/lib/translated/pl/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3673. package/lib/translated/pl/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3674. package/lib/translated/pl/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3675. package/lib/translated/pl/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3676. package/lib/translated/pl/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3677. package/lib/translated/pl/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3678. package/lib/translated/pl/modules/rce/plugins/shared/ColorInput.js +4 -3
  3679. package/lib/translated/pl/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3680. package/lib/translated/pl/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3681. package/lib/translated/pl/modules/rce/plugins/shared/Filter.js +6 -5
  3682. package/lib/translated/pl/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3683. package/lib/translated/pl/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3684. package/lib/translated/pl/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3685. package/lib/translated/pl/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3686. package/lib/translated/pl/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3687. package/lib/translated/pl/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3688. package/lib/translated/pl/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3689. package/lib/translated/pl/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3690. package/lib/translated/pl/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3691. package/lib/translated/pl/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3692. package/lib/translated/pl/modules/rce/plugins/shared/linkUtils.js +58 -0
  3693. package/lib/translated/pl/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3694. package/lib/translated/pl/modules/rce/userOS.js +31 -0
  3695. package/lib/translated/pt/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3696. package/lib/translated/pt/modules/common/components/LoadMore.js +2 -1
  3697. package/lib/translated/pt/modules/rce/KeyboardShortcutModal.js +10 -7
  3698. package/lib/translated/pt/modules/rce/RCE.js +12 -6
  3699. package/lib/translated/pt/modules/rce/RCEGlobals.js +62 -0
  3700. package/lib/translated/pt/modules/rce/RCEWrapper.js +49 -19
  3701. package/lib/translated/pt/modules/rce/RestoreAutoSaveModal.js +4 -3
  3702. package/lib/translated/pt/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3703. package/lib/translated/pt/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3704. package/lib/translated/pt/modules/rce/__tests__/userOS.test.js +68 -0
  3705. package/lib/translated/pt/modules/rce/contentInsertion.js +3 -1
  3706. package/lib/translated/pt/modules/rce/initA11yChecker.js +0 -3
  3707. package/lib/translated/pt/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3708. package/lib/translated/pt/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3709. package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3710. package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3711. package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3712. package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3713. package/lib/translated/pt/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3714. package/lib/translated/pt/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3715. package/lib/translated/pt/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3716. package/lib/translated/pt/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3717. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3718. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3719. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3720. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3721. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3722. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3723. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3724. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3725. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3726. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3727. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3728. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3729. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3730. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3731. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3732. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3733. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3734. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3735. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3736. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3737. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3738. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3739. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3740. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3741. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3742. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3743. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3744. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3745. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3746. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3747. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3748. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3749. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3750. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3751. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3752. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3753. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3754. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3755. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3756. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3757. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3758. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3759. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3760. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3761. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3762. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3763. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3764. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3765. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3766. package/lib/translated/pt/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3767. package/lib/translated/pt/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3768. package/lib/translated/pt/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3769. package/lib/translated/pt/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3770. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3771. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3772. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3773. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3774. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3775. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3776. package/lib/translated/pt/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3777. package/lib/translated/pt/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3778. package/lib/translated/pt/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3779. package/lib/translated/pt/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3780. package/lib/translated/pt/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3781. package/lib/translated/pt/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3782. package/lib/translated/pt/modules/rce/plugins/shared/ColorInput.js +4 -3
  3783. package/lib/translated/pt/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3784. package/lib/translated/pt/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3785. package/lib/translated/pt/modules/rce/plugins/shared/Filter.js +6 -5
  3786. package/lib/translated/pt/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3787. package/lib/translated/pt/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3788. package/lib/translated/pt/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3789. package/lib/translated/pt/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3790. package/lib/translated/pt/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3791. package/lib/translated/pt/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3792. package/lib/translated/pt/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3793. package/lib/translated/pt/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3794. package/lib/translated/pt/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3795. package/lib/translated/pt/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3796. package/lib/translated/pt/modules/rce/plugins/shared/linkUtils.js +58 -0
  3797. package/lib/translated/pt/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3798. package/lib/translated/pt/modules/rce/userOS.js +31 -0
  3799. package/lib/translated/pt_BR/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3800. package/lib/translated/pt_BR/modules/common/components/LoadMore.js +2 -1
  3801. package/lib/translated/pt_BR/modules/rce/KeyboardShortcutModal.js +10 -7
  3802. package/lib/translated/pt_BR/modules/rce/RCE.js +12 -6
  3803. package/lib/translated/pt_BR/modules/rce/RCEGlobals.js +62 -0
  3804. package/lib/translated/pt_BR/modules/rce/RCEWrapper.js +49 -19
  3805. package/lib/translated/pt_BR/modules/rce/RestoreAutoSaveModal.js +4 -3
  3806. package/lib/translated/pt_BR/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3807. package/lib/translated/pt_BR/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3808. package/lib/translated/pt_BR/modules/rce/__tests__/userOS.test.js +68 -0
  3809. package/lib/translated/pt_BR/modules/rce/contentInsertion.js +3 -1
  3810. package/lib/translated/pt_BR/modules/rce/initA11yChecker.js +0 -3
  3811. package/lib/translated/pt_BR/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3812. package/lib/translated/pt_BR/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3813. package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3814. package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3815. package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3816. package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3817. package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3818. package/lib/translated/pt_BR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3819. package/lib/translated/pt_BR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3820. package/lib/translated/pt_BR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3821. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3822. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3823. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3824. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3825. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3826. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3827. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3828. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3829. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3830. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3831. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3832. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3833. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3834. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3835. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3836. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3837. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3838. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3839. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3840. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3841. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3842. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3843. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3844. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3845. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3846. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3847. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3848. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3849. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3850. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3851. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3852. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3853. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3854. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3855. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3856. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3857. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3858. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3859. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3860. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3861. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3862. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3863. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3864. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3865. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3866. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3867. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3868. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3869. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3870. package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3871. package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3872. package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3873. package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3874. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3875. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3876. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3877. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3878. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3879. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3880. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3881. package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3882. package/lib/translated/pt_BR/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3883. package/lib/translated/pt_BR/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3884. package/lib/translated/pt_BR/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3885. package/lib/translated/pt_BR/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3886. package/lib/translated/pt_BR/modules/rce/plugins/shared/ColorInput.js +4 -3
  3887. package/lib/translated/pt_BR/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3888. package/lib/translated/pt_BR/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3889. package/lib/translated/pt_BR/modules/rce/plugins/shared/Filter.js +6 -5
  3890. package/lib/translated/pt_BR/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3891. package/lib/translated/pt_BR/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3892. package/lib/translated/pt_BR/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3893. package/lib/translated/pt_BR/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3894. package/lib/translated/pt_BR/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3895. package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  3896. package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  3897. package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  3898. package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  3899. package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  3900. package/lib/translated/pt_BR/modules/rce/plugins/shared/linkUtils.js +58 -0
  3901. package/lib/translated/pt_BR/modules/rce/plugins/shared/useDataUrl.js +14 -4
  3902. package/lib/translated/pt_BR/modules/rce/userOS.js +31 -0
  3903. package/lib/translated/ru/modules/canvasFileBrowser/FlashAlert.js +8 -5
  3904. package/lib/translated/ru/modules/common/components/LoadMore.js +2 -1
  3905. package/lib/translated/ru/modules/rce/KeyboardShortcutModal.js +10 -7
  3906. package/lib/translated/ru/modules/rce/RCE.js +12 -6
  3907. package/lib/translated/ru/modules/rce/RCEGlobals.js +62 -0
  3908. package/lib/translated/ru/modules/rce/RCEWrapper.js +49 -19
  3909. package/lib/translated/ru/modules/rce/RestoreAutoSaveModal.js +4 -3
  3910. package/lib/translated/ru/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  3911. package/lib/translated/ru/modules/rce/__tests__/contentInsertion.test.js +6 -0
  3912. package/lib/translated/ru/modules/rce/__tests__/userOS.test.js +68 -0
  3913. package/lib/translated/ru/modules/rce/contentInsertion.js +3 -1
  3914. package/lib/translated/ru/modules/rce/initA11yChecker.js +0 -3
  3915. package/lib/translated/ru/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  3916. package/lib/translated/ru/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  3917. package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  3918. package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  3919. package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  3920. package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  3921. package/lib/translated/ru/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  3922. package/lib/translated/ru/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  3923. package/lib/translated/ru/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  3924. package/lib/translated/ru/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  3925. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  3926. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  3927. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  3928. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  3929. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  3930. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  3931. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  3932. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  3933. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  3934. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  3935. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  3936. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  3937. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  3938. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  3939. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  3940. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  3941. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  3942. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  3943. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  3944. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  3945. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  3946. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  3947. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  3948. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  3949. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  3950. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  3951. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  3952. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  3953. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  3954. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  3955. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  3956. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  3957. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  3958. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  3959. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  3960. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  3961. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  3962. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  3963. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  3964. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  3965. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  3966. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  3967. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  3968. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  3969. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  3970. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  3971. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  3972. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  3973. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  3974. package/lib/translated/ru/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  3975. package/lib/translated/ru/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  3976. package/lib/translated/ru/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  3977. package/lib/translated/ru/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  3978. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  3979. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  3980. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  3981. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  3982. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  3983. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  3984. package/lib/translated/ru/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  3985. package/lib/translated/ru/modules/rce/plugins/instructure_links/plugin.js +18 -3
  3986. package/lib/translated/ru/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  3987. package/lib/translated/ru/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  3988. package/lib/translated/ru/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  3989. package/lib/translated/ru/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  3990. package/lib/translated/ru/modules/rce/plugins/shared/ColorInput.js +4 -3
  3991. package/lib/translated/ru/modules/rce/plugins/shared/ContentSelection.js +7 -1
  3992. package/lib/translated/ru/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  3993. package/lib/translated/ru/modules/rce/plugins/shared/Filter.js +6 -5
  3994. package/lib/translated/ru/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  3995. package/lib/translated/ru/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  3996. package/lib/translated/ru/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  3997. package/lib/translated/ru/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  3998. package/lib/translated/ru/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  3999. package/lib/translated/ru/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4000. package/lib/translated/ru/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4001. package/lib/translated/ru/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4002. package/lib/translated/ru/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4003. package/lib/translated/ru/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4004. package/lib/translated/ru/modules/rce/plugins/shared/linkUtils.js +58 -0
  4005. package/lib/translated/ru/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4006. package/lib/translated/ru/modules/rce/userOS.js +31 -0
  4007. package/lib/translated/se/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4008. package/lib/translated/se/modules/common/components/LoadMore.js +2 -1
  4009. package/lib/translated/se/modules/rce/KeyboardShortcutModal.js +10 -7
  4010. package/lib/translated/se/modules/rce/RCE.js +12 -6
  4011. package/lib/translated/se/modules/rce/RCEGlobals.js +62 -0
  4012. package/lib/translated/se/modules/rce/RCEWrapper.js +49 -19
  4013. package/lib/translated/se/modules/rce/RestoreAutoSaveModal.js +4 -3
  4014. package/lib/translated/se/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4015. package/lib/translated/se/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4016. package/lib/translated/se/modules/rce/__tests__/userOS.test.js +68 -0
  4017. package/lib/translated/se/modules/rce/contentInsertion.js +3 -1
  4018. package/lib/translated/se/modules/rce/initA11yChecker.js +0 -3
  4019. package/lib/translated/se/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4020. package/lib/translated/se/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4021. package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4022. package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4023. package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4024. package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4025. package/lib/translated/se/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4026. package/lib/translated/se/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4027. package/lib/translated/se/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4028. package/lib/translated/se/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4029. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4030. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
  4031. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4032. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4033. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4034. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4035. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4036. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4037. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4038. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4039. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4040. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4041. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4042. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4043. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4044. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4045. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4046. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4047. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4048. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4049. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4050. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4051. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4052. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4053. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4054. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4055. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4056. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4057. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4058. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4059. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4060. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4061. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4062. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4063. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4064. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4065. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4066. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4067. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4068. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4069. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4070. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4071. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4072. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4073. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4074. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4075. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4076. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4077. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4078. package/lib/translated/se/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4079. package/lib/translated/se/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4080. package/lib/translated/se/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4081. package/lib/translated/se/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4082. package/lib/translated/se/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4083. package/lib/translated/se/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4084. package/lib/translated/se/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4085. package/lib/translated/se/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4086. package/lib/translated/se/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4087. package/lib/translated/se/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4088. package/lib/translated/se/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4089. package/lib/translated/se/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4090. package/lib/translated/se/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4091. package/lib/translated/se/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4092. package/lib/translated/se/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4093. package/lib/translated/se/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4094. package/lib/translated/se/modules/rce/plugins/shared/ColorInput.js +4 -3
  4095. package/lib/translated/se/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4096. package/lib/translated/se/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4097. package/lib/translated/se/modules/rce/plugins/shared/Filter.js +6 -5
  4098. package/lib/translated/se/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4099. package/lib/translated/se/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4100. package/lib/translated/se/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4101. package/lib/translated/se/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4102. package/lib/translated/se/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4103. package/lib/translated/se/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4104. package/lib/translated/se/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4105. package/lib/translated/se/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4106. package/lib/translated/se/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4107. package/lib/translated/se/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4108. package/lib/translated/se/modules/rce/plugins/shared/linkUtils.js +58 -0
  4109. package/lib/translated/se/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4110. package/lib/translated/se/modules/rce/userOS.js +31 -0
  4111. package/lib/translated/sl/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4112. package/lib/translated/sl/modules/common/components/LoadMore.js +2 -1
  4113. package/lib/translated/sl/modules/rce/KeyboardShortcutModal.js +10 -7
  4114. package/lib/translated/sl/modules/rce/RCE.js +12 -6
  4115. package/lib/translated/sl/modules/rce/RCEGlobals.js +62 -0
  4116. package/lib/translated/sl/modules/rce/RCEWrapper.js +49 -19
  4117. package/lib/translated/sl/modules/rce/RestoreAutoSaveModal.js +4 -3
  4118. package/lib/translated/sl/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4119. package/lib/translated/sl/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4120. package/lib/translated/sl/modules/rce/__tests__/userOS.test.js +68 -0
  4121. package/lib/translated/sl/modules/rce/contentInsertion.js +3 -1
  4122. package/lib/translated/sl/modules/rce/initA11yChecker.js +0 -3
  4123. package/lib/translated/sl/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4124. package/lib/translated/sl/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4125. package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4126. package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4127. package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4128. package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4129. package/lib/translated/sl/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4130. package/lib/translated/sl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4131. package/lib/translated/sl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4132. package/lib/translated/sl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4133. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4134. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4135. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4136. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4137. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4138. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4139. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4140. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4141. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4142. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4143. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4144. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4145. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4146. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4147. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4148. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4149. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4150. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4151. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4152. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4153. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4154. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4155. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4156. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4157. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4158. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4159. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4160. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4161. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4162. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4163. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4164. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4165. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4166. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4167. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4168. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4169. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4170. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4171. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4172. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4173. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4174. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4175. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4176. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4177. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4178. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4179. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4180. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4181. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4182. package/lib/translated/sl/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4183. package/lib/translated/sl/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4184. package/lib/translated/sl/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4185. package/lib/translated/sl/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4186. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4187. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4188. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4189. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4190. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4191. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4192. package/lib/translated/sl/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4193. package/lib/translated/sl/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4194. package/lib/translated/sl/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4195. package/lib/translated/sl/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4196. package/lib/translated/sl/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4197. package/lib/translated/sl/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4198. package/lib/translated/sl/modules/rce/plugins/shared/ColorInput.js +4 -3
  4199. package/lib/translated/sl/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4200. package/lib/translated/sl/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4201. package/lib/translated/sl/modules/rce/plugins/shared/Filter.js +6 -5
  4202. package/lib/translated/sl/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4203. package/lib/translated/sl/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4204. package/lib/translated/sl/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4205. package/lib/translated/sl/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4206. package/lib/translated/sl/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4207. package/lib/translated/sl/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4208. package/lib/translated/sl/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4209. package/lib/translated/sl/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4210. package/lib/translated/sl/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4211. package/lib/translated/sl/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4212. package/lib/translated/sl/modules/rce/plugins/shared/linkUtils.js +58 -0
  4213. package/lib/translated/sl/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4214. package/lib/translated/sl/modules/rce/userOS.js +31 -0
  4215. package/lib/translated/sv/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4216. package/lib/translated/sv/modules/common/components/LoadMore.js +2 -1
  4217. package/lib/translated/sv/modules/rce/KeyboardShortcutModal.js +10 -7
  4218. package/lib/translated/sv/modules/rce/RCE.js +12 -6
  4219. package/lib/translated/sv/modules/rce/RCEGlobals.js +62 -0
  4220. package/lib/translated/sv/modules/rce/RCEWrapper.js +49 -19
  4221. package/lib/translated/sv/modules/rce/RestoreAutoSaveModal.js +4 -3
  4222. package/lib/translated/sv/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4223. package/lib/translated/sv/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4224. package/lib/translated/sv/modules/rce/__tests__/userOS.test.js +68 -0
  4225. package/lib/translated/sv/modules/rce/contentInsertion.js +3 -1
  4226. package/lib/translated/sv/modules/rce/initA11yChecker.js +0 -3
  4227. package/lib/translated/sv/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4228. package/lib/translated/sv/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4229. package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4230. package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4231. package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4232. package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4233. package/lib/translated/sv/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4234. package/lib/translated/sv/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4235. package/lib/translated/sv/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4236. package/lib/translated/sv/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4237. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4238. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4239. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4240. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4241. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4242. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4243. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4244. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4245. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4246. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4247. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4248. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4249. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4250. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4251. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4252. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4253. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4254. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4255. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4256. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4257. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4258. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4259. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4260. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4261. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4262. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4263. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4264. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4265. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4266. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4267. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4268. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4269. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4270. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4271. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4272. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4273. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4274. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4275. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4276. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4277. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4278. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4279. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4280. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4281. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4282. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4283. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4284. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4285. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4286. package/lib/translated/sv/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4287. package/lib/translated/sv/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4288. package/lib/translated/sv/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4289. package/lib/translated/sv/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4290. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4291. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4292. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4293. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4294. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4295. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4296. package/lib/translated/sv/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4297. package/lib/translated/sv/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4298. package/lib/translated/sv/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4299. package/lib/translated/sv/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4300. package/lib/translated/sv/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4301. package/lib/translated/sv/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4302. package/lib/translated/sv/modules/rce/plugins/shared/ColorInput.js +4 -3
  4303. package/lib/translated/sv/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4304. package/lib/translated/sv/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4305. package/lib/translated/sv/modules/rce/plugins/shared/Filter.js +6 -5
  4306. package/lib/translated/sv/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4307. package/lib/translated/sv/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4308. package/lib/translated/sv/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4309. package/lib/translated/sv/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4310. package/lib/translated/sv/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4311. package/lib/translated/sv/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4312. package/lib/translated/sv/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4313. package/lib/translated/sv/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4314. package/lib/translated/sv/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4315. package/lib/translated/sv/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4316. package/lib/translated/sv/modules/rce/plugins/shared/linkUtils.js +58 -0
  4317. package/lib/translated/sv/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4318. package/lib/translated/sv/modules/rce/userOS.js +31 -0
  4319. package/lib/translated/sv-x-k12/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4320. package/lib/translated/sv-x-k12/modules/common/components/LoadMore.js +2 -1
  4321. package/lib/translated/sv-x-k12/modules/rce/KeyboardShortcutModal.js +10 -7
  4322. package/lib/translated/sv-x-k12/modules/rce/RCE.js +12 -6
  4323. package/lib/translated/sv-x-k12/modules/rce/RCEGlobals.js +62 -0
  4324. package/lib/translated/sv-x-k12/modules/rce/RCEWrapper.js +49 -19
  4325. package/lib/translated/sv-x-k12/modules/rce/RestoreAutoSaveModal.js +4 -3
  4326. package/lib/translated/sv-x-k12/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4327. package/lib/translated/sv-x-k12/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4328. package/lib/translated/sv-x-k12/modules/rce/__tests__/userOS.test.js +68 -0
  4329. package/lib/translated/sv-x-k12/modules/rce/contentInsertion.js +3 -1
  4330. package/lib/translated/sv-x-k12/modules/rce/initA11yChecker.js +0 -3
  4331. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4332. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4333. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4334. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4335. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4336. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4337. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4338. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4339. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4340. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4341. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4342. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4343. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4344. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4345. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4346. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4347. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4348. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4349. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4350. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4351. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4352. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4353. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4354. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4355. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4356. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4357. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4358. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4359. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4360. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4361. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4362. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4363. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4364. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4365. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4366. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4367. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4368. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4369. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4370. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4371. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4372. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4373. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4374. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4375. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4376. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4377. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4378. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4379. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4380. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4381. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4382. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4383. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4384. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4385. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4386. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4387. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4388. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4389. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4390. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4391. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4392. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4393. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4394. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4395. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4396. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4397. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4398. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4399. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4400. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4401. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4402. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4403. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4404. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4405. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4406. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/ColorInput.js +4 -3
  4407. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4408. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4409. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Filter.js +6 -5
  4410. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4411. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4412. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4413. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4414. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4415. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4416. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4417. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4418. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4419. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4420. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/linkUtils.js +58 -0
  4421. package/lib/translated/sv-x-k12/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4422. package/lib/translated/sv-x-k12/modules/rce/userOS.js +31 -0
  4423. package/lib/translated/th/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4424. package/lib/translated/th/modules/common/components/LoadMore.js +2 -1
  4425. package/lib/translated/th/modules/rce/KeyboardShortcutModal.js +10 -7
  4426. package/lib/translated/th/modules/rce/RCE.js +12 -6
  4427. package/lib/translated/th/modules/rce/RCEGlobals.js +62 -0
  4428. package/lib/translated/th/modules/rce/RCEWrapper.js +49 -19
  4429. package/lib/translated/th/modules/rce/RestoreAutoSaveModal.js +4 -3
  4430. package/lib/translated/th/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4431. package/lib/translated/th/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4432. package/lib/translated/th/modules/rce/__tests__/userOS.test.js +68 -0
  4433. package/lib/translated/th/modules/rce/contentInsertion.js +3 -1
  4434. package/lib/translated/th/modules/rce/initA11yChecker.js +0 -3
  4435. package/lib/translated/th/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4436. package/lib/translated/th/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4437. package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4438. package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4439. package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4440. package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4441. package/lib/translated/th/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4442. package/lib/translated/th/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4443. package/lib/translated/th/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4444. package/lib/translated/th/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4445. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4446. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4447. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4448. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4449. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4450. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4451. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4452. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4453. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4454. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4455. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4456. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4457. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4458. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4459. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4460. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4461. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4462. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4463. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4464. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4465. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4466. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4467. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4468. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4469. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4470. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4471. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4472. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4473. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4474. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4475. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4476. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4477. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4478. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4479. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4480. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4481. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4482. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4483. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4484. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4485. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4486. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4487. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4488. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4489. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4490. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4491. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4492. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4493. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4494. package/lib/translated/th/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4495. package/lib/translated/th/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4496. package/lib/translated/th/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4497. package/lib/translated/th/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4498. package/lib/translated/th/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4499. package/lib/translated/th/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4500. package/lib/translated/th/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4501. package/lib/translated/th/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4502. package/lib/translated/th/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4503. package/lib/translated/th/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4504. package/lib/translated/th/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4505. package/lib/translated/th/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4506. package/lib/translated/th/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4507. package/lib/translated/th/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4508. package/lib/translated/th/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4509. package/lib/translated/th/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4510. package/lib/translated/th/modules/rce/plugins/shared/ColorInput.js +4 -3
  4511. package/lib/translated/th/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4512. package/lib/translated/th/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4513. package/lib/translated/th/modules/rce/plugins/shared/Filter.js +6 -5
  4514. package/lib/translated/th/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4515. package/lib/translated/th/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4516. package/lib/translated/th/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4517. package/lib/translated/th/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4518. package/lib/translated/th/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4519. package/lib/translated/th/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4520. package/lib/translated/th/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4521. package/lib/translated/th/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4522. package/lib/translated/th/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4523. package/lib/translated/th/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4524. package/lib/translated/th/modules/rce/plugins/shared/linkUtils.js +58 -0
  4525. package/lib/translated/th/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4526. package/lib/translated/th/modules/rce/userOS.js +31 -0
  4527. package/lib/translated/tr/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4528. package/lib/translated/tr/modules/common/components/LoadMore.js +2 -1
  4529. package/lib/translated/tr/modules/rce/KeyboardShortcutModal.js +10 -7
  4530. package/lib/translated/tr/modules/rce/RCE.js +12 -6
  4531. package/lib/translated/tr/modules/rce/RCEGlobals.js +62 -0
  4532. package/lib/translated/tr/modules/rce/RCEWrapper.js +49 -19
  4533. package/lib/translated/tr/modules/rce/RestoreAutoSaveModal.js +4 -3
  4534. package/lib/translated/tr/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4535. package/lib/translated/tr/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4536. package/lib/translated/tr/modules/rce/__tests__/userOS.test.js +68 -0
  4537. package/lib/translated/tr/modules/rce/contentInsertion.js +3 -1
  4538. package/lib/translated/tr/modules/rce/initA11yChecker.js +0 -3
  4539. package/lib/translated/tr/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4540. package/lib/translated/tr/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4541. package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4542. package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4543. package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4544. package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4545. package/lib/translated/tr/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4546. package/lib/translated/tr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4547. package/lib/translated/tr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4548. package/lib/translated/tr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4549. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4550. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4551. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4552. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4553. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4554. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4555. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4556. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4557. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4558. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4559. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4560. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4561. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4562. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4563. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4564. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4565. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4566. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4567. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4568. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4569. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4570. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4571. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4572. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4573. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4574. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4575. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4576. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4577. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4578. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4579. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4580. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4581. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4582. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4583. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4584. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4585. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4586. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4587. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4588. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4589. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4590. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4591. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4592. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4593. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4594. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4595. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4596. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4597. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4598. package/lib/translated/tr/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4599. package/lib/translated/tr/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4600. package/lib/translated/tr/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4601. package/lib/translated/tr/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4602. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4603. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4604. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4605. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4606. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4607. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4608. package/lib/translated/tr/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4609. package/lib/translated/tr/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4610. package/lib/translated/tr/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4611. package/lib/translated/tr/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4612. package/lib/translated/tr/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4613. package/lib/translated/tr/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4614. package/lib/translated/tr/modules/rce/plugins/shared/ColorInput.js +4 -3
  4615. package/lib/translated/tr/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4616. package/lib/translated/tr/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4617. package/lib/translated/tr/modules/rce/plugins/shared/Filter.js +6 -5
  4618. package/lib/translated/tr/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4619. package/lib/translated/tr/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4620. package/lib/translated/tr/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4621. package/lib/translated/tr/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4622. package/lib/translated/tr/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4623. package/lib/translated/tr/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4624. package/lib/translated/tr/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4625. package/lib/translated/tr/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4626. package/lib/translated/tr/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4627. package/lib/translated/tr/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4628. package/lib/translated/tr/modules/rce/plugins/shared/linkUtils.js +58 -0
  4629. package/lib/translated/tr/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4630. package/lib/translated/tr/modules/rce/userOS.js +31 -0
  4631. package/lib/translated/uk_UA/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4632. package/lib/translated/uk_UA/modules/common/components/LoadMore.js +2 -1
  4633. package/lib/translated/uk_UA/modules/rce/KeyboardShortcutModal.js +10 -7
  4634. package/lib/translated/uk_UA/modules/rce/RCE.js +12 -6
  4635. package/lib/translated/uk_UA/modules/rce/RCEGlobals.js +62 -0
  4636. package/lib/translated/uk_UA/modules/rce/RCEWrapper.js +49 -19
  4637. package/lib/translated/uk_UA/modules/rce/RestoreAutoSaveModal.js +4 -3
  4638. package/lib/translated/uk_UA/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4639. package/lib/translated/uk_UA/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4640. package/lib/translated/uk_UA/modules/rce/__tests__/userOS.test.js +68 -0
  4641. package/lib/translated/uk_UA/modules/rce/contentInsertion.js +3 -1
  4642. package/lib/translated/uk_UA/modules/rce/initA11yChecker.js +0 -3
  4643. package/lib/translated/uk_UA/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4644. package/lib/translated/uk_UA/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4645. package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4646. package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4647. package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4648. package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4649. package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4650. package/lib/translated/uk_UA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4651. package/lib/translated/uk_UA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4652. package/lib/translated/uk_UA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4653. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4654. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4655. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4656. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4657. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4658. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4659. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4660. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4661. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4662. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4663. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4664. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4665. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4666. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4667. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4668. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4669. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4670. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4671. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4672. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4673. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4674. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4675. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4676. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4677. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4678. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4679. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4680. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4681. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4682. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4683. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4684. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4685. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4686. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4687. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4688. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4689. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4690. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4691. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4692. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4693. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4694. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4695. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4696. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4697. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4698. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4699. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4700. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4701. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4702. package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4703. package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4704. package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4705. package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4706. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4707. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4708. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4709. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4710. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4711. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4712. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4713. package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4714. package/lib/translated/uk_UA/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4715. package/lib/translated/uk_UA/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4716. package/lib/translated/uk_UA/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4717. package/lib/translated/uk_UA/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4718. package/lib/translated/uk_UA/modules/rce/plugins/shared/ColorInput.js +4 -3
  4719. package/lib/translated/uk_UA/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4720. package/lib/translated/uk_UA/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4721. package/lib/translated/uk_UA/modules/rce/plugins/shared/Filter.js +6 -5
  4722. package/lib/translated/uk_UA/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4723. package/lib/translated/uk_UA/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4724. package/lib/translated/uk_UA/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4725. package/lib/translated/uk_UA/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4726. package/lib/translated/uk_UA/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4727. package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4728. package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4729. package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4730. package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4731. package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4732. package/lib/translated/uk_UA/modules/rce/plugins/shared/linkUtils.js +58 -0
  4733. package/lib/translated/uk_UA/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4734. package/lib/translated/uk_UA/modules/rce/userOS.js +31 -0
  4735. package/lib/translated/vi/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4736. package/lib/translated/vi/modules/common/components/LoadMore.js +2 -1
  4737. package/lib/translated/vi/modules/rce/KeyboardShortcutModal.js +10 -7
  4738. package/lib/translated/vi/modules/rce/RCE.js +12 -6
  4739. package/lib/translated/vi/modules/rce/RCEGlobals.js +62 -0
  4740. package/lib/translated/vi/modules/rce/RCEWrapper.js +49 -19
  4741. package/lib/translated/vi/modules/rce/RestoreAutoSaveModal.js +4 -3
  4742. package/lib/translated/vi/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4743. package/lib/translated/vi/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4744. package/lib/translated/vi/modules/rce/__tests__/userOS.test.js +68 -0
  4745. package/lib/translated/vi/modules/rce/contentInsertion.js +3 -1
  4746. package/lib/translated/vi/modules/rce/initA11yChecker.js +0 -3
  4747. package/lib/translated/vi/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4748. package/lib/translated/vi/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4749. package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4750. package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4751. package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4752. package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4753. package/lib/translated/vi/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4754. package/lib/translated/vi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4755. package/lib/translated/vi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4756. package/lib/translated/vi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4757. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4758. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4759. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4760. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4761. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4762. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4763. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4764. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4765. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4766. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4767. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4768. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4769. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4770. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4771. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4772. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4773. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4774. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4775. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4776. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4777. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4778. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4779. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4780. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4781. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4782. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4783. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4784. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4785. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4786. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4787. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4788. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4789. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4790. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4791. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4792. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4793. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4794. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4795. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4796. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4797. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4798. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4799. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4800. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4801. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4802. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4803. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4804. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4805. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4806. package/lib/translated/vi/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4807. package/lib/translated/vi/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4808. package/lib/translated/vi/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4809. package/lib/translated/vi/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4810. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4811. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4812. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4813. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4814. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4815. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4816. package/lib/translated/vi/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4817. package/lib/translated/vi/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4818. package/lib/translated/vi/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4819. package/lib/translated/vi/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4820. package/lib/translated/vi/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4821. package/lib/translated/vi/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4822. package/lib/translated/vi/modules/rce/plugins/shared/ColorInput.js +4 -3
  4823. package/lib/translated/vi/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4824. package/lib/translated/vi/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4825. package/lib/translated/vi/modules/rce/plugins/shared/Filter.js +6 -5
  4826. package/lib/translated/vi/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4827. package/lib/translated/vi/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4828. package/lib/translated/vi/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4829. package/lib/translated/vi/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4830. package/lib/translated/vi/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4831. package/lib/translated/vi/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4832. package/lib/translated/vi/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4833. package/lib/translated/vi/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4834. package/lib/translated/vi/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4835. package/lib/translated/vi/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4836. package/lib/translated/vi/modules/rce/plugins/shared/linkUtils.js +58 -0
  4837. package/lib/translated/vi/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4838. package/lib/translated/vi/modules/rce/userOS.js +31 -0
  4839. package/lib/translated/zh/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4840. package/lib/translated/zh/modules/common/components/LoadMore.js +2 -1
  4841. package/lib/translated/zh/modules/rce/KeyboardShortcutModal.js +10 -7
  4842. package/lib/translated/zh/modules/rce/RCE.js +12 -6
  4843. package/lib/translated/zh/modules/rce/RCEGlobals.js +62 -0
  4844. package/lib/translated/zh/modules/rce/RCEWrapper.js +49 -19
  4845. package/lib/translated/zh/modules/rce/RestoreAutoSaveModal.js +4 -3
  4846. package/lib/translated/zh/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4847. package/lib/translated/zh/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4848. package/lib/translated/zh/modules/rce/__tests__/userOS.test.js +68 -0
  4849. package/lib/translated/zh/modules/rce/contentInsertion.js +3 -1
  4850. package/lib/translated/zh/modules/rce/initA11yChecker.js +0 -3
  4851. package/lib/translated/zh/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4852. package/lib/translated/zh/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4853. package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4854. package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4855. package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4856. package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4857. package/lib/translated/zh/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4858. package/lib/translated/zh/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4859. package/lib/translated/zh/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4860. package/lib/translated/zh/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4861. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4862. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4863. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4864. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4865. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4866. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4867. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4868. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4869. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4870. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4871. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4872. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4873. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4874. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4875. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4876. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4877. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4878. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4879. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4880. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4881. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4882. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4883. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4884. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4885. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4886. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4887. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4888. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4889. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4890. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4891. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4892. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4893. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4894. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4895. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  4896. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  4897. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  4898. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  4899. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  4900. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  4901. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  4902. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  4903. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  4904. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  4905. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  4906. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  4907. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  4908. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  4909. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  4910. package/lib/translated/zh/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  4911. package/lib/translated/zh/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  4912. package/lib/translated/zh/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  4913. package/lib/translated/zh/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  4914. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  4915. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  4916. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  4917. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  4918. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  4919. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  4920. package/lib/translated/zh/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  4921. package/lib/translated/zh/modules/rce/plugins/instructure_links/plugin.js +18 -3
  4922. package/lib/translated/zh/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  4923. package/lib/translated/zh/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  4924. package/lib/translated/zh/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  4925. package/lib/translated/zh/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  4926. package/lib/translated/zh/modules/rce/plugins/shared/ColorInput.js +4 -3
  4927. package/lib/translated/zh/modules/rce/plugins/shared/ContentSelection.js +7 -1
  4928. package/lib/translated/zh/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  4929. package/lib/translated/zh/modules/rce/plugins/shared/Filter.js +6 -5
  4930. package/lib/translated/zh/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  4931. package/lib/translated/zh/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  4932. package/lib/translated/zh/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  4933. package/lib/translated/zh/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  4934. package/lib/translated/zh/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  4935. package/lib/translated/zh/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  4936. package/lib/translated/zh/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  4937. package/lib/translated/zh/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  4938. package/lib/translated/zh/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  4939. package/lib/translated/zh/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  4940. package/lib/translated/zh/modules/rce/plugins/shared/linkUtils.js +58 -0
  4941. package/lib/translated/zh/modules/rce/plugins/shared/useDataUrl.js +14 -4
  4942. package/lib/translated/zh/modules/rce/userOS.js +31 -0
  4943. package/lib/translated/zh-Hans/modules/canvasFileBrowser/FlashAlert.js +8 -5
  4944. package/lib/translated/zh-Hans/modules/common/components/LoadMore.js +2 -1
  4945. package/lib/translated/zh-Hans/modules/rce/KeyboardShortcutModal.js +10 -7
  4946. package/lib/translated/zh-Hans/modules/rce/RCE.js +12 -6
  4947. package/lib/translated/zh-Hans/modules/rce/RCEGlobals.js +62 -0
  4948. package/lib/translated/zh-Hans/modules/rce/RCEWrapper.js +49 -19
  4949. package/lib/translated/zh-Hans/modules/rce/RestoreAutoSaveModal.js +4 -3
  4950. package/lib/translated/zh-Hans/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  4951. package/lib/translated/zh-Hans/modules/rce/__tests__/contentInsertion.test.js +6 -0
  4952. package/lib/translated/zh-Hans/modules/rce/__tests__/userOS.test.js +68 -0
  4953. package/lib/translated/zh-Hans/modules/rce/contentInsertion.js +3 -1
  4954. package/lib/translated/zh-Hans/modules/rce/initA11yChecker.js +0 -3
  4955. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  4956. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  4957. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  4958. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  4959. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  4960. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  4961. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  4962. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  4963. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  4964. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  4965. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  4966. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  4967. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  4968. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  4969. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  4970. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  4971. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  4972. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  4973. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  4974. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  4975. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  4976. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  4977. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  4978. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  4979. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  4980. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  4981. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  4982. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  4983. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  4984. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  4985. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  4986. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  4987. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  4988. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  4989. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  4990. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  4991. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  4992. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  4993. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  4994. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  4995. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  4996. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  4997. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  4998. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  4999. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  5000. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  5001. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  5002. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  5003. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  5004. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  5005. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  5006. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  5007. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  5008. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  5009. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  5010. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  5011. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  5012. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  5013. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  5014. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  5015. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  5016. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  5017. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  5018. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  5019. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  5020. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  5021. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  5022. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  5023. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  5024. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  5025. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/plugin.js +18 -3
  5026. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  5027. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  5028. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  5029. package/lib/translated/zh-Hans/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  5030. package/lib/translated/zh-Hans/modules/rce/plugins/shared/ColorInput.js +4 -3
  5031. package/lib/translated/zh-Hans/modules/rce/plugins/shared/ContentSelection.js +7 -1
  5032. package/lib/translated/zh-Hans/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  5033. package/lib/translated/zh-Hans/modules/rce/plugins/shared/Filter.js +6 -5
  5034. package/lib/translated/zh-Hans/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  5035. package/lib/translated/zh-Hans/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  5036. package/lib/translated/zh-Hans/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  5037. package/lib/translated/zh-Hans/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  5038. package/lib/translated/zh-Hans/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  5039. package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  5040. package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  5041. package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  5042. package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  5043. package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  5044. package/lib/translated/zh-Hans/modules/rce/plugins/shared/linkUtils.js +58 -0
  5045. package/lib/translated/zh-Hans/modules/rce/plugins/shared/useDataUrl.js +14 -4
  5046. package/lib/translated/zh-Hans/modules/rce/userOS.js +31 -0
  5047. package/lib/translated/zh-Hant/modules/canvasFileBrowser/FlashAlert.js +8 -5
  5048. package/lib/translated/zh-Hant/modules/common/components/LoadMore.js +2 -1
  5049. package/lib/translated/zh-Hant/modules/rce/KeyboardShortcutModal.js +10 -7
  5050. package/lib/translated/zh-Hant/modules/rce/RCE.js +12 -6
  5051. package/lib/translated/zh-Hant/modules/rce/RCEGlobals.js +62 -0
  5052. package/lib/translated/zh-Hant/modules/rce/RCEWrapper.js +49 -19
  5053. package/lib/translated/zh-Hant/modules/rce/RestoreAutoSaveModal.js +4 -3
  5054. package/lib/translated/zh-Hant/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  5055. package/lib/translated/zh-Hant/modules/rce/__tests__/contentInsertion.test.js +6 -0
  5056. package/lib/translated/zh-Hant/modules/rce/__tests__/userOS.test.js +68 -0
  5057. package/lib/translated/zh-Hant/modules/rce/contentInsertion.js +3 -1
  5058. package/lib/translated/zh-Hant/modules/rce/initA11yChecker.js +0 -3
  5059. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  5060. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  5061. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  5062. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  5063. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  5064. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  5065. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  5066. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  5067. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  5068. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  5069. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  5070. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  5071. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  5072. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  5073. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  5074. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  5075. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  5076. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  5077. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  5078. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  5079. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  5080. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  5081. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  5082. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  5083. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  5084. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  5085. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  5086. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  5087. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  5088. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  5089. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  5090. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  5091. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  5092. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  5093. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  5094. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  5095. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  5096. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  5097. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  5098. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  5099. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  5100. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  5101. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  5102. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  5103. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  5104. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  5105. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  5106. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  5107. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  5108. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  5109. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  5110. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  5111. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  5112. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  5113. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  5114. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  5115. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  5116. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  5117. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  5118. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  5119. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  5120. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  5121. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  5122. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  5123. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  5124. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  5125. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  5126. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  5127. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  5128. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  5129. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/plugin.js +18 -3
  5130. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  5131. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  5132. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  5133. package/lib/translated/zh-Hant/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  5134. package/lib/translated/zh-Hant/modules/rce/plugins/shared/ColorInput.js +4 -3
  5135. package/lib/translated/zh-Hant/modules/rce/plugins/shared/ContentSelection.js +7 -1
  5136. package/lib/translated/zh-Hant/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  5137. package/lib/translated/zh-Hant/modules/rce/plugins/shared/Filter.js +6 -5
  5138. package/lib/translated/zh-Hant/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  5139. package/lib/translated/zh-Hant/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  5140. package/lib/translated/zh-Hant/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  5141. package/lib/translated/zh-Hant/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  5142. package/lib/translated/zh-Hant/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  5143. package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  5144. package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  5145. package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  5146. package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  5147. package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  5148. package/lib/translated/zh-Hant/modules/rce/plugins/shared/linkUtils.js +58 -0
  5149. package/lib/translated/zh-Hant/modules/rce/plugins/shared/useDataUrl.js +14 -4
  5150. package/lib/translated/zh-Hant/modules/rce/userOS.js +31 -0
  5151. package/lib/translated/zh_HK/modules/canvasFileBrowser/FlashAlert.js +8 -5
  5152. package/lib/translated/zh_HK/modules/common/components/LoadMore.js +2 -1
  5153. package/lib/translated/zh_HK/modules/rce/KeyboardShortcutModal.js +10 -7
  5154. package/lib/translated/zh_HK/modules/rce/RCE.js +12 -6
  5155. package/lib/translated/zh_HK/modules/rce/RCEGlobals.js +62 -0
  5156. package/lib/translated/zh_HK/modules/rce/RCEWrapper.js +49 -19
  5157. package/lib/translated/zh_HK/modules/rce/RestoreAutoSaveModal.js +4 -3
  5158. package/lib/translated/zh_HK/modules/rce/__tests__/RCEGlobals.test.js +68 -0
  5159. package/lib/translated/zh_HK/modules/rce/__tests__/contentInsertion.test.js +6 -0
  5160. package/lib/translated/zh_HK/modules/rce/__tests__/userOS.test.js +68 -0
  5161. package/lib/translated/zh_HK/modules/rce/contentInsertion.js +3 -1
  5162. package/lib/translated/zh_HK/modules/rce/initA11yChecker.js +0 -3
  5163. package/lib/translated/zh_HK/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
  5164. package/lib/translated/zh_HK/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
  5165. package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
  5166. package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
  5167. package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
  5168. package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
  5169. package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/plugin.js +41 -81
  5170. package/lib/translated/zh_HK/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
  5171. package/lib/translated/zh_HK/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
  5172. package/lib/translated/zh_HK/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
  5173. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
  5174. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
  5175. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
  5176. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
  5177. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
  5178. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
  5179. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
  5180. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
  5181. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
  5182. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
  5183. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
  5184. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
  5185. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
  5186. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
  5187. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
  5188. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
  5189. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
  5190. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
  5191. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
  5192. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
  5193. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
  5194. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
  5195. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
  5196. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
  5197. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
  5198. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
  5199. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
  5200. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
  5201. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
  5202. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
  5203. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
  5204. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
  5205. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
  5206. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
  5207. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
  5208. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
  5209. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
  5210. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
  5211. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
  5212. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
  5213. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
  5214. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
  5215. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
  5216. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
  5217. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
  5218. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
  5219. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
  5220. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
  5221. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
  5222. package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
  5223. package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
  5224. package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
  5225. package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/Images/index.js +1 -1
  5226. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
  5227. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/Link.js +47 -54
  5228. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
  5229. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
  5230. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
  5231. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
  5232. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
  5233. package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/plugin.js +18 -3
  5234. package/lib/translated/zh_HK/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
  5235. package/lib/translated/zh_HK/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
  5236. package/lib/translated/zh_HK/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
  5237. package/lib/translated/zh_HK/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
  5238. package/lib/translated/zh_HK/modules/rce/plugins/shared/ColorInput.js +4 -3
  5239. package/lib/translated/zh_HK/modules/rce/plugins/shared/ContentSelection.js +7 -1
  5240. package/lib/translated/zh_HK/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
  5241. package/lib/translated/zh_HK/modules/rce/plugins/shared/Filter.js +6 -5
  5242. package/lib/translated/zh_HK/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
  5243. package/lib/translated/zh_HK/modules/rce/plugins/shared/LinkDisplay.js +82 -0
  5244. package/lib/translated/zh_HK/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
  5245. package/lib/translated/zh_HK/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
  5246. package/lib/translated/zh_HK/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
  5247. package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
  5248. package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
  5249. package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
  5250. package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
  5251. package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
  5252. package/lib/translated/zh_HK/modules/rce/plugins/shared/linkUtils.js +58 -0
  5253. package/lib/translated/zh_HK/modules/rce/plugins/shared/useDataUrl.js +14 -4
  5254. package/lib/translated/zh_HK/modules/rce/userOS.js +31 -0
  5255. package/package.json +17 -10
  5256. package/scripts/build.js +7 -3
  5257. package/testcafe/build/11.js +3 -3
  5258. package/testcafe/build/12.js +1 -1
  5259. package/testcafe/build/20.js +1 -1
  5260. package/testcafe/build/21.js +25 -1
  5261. package/testcafe/build/23.js +90 -66
  5262. package/testcafe/build/24.js +7 -7
  5263. package/testcafe/build/28.js +5 -5
  5264. package/testcafe/build/29.js +10 -10
  5265. package/testcafe/build/30.js +3 -3
  5266. package/testcafe/build/32.js +3 -3
  5267. package/testcafe/build/33.js +3 -3
  5268. package/testcafe/build/34.js +1 -1
  5269. package/testcafe/build/35.js +1 -1
  5270. package/testcafe/build/36.js +18 -19
  5271. package/testcafe/build/37.js +11 -22
  5272. package/testcafe/build/38.js +1 -1
  5273. package/testcafe/build/5.js +12 -1
  5274. package/testcafe/build/6.js +1 -1
  5275. package/testcafe/build/69.js +1 -1
  5276. package/testcafe/build/72.js +1 -1
  5277. package/testcafe/build/73.js +1 -1
  5278. package/testcafe/build/75.js +1 -1
  5279. package/testcafe/build/8.js +46 -10
  5280. package/testcafe/build/9.js +26 -2
  5281. package/testcafe/build/testcafe.js +88 -52
  5282. package/tsconfig.json +18 -0
  5283. package/webpack.testcafe.config.js +5 -2
  5284. package/es/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5285. package/lib/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5286. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5287. package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5288. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5289. package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5290. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5291. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5292. package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5293. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5294. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5295. package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5296. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5297. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5298. package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5299. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5300. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5301. package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5302. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5303. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5304. package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5305. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5306. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5307. package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5308. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5309. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5310. package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5311. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5312. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5313. package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5314. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5315. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5316. package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5317. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5318. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5319. package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5320. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5321. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5322. package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5323. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5324. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5325. package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5326. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5327. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5328. package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5329. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5330. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5331. package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5332. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5333. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5334. package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5335. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5336. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5337. package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5338. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5339. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5340. package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5341. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5342. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5343. package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5344. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5345. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5346. package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5347. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5348. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5349. package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5350. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5351. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5352. package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5353. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5354. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5355. package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5356. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5357. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5358. package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5359. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5360. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5361. package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5362. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5363. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5364. package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5365. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5366. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5367. package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5368. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5369. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5370. package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5371. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5372. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5373. package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5374. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5375. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5376. package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5377. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5378. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5379. package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5380. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5381. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5382. package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5383. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5384. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5385. package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5386. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5387. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5388. package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5389. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5390. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5391. package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5392. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5393. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5394. package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5395. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5396. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5397. package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5398. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5399. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5400. package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5401. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5402. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5403. package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5404. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5405. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5406. package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5407. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5408. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5409. package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5410. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5411. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5412. package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5413. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5414. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5415. package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5416. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5417. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5418. package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5419. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5420. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5421. package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5422. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5423. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5424. package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5425. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5426. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5427. package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
  5428. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
  5429. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
  5430. package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
@@ -676,7 +676,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Acc
676
676
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
677
677
 
678
678
  "use strict";
679
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FocusRegion\", function() { return FocusRegion; });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"../../node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _instructure_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/console */ \"../../node_modules/@instructure/console/es/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! keycode */ \"../../node_modules/keycode/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(keycode__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-dom-utils */ \"../../node_modules/@instructure/ui-dom-utils/es/index.js\");\n/* harmony import */ var _instructure_uid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/uid */ \"../../node_modules/@instructure/uid/es/index.js\");\n/* harmony import */ var _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ScreenReaderFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/ScreenReaderFocusRegion.js\");\n/* harmony import */ var _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./KeyboardFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/KeyboardFocusRegion.js\");\n\n\n\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\n\n\n\n\nvar FocusRegion = /*#__PURE__*/function () {\n function FocusRegion(element, options) {\n var _this = this;\n\n Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, FocusRegion);\n\n this._contextElement = null;\n this._preventCloseOnDocumentClick = false;\n this._listeners = [];\n this._active = false;\n\n this.handleDismiss = function (event, documentClick) {\n _this._options.onDismiss(event, documentClick);\n };\n\n this.captureDocumentClick = function (event) {\n var target = event.target;\n _this._preventCloseOnDocumentClick = event.button !== 0 || Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, target);\n };\n\n this.handleDocumentClick = function (event) {\n if (_this._options.shouldCloseOnDocumentClick && !_this._preventCloseOnDocumentClick) {\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleFrameClick = function (event, frame) {\n if (!Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, frame)) {\n // dismiss if frame is not within the region\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleKeyUp = function (event) {\n if (_this._options.shouldCloseOnEscape && event.keyCode === keycode__WEBPACK_IMPORTED_MODULE_3___default.a.codes.escape && !event.defaultPrevented) {\n _this.handleDismiss(event);\n }\n };\n\n this._options = options || {\n shouldCloseOnDocumentClick: true,\n shouldCloseOnEscape: true,\n onDismiss: function onDismiss(event) {}\n };\n this._contextElement = element;\n this._screenReaderFocusRegion = new _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__[\"ScreenReaderFocusRegion\"](element, options);\n this._keyboardFocusRegion = new _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__[\"KeyboardFocusRegion\"](element, options);\n this._id = Object(_instructure_uid__WEBPACK_IMPORTED_MODULE_5__[\"uid\"])();\n }\n\n Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(FocusRegion, [{\n key: \"updateElement\",\n value: function updateElement(element) {\n this._contextElement = element;\n\n if (this._keyboardFocusRegion) {\n this._keyboardFocusRegion.updateElement(element);\n }\n\n if (this._screenReaderFocusRegion) {\n this._screenReaderFocusRegion.updateElement(element);\n }\n }\n }, {\n key: \"activate\",\n value: function activate() {\n var _this2 = this;\n\n if (!this._active) {\n var doc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"ownerDocument\"])(this._contextElement);\n\n this._keyboardFocusRegion.activate();\n\n this._screenReaderFocusRegion.activate();\n\n if (this._options.shouldCloseOnDocumentClick) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.captureDocumentClick, true));\n\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.handleDocumentClick));\n\n Array.from(doc.getElementsByTagName('iframe')).forEach(function (el) {\n // listen for mouseup events on any iframes in the document\n var frameDoc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"getFrameDocumentSafe\"])(el);\n\n if (frameDoc) {\n _this2._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(frameDoc, 'mouseup', function (event) {\n _this2.handleFrameClick(event, el);\n }));\n }\n });\n }\n\n if (this._options.shouldCloseOnEscape) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'keyup', this.handleKeyUp));\n }\n\n this._active = true;\n }\n }\n }, {\n key: \"deactivate\",\n value: function deactivate() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},\n _ref$keyboard = _ref.keyboard,\n keyboard = _ref$keyboard === void 0 ? true : _ref$keyboard;\n\n if (this._active) {\n this._listeners.forEach(function (listener) {\n listener.remove();\n });\n\n this._listeners = [];\n\n if (keyboard) {\n this._keyboardFocusRegion.deactivate();\n }\n\n this._screenReaderFocusRegion.deactivate();\n\n this._active = false;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(this._active, \"[FocusRegion] Cannot call '.focus()' on a region that is not currently active.\");\n\n this._keyboardFocusRegion.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(!this._active, \"[FocusRegion] Cannot call '.blur()' on a region that is currently active.\");\n\n this._keyboardFocusRegion.blur();\n }\n }, {\n key: \"id\",\n get: function get() {\n return this._id;\n } // Focused returns when the focus region is active. Checking focused with the active element\n // is inconsistent across browsers (Safari/Firefox do not focus elements on click)\n\n }, {\n key: \"focused\",\n get: function get() {\n return this._active;\n }\n }, {\n key: \"keyboardFocusable\",\n get: function get() {\n return (Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"findTabbable\"])(this._contextElement) || []).length > 0;\n }\n }]);\n\n return FocusRegion;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FocusRegion);\n\n\n//# sourceURL=webpack:////Users/jon.scheiding/Code/INST/canvas-lms/node_modules/@instructure/ui-a11y-utils/es/FocusRegion.js?");
679
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FocusRegion\", function() { return FocusRegion; });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"../../node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _instructure_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/console */ \"../../node_modules/@instructure/console/es/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! keycode */ \"../../node_modules/keycode/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(keycode__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-dom-utils */ \"../../node_modules/@instructure/ui-dom-utils/es/index.js\");\n/* harmony import */ var _instructure_uid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/uid */ \"../../node_modules/@instructure/uid/es/index.js\");\n/* harmony import */ var _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ScreenReaderFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/ScreenReaderFocusRegion.js\");\n/* harmony import */ var _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./KeyboardFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/KeyboardFocusRegion.js\");\n\n\n\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\n\n\n\n\nvar FocusRegion = /*#__PURE__*/function () {\n function FocusRegion(element, options) {\n var _this = this;\n\n Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, FocusRegion);\n\n this._contextElement = null;\n this._preventCloseOnDocumentClick = false;\n this._listeners = [];\n this._active = false;\n\n this.handleDismiss = function (event, documentClick) {\n if (_this._contextElement) {\n _this._options.onDismiss(event, documentClick);\n }\n };\n\n this.captureDocumentClick = function (event) {\n var target = event.target;\n _this._preventCloseOnDocumentClick = event.button !== 0 || Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, target);\n };\n\n this.handleDocumentClick = function (event) {\n if (_this._options.shouldCloseOnDocumentClick && !_this._preventCloseOnDocumentClick) {\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleFrameClick = function (event, frame) {\n if (!Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, frame)) {\n // dismiss if frame is not within the region\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleKeyUp = function (event) {\n if (_this._options.shouldCloseOnEscape && event.keyCode === keycode__WEBPACK_IMPORTED_MODULE_3___default.a.codes.escape && !event.defaultPrevented) {\n _this.handleDismiss(event);\n }\n };\n\n this._options = options || {\n shouldCloseOnDocumentClick: true,\n shouldCloseOnEscape: true,\n onDismiss: function onDismiss(event) {}\n };\n this._contextElement = element;\n this._screenReaderFocusRegion = new _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__[\"ScreenReaderFocusRegion\"](element, options);\n this._keyboardFocusRegion = new _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__[\"KeyboardFocusRegion\"](element, options);\n this._id = Object(_instructure_uid__WEBPACK_IMPORTED_MODULE_5__[\"uid\"])();\n }\n\n Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(FocusRegion, [{\n key: \"updateElement\",\n value: function updateElement(element) {\n this._contextElement = element;\n\n if (this._keyboardFocusRegion) {\n this._keyboardFocusRegion.updateElement(element);\n }\n\n if (this._screenReaderFocusRegion) {\n this._screenReaderFocusRegion.updateElement(element);\n }\n }\n }, {\n key: \"activate\",\n value: function activate() {\n var _this2 = this;\n\n if (!this._active) {\n var doc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"ownerDocument\"])(this._contextElement);\n\n this._keyboardFocusRegion.activate();\n\n this._screenReaderFocusRegion.activate();\n\n if (this._options.shouldCloseOnDocumentClick) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.captureDocumentClick, true));\n\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.handleDocumentClick));\n\n Array.from(doc.getElementsByTagName('iframe')).forEach(function (el) {\n // listen for mouseup events on any iframes in the document\n var frameDoc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"getFrameDocumentSafe\"])(el);\n\n if (frameDoc) {\n _this2._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(frameDoc, 'mouseup', function (event) {\n _this2.handleFrameClick(event, el);\n }));\n }\n });\n }\n\n if (this._options.shouldCloseOnEscape) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'keyup', this.handleKeyUp));\n }\n\n this._active = true;\n }\n }\n }, {\n key: \"deactivate\",\n value: function deactivate() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},\n _ref$keyboard = _ref.keyboard,\n keyboard = _ref$keyboard === void 0 ? true : _ref$keyboard;\n\n if (this._active) {\n this._listeners.forEach(function (listener) {\n listener.remove();\n });\n\n this._listeners = [];\n\n if (keyboard) {\n this._keyboardFocusRegion.deactivate();\n }\n\n this._screenReaderFocusRegion.deactivate();\n\n this._active = false;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(this._active, \"[FocusRegion] Cannot call '.focus()' on a region that is not currently active.\");\n\n this._keyboardFocusRegion.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(!this._active, \"[FocusRegion] Cannot call '.blur()' on a region that is currently active.\");\n\n this._keyboardFocusRegion.blur();\n }\n }, {\n key: \"id\",\n get: function get() {\n return this._id;\n } // Focused returns when the focus region is active. Checking focused with the active element\n // is inconsistent across browsers (Safari/Firefox do not focus elements on click)\n\n }, {\n key: \"focused\",\n get: function get() {\n return this._active;\n }\n }, {\n key: \"keyboardFocusable\",\n get: function get() {\n return (Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"findTabbable\"])(this._contextElement) || []).length > 0;\n }\n }]);\n\n return FocusRegion;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FocusRegion);\n\n\n//# sourceURL=webpack:////Users/jon.scheiding/Code/INST/canvas-lms/node_modules/@instructure/ui-a11y-utils/es/FocusRegion.js?");
680
680
 
681
681
  /***/ }),
682
682
 
@@ -16768,7 +16768,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
16768
16768
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
16769
16769
 
16770
16770
  "use strict";
16771
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PANELS\", function() { return PANELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return UploadMedia; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"../../node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-tabs */ \"../../node_modules/@instructure/ui-tabs/es/index.js\");\n/* harmony import */ var _instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-utils */ \"../../node_modules/@instructure/ui-utils/es/index.js\");\n/* harmony import */ var _instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-progress */ \"../../node_modules/@instructure/ui-progress/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_canvas_rce_src_rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @instructure/canvas-rce/src/rce/plugins/shared/Upload/constants */ \"./src/rce/plugins/shared/Upload/constants.js\");\n/* harmony import */ var _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./acceptedMediaFileTypes */ \"../canvas-media/es/acceptedMediaFileTypes.js\");\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony import */ var _translationShape__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./translationShape */ \"../canvas-media/es/translationShape.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ComputerPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(5), __webpack_require__.e(10), __webpack_require__.e(20), __webpack_require__.e(66)]).then(__webpack_require__.bind(null, /*! ./ComputerPanel */ \"../canvas-media/es/ComputerPanel.js\")));\nconst MediaRecorder = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(22), __webpack_require__.e(67)]).then(__webpack_require__.bind(null, /*! ./MediaRecorder */ \"../canvas-media/es/MediaRecorder.js\")));\nconst PANELS = {\n COMPUTER: 0,\n RECORD: 1\n};\nclass UploadMedia extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n\n this.inferSelectedPanel = tabs => {\n let selectedPanel = -1;\n\n if (tabs.upload) {\n selectedPanel = 0;\n } else if (tabs.record) {\n selectedPanel = 1;\n }\n\n return selectedPanel;\n };\n\n this.isReady = () => {\n if (this.props.disableSubmitWhileUploading && this.state.uploading) {\n return false;\n }\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return !!this.state.computerFile;\n\n case PANELS.RECORD:\n return !!this.state.recordedFile;\n\n default:\n return false;\n }\n };\n\n this.handleSubmit = () => {\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n this.uploadFile(this.state.computerFile);\n break;\n\n case PANELS.RECORD:\n this.uploadFile(this.state.recordedFile);\n break;\n\n default:\n throw new Error('Selected Panel is invalid');\n // Should never get here\n }\n };\n\n this.submitEnabled = () => {\n var _this$state$computerF;\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return this.isReady() && !!((_this$state$computerF = this.state.computerFile) !== null && _this$state$computerF !== void 0 && _this$state$computerF.title);\n\n default:\n return this.isReady();\n }\n };\n\n this.onSaveMediaProgress = progress => {\n this.setState({\n progress\n });\n };\n\n this.saveMediaCallback = async (err, data) => {\n if (err) {\n this.props.onUploadComplete && this.props.onUploadComplete(err, data);\n } else {\n try {\n var _captions;\n\n let captions;\n\n if (this.state.selectedPanel === PANELS.COMPUTER && this.state.subtitles.length > 0) {\n captions = await Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_14__[\"saveClosedCaptions\"])(data.mediaObject.media_object.media_id, this.state.subtitles, this.props.rcsConfig, _instructure_canvas_rce_src_rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_11__[\"RCS_MAX_BODY_SIZE\"] - _instructure_canvas_rce_src_rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_11__[\"RCS_REQUEST_SIZE_BUFFER\"]);\n }\n\n this.props.onUploadComplete && this.props.onUploadComplete(null, data, (_captions = captions) === null || _captions === void 0 ? void 0 : _captions.data);\n } catch (ex) {\n this.props.onUploadComplete && this.props.onUploadComplete(ex, null);\n }\n }\n\n this.props.onDismiss && this.props.onDismiss();\n };\n\n this.renderModalBody = () => {\n const {\n COMPUTER_PANEL_TITLE,\n DRAG_FILE_TEXT,\n LOADING_MEDIA,\n RECORD_PANEL_TITLE,\n MEDIA_RECORD_NOT_AVAILABLE\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n\n if (!this.props.open) {\n return null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"], {\n maxWidth: \"large\",\n onRequestTabChange: (_, _ref) => {\n let {\n index\n } = _ref;\n this.setState({\n selectedPanel: index\n });\n }\n }, this.props.tabs.upload && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"computer\",\n isSelected: this.state.selectedPanel === PANELS.COMPUTER,\n renderTitle: () => COMPUTER_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ComputerPanel, {\n theFile: this.state.computerFile,\n setFile: file => this.setState({\n computerFile: file\n }),\n hasUploadedFile: this.state.hasUploadedFile,\n setHasUploadedFile: uploadFileState => this.setState({\n hasUploadedFile: uploadFileState\n }),\n label: DRAG_FILE_TEXT,\n uploadMediaTranslations: this.props.uploadMediaTranslations,\n accept: _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_12__[\"ACCEPTED_FILE_TYPES\"],\n languages: this.props.languages,\n liveRegion: this.props.liveRegion,\n updateSubtitles: subtitles => {\n this.setState({\n subtitles\n });\n },\n bounds: this.state.modalBodySize\n }))), this.props.tabs.record && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"record\",\n isSelected: this.state.selectedPanel === PANELS.RECORD,\n renderTitle: () => RECORD_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MediaRecorder, {\n MediaCaptureStrings: this.props.uploadMediaTranslations.MediaCaptureStrings,\n errorMessage: MEDIA_RECORD_NOT_AVAILABLE,\n onSave: file => this.setState({\n recordedFile: file\n }, this.handleSubmit)\n }))));\n };\n\n this.onModalClose = () => {\n this.setState({\n hasUploadedFile: false,\n selectedPanel: 0,\n computerFile: null\n });\n this.props.onDismiss();\n };\n\n this.renderModalFooter = () => {\n if (this.state.selectedPanel === PANELS.RECORD) {\n return null;\n }\n\n const {\n CLOSE_TEXT,\n SUBMIT_TEXT,\n PROGRESS_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Footer, null, this.state.uploading && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__[\"ProgressBar\"], {\n screenReaderLabel: PROGRESS_LABEL,\n valueNow: this.state.progress,\n valueMax: 100,\n renderValue: _ref2 => {\n let {\n valueNow\n } = _ref2;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__[\"Text\"], null, valueNow, \"%\");\n }\n }), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: this.onModalClose\n }, \" \", CLOSE_TEXT, \" \"), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: e => {\n e.preventDefault();\n this.handleSubmit();\n },\n color: \"primary\",\n type: \"submit\",\n interaction: this.submitEnabled() ? 'enabled' : 'disabled'\n }, SUBMIT_TEXT));\n };\n\n const defaultSelectedPanel = this.inferSelectedPanel(props.tabs);\n\n if (props.computerFile) {\n props.computerFile.title = props.computerFile.name;\n }\n\n this.state = {\n hasUploadedFile: !!props.computerFile,\n uploading: false,\n progress: 0,\n selectedPanel: defaultSelectedPanel,\n computerFile: props.computerFile || null,\n subtitles: [],\n recordedFile: null,\n modalBodySize: {\n width: NaN,\n height: NaN\n }\n };\n this.modalBodyRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef();\n }\n\n uploadFile(file) {\n this.setState({\n uploading: true\n }, () => {\n this.props.onStartUpload && this.props.onStartUpload(file);\n file.userEnteredTitle = file.title;\n Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(file, this.props.rcsConfig, this.saveMediaCallback, this.onSaveMediaProgress);\n });\n }\n\n componentDidMount() {\n this.setBodySize(this.state);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.setBodySize(prevState); // If the specified tabs have not changed, don't attempt\n // to set the selected panel state (this would trigger\n // and endless loop).\n\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"isEqual\"])(prevProps.tabs, this.props.tabs)) return;\n\n if (prevState.selectedPanel === -1) {\n // The tabs prop has changed and the selectedPanel was\n // never set in the constructor. Attempt to infer the\n // selected panel based on the new tabs list\n this.setState({\n selectedPanel: this.inferSelectedPanel(this.props.tabs)\n });\n }\n }\n\n setBodySize(state) {\n if (this.modalBodyRef.current) {\n // eslint-disable-next-line react/no-find-dom-node\n const thebody = react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.findDOMNode(this.modalBodyRef.current);\n const modalBodySize = thebody.getBoundingClientRect();\n modalBodySize.height -= Object(_instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"px\"])('3rem'); // leave room for the tabs\n\n if (modalBodySize.width !== state.modalBodySize.width || modalBodySize.height !== state.modalBodySize.height) {\n if (modalBodySize.width > 0 && modalBodySize.height > 0) {\n this.setState({\n modalBodySize\n });\n }\n }\n }\n }\n\n render() {\n const {\n CLOSE_TEXT,\n UPLOAD_MEDIA_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"], {\n label: UPLOAD_MEDIA_LABEL,\n size: \"large\",\n onDismiss: this.onModalClose,\n open: this.props.open,\n shouldCloseOnDocumentClick: false,\n liveRegion: this.props.liveRegion\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"CloseButton\"], {\n onClick: this.onModalClose,\n offset: \"medium\",\n placement: \"end\",\n screenReaderLabel: CLOSE_TEXT\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__[\"Heading\"], null, UPLOAD_MEDIA_LABEL)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Body, {\n ref: this.modalBodyRef\n }, this.renderModalBody()), this.renderModalFooter());\n }\n\n}\nUploadMedia.propTypes = {\n disableSubmitWhileUploading: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n languages: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n label: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })),\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n rcsConfig: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n origin: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n headers: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n Authorization: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })\n }),\n onStartUpload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onUploadComplete: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n open: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n tabs: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n record: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n upload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"]\n }),\n uploadMediaTranslations: _translationShape__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n // for testing\n computerFile: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"instanceOf\"])(File)\n};\nUploadMedia.defaultProps = {\n disableSubmitWhileUploading: false\n};\n\n//# sourceURL=webpack:///../canvas-media/es/UploadMedia.js?");
16771
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PANELS\", function() { return PANELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return UploadMedia; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"../../node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-tabs */ \"../../node_modules/@instructure/ui-tabs/es/index.js\");\n/* harmony import */ var _instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-utils */ \"../../node_modules/@instructure/ui-utils/es/index.js\");\n/* harmony import */ var _instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-progress */ \"../../node_modules/@instructure/ui-progress/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./acceptedMediaFileTypes */ \"../canvas-media/es/acceptedMediaFileTypes.js\");\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony import */ var _translationShape__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./translationShape */ \"../canvas-media/es/translationShape.js\");\n/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./shared/constants */ \"../canvas-media/es/shared/constants.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ComputerPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(5), __webpack_require__.e(10), __webpack_require__.e(20), __webpack_require__.e(66)]).then(__webpack_require__.bind(null, /*! ./ComputerPanel */ \"../canvas-media/es/ComputerPanel.js\")));\nconst MediaRecorder = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(22), __webpack_require__.e(67)]).then(__webpack_require__.bind(null, /*! ./MediaRecorder */ \"../canvas-media/es/MediaRecorder.js\")));\nconst PANELS = {\n COMPUTER: 0,\n RECORD: 1\n};\nclass UploadMedia extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n\n this.inferSelectedPanel = tabs => {\n let selectedPanel = -1;\n\n if (tabs.upload) {\n selectedPanel = 0;\n } else if (tabs.record) {\n selectedPanel = 1;\n }\n\n return selectedPanel;\n };\n\n this.isReady = () => {\n if (this.props.disableSubmitWhileUploading && this.state.uploading) {\n return false;\n }\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return !!this.state.computerFile;\n\n case PANELS.RECORD:\n return !!this.state.recordedFile;\n\n default:\n return false;\n }\n };\n\n this.handleSubmit = () => {\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n this.uploadFile(this.state.computerFile);\n break;\n\n case PANELS.RECORD:\n this.uploadFile(this.state.recordedFile);\n break;\n\n default:\n throw new Error('Selected Panel is invalid');\n // Should never get here\n }\n };\n\n this.submitEnabled = () => {\n var _this$state$computerF;\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return this.isReady() && !!((_this$state$computerF = this.state.computerFile) !== null && _this$state$computerF !== void 0 && _this$state$computerF.title);\n\n default:\n return this.isReady();\n }\n };\n\n this.onSaveMediaProgress = progress => {\n this.setState({\n progress\n });\n };\n\n this.saveMediaCallback = async (err, data) => {\n if (err) {\n this.props.onUploadComplete && this.props.onUploadComplete(err, data);\n } else {\n try {\n var _captions;\n\n let captions;\n\n if (this.state.selectedPanel === PANELS.COMPUTER && this.state.subtitles.length > 0) {\n captions = await Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_13__[\"saveClosedCaptions\"])(data.mediaObject.media_object.media_id, this.state.subtitles, this.props.rcsConfig, _shared_constants__WEBPACK_IMPORTED_MODULE_15__[\"CC_FILE_MAX_BYTES\"]);\n }\n\n this.props.onUploadComplete && this.props.onUploadComplete(null, data, (_captions = captions) === null || _captions === void 0 ? void 0 : _captions.data);\n } catch (ex) {\n this.props.onUploadComplete && this.props.onUploadComplete(ex, null);\n }\n }\n\n this.props.onDismiss && this.props.onDismiss();\n };\n\n this.renderModalBody = () => {\n const {\n COMPUTER_PANEL_TITLE,\n DRAG_FILE_TEXT,\n LOADING_MEDIA,\n RECORD_PANEL_TITLE,\n MEDIA_RECORD_NOT_AVAILABLE\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n\n if (!this.props.open) {\n return null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"], {\n maxWidth: \"large\",\n onRequestTabChange: (_, _ref) => {\n let {\n index\n } = _ref;\n this.setState({\n selectedPanel: index\n });\n }\n }, this.props.tabs.upload && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"computer\",\n isSelected: this.state.selectedPanel === PANELS.COMPUTER,\n renderTitle: () => COMPUTER_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ComputerPanel, {\n theFile: this.state.computerFile,\n setFile: file => this.setState({\n computerFile: file\n }),\n hasUploadedFile: this.state.hasUploadedFile,\n setHasUploadedFile: uploadFileState => this.setState({\n hasUploadedFile: uploadFileState\n }),\n label: DRAG_FILE_TEXT,\n uploadMediaTranslations: this.props.uploadMediaTranslations,\n accept: _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_11__[\"ACCEPTED_FILE_TYPES\"],\n languages: this.props.languages,\n liveRegion: this.props.liveRegion,\n updateSubtitles: subtitles => {\n this.setState({\n subtitles\n });\n },\n bounds: this.state.modalBodySize\n }))), this.props.tabs.record && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"record\",\n isSelected: this.state.selectedPanel === PANELS.RECORD,\n renderTitle: () => RECORD_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MediaRecorder, {\n MediaCaptureStrings: this.props.uploadMediaTranslations.MediaCaptureStrings,\n errorMessage: MEDIA_RECORD_NOT_AVAILABLE,\n onSave: file => this.setState({\n recordedFile: file\n }, this.handleSubmit)\n }))));\n };\n\n this.onModalClose = () => {\n this.setState({\n hasUploadedFile: false,\n selectedPanel: 0,\n computerFile: null\n });\n this.props.onDismiss();\n };\n\n this.renderModalFooter = () => {\n if (this.state.selectedPanel === PANELS.RECORD) {\n return null;\n }\n\n const {\n CLOSE_TEXT,\n SUBMIT_TEXT,\n PROGRESS_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Footer, null, this.state.uploading && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__[\"ProgressBar\"], {\n screenReaderLabel: PROGRESS_LABEL,\n valueNow: this.state.progress,\n valueMax: 100,\n renderValue: _ref2 => {\n let {\n valueNow\n } = _ref2;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__[\"Text\"], null, valueNow, \"%\");\n }\n }), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: this.onModalClose\n }, \" \", CLOSE_TEXT, \" \"), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: e => {\n e.preventDefault();\n this.handleSubmit();\n },\n color: \"primary\",\n type: \"submit\",\n interaction: this.submitEnabled() ? 'enabled' : 'disabled'\n }, SUBMIT_TEXT));\n };\n\n const defaultSelectedPanel = this.inferSelectedPanel(props.tabs);\n\n if (props.computerFile) {\n props.computerFile.title = props.computerFile.name;\n }\n\n this.state = {\n hasUploadedFile: !!props.computerFile,\n uploading: false,\n progress: 0,\n selectedPanel: defaultSelectedPanel,\n computerFile: props.computerFile || null,\n subtitles: [],\n recordedFile: null,\n modalBodySize: {\n width: NaN,\n height: NaN\n }\n };\n this.modalBodyRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef();\n }\n\n uploadFile(file) {\n this.setState({\n uploading: true\n }, () => {\n this.props.onStartUpload && this.props.onStartUpload(file);\n file.userEnteredTitle = file.title;\n Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(file, this.props.rcsConfig, this.saveMediaCallback, this.onSaveMediaProgress);\n });\n }\n\n componentDidMount() {\n this.setBodySize(this.state);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.setBodySize(prevState); // If the specified tabs have not changed, don't attempt\n // to set the selected panel state (this would trigger\n // and endless loop).\n\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"isEqual\"])(prevProps.tabs, this.props.tabs)) return;\n\n const invalidPanelSelected = () => this.state.selectedPanel === PANELS.COMPUTER && !this.props.tabs.upload || this.state.selectedPanel === PANELS.RECORD && !this.props.tabs.record;\n\n if (prevState.selectedPanel === -1 || invalidPanelSelected()) {\n // The tabs prop has changed and the selectedPanel was\n // never set in the constructor. Attempt to infer the\n // selected panel based on the new tabs list\n this.setState({\n selectedPanel: this.inferSelectedPanel(this.props.tabs)\n });\n }\n }\n\n setBodySize(state) {\n if (this.modalBodyRef.current) {\n // eslint-disable-next-line react/no-find-dom-node\n const thebody = react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.findDOMNode(this.modalBodyRef.current);\n const modalBodySize = thebody.getBoundingClientRect();\n modalBodySize.height -= Object(_instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"px\"])('3rem'); // leave room for the tabs\n\n if (modalBodySize.width !== state.modalBodySize.width || modalBodySize.height !== state.modalBodySize.height) {\n if (modalBodySize.width > 0 && modalBodySize.height > 0) {\n this.setState({\n modalBodySize\n });\n }\n }\n }\n }\n\n render() {\n const {\n CLOSE_TEXT,\n UPLOAD_MEDIA_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"], {\n label: UPLOAD_MEDIA_LABEL,\n size: \"large\",\n onDismiss: this.onModalClose,\n open: this.props.open,\n shouldCloseOnDocumentClick: false,\n liveRegion: this.props.liveRegion\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"CloseButton\"], {\n onClick: this.onModalClose,\n offset: \"medium\",\n placement: \"end\",\n screenReaderLabel: CLOSE_TEXT\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__[\"Heading\"], null, UPLOAD_MEDIA_LABEL)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Body, {\n ref: this.modalBodyRef\n }, this.renderModalBody()), this.renderModalFooter());\n }\n\n}\nUploadMedia.propTypes = {\n disableSubmitWhileUploading: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n languages: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n label: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })),\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n rcsConfig: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n origin: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n headers: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n Authorization: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })\n }),\n onStartUpload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onUploadComplete: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n open: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n tabs: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n record: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n upload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"]\n }),\n uploadMediaTranslations: _translationShape__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n // for testing\n computerFile: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"instanceOf\"])(File)\n};\nUploadMedia.defaultProps = {\n disableSubmitWhileUploading: false\n};\n\n//# sourceURL=webpack:///../canvas-media/es/UploadMedia.js?");
16772
16772
 
16773
16773
  /***/ }),
16774
16774
 
@@ -16788,11 +16788,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
16788
16788
  /*!***********************************!*\
16789
16789
  !*** ../canvas-media/es/index.js ***!
16790
16790
  \***********************************/
16791
- /*! exports provided: default, ClosedCaptionPanel, RocketSVG, useComputerPanelFocus, isAudio, isVideo, isPreviewable, sizeMediaPlayer, LoadingIndicator, saveMediaRecording, saveClosedCaptions */
16791
+ /*! exports provided: default, ClosedCaptionPanel, RocketSVG, useComputerPanelFocus, isAudio, isVideo, isPreviewable, sizeMediaPlayer, LoadingIndicator, saveMediaRecording, saveClosedCaptions, CONSTANTS */
16792
16792
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
16793
16793
 
16794
16794
  "use strict";
16795
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _UploadMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UploadMedia */ \"../canvas-media/es/UploadMedia.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _UploadMedia__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClosedCaptionCreator */ \"../canvas-media/es/ClosedCaptionCreator/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClosedCaptionPanel\", function() { return _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _RocketSVG__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RocketSVG */ \"../canvas-media/es/RocketSVG.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RocketSVG\", function() { return _RocketSVG__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useComputerPanelFocus */ \"../canvas-media/es/useComputerPanelFocus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComputerPanelFocus\", function() { return _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _shared_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/utils */ \"../canvas-media/es/shared/utils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAudio\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isAudio\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isVideo\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isVideo\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isPreviewable\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isPreviewable\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizeMediaPlayer\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"sizeMediaPlayer\"]; });\n\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LoadingIndicator\", function() { return _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveMediaRecording\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveClosedCaptions\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"saveClosedCaptions\"]; });\n\n/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///../canvas-media/es/index.js?");
16795
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _UploadMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UploadMedia */ \"../canvas-media/es/UploadMedia.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _UploadMedia__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClosedCaptionCreator */ \"../canvas-media/es/ClosedCaptionCreator/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClosedCaptionPanel\", function() { return _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _RocketSVG__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RocketSVG */ \"../canvas-media/es/RocketSVG.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RocketSVG\", function() { return _RocketSVG__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useComputerPanelFocus */ \"../canvas-media/es/useComputerPanelFocus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComputerPanelFocus\", function() { return _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _shared_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/utils */ \"../canvas-media/es/shared/utils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAudio\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isAudio\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isVideo\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isVideo\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isPreviewable\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isPreviewable\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizeMediaPlayer\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"sizeMediaPlayer\"]; });\n\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LoadingIndicator\", function() { return _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveMediaRecording\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveClosedCaptions\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"saveClosedCaptions\"]; });\n\n/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shared/constants */ \"../canvas-media/es/shared/constants.js\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() { return _shared_constants__WEBPACK_IMPORTED_MODULE_7__; });\n/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///../canvas-media/es/index.js?");
16796
16796
 
16797
16797
  /***/ }),
16798
16798
 
@@ -16844,6 +16844,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
16844
16844
 
16845
16845
  /***/ }),
16846
16846
 
16847
+ /***/ "../canvas-media/es/shared/constants.js":
16848
+ /*!**********************************************!*\
16849
+ !*** ../canvas-media/es/shared/constants.js ***!
16850
+ \**********************************************/
16851
+ /*! exports provided: CC_FILE_MAX_BYTES */
16852
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
16853
+
16854
+ "use strict";
16855
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CC_FILE_MAX_BYTES\", function() { return CC_FILE_MAX_BYTES; });\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst CC_FILE_MAX_BYTES = 295000;\n\n//# sourceURL=webpack:///../canvas-media/es/shared/constants.js?");
16856
+
16857
+ /***/ }),
16858
+
16847
16859
  /***/ "../canvas-media/es/shared/utils.js":
16848
16860
  /*!******************************************!*\
16849
16861
  !*** ../canvas-media/es/shared/utils.js ***!
@@ -16948,7 +16960,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _def
16948
16960
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
16949
16961
 
16950
16962
  "use strict";
16951
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _uploader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uploader */ \"../k5uploader/es/uploader.js\");\n/* harmony import */ var _session_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./session_manager */ \"../k5uploader/es/session_manager.js\");\n/* harmony import */ var _kaltura_session__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kaltura_session */ \"../k5uploader/es/kaltura_session.js\");\n/* harmony import */ var _message_bus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./message_bus */ \"../k5uploader/es/message_bus.js\");\n/* harmony import */ var _messenger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./messenger */ \"../k5uploader/es/messenger.js\");\n/* harmony import */ var _entry_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./entry_service */ \"../k5uploader/es/entry_service.js\");\n/* harmony import */ var _uiconf_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./uiconf_service */ \"../k5uploader/es/uiconf_service.js\");\n/* harmony import */ var _k5_options__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./k5_options */ \"../k5uploader/es/k5_options.js\");\n\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\nfunction K5Uploader(options) {\n // set up instance as an event dispatcher\n _messenger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].decorate(this);\n _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].setOptions(options);\n this.buildDependencies();\n this.addListeners();\n this.session.setSession(options.kaltura_session);\n this.loadUiConf();\n}\n\nK5Uploader.prototype.destroy = function () {\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].destroy();\n this.session = undefined;\n this.entryService = undefined;\n this.uiconfService = undefined;\n};\n\nK5Uploader.prototype.buildDependencies = function () {\n this.session = new _kaltura_session__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n this.entryService = new _entry_service__WEBPACK_IMPORTED_MODULE_6__[\"default\"]();\n this.uiconfService = new _uiconf_service__WEBPACK_IMPORTED_MODULE_7__[\"default\"]();\n};\n\nK5Uploader.prototype.addListeners = function () {\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('UiConf.error', this.onUiConfError.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('UiConf.complete', this.onUiConfComplete.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.error', this.onUploadError.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.success', this.onUploadSuccess.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.progress', this.onProgress.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Entry.success', this.onEntrySuccess.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Entry.fail', this.onEntryFail.bind(this));\n};\n\nK5Uploader.prototype.onSessionLoaded = function (data) {\n this.session = data;\n this.loadUiConf();\n};\n\nK5Uploader.prototype.loadUiConf = function () {\n this.uiconfService.load(this.session);\n};\n\nK5Uploader.prototype.onUiConfComplete = function (result) {\n this.uiconfig = result;\n this.dispatchEvent('K5.ready', {}, this);\n};\n\nK5Uploader.prototype.uploadFile = function (file) {\n var _context;\n\n this.file = file;\n\n if (!file) {\n return;\n }\n\n if (this.uiconfig.acceptableFile(file, _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].allowedMediaTypes) || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = ['webm', 'video/webm', 'audio/webm']).call(_context, file.type)) {\n this.uploader = new _uploader__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n this.uploader.send(this.session, file);\n } else {\n const details = {\n maxFileSize: this.uiconfig.maxFileSize,\n file,\n allowedMediaTypes: _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].allowedMediaTypes\n };\n this.dispatchEvent('K5.fileError', details, this);\n }\n};\n\nK5Uploader.prototype.onUploadSuccess = function (result) {\n // combine all needed data and add an entry to kaltura\n const allParams = [this.session.asEntryParams(), result.asEntryParams(), _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].asEntryParams()];\n this.entryService.addEntry(allParams);\n}; // Delegate to publicly available K5 events\n\n\nK5Uploader.prototype.onProgress = function (e) {\n this.dispatchEvent('K5.progress', e, this);\n};\n\nK5Uploader.prototype.onUploadError = function (result) {\n this.dispatchEvent('K5.error', result, this);\n};\n\nK5Uploader.prototype.onEntrySuccess = function (data) {\n this.dispatchEvent('K5.complete', data, this);\n};\n\nK5Uploader.prototype.onEntryFail = function (data) {\n this.dispatchEvent('K5.error', data, this);\n};\n\nK5Uploader.prototype.onUiConfError = function (result) {\n this.dispatchEvent('K5.uiconfError', result, this);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (K5Uploader);\n\n//# sourceURL=webpack:///../k5uploader/es/k5uploader.js?");
16963
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _uploader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uploader */ \"../k5uploader/es/uploader.js\");\n/* harmony import */ var _session_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./session_manager */ \"../k5uploader/es/session_manager.js\");\n/* harmony import */ var _kaltura_session__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kaltura_session */ \"../k5uploader/es/kaltura_session.js\");\n/* harmony import */ var _message_bus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./message_bus */ \"../k5uploader/es/message_bus.js\");\n/* harmony import */ var _messenger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./messenger */ \"../k5uploader/es/messenger.js\");\n/* harmony import */ var _entry_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./entry_service */ \"../k5uploader/es/entry_service.js\");\n/* harmony import */ var _uiconf_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./uiconf_service */ \"../k5uploader/es/uiconf_service.js\");\n/* harmony import */ var _k5_options__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./k5_options */ \"../k5uploader/es/k5_options.js\");\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\nfunction K5Uploader(options) {\n // set up instance as an event dispatcher\n _messenger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].decorate(this);\n _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].setOptions(options);\n this.buildDependencies();\n this.addListeners();\n this.session.setSession(options.kaltura_session);\n this.loadUiConf();\n}\n\nK5Uploader.prototype.destroy = function () {\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].destroy();\n this.session = undefined;\n this.entryService = undefined;\n this.uiconfService = undefined;\n};\n\nK5Uploader.prototype.buildDependencies = function () {\n this.session = new _kaltura_session__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n this.entryService = new _entry_service__WEBPACK_IMPORTED_MODULE_6__[\"default\"]();\n this.uiconfService = new _uiconf_service__WEBPACK_IMPORTED_MODULE_7__[\"default\"]();\n};\n\nK5Uploader.prototype.addListeners = function () {\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('UiConf.error', this.onUiConfError.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('UiConf.complete', this.onUiConfComplete.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.error', this.onUploadError.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.success', this.onUploadSuccess.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.progress', this.onProgress.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Entry.success', this.onEntrySuccess.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Entry.fail', this.onEntryFail.bind(this));\n};\n\nK5Uploader.prototype.onSessionLoaded = function (data) {\n this.session = data;\n this.loadUiConf();\n};\n\nK5Uploader.prototype.loadUiConf = function () {\n this.uiconfService.load(this.session);\n};\n\nK5Uploader.prototype.onUiConfComplete = function (result) {\n this.uiconfig = result;\n this.dispatchEvent('K5.ready', {}, this);\n};\n\nK5Uploader.prototype.uploadFile = function (file) {\n var _context;\n\n this.file = file;\n\n if (!file) {\n return;\n }\n\n if (this.uiconfig.acceptableFile(file, _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].allowedMediaTypes) || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = ['webm', 'video/webm', 'audio/webm']).call(_context, file.type)) {\n this.uploader = new _uploader__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n this.uploader.send(this.session, file);\n } else {\n const details = {\n maxFileSize: this.uiconfig.maxFileSize,\n file,\n allowedMediaTypes: _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].allowedMediaTypes\n };\n this.dispatchEvent('K5.fileError', details, this);\n }\n};\n\nK5Uploader.prototype.onUploadSuccess = function (result) {\n // combine all needed data and add an entry to kaltura\n const allParams = [this.session.asEntryParams(), result.asEntryParams(), _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].asEntryParams()];\n this.entryService.addEntry(allParams);\n}; // Delegate to publicly available K5 events\n\n\nK5Uploader.prototype.onProgress = function (e) {\n this.dispatchEvent('K5.progress', e, this);\n};\n\nK5Uploader.prototype.onUploadError = function (result) {\n this.dispatchEvent('K5.error', result, this);\n};\n\nK5Uploader.prototype.onEntrySuccess = function (data) {\n this.dispatchEvent('K5.complete', data, this);\n};\n\nK5Uploader.prototype.onEntryFail = function (data) {\n this.dispatchEvent('K5.error', data, this);\n};\n\nK5Uploader.prototype.onUiConfError = function (result) {\n this.dispatchEvent('K5.uiconfError', result, this);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (K5Uploader);\n\n//# sourceURL=webpack:///../k5uploader/es/k5uploader.js?");
16952
16964
 
16953
16965
  /***/ }),
16954
16966
 
@@ -17131,30 +17143,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2019 - p
17131
17143
 
17132
17144
  /***/ }),
17133
17145
 
17134
- /***/ "./node_modules/@instructure/debounce/es/debounce.js":
17135
- /*!***********************************************************!*\
17136
- !*** ./node_modules/@instructure/debounce/es/debounce.js ***!
17137
- \***********************************************************/
17138
- /*! exports provided: default, debounce */
17139
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
17140
-
17141
- "use strict";
17142
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/**\n * ---\n * category: utilities\n * ---\n * Creates a debounced function that delays invoking func until after wait milliseconds have elapsed\n * since the last time the debounced function was invoked. The debounced function comes with a cancel\n * method to cancel delayed func invocations and a flush method to immediately invoke them. Provide options\n * to indicate whether func should be invoked on the leading and/or trailing edge of the wait timeout.\n * The func is invoked with the last arguments provided to the debounced function. Subsequent calls to the\n * debounced function return the result of the last func invocation.\n *\n * [lodash.debounce](https://github.com/lodash/lodash/blob/master/debounce.js)\n * doesn't work well with [sinon fakeTimers](http://sinonjs.org/releases/v1.17.7/fake-timers/)\n * so this is forked from the lodash source.\n *\n * Note: Modified from the original to check for cancelled boolean before invoking func to prevent React setState\n * on unmounted components.\n *\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n */\nfunction debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var lastArgs, lastThis, result, lastCallTime;\n var lastInvokeTime = 0;\n var timers = [];\n var cancelled = false;\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n\n var leading = !!options.leading;\n var maxing = ('maxWait' in options);\n var trailing = 'trailing' in options ? !!options.trailing : true;\n var maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : 0;\n\n function invokeFunc(time) {\n var args = lastArgs;\n var thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n\n if (cancelled !== true) {\n result = func.apply(thisArg, args);\n return result;\n }\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timers.push(setTimeout(timerExpired, wait)); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime;\n var result = wait - timeSinceLastCall;\n return maxing ? Math.min(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return typeof lastCallTime === 'undefined' || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = Date.now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timers.push(setTimeout(timerExpired, remainingWait(time)));\n }\n\n function trailingEdge(time) {\n clearAllTimers(); // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = void 0;\n return result;\n }\n\n function cancel() {\n cancelled = true;\n clearAllTimers();\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = void 0;\n }\n\n function flush() {\n return timers.length === 0 ? result : trailingEdge(Date.now());\n }\n\n function clearAllTimers() {\n timers.forEach(function (timerId) {\n return clearTimeout(timerId);\n });\n timers = [];\n }\n\n function debounced() {\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timers.length === 0) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timers.push(setTimeout(timerExpired, wait));\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timers.length === 0) {\n timers.push(setTimeout(timerExpired, wait));\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (debounce);\n\n\n//# sourceURL=webpack:///./node_modules/@instructure/debounce/es/debounce.js?");
17143
-
17144
- /***/ }),
17145
-
17146
- /***/ "./node_modules/@instructure/debounce/es/index.js":
17147
- /*!********************************************************!*\
17148
- !*** ./node_modules/@instructure/debounce/es/index.js ***!
17149
- \********************************************************/
17150
- /*! exports provided: default, debounce */
17151
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
17152
-
17153
- "use strict";
17154
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./debounce */ \"./node_modules/@instructure/debounce/es/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _debounce__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"]; });\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_debounce__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"]);\n\n\n//# sourceURL=webpack:///./node_modules/@instructure/debounce/es/index.js?");
17155
-
17156
- /***/ }),
17157
-
17158
17146
  /***/ "./node_modules/webpack/buildin/amd-define.js":
17159
17147
  /*!***************************************!*\
17160
17148
  !*** (webpack)/buildin/amd-define.js ***!
@@ -17223,6 +17211,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Bri
17223
17211
 
17224
17212
  /***/ }),
17225
17213
 
17214
+ /***/ "./src/canvasFileBrowser/FlashAlert.js":
17215
+ /*!*********************************************!*\
17216
+ !*** ./src/canvasFileBrowser/FlashAlert.js ***!
17217
+ \*********************************************/
17218
+ /*! exports provided: default, showFlashAlert, destroyContainer, showFlashError, showFlashSuccess */
17219
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17220
+
17221
+ "use strict";
17222
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FlashAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showFlashAlert\", function() { return showFlashAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"destroyContainer\", function() { return destroyContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showFlashError\", function() { return showFlashError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showFlashSuccess\", function() { return showFlashSuccess; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"../../node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-alerts */ \"../../node_modules/@instructure/ui-alerts/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-motion */ \"../../node_modules/@instructure/ui-motion/es/index.js\");\n/* harmony import */ var _rce_RCEGlobals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../rce/RCEGlobals */ \"./src/rce/RCEGlobals.js\");\n/*\n * Copyright (C) 2017 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Flash alerts, especially for ajax error messages\n * Typical usage:\n * import {showFlashError} from './FlashAlert'\n * ...\n * axios.put(url, data).then((response) => {\n * // do something with response\n * }).catch(showFlashError(your_error_message))\n *\n * showFlashError() with no argument shows a generic message\n *\n * On error, will display an inst-ui Alert at the top of the page\n * with an error message and \"Details\" button. When the user clicks\n * the button, it shows error details extracted from the axios Error\n *\n * You could also import the lower level showFlashAlert function or\n * the FlashAlert component if you need more control\n *\n * showFlashAlert({ err, message, type }, onCloseCallback)\n * err: error object\n * message: user-facing message\n * type: one of ['info', 'success', 'warning', 'error']\n * default is 'info' unless an error object is passed in, else is 'error'\n */\n\n\n\n\n\n\n\n\n\n\nconst messageHolderId = 'flashalert_message_holder'; // specs fail if I reuse jquery's elements\n\nconst screenreaderMessageHolderId = 'flash_screenreader_holder';\nconst TIMEOUT = 10000; // An Alert with a message and \"Details\" button which surfaces\n// more info about the error when pressed.\n// Is displayed at the top of the document, and will close itself after a while\n\nclass FlashAlert extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n\n this.showDetails = () => {\n this.setState({\n showDetails: true\n });\n clearTimeout(this.timerId);\n this.timerId = setTimeout(() => this.closeAlert(), this.props.timeout);\n };\n\n this.closeAlert = () => {\n this.setState({\n isOpen: false\n }, () => {\n setTimeout(() => {\n clearTimeout(this.timerId);\n this.props.onClose();\n }, 500);\n });\n };\n\n this.state = {\n showDetails: false,\n isOpen: true\n };\n this.timerId = 0;\n }\n\n getLiveRegion() {\n // return element where flash screenreader messages go.\n // create if necessary\n let liveRegion = document.getElementById(screenreaderMessageHolderId);\n\n if (!liveRegion) {\n liveRegion = document.createElement('div');\n liveRegion.id = screenreaderMessageHolderId;\n liveRegion.setAttribute('role', 'alert');\n document.body.appendChild(liveRegion);\n }\n\n return liveRegion;\n }\n\n findDetailMessage() {\n const err = this.props.error;\n let a = err.message;\n let b;\n\n if (err.response) {\n if (err.response.data) {\n try {\n if (Array.isArray(err.response.data.errors)) {\n // probably a canvas api\n a = err.response.data.errors[0].message;\n b = err.message;\n } else if (err.response.data.message) {\n // probably a canvas api too\n a = err.response.data.message;\n b = err.message;\n }\n } catch (ignore) {\n a = err.message;\n }\n }\n }\n\n return {\n a,\n b\n };\n }\n\n renderDetailMessage() {\n const {\n a,\n b\n } = this.findDetailMessage();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__[\"Text\"], {\n as: \"p\",\n fontStyle: \"italic\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__[\"Text\"], null, a), b ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null) : null, b ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__[\"Text\"], null, b) : null);\n }\n\n render() {\n let details = null;\n\n if (this.props.error) {\n if (this.state.showDetails) {\n details = this.renderDetailMessage();\n } else {\n details = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_7__[\"PresentationContent\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_5__[\"Button\"], {\n variant: \"link\",\n onClick: this.showDetails\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Details'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_7__[\"ScreenReaderContent\"], null, this.renderDetailMessage()));\n }\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_motion__WEBPACK_IMPORTED_MODULE_8__[\"Transition\"], {\n transitionOnMount: true,\n in: this.state.isOpen,\n type: \"fade\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_4__[\"Alert\"], {\n variant: this.props.variant,\n renderCloseButtonLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Close'),\n onDismiss: this.closeAlert,\n margin: \"small auto\",\n timeout: this.props.timeout,\n liveRegion: this.getLiveRegion,\n transition: \"fade\",\n screenReaderOnly: this.props.screenReaderOnly\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n style: {\n margin: '0 -5px'\n }\n }, this.props.message), details)));\n }\n\n}\nFlashAlert.propTypes = {\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n message: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n error: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(Error),\n variant: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['info', 'success', 'warning', 'error']),\n timeout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n screenReaderOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\nFlashAlert.defaultProps = {\n error: null,\n variant: 'info',\n timeout: TIMEOUT,\n screenReaderOnly: false\n};\nfunction showFlashAlert(_ref) {\n let {\n message,\n err,\n type = err ? 'error' : 'info',\n srOnly = false\n } = _ref;\n\n function closeAlert(atNode) {\n react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.unmountComponentAtNode(atNode);\n atNode.remove();\n }\n\n function getAlertContainer() {\n let alertContainer = document.getElementById(messageHolderId);\n\n if (!alertContainer) {\n alertContainer = document.createElement('div');\n alertContainer.classList.add('clickthrough-container');\n alertContainer.id = messageHolderId;\n alertContainer.setAttribute('style', 'position: fixed; top: 0; left: 0; width: 100%; z-index: 100000;');\n document.body.appendChild(alertContainer);\n }\n\n return alertContainer;\n }\n\n function renderAlert(parent) {\n var _RCEGlobals$getConfig;\n\n const configuredTimeout = (_RCEGlobals$getConfig = _rce_RCEGlobals__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getConfig()) === null || _RCEGlobals$getConfig === void 0 ? void 0 : _RCEGlobals$getConfig.flashAlertTimeout;\n react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FlashAlert, {\n message: message,\n timeout: Number.isNaN(parseInt(configuredTimeout, 10)) ? TIMEOUT : configuredTimeout,\n error: err,\n variant: type,\n onClose: closeAlert.bind(null, parent),\n screenReaderOnly: srOnly\n }), parent);\n }\n\n const div = document.createElement('div'); // div.setAttribute('class', styles.flashMessage)\n\n div.setAttribute('style', 'max-width:50em;margin:1rem auto;');\n div.setAttribute('class', 'flashalert-message');\n getAlertContainer().appendChild(div);\n renderAlert(div);\n}\nfunction destroyContainer() {\n const container = document.getElementById(messageHolderId);\n const liveRegion = document.getElementById(screenreaderMessageHolderId);\n if (container) container.remove();\n if (liveRegion) liveRegion.remove();\n}\nfunction showFlashError() {\n let message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('An error occurred making a network request');\n return err => showFlashAlert({\n message,\n err,\n type: 'error'\n });\n}\nfunction showFlashSuccess(message) {\n return () => showFlashAlert({\n message,\n type: 'success'\n });\n}\n\n//# sourceURL=webpack:///./src/canvasFileBrowser/FlashAlert.js?");
17223
+
17224
+ /***/ }),
17225
+
17226
17226
  /***/ "./src/canvasFileBrowser/natcompare.js":
17227
17227
  /*!*********************************************!*\
17228
17228
  !*** ./src/canvasFileBrowser/natcompare.js ***!
@@ -17375,7 +17375,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17375
17375
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17376
17376
 
17377
17377
  "use strict";
17378
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return KeyboardShortcutModal; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-list */ \"../../node_modules/@instructure/ui-list/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\nfunction KeyboardShortcutModal(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"], {\n \"data-testid\": \"RCE_KeyboardShortcutModal\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'),\n open: props.open,\n shouldCloseOnDocumentClick: true,\n shouldReturnFocus: true,\n size: \"auto\",\n onClose: props.onClose,\n onExited: props.onExited,\n onDismiss: props.onDismiss\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__[\"CloseButton\"], {\n placement: \"end\",\n offset: \"medium\",\n variant: \"icon\",\n onClick: props.onDismiss\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Close')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__[\"Heading\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Body, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__[\"View\"], {\n as: \"div\",\n margin: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"], {\n variant: \"unstyled\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"ALT+F8/ALT+0\"), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Open this keyboard shortcuts dialog')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"CTRL+F9\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Focus element options toolbar')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"ALT+F9\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Go to the editor's menubar\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"ALT+F10\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Go to the editor's toolbar\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"ESC\"), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Close a menu or dialog. Also returns you to the editor area')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('TAB/Arrows')), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Navigate through the menu or toolbar'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__[\"View\"], {\n as: \"p\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Other editor shortcuts may be found at'), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://www.tiny.cloud/docs/advanced/keyboard-shortcuts/\",\n target: \"rcekbshortcut\"\n }, \"https://www.tiny.cloud/docs/advanced/keyboard-shortcuts/\")))));\n}\nKeyboardShortcutModal.propTypes = {\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"]\n};\n\n//# sourceURL=webpack:///./src/rce/KeyboardShortcutModal.js?");
17378
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return KeyboardShortcutModal; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-list */ \"../../node_modules/@instructure/ui-list/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _userOS__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./userOS */ \"./src/rce/userOS.ts\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\nfunction KeyboardShortcutModal(props) {\n const OSKey = Object(_userOS__WEBPACK_IMPORTED_MODULE_9__[\"determineOSDependentKey\"])();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"], {\n \"data-testid\": \"RCE_KeyboardShortcutModal\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'),\n open: props.open,\n shouldCloseOnDocumentClick: true,\n shouldReturnFocus: true,\n size: \"auto\",\n onClose: props.onClose,\n onExited: props.onExited,\n onDismiss: props.onDismiss\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__[\"CloseButton\"], {\n placement: \"end\",\n offset: \"medium\",\n color: \"primary\",\n onClick: props.onDismiss,\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Close')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__[\"Heading\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Body, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__[\"View\"], {\n as: \"div\",\n margin: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"], {\n isUnstyled: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, OSKey, \"+F8/\", OSKey, \"+0\"), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Open this keyboard shortcuts dialog')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"CTRL+F9\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Focus element options toolbar')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, OSKey, \"+F9\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Go to the editor's menubar\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, OSKey, \"+F10\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Go to the editor's toolbar\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"ESC\"), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Close a menu or dialog. Also returns you to the editor area')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('TAB/Arrows')), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Navigate through the menu or toolbar'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__[\"View\"], {\n as: \"p\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Other editor shortcuts may be found at'), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://www.tiny.cloud/docs/advanced/keyboard-shortcuts/\",\n target: \"rcekbshortcut\"\n }, \"https://www.tiny.cloud/docs/advanced/keyboard-shortcuts/\")))));\n}\nKeyboardShortcutModal.propTypes = {\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"]\n};\n\n//# sourceURL=webpack:///./src/rce/KeyboardShortcutModal.js?");
17379
+
17380
+ /***/ }),
17381
+
17382
+ /***/ "./src/rce/RCEGlobals.js":
17383
+ /*!*******************************!*\
17384
+ !*** ./src/rce/RCEGlobals.js ***!
17385
+ \*******************************/
17386
+ /*! exports provided: default */
17387
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17388
+
17389
+ "use strict";
17390
+ eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst isEmpty = obj => Object.keys(obj).length === 0;\n\nclass RCEGlobals {\n constructor() {\n if (!RCEGlobals.instance) {\n RCEGlobals.instance = this;\n this._data = {\n features: {},\n config: {}\n };\n }\n\n return RCEGlobals.instance;\n }\n\n getFeatures() {\n return this._data.features;\n }\n\n setFeatures(features) {\n // Set only once\n if (isEmpty(this._data.features)) {\n this._data.features = { ...features\n };\n Object.freeze(this._data.features);\n }\n }\n\n getConfig() {\n return this._data.config;\n }\n\n setConfig(config) {\n // Set only once\n if (isEmpty(this._data.config)) {\n this._data.config = { ...config\n };\n Object.freeze(this._data.config);\n }\n }\n\n}\n\nconst instance = new RCEGlobals();\n/* harmony default export */ __webpack_exports__[\"default\"] = (instance);\n\n//# sourceURL=webpack:///./src/rce/RCEGlobals.js?");
17379
17391
 
17380
17392
  /***/ }),
17381
17393
 
@@ -17387,7 +17399,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17387
17399
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17388
17400
 
17389
17401
  "use strict";
17390
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"editorOptionsPropType\", function() { return editorOptionsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"storageAvailable\", function() { return storageAvailable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toolbarPropType\", function() { return toolbarPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"menuPropType\", function() { return menuPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ltiToolsPropType\", function() { return ltiToolsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenuItems\", function() { return mergeMenuItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenu\", function() { return mergeMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeToolbar\", function() { return mergeToolbar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergePlugins\", function() { return mergePlugins; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tinymce/tinymce-react */ \"../../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-themeable */ \"../../node_modules/@instructure/ui-themeable/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-alerts */ \"../../node_modules/@instructure/ui-alerts/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_debounce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/debounce */ \"./node_modules/@instructure/debounce/es/index.js\");\n/* harmony import */ var _common_getCookie__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/getCookie */ \"./src/common/getCookie.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _contentInsertion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./contentInsertion */ \"./src/rce/contentInsertion.js\");\n/* harmony import */ var _indicatorRegion__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./indicatorRegion */ \"./src/rce/indicatorRegion.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./editorLanguage */ \"./src/rce/editorLanguage.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_editorLanguage__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _normalizeLocale__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./normalizeLocale */ \"./src/rce/normalizeLocale.js\");\n/* harmony import */ var _sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sanitizePlugins */ \"./src/rce/sanitizePlugins.js\");\n/* harmony import */ var _getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./getCanvasUrl */ \"./src/rce/getCanvasUrl.js\");\n/* harmony import */ var _common_indicate__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../common/indicate */ \"./src/common/indicate.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./plugins/shared/CanvasContentTray */ \"./src/rce/plugins/shared/CanvasContentTray.js\");\n/* harmony import */ var _StatusBar__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./StatusBar */ \"./src/rce/StatusBar.js\");\n/* harmony import */ var _customEvents__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./customEvents */ \"./src/rce/customEvents.js\");\n/* harmony import */ var _ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ShowOnFocusButton */ \"./src/rce/ShowOnFocusButton/index.js\");\n/* harmony import */ var _skins_theme__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../skins/theme */ \"./src/skins/theme.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/* harmony import */ var _KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./KeyboardShortcutModal */ \"./src/rce/KeyboardShortcutModal.js\");\n/* harmony import */ var _AlertMessageArea__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./AlertMessageArea */ \"./src/rce/AlertMessageArea.js\");\n/* harmony import */ var _alertHandler__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./plugins/shared/ContentSelection */ \"./src/rce/plugins/shared/ContentSelection.js\");\n/* harmony import */ var _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./plugins/instructure_record/VideoOptionsTray/TrayController */ \"./src/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js\");\nvar _dec, _class, _class2;\n\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst styles = {\n componentId: 'dyzZI',\n template: function (theme) {\n return `\n\n\n\n\n.canvas-rce__skins--root {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n}\n\n\n\n.rce-wrapper textarea {\n width: 100%;\n box-sizing: border-box;\n min-height: auto;\n }\n\n.tox,\n .tox *:not(svg) {\n color: inherit;\n font-family: inherit;\n }\n\n\n\n[dir='rtl'] .tox :not(svg) {\n direction: rtl;\n }\n\n.tox:not(.tox-tinymce-inline) .tox-editor-header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox.tox-tinymce .screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n transform: translatez(0);\n }\n\n.tox-tinymce-aux {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n\n\n.tox.tox-tinymce-aux {\n z-index: 10000;\n }\n\n.tox .tox-button {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-weight: ${theme.canvasButtonFontWeight || 'inherit'};\n font-size: ${theme.canvasButtonFontSize || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n line-height: calc(${theme.canvasButtonLineHeight || 'inherit'} - 2px);\n padding: ${theme.canvasButtonPadding || 'inherit'};\n }\n\n.tox .tox-button[disabled] {\n opacity: 0.5;\n border-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button:focus:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button:hover:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button:active:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary {\n background-color: ${theme.canvasSecondaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary[disabled] {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n opacity: 0.5;\n }\n\n.tox .tox-button--secondary:focus:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button--secondary:hover:not(:disabled) {\n background-color: ${theme.canvasSecondaryButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--secondary:active:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button-link {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-button--naked {\n background: ${theme.canvasButtonBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked:hover:not(:disabled) {\n background-color: ${theme.canvasButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--naked:focus:not(:disabled) {\n background-color: ${theme.canvasButtonBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button--naked:active:not(:disabled) {\n background-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button--naked.tox-button--icon {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {\n background: ${theme.canvasButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\n fill: rgba(45, 59, 69, 0.3);\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox input.tox-checkbox__input:focus + .tox-checkbox__icons {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__group {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-collection__group-heading {\n background-color: #e3e6e8;\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-collection__item {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection__item--state-disabled {\n background-color: unset;\n opacity: 0.5;\n cursor: default;\n }\n\n.tox .tox-collection--list .tox-collection__item--enabled {\n color: contrast(inherit, ${theme.canvasTextColor || 'inherit'}, #fff);\n }\n\n.tox .tox-collection--list .tox-collection__item--active {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox\n .tox-collection--list\n .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__item-icon:first-child {\n margin-right: 8px;\n }\n\n.tox .tox-collection__item-accessory {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-sv-palette {\n border: 1px solid black;\n box-sizing: border-box;\n }\n\n.tox .tox-hue-slider {\n border: 1px solid black;\n }\n\n.tox .tox-rgb-form input.tox-invalid {\n \n border-color: ${theme.canvasErrorColor || 'inherit'} !important;\n }\n\n.tox .tox-rgb-form {\n padding: 2px; \n }\n\n.tox .tox-swatches__picker-btn:hover {\n background: #e0e2e3;\n }\n\n.tox .tox-comment-thread {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: 0 4px 8px 0 rgba(45, 59, 69, 0.1);\n }\n\n.tox .tox-comment__header {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__date {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__expander p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment-thread__overlay::after {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__overlay {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__loading-text {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__overlaytext p {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__busy-spinner {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-user__avatar svg {\n fill: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-user__name {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-dialog-wrap__backdrop {\n background-color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasModalShadow || 'inherit'};\n }\n\n.tox .tox-dialog__header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n border-bottom: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalHeadingPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__title {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-size: ${theme.canvasModalHeadingFontSize || 'inherit'};\n font-weight: ${theme.canvasModalHeadingFontWeight || 'inherit'};\n }\n\n.tox .tox-dialog__body {\n color: ${theme.canvasTextColor || 'inherit'};\n padding: ${theme.canvasModalBodyPadding || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item {\n color: rgba(45, 59, 69, 0.75);\n }\n\n.tox .tox-dialog__body-nav-item:focus {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item--active {\n border-bottom-color: ${theme.canvasBrandColor || 'inherit'};\n color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-dialog__footer {\n background-color: ${theme.canvasModalFooterBackground || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalFooterPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__table tbody tr {\n border-bottom-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border: 2px dashed ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-edit-area {\n border: 1px solid ${theme.canvasBorderColor || 'inherit'};\n border-radius: 3px;\n }\n\n.tox .tox-edit-area__iframe {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border: ${theme.canvasFocusBorderWidth || 'inherit'} solid transparent;\n }\n\n.tox.tox-inline-edit-area {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-form__group {\n padding: 2px;\n }\n\n.tox .tox-control-wrap .tox-textfield {\n padding-right: 32px;\n }\n\n.tox .tox-control-wrap__status-icon-invalid svg {\n fill: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-unknown svg {\n fill: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-valid svg {\n fill: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-color-input span {\n border-color: rgba(45, 59, 69, 0.2);\n }\n\n.tox .tox-color-input span:focus {\n border-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-label,\n .tox .tox-toolbar-label {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-form__group {\n margin: ${theme.canvasFormElementMargin || 'inherit'};\n }\n\n.tox .tox-form__group:last-child {\n margin: 0;\n }\n\n.tox .tox-form__group .tox-label {\n color: ${theme.canvasFormElementLabelColor || 'inherit'};\n margin: ${theme.canvasFormElementLabelMargin || 'inherit'};\n font-size: ${theme.canvasFormElementLabelFontSize || 'inherit'};\n font-weight: ${theme.canvasFormElementLabelFontWeight || 'inherit'};\n }\n\n.tox .tox-form__group--error {\n color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-textfield,\n .tox .tox-selectfield select,\n .tox .tox-textarea,\n .tox .tox-toolbar-textfield {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-textfield:focus,\n .tox .tox-selectfield select:focus,\n .tox .tox-textarea:focus {\n \n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-naked-btn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-naked-btn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker > div {\n border-color: #cccccc;\n }\n\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected {\n background-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n border-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n }\n\n.tox-selected-menu .tox-insert-table-picker {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker__label {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-menu {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-menubar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-mbtn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn[disabled] {\n opacity: 0.5;\n }\n\n.tox .tox-mbtn:hover:not(:disabled) {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn:focus:not(:disabled) {\n background-color: transparent;\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-mbtn--active {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-notification {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: #c5c5c5;\n }\n\n.tox .tox-notification--success {\n background-color: #dff0d8;\n border-color: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-notification--error {\n background-color: #f2dede;\n border-color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-notification--warn {\n background-color: #fcf8e3;\n border-color: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-notification--info {\n background-color: #d9edf7;\n border-color: ${theme.canvasInfoColor || 'inherit'};\n }\n\n.tox .tox-notification__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-pop__dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-pop.tox-pop--bottom::before {\n border-color: ${theme.canvasBorderColor || 'inherit'} transparent transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--top::before {\n border-color: transparent transparent ${theme.canvasBorderColor || 'inherit'} transparent;\n }\n\n.tox .tox-pop.tox-pop--left::before {\n border-color: transparent ${theme.canvasBorderColor || 'inherit'} transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--right::before {\n border-color: transparent transparent transparent ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider {\n width: 100%;\n }\n\n.tox .tox-slider__rail {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider__handle {\n background-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-spinner > div {\n background-color: rgba(45, 59, 69, 0.6);\n }\n\n\n\n.tox .tox-tbtn {\n border-style: none;\n color: ${theme.canvasButtonColor || 'inherit'};\n position: relative;\n }\n\n.tox .tox-tbtn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-tbtn.tox-tbtn--enabled {\n background: inherit;\n }\n\n.tox .tox-tbtn:focus,\n .tox .tox-split-button:focus {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-tbtn:hover,\n .tox .tox-split-button:hover,\n .tox .tox-tbtn.tox-tbtn--enabled:hover,\n .tox .tox-split-button .tox-tbtn.tox-split-button__chevron:hover {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox-tbtn.tox-split-button__chevron {\n position: relative;\n }\n\n\n\n.tox .tox-tbtn.tox-tbtn--enabled::after {\n position: absolute;\n top: -3px;\n content: '\\\\25BC';\n text-align: center;\n height: 8px;\n font-size: 8px;\n width: 100%;\n color: ${theme.canvasEnabledColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n\n\n.tox-tbtn.tox-split-button__chevron.tox-tbtn--enabled::after {\n display: none;\n }\n\n.tox .tox-tbtn--disabled,\n .tox .tox-tbtn--disabled:hover,\n .tox .tox-tbtn:disabled,\n .tox .tox-tbtn:disabled:hover {\n opacity: 0.5;\n }\n\n.tox .tox-tbtn--disabled svg,\n .tox .tox-tbtn--disabled:hover svg,\n .tox .tox-tbtn:disabled svg,\n .tox .tox-tbtn:disabled:hover svg {\n \n opacity: 0.5;\n }\n\n.tox .tox-tbtn__select-chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button__chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button.tox-tbtn--disabled:hover,\n .tox .tox-split-button.tox-tbtn--disabled:focus,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {\n opacity: 0.5;\n }\n\n.tox .tox-toolbar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-toolbar__group:not(:last-of-type) {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-tooltip__body {\n background-color: ${theme.canvasTextColor || 'inherit'};\n box-shadow: 0 2px 4px rgba(45, 59, 69, 0.3);\n color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-tooltip--down .tox-tooltip__arrow {\n border-top-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--up .tox-tooltip__arrow {\n border-bottom-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--right .tox-tooltip__arrow {\n border-left-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--left .tox-tooltip__arrow {\n border-right-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-well {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-custom-editor {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox a {\n color: ${theme.canvasLinkColor || 'inherit'};\n }\n\n.tox.tox-tinymce {\n border-style: none;\n }\n\n\n\n.tox-editor-container .tox-toolbar,\n .tox-editor-container .tox-toolbar-overlord {\n background-image: none;\n margin-bottom: 5px;\n }\n\n.tox-editor-container .tox-toolbar__primary {\n background-image: none;\n }\n\n\n\n.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary {\n border-style: none;\n }\n\n.tox .tox-toolbar .tox-toolbar__group,\n .tox .tox-toolbar-overlord .tox-toolbar__group,\n .tox-toolbar__overflow .tox-toolbar__group,\n .tox:not([dir='rtl']) .tox-toolbar__group:not(:last-of-type),\n .tox[dir='rtl'] .tox-toolbar__group:not(:last-of-type) {\n border-style: none;\n }\n\n.tox-toolbar .tox-toolbar__group::after, \n .tox-toolbar-overlord .tox-toolbar__group::after, \n .tox-toolbar__overflow .tox-toolbar__group::after, \n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n \n content: '';\n display: inline-block;\n box-sizing: border-box;\n border-inline-end: 1px solid ${theme.canvasBorderColor || 'inherit'};\n width: 8px;\n height: 24px;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-left: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox-toolbar .tox-toolbar__group:last-child::after,\n .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-inline-end-width: 0;\n padding-inline-start: 0;\n width: 0;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-right-width: 0;\n padding-left: 0;\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-left-width: 0;\n padding-right: 0;\n }\n\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n width: auto;\n padding-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-left: 0;\n }\n\n.tox .tox-tbtn {\n box-sizing: border-box;\n }\n\n.tox .tox-tbtn,\n .tox .tox-split-button,\n .tox .tox-tbtn--select {\n border-style: none;\n margin: 2px 2px 3px;\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: 0;\n }\n\n.tox .tox-edit-area.active,\n .tox .tox-edit-area.active iframe {\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: -6px;\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: -6px;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: -6px;\n }\n\n.tox .tox-split-button:hover .tox-split-button__chevron {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: none;\n }\n\n.tox .tox-tbtn:hover.tox-split-button__chevron,\n .tox .tox-tbtn:focus.tox-split-button__chevron {\n box-shadow: none;\n }\n\n.tox .tox-toolbar__primary {\n border-width: 0;\n }\n\n.tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-inline-end: 4px;\n }\n\n[dir=\"ltr\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-right: 4px;\n }\n\n[dir=\"rtl\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-left: 4px;\n }\n\n\n\n.tox .tox-icon svg:not([height]),\n .tox .tox-collection__item-icon svg:not([height]) {\n height: 16px;\n }\n\n\n\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon {\n height: 30px;\n width: 30px;\n }\n\n\n\n.tox-selectfield__icon-js svg {\n width: 10px;\n height: 10px;\n }\n\n\n\n[data-canvascontenttray-content]:focus {\n outline-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n`;\n },\n 'root': 'canvas-rce__skins--root'\n};\nconst skinCSSBinding = {\n componentId: 'djgIv',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:baseline;vertical-align:initial;white-space:normal}\n\n.tinymce__oxide--tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n.tinymce__oxide--tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n.tinymce__oxide--tox:not([dir=rtl]){direction:ltr;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n.tinymce__oxide--tox[dir=rtl]{direction:rtl;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n.tinymce__oxide--tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}\n\n.tinymce__oxide--tox-tinymce-inline{border:none;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;z-index:1300}\n\n.tinymce__oxide--tox-tinymce :focus,.tinymce__oxide--tox-tinymce-aux :focus{outline:0}\n\nbutton::-moz-focus-inner{border:0}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div{padding-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__repair{margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-form__group h2{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-icon svg{fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info a .tinymce__oxide--tox-icon{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-form__group h2{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-icon svg{fill:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn a .tinymce__oxide--tox-icon{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-form__group h2{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-icon svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error a .tinymce__oxide--tox-icon{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-form__group h2{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-icon svg{fill:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success a .tinymce__oxide--tox-icon{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header h1,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group .tinymce__oxide--accessibility-issue__description h2{margin-top:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-left:auto}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 4px 4px 8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-right:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 8px 4px 4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-anchorbar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-bar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg{display:block;fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link--sm{font-size:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked .tinymce__oxide--tox-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked.tinymce__oxide--tox-button--icon:hover:not(:disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:focus+.tinymce__oxide--tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__label{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__input{left:-10000px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__label{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__input{right:-10000px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__group{display:flex;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group:first-child{border-top-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item{padding:4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--enabled{background-color:#fff;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark svg,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar-lg .tinymce__oxide--tox-collection__item-icon{height:48px;width:48px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret{align-items:center;display:flex;min-height:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-checkmark svg{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-accessory+.tinymce__oxide--tox-collection__item-checkmark{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-label{white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-left{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-middle{align-items:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-left{align-items:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-right{align-items:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-top{align-self:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-middle{align-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-bottom{align-self:flex-end}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{margin-left:16px;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-left:16px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-icon-rtl .tinymce__oxide--tox-collection__item-icon svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{margin-right:16px;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette{box-sizing:border-box;display:flex;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette,.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{width:225px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider{box-sizing:border-box;height:100%;width:25px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider,.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input{width:6em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input.tinymce__oxide--tox-invalid{border:1px solid red!important}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form .tinymce__oxide--tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-sv-palette{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider-thumb{margin-left:-1px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-rgb-form label{margin-right:.5em}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-sv-palette{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider-thumb{margin-right:-1px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-rgb-form label{margin-left:.5em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary .tinymce__oxide--tox-swatches{margin:2px 0 3px 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-swatches-menu{border:0;margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__row{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch:focus,.tinymce__oxide--tox .tinymce__oxide--tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove svg path{stroke:#e74c3c}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn svg{height:24px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn:hover{background:#dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-swatches__picker-btn{margin-left:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-swatches__picker-btn{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread{background:#fff;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread>:not(:first-child){margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:none;text-transform:initial}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body textarea{resize:none;white-space:normal;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander{padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{padding-top:16px;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread__overlay::after{background:#fff;bottom:0;content:\"\";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply>:first-child{margin-bottom:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:\"\";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text>div{padding-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-conversations{margin:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit{margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__reply>:last-child{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit{margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__reply>:last-child{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__avatar svg{fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar svg{margin-right:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar svg{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop--opaque{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-inline{z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header .tinymce__oxide--tox-button{z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle:active{cursor:grabbing}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__dismiss{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{flex-direction:column}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:focus,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;margin-inline-end:0;margin-inline-start:0;padding-inline-start:2.5rem}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-right:0;margin-left:0;padding-left:2.5rem}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-left:0;margin-right:0;padding-right:2.5rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p{margin-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-lg{height:650px;max-width:1200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md{max-width:800px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md .tinymce__oxide--tox-dialog__body-content{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-end,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-start{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table{border-collapse:collapse;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table thead th{font-weight:700;padding-bottom:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr{border-bottom:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr:last-child{border-bottom:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table td{padding-bottom:8px;padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__popups{position:absolute;width:100%;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition.tinymce__oxide--tox-dialog-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-ie .tinymce__oxide--tox-dialog-wrap{position:-ms-device-fixed}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav{margin-right:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav{margin-left:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-right:8px}\n\nbody.tinymce__oxide--tox-dialog__disable-scroll{overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-inline-edit-area{border:1px dotted #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-header{z-index:1}\n\n.tinymce__oxide--tox:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header{box-shadow:none;transition:box-shadow .5s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-bottom .tinymce__oxide--tox-editor-header,.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{margin-bottom:-1px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-sticky-on .tinymce__oxide--tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}\n\n.tinymce__oxide--tox-editor-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox-editor-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}\n\n.tinymce__oxide--tox-editor-dock-transition.tinymce__oxide--tox-editor-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap{flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-invalid) .tinymce__oxide--tox-control-wrap__status-icon-invalid,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-unknown) .tinymce__oxide--tox-control-wrap__status-icon-unknown,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-valid) .tinymce__oxide--tox-control-wrap__status-icon-valid{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-invalid svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-unknown svg{fill:orange}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-valid svg{fill:green}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-right:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap__status-icon-wrap{right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap__status-icon-wrap{left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-menu{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-autocompleter-highlight{font-weight:700}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input{display:flex;position:relative;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:focus:not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span[aria-disabled=true]{cursor:not-allowed}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-left:36px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input span{left:6px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-right:36px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input span{right:6px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-label,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{padding:0 8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-label{padding:0 0 0 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group{box-sizing:border-box;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form-group--maximize{flex:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--error{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--collection{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--2col>.tinymce__oxide--tox-form__group{width:calc(50% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--3col>.tinymce__oxide--tox-form__group{width:calc(100% / 3 - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--4col>.tinymce__oxide--tox-form__group{width:calc(25% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__controls-h-stack{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--inline{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-textarea{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-lock.tinymce__oxide--tox-locked .tinymce__oxide--tox-lock-icon__unlock,.tinymce__oxide--tox .tinymce__oxide--tox-lock:not(.tinymce__oxide--tox-locked) .tinymce__oxide--tox-lock-icon__lock{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select,.tinymce__oxide--tox .tinymce__oxide--tox-textarea,.tinymce__oxide--tox .tinymce__oxide--tox-textfield,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea[disabled],.tinymce__oxide--tox .tinymce__oxide--tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textarea:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar-textfield+*{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar-textfield+*{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select{align-items:center;display:flex}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-listboxfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-listboxfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select::-ms-expand{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-right:24px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-left:24px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea{appearance:textarea;white-space:pre-wrap}\n\n.tinymce__oxide--tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox-statusbar__resize-handle{display:none}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen{background-color:transparent;z-index:1200}\n\n.tinymce__oxide--tox-shadowhost.tinymce__oxide--tox-fullscreen{z-index:1200}\n\n.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux,.tinymce__oxide--tox-fullscreen~.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux{z-index:1201}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-help__more-link{list-style:none;margin-top:1em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools{width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image,.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image+.tinymce__oxide--tox-image-tools__toolbar{margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-spacer{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-move{border:0;cursor:move;position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-left:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-right:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-right:32px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-insert-table-picker{margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker .tinymce__oxide--tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n){border-right:0}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n+1){border-right:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--list{padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--toolbar{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--grid{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu__label blockquote,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label code,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h1,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h2,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h3,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h4,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h5,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h6,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-menubar{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:hover:not(:disabled):not(.tinymce__oxide--tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled] .tinymce__oxide--tox-mbtn__select-label{cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:grid;font-size:14px;font-weight:400;grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification p{font-size:14px;font-weight:400}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification a{text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--in{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success a{color:#547831}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error a{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn p,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn a,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn svg,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body{align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*+*{margin-top:1rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon{align-self:center;-ms-grid-column-span:1;grid-column-end:2;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__dismiss{align-self:start;-ms-grid-column-span:1;grid-column-end:4;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification .tinymce__oxide--tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;grid-row-start:2;justify-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop{display:inline-block;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing{transition:width .1s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing .tinymce__oxide--tox-toolbar{flex-wrap:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog>:not(.tinymce__oxide--tox-toolbar){margin:4px 4px 4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog .tinymce__oxide--tox-toolbar{background-color:transparent;margin-bottom:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{left:50%;top:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::before{left:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::before{left:calc(100% - 20px)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__slider{display:flex;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-closed{opacity:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-open{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-growing,.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-selector{height:12px;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-source-code{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div{animation:tinymce__oxide--tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(1){animation-delay:-.32s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(2){animation-delay:-.16s}\n\n@keyframes tinymce__oxide--tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-spinner>div:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-spinner>div:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path>*{display:inline;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__path>*{margin-right:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__branding{margin-left:1ch}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar{flex-direction:row-reverse}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar__path>*{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber{z-index:1299}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn.tinymce__oxide--tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover>*,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled) svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--md{height:51px;width:51px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--lg{flex-direction:column;height:68px;width:68px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--return{align-self:stretch;height:unset;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--labeled{padding:0 4px;width:unset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--bespoke .tinymce__oxide--tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button>*{border-radius:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron{width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn{margin:0}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn:first-child{width:30px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button__chevron{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:hover,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-overlord{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow.tinymce__oxide--tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar-overlord .tinymce__oxide--tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop .tinymce__oxide--tox-toolbar{border-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--no-divider{background-image:none}\n\n.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar-overlord:first-child .tinymce__oxide--tox-toolbar__primary,.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar:first-child{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux .tinymce__oxide--tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group--pull-right{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling .tinymce__oxide--tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip{display:inline-block;padding:8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__arrow{position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--down .tinymce__oxide--tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--up .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--right .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--left .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:only-child{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:\"\";height:100%;position:absolute;width:100%;z-index:1000}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tab{cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools-edit-panel{height:60px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__sidebar{height:60px}\n`;\n },\n 'tox': 'tinymce__oxide--tox',\n 'tox-tinymce': 'tinymce__oxide--tox-tinymce',\n 'tox-tinymce-inline': 'tinymce__oxide--tox-tinymce-inline',\n 'tox-editor-header': 'tinymce__oxide--tox-editor-header',\n 'tox-tinymce-aux': 'tinymce__oxide--tox-tinymce-aux',\n 'accessibility-issue__header': 'tinymce__oxide--accessibility-issue__header',\n 'accessibility-issue__description': 'tinymce__oxide--accessibility-issue__description',\n 'accessibility-issue__repair': 'tinymce__oxide--accessibility-issue__repair',\n 'tox-dialog__body-content': 'tinymce__oxide--tox-dialog__body-content',\n 'accessibility-issue--info': 'tinymce__oxide--accessibility-issue--info',\n 'tox-form__group': 'tinymce__oxide--tox-form__group',\n 'tox-icon': 'tinymce__oxide--tox-icon',\n 'accessibility-issue--warn': 'tinymce__oxide--accessibility-issue--warn',\n 'accessibility-issue--error': 'tinymce__oxide--accessibility-issue--error',\n 'accessibility-issue--success': 'tinymce__oxide--accessibility-issue--success',\n 'tox-button': 'tinymce__oxide--tox-button',\n 'tox-anchorbar': 'tinymce__oxide--tox-anchorbar',\n 'tox-bar': 'tinymce__oxide--tox-bar',\n 'tox-button--secondary': 'tinymce__oxide--tox-button--secondary',\n 'tox-button--icon': 'tinymce__oxide--tox-button--icon',\n 'tox-button-link': 'tinymce__oxide--tox-button-link',\n 'tox-button-link--sm': 'tinymce__oxide--tox-button-link--sm',\n 'tox-button--naked': 'tinymce__oxide--tox-button--naked',\n 'tox-checkbox': 'tinymce__oxide--tox-checkbox',\n 'tox-checkbox__input': 'tinymce__oxide--tox-checkbox__input',\n 'tox-checkbox__icons': 'tinymce__oxide--tox-checkbox__icons',\n 'tox-checkbox-icon__unchecked': 'tinymce__oxide--tox-checkbox-icon__unchecked',\n 'tox-checkbox-icon__indeterminate': 'tinymce__oxide--tox-checkbox-icon__indeterminate',\n 'tox-checkbox-icon__checked': 'tinymce__oxide--tox-checkbox-icon__checked',\n 'tox-checkbox--disabled': 'tinymce__oxide--tox-checkbox--disabled',\n 'tox-checkbox__label': 'tinymce__oxide--tox-checkbox__label',\n 'tox-collection--toolbar': 'tinymce__oxide--tox-collection--toolbar',\n 'tox-collection__group': 'tinymce__oxide--tox-collection__group',\n 'tox-collection--grid': 'tinymce__oxide--tox-collection--grid',\n 'tox-collection--list': 'tinymce__oxide--tox-collection--list',\n 'tox-collection__group-heading': 'tinymce__oxide--tox-collection__group-heading',\n 'tox-collection__item': 'tinymce__oxide--tox-collection__item',\n 'tox-collection__item--enabled': 'tinymce__oxide--tox-collection__item--enabled',\n 'tox-collection__item--active': 'tinymce__oxide--tox-collection__item--active',\n 'tox-collection__item--state-disabled': 'tinymce__oxide--tox-collection__item--state-disabled',\n 'tox-collection__item-checkmark': 'tinymce__oxide--tox-collection__item-checkmark',\n 'tox-collection__item-icon': 'tinymce__oxide--tox-collection__item-icon',\n 'tox-collection--toolbar-lg': 'tinymce__oxide--tox-collection--toolbar-lg',\n 'tox-collection__item-label': 'tinymce__oxide--tox-collection__item-label',\n 'tox-collection__item-accessory': 'tinymce__oxide--tox-collection__item-accessory',\n 'tox-collection__item-caret': 'tinymce__oxide--tox-collection__item-caret',\n 'tox-collection--horizontal': 'tinymce__oxide--tox-collection--horizontal',\n 'tox-collection__item-container': 'tinymce__oxide--tox-collection__item-container',\n 'tox-collection__item-container--row': 'tinymce__oxide--tox-collection__item-container--row',\n 'tox-collection__item-container--align-left': 'tinymce__oxide--tox-collection__item-container--align-left',\n 'tox-collection__item-container--align-right': 'tinymce__oxide--tox-collection__item-container--align-right',\n 'tox-collection__item-container--valign-top': 'tinymce__oxide--tox-collection__item-container--valign-top',\n 'tox-collection__item-container--valign-middle': 'tinymce__oxide--tox-collection__item-container--valign-middle',\n 'tox-collection__item-container--valign-bottom': 'tinymce__oxide--tox-collection__item-container--valign-bottom',\n 'tox-collection__item-container--column': 'tinymce__oxide--tox-collection__item-container--column',\n 'tox-collection': 'tinymce__oxide--tox-collection',\n 'tox-collection__item-icon-rtl': 'tinymce__oxide--tox-collection__item-icon-rtl',\n 'tox-color-picker-container': 'tinymce__oxide--tox-color-picker-container',\n 'tox-sv-palette': 'tinymce__oxide--tox-sv-palette',\n 'tox-sv-palette-spectrum': 'tinymce__oxide--tox-sv-palette-spectrum',\n 'tox-sv-palette-thumb': 'tinymce__oxide--tox-sv-palette-thumb',\n 'tox-sv-palette-inner-thumb': 'tinymce__oxide--tox-sv-palette-inner-thumb',\n 'tox-hue-slider': 'tinymce__oxide--tox-hue-slider',\n 'tox-hue-slider-spectrum': 'tinymce__oxide--tox-hue-slider-spectrum',\n 'tox-hue-slider-thumb': 'tinymce__oxide--tox-hue-slider-thumb',\n 'tox-rgb-form': 'tinymce__oxide--tox-rgb-form',\n 'tox-invalid': 'tinymce__oxide--tox-invalid',\n 'tox-rgba-preview': 'tinymce__oxide--tox-rgba-preview',\n 'tox-toolbar': 'tinymce__oxide--tox-toolbar',\n 'tox-swatches': 'tinymce__oxide--tox-swatches',\n 'tox-toolbar__overflow': 'tinymce__oxide--tox-toolbar__overflow',\n 'tox-toolbar__primary': 'tinymce__oxide--tox-toolbar__primary',\n 'tox-swatches-menu': 'tinymce__oxide--tox-swatches-menu',\n 'tox-swatches__row': 'tinymce__oxide--tox-swatches__row',\n 'tox-swatch': 'tinymce__oxide--tox-swatch',\n 'tox-swatch--remove': 'tinymce__oxide--tox-swatch--remove',\n 'tox-swatches__picker-btn': 'tinymce__oxide--tox-swatches__picker-btn',\n 'tox-comment-thread': 'tinymce__oxide--tox-comment-thread',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment__header': 'tinymce__oxide--tox-comment__header',\n 'tox-comment__date': 'tinymce__oxide--tox-comment__date',\n 'tox-comment__body': 'tinymce__oxide--tox-comment__body',\n 'tox-comment__expander': 'tinymce__oxide--tox-comment__expander',\n 'tox-comment__buttonspacing': 'tinymce__oxide--tox-comment__buttonspacing',\n 'tox-comment-thread__overlay': 'tinymce__oxide--tox-comment-thread__overlay',\n 'tox-comment__reply': 'tinymce__oxide--tox-comment__reply',\n 'tox-comment__edit': 'tinymce__oxide--tox-comment__edit',\n 'tox-comment__gradient': 'tinymce__oxide--tox-comment__gradient',\n 'tox-comment__overlay': 'tinymce__oxide--tox-comment__overlay',\n 'tox-comment__loading-text': 'tinymce__oxide--tox-comment__loading-text',\n 'tox-comment__overlaytext': 'tinymce__oxide--tox-comment__overlaytext',\n 'tox-comment__busy-spinner': 'tinymce__oxide--tox-comment__busy-spinner',\n 'tox-comment__scroll': 'tinymce__oxide--tox-comment__scroll',\n 'tox-conversations': 'tinymce__oxide--tox-conversations',\n 'tox-user': 'tinymce__oxide--tox-user',\n 'tox-user__avatar': 'tinymce__oxide--tox-user__avatar',\n 'tox-user__name': 'tinymce__oxide--tox-user__name',\n 'tox-dialog-wrap': 'tinymce__oxide--tox-dialog-wrap',\n 'tox-dialog-wrap__backdrop': 'tinymce__oxide--tox-dialog-wrap__backdrop',\n 'tox-dialog-wrap__backdrop--opaque': 'tinymce__oxide--tox-dialog-wrap__backdrop--opaque',\n 'tox-dialog': 'tinymce__oxide--tox-dialog',\n 'tox-force-desktop': 'tinymce__oxide--tox-force-desktop',\n 'tox-dialog-inline': 'tinymce__oxide--tox-dialog-inline',\n 'tox-dialog__header': 'tinymce__oxide--tox-dialog__header',\n 'tox-dialog__draghandle': 'tinymce__oxide--tox-dialog__draghandle',\n 'tox-dialog__dismiss': 'tinymce__oxide--tox-dialog__dismiss',\n 'tox-dialog__title': 'tinymce__oxide--tox-dialog__title',\n 'tox-dialog__body': 'tinymce__oxide--tox-dialog__body',\n 'tox-dialog__body-nav': 'tinymce__oxide--tox-dialog__body-nav',\n 'tox-dialog__body-nav-item': 'tinymce__oxide--tox-dialog__body-nav-item',\n 'tox-dialog__body-nav-item--active': 'tinymce__oxide--tox-dialog__body-nav-item--active',\n 'tox-dialog--width-lg': 'tinymce__oxide--tox-dialog--width-lg',\n 'tox-dialog--width-md': 'tinymce__oxide--tox-dialog--width-md',\n 'tox-dialog__body-content--centered': 'tinymce__oxide--tox-dialog__body-content--centered',\n 'tox-dialog__footer': 'tinymce__oxide--tox-dialog__footer',\n 'tox-dialog__footer-end': 'tinymce__oxide--tox-dialog__footer-end',\n 'tox-dialog__footer-start': 'tinymce__oxide--tox-dialog__footer-start',\n 'tox-dialog__busy-spinner': 'tinymce__oxide--tox-dialog__busy-spinner',\n 'tox-dialog__table': 'tinymce__oxide--tox-dialog__table',\n 'tox-dialog__popups': 'tinymce__oxide--tox-dialog__popups',\n 'tox-dialog__body-iframe': 'tinymce__oxide--tox-dialog__body-iframe',\n 'tox-navobj': 'tinymce__oxide--tox-navobj',\n 'tox-dialog-dock-fadeout': 'tinymce__oxide--tox-dialog-dock-fadeout',\n 'tox-dialog-dock-fadein': 'tinymce__oxide--tox-dialog-dock-fadein',\n 'tox-dialog-dock-transition': 'tinymce__oxide--tox-dialog-dock-transition',\n 'tox-platform-ie': 'tinymce__oxide--tox-platform-ie',\n 'tox-dialog__disable-scroll': 'tinymce__oxide--tox-dialog__disable-scroll',\n 'tox-dropzone-container': 'tinymce__oxide--tox-dropzone-container',\n 'tox-dropzone': 'tinymce__oxide--tox-dropzone',\n 'tox-edit-area': 'tinymce__oxide--tox-edit-area',\n 'tox-edit-area__iframe': 'tinymce__oxide--tox-edit-area__iframe',\n 'tox-inline-edit-area': 'tinymce__oxide--tox-inline-edit-area',\n 'tox-editor-container': 'tinymce__oxide--tox-editor-container',\n 'tox-tinymce--toolbar-bottom': 'tinymce__oxide--tox-tinymce--toolbar-bottom',\n 'tox-tinymce--toolbar-sticky-on': 'tinymce__oxide--tox-tinymce--toolbar-sticky-on',\n 'tox-editor-dock-fadeout': 'tinymce__oxide--tox-editor-dock-fadeout',\n 'tox-editor-dock-fadein': 'tinymce__oxide--tox-editor-dock-fadein',\n 'tox-editor-dock-transition': 'tinymce__oxide--tox-editor-dock-transition',\n 'tox-control-wrap': 'tinymce__oxide--tox-control-wrap',\n 'tox-control-wrap--status-invalid': 'tinymce__oxide--tox-control-wrap--status-invalid',\n 'tox-control-wrap__status-icon-invalid': 'tinymce__oxide--tox-control-wrap__status-icon-invalid',\n 'tox-control-wrap--status-unknown': 'tinymce__oxide--tox-control-wrap--status-unknown',\n 'tox-control-wrap__status-icon-unknown': 'tinymce__oxide--tox-control-wrap__status-icon-unknown',\n 'tox-control-wrap--status-valid': 'tinymce__oxide--tox-control-wrap--status-valid',\n 'tox-control-wrap__status-icon-valid': 'tinymce__oxide--tox-control-wrap__status-icon-valid',\n 'tox-control-wrap__status-icon-wrap': 'tinymce__oxide--tox-control-wrap__status-icon-wrap',\n 'tox-textfield': 'tinymce__oxide--tox-textfield',\n 'tox-autocompleter': 'tinymce__oxide--tox-autocompleter',\n 'tox-menu': 'tinymce__oxide--tox-menu',\n 'tox-autocompleter-highlight': 'tinymce__oxide--tox-autocompleter-highlight',\n 'tox-color-input': 'tinymce__oxide--tox-color-input',\n 'tox-label': 'tinymce__oxide--tox-label',\n 'tox-toolbar-label': 'tinymce__oxide--tox-toolbar-label',\n 'tox-form': 'tinymce__oxide--tox-form',\n 'tox-form-group--maximize': 'tinymce__oxide--tox-form-group--maximize',\n 'tox-form__group--error': 'tinymce__oxide--tox-form__group--error',\n 'tox-form__group--collection': 'tinymce__oxide--tox-form__group--collection',\n 'tox-form__grid': 'tinymce__oxide--tox-form__grid',\n 'tox-form__grid--2col': 'tinymce__oxide--tox-form__grid--2col',\n 'tox-form__grid--3col': 'tinymce__oxide--tox-form__grid--3col',\n 'tox-form__grid--4col': 'tinymce__oxide--tox-form__grid--4col',\n 'tox-form__controls-h-stack': 'tinymce__oxide--tox-form__controls-h-stack',\n 'tox-form__group--inline': 'tinymce__oxide--tox-form__group--inline',\n 'tox-form__group--stretched': 'tinymce__oxide--tox-form__group--stretched',\n 'tox-textarea': 'tinymce__oxide--tox-textarea',\n 'tox-lock': 'tinymce__oxide--tox-lock',\n 'tox-locked': 'tinymce__oxide--tox-locked',\n 'tox-lock-icon__unlock': 'tinymce__oxide--tox-lock-icon__unlock',\n 'tox-lock-icon__lock': 'tinymce__oxide--tox-lock-icon__lock',\n 'tox-listboxfield': 'tinymce__oxide--tox-listboxfield',\n 'tox-listbox--select': 'tinymce__oxide--tox-listbox--select',\n 'tox-toolbar-textfield': 'tinymce__oxide--tox-toolbar-textfield',\n 'tox-naked-btn': 'tinymce__oxide--tox-naked-btn',\n 'tox-listbox__select-label': 'tinymce__oxide--tox-listbox__select-label',\n 'tox-listbox__select-chevron': 'tinymce__oxide--tox-listbox__select-chevron',\n 'tox-selectfield': 'tinymce__oxide--tox-selectfield',\n 'tox-fullscreen': 'tinymce__oxide--tox-fullscreen',\n 'tox-statusbar__resize-handle': 'tinymce__oxide--tox-statusbar__resize-handle',\n 'tox-shadowhost': 'tinymce__oxide--tox-shadowhost',\n 'tox-help__more-link': 'tinymce__oxide--tox-help__more-link',\n 'tox-image-tools': 'tinymce__oxide--tox-image-tools',\n 'tox-image-tools__toolbar': 'tinymce__oxide--tox-image-tools__toolbar',\n 'tox-image-tools__image': 'tinymce__oxide--tox-image-tools__image',\n 'tox-image-tools__image-bg': 'tinymce__oxide--tox-image-tools__image-bg',\n 'tox-spacer': 'tinymce__oxide--tox-spacer',\n 'tox-croprect-block': 'tinymce__oxide--tox-croprect-block',\n 'tox-croprect-handle': 'tinymce__oxide--tox-croprect-handle',\n 'tox-croprect-handle-move': 'tinymce__oxide--tox-croprect-handle-move',\n 'tox-croprect-handle-nw': 'tinymce__oxide--tox-croprect-handle-nw',\n 'tox-croprect-handle-ne': 'tinymce__oxide--tox-croprect-handle-ne',\n 'tox-croprect-handle-sw': 'tinymce__oxide--tox-croprect-handle-sw',\n 'tox-croprect-handle-se': 'tinymce__oxide--tox-croprect-handle-se',\n 'tox-slider': 'tinymce__oxide--tox-slider',\n 'tox-insert-table-picker': 'tinymce__oxide--tox-insert-table-picker',\n 'tox-insert-table-picker__selected': 'tinymce__oxide--tox-insert-table-picker__selected',\n 'tox-insert-table-picker__label': 'tinymce__oxide--tox-insert-table-picker__label',\n 'tox-menu__label': 'tinymce__oxide--tox-menu__label',\n 'tox-menubar': 'tinymce__oxide--tox-menubar',\n 'tox-mbtn': 'tinymce__oxide--tox-mbtn',\n 'tox-mbtn--active': 'tinymce__oxide--tox-mbtn--active',\n 'tox-mbtn__select-label': 'tinymce__oxide--tox-mbtn__select-label',\n 'tox-mbtn__select-chevron': 'tinymce__oxide--tox-mbtn__select-chevron',\n 'tox-notification': 'tinymce__oxide--tox-notification',\n 'tox-notification--in': 'tinymce__oxide--tox-notification--in',\n 'tox-notification--success': 'tinymce__oxide--tox-notification--success',\n 'tox-notification--error': 'tinymce__oxide--tox-notification--error',\n 'tox-notification--warn': 'tinymce__oxide--tox-notification--warn',\n 'tox-notification--warning': 'tinymce__oxide--tox-notification--warning',\n 'tox-notification--info': 'tinymce__oxide--tox-notification--info',\n 'tox-notification__body': 'tinymce__oxide--tox-notification__body',\n 'tox-notification__icon': 'tinymce__oxide--tox-notification__icon',\n 'tox-notification__dismiss': 'tinymce__oxide--tox-notification__dismiss',\n 'tox-progress-bar': 'tinymce__oxide--tox-progress-bar',\n 'tox-pop': 'tinymce__oxide--tox-pop',\n 'tox-pop--resizing': 'tinymce__oxide--tox-pop--resizing',\n 'tox-pop__dialog': 'tinymce__oxide--tox-pop__dialog',\n 'tox-pop--bottom': 'tinymce__oxide--tox-pop--bottom',\n 'tox-pop--top': 'tinymce__oxide--tox-pop--top',\n 'tox-pop--left': 'tinymce__oxide--tox-pop--left',\n 'tox-pop--right': 'tinymce__oxide--tox-pop--right',\n 'tox-pop--align-left': 'tinymce__oxide--tox-pop--align-left',\n 'tox-pop--align-right': 'tinymce__oxide--tox-pop--align-right',\n 'tox-sidebar-wrap': 'tinymce__oxide--tox-sidebar-wrap',\n 'tox-sidebar': 'tinymce__oxide--tox-sidebar',\n 'tox-sidebar__slider': 'tinymce__oxide--tox-sidebar__slider',\n 'tox-sidebar__pane-container': 'tinymce__oxide--tox-sidebar__pane-container',\n 'tox-sidebar__pane': 'tinymce__oxide--tox-sidebar__pane',\n 'tox-sidebar--sliding-closed': 'tinymce__oxide--tox-sidebar--sliding-closed',\n 'tox-sidebar--sliding-open': 'tinymce__oxide--tox-sidebar--sliding-open',\n 'tox-sidebar--sliding-growing': 'tinymce__oxide--tox-sidebar--sliding-growing',\n 'tox-sidebar--sliding-shrinking': 'tinymce__oxide--tox-sidebar--sliding-shrinking',\n 'tox-selector': 'tinymce__oxide--tox-selector',\n 'tox-platform-touch': 'tinymce__oxide--tox-platform-touch',\n 'tox-slider__rail': 'tinymce__oxide--tox-slider__rail',\n 'tox-slider__handle': 'tinymce__oxide--tox-slider__handle',\n 'tox-source-code': 'tinymce__oxide--tox-source-code',\n 'tox-spinner': 'tinymce__oxide--tox-spinner',\n 'tam-bouncing-dots': 'tinymce__oxide--tam-bouncing-dots',\n 'tox-statusbar': 'tinymce__oxide--tox-statusbar',\n 'tox-statusbar__text-container': 'tinymce__oxide--tox-statusbar__text-container',\n 'tox-statusbar__path': 'tinymce__oxide--tox-statusbar__path',\n 'tox-statusbar__wordcount': 'tinymce__oxide--tox-statusbar__wordcount',\n 'tox-statusbar__path-item': 'tinymce__oxide--tox-statusbar__path-item',\n 'tox-statusbar__branding': 'tinymce__oxide--tox-statusbar__branding',\n 'tox-throbber': 'tinymce__oxide--tox-throbber',\n 'tox-throbber__busy-spinner': 'tinymce__oxide--tox-throbber__busy-spinner',\n 'tox-tbtn': 'tinymce__oxide--tox-tbtn',\n 'tox-tbtn-more': 'tinymce__oxide--tox-tbtn-more',\n 'tox-tbtn--disabled': 'tinymce__oxide--tox-tbtn--disabled',\n 'tox-tbtn--enabled': 'tinymce__oxide--tox-tbtn--enabled',\n 'tox-tbtn--md': 'tinymce__oxide--tox-tbtn--md',\n 'tox-tbtn--lg': 'tinymce__oxide--tox-tbtn--lg',\n 'tox-tbtn--return': 'tinymce__oxide--tox-tbtn--return',\n 'tox-tbtn--labeled': 'tinymce__oxide--tox-tbtn--labeled',\n 'tox-tbtn__vlabel': 'tinymce__oxide--tox-tbtn__vlabel',\n 'tox-tbtn--select': 'tinymce__oxide--tox-tbtn--select',\n 'tox-tbtn__select-label': 'tinymce__oxide--tox-tbtn__select-label',\n 'tox-tbtn__select-chevron': 'tinymce__oxide--tox-tbtn__select-chevron',\n 'tox-tbtn--bespoke': 'tinymce__oxide--tox-tbtn--bespoke',\n 'tox-split-button': 'tinymce__oxide--tox-split-button',\n 'tox-split-button__chevron': 'tinymce__oxide--tox-split-button__chevron',\n 'tox-toolbar-overlord': 'tinymce__oxide--tox-toolbar-overlord',\n 'tox-toolbar__overflow--closed': 'tinymce__oxide--tox-toolbar__overflow--closed',\n 'tox-toolbar__overflow--growing': 'tinymce__oxide--tox-toolbar__overflow--growing',\n 'tox-toolbar__overflow--shrinking': 'tinymce__oxide--tox-toolbar__overflow--shrinking',\n 'tox-toolbar--scrolling': 'tinymce__oxide--tox-toolbar--scrolling',\n 'tox-toolbar--no-divider': 'tinymce__oxide--tox-toolbar--no-divider',\n 'tox-tbtn__icon-rtl': 'tinymce__oxide--tox-tbtn__icon-rtl',\n 'tox-toolbar__group': 'tinymce__oxide--tox-toolbar__group',\n 'tox-toolbar__group--pull-right': 'tinymce__oxide--tox-toolbar__group--pull-right',\n 'tox-tooltip': 'tinymce__oxide--tox-tooltip',\n 'tox-tooltip__body': 'tinymce__oxide--tox-tooltip__body',\n 'tox-tooltip__arrow': 'tinymce__oxide--tox-tooltip__arrow',\n 'tox-tooltip--down': 'tinymce__oxide--tox-tooltip--down',\n 'tox-tooltip--up': 'tinymce__oxide--tox-tooltip--up',\n 'tox-tooltip--right': 'tinymce__oxide--tox-tooltip--right',\n 'tox-tooltip--left': 'tinymce__oxide--tox-tooltip--left',\n 'tox-well': 'tinymce__oxide--tox-well',\n 'tox-custom-editor': 'tinymce__oxide--tox-custom-editor',\n 'tox-dialog-loading': 'tinymce__oxide--tox-dialog-loading',\n 'tox-tab': 'tinymce__oxide--tox-tab',\n 'tox-dialog__content-js': 'tinymce__oxide--tox-dialog__content-js',\n 'tox-image-tools-edit-panel': 'tinymce__oxide--tox-image-tools-edit-panel',\n 'tox-image-tools__sidebar': 'tinymce__oxide--tox-image-tools__sidebar'\n};\nconst contentCSSBinding = {\n componentId: 'bKkob',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n cursor: default;\n display: inline-block;\n height: 12px !important;\n padding: 0 2px;\n -webkit-user-modify: read-only;\n -moz-user-modify: read-only;\n -webkit-user-select: all;\n user-select: all;\n width: 8px !important;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor[data-mce-selected] {\n outline-offset: 1px;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment {\n background-color: #fff0b7;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment--active {\n background-color: #ffe168;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden) {\n list-style: none;\n margin: 0.25em 0;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n cursor: pointer;\n height: 1em;\n margin-left: -1.5em;\n margin-top: 0.125em;\n position: absolute;\n width: 1em;\n}\n.tinymce__oxide--tox-checklist li:not(.tinymce__oxide--tox-checklist--hidden).tinymce__oxide--tox-checklist--checked::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n}\n[dir=rtl] .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n margin-left: 0;\n margin-right: -1.5em;\n}\n\n\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n color: black;\n background: none;\n text-shadow: 0 1px white;\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n font-size: 1em;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n tab-size: 4;\n -webkit-hyphens: none;\n hyphens: none;\n}\n[dir=\"ltr\"] code[class*=\"language-\"],\n[dir=\"ltr\"] pre[class*=\"language-\"] {\n text-align: left;\n}\n[dir=\"rtl\"] code[class*=\"language-\"],\n[dir=\"rtl\"] pre[class*=\"language-\"] {\n text-align: left;\n}\npre[class*=\"language-\"]::selection,\npre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection,\ncode[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: #b3d4fc;\n}\n@media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n}\n\npre[class*=\"language-\"] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n}\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n background: #f5f2f0;\n}\n\n:not(pre) > code[class*=\"language-\"] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n}\n.tinymce__oxide--token.tinymce__oxide--comment,\n.tinymce__oxide--token.tinymce__oxide--prolog,\n.tinymce__oxide--token.tinymce__oxide--doctype,\n.tinymce__oxide--token.tinymce__oxide--cdata {\n color: slategray;\n}\n.tinymce__oxide--token.tinymce__oxide--punctuation {\n color: #999;\n}\n.tinymce__oxide--namespace {\n opacity: 0.7;\n}\n.tinymce__oxide--token.tinymce__oxide--property,\n.tinymce__oxide--token.tinymce__oxide--tag,\n.tinymce__oxide--token.tinymce__oxide--boolean,\n.tinymce__oxide--token.tinymce__oxide--number,\n.tinymce__oxide--token.tinymce__oxide--constant,\n.tinymce__oxide--token.tinymce__oxide--symbol,\n.tinymce__oxide--token.tinymce__oxide--deleted {\n color: #905;\n}\n.tinymce__oxide--token.tinymce__oxide--selector,\n.tinymce__oxide--token.tinymce__oxide--attr-name,\n.tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--token.tinymce__oxide--char,\n.tinymce__oxide--token.tinymce__oxide--builtin,\n.tinymce__oxide--token.tinymce__oxide--inserted {\n color: #690;\n}\n.tinymce__oxide--token.tinymce__oxide--operator,\n.tinymce__oxide--token.tinymce__oxide--entity,\n.tinymce__oxide--token.tinymce__oxide--url,\n.tinymce__oxide--language-css .tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--style .tinymce__oxide--token.tinymce__oxide--string {\n color: #9a6e3a;\n background: hsla(0, 0%, 100%, 0.5);\n}\n.tinymce__oxide--token.tinymce__oxide--atrule,\n.tinymce__oxide--token.tinymce__oxide--attr-value,\n.tinymce__oxide--token.tinymce__oxide--keyword {\n color: #07a;\n}\n.tinymce__oxide--token.tinymce__oxide--function,\n.tinymce__oxide--token.tinymce__oxide--class-name {\n color: #DD4A68;\n}\n.tinymce__oxide--token.tinymce__oxide--regex,\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--variable {\n color: #e90;\n}\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--bold {\n font-weight: bold;\n}\n.tinymce__oxide--token.tinymce__oxide--italic {\n font-style: italic;\n}\n.tinymce__oxide--token.tinymce__oxide--entity {\n cursor: help;\n}\n\n.tinymce__oxide--mce-content-body {\n overflow-wrap: break-word;\n word-wrap: break-word;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret {\n background-color: black;\n background-color: currentColor;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret-hidden {\n display: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-caret] {\n left: -1000px;\n margin: 0;\n padding: 0;\n position: absolute;\n right: auto;\n top: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-offscreen-selection {\n left: -2000000px;\n max-width: 1000000px;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] {\n cursor: default;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=true] {\n cursor: text;\n}\n.tinymce__oxide--tox-cursor-format-painter {\n cursor: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A\"), default;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--image.tinymce__oxide--align-center {\n display: table;\n margin-left: auto;\n margin-right: auto;\n}\n.tinymce__oxide--mce-preview-object {\n border: 1px solid gray;\n display: inline-block;\n line-height: 0;\n margin: 0 2px 0 2px;\n position: relative;\n}\n.tinymce__oxide--mce-preview-object .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-preview-object[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--mce-object {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n border: 1px dashed #aaa;\n}\n.tinymce__oxide--mce-pagebreak {\n border: 1px dashed #aaa;\n cursor: default;\n display: block;\n height: 5px;\n margin-top: 15px;\n page-break-before: always;\n width: 100%;\n}\n@media print {\n .tinymce__oxide--mce-pagebreak {\n border: 0;\n }\n}\n.tinymce__oxide--tiny-pageembed .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--tiny-pageembed {\n display: inline-block;\n position: relative;\n}\n.tinymce__oxide--tiny-pageembed--21by9,\n.tinymce__oxide--tiny-pageembed--16by9,\n.tinymce__oxide--tiny-pageembed--4by3,\n.tinymce__oxide--tiny-pageembed--1by1 {\n display: block;\n overflow: hidden;\n padding: 0;\n position: relative;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 {\n padding-top: 42.857143%;\n}\n.tinymce__oxide--tiny-pageembed--16by9 {\n padding-top: 56.25%;\n}\n.tinymce__oxide--tiny-pageembed--4by3 {\n padding-top: 75%;\n}\n.tinymce__oxide--tiny-pageembed--1by1 {\n padding-top: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 iframe,\n.tinymce__oxide--tiny-pageembed--16by9 iframe,\n.tinymce__oxide--tiny-pageembed--4by3 iframe,\n.tinymce__oxide--tiny-pageembed--1by1 iframe {\n border: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n color: rgba(34, 47, 62, 0.7);\n content: attr(data-mce-placeholder);\n position: absolute;\n}\n.tinymce__oxide--mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n left: 1px;\n}\n.tinymce__oxide--mce-content-body[dir=rtl][data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n right: 1px;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle {\n background-color: #4099ff;\n border-color: #4099ff;\n border-style: solid;\n border-width: 1px;\n box-sizing: border-box;\n height: 10px;\n position: absolute;\n width: 10px;\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:hover {\n background-color: #4099ff;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(1) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(2) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(3) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(4) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-backdrop {\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable {\n cursor: default;\n opacity: 0.5;\n outline: 1px dashed black;\n position: absolute;\n z-index: 10001;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns th,\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns td {\n border: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-helper {\n background: #555;\n background: rgba(0, 0, 0, 0.75);\n border: 1px;\n border-radius: 3px;\n color: white;\n display: none;\n font-family: sans-serif;\n font-size: 12px;\n line-height: 14px;\n margin: 5px 10px;\n padding: 5px;\n position: absolute;\n white-space: nowrap;\n z-index: 10002;\n}\n.tinymce__oxide--tox-rtc-user-selection {\n position: relative;\n}\n.tinymce__oxide--tox-rtc-user-cursor {\n bottom: 0;\n cursor: default;\n position: absolute;\n top: 0;\n width: 2px;\n}\n.tinymce__oxide--tox-rtc-user-cursor::before {\n background-color: inherit;\n border-radius: 50%;\n content: '';\n display: block;\n height: 8px;\n position: absolute;\n right: -3px;\n top: -3px;\n width: 8px;\n}\n.tinymce__oxide--tox-rtc-user-cursor:hover::after {\n background-color: inherit;\n border-radius: 100px;\n box-sizing: border-box;\n color: #fff;\n content: attr(data-user);\n display: block;\n font-size: 12px;\n font-weight: bold;\n left: -5px;\n min-height: 8px;\n min-width: 8px;\n padding: 0 12px;\n position: absolute;\n top: -11px;\n white-space: nowrap;\n z-index: 1000;\n}\n.tinymce__oxide--tox-rtc-user-selection--1 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #2dc26b;\n}\n.tinymce__oxide--tox-rtc-user-selection--2 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e03e2d;\n}\n.tinymce__oxide--tox-rtc-user-selection--3 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f1c40f;\n}\n.tinymce__oxide--tox-rtc-user-selection--4 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #3598db;\n}\n.tinymce__oxide--tox-rtc-user-selection--5 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #b96ad9;\n}\n.tinymce__oxide--tox-rtc-user-selection--6 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e67e23;\n}\n.tinymce__oxide--tox-rtc-user-selection--7 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #aaa69d;\n}\n.tinymce__oxide--tox-rtc-user-selection--8 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f368e0;\n}\n.tinymce__oxide--tox-rtc-remote-image {\n background: #eaeaea url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A\") no-repeat center center;\n border: 1px solid #ccc;\n min-height: 240px;\n min-width: 320px;\n}\n.tinymce__oxide--mce-match-marker {\n background: #aaa;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected::selection {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-content-body img[data-mce-selected],\n.tinymce__oxide--mce-content-body video[data-mce-selected],\n.tinymce__oxide--mce-content-body audio[data-mce-selected],\n.tinymce__oxide--mce-content-body object[data-mce-selected],\n.tinymce__oxide--mce-content-body embed[data-mce-selected],\n.tinymce__oxide--mce-content-body table[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body hr[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n outline-offset: 1px;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false][data-mce-selected] {\n cursor: not-allowed;\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:focus,\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:hover {\n outline: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-selected=\"inline-boundary\"] {\n background-color: #b4d7ff;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-edit-focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected],\n.tinymce__oxide--mce-content-body th[data-mce-selected] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::selection,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::selection {\n background: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected] *,\n.tinymce__oxide--mce-content-body th[data-mce-selected] * {\n outline: none;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n background-color: rgba(180, 215, 255, 0.7);\n border: 1px solid rgba(180, 215, 255, 0.7);\n bottom: -1px;\n content: '';\n left: -1px;\n mix-blend-mode: multiply;\n position: absolute;\n right: -1px;\n top: -1px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n .tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n border-color: rgba(0, 84, 180, 0.7);\n }\n}\n.tinymce__oxide--mce-content-body img::selection {\n background: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar {\n background-color: #b4d7ff;\n opacity: 0;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-cols {\n cursor: col-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-rows {\n cursor: row-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar.tinymce__oxide--ephox-snooker-resizer-bar-dragging {\n opacity: 1;\n}\n.tinymce__oxide--mce-spellchecker-word {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n height: 2rem;\n}\n.tinymce__oxide--mce-spellchecker-grammar {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n}\n.tinymce__oxide--mce-toc {\n border: 1px solid gray;\n}\n.tinymce__oxide--mce-toc h2 {\n margin: 4px;\n}\n.tinymce__oxide--mce-toc li {\n list-style-type: none;\n}\ntable[style*=\"border-width: 0px\"],\n.tinymce__oxide--mce-item-table:not([border]),\n.tinymce__oxide--mce-item-table[border=\"0\"],\ntable[style*=\"border-width: 0px\"] td,\n.tinymce__oxide--mce-item-table:not([border]) td,\n.tinymce__oxide--mce-item-table[border=\"0\"] td,\ntable[style*=\"border-width: 0px\"] th,\n.tinymce__oxide--mce-item-table:not([border]) th,\n.tinymce__oxide--mce-item-table[border=\"0\"] th,\ntable[style*=\"border-width: 0px\"] caption,\n.tinymce__oxide--mce-item-table:not([border]) caption,\n.tinymce__oxide--mce-item-table[border=\"0\"] caption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks p,\n.tinymce__oxide--mce-visualblocks h1,\n.tinymce__oxide--mce-visualblocks h2,\n.tinymce__oxide--mce-visualblocks h3,\n.tinymce__oxide--mce-visualblocks h4,\n.tinymce__oxide--mce-visualblocks h5,\n.tinymce__oxide--mce-visualblocks h6,\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks section,\n.tinymce__oxide--mce-visualblocks article,\n.tinymce__oxide--mce-visualblocks blockquote,\n.tinymce__oxide--mce-visualblocks address,\n.tinymce__oxide--mce-visualblocks pre,\n.tinymce__oxide--mce-visualblocks figure,\n.tinymce__oxide--mce-visualblocks figcaption,\n.tinymce__oxide--mce-visualblocks hgroup,\n.tinymce__oxide--mce-visualblocks aside,\n.tinymce__oxide--mce-visualblocks ul,\n.tinymce__oxide--mce-visualblocks ol,\n.tinymce__oxide--mce-visualblocks dl {\n background-repeat: no-repeat;\n border: 1px dashed #bbb;\n margin-left: 3px;\n padding-top: 10px;\n}\n.tinymce__oxide--mce-visualblocks p {\n background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);\n}\n.tinymce__oxide--mce-visualblocks h1 {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks h2 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h3 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);\n}\n.tinymce__oxide--mce-visualblocks h4 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h5 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h6 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]) {\n background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);\n}\n.tinymce__oxide--mce-visualblocks section {\n background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);\n}\n.tinymce__oxide--mce-visualblocks article {\n background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);\n}\n.tinymce__oxide--mce-visualblocks blockquote {\n background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);\n}\n.tinymce__oxide--mce-visualblocks address {\n background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);\n}\n.tinymce__oxide--mce-visualblocks pre {\n background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks figure {\n background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);\n}\n.tinymce__oxide--mce-visualblocks figcaption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks hgroup {\n background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);\n}\n.tinymce__oxide--mce-visualblocks aside {\n background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);\n}\n.tinymce__oxide--mce-visualblocks ul {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);\n}\n.tinymce__oxide--mce-visualblocks ol {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks dl {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) p,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h1,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h2,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h3,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h4,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h5,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h6,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) section,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) article,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) blockquote,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) address,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) pre,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figure,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figcaption,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) hgroup,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) aside,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ul,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ol,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) dl {\n margin-left: 3px;\n}\n.tinymce__oxide--mce-visualblocks[dir=rtl] p,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h1,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h2,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h3,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h4,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h5,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h6,\n.tinymce__oxide--mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks[dir=rtl] section,\n.tinymce__oxide--mce-visualblocks[dir=rtl] article,\n.tinymce__oxide--mce-visualblocks[dir=rtl] blockquote,\n.tinymce__oxide--mce-visualblocks[dir=rtl] address,\n.tinymce__oxide--mce-visualblocks[dir=rtl] pre,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figure,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figcaption,\n.tinymce__oxide--mce-visualblocks[dir=rtl] hgroup,\n.tinymce__oxide--mce-visualblocks[dir=rtl] aside,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ul,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ol,\n.tinymce__oxide--mce-visualblocks[dir=rtl] dl {\n background-position-x: right;\n margin-right: 3px;\n}\n.tinymce__oxide--mce-nbsp,\n.tinymce__oxide--mce-shy {\n background: #aaa;\n}\n.tinymce__oxide--mce-shy::after {\n content: '-';\n}\nbody {\n font-family: sans-serif;\n}\ntable {\n border-collapse: collapse;\n}\n`;\n },\n 'mce-content-body': 'tinymce__oxide--mce-content-body',\n 'mce-item-anchor': 'tinymce__oxide--mce-item-anchor',\n 'tox-comments-visible': 'tinymce__oxide--tox-comments-visible',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment--active': 'tinymce__oxide--tox-comment--active',\n 'tox-checklist': 'tinymce__oxide--tox-checklist',\n 'tox-checklist--hidden': 'tinymce__oxide--tox-checklist--hidden',\n 'tox-checklist--checked': 'tinymce__oxide--tox-checklist--checked',\n 'token': 'tinymce__oxide--token',\n 'comment': 'tinymce__oxide--comment',\n 'prolog': 'tinymce__oxide--prolog',\n 'doctype': 'tinymce__oxide--doctype',\n 'cdata': 'tinymce__oxide--cdata',\n 'punctuation': 'tinymce__oxide--punctuation',\n 'namespace': 'tinymce__oxide--namespace',\n 'property': 'tinymce__oxide--property',\n 'tag': 'tinymce__oxide--tag',\n 'boolean': 'tinymce__oxide--boolean',\n 'number': 'tinymce__oxide--number',\n 'constant': 'tinymce__oxide--constant',\n 'symbol': 'tinymce__oxide--symbol',\n 'deleted': 'tinymce__oxide--deleted',\n 'selector': 'tinymce__oxide--selector',\n 'attr-name': 'tinymce__oxide--attr-name',\n 'string': 'tinymce__oxide--string',\n 'char': 'tinymce__oxide--char',\n 'builtin': 'tinymce__oxide--builtin',\n 'inserted': 'tinymce__oxide--inserted',\n 'operator': 'tinymce__oxide--operator',\n 'entity': 'tinymce__oxide--entity',\n 'url': 'tinymce__oxide--url',\n 'language-css': 'tinymce__oxide--language-css',\n 'style': 'tinymce__oxide--style',\n 'atrule': 'tinymce__oxide--atrule',\n 'attr-value': 'tinymce__oxide--attr-value',\n 'keyword': 'tinymce__oxide--keyword',\n 'function': 'tinymce__oxide--function',\n 'class-name': 'tinymce__oxide--class-name',\n 'regex': 'tinymce__oxide--regex',\n 'important': 'tinymce__oxide--important',\n 'variable': 'tinymce__oxide--variable',\n 'bold': 'tinymce__oxide--bold',\n 'italic': 'tinymce__oxide--italic',\n 'mce-visual-caret': 'tinymce__oxide--mce-visual-caret',\n 'mce-visual-caret-hidden': 'tinymce__oxide--mce-visual-caret-hidden',\n 'mce-offscreen-selection': 'tinymce__oxide--mce-offscreen-selection',\n 'tox-cursor-format-painter': 'tinymce__oxide--tox-cursor-format-painter',\n 'align-left': 'tinymce__oxide--align-left',\n 'align-right': 'tinymce__oxide--align-right',\n 'image': 'tinymce__oxide--image',\n 'align-center': 'tinymce__oxide--align-center',\n 'mce-preview-object': 'tinymce__oxide--mce-preview-object',\n 'mce-shim': 'tinymce__oxide--mce-shim',\n 'mce-object': 'tinymce__oxide--mce-object',\n 'mce-pagebreak': 'tinymce__oxide--mce-pagebreak',\n 'tiny-pageembed': 'tinymce__oxide--tiny-pageembed',\n 'tiny-pageembed--21by9': 'tinymce__oxide--tiny-pageembed--21by9',\n 'tiny-pageembed--16by9': 'tinymce__oxide--tiny-pageembed--16by9',\n 'tiny-pageembed--4by3': 'tinymce__oxide--tiny-pageembed--4by3',\n 'tiny-pageembed--1by1': 'tinymce__oxide--tiny-pageembed--1by1',\n 'mce-visualblocks': 'tinymce__oxide--mce-visualblocks',\n 'mce-resizehandle': 'tinymce__oxide--mce-resizehandle',\n 'mce-resize-backdrop': 'tinymce__oxide--mce-resize-backdrop',\n 'mce-clonedresizable': 'tinymce__oxide--mce-clonedresizable',\n 'mce-resizetable-columns': 'tinymce__oxide--mce-resizetable-columns',\n 'mce-resize-helper': 'tinymce__oxide--mce-resize-helper',\n 'tox-rtc-user-selection': 'tinymce__oxide--tox-rtc-user-selection',\n 'tox-rtc-user-cursor': 'tinymce__oxide--tox-rtc-user-cursor',\n 'tox-rtc-user-selection--1': 'tinymce__oxide--tox-rtc-user-selection--1',\n 'tox-rtc-user-selection--2': 'tinymce__oxide--tox-rtc-user-selection--2',\n 'tox-rtc-user-selection--3': 'tinymce__oxide--tox-rtc-user-selection--3',\n 'tox-rtc-user-selection--4': 'tinymce__oxide--tox-rtc-user-selection--4',\n 'tox-rtc-user-selection--5': 'tinymce__oxide--tox-rtc-user-selection--5',\n 'tox-rtc-user-selection--6': 'tinymce__oxide--tox-rtc-user-selection--6',\n 'tox-rtc-user-selection--7': 'tinymce__oxide--tox-rtc-user-selection--7',\n 'tox-rtc-user-selection--8': 'tinymce__oxide--tox-rtc-user-selection--8',\n 'tox-rtc-remote-image': 'tinymce__oxide--tox-rtc-remote-image',\n 'mce-match-marker': 'tinymce__oxide--mce-match-marker',\n 'mce-match-marker-selected': 'tinymce__oxide--mce-match-marker-selected',\n 'mce-content-readonly': 'tinymce__oxide--mce-content-readonly',\n 'mce-edit-focus': 'tinymce__oxide--mce-edit-focus',\n 'ephox-snooker-resizer-bar': 'tinymce__oxide--ephox-snooker-resizer-bar',\n 'ephox-snooker-resizer-cols': 'tinymce__oxide--ephox-snooker-resizer-cols',\n 'ephox-snooker-resizer-rows': 'tinymce__oxide--ephox-snooker-resizer-rows',\n 'ephox-snooker-resizer-bar-dragging': 'tinymce__oxide--ephox-snooker-resizer-bar-dragging',\n 'mce-spellchecker-word': 'tinymce__oxide--mce-spellchecker-word',\n 'mce-spellchecker-grammar': 'tinymce__oxide--mce-spellchecker-grammar',\n 'mce-toc': 'tinymce__oxide--mce-toc',\n 'mce-item-table': 'tinymce__oxide--mce-item-table',\n 'mce-nbsp': 'tinymce__oxide--mce-nbsp',\n 'mce-shy': 'tinymce__oxide--mce-shy'\n};\nconst RestoreAutoSaveModal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(69)]).then(__webpack_require__.bind(null, /*! ./RestoreAutoSaveModal */ \"./src/rce/RestoreAutoSaveModal.js\")));\nconst RceHtmlEditor = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(26), __webpack_require__.e(68)]).then(__webpack_require__.bind(null, /*! ./RceHtmlEditor */ \"./src/rce/RceHtmlEditor.js\")));\nconst ASYNC_FOCUS_TIMEOUT = 250;\nconst DEFAULT_RCE_HEIGHT = '400px';\nconst toolbarPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // name of the toolbar the items are added to\n // if this toolbar doesn't exist, it is created\n // tinymce toolbar config does not\n // include a key to identify the individual toolbars, just a name\n // which is translated. This toolbar's name must be translated\n // in order to be merged correctly.\n name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n // items added to the toolbar\n // each is the name of the button some plugin has\n // registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string).isRequired\n}));\nconst menuPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.objectOf( // the key is the name of the menu item a plugin has\n// registered with tinymce. If it does not exist in the\n// default menubar, it will be added.\nprop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // if this is a new menu in the menubar, title is it's label.\n // if these are items being merged into an existing menu, title is ignored\n title: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // items is a space separated list it menu_items\n // some plugin has registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n}));\nconst ltiToolsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // id of the tool\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n // is this a favorite tool?\n favorite: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n}));\nconst editorOptionsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // height of the RCE.\n // if a number interpreted as pixels.\n // if a string as a CSS value.\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]),\n // entries you want merged into the toolbar. See toolBarPropType above.\n toolbar: toolbarPropType,\n // entries you want merged into to the menus. See menuPropType above.\n // If an entry defines a new menu, tinymce's menubar config option will\n // be updated for you. In fact, if you provide an editorOptions.menubar value\n // it will be overwritten.\n menu: menuPropType,\n // additional plugins that get merged into the default list of plugins\n // it is up to you to import the plugin's definition which will\n // register it and any related toolbar or menu entries with tinymce.\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n // is this RCE readonly?\n readonly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\nconst skinCSS = skinCSSBinding.template().replace(/tinymce__oxide--/g, '');\nconst contentCSS = contentCSSBinding.template().replace(/tinymce__oxide--/g, ''); // If we ever get our jest tests configured so they can handle importing real esModules,\n// we can move this to plugins/instructure-ui-icons/plugin.js like the rest.\n\nfunction addKebabIcon(editor) {\n editor.ui.registry.addIcon('more-drawer', `\n <svg viewBox=\"0 0 1920 1920\">\n <path d=\"M1129.412 1637.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.447 75.964-169.412 169.412-169.412 93.448 0 169.412 75.965 169.412 169.412zm0-677.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412zm0-677.647c0 93.447-75.964 169.412-169.412 169.412-93.448 0-169.412-75.965-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412z\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\"/>\n </svg>\n `);\n} // Get oxide the default skin injected into the DOM before the overrides loaded by themeable\n\n\nlet inserted = false;\n\nfunction injectTinySkin() {\n if (inserted) return;\n inserted = true;\n const style = document.createElement('style');\n style.setAttribute('data-skin', 'tiny oxide skin');\n style.appendChild( // the .replace here is because the ui-themeable babel hook adds that prefix to all the class names\n document.createTextNode(skinCSS));\n const beforeMe = document.head.querySelector('style[data-glamor]') || // find instui's themeable stylesheet\n document.head.querySelector('style') || // find any stylesheet\n document.head.firstElementChild;\n document.head.insertBefore(style, beforeMe);\n}\n\nconst editorWrappers = new WeakMap();\n\nfunction focusToolbar(el) {\n const $firstToolbarButton = el.querySelector('.tox-tbtn');\n $firstToolbarButton && $firstToolbarButton.focus();\n}\n\nfunction focusFirstMenuButton(el) {\n const $firstMenu = el.querySelector('.tox-mbtn');\n $firstMenu && $firstMenu.focus();\n}\n\nfunction isElementWithinTable(node) {\n let elem = node;\n\n while (elem) {\n if (elem.tagName === 'TABLE' || elem.tagName === 'TD' || elem.tagName === 'TH') {\n return true;\n }\n\n elem = elem.parentElement;\n }\n\n return false;\n} // determines if localStorage is available for our use.\n// see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n\n\nfunction storageAvailable() {\n let storage;\n\n try {\n storage = window.localStorage;\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return e instanceof DOMException && ( // everything except Firefox\n e.code === 22 || // Firefox\n e.code === 1014 || // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' || // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && // acknowledge QuotaExceededError only if there's something already stored\n storage && storage.length !== 0;\n }\n}\n\nfunction getHtmlEditorCookie() {\n const value = Object(_common_getCookie__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('rce.htmleditor');\n return value === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"] || value === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] ? value : _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"];\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading');\n} // safari implements only the webkit prefixed version of the fullscreen api\n\n\nconst FS_ELEMENT = document.fullscreenElement === undefined ? 'webkitFullscreenElement' : 'fullscreenElement';\nconst FS_REQUEST = document.body.requestFullscreen ? 'requestFullscreen' : 'webkitRequestFullscreen';\nconst FS_EXIT = document.exitFullscreen ? 'exitFullscreen' : 'webkitExitFullscreen';\nlet alertIdValue = 0;\nlet RCEWrapper = (_dec = Object(_instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_skins_theme__WEBPACK_IMPORTED_MODULE_25__[\"default\"], styles), _dec(_class = (_class2 = class RCEWrapper extends react__WEBPACK_IMPORTED_MODULE_2___default.a.Component {\n static getByEditor(editor) {\n return editorWrappers.get(editor);\n }\n\n constructor(props) {\n var _this, _props$editorOptions;\n\n super(props);\n _this = this;\n\n this.onRemove = () => {\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].detachEditor(this);\n this.props.onRemove && this.props.onRemove(this);\n };\n\n this.toggleView = newView => {\n // coming from the menubar, we don't have a newView,\n const wasFullscreen = this._isFullscreen();\n\n if (wasFullscreen) this._exitFullscreen();\n let newState;\n\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]\n };\n }\n\n this.setState(newState, () => {\n if (wasFullscreen) {\n window.setTimeout(() => {\n this._enterFullscreen();\n }, 200); // due to the animation it takes some time for fullscreen to complete\n }\n });\n this.checkAccessibility();\n\n if (newView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] || newView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]) {\n document.cookie = `rce.htmleditor=${newView};path=/;max-age=31536000`;\n } // Emit view change event\n\n\n this.mceInstance().fire(_customEvents__WEBPACK_IMPORTED_MODULE_23__[\"VIEW_CHANGE\"], {\n target: this.editor,\n newView: newState.editorView\n });\n };\n\n this.contentTrayClosing = false;\n this.blurTimer = 0;\n\n this.handleFocusRCE = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurRCE = event => {\n var _this$_elementRef$cur;\n\n if (event.relatedTarget === null) {\n // focus might be moving to tinymce\n this.handleBlur(event);\n }\n\n if (!((_this$_elementRef$cur = this._elementRef.current) !== null && _this$_elementRef$cur !== void 0 && _this$_elementRef$cur.contains(event.relatedTarget))) {\n this.handleBlur(event);\n }\n };\n\n this.handleFocusEditor = (event, _editor) => {\n // use .active to put a focus ring around the content area\n // when the editor has focus. This isn't perfect, but it's\n // what we've got for now.\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.add('active');\n\n this._forceCloseFloatingToolbar();\n\n this.handleFocus(event);\n };\n\n this.handleFocusHtmlEditor = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurEditor = (event, _editor) => {\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.remove('active');\n this.handleBlur(event);\n };\n\n this.handleKey = event => {\n if (event.code === 'F9' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusFirstMenuButton(this._elementRef.current);\n } else if (event.code === 'F10' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusToolbar(this._elementRef.current);\n } else if ((event.code === 'F8' || event.code === 'Digit0') && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.openKBShortcutModal();\n } else if (event.code === 'Escape') {\n this._forceCloseFloatingToolbar();\n\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen'); // turn it off\n } else {\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].hideTrays();\n }\n } else if (['n', 'N', 'd', 'D'].indexOf(event.key) !== -1) {\n // Prevent key events from bubbling up on touch screen device\n event.stopPropagation();\n }\n };\n\n this.handleClickFullscreen = () => {\n if (this._isFullscreen()) {\n this._exitFullscreen();\n } else {\n this._enterFullscreen();\n }\n };\n\n this.handleExternalClick = () => {\n this._forceCloseFloatingToolbar();\n\n Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.checkAccessibility, 1000)();\n };\n\n this.handleInputChange = () => {\n this.checkAccessibility();\n };\n\n this.onInit = (_event, editor) => {\n var _this$props$onInitted, _this$props;\n\n editor.rceWrapper = this;\n this.editor = editor;\n const textarea = this.editor.getElement(); // expected by canvas\n\n textarea.dataset.rich_text = true; // start with the textarea and tinymce in sync\n\n textarea.value = this.getCode();\n textarea.style.height = this.state.height; // Capture click events outside the iframe\n\n document.addEventListener('click', this.handleExternalClick);\n\n if (document.body.classList.contains('Underline-All-Links__enabled')) {\n this.iframe.contentDocument.body.classList.add('Underline-All-Links__enabled');\n }\n\n editor.on('wordCountUpdate', this.onWordCountUpdate); // add an aria-label to the application div that wraps RCE\n // and change role from \"application\" to \"document\" to ensure\n // the editor gets properly picked up by screen readers\n\n const tinyapp = document.querySelector('.tox-tinymce[role=\"application\"]');\n\n if (tinyapp) {\n tinyapp.setAttribute('aria-label', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Content Editor'));\n tinyapp.setAttribute('role', 'document');\n tinyapp.setAttribute('tabIndex', '-1');\n } // Adds a focusout event listener for handling screen reader navigation focus\n\n\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.addEventListener('focusout', e => {\n const leavingHeader = !header.contains(e.relatedTarget);\n\n if (leavingHeader) {\n this.setFocusAbilityForHeader(false);\n }\n });\n }\n\n this.setFocusAbilityForHeader(false); // Probably should do this in tinymce.scss, but we only want it in new rce\n\n textarea.style.resize = 'none';\n editor.on('ExecCommand', this._forceCloseFloatingToolbar);\n editor.on('keydown', this.handleKey);\n editor.on('FullscreenStateChanged', this._toggleFullscreen); // This propagates click events on the editor out of the iframe to the parent\n // document. We need this so that click events get captured properly by instui\n // focus-trapping components, so they properly ignore trapping focus on click.\n\n editor.on('click', () => window.top.document.body.click(), true);\n editor.on('Cut Paste Change input Undo Redo', Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.handleInputChange, 1000));\n this.announceContextToolbars(editor);\n\n if (this.isAutoSaving) {\n this.initAutoSave(editor);\n } // first view\n\n\n this.setEditorView(this.state.editorView); // readonly should have been handled via the init property passed\n // to <Editor>, but it's not.\n\n editor.mode.set(this.props.readOnly ? 'readonly' : 'design'); // Not using iframe_aria_text because compatibility issues.\n // Not using iframe_attrs because library overwriting.\n\n if (this.iframe) {\n this.iframe.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Text Area. Press ALT+0 for Rich Content Editor shortcuts.'));\n }\n\n (_this$props$onInitted = (_this$props = this.props).onInitted) === null || _this$props$onInitted === void 0 ? void 0 : _this$props$onInitted.call(_this$props, editor);\n };\n\n this._toggleFullscreen = event => {\n const header = document.getElementById('header');\n\n if (header) {\n if (event.state) {\n this.setState({\n fullscreenState: {\n headerDisp: header.style.display,\n isTinyFullscreen: true\n }\n });\n header.style.display = 'none';\n } else {\n header.style.display = this.state.fullscreenState.headerDisp;\n this.setState({\n fullscreenState: {\n isTinyFullscreen: false\n }\n });\n }\n } // if we're leaving fullscreen, remove event listeners on the fullscreen element\n\n\n if (!document[FS_ELEMENT] && this.state.fullscreenElem) {\n this.state.fullscreenElem.removeEventListener('fullscreenchange', this._toggleFullscreen);\n this.state.fullscreenElem.removeEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.setState({\n fullscreenState: {\n fullscreenElem: null\n }\n });\n } // if we don't defer setState, the pretty editor's height isn't correct\n // when entering fullscreen\n\n\n window.setTimeout(() => {\n if (document[FS_ELEMENT]) {\n this.setState(state => {\n return {\n fullscreenState: { ...state.fullscreenState,\n fullscreenElem: document[FS_ELEMENT]\n }\n };\n });\n } else {\n this.forceUpdate();\n }\n\n this.focusCurrentView();\n }, 0);\n };\n\n this._forceCloseFloatingToolbar = () => {\n if (this._elementRef.current) {\n const moreButton = this._elementRef.current.querySelector('.tox-toolbar-overlord .tox-toolbar__group:last-child button:last-child');\n\n if (moreButton !== null && moreButton !== void 0 && moreButton.getAttribute('aria-owns')) {\n // the floating toolbar is open\n moreButton.click(); // close the floating toolbar\n\n const editor = this.mceInstance(); // return focus to the editor\n\n editor === null || editor === void 0 ? void 0 : editor.focus();\n }\n }\n };\n\n this.announcing = 0;\n\n this.initAutoSave = editor => {\n this.storage = window.localStorage;\n\n if (this.storage) {\n editor.on('change Undo Redo', this.doAutoSave);\n editor.on('blur', this.doAutoSave);\n this.cleanupAutoSave();\n\n try {\n const autosaved = this.getAutoSaved(this.autoSaveKey);\n\n if (autosaved && autosaved.content) {\n // We'll compare just the text of the autosave content, since\n // Canvas is prone to swizzling images and iframes which will\n // make the editor content and autosave content never match up\n const editorContent = this.patchAutosavedContent(editor.getContent({\n no_events: true\n }), true);\n const autosavedContent = this.patchAutosavedContent(autosaved.content, true);\n\n if (autosavedContent !== editorContent) {\n this.setState({\n confirmAutoSave: true,\n autoSavedContent: this.patchAutosavedContent(autosaved.content)\n });\n } else {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n } catch (ex) {\n // log and ignore\n // eslint-disable-next-line no-console\n console.error('Failed initializing rce autosave', ex);\n }\n }\n };\n\n this.cleanupAutoSave = function () {\n let deleteAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (_this.storage) {\n const expiry = deleteAll ? Date.now() : Date.now() - _this.props.autosave.maxAge;\n let i = 0;\n let key;\n\n while (key = _this.storage.key(i++)) {\n if (/^rceautosave:/.test(key)) {\n const autosaved = _this.getAutoSaved(key);\n\n if (autosaved && autosaved.autosaveTimestamp < expiry) {\n _this.storage.removeItem(key);\n }\n }\n }\n }\n };\n\n this.restoreAutoSave = ans => {\n this.setState({\n confirmAutoSave: false\n }, () => {\n const editor = this.mceInstance();\n\n if (ans) {\n editor.setContent(this.state.autoSavedContent, {});\n }\n\n this.storage.removeItem(this.autoSaveKey);\n });\n this.checkAccessibility();\n };\n\n this.doAutoSave = function (e) {\n let retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (_this.storage) {\n const editor = _this.mceInstance(); // if the editor is empty don't save\n\n\n if (editor.dom.isEmpty(editor.getBody())) {\n return;\n }\n\n const content = editor.getContent({\n no_events: true\n });\n\n try {\n _this.storage.setItem(_this.autoSaveKey, JSON.stringify({\n autosaveTimestamp: Date.now(),\n content\n }));\n } catch (ex) {\n if (!retry) {\n // probably failed because there's not enough space\n // delete up all the other entries and try again\n _this.cleanupAutoSave(true);\n\n _this.doAutoSave(e, true);\n } else {\n console.error('Autosave failed:', ex); // eslint-disable-line no-console\n }\n }\n }\n };\n\n this.onWordCountUpdate = e => {\n this.setState(state => {\n if (e.wordCount.words !== state.wordCount) {\n return {\n wordCount: e.wordCount.words\n };\n } else return null;\n });\n };\n\n this.onNodeChange = e => {\n // This is basically copied out of the tinymce silver theme code for the status bar\n const path = e.parents.filter(p => p.nodeName !== 'BR' && !p.getAttribute('data-mce-bogus') && p.getAttribute('data-mce-type') !== 'bookmark').map(p => p.nodeName.toLowerCase()).reverse();\n this.setState({\n path\n });\n };\n\n this.onEditorChange = (content, _editor) => {\n var _this$props$onContent, _this$props2;\n\n (_this$props$onContent = (_this$props2 = this.props).onContentChange) === null || _this$props$onContent === void 0 ? void 0 : _this$props$onContent.call(_this$props2, content);\n };\n\n this.onResize = (_e, coordinates) => {\n const editor = this.mceInstance();\n\n if (editor) {\n const container = editor.getContainer();\n if (!container) return;\n const currentContainerHeight = Number.parseInt(container.style.height, 10);\n if (isNaN(currentContainerHeight)) return; // eslint-disable-line no-restricted-globals\n\n const modifiedHeight = currentContainerHeight + coordinates.deltaY;\n const newHeight = `${modifiedHeight}px`;\n container.style.height = newHeight;\n this.getTextarea().style.height = newHeight;\n this.setState({\n height: newHeight\n }); // play nice and send the same event that the silver theme would send\n\n editor.fire('ResizeEditor');\n }\n };\n\n this.onA11yChecker = () => {\n // eslint-disable-next-line promise/catch-or-return\n this.a11yCheckerReady.then(() => {\n this.onTinyMCEInstance('openAccessibilityChecker', {\n skip_focus: true\n });\n });\n };\n\n this.checkAccessibility = () => {\n const editor = this.mceInstance();\n editor.execCommand('checkAccessibility', false, {\n done: errors => {\n this.setState({\n a11yErrorsCount: errors.length\n });\n }\n }, {\n skip_focus: true\n });\n };\n\n this.openKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: true,\n KBShortcutFocusReturn: document.activeElement\n });\n };\n\n this.closeKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: false\n });\n };\n\n this.KBShortcutModalExited = () => {\n if (this.state.KBShortcutFocusReturn === this.iframe) {\n // if the iframe has focus, we need to forward it on to tinymce\n this.editor.focus(false);\n } else if (this._showOnFocusButton && document.activeElement === document.body) {\n // when the modal is opened from the showOnFocus button, focus doesn't\n // get automatically returned to the button like it should.\n this._showOnFocusButton.focus();\n } else {\n var _this$_showOnFocusBut;\n\n (_this$_showOnFocusBut = this._showOnFocusButton) === null || _this$_showOnFocusBut === void 0 ? void 0 : _this$_showOnFocusBut.focus();\n }\n };\n\n this.setFocusAbilityForHeader = focusable => {\n // Sets aria-hidden to prevent screen readers focus in RCE menus and toolbar\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.setAttribute('aria-hidden', focusable ? 'false' : 'true');\n }\n };\n\n this.handleTextareaChange = () => {\n if (this.isHidden()) {\n this.setCode(this.textareaValue());\n this.doAutoSave();\n }\n };\n\n this.addAlert = alert => {\n alert.id = alertIdValue++;\n this.setState(state => {\n let messages = state.messages.concat(alert);\n messages = lodash__WEBPACK_IMPORTED_MODULE_4___default.a.uniqBy(messages, 'text'); // Don't show the same message twice\n\n return {\n messages\n };\n });\n };\n\n this.removeAlert = messageId => {\n this.setState(state => {\n const messages = state.messages.filter(message => message.id !== messageId);\n return {\n messages\n };\n });\n };\n\n this.resetAlertId = () => {\n if (this.state.messages.length > 0) {\n throw new Error('There are messages currently, you cannot reset when they are non-zero');\n }\n\n alertIdValue = 0;\n };\n\n this.editor = null; // my tinymce editor instance\n\n this.language = Object(_normalizeLocale__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props.language); // interface consistent with editorBox\n\n this.get_code = this.getCode;\n this.set_code = this.setCode;\n this.insert_code = this.insertCode; // test override points\n\n this.indicator = false;\n this._elementRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._editorPlaceholderRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._prettyHtmlEditorRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._showOnFocusButton = null;\n injectTinySkin();\n let ht = ((_props$editorOptions = props.editorOptions) === null || _props$editorOptions === void 0 ? void 0 : _props$editorOptions.height) || DEFAULT_RCE_HEIGHT;\n\n if (!Number.isNaN(ht)) {\n ht = `${ht}px`;\n }\n\n const currentRCECount = document.querySelectorAll('.rce-wrapper').length;\n const maxInitRenderedRCEs = Number.isNaN(props.maxInitRenderedRCEs) ? RCEWrapper.defaultProps.maxInitRenderedRCEs : props.maxInitRenderedRCEs;\n this.state = {\n path: [],\n wordCount: 0,\n editorView: props.editorView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"],\n shouldShowOnFocusButton: props.renderKBShortcutModal === undefined ? true : props.renderKBShortcutModal,\n KBShortcutModalOpen: false,\n messages: [],\n announcement: null,\n confirmAutoSave: false,\n autoSavedContent: '',\n id: this.props.id || this.props.textareaId || `${Date.now()}`,\n height: ht,\n fullscreenState: {\n headerDisp: 'static',\n isTinyFullscreen: false\n },\n a11yErrorsCount: 0,\n shouldShowEditor: typeof IntersectionObserver === 'undefined' || maxInitRenderedRCEs <= 0 || currentRCECount < maxInitRenderedRCEs\n };\n this.pendingEventHandlers = []; // Get top 2 favorited LTI Tools\n\n this.ltiToolFavorites = this.props.ltiTools.filter(e => e.favorite).map(e => `instructure_external_button_${e.id}`).slice(0, 2) || [];\n this.tinymceInitOptions = this.wrapOptions(props.editorOptions);\n _alertHandler__WEBPACK_IMPORTED_MODULE_29__[\"default\"].alertFunc = this.addAlert;\n this.handleContentTrayClosing = this.handleContentTrayClosing.bind(this);\n this.a11yCheckerReady = Promise.all(/*! import() */[__webpack_require__.e(4), __webpack_require__.e(5), __webpack_require__.e(8), __webpack_require__.e(38)]).then(__webpack_require__.bind(null, /*! ./initA11yChecker */ \"./src/rce/initA11yChecker.js\")).then(initA11yChecker => {\n initA11yChecker.default(this.language);\n this.checkAccessibility();\n }).catch(err => {\n // eslint-disable-next-line no-console\n console.error('Failed initializing a11y checker', err);\n });\n }\n\n getCanvasUrl() {\n if (!this.canvasUrl) this.canvasUrl = Object(_getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__[\"getCanvasUrl\"])(this.props.trayProps);\n return this.canvasUrl.then(url => {\n if (!url) {\n console.warn('Could not determine Canvas base URL.', 'Content will be referenced by relative URL.');\n }\n\n return url;\n });\n } // getCode and setCode naming comes from tinyMCE\n // kind of strange but want to be consistent\n\n\n getCode() {\n return this.isHidden() ? this.textareaValue() : this.mceInstance().getContent();\n }\n\n checkReadyToGetCode(promptFunc) {\n let status = true; // Check for remaining placeholders\n\n if (this.mceInstance().dom.doc.querySelector(`[data-placeholder-for]`)) {\n status = promptFunc(Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content is still being uploaded, if you continue it will not be embedded properly.'));\n }\n\n return status;\n }\n\n setCode(newContent) {\n var _this$mceInstance;\n\n (_this$mceInstance = this.mceInstance()) === null || _this$mceInstance === void 0 ? void 0 : _this$mceInstance.setContent(newContent);\n } // This function is called imperatively by the page that renders the RCE.\n // It should be called when the RCE content is done being edited.\n\n\n RCEClosed() {\n // We want to clear the autosaved content, since the page was legitimately closed.\n if (this.storage) {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n\n indicateEditor(element) {\n if (document.querySelector('[role=\"dialog\"][data-mce-component]')) {\n // there is a modal open, which zeros out the vertical scroll\n // so the indicator is in the wrong place. Give it a chance to close\n window.setTimeout(() => {\n this.indicateEditor(element);\n }, 100);\n return;\n }\n\n const editor = this.mceInstance();\n\n if (this.indicator) {\n this.indicator(editor, element);\n } else if (!this.isHidden()) {\n Object(_common_indicate__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(Object(_indicatorRegion__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(editor, element));\n }\n }\n\n contentInserted(element) {\n this.indicateEditor(element);\n this.checkImageLoadError(element);\n this.sizeEditorForContent(element);\n } // make a attempt at sizing the editor so that the new content fits.\n // works under the assumptions the body's box-sizing is not content-box\n // and that the content is w/in a <p> whose margin is 12px top and bottom\n // (which, in canvas, is set in app/stylesheets/components/_ic-typography.scss)\n\n\n sizeEditorForContent(elem) {\n let height;\n\n if (elem && elem.nodeType === 1) {\n height = elem.clientHeight;\n }\n\n if (height) {\n const ifr = this.iframe;\n\n if (ifr) {\n const editor_body_style = ifr.contentWindow.getComputedStyle(this.iframe.contentDocument.body);\n const editor_ht = ifr.contentDocument.body.clientHeight - parseInt(editor_body_style['padding-top'], 10) - parseInt(editor_body_style['padding-bottom'], 10);\n const para_margin_ht = 24;\n const reserve_ht = Math.ceil(height + para_margin_ht);\n\n if (reserve_ht > editor_ht) {\n this.onResize(null, {\n deltaY: reserve_ht - editor_ht\n });\n }\n }\n }\n }\n\n checkImageLoadError(element) {\n if (!element || element.tagName !== 'IMG') {\n return;\n }\n\n if (!element.complete) {\n element.onload = () => this.checkImageLoadError(element);\n\n return;\n } // checking naturalWidth in a future event loop run prevents a race\n // condition between the onload callback and naturalWidth being set.\n\n\n setTimeout(() => {\n if (element.naturalWidth === 0) {\n element.style.border = '1px solid #000';\n element.style.padding = '2px';\n }\n }, 0);\n }\n\n insertCode(code) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n this.contentInserted(element);\n }\n\n insertEmbedCode(code) {\n const editor = this.mceInstance(); // don't replace selected text, but embed after\n\n editor.selection.collapse(); // tinymce treats iframes uniquely, and doesn't like adding attributes\n // once it's in the editor, and I'd rather not parse the incomming html\n // string with a regex, so let's create a temp copy, then add a title\n // attribute if one doesn't exist. This will let screenreaders announce\n // that there's some embedded content helper\n // From what I've read, \"title\" is more reliable than \"aria-label\" for\n // elements like iframes and embeds.\n\n const temp = document.createElement('div');\n temp.innerHTML = code;\n const code_elem = temp.firstElementChild;\n\n if (code_elem) {\n if (!code_elem.hasAttribute('title') && !code_elem.hasAttribute('aria-label')) {\n code_elem.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('embedded content'));\n }\n\n code = code_elem.outerHTML;\n } // inserting an iframe in tinymce (as is often the case with\n // embedded content) causes it to wrap it in a span\n // and it's often inserted into a <p> on top of that. Find the\n // iframe and use it to flash the indicator.\n\n\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n const ifr = element && element.querySelector && element.querySelector('iframe');\n\n if (ifr) {\n this.contentInserted(ifr);\n } else {\n this.contentInserted(element);\n }\n }\n\n insertImage(image) {\n var _element$nextSibling, _element$nextSibling$;\n\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertImage\"](editor, image); // Removes TinyMCE's caret &nbsp; text if exists.\n\n if ((element === null || element === void 0 ? void 0 : (_element$nextSibling = element.nextSibling) === null || _element$nextSibling === void 0 ? void 0 : (_element$nextSibling$ = _element$nextSibling.data) === null || _element$nextSibling$ === void 0 ? void 0 : _element$nextSibling$.trim()) === '') {\n element.nextSibling.remove();\n }\n\n if (element && element.complete) {\n this.contentInserted(element);\n } else if (element) {\n element.onload = () => this.contentInserted(element);\n\n element.onerror = () => this.checkImageLoadError(element);\n }\n }\n\n insertImagePlaceholder(fileMetaProps) {\n let width, height;\n let align = 'middle';\n\n if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__[\"isImage\"])(fileMetaProps.contentType) && fileMetaProps.displayAs !== 'link') {\n const image = new Image();\n image.src = fileMetaProps.domObject.preview;\n width = image.width;\n height = image.height; // we constrain the <img> to max-width: 100%, so scale the size down if necessary\n\n const maxWidth = this.iframe.contentDocument.body.clientWidth;\n\n if (width > maxWidth) {\n height = Math.round(maxWidth / width * height);\n width = maxWidth;\n }\n\n width = `${width}px`;\n height = `${height}px`;\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__[\"isVideo\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"VIDEO_SIZE_DEFAULT\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"VIDEO_SIZE_DEFAULT\"].height;\n align = 'bottom';\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__[\"isAudio\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"AUDIO_PLAYER_SIZE\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"AUDIO_PLAYER_SIZE\"].height;\n align = 'bottom';\n } else {\n width = `${fileMetaProps.name.length}rem`;\n height = '1rem';\n } // if you're wondering, the &nbsp; scatter about in the svg\n // is because tinymce will strip empty elements\n\n\n const markup = `\n <span\n aria-label=\"${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading')}\"\n data-placeholder-for=\"${encodeURIComponent(fileMetaProps.name)}\"\n style=\"width: ${width}; height: ${height}; vertical-align: ${align};\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" height=\"100px\" width=\"100px\">\n <g style=\"stroke-width:.5rem;fill:none;stroke-linecap:round;\">&nbsp;\n <circle class=\"c1\" cx=\"50%\" cy=\"50%\" r=\"28px\">&nbsp;</circle>\n <circle class=\"c2\" cx=\"50%\" cy=\"50%\" r=\"28px\">&nbsp;</circle>\n &nbsp;\n </g>\n &nbsp;\n </svg>\n </span>`;\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.execCommand('mceInsertContent', false, markup);\n });\n }\n\n insertVideo(video) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertVideo\"](editor, video);\n this.contentInserted(element);\n }\n\n insertAudio(audio) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertAudio\"](editor, audio);\n this.contentInserted(element);\n }\n\n insertMathEquation(tex) {\n const editor = this.mceInstance();\n return this.getCanvasUrl().then(domain => _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertEquation\"](editor, tex, domain));\n }\n\n removePlaceholders(name) {\n const placeholder = this.mceInstance().dom.doc.querySelector(`[data-placeholder-for=\"${encodeURIComponent(name)}\"]`);\n\n if (placeholder) {\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.dom.remove(placeholder);\n });\n }\n }\n\n insertLink(link) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertLink\"](editor, link);\n this.contentInserted(element);\n }\n\n existingContentToLink() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLink\"](editor);\n }\n\n existingContentToLinkIsImg() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLinkIsImg\"](editor);\n } // since we may defer rendering tinymce, queue up any tinymce event handlers\n\n\n tinymceOn(tinymceEventName, handler) {\n if (this.state.shouldShowEditor) {\n this.mceInstance().on(tinymceEventName, handler);\n } else {\n this.pendingEventHandlers.push({\n name: tinymceEventName,\n handler\n });\n }\n }\n\n mceInstance() {\n if (this.editor) {\n return this.editor;\n }\n\n const editors = this.props.tinymce.editors || [];\n return editors.filter(ed => ed.id === this.props.textareaId)[0];\n }\n\n onTinyMCEInstance(command) {\n const editor = this.mceInstance();\n\n if (editor) {\n if (command === 'mceRemoveEditor') {\n editor.execCommand('mceNewDocument');\n } // makes sure content can't persist past removal\n\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n editor.execCommand(command, false, ...args);\n }\n }\n\n destroy() {\n this._destroyCalled = true;\n this.unhandleTextareaChange();\n this.props.handleUnmount && this.props.handleUnmount();\n }\n\n getTextarea() {\n return document.getElementById(this.props.textareaId);\n }\n\n textareaValue() {\n return this.getTextarea().value;\n }\n\n get id() {\n return this.state.id;\n }\n\n _isFullscreen() {\n return this.state.fullscreenState.isTinyFullscreen || document[FS_ELEMENT];\n }\n\n _enterFullscreen() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this._prettyHtmlEditorRef.current.addEventListener('fullscreenchange', this._toggleFullscreen);\n\n this._prettyHtmlEditorRef.current.addEventListener('webkitfullscreenchange', this._toggleFullscreen); // if I don't focus first, FF complains that the element\n // is not in the active browser tab and requestFullscreen fails\n\n\n this._prettyHtmlEditorRef.current.focus();\n\n this._prettyHtmlEditorRef.current[FS_REQUEST]();\n\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().addEventListener('fullscreenchange', this._toggleFullscreen);\n this.getTextarea().addEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.getTextarea()[FS_REQUEST]();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().execCommand('mceFullScreen');\n break;\n }\n }\n\n _exitFullscreen() {\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen');\n } else if (document[FS_ELEMENT]) {\n document[FS_ELEMENT][FS_EXIT]();\n }\n }\n\n focus() {\n this.onTinyMCEInstance('mceFocus'); // tinymce doesn't always call the focus handler.\n\n this.handleFocusEditor(new Event('focus', {\n target: this.mceInstance()\n }));\n }\n\n focusCurrentView() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().focus();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n {\n const cmta = this._elementRef.current.querySelector('.CodeMirror textarea');\n\n if (cmta) {\n cmta.focus();\n } else {\n window.setTimeout(() => {\n var _this$_elementRef$cur2;\n\n (_this$_elementRef$cur2 = this._elementRef.current.querySelector('.CodeMirror textarea')) === null || _this$_elementRef$cur2 === void 0 ? void 0 : _this$_elementRef$cur2.focus();\n }, 200);\n }\n }\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().focus();\n break;\n }\n }\n\n is_dirty() {\n var _this$mceInstance2;\n\n if (this.mceInstance().isDirty()) {\n return true;\n }\n\n const content = this.isHidden() ? this.textareaValue() : (_this$mceInstance2 = this.mceInstance()) === null || _this$mceInstance2 === void 0 ? void 0 : _this$mceInstance2.getContent();\n return content !== this.cleanInitialContent();\n }\n\n cleanInitialContent() {\n if (!this._cleanInitialContent) {\n const el = window.document.createElement('div');\n el.innerHTML = this.props.defaultContent;\n const serializer = this.mceInstance().serializer;\n this._cleanInitialContent = serializer.serialize(el, {\n getInner: true\n });\n }\n\n return this._cleanInitialContent;\n }\n\n isHtmlView() {\n return this.state.editorView !== _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"];\n }\n\n isHidden() {\n return this.mceInstance().isHidden();\n }\n\n get iframe() {\n return document.getElementById(`${this.props.textareaId}_ifr`);\n } // these focus and blur event handlers work together so that RCEWrapper\n // can report focus and blur events from the RCE at-large\n\n\n get focused() {\n return this === _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getEditor();\n }\n\n handleFocus(_event) {\n if (!this.focused) {\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].focusEditor(this);\n this.props.onFocus && this.props.onFocus(this);\n }\n }\n\n handleContentTrayClosing(isClosing) {\n this.contentTrayClosing = isClosing;\n }\n\n handleBlur(event) {\n if (this.blurTimer) return;\n\n if (this.focused) {\n // because the old active element fires blur before the next element gets focus\n // we often need a moment to see if focus comes back\n event && event.persist && event.persist();\n this.blurTimer = window.setTimeout(() => {\n var _this$_elementRef$cur3, _event$focusedEditor, _event$relatedTarget, _event$relatedTarget$;\n\n this.blurTimer = 0;\n\n if (this.contentTrayClosing) {\n // the CanvasContentTray is in the process of closing\n // wait until it finishes\n return;\n }\n\n if ((_this$_elementRef$cur3 = this._elementRef.current) !== null && _this$_elementRef$cur3 !== void 0 && _this$_elementRef$cur3.contains(document.activeElement)) {\n // focus is still somewhere w/in me\n return;\n }\n\n const activeClass = document.activeElement && document.activeElement.getAttribute('class');\n\n if ((event.focusedEditor === undefined || event.target.id === ((_event$focusedEditor = event.focusedEditor) === null || _event$focusedEditor === void 0 ? void 0 : _event$focusedEditor.id)) && activeClass !== null && activeClass !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(activeClass).call(activeClass, 'tox-')) {\n // if a toolbar button has focus, then the user clicks on the \"more\" button\n // focus jumps to the body, then eventually to the popped up toolbar. This\n // catches that case.\n return;\n }\n\n if (event !== null && event !== void 0 && (_event$relatedTarget = event.relatedTarget) !== null && _event$relatedTarget !== void 0 && (_event$relatedTarget$ = _event$relatedTarget.getAttribute('class')) !== null && _event$relatedTarget$ !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_event$relatedTarget$).call(_event$relatedTarget$, 'tox-')) {\n // a tinymce popup has focus\n return;\n }\n\n const popups = document.querySelectorAll('[data-mce-component]');\n\n for (const popup of popups) {\n if (popup.contains(document.activeElement)) {\n // one of our popups has focus\n return;\n }\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].blurEditor(this);\n this.props.onBlur && this.props.onBlur(event);\n }, ASYNC_FOCUS_TIMEOUT);\n }\n }\n\n call(methodName) {\n // since exists? has a ? and cant be a regular function just return true\n // rather than calling as a fn on the editor\n if (methodName === 'exists?') {\n return true;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return this[methodName](...args);\n }\n\n announceContextToolbars(editor) {\n editor.on('NodeChange', () => {\n const node = editor.selection.getNode();\n\n if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_30__[\"isImageEmbed\"])(node, editor)) {\n if (this.announcing !== 1) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access image options. {text}', {\n text: node.getAttribute('alt')\n })\n });\n this.announcing = 1;\n }\n } else if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_30__[\"isFileLink\"])(node, editor)) {\n if (this.announcing !== 2) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access link options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 2;\n }\n } else if (isElementWithinTable(node, editor)) {\n if (this.announcing !== 3) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access table options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 3;\n }\n } else {\n this.setState({\n announcement: null\n });\n this.announcing = 0;\n }\n });\n }\n /* ********** autosave support *************** */\n\n\n // if a placeholder image shows up in autosaved content, we have to remove it\n // because the data url gets converted to a blob, which is not valid when restored.\n // besides, the placeholder is intended to be temporary while the file\n // is being uploaded\n patchAutosavedContent(content, asText) {\n const temp = document.createElement('div');\n temp.innerHTML = content;\n temp.querySelectorAll('[data-placeholder-for]').forEach(placeholder => {\n placeholder.parentElement.removeChild(placeholder);\n });\n if (asText) return temp.textContent;\n return temp.innerHTML;\n }\n\n getAutoSaved(key) {\n let autosaved = null;\n\n try {\n autosaved = this.storage && JSON.parse(this.storage.getItem(key));\n } catch (_ex) {\n this.storage.removeItem(this.autoSaveKey);\n }\n\n return autosaved;\n } // only autosave if the feature flag is set, and there is only 1 RCE on the page\n // the latter condition is necessary because the popup RestoreAutoSaveModal\n // is lousey UX when there are >1\n\n\n get isAutoSaving() {\n // If the editor is invisible for some reason, don't show the autosave modal\n // This doesn't apply if the editor is off-screen or has visibility:hidden;\n // only if it isn't rendered or has display:none;\n const editorVisible = this.editor.getContainer().offsetParent;\n return this.props.autosave.enabled && editorVisible && document.querySelectorAll('.rce-wrapper').length === 1 && storageAvailable();\n }\n\n get autoSaveKey() {\n var _this$props$trayProps;\n\n const userId = (_this$props$trayProps = this.props.trayProps) === null || _this$props$trayProps === void 0 ? void 0 : _this$props$trayProps.containingContext.userId;\n return `rceautosave:${userId}${window.location.href}:${this.props.textareaId}`;\n }\n\n componentWillUnmount() {\n if (this.state.shouldShowEditor) {\n var _this$mutationObserve, _this$intersectionObs;\n\n window.clearTimeout(this.blurTimer);\n\n if (!this._destroyCalled) {\n this.destroy();\n }\n\n this._elementRef.current.removeEventListener('keydown', this.handleKey, true);\n\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.disconnect();\n (_this$intersectionObs = this.intersectionObserver) === null || _this$intersectionObs === void 0 ? void 0 : _this$intersectionObs.disconnect();\n }\n }\n\n wrapOptions() {\n var _this$props$trayProps2, _this$props$trayProps3, _this$props$trayProps4;\n\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const rcsExists = !!((_this$props$trayProps2 = this.props.trayProps) !== null && _this$props$trayProps2 !== void 0 && _this$props$trayProps2.host && (_this$props$trayProps3 = this.props.trayProps) !== null && _this$props$trayProps3 !== void 0 && _this$props$trayProps3.jwt);\n const setupCallback = options.setup;\n const canvasPlugins = rcsExists ? ['instructure_links', 'instructure_image', 'instructure_documents', 'instructure_equation', 'instructure_external_tools'] : ['instructure_links'];\n\n if (rcsExists && !this.props.instRecordDisabled) {\n canvasPlugins.splice(2, 0, 'instructure_record');\n }\n\n if (rcsExists && this.props.use_rce_icon_maker && ((_this$props$trayProps4 = this.props.trayProps) === null || _this$props$trayProps4 === void 0 ? void 0 : _this$props$trayProps4.contextType) === 'course') {\n canvasPlugins.push('instructure_icon_maker');\n }\n\n const possibleNewMenubarItems = this.props.editorOptions.menu ? Object.keys(this.props.editorOptions.menu).join(' ') : undefined;\n const wrappedOpts = { ...options,\n readonly: this.props.readOnly,\n theme: 'silver',\n // some older code specified 'modern', which doesn't exist any more\n height: options.height || DEFAULT_RCE_HEIGHT,\n language: _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default()(this.language),\n block_formats: options.block_formats || [`${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 2')}=h2`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 3')}=h3`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 4')}=h4`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Preformatted')}=pre`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Paragraph')}=p`].join('; '),\n setup: editor => {\n var _bridge$trayProps;\n\n addKebabIcon(editor);\n editorWrappers.set(editor, this);\n const trayPropsWithColor = {\n brandColor: this.theme.canvasBrandColor,\n ...this.props.trayProps\n };\n (_bridge$trayProps = _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].trayProps) === null || _bridge$trayProps === void 0 ? void 0 : _bridge$trayProps.set(editor, trayPropsWithColor);\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].languages = this.props.languages;\n\n if (typeof setupCallback === 'function') {\n setupCallback(editor);\n }\n },\n // Consumers can, and should!, still pass a content_css prop so that the content\n // in the editor matches the styles of the app it will be displayed in when saved.\n // This is just so we inject the helper class names that tinyMCE uses for\n // things like table resizing and stuff.\n content_css: options.content_css || [],\n content_style: contentCSS,\n menubar: mergeMenuItems('edit view insert format tools table', possibleNewMenubarItems),\n // default menu options listed at https://www.tiny.cloud/docs/configure/editor-appearance/#menu\n // tinymce's default edit and table menus are fine\n // we include all the canvas specific items in the menu and toolbar\n // and rely on tinymce only showing them if the plugin is provided.\n menu: mergeMenu({\n format: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Format'),\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align directionality | forecolor backcolor | removeformat'\n },\n insert: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Insert'),\n items: 'instructure_links instructure_image instructure_media instructure_document instructure_icon_maker | instructure_equation inserttable instructure_media_embed | hr'\n },\n tools: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Tools'),\n items: 'wordcount lti_tools_menuitem'\n },\n view: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View'),\n items: 'fullscreen instructure_html_view'\n }\n }, options.menu),\n toolbar: mergeToolbar([{\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Styles'),\n items: ['fontsizeselect', 'formatselect']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Formatting'),\n items: ['bold', 'italic', 'underline', 'forecolor', 'backcolor', 'inst_subscript', 'inst_superscript']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content'),\n items: ['instructure_links', 'instructure_image', 'instructure_record', 'instructure_documents', 'instructure_icon_maker']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('External Tools'),\n items: [...this.ltiToolFavorites, 'lti_tool_dropdown', 'lti_mru_button']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Alignment and Lists'),\n items: ['align', 'bullist', 'inst_indent', 'inst_outdent']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Miscellaneous'),\n items: ['removeformat', 'table', 'instructure_equation', 'instructure_media_embed']\n }], options.toolbar),\n contextmenu: '',\n // show the browser's native context menu\n toolbar_mode: 'floating',\n toolbar_sticky: true,\n plugins: mergePlugins(['autolink', 'media', 'paste', 'table', 'link', 'directionality', 'lists', 'textpattern', 'hr', 'fullscreen', 'instructure-ui-icons', 'instructure_condensed_buttons', 'instructure_links', 'instructure_html_view', 'instructure_media_embed', 'instructure_external_tools', 'a11y_checker', 'wordcount', ...canvasPlugins], Object(_sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__[\"sanitizePlugins\"])(options.plugins)),\n textpattern_patterns: [{\n start: '* ',\n cmd: 'InsertUnorderedList'\n }, {\n start: '- ',\n cmd: 'InsertUnorderedList'\n }]\n };\n\n if (this.props.trayProps) {\n wrappedOpts.canvas_rce_user_context = {\n type: this.props.trayProps.contextType,\n id: this.props.trayProps.contextId\n };\n wrappedOpts.canvas_rce_containing_context = {\n type: this.props.trayProps.containingContext.contextType,\n id: this.props.trayProps.containingContext.contextId\n };\n }\n\n return wrappedOpts;\n }\n\n unhandleTextareaChange() {\n if (this._textareaEl) {\n this._textareaEl.removeEventListener('input', this.handleTextareaChange);\n }\n }\n\n registerTextareaChange() {\n const el = this.getTextarea();\n\n if (this._textareaEl !== el) {\n this.unhandleTextareaChange();\n\n if (el) {\n el.addEventListener('input', this.handleTextareaChange);\n\n if (this.props.textareaClassName) {\n // split the string on whitespace because classList doesn't let you add multiple\n // space seperated classes at a time but does let you add an array of them\n el.classList.add(...this.props.textareaClassName.split(/\\s+/));\n }\n\n this._textareaEl = el;\n }\n }\n }\n\n componentDidMount() {\n if (this.state.shouldShowEditor) {\n this.editorReallyDidMount();\n } else {\n this.intersectionObserver = new IntersectionObserver(entries => {\n const entry = entries[0];\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n this.setState({\n shouldShowEditor: true\n });\n }\n }, // initialize the RCE when it gets close to entering the viewport\n {\n root: null,\n rootMargin: '200px 0px',\n threshold: 0.0\n });\n this.intersectionObserver.observe(this._editorPlaceholderRef.current);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.shouldShowEditor) {\n if (!prevState.shouldShowEditor) {\n var _this$intersectionObs2;\n\n this.editorReallyDidMount();\n (_this$intersectionObs2 = this.intersectionObserver) === null || _this$intersectionObs2 === void 0 ? void 0 : _this$intersectionObs2.disconnect();\n } else {\n this.registerTextareaChange();\n\n if (prevState.editorView !== this.state.editorView) {\n this.setEditorView(this.state.editorView);\n this.focusCurrentView();\n }\n\n if (prevProps.readOnly !== this.props.readOnly) {\n this.mceInstance().mode.set(this.props.readOnly ? 'readonly' : 'design');\n }\n }\n }\n }\n\n editorReallyDidMount() {\n const myTiny = this.mceInstance();\n this.pendingEventHandlers.forEach(e => {\n myTiny.on(e.name, e.handler);\n });\n this.registerTextareaChange();\n\n this._elementRef.current.addEventListener('keydown', this.handleKey, true); // give the textarea its initial size\n\n\n this.onResize(null, {\n deltaY: 0\n }); // Preload the LTI Tools modal\n // This helps with loading the favorited external tools\n\n if (this.ltiToolFavorites.length > 0) {\n __webpack_require__.e(/*! import() */ 11).then(__webpack_require__.bind(null, /*! ./plugins/instructure_external_tools/components/LtiToolsModal */ \"./src/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js\"));\n } // .tox-tinymce-aux is where tinymce puts the floating toolbar when\n // the user clicks the More... button\n // Tinymce doesn't fire onFocus when the user clicks More... from somewhere\n // outside, so we'll handle that here by watching for the floating toolbar\n // to come and go.\n\n\n const portals = document.querySelectorAll('.tox-tinymce-aux'); // my portal will be the last one in the doc because tinyumce appends them\n\n const tinymce_floating_toolbar_portal = portals[portals.length - 1];\n\n if (tinymce_floating_toolbar_portal) {\n this.mutationObserver = new MutationObserver((mutationList, _observer) => {\n mutationList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n this.handleFocusEditor(new Event('focus', {\n target: mutation.target\n }));\n }\n });\n });\n this.mutationObserver.observe(tinymce_floating_toolbar_portal, {\n childList: true\n });\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].renderEditor(this);\n }\n\n setEditorView(view) {\n var _this$getTextarea$lab, _this$getTextarea$lab2, _this$getTextarea$lab3, _this$getTextarea$lab4, _this$_elementRef$cur4, _this$getTextarea$lab5, _this$getTextarea$lab6;\n\n switch (view) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().removeAttribute('aria-hidden');\n (_this$getTextarea$lab = this.getTextarea().labels) === null || _this$getTextarea$lab === void 0 ? void 0 : (_this$getTextarea$lab2 = _this$getTextarea$lab[0]) === null || _this$getTextarea$lab2 === void 0 ? void 0 : _this$getTextarea$lab2.removeAttribute('aria-hidden');\n this.mceInstance().hide();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab3 = this.getTextarea().labels) === null || _this$getTextarea$lab3 === void 0 ? void 0 : (_this$getTextarea$lab4 = _this$getTextarea$lab3[0]) === null || _this$getTextarea$lab4 === void 0 ? void 0 : _this$getTextarea$lab4.setAttribute('aria-hidden', true);\n this.mceInstance().hide();\n (_this$_elementRef$cur4 = this._elementRef.current.querySelector('.CodeMirror')) === null || _this$_elementRef$cur4 === void 0 ? void 0 : _this$_elementRef$cur4.CodeMirror.setCursor(0, 0);\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n this.setCode(this.textareaValue());\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab5 = this.getTextarea().labels) === null || _this$getTextarea$lab5 === void 0 ? void 0 : (_this$getTextarea$lab6 = _this$getTextarea$lab5[0]) === null || _this$getTextarea$lab6 === void 0 ? void 0 : _this$getTextarea$lab6.setAttribute('aria-hidden', true);\n this.mceInstance().show();\n }\n }\n\n renderHtmlEditor() {\n // the div keeps the editor from collapsing while the code editor is downloaded\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n height: this.state.height,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"medium\"\n }))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__[\"View\"], {\n as: \"div\",\n borderRadius: \"medium\",\n borderWidth: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RceHtmlEditor, {\n ref: this._prettyHtmlEditorRef,\n height: document[FS_ELEMENT] ? `${window.screen.height}px` : this.state.height,\n code: this.getCode(),\n onChange: value => {\n this.getTextarea().value = value;\n this.handleTextareaChange();\n },\n onFocus: this.handleFocusHtmlEditor\n })));\n }\n\n render() {\n const {\n trayProps,\n ...mceProps\n } = this.props;\n\n if (!this.state.shouldShowEditor) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._editorPlaceholderRef,\n style: {\n width: `${this.props.editorOptions.width}px`,\n height: `${this.props.editorOptions.height}px`,\n border: '1px solid grey'\n }\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n key: this.id,\n className: `${styles.root} rce-wrapper`,\n ref: this._elementRef,\n onFocus: this.handleFocusRCE,\n onBlur: this.handleBlurRCE\n }, this.state.shouldShowOnFocusButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n onClick: this.openKBShortcutModal,\n margin: \"xx-small\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View keyboard shortcuts'),\n ref: el => this._showOnFocusButton = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__[\"IconKeyboardShortcutsLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_AlertMessageArea__WEBPACK_IMPORTED_MODULE_28__[\"default\"], {\n messages: this.state.messages,\n liveRegion: this.props.liveRegion,\n afterDismiss: this.removeAlert\n }), this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] && this.renderHtmlEditor(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n display: this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] ? 'none' : 'block'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__[\"Editor\"], {\n id: mceProps.textareaId,\n textareaName: mceProps.name,\n init: this.tinymceInitOptions,\n initialValue: mceProps.defaultContent,\n onInit: this.onInit,\n onClick: this.handleFocusEditor,\n onKeypress: this.handleFocusEditor,\n onActivate: this.handleFocusEditor,\n onRemove: this.onRemove,\n onFocus: this.handleFocusEditor,\n onBlur: this.handleBlurEditor,\n onNodeChange: this.onNodeChange,\n onEditorChange: this.onEditorChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n readOnly: this.props.readOnly,\n onChangeView: newView => this.toggleView(newView),\n path: this.state.path,\n wordCount: this.state.wordCount,\n editorView: this.state.editorView,\n preferredHtmlEditor: getHtmlEditorCookie(),\n onResize: this.onResize,\n onKBShortcutModalOpen: this.openKBShortcutModal,\n onA11yChecker: this.onA11yChecker,\n onFullscreen: this.handleClickFullscreen,\n a11yBadgeColor: this.theme.canvasBadgeBackgroundColor,\n a11yErrorsCount: this.state.a11yErrorsCount\n }), this.props.trayProps && this.props.trayProps.containingContext && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_21__[\"default\"], Object.assign({\n key: this.id,\n bridge: _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n editor: this,\n onTrayClosing: this.handleContentTrayClosing,\n use_rce_icon_maker: this.props.use_rce_icon_maker\n }, trayProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n onExited: this.KBShortcutModalExited,\n onDismiss: this.closeKBShortcutModal,\n open: this.state.KBShortcutModalOpen\n }), this.state.confirmAutoSave ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"small\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RestoreAutoSaveModal, {\n savedContent: this.state.autoSavedContent,\n open: this.state.confirmAutoSave,\n onNo: () => this.restoreAutoSave(false),\n onYes: () => this.restoreAutoSave(true)\n })) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__[\"Alert\"], {\n screenReaderOnly: true,\n liveRegion: this.props.liveRegion\n }, this.state.announcement));\n }\n\n}, _class2.propTypes = {\n autosave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n enabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n maxAge: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n defaultContent: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n editorOptions: editorOptionsPropType,\n handleUnmount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n editorView: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]]),\n renderKBShortcutModal: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n language: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n ltiTools: ltiToolsPropType,\n onContentChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onBlur: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onInitted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRemove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n textareaClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n textareaId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n languages: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n label: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n })),\n readOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n tinymce: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n trayProps: _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_21__[\"trayPropTypes\"],\n toolbar: toolbarPropType,\n menu: menuPropType,\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n instRecordDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n highContrastCSS: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n maxInitRenderedRCEs: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n}, _class2.defaultProps = {\n trayProps: null,\n languages: [{\n id: 'en',\n label: 'English'\n }],\n autosave: {\n enabled: false\n },\n highContrastCSS: [],\n ltiTools: [],\n maxInitRenderedRCEs: -1\n}, _class2.skinCssInjected = false, _class2)) || _class); // standard: string of tinymce menu commands\n// e.g. 'instructure_links | inserttable instructure_media_embed | hr'\n// custom: a string of tinymce menu commands\n// returns: standard + custom with any duplicate commands removed from custom\n\nfunction mergeMenuItems(standard, custom) {\n var _custom$trim;\n\n let c = custom === null || custom === void 0 ? void 0 : (_custom$trim = custom.trim) === null || _custom$trim === void 0 ? void 0 : _custom$trim.call(custom);\n if (!c) return standard;\n const s = new Set(standard.split(/[\\s|]+/)); // remove any duplicates\n\n c = c.split(/\\s+/).filter(m => !s.has(m));\n c = c.join(' ').replace(/^\\s*\\|\\s*/, '').replace(/\\s*\\|\\s*$/, '');\n return `${standard} | ${c}`;\n} // standard: the incoming tinymce menu object\n// custom: tinymce menu object to merge into standard\n// returns: the merged result by mutating incoming standard arg.\n// It will add commands to existing menus, or add a new menu\n// if the custom one does not exist\n\n\nfunction mergeMenu(standard, custom) {\n if (!custom) return standard;\n Object.keys(custom).forEach(k => {\n const curr_m = standard[k];\n\n if (curr_m) {\n curr_m.items = mergeMenuItems(curr_m.items, custom[k].items);\n } else {\n standard[k] = { ...custom[k]\n };\n }\n });\n return standard;\n} // standard: incoming tinymce toolbar array\n// custom: tinymce toolbar array to merge into standard\n// returns: the merged result by mutating the incoming standard arg.\n// It will add commands to existing toolbars, or add a new toolbar\n// if the custom one does not exist\n\n\nfunction mergeToolbar(standard, custom) {\n if (!custom) return standard; // merge given toolbar data into the default toolbar\n\n custom.forEach(tb => {\n const curr_tb = standard.find(t => tb.name && Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(tb.name) === t.name);\n\n if (curr_tb) {\n curr_tb.items.splice(curr_tb.items.length, 0, ...tb.items);\n } else {\n standard.push(tb);\n }\n });\n return standard;\n} // standard: incoming array of plugin names\n// custom: array of plugin names to merge\n// returns: the merged result, duplicates removed\n\n\nfunction mergePlugins(standard, custom) {\n if (!custom) return standard;\n const union = new Set(standard);\n\n for (const p of custom) {\n union.add(p);\n }\n\n return [...union];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RCEWrapper);\n\n\n//# sourceURL=webpack:///./src/rce/RCEWrapper.js?");
17402
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"editorOptionsPropType\", function() { return editorOptionsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"storageAvailable\", function() { return storageAvailable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toolbarPropType\", function() { return toolbarPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"menuPropType\", function() { return menuPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ltiToolsPropType\", function() { return ltiToolsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenuItems\", function() { return mergeMenuItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenu\", function() { return mergeMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeToolbar\", function() { return mergeToolbar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergePlugins\", function() { return mergePlugins; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tinymce/tinymce-react */ \"../../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-themeable */ \"../../node_modules/@instructure/ui-themeable/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-alerts */ \"../../node_modules/@instructure/ui-alerts/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_debounce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/debounce */ \"../../node_modules/@instructure/debounce/es/index.js\");\n/* harmony import */ var _common_getCookie__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/getCookie */ \"./src/common/getCookie.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _contentInsertion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./contentInsertion */ \"./src/rce/contentInsertion.js\");\n/* harmony import */ var _indicatorRegion__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./indicatorRegion */ \"./src/rce/indicatorRegion.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./editorLanguage */ \"./src/rce/editorLanguage.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_editorLanguage__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _normalizeLocale__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./normalizeLocale */ \"./src/rce/normalizeLocale.js\");\n/* harmony import */ var _sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sanitizePlugins */ \"./src/rce/sanitizePlugins.js\");\n/* harmony import */ var _getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./getCanvasUrl */ \"./src/rce/getCanvasUrl.js\");\n/* harmony import */ var _RCEGlobals__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./RCEGlobals */ \"./src/rce/RCEGlobals.js\");\n/* harmony import */ var _defaultTinymceConfig__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../defaultTinymceConfig */ \"./src/defaultTinymceConfig.js\");\n/* harmony import */ var _common_indicate__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../common/indicate */ \"./src/common/indicate.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./plugins/shared/CanvasContentTray */ \"./src/rce/plugins/shared/CanvasContentTray.js\");\n/* harmony import */ var _StatusBar__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./StatusBar */ \"./src/rce/StatusBar.js\");\n/* harmony import */ var _customEvents__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./customEvents */ \"./src/rce/customEvents.js\");\n/* harmony import */ var _ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ShowOnFocusButton */ \"./src/rce/ShowOnFocusButton/index.js\");\n/* harmony import */ var _skins_theme__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../skins/theme */ \"./src/skins/theme.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/* harmony import */ var _KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./KeyboardShortcutModal */ \"./src/rce/KeyboardShortcutModal.js\");\n/* harmony import */ var _AlertMessageArea__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./AlertMessageArea */ \"./src/rce/AlertMessageArea.js\");\n/* harmony import */ var _alertHandler__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./plugins/shared/ContentSelection */ \"./src/rce/plugins/shared/ContentSelection.js\");\n/* harmony import */ var _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./plugins/instructure_record/VideoOptionsTray/TrayController */ \"./src/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js\");\nvar _dec, _class, _class2, _Intl, _Intl$DateTimeFormat, _Intl$DateTimeFormat$;\n\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst styles = {\n componentId: 'dyzZI',\n template: function (theme) {\n return `\n\n\n\n\n.canvas-rce__skins--root {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n}\n\n\n\n.rce-wrapper textarea {\n width: 100%;\n box-sizing: border-box;\n min-height: auto;\n }\n\n.tox,\n .tox *:not(svg) {\n color: inherit;\n font-family: inherit;\n }\n\n\n\n[dir='rtl'] .tox :not(svg) {\n direction: rtl;\n }\n\n.tox:not(.tox-tinymce-inline) .tox-editor-header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox.tox-tinymce .screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n transform: translatez(0);\n }\n\n.tox-tinymce-aux {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n\n\n.tox.tox-tinymce-aux {\n z-index: 10000;\n }\n\n.tox .tox-button {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-weight: ${theme.canvasButtonFontWeight || 'inherit'};\n font-size: ${theme.canvasButtonFontSize || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n line-height: calc(${theme.canvasButtonLineHeight || 'inherit'} - 2px);\n padding: ${theme.canvasButtonPadding || 'inherit'};\n }\n\n.tox .tox-button[disabled] {\n opacity: 0.5;\n border-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button:focus:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button:hover:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button:active:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary {\n background-color: ${theme.canvasSecondaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary[disabled] {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n opacity: 0.5;\n }\n\n.tox .tox-button--secondary:focus:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button--secondary:hover:not(:disabled) {\n background-color: ${theme.canvasSecondaryButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--secondary:active:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button-link {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-button--naked {\n background: ${theme.canvasButtonBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked:hover:not(:disabled) {\n background-color: ${theme.canvasButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--naked:focus:not(:disabled) {\n background-color: ${theme.canvasButtonBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button--naked:active:not(:disabled) {\n background-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button--naked.tox-button--icon {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {\n background: ${theme.canvasButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\n fill: rgba(45, 59, 69, 0.3);\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox input.tox-checkbox__input:focus + .tox-checkbox__icons {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__group {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-collection__group-heading {\n background-color: #e3e6e8;\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-collection__item {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection__item--state-disabled {\n background-color: unset;\n opacity: 0.5;\n cursor: default;\n }\n\n.tox .tox-collection--list .tox-collection__item--enabled {\n color: contrast(inherit, ${theme.canvasTextColor || 'inherit'}, #fff);\n }\n\n.tox .tox-collection--list .tox-collection__item--active {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox\n .tox-collection--list\n .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__item-icon:first-child {\n margin-right: 8px;\n }\n\n.tox .tox-collection__item-accessory {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-sv-palette {\n border: 1px solid black;\n box-sizing: border-box;\n }\n\n.tox .tox-hue-slider {\n border: 1px solid black;\n }\n\n.tox .tox-rgb-form input.tox-invalid {\n \n border-color: ${theme.canvasErrorColor || 'inherit'} !important;\n }\n\n.tox .tox-rgb-form {\n padding: 2px; \n }\n\n.tox .tox-swatches__picker-btn:hover {\n background: #e0e2e3;\n }\n\n.tox .tox-comment-thread {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: 0 4px 8px 0 rgba(45, 59, 69, 0.1);\n }\n\n.tox .tox-comment__header {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__date {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__expander p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment-thread__overlay::after {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__overlay {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__loading-text {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__overlaytext p {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__busy-spinner {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-user__avatar svg {\n fill: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-user__name {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-dialog-wrap__backdrop {\n background-color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasModalShadow || 'inherit'};\n }\n\n.tox .tox-dialog__header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n border-bottom: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalHeadingPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__title {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-size: ${theme.canvasModalHeadingFontSize || 'inherit'};\n font-weight: ${theme.canvasModalHeadingFontWeight || 'inherit'};\n }\n\n.tox .tox-dialog__body {\n color: ${theme.canvasTextColor || 'inherit'};\n padding: ${theme.canvasModalBodyPadding || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item {\n color: rgba(45, 59, 69, 0.75);\n }\n\n.tox .tox-dialog__body-nav-item:focus {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item--active {\n border-bottom-color: ${theme.canvasBrandColor || 'inherit'};\n color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-dialog__footer {\n background-color: ${theme.canvasModalFooterBackground || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalFooterPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__table tbody tr {\n border-bottom-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border: 2px dashed ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-edit-area {\n border: 1px solid ${theme.canvasBorderColor || 'inherit'};\n border-radius: 3px;\n }\n\n.tox .tox-edit-area__iframe {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border: ${theme.canvasFocusBorderWidth || 'inherit'} solid transparent;\n }\n\n.tox.tox-inline-edit-area {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-form__group {\n padding: 2px;\n }\n\n.tox .tox-control-wrap .tox-textfield {\n padding-right: 32px;\n }\n\n.tox .tox-control-wrap__status-icon-invalid svg {\n fill: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-unknown svg {\n fill: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-valid svg {\n fill: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-color-input span {\n border-color: rgba(45, 59, 69, 0.2);\n }\n\n.tox .tox-color-input span:focus {\n border-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-label,\n .tox .tox-toolbar-label {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-form__group {\n margin: ${theme.canvasFormElementMargin || 'inherit'};\n }\n\n.tox .tox-form__group:last-child {\n margin: 0;\n }\n\n.tox .tox-form__group .tox-label {\n color: ${theme.canvasFormElementLabelColor || 'inherit'};\n margin: ${theme.canvasFormElementLabelMargin || 'inherit'};\n font-size: ${theme.canvasFormElementLabelFontSize || 'inherit'};\n font-weight: ${theme.canvasFormElementLabelFontWeight || 'inherit'};\n }\n\n.tox .tox-form__group--error {\n color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-textfield,\n .tox .tox-selectfield select,\n .tox .tox-textarea,\n .tox .tox-toolbar-textfield {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-textfield:focus,\n .tox .tox-selectfield select:focus,\n .tox .tox-textarea:focus {\n \n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-naked-btn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-naked-btn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker > div {\n border-color: #cccccc;\n }\n\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected {\n background-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n border-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n }\n\n.tox-selected-menu .tox-insert-table-picker {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker__label {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-menu {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-menubar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-mbtn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn[disabled] {\n opacity: 0.5;\n }\n\n.tox .tox-mbtn:hover:not(:disabled) {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn:focus:not(:disabled) {\n background-color: transparent;\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-mbtn--active {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-notification {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: #c5c5c5;\n }\n\n.tox .tox-notification--success {\n background-color: #dff0d8;\n border-color: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-notification--error {\n background-color: #f2dede;\n border-color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-notification--warn {\n background-color: #fcf8e3;\n border-color: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-notification--info {\n background-color: #d9edf7;\n border-color: ${theme.canvasInfoColor || 'inherit'};\n }\n\n.tox .tox-notification__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-pop__dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-pop.tox-pop--bottom::before {\n border-color: ${theme.canvasBorderColor || 'inherit'} transparent transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--top::before {\n border-color: transparent transparent ${theme.canvasBorderColor || 'inherit'} transparent;\n }\n\n.tox .tox-pop.tox-pop--left::before {\n border-color: transparent ${theme.canvasBorderColor || 'inherit'} transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--right::before {\n border-color: transparent transparent transparent ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider {\n width: 100%;\n }\n\n.tox .tox-slider__rail {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider__handle {\n background-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-spinner > div {\n background-color: rgba(45, 59, 69, 0.6);\n }\n\n\n\n.tox .tox-tbtn {\n border-style: none;\n color: ${theme.canvasButtonColor || 'inherit'};\n position: relative;\n }\n\n.tox .tox-tbtn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-tbtn.tox-tbtn--enabled {\n background: inherit;\n }\n\n.tox .tox-tbtn:focus,\n .tox .tox-split-button:focus {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-tbtn:hover,\n .tox .tox-split-button:hover,\n .tox .tox-tbtn.tox-tbtn--enabled:hover,\n .tox .tox-split-button .tox-tbtn.tox-split-button__chevron:hover {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox-tbtn.tox-split-button__chevron {\n position: relative;\n }\n\n\n\n.tox .tox-tbtn.tox-tbtn--enabled::after {\n position: absolute;\n top: -3px;\n content: '\\\\25BC';\n text-align: center;\n height: 8px;\n font-size: 8px;\n width: 100%;\n color: ${theme.canvasEnabledColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n\n\n.tox-tbtn.tox-split-button__chevron.tox-tbtn--enabled::after {\n display: none;\n }\n\n.tox .tox-tbtn--disabled,\n .tox .tox-tbtn--disabled:hover,\n .tox .tox-tbtn:disabled,\n .tox .tox-tbtn:disabled:hover {\n opacity: 0.5;\n }\n\n.tox .tox-tbtn--disabled svg,\n .tox .tox-tbtn--disabled:hover svg,\n .tox .tox-tbtn:disabled svg,\n .tox .tox-tbtn:disabled:hover svg {\n \n opacity: 0.5;\n }\n\n.tox .tox-tbtn__select-chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button__chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button.tox-tbtn--disabled:hover,\n .tox .tox-split-button.tox-tbtn--disabled:focus,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {\n opacity: 0.5;\n }\n\n.tox .tox-toolbar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-toolbar__group:not(:last-of-type) {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-tooltip__body {\n background-color: ${theme.canvasTextColor || 'inherit'};\n box-shadow: 0 2px 4px rgba(45, 59, 69, 0.3);\n color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-tooltip--down .tox-tooltip__arrow {\n border-top-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--up .tox-tooltip__arrow {\n border-bottom-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--right .tox-tooltip__arrow {\n border-left-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--left .tox-tooltip__arrow {\n border-right-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-well {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-custom-editor {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox a {\n color: ${theme.canvasLinkColor || 'inherit'};\n }\n\n.tox.tox-tinymce {\n border-style: none;\n }\n\n\n\n.tox-editor-container .tox-toolbar,\n .tox-editor-container .tox-toolbar-overlord {\n background-image: none;\n margin-bottom: 5px;\n }\n\n.tox-editor-container .tox-toolbar__primary {\n background-image: none;\n }\n\n\n\n.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary {\n border-style: none;\n }\n\n.tox .tox-toolbar .tox-toolbar__group,\n .tox .tox-toolbar-overlord .tox-toolbar__group,\n .tox-toolbar__overflow .tox-toolbar__group,\n .tox:not([dir='rtl']) .tox-toolbar__group:not(:last-of-type),\n .tox[dir='rtl'] .tox-toolbar__group:not(:last-of-type) {\n border-style: none;\n }\n\n.tox-toolbar .tox-toolbar__group::after, \n .tox-toolbar-overlord .tox-toolbar__group::after, \n .tox-toolbar__overflow .tox-toolbar__group::after, \n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n \n content: '';\n display: inline-block;\n box-sizing: border-box;\n border-inline-end: 1px solid ${theme.canvasBorderColor || 'inherit'};\n width: 8px;\n height: 24px;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-left: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox-toolbar .tox-toolbar__group:last-child::after,\n .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-inline-end-width: 0;\n padding-inline-start: 0;\n width: 0;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-right-width: 0;\n padding-left: 0;\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-left-width: 0;\n padding-right: 0;\n }\n\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n width: auto;\n padding-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-left: 0;\n }\n\n.tox .tox-tbtn {\n box-sizing: border-box;\n }\n\n.tox .tox-tbtn,\n .tox .tox-split-button,\n .tox .tox-tbtn--select {\n border-style: none;\n margin: 2px 2px 3px;\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: 0;\n }\n\n.tox .tox-edit-area.active,\n .tox .tox-edit-area.active iframe {\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: -6px;\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: -6px;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: -6px;\n }\n\n.tox .tox-split-button:hover .tox-split-button__chevron {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: none;\n }\n\n.tox .tox-tbtn:hover.tox-split-button__chevron,\n .tox .tox-tbtn:focus.tox-split-button__chevron {\n box-shadow: none;\n }\n\n.tox .tox-toolbar__primary {\n border-width: 0;\n }\n\n.tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-inline-end: 4px;\n }\n\n[dir=\"ltr\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-right: 4px;\n }\n\n[dir=\"rtl\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-left: 4px;\n }\n\n\n\n.tox .tox-icon svg:not([height]),\n .tox .tox-collection__item-icon svg:not([height]) {\n height: 16px;\n }\n\n\n\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon {\n height: 30px;\n width: 30px;\n }\n\n\n\n.tox-selectfield__icon-js svg {\n width: 10px;\n height: 10px;\n }\n\n\n\n[data-canvascontenttray-content]:focus {\n outline-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n`;\n },\n 'root': 'canvas-rce__skins--root'\n};\nconst skinCSSBinding = {\n componentId: 'djgIv',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:baseline;vertical-align:initial;white-space:normal}\n\n.tinymce__oxide--tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n.tinymce__oxide--tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n.tinymce__oxide--tox:not([dir=rtl]){direction:ltr;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n.tinymce__oxide--tox[dir=rtl]{direction:rtl;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n.tinymce__oxide--tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}\n\n.tinymce__oxide--tox-tinymce-inline{border:none;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;z-index:1300}\n\n.tinymce__oxide--tox-tinymce :focus,.tinymce__oxide--tox-tinymce-aux :focus{outline:0}\n\nbutton::-moz-focus-inner{border:0}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div{padding-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__repair{margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-form__group h2{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-icon svg{fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info a .tinymce__oxide--tox-icon{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-form__group h2{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-icon svg{fill:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn a .tinymce__oxide--tox-icon{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-form__group h2{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-icon svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error a .tinymce__oxide--tox-icon{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-form__group h2{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-icon svg{fill:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success a .tinymce__oxide--tox-icon{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header h1,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group .tinymce__oxide--accessibility-issue__description h2{margin-top:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-left:auto}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 4px 4px 8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-right:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 8px 4px 4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-anchorbar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-bar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg{display:block;fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link--sm{font-size:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked .tinymce__oxide--tox-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked.tinymce__oxide--tox-button--icon:hover:not(:disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:focus+.tinymce__oxide--tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__label{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__input{left:-10000px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__label{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__input{right:-10000px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__group{display:flex;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group:first-child{border-top-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item{padding:4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--enabled{background-color:#fff;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark svg,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar-lg .tinymce__oxide--tox-collection__item-icon{height:48px;width:48px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret{align-items:center;display:flex;min-height:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-checkmark svg{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-accessory+.tinymce__oxide--tox-collection__item-checkmark{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-label{white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-left{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-middle{align-items:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-left{align-items:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-right{align-items:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-top{align-self:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-middle{align-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-bottom{align-self:flex-end}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{margin-left:16px;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-left:16px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-icon-rtl .tinymce__oxide--tox-collection__item-icon svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{margin-right:16px;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette{box-sizing:border-box;display:flex;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette,.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{width:225px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider{box-sizing:border-box;height:100%;width:25px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider,.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input{width:6em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input.tinymce__oxide--tox-invalid{border:1px solid red!important}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form .tinymce__oxide--tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-sv-palette{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider-thumb{margin-left:-1px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-rgb-form label{margin-right:.5em}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-sv-palette{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider-thumb{margin-right:-1px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-rgb-form label{margin-left:.5em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary .tinymce__oxide--tox-swatches{margin:2px 0 3px 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-swatches-menu{border:0;margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__row{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch:focus,.tinymce__oxide--tox .tinymce__oxide--tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove svg path{stroke:#e74c3c}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn svg{height:24px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn:hover{background:#dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-swatches__picker-btn{margin-left:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-swatches__picker-btn{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread{background:#fff;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread>:not(:first-child){margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:none;text-transform:initial}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body textarea{resize:none;white-space:normal;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander{padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{padding-top:16px;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread__overlay::after{background:#fff;bottom:0;content:\"\";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply>:first-child{margin-bottom:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:\"\";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text>div{padding-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-conversations{margin:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit{margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__reply>:last-child{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit{margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__reply>:last-child{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__avatar svg{fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar svg{margin-right:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar svg{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop--opaque{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-inline{z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header .tinymce__oxide--tox-button{z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle:active{cursor:grabbing}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__dismiss{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{flex-direction:column}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:focus,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;margin-inline-end:0;margin-inline-start:0;padding-inline-start:2.5rem}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-right:0;margin-left:0;padding-left:2.5rem}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-left:0;margin-right:0;padding-right:2.5rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p{margin-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-lg{height:650px;max-width:1200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md{max-width:800px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md .tinymce__oxide--tox-dialog__body-content{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-end,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-start{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table{border-collapse:collapse;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table thead th{font-weight:700;padding-bottom:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr{border-bottom:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr:last-child{border-bottom:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table td{padding-bottom:8px;padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__popups{position:absolute;width:100%;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition.tinymce__oxide--tox-dialog-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-ie .tinymce__oxide--tox-dialog-wrap{position:-ms-device-fixed}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav{margin-right:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav{margin-left:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-right:8px}\n\nbody.tinymce__oxide--tox-dialog__disable-scroll{overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-inline-edit-area{border:1px dotted #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-header{z-index:1}\n\n.tinymce__oxide--tox:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header{box-shadow:none;transition:box-shadow .5s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-bottom .tinymce__oxide--tox-editor-header,.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{margin-bottom:-1px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-sticky-on .tinymce__oxide--tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}\n\n.tinymce__oxide--tox-editor-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox-editor-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}\n\n.tinymce__oxide--tox-editor-dock-transition.tinymce__oxide--tox-editor-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap{flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-invalid) .tinymce__oxide--tox-control-wrap__status-icon-invalid,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-unknown) .tinymce__oxide--tox-control-wrap__status-icon-unknown,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-valid) .tinymce__oxide--tox-control-wrap__status-icon-valid{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-invalid svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-unknown svg{fill:orange}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-valid svg{fill:green}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-right:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap__status-icon-wrap{right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap__status-icon-wrap{left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-menu{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-autocompleter-highlight{font-weight:700}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input{display:flex;position:relative;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:focus:not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span[aria-disabled=true]{cursor:not-allowed}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-left:36px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input span{left:6px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-right:36px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input span{right:6px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-label,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{padding:0 8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-label{padding:0 0 0 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group{box-sizing:border-box;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form-group--maximize{flex:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--error{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--collection{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--2col>.tinymce__oxide--tox-form__group{width:calc(50% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--3col>.tinymce__oxide--tox-form__group{width:calc(100% / 3 - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--4col>.tinymce__oxide--tox-form__group{width:calc(25% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__controls-h-stack{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--inline{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-textarea{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-lock.tinymce__oxide--tox-locked .tinymce__oxide--tox-lock-icon__unlock,.tinymce__oxide--tox .tinymce__oxide--tox-lock:not(.tinymce__oxide--tox-locked) .tinymce__oxide--tox-lock-icon__lock{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select,.tinymce__oxide--tox .tinymce__oxide--tox-textarea,.tinymce__oxide--tox .tinymce__oxide--tox-textfield,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea[disabled],.tinymce__oxide--tox .tinymce__oxide--tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textarea:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar-textfield+*{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar-textfield+*{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select{align-items:center;display:flex}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-listboxfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-listboxfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select::-ms-expand{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-right:24px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-left:24px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea{appearance:textarea;white-space:pre-wrap}\n\n.tinymce__oxide--tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox-statusbar__resize-handle{display:none}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen{background-color:transparent;z-index:1200}\n\n.tinymce__oxide--tox-shadowhost.tinymce__oxide--tox-fullscreen{z-index:1200}\n\n.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux,.tinymce__oxide--tox-fullscreen~.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux{z-index:1201}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-help__more-link{list-style:none;margin-top:1em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools{width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image,.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image+.tinymce__oxide--tox-image-tools__toolbar{margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-spacer{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-move{border:0;cursor:move;position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-left:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-right:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-right:32px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-insert-table-picker{margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker .tinymce__oxide--tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n){border-right:0}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n+1){border-right:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--list{padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--toolbar{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--grid{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu__label blockquote,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label code,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h1,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h2,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h3,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h4,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h5,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h6,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-menubar{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:hover:not(:disabled):not(.tinymce__oxide--tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled] .tinymce__oxide--tox-mbtn__select-label{cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:grid;font-size:14px;font-weight:400;grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification p{font-size:14px;font-weight:400}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification a{text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--in{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success a{color:#547831}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error a{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn p,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn a,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn svg,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body{align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*+*{margin-top:1rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon{align-self:center;-ms-grid-column-span:1;grid-column-end:2;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__dismiss{align-self:start;-ms-grid-column-span:1;grid-column-end:4;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification .tinymce__oxide--tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;grid-row-start:2;justify-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop{display:inline-block;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing{transition:width .1s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing .tinymce__oxide--tox-toolbar{flex-wrap:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog>:not(.tinymce__oxide--tox-toolbar){margin:4px 4px 4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog .tinymce__oxide--tox-toolbar{background-color:transparent;margin-bottom:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{left:50%;top:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::before{left:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::before{left:calc(100% - 20px)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__slider{display:flex;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-closed{opacity:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-open{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-growing,.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-selector{height:12px;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-source-code{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div{animation:tinymce__oxide--tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(1){animation-delay:-.32s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(2){animation-delay:-.16s}\n\n@keyframes tinymce__oxide--tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-spinner>div:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-spinner>div:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path>*{display:inline;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__path>*{margin-right:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__branding{margin-left:1ch}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar{flex-direction:row-reverse}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar__path>*{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber{z-index:1299}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn.tinymce__oxide--tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover>*,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled) svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--md{height:51px;width:51px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--lg{flex-direction:column;height:68px;width:68px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--return{align-self:stretch;height:unset;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--labeled{padding:0 4px;width:unset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--bespoke .tinymce__oxide--tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button>*{border-radius:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron{width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn{margin:0}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn:first-child{width:30px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button__chevron{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:hover,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-overlord{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow.tinymce__oxide--tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar-overlord .tinymce__oxide--tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop .tinymce__oxide--tox-toolbar{border-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--no-divider{background-image:none}\n\n.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar-overlord:first-child .tinymce__oxide--tox-toolbar__primary,.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar:first-child{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux .tinymce__oxide--tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group--pull-right{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling .tinymce__oxide--tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip{display:inline-block;padding:8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__arrow{position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--down .tinymce__oxide--tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--up .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--right .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--left .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:only-child{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:\"\";height:100%;position:absolute;width:100%;z-index:1000}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tab{cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools-edit-panel{height:60px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__sidebar{height:60px}\n`;\n },\n 'tox': 'tinymce__oxide--tox',\n 'tox-tinymce': 'tinymce__oxide--tox-tinymce',\n 'tox-tinymce-inline': 'tinymce__oxide--tox-tinymce-inline',\n 'tox-editor-header': 'tinymce__oxide--tox-editor-header',\n 'tox-tinymce-aux': 'tinymce__oxide--tox-tinymce-aux',\n 'accessibility-issue__header': 'tinymce__oxide--accessibility-issue__header',\n 'accessibility-issue__description': 'tinymce__oxide--accessibility-issue__description',\n 'accessibility-issue__repair': 'tinymce__oxide--accessibility-issue__repair',\n 'tox-dialog__body-content': 'tinymce__oxide--tox-dialog__body-content',\n 'accessibility-issue--info': 'tinymce__oxide--accessibility-issue--info',\n 'tox-form__group': 'tinymce__oxide--tox-form__group',\n 'tox-icon': 'tinymce__oxide--tox-icon',\n 'accessibility-issue--warn': 'tinymce__oxide--accessibility-issue--warn',\n 'accessibility-issue--error': 'tinymce__oxide--accessibility-issue--error',\n 'accessibility-issue--success': 'tinymce__oxide--accessibility-issue--success',\n 'tox-button': 'tinymce__oxide--tox-button',\n 'tox-anchorbar': 'tinymce__oxide--tox-anchorbar',\n 'tox-bar': 'tinymce__oxide--tox-bar',\n 'tox-button--secondary': 'tinymce__oxide--tox-button--secondary',\n 'tox-button--icon': 'tinymce__oxide--tox-button--icon',\n 'tox-button-link': 'tinymce__oxide--tox-button-link',\n 'tox-button-link--sm': 'tinymce__oxide--tox-button-link--sm',\n 'tox-button--naked': 'tinymce__oxide--tox-button--naked',\n 'tox-checkbox': 'tinymce__oxide--tox-checkbox',\n 'tox-checkbox__input': 'tinymce__oxide--tox-checkbox__input',\n 'tox-checkbox__icons': 'tinymce__oxide--tox-checkbox__icons',\n 'tox-checkbox-icon__unchecked': 'tinymce__oxide--tox-checkbox-icon__unchecked',\n 'tox-checkbox-icon__indeterminate': 'tinymce__oxide--tox-checkbox-icon__indeterminate',\n 'tox-checkbox-icon__checked': 'tinymce__oxide--tox-checkbox-icon__checked',\n 'tox-checkbox--disabled': 'tinymce__oxide--tox-checkbox--disabled',\n 'tox-checkbox__label': 'tinymce__oxide--tox-checkbox__label',\n 'tox-collection--toolbar': 'tinymce__oxide--tox-collection--toolbar',\n 'tox-collection__group': 'tinymce__oxide--tox-collection__group',\n 'tox-collection--grid': 'tinymce__oxide--tox-collection--grid',\n 'tox-collection--list': 'tinymce__oxide--tox-collection--list',\n 'tox-collection__group-heading': 'tinymce__oxide--tox-collection__group-heading',\n 'tox-collection__item': 'tinymce__oxide--tox-collection__item',\n 'tox-collection__item--enabled': 'tinymce__oxide--tox-collection__item--enabled',\n 'tox-collection__item--active': 'tinymce__oxide--tox-collection__item--active',\n 'tox-collection__item--state-disabled': 'tinymce__oxide--tox-collection__item--state-disabled',\n 'tox-collection__item-checkmark': 'tinymce__oxide--tox-collection__item-checkmark',\n 'tox-collection__item-icon': 'tinymce__oxide--tox-collection__item-icon',\n 'tox-collection--toolbar-lg': 'tinymce__oxide--tox-collection--toolbar-lg',\n 'tox-collection__item-label': 'tinymce__oxide--tox-collection__item-label',\n 'tox-collection__item-accessory': 'tinymce__oxide--tox-collection__item-accessory',\n 'tox-collection__item-caret': 'tinymce__oxide--tox-collection__item-caret',\n 'tox-collection--horizontal': 'tinymce__oxide--tox-collection--horizontal',\n 'tox-collection__item-container': 'tinymce__oxide--tox-collection__item-container',\n 'tox-collection__item-container--row': 'tinymce__oxide--tox-collection__item-container--row',\n 'tox-collection__item-container--align-left': 'tinymce__oxide--tox-collection__item-container--align-left',\n 'tox-collection__item-container--align-right': 'tinymce__oxide--tox-collection__item-container--align-right',\n 'tox-collection__item-container--valign-top': 'tinymce__oxide--tox-collection__item-container--valign-top',\n 'tox-collection__item-container--valign-middle': 'tinymce__oxide--tox-collection__item-container--valign-middle',\n 'tox-collection__item-container--valign-bottom': 'tinymce__oxide--tox-collection__item-container--valign-bottom',\n 'tox-collection__item-container--column': 'tinymce__oxide--tox-collection__item-container--column',\n 'tox-collection': 'tinymce__oxide--tox-collection',\n 'tox-collection__item-icon-rtl': 'tinymce__oxide--tox-collection__item-icon-rtl',\n 'tox-color-picker-container': 'tinymce__oxide--tox-color-picker-container',\n 'tox-sv-palette': 'tinymce__oxide--tox-sv-palette',\n 'tox-sv-palette-spectrum': 'tinymce__oxide--tox-sv-palette-spectrum',\n 'tox-sv-palette-thumb': 'tinymce__oxide--tox-sv-palette-thumb',\n 'tox-sv-palette-inner-thumb': 'tinymce__oxide--tox-sv-palette-inner-thumb',\n 'tox-hue-slider': 'tinymce__oxide--tox-hue-slider',\n 'tox-hue-slider-spectrum': 'tinymce__oxide--tox-hue-slider-spectrum',\n 'tox-hue-slider-thumb': 'tinymce__oxide--tox-hue-slider-thumb',\n 'tox-rgb-form': 'tinymce__oxide--tox-rgb-form',\n 'tox-invalid': 'tinymce__oxide--tox-invalid',\n 'tox-rgba-preview': 'tinymce__oxide--tox-rgba-preview',\n 'tox-toolbar': 'tinymce__oxide--tox-toolbar',\n 'tox-swatches': 'tinymce__oxide--tox-swatches',\n 'tox-toolbar__overflow': 'tinymce__oxide--tox-toolbar__overflow',\n 'tox-toolbar__primary': 'tinymce__oxide--tox-toolbar__primary',\n 'tox-swatches-menu': 'tinymce__oxide--tox-swatches-menu',\n 'tox-swatches__row': 'tinymce__oxide--tox-swatches__row',\n 'tox-swatch': 'tinymce__oxide--tox-swatch',\n 'tox-swatch--remove': 'tinymce__oxide--tox-swatch--remove',\n 'tox-swatches__picker-btn': 'tinymce__oxide--tox-swatches__picker-btn',\n 'tox-comment-thread': 'tinymce__oxide--tox-comment-thread',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment__header': 'tinymce__oxide--tox-comment__header',\n 'tox-comment__date': 'tinymce__oxide--tox-comment__date',\n 'tox-comment__body': 'tinymce__oxide--tox-comment__body',\n 'tox-comment__expander': 'tinymce__oxide--tox-comment__expander',\n 'tox-comment__buttonspacing': 'tinymce__oxide--tox-comment__buttonspacing',\n 'tox-comment-thread__overlay': 'tinymce__oxide--tox-comment-thread__overlay',\n 'tox-comment__reply': 'tinymce__oxide--tox-comment__reply',\n 'tox-comment__edit': 'tinymce__oxide--tox-comment__edit',\n 'tox-comment__gradient': 'tinymce__oxide--tox-comment__gradient',\n 'tox-comment__overlay': 'tinymce__oxide--tox-comment__overlay',\n 'tox-comment__loading-text': 'tinymce__oxide--tox-comment__loading-text',\n 'tox-comment__overlaytext': 'tinymce__oxide--tox-comment__overlaytext',\n 'tox-comment__busy-spinner': 'tinymce__oxide--tox-comment__busy-spinner',\n 'tox-comment__scroll': 'tinymce__oxide--tox-comment__scroll',\n 'tox-conversations': 'tinymce__oxide--tox-conversations',\n 'tox-user': 'tinymce__oxide--tox-user',\n 'tox-user__avatar': 'tinymce__oxide--tox-user__avatar',\n 'tox-user__name': 'tinymce__oxide--tox-user__name',\n 'tox-dialog-wrap': 'tinymce__oxide--tox-dialog-wrap',\n 'tox-dialog-wrap__backdrop': 'tinymce__oxide--tox-dialog-wrap__backdrop',\n 'tox-dialog-wrap__backdrop--opaque': 'tinymce__oxide--tox-dialog-wrap__backdrop--opaque',\n 'tox-dialog': 'tinymce__oxide--tox-dialog',\n 'tox-force-desktop': 'tinymce__oxide--tox-force-desktop',\n 'tox-dialog-inline': 'tinymce__oxide--tox-dialog-inline',\n 'tox-dialog__header': 'tinymce__oxide--tox-dialog__header',\n 'tox-dialog__draghandle': 'tinymce__oxide--tox-dialog__draghandle',\n 'tox-dialog__dismiss': 'tinymce__oxide--tox-dialog__dismiss',\n 'tox-dialog__title': 'tinymce__oxide--tox-dialog__title',\n 'tox-dialog__body': 'tinymce__oxide--tox-dialog__body',\n 'tox-dialog__body-nav': 'tinymce__oxide--tox-dialog__body-nav',\n 'tox-dialog__body-nav-item': 'tinymce__oxide--tox-dialog__body-nav-item',\n 'tox-dialog__body-nav-item--active': 'tinymce__oxide--tox-dialog__body-nav-item--active',\n 'tox-dialog--width-lg': 'tinymce__oxide--tox-dialog--width-lg',\n 'tox-dialog--width-md': 'tinymce__oxide--tox-dialog--width-md',\n 'tox-dialog__body-content--centered': 'tinymce__oxide--tox-dialog__body-content--centered',\n 'tox-dialog__footer': 'tinymce__oxide--tox-dialog__footer',\n 'tox-dialog__footer-end': 'tinymce__oxide--tox-dialog__footer-end',\n 'tox-dialog__footer-start': 'tinymce__oxide--tox-dialog__footer-start',\n 'tox-dialog__busy-spinner': 'tinymce__oxide--tox-dialog__busy-spinner',\n 'tox-dialog__table': 'tinymce__oxide--tox-dialog__table',\n 'tox-dialog__popups': 'tinymce__oxide--tox-dialog__popups',\n 'tox-dialog__body-iframe': 'tinymce__oxide--tox-dialog__body-iframe',\n 'tox-navobj': 'tinymce__oxide--tox-navobj',\n 'tox-dialog-dock-fadeout': 'tinymce__oxide--tox-dialog-dock-fadeout',\n 'tox-dialog-dock-fadein': 'tinymce__oxide--tox-dialog-dock-fadein',\n 'tox-dialog-dock-transition': 'tinymce__oxide--tox-dialog-dock-transition',\n 'tox-platform-ie': 'tinymce__oxide--tox-platform-ie',\n 'tox-dialog__disable-scroll': 'tinymce__oxide--tox-dialog__disable-scroll',\n 'tox-dropzone-container': 'tinymce__oxide--tox-dropzone-container',\n 'tox-dropzone': 'tinymce__oxide--tox-dropzone',\n 'tox-edit-area': 'tinymce__oxide--tox-edit-area',\n 'tox-edit-area__iframe': 'tinymce__oxide--tox-edit-area__iframe',\n 'tox-inline-edit-area': 'tinymce__oxide--tox-inline-edit-area',\n 'tox-editor-container': 'tinymce__oxide--tox-editor-container',\n 'tox-tinymce--toolbar-bottom': 'tinymce__oxide--tox-tinymce--toolbar-bottom',\n 'tox-tinymce--toolbar-sticky-on': 'tinymce__oxide--tox-tinymce--toolbar-sticky-on',\n 'tox-editor-dock-fadeout': 'tinymce__oxide--tox-editor-dock-fadeout',\n 'tox-editor-dock-fadein': 'tinymce__oxide--tox-editor-dock-fadein',\n 'tox-editor-dock-transition': 'tinymce__oxide--tox-editor-dock-transition',\n 'tox-control-wrap': 'tinymce__oxide--tox-control-wrap',\n 'tox-control-wrap--status-invalid': 'tinymce__oxide--tox-control-wrap--status-invalid',\n 'tox-control-wrap__status-icon-invalid': 'tinymce__oxide--tox-control-wrap__status-icon-invalid',\n 'tox-control-wrap--status-unknown': 'tinymce__oxide--tox-control-wrap--status-unknown',\n 'tox-control-wrap__status-icon-unknown': 'tinymce__oxide--tox-control-wrap__status-icon-unknown',\n 'tox-control-wrap--status-valid': 'tinymce__oxide--tox-control-wrap--status-valid',\n 'tox-control-wrap__status-icon-valid': 'tinymce__oxide--tox-control-wrap__status-icon-valid',\n 'tox-control-wrap__status-icon-wrap': 'tinymce__oxide--tox-control-wrap__status-icon-wrap',\n 'tox-textfield': 'tinymce__oxide--tox-textfield',\n 'tox-autocompleter': 'tinymce__oxide--tox-autocompleter',\n 'tox-menu': 'tinymce__oxide--tox-menu',\n 'tox-autocompleter-highlight': 'tinymce__oxide--tox-autocompleter-highlight',\n 'tox-color-input': 'tinymce__oxide--tox-color-input',\n 'tox-label': 'tinymce__oxide--tox-label',\n 'tox-toolbar-label': 'tinymce__oxide--tox-toolbar-label',\n 'tox-form': 'tinymce__oxide--tox-form',\n 'tox-form-group--maximize': 'tinymce__oxide--tox-form-group--maximize',\n 'tox-form__group--error': 'tinymce__oxide--tox-form__group--error',\n 'tox-form__group--collection': 'tinymce__oxide--tox-form__group--collection',\n 'tox-form__grid': 'tinymce__oxide--tox-form__grid',\n 'tox-form__grid--2col': 'tinymce__oxide--tox-form__grid--2col',\n 'tox-form__grid--3col': 'tinymce__oxide--tox-form__grid--3col',\n 'tox-form__grid--4col': 'tinymce__oxide--tox-form__grid--4col',\n 'tox-form__controls-h-stack': 'tinymce__oxide--tox-form__controls-h-stack',\n 'tox-form__group--inline': 'tinymce__oxide--tox-form__group--inline',\n 'tox-form__group--stretched': 'tinymce__oxide--tox-form__group--stretched',\n 'tox-textarea': 'tinymce__oxide--tox-textarea',\n 'tox-lock': 'tinymce__oxide--tox-lock',\n 'tox-locked': 'tinymce__oxide--tox-locked',\n 'tox-lock-icon__unlock': 'tinymce__oxide--tox-lock-icon__unlock',\n 'tox-lock-icon__lock': 'tinymce__oxide--tox-lock-icon__lock',\n 'tox-listboxfield': 'tinymce__oxide--tox-listboxfield',\n 'tox-listbox--select': 'tinymce__oxide--tox-listbox--select',\n 'tox-toolbar-textfield': 'tinymce__oxide--tox-toolbar-textfield',\n 'tox-naked-btn': 'tinymce__oxide--tox-naked-btn',\n 'tox-listbox__select-label': 'tinymce__oxide--tox-listbox__select-label',\n 'tox-listbox__select-chevron': 'tinymce__oxide--tox-listbox__select-chevron',\n 'tox-selectfield': 'tinymce__oxide--tox-selectfield',\n 'tox-fullscreen': 'tinymce__oxide--tox-fullscreen',\n 'tox-statusbar__resize-handle': 'tinymce__oxide--tox-statusbar__resize-handle',\n 'tox-shadowhost': 'tinymce__oxide--tox-shadowhost',\n 'tox-help__more-link': 'tinymce__oxide--tox-help__more-link',\n 'tox-image-tools': 'tinymce__oxide--tox-image-tools',\n 'tox-image-tools__toolbar': 'tinymce__oxide--tox-image-tools__toolbar',\n 'tox-image-tools__image': 'tinymce__oxide--tox-image-tools__image',\n 'tox-image-tools__image-bg': 'tinymce__oxide--tox-image-tools__image-bg',\n 'tox-spacer': 'tinymce__oxide--tox-spacer',\n 'tox-croprect-block': 'tinymce__oxide--tox-croprect-block',\n 'tox-croprect-handle': 'tinymce__oxide--tox-croprect-handle',\n 'tox-croprect-handle-move': 'tinymce__oxide--tox-croprect-handle-move',\n 'tox-croprect-handle-nw': 'tinymce__oxide--tox-croprect-handle-nw',\n 'tox-croprect-handle-ne': 'tinymce__oxide--tox-croprect-handle-ne',\n 'tox-croprect-handle-sw': 'tinymce__oxide--tox-croprect-handle-sw',\n 'tox-croprect-handle-se': 'tinymce__oxide--tox-croprect-handle-se',\n 'tox-slider': 'tinymce__oxide--tox-slider',\n 'tox-insert-table-picker': 'tinymce__oxide--tox-insert-table-picker',\n 'tox-insert-table-picker__selected': 'tinymce__oxide--tox-insert-table-picker__selected',\n 'tox-insert-table-picker__label': 'tinymce__oxide--tox-insert-table-picker__label',\n 'tox-menu__label': 'tinymce__oxide--tox-menu__label',\n 'tox-menubar': 'tinymce__oxide--tox-menubar',\n 'tox-mbtn': 'tinymce__oxide--tox-mbtn',\n 'tox-mbtn--active': 'tinymce__oxide--tox-mbtn--active',\n 'tox-mbtn__select-label': 'tinymce__oxide--tox-mbtn__select-label',\n 'tox-mbtn__select-chevron': 'tinymce__oxide--tox-mbtn__select-chevron',\n 'tox-notification': 'tinymce__oxide--tox-notification',\n 'tox-notification--in': 'tinymce__oxide--tox-notification--in',\n 'tox-notification--success': 'tinymce__oxide--tox-notification--success',\n 'tox-notification--error': 'tinymce__oxide--tox-notification--error',\n 'tox-notification--warn': 'tinymce__oxide--tox-notification--warn',\n 'tox-notification--warning': 'tinymce__oxide--tox-notification--warning',\n 'tox-notification--info': 'tinymce__oxide--tox-notification--info',\n 'tox-notification__body': 'tinymce__oxide--tox-notification__body',\n 'tox-notification__icon': 'tinymce__oxide--tox-notification__icon',\n 'tox-notification__dismiss': 'tinymce__oxide--tox-notification__dismiss',\n 'tox-progress-bar': 'tinymce__oxide--tox-progress-bar',\n 'tox-pop': 'tinymce__oxide--tox-pop',\n 'tox-pop--resizing': 'tinymce__oxide--tox-pop--resizing',\n 'tox-pop__dialog': 'tinymce__oxide--tox-pop__dialog',\n 'tox-pop--bottom': 'tinymce__oxide--tox-pop--bottom',\n 'tox-pop--top': 'tinymce__oxide--tox-pop--top',\n 'tox-pop--left': 'tinymce__oxide--tox-pop--left',\n 'tox-pop--right': 'tinymce__oxide--tox-pop--right',\n 'tox-pop--align-left': 'tinymce__oxide--tox-pop--align-left',\n 'tox-pop--align-right': 'tinymce__oxide--tox-pop--align-right',\n 'tox-sidebar-wrap': 'tinymce__oxide--tox-sidebar-wrap',\n 'tox-sidebar': 'tinymce__oxide--tox-sidebar',\n 'tox-sidebar__slider': 'tinymce__oxide--tox-sidebar__slider',\n 'tox-sidebar__pane-container': 'tinymce__oxide--tox-sidebar__pane-container',\n 'tox-sidebar__pane': 'tinymce__oxide--tox-sidebar__pane',\n 'tox-sidebar--sliding-closed': 'tinymce__oxide--tox-sidebar--sliding-closed',\n 'tox-sidebar--sliding-open': 'tinymce__oxide--tox-sidebar--sliding-open',\n 'tox-sidebar--sliding-growing': 'tinymce__oxide--tox-sidebar--sliding-growing',\n 'tox-sidebar--sliding-shrinking': 'tinymce__oxide--tox-sidebar--sliding-shrinking',\n 'tox-selector': 'tinymce__oxide--tox-selector',\n 'tox-platform-touch': 'tinymce__oxide--tox-platform-touch',\n 'tox-slider__rail': 'tinymce__oxide--tox-slider__rail',\n 'tox-slider__handle': 'tinymce__oxide--tox-slider__handle',\n 'tox-source-code': 'tinymce__oxide--tox-source-code',\n 'tox-spinner': 'tinymce__oxide--tox-spinner',\n 'tam-bouncing-dots': 'tinymce__oxide--tam-bouncing-dots',\n 'tox-statusbar': 'tinymce__oxide--tox-statusbar',\n 'tox-statusbar__text-container': 'tinymce__oxide--tox-statusbar__text-container',\n 'tox-statusbar__path': 'tinymce__oxide--tox-statusbar__path',\n 'tox-statusbar__wordcount': 'tinymce__oxide--tox-statusbar__wordcount',\n 'tox-statusbar__path-item': 'tinymce__oxide--tox-statusbar__path-item',\n 'tox-statusbar__branding': 'tinymce__oxide--tox-statusbar__branding',\n 'tox-throbber': 'tinymce__oxide--tox-throbber',\n 'tox-throbber__busy-spinner': 'tinymce__oxide--tox-throbber__busy-spinner',\n 'tox-tbtn': 'tinymce__oxide--tox-tbtn',\n 'tox-tbtn-more': 'tinymce__oxide--tox-tbtn-more',\n 'tox-tbtn--disabled': 'tinymce__oxide--tox-tbtn--disabled',\n 'tox-tbtn--enabled': 'tinymce__oxide--tox-tbtn--enabled',\n 'tox-tbtn--md': 'tinymce__oxide--tox-tbtn--md',\n 'tox-tbtn--lg': 'tinymce__oxide--tox-tbtn--lg',\n 'tox-tbtn--return': 'tinymce__oxide--tox-tbtn--return',\n 'tox-tbtn--labeled': 'tinymce__oxide--tox-tbtn--labeled',\n 'tox-tbtn__vlabel': 'tinymce__oxide--tox-tbtn__vlabel',\n 'tox-tbtn--select': 'tinymce__oxide--tox-tbtn--select',\n 'tox-tbtn__select-label': 'tinymce__oxide--tox-tbtn__select-label',\n 'tox-tbtn__select-chevron': 'tinymce__oxide--tox-tbtn__select-chevron',\n 'tox-tbtn--bespoke': 'tinymce__oxide--tox-tbtn--bespoke',\n 'tox-split-button': 'tinymce__oxide--tox-split-button',\n 'tox-split-button__chevron': 'tinymce__oxide--tox-split-button__chevron',\n 'tox-toolbar-overlord': 'tinymce__oxide--tox-toolbar-overlord',\n 'tox-toolbar__overflow--closed': 'tinymce__oxide--tox-toolbar__overflow--closed',\n 'tox-toolbar__overflow--growing': 'tinymce__oxide--tox-toolbar__overflow--growing',\n 'tox-toolbar__overflow--shrinking': 'tinymce__oxide--tox-toolbar__overflow--shrinking',\n 'tox-toolbar--scrolling': 'tinymce__oxide--tox-toolbar--scrolling',\n 'tox-toolbar--no-divider': 'tinymce__oxide--tox-toolbar--no-divider',\n 'tox-tbtn__icon-rtl': 'tinymce__oxide--tox-tbtn__icon-rtl',\n 'tox-toolbar__group': 'tinymce__oxide--tox-toolbar__group',\n 'tox-toolbar__group--pull-right': 'tinymce__oxide--tox-toolbar__group--pull-right',\n 'tox-tooltip': 'tinymce__oxide--tox-tooltip',\n 'tox-tooltip__body': 'tinymce__oxide--tox-tooltip__body',\n 'tox-tooltip__arrow': 'tinymce__oxide--tox-tooltip__arrow',\n 'tox-tooltip--down': 'tinymce__oxide--tox-tooltip--down',\n 'tox-tooltip--up': 'tinymce__oxide--tox-tooltip--up',\n 'tox-tooltip--right': 'tinymce__oxide--tox-tooltip--right',\n 'tox-tooltip--left': 'tinymce__oxide--tox-tooltip--left',\n 'tox-well': 'tinymce__oxide--tox-well',\n 'tox-custom-editor': 'tinymce__oxide--tox-custom-editor',\n 'tox-dialog-loading': 'tinymce__oxide--tox-dialog-loading',\n 'tox-tab': 'tinymce__oxide--tox-tab',\n 'tox-dialog__content-js': 'tinymce__oxide--tox-dialog__content-js',\n 'tox-image-tools-edit-panel': 'tinymce__oxide--tox-image-tools-edit-panel',\n 'tox-image-tools__sidebar': 'tinymce__oxide--tox-image-tools__sidebar'\n};\nconst contentCSSBinding = {\n componentId: 'bKkob',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n cursor: default;\n display: inline-block;\n height: 12px !important;\n padding: 0 2px;\n -webkit-user-modify: read-only;\n -moz-user-modify: read-only;\n -webkit-user-select: all;\n user-select: all;\n width: 8px !important;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor[data-mce-selected] {\n outline-offset: 1px;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment {\n background-color: #fff0b7;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment--active {\n background-color: #ffe168;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden) {\n list-style: none;\n margin: 0.25em 0;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n cursor: pointer;\n height: 1em;\n margin-left: -1.5em;\n margin-top: 0.125em;\n position: absolute;\n width: 1em;\n}\n.tinymce__oxide--tox-checklist li:not(.tinymce__oxide--tox-checklist--hidden).tinymce__oxide--tox-checklist--checked::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n}\n[dir=rtl] .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n margin-left: 0;\n margin-right: -1.5em;\n}\n\n\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n color: black;\n background: none;\n text-shadow: 0 1px white;\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n font-size: 1em;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n tab-size: 4;\n -webkit-hyphens: none;\n hyphens: none;\n}\n[dir=\"ltr\"] code[class*=\"language-\"],\n[dir=\"ltr\"] pre[class*=\"language-\"] {\n text-align: left;\n}\n[dir=\"rtl\"] code[class*=\"language-\"],\n[dir=\"rtl\"] pre[class*=\"language-\"] {\n text-align: left;\n}\npre[class*=\"language-\"]::selection,\npre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection,\ncode[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: #b3d4fc;\n}\n@media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n}\n\npre[class*=\"language-\"] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n}\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n background: #f5f2f0;\n}\n\n:not(pre) > code[class*=\"language-\"] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n}\n.tinymce__oxide--token.tinymce__oxide--comment,\n.tinymce__oxide--token.tinymce__oxide--prolog,\n.tinymce__oxide--token.tinymce__oxide--doctype,\n.tinymce__oxide--token.tinymce__oxide--cdata {\n color: slategray;\n}\n.tinymce__oxide--token.tinymce__oxide--punctuation {\n color: #999;\n}\n.tinymce__oxide--namespace {\n opacity: 0.7;\n}\n.tinymce__oxide--token.tinymce__oxide--property,\n.tinymce__oxide--token.tinymce__oxide--tag,\n.tinymce__oxide--token.tinymce__oxide--boolean,\n.tinymce__oxide--token.tinymce__oxide--number,\n.tinymce__oxide--token.tinymce__oxide--constant,\n.tinymce__oxide--token.tinymce__oxide--symbol,\n.tinymce__oxide--token.tinymce__oxide--deleted {\n color: #905;\n}\n.tinymce__oxide--token.tinymce__oxide--selector,\n.tinymce__oxide--token.tinymce__oxide--attr-name,\n.tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--token.tinymce__oxide--char,\n.tinymce__oxide--token.tinymce__oxide--builtin,\n.tinymce__oxide--token.tinymce__oxide--inserted {\n color: #690;\n}\n.tinymce__oxide--token.tinymce__oxide--operator,\n.tinymce__oxide--token.tinymce__oxide--entity,\n.tinymce__oxide--token.tinymce__oxide--url,\n.tinymce__oxide--language-css .tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--style .tinymce__oxide--token.tinymce__oxide--string {\n color: #9a6e3a;\n background: hsla(0, 0%, 100%, 0.5);\n}\n.tinymce__oxide--token.tinymce__oxide--atrule,\n.tinymce__oxide--token.tinymce__oxide--attr-value,\n.tinymce__oxide--token.tinymce__oxide--keyword {\n color: #07a;\n}\n.tinymce__oxide--token.tinymce__oxide--function,\n.tinymce__oxide--token.tinymce__oxide--class-name {\n color: #DD4A68;\n}\n.tinymce__oxide--token.tinymce__oxide--regex,\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--variable {\n color: #e90;\n}\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--bold {\n font-weight: bold;\n}\n.tinymce__oxide--token.tinymce__oxide--italic {\n font-style: italic;\n}\n.tinymce__oxide--token.tinymce__oxide--entity {\n cursor: help;\n}\n\n.tinymce__oxide--mce-content-body {\n overflow-wrap: break-word;\n word-wrap: break-word;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret {\n background-color: black;\n background-color: currentColor;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret-hidden {\n display: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-caret] {\n left: -1000px;\n margin: 0;\n padding: 0;\n position: absolute;\n right: auto;\n top: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-offscreen-selection {\n left: -2000000px;\n max-width: 1000000px;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] {\n cursor: default;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=true] {\n cursor: text;\n}\n.tinymce__oxide--tox-cursor-format-painter {\n cursor: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A\"), default;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--image.tinymce__oxide--align-center {\n display: table;\n margin-left: auto;\n margin-right: auto;\n}\n.tinymce__oxide--mce-preview-object {\n border: 1px solid gray;\n display: inline-block;\n line-height: 0;\n margin: 0 2px 0 2px;\n position: relative;\n}\n.tinymce__oxide--mce-preview-object .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-preview-object[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--mce-object {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n border: 1px dashed #aaa;\n}\n.tinymce__oxide--mce-pagebreak {\n border: 1px dashed #aaa;\n cursor: default;\n display: block;\n height: 5px;\n margin-top: 15px;\n page-break-before: always;\n width: 100%;\n}\n@media print {\n .tinymce__oxide--mce-pagebreak {\n border: 0;\n }\n}\n.tinymce__oxide--tiny-pageembed .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--tiny-pageembed {\n display: inline-block;\n position: relative;\n}\n.tinymce__oxide--tiny-pageembed--21by9,\n.tinymce__oxide--tiny-pageembed--16by9,\n.tinymce__oxide--tiny-pageembed--4by3,\n.tinymce__oxide--tiny-pageembed--1by1 {\n display: block;\n overflow: hidden;\n padding: 0;\n position: relative;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 {\n padding-top: 42.857143%;\n}\n.tinymce__oxide--tiny-pageembed--16by9 {\n padding-top: 56.25%;\n}\n.tinymce__oxide--tiny-pageembed--4by3 {\n padding-top: 75%;\n}\n.tinymce__oxide--tiny-pageembed--1by1 {\n padding-top: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 iframe,\n.tinymce__oxide--tiny-pageembed--16by9 iframe,\n.tinymce__oxide--tiny-pageembed--4by3 iframe,\n.tinymce__oxide--tiny-pageembed--1by1 iframe {\n border: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n color: rgba(34, 47, 62, 0.7);\n content: attr(data-mce-placeholder);\n position: absolute;\n}\n.tinymce__oxide--mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n left: 1px;\n}\n.tinymce__oxide--mce-content-body[dir=rtl][data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n right: 1px;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle {\n background-color: #4099ff;\n border-color: #4099ff;\n border-style: solid;\n border-width: 1px;\n box-sizing: border-box;\n height: 10px;\n position: absolute;\n width: 10px;\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:hover {\n background-color: #4099ff;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(1) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(2) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(3) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(4) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-backdrop {\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable {\n cursor: default;\n opacity: 0.5;\n outline: 1px dashed black;\n position: absolute;\n z-index: 10001;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns th,\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns td {\n border: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-helper {\n background: #555;\n background: rgba(0, 0, 0, 0.75);\n border: 1px;\n border-radius: 3px;\n color: white;\n display: none;\n font-family: sans-serif;\n font-size: 12px;\n line-height: 14px;\n margin: 5px 10px;\n padding: 5px;\n position: absolute;\n white-space: nowrap;\n z-index: 10002;\n}\n.tinymce__oxide--tox-rtc-user-selection {\n position: relative;\n}\n.tinymce__oxide--tox-rtc-user-cursor {\n bottom: 0;\n cursor: default;\n position: absolute;\n top: 0;\n width: 2px;\n}\n.tinymce__oxide--tox-rtc-user-cursor::before {\n background-color: inherit;\n border-radius: 50%;\n content: '';\n display: block;\n height: 8px;\n position: absolute;\n right: -3px;\n top: -3px;\n width: 8px;\n}\n.tinymce__oxide--tox-rtc-user-cursor:hover::after {\n background-color: inherit;\n border-radius: 100px;\n box-sizing: border-box;\n color: #fff;\n content: attr(data-user);\n display: block;\n font-size: 12px;\n font-weight: bold;\n left: -5px;\n min-height: 8px;\n min-width: 8px;\n padding: 0 12px;\n position: absolute;\n top: -11px;\n white-space: nowrap;\n z-index: 1000;\n}\n.tinymce__oxide--tox-rtc-user-selection--1 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #2dc26b;\n}\n.tinymce__oxide--tox-rtc-user-selection--2 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e03e2d;\n}\n.tinymce__oxide--tox-rtc-user-selection--3 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f1c40f;\n}\n.tinymce__oxide--tox-rtc-user-selection--4 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #3598db;\n}\n.tinymce__oxide--tox-rtc-user-selection--5 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #b96ad9;\n}\n.tinymce__oxide--tox-rtc-user-selection--6 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e67e23;\n}\n.tinymce__oxide--tox-rtc-user-selection--7 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #aaa69d;\n}\n.tinymce__oxide--tox-rtc-user-selection--8 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f368e0;\n}\n.tinymce__oxide--tox-rtc-remote-image {\n background: #eaeaea url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A\") no-repeat center center;\n border: 1px solid #ccc;\n min-height: 240px;\n min-width: 320px;\n}\n.tinymce__oxide--mce-match-marker {\n background: #aaa;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected::selection {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-content-body img[data-mce-selected],\n.tinymce__oxide--mce-content-body video[data-mce-selected],\n.tinymce__oxide--mce-content-body audio[data-mce-selected],\n.tinymce__oxide--mce-content-body object[data-mce-selected],\n.tinymce__oxide--mce-content-body embed[data-mce-selected],\n.tinymce__oxide--mce-content-body table[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body hr[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n outline-offset: 1px;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false][data-mce-selected] {\n cursor: not-allowed;\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:focus,\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:hover {\n outline: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-selected=\"inline-boundary\"] {\n background-color: #b4d7ff;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-edit-focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected],\n.tinymce__oxide--mce-content-body th[data-mce-selected] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::selection,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::selection {\n background: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected] *,\n.tinymce__oxide--mce-content-body th[data-mce-selected] * {\n outline: none;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n background-color: rgba(180, 215, 255, 0.7);\n border: 1px solid rgba(180, 215, 255, 0.7);\n bottom: -1px;\n content: '';\n left: -1px;\n mix-blend-mode: multiply;\n position: absolute;\n right: -1px;\n top: -1px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n .tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n border-color: rgba(0, 84, 180, 0.7);\n }\n}\n.tinymce__oxide--mce-content-body img::selection {\n background: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar {\n background-color: #b4d7ff;\n opacity: 0;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-cols {\n cursor: col-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-rows {\n cursor: row-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar.tinymce__oxide--ephox-snooker-resizer-bar-dragging {\n opacity: 1;\n}\n.tinymce__oxide--mce-spellchecker-word {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n height: 2rem;\n}\n.tinymce__oxide--mce-spellchecker-grammar {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n}\n.tinymce__oxide--mce-toc {\n border: 1px solid gray;\n}\n.tinymce__oxide--mce-toc h2 {\n margin: 4px;\n}\n.tinymce__oxide--mce-toc li {\n list-style-type: none;\n}\ntable[style*=\"border-width: 0px\"],\n.tinymce__oxide--mce-item-table:not([border]),\n.tinymce__oxide--mce-item-table[border=\"0\"],\ntable[style*=\"border-width: 0px\"] td,\n.tinymce__oxide--mce-item-table:not([border]) td,\n.tinymce__oxide--mce-item-table[border=\"0\"] td,\ntable[style*=\"border-width: 0px\"] th,\n.tinymce__oxide--mce-item-table:not([border]) th,\n.tinymce__oxide--mce-item-table[border=\"0\"] th,\ntable[style*=\"border-width: 0px\"] caption,\n.tinymce__oxide--mce-item-table:not([border]) caption,\n.tinymce__oxide--mce-item-table[border=\"0\"] caption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks p,\n.tinymce__oxide--mce-visualblocks h1,\n.tinymce__oxide--mce-visualblocks h2,\n.tinymce__oxide--mce-visualblocks h3,\n.tinymce__oxide--mce-visualblocks h4,\n.tinymce__oxide--mce-visualblocks h5,\n.tinymce__oxide--mce-visualblocks h6,\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks section,\n.tinymce__oxide--mce-visualblocks article,\n.tinymce__oxide--mce-visualblocks blockquote,\n.tinymce__oxide--mce-visualblocks address,\n.tinymce__oxide--mce-visualblocks pre,\n.tinymce__oxide--mce-visualblocks figure,\n.tinymce__oxide--mce-visualblocks figcaption,\n.tinymce__oxide--mce-visualblocks hgroup,\n.tinymce__oxide--mce-visualblocks aside,\n.tinymce__oxide--mce-visualblocks ul,\n.tinymce__oxide--mce-visualblocks ol,\n.tinymce__oxide--mce-visualblocks dl {\n background-repeat: no-repeat;\n border: 1px dashed #bbb;\n margin-left: 3px;\n padding-top: 10px;\n}\n.tinymce__oxide--mce-visualblocks p {\n background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);\n}\n.tinymce__oxide--mce-visualblocks h1 {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks h2 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h3 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);\n}\n.tinymce__oxide--mce-visualblocks h4 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h5 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h6 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]) {\n background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);\n}\n.tinymce__oxide--mce-visualblocks section {\n background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);\n}\n.tinymce__oxide--mce-visualblocks article {\n background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);\n}\n.tinymce__oxide--mce-visualblocks blockquote {\n background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);\n}\n.tinymce__oxide--mce-visualblocks address {\n background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);\n}\n.tinymce__oxide--mce-visualblocks pre {\n background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks figure {\n background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);\n}\n.tinymce__oxide--mce-visualblocks figcaption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks hgroup {\n background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);\n}\n.tinymce__oxide--mce-visualblocks aside {\n background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);\n}\n.tinymce__oxide--mce-visualblocks ul {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);\n}\n.tinymce__oxide--mce-visualblocks ol {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks dl {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) p,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h1,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h2,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h3,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h4,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h5,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h6,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) section,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) article,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) blockquote,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) address,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) pre,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figure,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figcaption,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) hgroup,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) aside,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ul,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ol,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) dl {\n margin-left: 3px;\n}\n.tinymce__oxide--mce-visualblocks[dir=rtl] p,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h1,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h2,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h3,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h4,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h5,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h6,\n.tinymce__oxide--mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks[dir=rtl] section,\n.tinymce__oxide--mce-visualblocks[dir=rtl] article,\n.tinymce__oxide--mce-visualblocks[dir=rtl] blockquote,\n.tinymce__oxide--mce-visualblocks[dir=rtl] address,\n.tinymce__oxide--mce-visualblocks[dir=rtl] pre,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figure,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figcaption,\n.tinymce__oxide--mce-visualblocks[dir=rtl] hgroup,\n.tinymce__oxide--mce-visualblocks[dir=rtl] aside,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ul,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ol,\n.tinymce__oxide--mce-visualblocks[dir=rtl] dl {\n background-position-x: right;\n margin-right: 3px;\n}\n.tinymce__oxide--mce-nbsp,\n.tinymce__oxide--mce-shy {\n background: #aaa;\n}\n.tinymce__oxide--mce-shy::after {\n content: '-';\n}\nbody {\n font-family: sans-serif;\n}\ntable {\n border-collapse: collapse;\n}\n`;\n },\n 'mce-content-body': 'tinymce__oxide--mce-content-body',\n 'mce-item-anchor': 'tinymce__oxide--mce-item-anchor',\n 'tox-comments-visible': 'tinymce__oxide--tox-comments-visible',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment--active': 'tinymce__oxide--tox-comment--active',\n 'tox-checklist': 'tinymce__oxide--tox-checklist',\n 'tox-checklist--hidden': 'tinymce__oxide--tox-checklist--hidden',\n 'tox-checklist--checked': 'tinymce__oxide--tox-checklist--checked',\n 'token': 'tinymce__oxide--token',\n 'comment': 'tinymce__oxide--comment',\n 'prolog': 'tinymce__oxide--prolog',\n 'doctype': 'tinymce__oxide--doctype',\n 'cdata': 'tinymce__oxide--cdata',\n 'punctuation': 'tinymce__oxide--punctuation',\n 'namespace': 'tinymce__oxide--namespace',\n 'property': 'tinymce__oxide--property',\n 'tag': 'tinymce__oxide--tag',\n 'boolean': 'tinymce__oxide--boolean',\n 'number': 'tinymce__oxide--number',\n 'constant': 'tinymce__oxide--constant',\n 'symbol': 'tinymce__oxide--symbol',\n 'deleted': 'tinymce__oxide--deleted',\n 'selector': 'tinymce__oxide--selector',\n 'attr-name': 'tinymce__oxide--attr-name',\n 'string': 'tinymce__oxide--string',\n 'char': 'tinymce__oxide--char',\n 'builtin': 'tinymce__oxide--builtin',\n 'inserted': 'tinymce__oxide--inserted',\n 'operator': 'tinymce__oxide--operator',\n 'entity': 'tinymce__oxide--entity',\n 'url': 'tinymce__oxide--url',\n 'language-css': 'tinymce__oxide--language-css',\n 'style': 'tinymce__oxide--style',\n 'atrule': 'tinymce__oxide--atrule',\n 'attr-value': 'tinymce__oxide--attr-value',\n 'keyword': 'tinymce__oxide--keyword',\n 'function': 'tinymce__oxide--function',\n 'class-name': 'tinymce__oxide--class-name',\n 'regex': 'tinymce__oxide--regex',\n 'important': 'tinymce__oxide--important',\n 'variable': 'tinymce__oxide--variable',\n 'bold': 'tinymce__oxide--bold',\n 'italic': 'tinymce__oxide--italic',\n 'mce-visual-caret': 'tinymce__oxide--mce-visual-caret',\n 'mce-visual-caret-hidden': 'tinymce__oxide--mce-visual-caret-hidden',\n 'mce-offscreen-selection': 'tinymce__oxide--mce-offscreen-selection',\n 'tox-cursor-format-painter': 'tinymce__oxide--tox-cursor-format-painter',\n 'align-left': 'tinymce__oxide--align-left',\n 'align-right': 'tinymce__oxide--align-right',\n 'image': 'tinymce__oxide--image',\n 'align-center': 'tinymce__oxide--align-center',\n 'mce-preview-object': 'tinymce__oxide--mce-preview-object',\n 'mce-shim': 'tinymce__oxide--mce-shim',\n 'mce-object': 'tinymce__oxide--mce-object',\n 'mce-pagebreak': 'tinymce__oxide--mce-pagebreak',\n 'tiny-pageembed': 'tinymce__oxide--tiny-pageembed',\n 'tiny-pageembed--21by9': 'tinymce__oxide--tiny-pageembed--21by9',\n 'tiny-pageembed--16by9': 'tinymce__oxide--tiny-pageembed--16by9',\n 'tiny-pageembed--4by3': 'tinymce__oxide--tiny-pageembed--4by3',\n 'tiny-pageembed--1by1': 'tinymce__oxide--tiny-pageembed--1by1',\n 'mce-visualblocks': 'tinymce__oxide--mce-visualblocks',\n 'mce-resizehandle': 'tinymce__oxide--mce-resizehandle',\n 'mce-resize-backdrop': 'tinymce__oxide--mce-resize-backdrop',\n 'mce-clonedresizable': 'tinymce__oxide--mce-clonedresizable',\n 'mce-resizetable-columns': 'tinymce__oxide--mce-resizetable-columns',\n 'mce-resize-helper': 'tinymce__oxide--mce-resize-helper',\n 'tox-rtc-user-selection': 'tinymce__oxide--tox-rtc-user-selection',\n 'tox-rtc-user-cursor': 'tinymce__oxide--tox-rtc-user-cursor',\n 'tox-rtc-user-selection--1': 'tinymce__oxide--tox-rtc-user-selection--1',\n 'tox-rtc-user-selection--2': 'tinymce__oxide--tox-rtc-user-selection--2',\n 'tox-rtc-user-selection--3': 'tinymce__oxide--tox-rtc-user-selection--3',\n 'tox-rtc-user-selection--4': 'tinymce__oxide--tox-rtc-user-selection--4',\n 'tox-rtc-user-selection--5': 'tinymce__oxide--tox-rtc-user-selection--5',\n 'tox-rtc-user-selection--6': 'tinymce__oxide--tox-rtc-user-selection--6',\n 'tox-rtc-user-selection--7': 'tinymce__oxide--tox-rtc-user-selection--7',\n 'tox-rtc-user-selection--8': 'tinymce__oxide--tox-rtc-user-selection--8',\n 'tox-rtc-remote-image': 'tinymce__oxide--tox-rtc-remote-image',\n 'mce-match-marker': 'tinymce__oxide--mce-match-marker',\n 'mce-match-marker-selected': 'tinymce__oxide--mce-match-marker-selected',\n 'mce-content-readonly': 'tinymce__oxide--mce-content-readonly',\n 'mce-edit-focus': 'tinymce__oxide--mce-edit-focus',\n 'ephox-snooker-resizer-bar': 'tinymce__oxide--ephox-snooker-resizer-bar',\n 'ephox-snooker-resizer-cols': 'tinymce__oxide--ephox-snooker-resizer-cols',\n 'ephox-snooker-resizer-rows': 'tinymce__oxide--ephox-snooker-resizer-rows',\n 'ephox-snooker-resizer-bar-dragging': 'tinymce__oxide--ephox-snooker-resizer-bar-dragging',\n 'mce-spellchecker-word': 'tinymce__oxide--mce-spellchecker-word',\n 'mce-spellchecker-grammar': 'tinymce__oxide--mce-spellchecker-grammar',\n 'mce-toc': 'tinymce__oxide--mce-toc',\n 'mce-item-table': 'tinymce__oxide--mce-item-table',\n 'mce-nbsp': 'tinymce__oxide--mce-nbsp',\n 'mce-shy': 'tinymce__oxide--mce-shy'\n};\nconst RestoreAutoSaveModal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(69)]).then(__webpack_require__.bind(null, /*! ./RestoreAutoSaveModal */ \"./src/rce/RestoreAutoSaveModal.js\")));\nconst RceHtmlEditor = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(26), __webpack_require__.e(68)]).then(__webpack_require__.bind(null, /*! ./RceHtmlEditor */ \"./src/rce/RceHtmlEditor.js\")));\nconst ASYNC_FOCUS_TIMEOUT = 250;\nconst DEFAULT_RCE_HEIGHT = '400px';\nconst toolbarPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // name of the toolbar the items are added to\n // if this toolbar doesn't exist, it is created\n // tinymce toolbar config does not\n // include a key to identify the individual toolbars, just a name\n // which is translated. This toolbar's name must be translated\n // in order to be merged correctly.\n name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n // items added to the toolbar\n // each is the name of the button some plugin has\n // registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string).isRequired\n}));\nconst menuPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.objectOf( // the key is the name of the menu item a plugin has\n// registered with tinymce. If it does not exist in the\n// default menubar, it will be added.\nprop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // if this is a new menu in the menubar, title is it's label.\n // if these are items being merged into an existing menu, title is ignored\n title: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // items is a space separated list it menu_items\n // some plugin has registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n}));\nconst ltiToolsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // id of the tool\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n // is this a favorite tool?\n favorite: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n}));\nconst editorOptionsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // height of the RCE.\n // if a number interpreted as pixels.\n // if a string as a CSS value.\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]),\n // entries you want merged into the toolbar. See toolBarPropType above.\n toolbar: toolbarPropType,\n // entries you want merged into to the menus. See menuPropType above.\n // If an entry defines a new menu, tinymce's menubar config option will\n // be updated for you. In fact, if you provide an editorOptions.menubar value\n // it will be overwritten.\n menu: menuPropType,\n // additional plugins that get merged into the default list of plugins\n // it is up to you to import the plugin's definition which will\n // register it and any related toolbar or menu entries with tinymce.\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n // is this RCE readonly?\n readonly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\nconst skinCSS = skinCSSBinding.template().replace(/tinymce__oxide--/g, '');\nconst contentCSS = contentCSSBinding.template().replace(/tinymce__oxide--/g, ''); // If we ever get our jest tests configured so they can handle importing real esModules,\n// we can move this to plugins/instructure-ui-icons/plugin.js like the rest.\n\nfunction addKebabIcon(editor) {\n editor.ui.registry.addIcon('more-drawer', `\n <svg viewBox=\"0 0 1920 1920\">\n <path d=\"M1129.412 1637.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.447 75.964-169.412 169.412-169.412 93.448 0 169.412 75.965 169.412 169.412zm0-677.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412zm0-677.647c0 93.447-75.964 169.412-169.412 169.412-93.448 0-169.412-75.965-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412z\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\"/>\n </svg>\n `);\n} // Get oxide the default skin injected into the DOM before the overrides loaded by themeable\n\n\nlet inserted = false;\n\nfunction injectTinySkin() {\n if (inserted) return;\n inserted = true;\n const style = document.createElement('style');\n style.setAttribute('data-skin', 'tiny oxide skin');\n style.appendChild( // the .replace here is because the ui-themeable babel hook adds that prefix to all the class names\n document.createTextNode(skinCSS));\n const beforeMe = document.head.querySelector('style[data-glamor]') || // find instui's themeable stylesheet\n document.head.querySelector('style') || // find any stylesheet\n document.head.firstElementChild;\n document.head.insertBefore(style, beforeMe);\n}\n\nconst editorWrappers = new WeakMap();\n\nfunction focusToolbar(el) {\n const $firstToolbarButton = el.querySelector('.tox-tbtn');\n $firstToolbarButton && $firstToolbarButton.focus();\n}\n\nfunction focusFirstMenuButton(el) {\n const $firstMenu = el.querySelector('.tox-mbtn');\n $firstMenu && $firstMenu.focus();\n}\n\nfunction isElementWithinTable(node) {\n let elem = node;\n\n while (elem) {\n if (elem.tagName === 'TABLE' || elem.tagName === 'TD' || elem.tagName === 'TH') {\n return true;\n }\n\n elem = elem.parentElement;\n }\n\n return false;\n} // determines if localStorage is available for our use.\n// see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n\n\nfunction storageAvailable() {\n let storage;\n\n try {\n storage = window.localStorage;\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return e instanceof DOMException && ( // everything except Firefox\n e.code === 22 || // Firefox\n e.code === 1014 || // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' || // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && // acknowledge QuotaExceededError only if there's something already stored\n storage && storage.length !== 0;\n }\n}\n\nfunction getHtmlEditorCookie() {\n const value = Object(_common_getCookie__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('rce.htmleditor');\n return value === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"] || value === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] ? value : _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"];\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading');\n} // safari implements only the webkit prefixed version of the fullscreen api\n\n\nconst FS_ELEMENT = document.fullscreenElement === undefined ? 'webkitFullscreenElement' : 'fullscreenElement';\nconst FS_REQUEST = document.body.requestFullscreen ? 'requestFullscreen' : 'webkitRequestFullscreen';\nconst FS_EXIT = document.exitFullscreen ? 'exitFullscreen' : 'webkitExitFullscreen';\nlet alertIdValue = 0;\nlet RCEWrapper = (_dec = Object(_instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_skins_theme__WEBPACK_IMPORTED_MODULE_27__[\"default\"], styles), _dec(_class = (_class2 = class RCEWrapper extends react__WEBPACK_IMPORTED_MODULE_2___default.a.Component {\n static getByEditor(editor) {\n return editorWrappers.get(editor);\n }\n\n constructor(props) {\n var _this, _props$editorOptions;\n\n super(props);\n _this = this;\n\n this.onRemove = () => {\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].detachEditor(this);\n this.props.onRemove && this.props.onRemove(this);\n };\n\n this.toggleView = newView => {\n // coming from the menubar, we don't have a newView,\n const wasFullscreen = this._isFullscreen();\n\n if (wasFullscreen) this._exitFullscreen();\n let newState;\n\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]\n };\n }\n\n this.setState(newState, () => {\n if (wasFullscreen) {\n window.setTimeout(() => {\n this._enterFullscreen();\n }, 200); // due to the animation it takes some time for fullscreen to complete\n }\n });\n this.checkAccessibility();\n\n if (newView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] || newView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]) {\n document.cookie = `rce.htmleditor=${newView};path=/;max-age=31536000`;\n } // Emit view change event\n\n\n this.mceInstance().fire(_customEvents__WEBPACK_IMPORTED_MODULE_25__[\"VIEW_CHANGE\"], {\n target: this.editor,\n newView: newState.editorView\n });\n };\n\n this.contentTrayClosing = false;\n this.blurTimer = 0;\n\n this.handleFocusRCE = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurRCE = event => {\n var _this$_elementRef$cur;\n\n if (event.relatedTarget === null) {\n // focus might be moving to tinymce\n this.handleBlur(event);\n }\n\n if (!((_this$_elementRef$cur = this._elementRef.current) !== null && _this$_elementRef$cur !== void 0 && _this$_elementRef$cur.contains(event.relatedTarget))) {\n this.handleBlur(event);\n }\n };\n\n this.handleFocusEditor = (event, _editor) => {\n // use .active to put a focus ring around the content area\n // when the editor has focus. This isn't perfect, but it's\n // what we've got for now.\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.add('active');\n\n this._forceCloseFloatingToolbar();\n\n this.handleFocus(event);\n };\n\n this.handleFocusHtmlEditor = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurEditor = (event, _editor) => {\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.remove('active');\n this.handleBlur(event);\n };\n\n this.handleKey = event => {\n if (event.code === 'F9' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusFirstMenuButton(this._elementRef.current);\n } else if (event.code === 'F10' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusToolbar(this._elementRef.current);\n } else if ((event.code === 'F8' || event.code === 'Digit0') && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.openKBShortcutModal();\n } else if (event.code === 'Escape') {\n this._forceCloseFloatingToolbar();\n\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen'); // turn it off\n } else {\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].hideTrays();\n }\n } else if (['n', 'N', 'd', 'D'].indexOf(event.key) !== -1) {\n // Prevent key events from bubbling up on touch screen device\n event.stopPropagation();\n }\n };\n\n this.handleClickFullscreen = () => {\n if (this._isFullscreen()) {\n this._exitFullscreen();\n } else {\n this._enterFullscreen();\n }\n };\n\n this.handleExternalClick = () => {\n this._forceCloseFloatingToolbar();\n\n Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.checkAccessibility, 1000)();\n };\n\n this.handleInputChange = () => {\n this.checkAccessibility();\n };\n\n this.onInit = (_event, editor) => {\n var _this$props$onInitted, _this$props;\n\n editor.rceWrapper = this;\n this.editor = editor;\n const textarea = this.editor.getElement(); // expected by canvas\n\n textarea.dataset.rich_text = true; // start with the textarea and tinymce in sync\n\n textarea.value = this.getCode();\n textarea.style.height = this.state.height; // Capture click events outside the iframe\n\n document.addEventListener('click', this.handleExternalClick);\n\n if (document.body.classList.contains('Underline-All-Links__enabled')) {\n this.iframe.contentDocument.body.classList.add('Underline-All-Links__enabled');\n }\n\n editor.on('wordCountUpdate', this.onWordCountUpdate); // add an aria-label to the application div that wraps RCE\n // and change role from \"application\" to \"document\" to ensure\n // the editor gets properly picked up by screen readers\n\n const tinyapp = document.querySelector('.tox-tinymce[role=\"application\"]');\n\n if (tinyapp) {\n tinyapp.setAttribute('aria-label', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Content Editor'));\n tinyapp.setAttribute('role', 'document');\n tinyapp.setAttribute('tabIndex', '-1');\n } // Adds a focusout event listener for handling screen reader navigation focus\n\n\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.addEventListener('focusout', e => {\n const leavingHeader = !header.contains(e.relatedTarget);\n\n if (leavingHeader) {\n this.setFocusAbilityForHeader(false);\n }\n });\n }\n\n this.setFocusAbilityForHeader(false); // Probably should do this in tinymce.scss, but we only want it in new rce\n\n textarea.style.resize = 'none';\n editor.on('ExecCommand', this._forceCloseFloatingToolbar);\n editor.on('keydown', this.handleKey);\n editor.on('FullscreenStateChanged', this._toggleFullscreen); // This propagates click events on the editor out of the iframe to the parent\n // document. We need this so that click events get captured properly by instui\n // focus-trapping components, so they properly ignore trapping focus on click.\n\n editor.on('click', () => window.document.body.click(), true);\n editor.on('Cut Paste Change input Undo Redo', Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.handleInputChange, 1000));\n this.announceContextToolbars(editor);\n\n if (this.isAutoSaving) {\n this.initAutoSave(editor);\n } // first view\n\n\n this.setEditorView(this.state.editorView); // readonly should have been handled via the init property passed\n // to <Editor>, but it's not.\n\n editor.mode.set(this.props.readOnly ? 'readonly' : 'design'); // Not using iframe_aria_text because compatibility issues.\n // Not using iframe_attrs because library overwriting.\n\n if (this.iframe) {\n this.iframe.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Text Area. Press ALT+0 for Rich Content Editor shortcuts.'));\n }\n\n (_this$props$onInitted = (_this$props = this.props).onInitted) === null || _this$props$onInitted === void 0 ? void 0 : _this$props$onInitted.call(_this$props, editor);\n };\n\n this._toggleFullscreen = event => {\n const isTinyFullscreen = event.state;\n const fullscreenState = {\n isTinyFullscreen\n };\n const header = document.getElementById('header');\n\n if (header) {\n if (isTinyFullscreen) {\n fullscreenState.headerDisp = header.style.display;\n header.style.display = 'none';\n } else {\n header.style.display = this.state.fullscreenState.headerDisp;\n }\n }\n\n this.setState({\n fullscreenState\n }); // if we're leaving fullscreen, remove event listeners on the fullscreen element\n\n if (!document[FS_ELEMENT] && this.state.fullscreenElem) {\n this.state.fullscreenElem.removeEventListener('fullscreenchange', this._toggleFullscreen);\n this.state.fullscreenElem.removeEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.setState({\n fullscreenState: {\n fullscreenElem: null\n }\n });\n } // if we don't defer setState, the pretty editor's height isn't correct\n // when entering fullscreen\n\n\n window.setTimeout(() => {\n if (document[FS_ELEMENT]) {\n this.setState(state => {\n return {\n fullscreenState: { ...state.fullscreenState,\n fullscreenElem: document[FS_ELEMENT]\n }\n };\n });\n } else {\n this.forceUpdate();\n }\n\n this.focusCurrentView();\n }, 0);\n };\n\n this._forceCloseFloatingToolbar = () => {\n if (this._elementRef.current) {\n const moreButton = this._elementRef.current.querySelector('.tox-toolbar-overlord .tox-toolbar__group:last-child button:last-child');\n\n if (moreButton !== null && moreButton !== void 0 && moreButton.getAttribute('aria-owns')) {\n // the floating toolbar is open\n moreButton.click(); // close the floating toolbar\n\n const editor = this.mceInstance(); // return focus to the editor\n\n editor === null || editor === void 0 ? void 0 : editor.focus();\n }\n }\n };\n\n this.announcing = 0;\n\n this.initAutoSave = editor => {\n this.storage = window.localStorage;\n\n if (this.storage) {\n editor.on('change Undo Redo', this.doAutoSave);\n editor.on('blur', this.doAutoSave);\n this.cleanupAutoSave();\n\n try {\n const autosaved = this.getAutoSaved(this.autoSaveKey);\n\n if (autosaved && autosaved.content) {\n // We'll compare just the text of the autosave content, since\n // Canvas is prone to swizzling images and iframes which will\n // make the editor content and autosave content never match up\n const editorContent = this.patchAutosavedContent(editor.getContent({\n no_events: true\n }), true);\n const autosavedContent = this.patchAutosavedContent(autosaved.content, true);\n\n if (autosavedContent !== editorContent) {\n this.setState({\n confirmAutoSave: true,\n autoSavedContent: this.patchAutosavedContent(autosaved.content)\n });\n } else {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n } catch (ex) {\n // log and ignore\n // eslint-disable-next-line no-console\n console.error('Failed initializing rce autosave', ex);\n }\n }\n };\n\n this.cleanupAutoSave = function () {\n let deleteAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (_this.storage) {\n const expiry = deleteAll ? Date.now() : Date.now() - _this.props.autosave.maxAge;\n let i = 0;\n let key;\n\n while (key = _this.storage.key(i++)) {\n if (/^rceautosave:/.test(key)) {\n const autosaved = _this.getAutoSaved(key);\n\n if (autosaved && autosaved.autosaveTimestamp < expiry) {\n _this.storage.removeItem(key);\n }\n }\n }\n }\n };\n\n this.restoreAutoSave = ans => {\n this.setState({\n confirmAutoSave: false\n }, () => {\n const editor = this.mceInstance();\n\n if (ans) {\n editor.setContent(this.state.autoSavedContent, {});\n }\n\n this.storage.removeItem(this.autoSaveKey);\n });\n this.checkAccessibility();\n };\n\n this.doAutoSave = function (e) {\n let retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (_this.storage) {\n const editor = _this.mceInstance(); // if the editor is empty don't save\n\n\n if (editor.dom.isEmpty(editor.getBody())) {\n return;\n }\n\n const content = editor.getContent({\n no_events: true\n });\n\n try {\n _this.storage.setItem(_this.autoSaveKey, JSON.stringify({\n autosaveTimestamp: Date.now(),\n content\n }));\n } catch (ex) {\n if (!retry) {\n // probably failed because there's not enough space\n // delete up all the other entries and try again\n _this.cleanupAutoSave(true);\n\n _this.doAutoSave(e, true);\n } else {\n console.error('Autosave failed:', ex); // eslint-disable-line no-console\n }\n }\n }\n };\n\n this.onWordCountUpdate = e => {\n this.setState(state => {\n if (e.wordCount.words !== state.wordCount) {\n return {\n wordCount: e.wordCount.words\n };\n } else return null;\n });\n };\n\n this.onNodeChange = e => {\n // This is basically copied out of the tinymce silver theme code for the status bar\n const path = e.parents.filter(p => p.nodeName !== 'BR' && !p.getAttribute('data-mce-bogus') && p.getAttribute('data-mce-type') !== 'bookmark').map(p => p.nodeName.toLowerCase()).reverse();\n this.setState({\n path\n });\n };\n\n this.onEditorChange = (content, _editor) => {\n var _this$props$onContent, _this$props2;\n\n (_this$props$onContent = (_this$props2 = this.props).onContentChange) === null || _this$props$onContent === void 0 ? void 0 : _this$props$onContent.call(_this$props2, content);\n };\n\n this.onResize = (_e, coordinates) => {\n const editor = this.mceInstance();\n\n if (editor) {\n const container = editor.getContainer();\n if (!container) return;\n const currentContainerHeight = Number.parseInt(container.style.height, 10);\n if (isNaN(currentContainerHeight)) return; // eslint-disable-line no-restricted-globals\n\n const modifiedHeight = currentContainerHeight + coordinates.deltaY;\n const newHeight = `${modifiedHeight}px`;\n container.style.height = newHeight;\n this.getTextarea().style.height = newHeight;\n this.setState({\n height: newHeight\n }); // play nice and send the same event that the silver theme would send\n\n editor.fire('ResizeEditor');\n }\n };\n\n this.onA11yChecker = () => {\n // eslint-disable-next-line promise/catch-or-return\n this.a11yCheckerReady.then(() => {\n this.onTinyMCEInstance('openAccessibilityChecker', {\n skip_focus: true\n });\n });\n };\n\n this.checkAccessibility = () => {\n const editor = this.mceInstance();\n editor.execCommand('checkAccessibility', false, {\n done: errors => {\n this.setState({\n a11yErrorsCount: errors.length\n });\n }\n }, {\n skip_focus: true\n });\n };\n\n this.openKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: true,\n KBShortcutFocusReturn: document.activeElement\n });\n };\n\n this.closeKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: false\n });\n };\n\n this.KBShortcutModalExited = () => {\n if (this.state.KBShortcutFocusReturn === this.iframe) {\n // if the iframe has focus, we need to forward it on to tinymce\n this.editor.focus(false);\n } else if (this._showOnFocusButton && document.activeElement === document.body) {\n // when the modal is opened from the showOnFocus button, focus doesn't\n // get automatically returned to the button like it should.\n this._showOnFocusButton.focus();\n } else {\n var _this$_showOnFocusBut;\n\n (_this$_showOnFocusBut = this._showOnFocusButton) === null || _this$_showOnFocusBut === void 0 ? void 0 : _this$_showOnFocusBut.focus();\n }\n };\n\n this.setFocusAbilityForHeader = focusable => {\n // Sets aria-hidden to prevent screen readers focus in RCE menus and toolbar\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.setAttribute('aria-hidden', focusable ? 'false' : 'true');\n }\n };\n\n this.handleTextareaChange = () => {\n if (this.isHidden()) {\n this.setCode(this.textareaValue());\n this.doAutoSave();\n }\n };\n\n this.addAlert = alert => {\n alert.id = alertIdValue++;\n this.setState(state => {\n let messages = state.messages.concat(alert);\n messages = lodash__WEBPACK_IMPORTED_MODULE_4___default.a.uniqBy(messages, 'text'); // Don't show the same message twice\n\n return {\n messages\n };\n });\n };\n\n this.removeAlert = messageId => {\n this.setState(state => {\n const messages = state.messages.filter(message => message.id !== messageId);\n return {\n messages\n };\n });\n };\n\n this.resetAlertId = () => {\n if (this.state.messages.length > 0) {\n throw new Error('There are messages currently, you cannot reset when they are non-zero');\n }\n\n alertIdValue = 0;\n };\n\n // Set up some limited global state that can be referenced\n // as needed in RCE's components and function / plugin definitions\n // Not intended to be dynamically changed!\n _RCEGlobals__WEBPACK_IMPORTED_MODULE_19__[\"default\"].setFeatures(this.getRequiredFeatureStatuses());\n _RCEGlobals__WEBPACK_IMPORTED_MODULE_19__[\"default\"].setConfig(this.getRequiredConfigValues());\n this.editor = null; // my tinymce editor instance\n\n this.language = Object(_normalizeLocale__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props.language); // interface consistent with editorBox\n\n this.get_code = this.getCode;\n this.set_code = this.setCode;\n this.insert_code = this.insertCode; // test override points\n\n this.indicator = false;\n this._elementRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._editorPlaceholderRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._prettyHtmlEditorRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._showOnFocusButton = null;\n injectTinySkin();\n let ht = ((_props$editorOptions = props.editorOptions) === null || _props$editorOptions === void 0 ? void 0 : _props$editorOptions.height) || DEFAULT_RCE_HEIGHT;\n\n if (!Number.isNaN(ht)) {\n ht = `${ht}px`;\n }\n\n const currentRCECount = document.querySelectorAll('.rce-wrapper').length;\n const maxInitRenderedRCEs = Number.isNaN(props.maxInitRenderedRCEs) ? RCEWrapper.defaultProps.maxInitRenderedRCEs : props.maxInitRenderedRCEs;\n this.state = {\n path: [],\n wordCount: 0,\n editorView: props.editorView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"],\n shouldShowOnFocusButton: props.renderKBShortcutModal === undefined ? true : props.renderKBShortcutModal,\n KBShortcutModalOpen: false,\n messages: [],\n announcement: null,\n confirmAutoSave: false,\n autoSavedContent: '',\n id: this.props.id || this.props.textareaId || `${Date.now()}`,\n height: ht,\n fullscreenState: {\n headerDisp: 'static',\n isTinyFullscreen: false\n },\n a11yErrorsCount: 0,\n shouldShowEditor: typeof IntersectionObserver === 'undefined' || maxInitRenderedRCEs <= 0 || currentRCECount < maxInitRenderedRCEs\n };\n this.pendingEventHandlers = []; // Get top 2 favorited LTI Tools\n\n this.ltiToolFavorites = this.props.ltiTools.filter(e => e.favorite).map(e => `instructure_external_button_${e.id}`).slice(0, 2) || [];\n this.tinymceInitOptions = this.wrapOptions(props.editorOptions);\n _alertHandler__WEBPACK_IMPORTED_MODULE_31__[\"default\"].alertFunc = this.addAlert;\n this.handleContentTrayClosing = this.handleContentTrayClosing.bind(this);\n this.a11yCheckerReady = Promise.all(/*! import() */[__webpack_require__.e(4), __webpack_require__.e(5), __webpack_require__.e(8), __webpack_require__.e(38)]).then(__webpack_require__.bind(null, /*! ./initA11yChecker */ \"./src/rce/initA11yChecker.js\")).then(initA11yChecker => {\n initA11yChecker.default(this.language);\n this.checkAccessibility();\n }).catch(err => {\n // eslint-disable-next-line no-console\n console.error('Failed initializing a11y checker', err);\n });\n }\n\n getRequiredFeatureStatuses() {\n const {\n new_equation_editor = false,\n new_math_equation_handling = false,\n rce_ux_improvements = false\n } = this.props.features;\n return {\n new_equation_editor,\n new_math_equation_handling,\n rce_ux_improvements\n };\n }\n\n getRequiredConfigValues() {\n return {\n locale: Object(_normalizeLocale__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props.language),\n flashAlertTimeout: this.props.flashAlertTimeout,\n timezone: this.props.timezone\n };\n }\n\n getCanvasUrl() {\n if (!this.canvasUrl) this.canvasUrl = Object(_getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__[\"getCanvasUrl\"])(this.props.trayProps);\n return this.canvasUrl.then(url => {\n if (!url) {\n console.warn('Could not determine Canvas base URL.', 'Content will be referenced by relative URL.');\n }\n\n return url;\n });\n } // getCode and setCode naming comes from tinyMCE\n // kind of strange but want to be consistent\n\n\n getCode() {\n return this.isHidden() ? this.textareaValue() : this.mceInstance().getContent();\n }\n\n checkReadyToGetCode(promptFunc) {\n let status = true; // Check for remaining placeholders\n\n if (this.mceInstance().dom.doc.querySelector(`[data-placeholder-for]`)) {\n status = promptFunc(Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content is still being uploaded, if you continue it will not be embedded properly.'));\n }\n\n return status;\n }\n\n setCode(newContent) {\n var _this$mceInstance;\n\n (_this$mceInstance = this.mceInstance()) === null || _this$mceInstance === void 0 ? void 0 : _this$mceInstance.setContent(newContent);\n } // This function is called imperatively by the page that renders the RCE.\n // It should be called when the RCE content is done being edited.\n\n\n RCEClosed() {\n // We want to clear the autosaved content, since the page was legitimately closed.\n if (this.storage) {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n\n indicateEditor(element) {\n if (document.querySelector('[role=\"dialog\"][data-mce-component]')) {\n // there is a modal open, which zeros out the vertical scroll\n // so the indicator is in the wrong place. Give it a chance to close\n window.setTimeout(() => {\n this.indicateEditor(element);\n }, 100);\n return;\n }\n\n const editor = this.mceInstance();\n\n if (this.indicator) {\n this.indicator(editor, element);\n } else if (!this.isHidden()) {\n Object(_common_indicate__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(Object(_indicatorRegion__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(editor, element));\n }\n }\n\n contentInserted(element) {\n this.indicateEditor(element);\n this.checkImageLoadError(element);\n this.sizeEditorForContent(element);\n } // make a attempt at sizing the editor so that the new content fits.\n // works under the assumptions the body's box-sizing is not content-box\n // and that the content is w/in a <p> whose margin is 12px top and bottom\n // (which, in canvas, is set in app/stylesheets/components/_ic-typography.scss)\n\n\n sizeEditorForContent(elem) {\n let height;\n\n if (elem && elem.nodeType === 1) {\n height = elem.clientHeight;\n }\n\n if (height) {\n const ifr = this.iframe;\n\n if (ifr) {\n const editor_body_style = ifr.contentWindow.getComputedStyle(this.iframe.contentDocument.body);\n const editor_ht = ifr.contentDocument.body.clientHeight - parseInt(editor_body_style['padding-top'], 10) - parseInt(editor_body_style['padding-bottom'], 10);\n const para_margin_ht = 24;\n const reserve_ht = Math.ceil(height + para_margin_ht);\n\n if (reserve_ht > editor_ht) {\n this.onResize(null, {\n deltaY: reserve_ht - editor_ht\n });\n }\n }\n }\n }\n\n checkImageLoadError(element) {\n if (!element || element.tagName !== 'IMG') {\n return;\n }\n\n if (!element.complete) {\n element.onload = () => this.checkImageLoadError(element);\n\n return;\n } // checking naturalWidth in a future event loop run prevents a race\n // condition between the onload callback and naturalWidth being set.\n\n\n setTimeout(() => {\n if (element.naturalWidth === 0) {\n element.style.border = '1px solid #000';\n element.style.padding = '2px';\n }\n }, 0);\n }\n\n insertCode(code) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n this.contentInserted(element);\n }\n\n insertEmbedCode(code) {\n const editor = this.mceInstance(); // don't replace selected text, but embed after\n\n editor.selection.collapse(); // tinymce treats iframes uniquely, and doesn't like adding attributes\n // once it's in the editor, and I'd rather not parse the incomming html\n // string with a regex, so let's create a temp copy, then add a title\n // attribute if one doesn't exist. This will let screenreaders announce\n // that there's some embedded content helper\n // From what I've read, \"title\" is more reliable than \"aria-label\" for\n // elements like iframes and embeds.\n\n const temp = document.createElement('div');\n temp.innerHTML = code;\n const code_elem = temp.firstElementChild;\n\n if (code_elem) {\n if (!code_elem.hasAttribute('title') && !code_elem.hasAttribute('aria-label')) {\n code_elem.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('embedded content'));\n }\n\n code = code_elem.outerHTML;\n } // inserting an iframe in tinymce (as is often the case with\n // embedded content) causes it to wrap it in a span\n // and it's often inserted into a <p> on top of that. Find the\n // iframe and use it to flash the indicator.\n\n\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n const ifr = element && element.querySelector && element.querySelector('iframe');\n\n if (ifr) {\n this.contentInserted(ifr);\n } else {\n this.contentInserted(element);\n }\n }\n\n insertImage(image) {\n var _element$nextSibling, _element$nextSibling$;\n\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertImage\"](editor, image); // Removes TinyMCE's caret &nbsp; text if exists.\n\n if ((element === null || element === void 0 ? void 0 : (_element$nextSibling = element.nextSibling) === null || _element$nextSibling === void 0 ? void 0 : (_element$nextSibling$ = _element$nextSibling.data) === null || _element$nextSibling$ === void 0 ? void 0 : _element$nextSibling$.trim()) === '') {\n element.nextSibling.remove();\n }\n\n if (element && element.complete) {\n this.contentInserted(element);\n } else if (element) {\n element.onload = () => this.contentInserted(element);\n\n element.onerror = () => this.checkImageLoadError(element);\n }\n }\n\n insertImagePlaceholder(fileMetaProps) {\n let width, height;\n let align = 'middle';\n\n if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__[\"isImage\"])(fileMetaProps.contentType) && fileMetaProps.displayAs !== 'link') {\n const image = new Image();\n image.src = fileMetaProps.domObject.preview;\n width = image.width;\n height = image.height; // we constrain the <img> to max-width: 100%, so scale the size down if necessary\n\n const maxWidth = this.iframe.contentDocument.body.clientWidth;\n\n if (width > maxWidth) {\n height = Math.round(maxWidth / width * height);\n width = maxWidth;\n }\n\n width = `${width}px`;\n height = `${height}px`;\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__[\"isVideo\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"VIDEO_SIZE_DEFAULT\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"VIDEO_SIZE_DEFAULT\"].height;\n align = 'bottom';\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__[\"isAudio\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"AUDIO_PLAYER_SIZE\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"AUDIO_PLAYER_SIZE\"].height;\n align = 'bottom';\n } else {\n width = `${fileMetaProps.name.length}rem`;\n height = '1rem';\n } // if you're wondering, the &nbsp; scatter about in the svg\n // is because tinymce will strip empty elements\n\n\n const markup = `\n <span\n aria-label=\"${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading')}\"\n data-placeholder-for=\"${encodeURIComponent(fileMetaProps.name)}\"\n style=\"width: ${width}; height: ${height}; vertical-align: ${align};\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" height=\"100px\" width=\"100px\">\n <g style=\"stroke-width:.5rem;fill:none;stroke-linecap:round;\">&nbsp;\n <circle class=\"c1\" cx=\"50%\" cy=\"50%\" r=\"28px\">&nbsp;</circle>\n <circle class=\"c2\" cx=\"50%\" cy=\"50%\" r=\"28px\">&nbsp;</circle>\n &nbsp;\n </g>\n &nbsp;\n </svg>\n </span>`;\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.execCommand('mceInsertContent', false, markup);\n });\n }\n\n insertVideo(video) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertVideo\"](editor, video);\n this.contentInserted(element);\n }\n\n insertAudio(audio) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertAudio\"](editor, audio);\n this.contentInserted(element);\n }\n\n insertMathEquation(tex) {\n const editor = this.mceInstance();\n return this.getCanvasUrl().then(domain => _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertEquation\"](editor, tex, domain));\n }\n\n removePlaceholders(name) {\n const placeholder = this.mceInstance().dom.doc.querySelector(`[data-placeholder-for=\"${encodeURIComponent(name)}\"]`);\n\n if (placeholder) {\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.dom.remove(placeholder);\n });\n }\n }\n\n insertLink(link) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertLink\"](editor, link);\n this.contentInserted(element);\n }\n\n existingContentToLink() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLink\"](editor);\n }\n\n existingContentToLinkIsImg() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLinkIsImg\"](editor);\n } // since we may defer rendering tinymce, queue up any tinymce event handlers\n\n\n tinymceOn(tinymceEventName, handler) {\n if (this.state.shouldShowEditor) {\n this.mceInstance().on(tinymceEventName, handler);\n } else {\n this.pendingEventHandlers.push({\n name: tinymceEventName,\n handler\n });\n }\n }\n\n mceInstance() {\n if (this.editor) {\n return this.editor;\n }\n\n const editors = this.props.tinymce.editors || [];\n return editors.filter(ed => ed.id === this.props.textareaId)[0];\n }\n\n onTinyMCEInstance(command) {\n const editor = this.mceInstance();\n\n if (editor) {\n if (command === 'mceRemoveEditor') {\n editor.execCommand('mceNewDocument');\n } // makes sure content can't persist past removal\n\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n editor.execCommand(command, false, ...args);\n }\n }\n\n destroy() {\n this._destroyCalled = true;\n this.unhandleTextareaChange();\n this.props.handleUnmount && this.props.handleUnmount();\n }\n\n getTextarea() {\n return document.getElementById(this.props.textareaId);\n }\n\n textareaValue() {\n return this.getTextarea().value;\n }\n\n get id() {\n return this.state.id;\n }\n\n _isFullscreen() {\n return this.state.fullscreenState.isTinyFullscreen || document[FS_ELEMENT];\n }\n\n _enterFullscreen() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this._prettyHtmlEditorRef.current.addEventListener('fullscreenchange', this._toggleFullscreen);\n\n this._prettyHtmlEditorRef.current.addEventListener('webkitfullscreenchange', this._toggleFullscreen); // if I don't focus first, FF complains that the element\n // is not in the active browser tab and requestFullscreen fails\n\n\n this._prettyHtmlEditorRef.current.focus();\n\n this._prettyHtmlEditorRef.current[FS_REQUEST]();\n\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().addEventListener('fullscreenchange', this._toggleFullscreen);\n this.getTextarea().addEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.getTextarea()[FS_REQUEST]();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().execCommand('mceFullScreen');\n break;\n }\n }\n\n _exitFullscreen() {\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen');\n } else if (document[FS_ELEMENT]) {\n document[FS_ELEMENT][FS_EXIT]();\n }\n }\n\n focus() {\n this.onTinyMCEInstance('mceFocus'); // tinymce doesn't always call the focus handler.\n\n this.handleFocusEditor(new Event('focus', {\n target: this.mceInstance()\n }));\n }\n\n focusCurrentView() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().focus();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n {\n const cmta = this._elementRef.current.querySelector('.CodeMirror textarea');\n\n if (cmta) {\n cmta.focus();\n } else {\n window.setTimeout(() => {\n var _this$_elementRef$cur2;\n\n (_this$_elementRef$cur2 = this._elementRef.current.querySelector('.CodeMirror textarea')) === null || _this$_elementRef$cur2 === void 0 ? void 0 : _this$_elementRef$cur2.focus();\n }, 200);\n }\n }\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().focus();\n break;\n }\n }\n\n is_dirty() {\n var _this$mceInstance2;\n\n if (this.mceInstance().isDirty()) {\n return true;\n }\n\n const content = this.isHidden() ? this.textareaValue() : (_this$mceInstance2 = this.mceInstance()) === null || _this$mceInstance2 === void 0 ? void 0 : _this$mceInstance2.getContent();\n return content !== this.cleanInitialContent();\n }\n\n cleanInitialContent() {\n if (!this._cleanInitialContent) {\n const el = window.document.createElement('div');\n el.innerHTML = this.props.defaultContent;\n const serializer = this.mceInstance().serializer;\n this._cleanInitialContent = serializer.serialize(el, {\n getInner: true\n });\n }\n\n return this._cleanInitialContent;\n }\n\n isHtmlView() {\n return this.state.editorView !== _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"];\n }\n\n isHidden() {\n return this.mceInstance().isHidden();\n }\n\n get iframe() {\n return document.getElementById(`${this.props.textareaId}_ifr`);\n } // these focus and blur event handlers work together so that RCEWrapper\n // can report focus and blur events from the RCE at-large\n\n\n get focused() {\n return this === _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].getEditor();\n }\n\n handleFocus(_event) {\n if (!this.focused) {\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].focusEditor(this);\n this.props.onFocus && this.props.onFocus(this);\n }\n }\n\n handleContentTrayClosing(isClosing) {\n this.contentTrayClosing = isClosing;\n }\n\n handleBlur(event) {\n if (this.blurTimer) return;\n\n if (this.focused) {\n // because the old active element fires blur before the next element gets focus\n // we often need a moment to see if focus comes back\n event && event.persist && event.persist();\n this.blurTimer = window.setTimeout(() => {\n var _this$_elementRef$cur3, _event$focusedEditor, _event$relatedTarget, _event$relatedTarget$;\n\n this.blurTimer = 0;\n\n if (this.contentTrayClosing) {\n // the CanvasContentTray is in the process of closing\n // wait until it finishes\n return;\n }\n\n if ((_this$_elementRef$cur3 = this._elementRef.current) !== null && _this$_elementRef$cur3 !== void 0 && _this$_elementRef$cur3.contains(document.activeElement)) {\n // focus is still somewhere w/in me\n return;\n }\n\n const activeClass = document.activeElement && document.activeElement.getAttribute('class');\n\n if ((event.focusedEditor === undefined || event.target.id === ((_event$focusedEditor = event.focusedEditor) === null || _event$focusedEditor === void 0 ? void 0 : _event$focusedEditor.id)) && activeClass !== null && activeClass !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(activeClass).call(activeClass, 'tox-')) {\n // if a toolbar button has focus, then the user clicks on the \"more\" button\n // focus jumps to the body, then eventually to the popped up toolbar. This\n // catches that case.\n return;\n }\n\n if (event !== null && event !== void 0 && (_event$relatedTarget = event.relatedTarget) !== null && _event$relatedTarget !== void 0 && (_event$relatedTarget$ = _event$relatedTarget.getAttribute('class')) !== null && _event$relatedTarget$ !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_event$relatedTarget$).call(_event$relatedTarget$, 'tox-')) {\n // a tinymce popup has focus\n return;\n }\n\n const popups = document.querySelectorAll('[data-mce-component]');\n\n for (const popup of popups) {\n if (popup.contains(document.activeElement)) {\n // one of our popups has focus\n return;\n }\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].blurEditor(this);\n this.props.onBlur && this.props.onBlur(event);\n }, ASYNC_FOCUS_TIMEOUT);\n }\n }\n\n call(methodName) {\n // since exists? has a ? and cant be a regular function just return true\n // rather than calling as a fn on the editor\n if (methodName === 'exists?') {\n return true;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return this[methodName](...args);\n }\n\n announceContextToolbars(editor) {\n editor.on('NodeChange', () => {\n const node = editor.selection.getNode();\n\n if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_32__[\"isImageEmbed\"])(node, editor)) {\n if (this.announcing !== 1) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access image options. {text}', {\n text: node.getAttribute('alt')\n })\n });\n this.announcing = 1;\n }\n } else if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_32__[\"isFileLink\"])(node, editor)) {\n if (this.announcing !== 2) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access link options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 2;\n }\n } else if (isElementWithinTable(node, editor)) {\n if (this.announcing !== 3) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access table options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 3;\n }\n } else {\n this.setState({\n announcement: null\n });\n this.announcing = 0;\n }\n });\n }\n /* ********** autosave support *************** */\n\n\n // if a placeholder image shows up in autosaved content, we have to remove it\n // because the data url gets converted to a blob, which is not valid when restored.\n // besides, the placeholder is intended to be temporary while the file\n // is being uploaded\n patchAutosavedContent(content, asText) {\n const temp = document.createElement('div');\n temp.innerHTML = content;\n temp.querySelectorAll('[data-placeholder-for]').forEach(placeholder => {\n placeholder.parentElement.removeChild(placeholder);\n });\n if (asText) return temp.textContent;\n return temp.innerHTML;\n }\n\n getAutoSaved(key) {\n let autosaved = null;\n\n try {\n autosaved = this.storage && JSON.parse(this.storage.getItem(key));\n } catch (_ex) {\n this.storage.removeItem(this.autoSaveKey);\n }\n\n return autosaved;\n } // only autosave if the feature flag is set, and there is only 1 RCE on the page\n // the latter condition is necessary because the popup RestoreAutoSaveModal\n // is lousey UX when there are >1\n\n\n get isAutoSaving() {\n // If the editor is invisible for some reason, don't show the autosave modal\n // This doesn't apply if the editor is off-screen or has visibility:hidden;\n // only if it isn't rendered or has display:none;\n const editorVisible = this.editor.getContainer().offsetParent;\n return this.props.autosave.enabled && editorVisible && document.querySelectorAll('.rce-wrapper').length === 1 && storageAvailable();\n }\n\n get autoSaveKey() {\n var _this$props$trayProps;\n\n const userId = (_this$props$trayProps = this.props.trayProps) === null || _this$props$trayProps === void 0 ? void 0 : _this$props$trayProps.containingContext.userId;\n return `rceautosave:${userId}${window.location.href}:${this.props.textareaId}`;\n }\n\n componentWillUnmount() {\n if (this.state.shouldShowEditor) {\n var _this$mutationObserve, _this$intersectionObs;\n\n window.clearTimeout(this.blurTimer);\n\n if (!this._destroyCalled) {\n this.destroy();\n }\n\n this._elementRef.current.removeEventListener('keydown', this.handleKey, true);\n\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.disconnect();\n (_this$intersectionObs = this.intersectionObserver) === null || _this$intersectionObs === void 0 ? void 0 : _this$intersectionObs.disconnect();\n }\n }\n\n wrapOptions() {\n var _this$props$trayProps2, _this$props$trayProps3, _this$props$trayProps4;\n\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const rcsExists = !!((_this$props$trayProps2 = this.props.trayProps) !== null && _this$props$trayProps2 !== void 0 && _this$props$trayProps2.host && (_this$props$trayProps3 = this.props.trayProps) !== null && _this$props$trayProps3 !== void 0 && _this$props$trayProps3.jwt);\n const setupCallback = options.setup;\n const canvasPlugins = rcsExists ? ['instructure_links', 'instructure_image', 'instructure_documents', 'instructure_equation', 'instructure_external_tools'] : ['instructure_links'];\n\n if (rcsExists && !this.props.instRecordDisabled) {\n canvasPlugins.splice(2, 0, 'instructure_record');\n }\n\n if (rcsExists && this.props.use_rce_icon_maker && ((_this$props$trayProps4 = this.props.trayProps) === null || _this$props$trayProps4 === void 0 ? void 0 : _this$props$trayProps4.contextType) === 'course') {\n canvasPlugins.push('instructure_icon_maker');\n }\n\n const possibleNewMenubarItems = this.props.editorOptions.menu ? Object.keys(this.props.editorOptions.menu).join(' ') : undefined;\n const wrappedOpts = { ..._defaultTinymceConfig__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n ...options,\n readonly: this.props.readOnly,\n theme: 'silver',\n // some older code specified 'modern', which doesn't exist any more\n height: options.height || DEFAULT_RCE_HEIGHT,\n language: _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default()(this.language),\n block_formats: options.block_formats || [`${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 2')}=h2`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 3')}=h3`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 4')}=h4`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Preformatted')}=pre`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Paragraph')}=p`].join('; '),\n setup: editor => {\n var _bridge$trayProps;\n\n addKebabIcon(editor);\n editorWrappers.set(editor, this);\n const trayPropsWithColor = {\n brandColor: this.theme.canvasBrandColor,\n ...this.props.trayProps\n };\n (_bridge$trayProps = _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].trayProps) === null || _bridge$trayProps === void 0 ? void 0 : _bridge$trayProps.set(editor, trayPropsWithColor);\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].languages = this.props.languages;\n\n if (typeof setupCallback === 'function') {\n setupCallback(editor);\n }\n },\n // Consumers can, and should!, still pass a content_css prop so that the content\n // in the editor matches the styles of the app it will be displayed in when saved.\n // This is just so we inject the helper class names that tinyMCE uses for\n // things like table resizing and stuff.\n content_css: options.content_css || [],\n content_style: contentCSS,\n menubar: mergeMenuItems('edit view insert format tools table', possibleNewMenubarItems),\n // default menu options listed at https://www.tiny.cloud/docs/configure/editor-appearance/#menu\n // tinymce's default edit and table menus are fine\n // we include all the canvas specific items in the menu and toolbar\n // and rely on tinymce only showing them if the plugin is provided.\n menu: mergeMenu({\n format: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Format'),\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align directionality | forecolor backcolor | removeformat'\n },\n insert: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Insert'),\n items: 'instructure_links instructure_image instructure_media instructure_document instructure_icon_maker | instructure_equation inserttable instructure_media_embed | hr'\n },\n tools: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Tools'),\n items: 'wordcount lti_tools_menuitem'\n },\n view: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View'),\n items: 'fullscreen instructure_html_view'\n }\n }, options.menu),\n toolbar: mergeToolbar([{\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Styles'),\n items: ['fontsizeselect', 'formatselect']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Formatting'),\n items: ['bold', 'italic', 'underline', 'forecolor', 'backcolor', 'inst_subscript', 'inst_superscript']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content'),\n items: ['instructure_links', 'instructure_image', 'instructure_record', 'instructure_documents', 'instructure_icon_maker']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('External Tools'),\n items: [...this.ltiToolFavorites, 'lti_tool_dropdown', 'lti_mru_button']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Alignment and Lists'),\n items: ['align', 'bullist', 'inst_indent', 'inst_outdent']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Miscellaneous'),\n items: ['removeformat', 'table', 'instructure_equation', 'instructure_media_embed']\n }], options.toolbar),\n contextmenu: '',\n // show the browser's native context menu\n toolbar_mode: 'floating',\n toolbar_sticky: true,\n plugins: mergePlugins(['autolink', 'media', 'paste', 'table', 'link', 'directionality', 'lists', 'textpattern', 'hr', 'fullscreen', 'instructure-ui-icons', 'instructure_condensed_buttons', 'instructure_links', 'instructure_html_view', 'instructure_media_embed', 'instructure_external_tools', 'a11y_checker', 'wordcount', ...canvasPlugins], Object(_sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__[\"sanitizePlugins\"])(options.plugins)),\n textpattern_patterns: [{\n start: '* ',\n cmd: 'InsertUnorderedList'\n }, {\n start: '- ',\n cmd: 'InsertUnorderedList'\n }]\n };\n\n if (this.props.trayProps) {\n wrappedOpts.canvas_rce_user_context = {\n type: this.props.trayProps.contextType,\n id: this.props.trayProps.contextId\n };\n wrappedOpts.canvas_rce_containing_context = {\n type: this.props.trayProps.containingContext.contextType,\n id: this.props.trayProps.containingContext.contextId\n };\n }\n\n return wrappedOpts;\n }\n\n unhandleTextareaChange() {\n if (this._textareaEl) {\n this._textareaEl.removeEventListener('input', this.handleTextareaChange);\n }\n }\n\n registerTextareaChange() {\n const el = this.getTextarea();\n\n if (this._textareaEl !== el) {\n this.unhandleTextareaChange();\n\n if (el) {\n el.addEventListener('input', this.handleTextareaChange);\n\n if (this.props.textareaClassName) {\n // split the string on whitespace because classList doesn't let you add multiple\n // space seperated classes at a time but does let you add an array of them\n el.classList.add(...this.props.textareaClassName.split(/\\s+/));\n }\n\n this._textareaEl = el;\n }\n }\n }\n\n componentDidMount() {\n if (this.state.shouldShowEditor) {\n this.editorReallyDidMount();\n } else {\n this.intersectionObserver = new IntersectionObserver(entries => {\n const entry = entries[0];\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n this.setState({\n shouldShowEditor: true\n });\n }\n }, // initialize the RCE when it gets close to entering the viewport\n {\n root: null,\n rootMargin: '200px 0px',\n threshold: 0.0\n });\n this.intersectionObserver.observe(this._editorPlaceholderRef.current);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.shouldShowEditor) {\n if (!prevState.shouldShowEditor) {\n var _this$intersectionObs2;\n\n this.editorReallyDidMount();\n (_this$intersectionObs2 = this.intersectionObserver) === null || _this$intersectionObs2 === void 0 ? void 0 : _this$intersectionObs2.disconnect();\n } else {\n this.registerTextareaChange();\n\n if (prevState.editorView !== this.state.editorView) {\n this.setEditorView(this.state.editorView);\n this.focusCurrentView();\n }\n\n if (prevProps.readOnly !== this.props.readOnly) {\n this.mceInstance().mode.set(this.props.readOnly ? 'readonly' : 'design');\n }\n }\n }\n }\n\n editorReallyDidMount() {\n const myTiny = this.mceInstance();\n this.pendingEventHandlers.forEach(e => {\n myTiny.on(e.name, e.handler);\n });\n this.registerTextareaChange();\n\n this._elementRef.current.addEventListener('keydown', this.handleKey, true); // give the textarea its initial size\n\n\n this.onResize(null, {\n deltaY: 0\n }); // Preload the LTI Tools modal\n // This helps with loading the favorited external tools\n\n if (this.ltiToolFavorites.length > 0) {\n __webpack_require__.e(/*! import() */ 11).then(__webpack_require__.bind(null, /*! ./plugins/instructure_external_tools/components/LtiToolsModal */ \"./src/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js\"));\n } // .tox-tinymce-aux is where tinymce puts the floating toolbar when\n // the user clicks the More... button\n // Tinymce doesn't fire onFocus when the user clicks More... from somewhere\n // outside, so we'll handle that here by watching for the floating toolbar\n // to come and go.\n\n\n const portals = document.querySelectorAll('.tox-tinymce-aux'); // my portal will be the last one in the doc because tinyumce appends them\n\n const tinymce_floating_toolbar_portal = portals[portals.length - 1];\n\n if (tinymce_floating_toolbar_portal) {\n this.mutationObserver = new MutationObserver((mutationList, _observer) => {\n mutationList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n this.handleFocusEditor(new Event('focus', {\n target: mutation.target\n }));\n }\n });\n });\n this.mutationObserver.observe(tinymce_floating_toolbar_portal, {\n childList: true\n });\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].renderEditor(this);\n }\n\n setEditorView(view) {\n var _this$getTextarea$lab, _this$getTextarea$lab2, _this$getTextarea$lab3, _this$getTextarea$lab4, _this$_elementRef$cur4, _this$getTextarea$lab5, _this$getTextarea$lab6;\n\n switch (view) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().removeAttribute('aria-hidden');\n (_this$getTextarea$lab = this.getTextarea().labels) === null || _this$getTextarea$lab === void 0 ? void 0 : (_this$getTextarea$lab2 = _this$getTextarea$lab[0]) === null || _this$getTextarea$lab2 === void 0 ? void 0 : _this$getTextarea$lab2.removeAttribute('aria-hidden');\n this.mceInstance().hide();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab3 = this.getTextarea().labels) === null || _this$getTextarea$lab3 === void 0 ? void 0 : (_this$getTextarea$lab4 = _this$getTextarea$lab3[0]) === null || _this$getTextarea$lab4 === void 0 ? void 0 : _this$getTextarea$lab4.setAttribute('aria-hidden', true);\n this.mceInstance().hide();\n (_this$_elementRef$cur4 = this._elementRef.current.querySelector('.CodeMirror')) === null || _this$_elementRef$cur4 === void 0 ? void 0 : _this$_elementRef$cur4.CodeMirror.setCursor(0, 0);\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n this.setCode(this.textareaValue());\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab5 = this.getTextarea().labels) === null || _this$getTextarea$lab5 === void 0 ? void 0 : (_this$getTextarea$lab6 = _this$getTextarea$lab5[0]) === null || _this$getTextarea$lab6 === void 0 ? void 0 : _this$getTextarea$lab6.setAttribute('aria-hidden', true);\n this.mceInstance().show();\n }\n }\n\n renderHtmlEditor() {\n // the div keeps the editor from collapsing while the code editor is downloaded\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n height: this.state.height,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"medium\"\n }))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__[\"View\"], {\n as: \"div\",\n borderRadius: \"medium\",\n borderWidth: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RceHtmlEditor, {\n ref: this._prettyHtmlEditorRef,\n height: document[FS_ELEMENT] ? `${window.screen.height}px` : this.state.height,\n code: this.getCode(),\n onChange: value => {\n this.getTextarea().value = value;\n this.handleTextareaChange();\n },\n onFocus: this.handleFocusHtmlEditor\n })));\n }\n\n render() {\n const {\n trayProps,\n ...mceProps\n } = this.props;\n\n if (!this.state.shouldShowEditor) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._editorPlaceholderRef,\n style: {\n height: `${this.props.editorOptions.height}px`,\n border: '1px solid grey'\n }\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n key: this.id,\n className: `${styles.root} rce-wrapper`,\n ref: this._elementRef,\n onFocus: this.handleFocusRCE,\n onBlur: this.handleBlurRCE\n }, this.state.shouldShowOnFocusButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n onClick: this.openKBShortcutModal,\n margin: \"xx-small\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View keyboard shortcuts'),\n ref: el => this._showOnFocusButton = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__[\"IconKeyboardShortcutsLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_AlertMessageArea__WEBPACK_IMPORTED_MODULE_30__[\"default\"], {\n messages: this.state.messages,\n liveRegion: this.props.liveRegion,\n afterDismiss: this.removeAlert\n }), this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] && this.renderHtmlEditor(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n display: this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] ? 'none' : 'block'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__[\"Editor\"], {\n id: mceProps.textareaId,\n textareaName: mceProps.name,\n init: this.tinymceInitOptions,\n initialValue: mceProps.defaultContent,\n onInit: this.onInit,\n onClick: this.handleFocusEditor,\n onKeypress: this.handleFocusEditor,\n onActivate: this.handleFocusEditor,\n onRemove: this.onRemove,\n onFocus: this.handleFocusEditor,\n onBlur: this.handleBlurEditor,\n onNodeChange: this.onNodeChange,\n onEditorChange: this.onEditorChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n readOnly: this.props.readOnly,\n onChangeView: newView => this.toggleView(newView),\n path: this.state.path,\n wordCount: this.state.wordCount,\n editorView: this.state.editorView,\n preferredHtmlEditor: getHtmlEditorCookie(),\n onResize: this.onResize,\n onKBShortcutModalOpen: this.openKBShortcutModal,\n onA11yChecker: this.onA11yChecker,\n onFullscreen: this.handleClickFullscreen,\n a11yBadgeColor: this.theme.canvasBadgeBackgroundColor,\n a11yErrorsCount: this.state.a11yErrorsCount\n }), this.props.trayProps && this.props.trayProps.containingContext && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_23__[\"default\"], Object.assign({\n key: this.id,\n bridge: _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n editor: this,\n onTrayClosing: this.handleContentTrayClosing,\n use_rce_icon_maker: this.props.use_rce_icon_maker\n }, trayProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_29__[\"default\"], {\n onExited: this.KBShortcutModalExited,\n onDismiss: this.closeKBShortcutModal,\n open: this.state.KBShortcutModalOpen\n }), this.state.confirmAutoSave ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"small\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RestoreAutoSaveModal, {\n savedContent: this.state.autoSavedContent,\n open: this.state.confirmAutoSave,\n onNo: () => this.restoreAutoSave(false),\n onYes: () => this.restoreAutoSave(true)\n })) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__[\"Alert\"], {\n screenReaderOnly: true,\n liveRegion: this.props.liveRegion\n }, this.state.announcement));\n }\n\n}, _class2.propTypes = {\n autosave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n enabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n maxAge: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n defaultContent: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n editorOptions: editorOptionsPropType,\n handleUnmount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n editorView: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]]),\n renderKBShortcutModal: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n language: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n ltiTools: ltiToolsPropType,\n onContentChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onBlur: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onInitted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRemove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n textareaClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n textareaId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n languages: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n label: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n })),\n readOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n tinymce: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n trayProps: _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_23__[\"trayPropTypes\"],\n toolbar: toolbarPropType,\n menu: menuPropType,\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n instRecordDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n highContrastCSS: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n maxInitRenderedRCEs: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n features: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.objectOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool),\n flashAlertTimeout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n timezone: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string\n}, _class2.defaultProps = {\n trayProps: null,\n languages: [{\n id: 'en',\n label: 'English'\n }],\n autosave: {\n enabled: false\n },\n highContrastCSS: [],\n ltiTools: [],\n maxInitRenderedRCEs: -1,\n features: {},\n timezone: (_Intl = Intl) === null || _Intl === void 0 ? void 0 : (_Intl$DateTimeFormat = _Intl.DateTimeFormat()) === null || _Intl$DateTimeFormat === void 0 ? void 0 : (_Intl$DateTimeFormat$ = _Intl$DateTimeFormat.resolvedOptions()) === null || _Intl$DateTimeFormat$ === void 0 ? void 0 : _Intl$DateTimeFormat$.timeZone\n}, _class2.skinCssInjected = false, _class2)) || _class); // standard: string of tinymce menu commands\n// e.g. 'instructure_links | inserttable instructure_media_embed | hr'\n// custom: a string of tinymce menu commands\n// returns: standard + custom with any duplicate commands removed from custom\n\nfunction mergeMenuItems(standard, custom) {\n var _custom$trim;\n\n let c = custom === null || custom === void 0 ? void 0 : (_custom$trim = custom.trim) === null || _custom$trim === void 0 ? void 0 : _custom$trim.call(custom);\n if (!c) return standard;\n const s = new Set(standard.split(/[\\s|]+/)); // remove any duplicates\n\n c = c.split(/\\s+/).filter(m => !s.has(m));\n c = c.join(' ').replace(/^\\s*\\|\\s*/, '').replace(/\\s*\\|\\s*$/, '');\n return `${standard} | ${c}`;\n} // standard: the incoming tinymce menu object\n// custom: tinymce menu object to merge into standard\n// returns: the merged result by mutating incoming standard arg.\n// It will add commands to existing menus, or add a new menu\n// if the custom one does not exist\n\n\nfunction mergeMenu(standard, custom) {\n if (!custom) return standard;\n Object.keys(custom).forEach(k => {\n const curr_m = standard[k];\n\n if (curr_m) {\n curr_m.items = mergeMenuItems(curr_m.items, custom[k].items);\n } else {\n standard[k] = { ...custom[k]\n };\n }\n });\n return standard;\n} // standard: incoming tinymce toolbar array\n// custom: tinymce toolbar array to merge into standard\n// returns: the merged result by mutating the incoming standard arg.\n// It will add commands to existing toolbars, or add a new toolbar\n// if the custom one does not exist\n\n\nfunction mergeToolbar(standard, custom) {\n if (!custom) return standard; // merge given toolbar data into the default toolbar\n\n custom.forEach(tb => {\n const curr_tb = standard.find(t => tb.name && Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(tb.name) === t.name);\n\n if (curr_tb) {\n curr_tb.items.splice(curr_tb.items.length, 0, ...tb.items);\n } else {\n standard.push(tb);\n }\n });\n return standard;\n} // standard: incoming array of plugin names\n// custom: array of plugin names to merge\n// returns: the merged result, duplicates removed\n\n\nfunction mergePlugins(standard, custom) {\n if (!custom) return standard;\n const union = new Set(standard);\n\n for (const p of custom) {\n union.add(p);\n }\n\n return [...union];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RCEWrapper);\n\n\n//# sourceURL=webpack:///./src/rce/RCEWrapper.js?");
17391
17403
 
17392
17404
  /***/ }),
17393
17405
 
@@ -17447,7 +17459,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17447
17459
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17448
17460
 
17449
17461
  "use strict";
17450
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertContent\", function() { return insertContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertImage\", function() { return insertImage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertEquation\", function() { return insertEquation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLink\", function() { return existingContentToLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLinkIsImg\", function() { return existingContentToLinkIsImg; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertLink\", function() { return insertLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertVideo\", function() { return insertVideo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertAudio\", function() { return insertAudio; });\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ \"../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _contentRendering__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentRendering */ \"./src/rce/contentRendering.js\");\n/* harmony import */ var _common_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/scroll */ \"./src/common/scroll.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n/** * generic content insertion ** */\n// when the editor is hidden, just replace the selected portion of the textarea\n// with the content. branching is for cross-browser\n\nfunction replaceTextareaSelection(editor, content) {\n const element = editor.getElement();\n\n if ('selectionStart' in element) {\n // mozilla / dom 3.0\n const before = element.value.substr(0, element.selectionStart);\n const after = element.value.substr(element.selectionEnd, element.value.length);\n element.value = before + content + after;\n } else if (document.selection) {\n // exploder\n element.focus();\n document.selection.createRange().text = content;\n } else {\n // browser not supported\n element.value += content;\n }\n}\n\nfunction insertContent(editor, content) {\n if (editor.isHidden()) {\n // replaces the textarea selection with the new image. no element returned\n // to indicate because it's raw html.\n replaceTextareaSelection(editor, content);\n return null;\n } else {\n // inserts content at the cursor. getEnd() of the selection after the\n // insertion should reference the newly created node (or first of the newly\n // created nodes if there were multiple, unfortunately), because the cursor\n // itself stays just before the new content.\n _common_scroll__WEBPACK_IMPORTED_MODULE_2__[\"default\"].scrollIntoViewWDelay(editor.iframeElement, {}); // there's a bug in tinymce where insertContent calls execCommand('mceInsertContent'),\n // but doesn't correctly forward the second \"args\" argument. Let's go right for\n // execCommand\n // editor.insertContent(content, {skip_focus: true})\n\n editor.execCommand('mceInsertContent', false, content, {\n skip_focus: true\n });\n return editor.selection.getEnd();\n }\n}\n/** * image insertion ** */\n\nfunction isElemImg(elem) {\n return elem && elem.nodeName.toLowerCase() === 'img';\n}\n\nfunction isElemAnchor(elem) {\n return elem && elem.nodeName.toLowerCase() === 'a';\n}\n/*\n check if we should preserve the parent anchor tag. the criteria is pretty\n strict based on if we have a single image selected with an anchor tag\n surrounding\n*/\n\n\nfunction shouldPreserveImgAnchor(editor) {\n const selection = editor.selection;\n const selectedRange = selection.getRng();\n return isElemImg(selection.getNode()) && isElemAnchor(selectedRange.startContainer) && selectedRange.startContainer === selectedRange.endContainer;\n}\n\nfunction insertImage(editor, image) {\n let content = '';\n\n if (shouldPreserveImgAnchor(editor)) {\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderLinkedImage\"])(editor.selection.getRng().startContainer, image);\n } else {\n // render the image, constraining its size on insertion\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderImage\"])({ ...image\n });\n }\n\n return insertContent(editor, content);\n}\nfunction insertEquation(editor, latex, canvasUrl) {\n const docSz = parseFloat(editor.dom.doc.defaultView.getComputedStyle(editor.dom.doc.body).getPropertyValue('font-size')) || 1;\n const sel = editor.selection.getNode();\n const imgSz = sel ? parseFloat(editor.dom.doc.defaultView.getComputedStyle(sel).getPropertyValue('font-size')) || 1 : docSz;\n const scale = imgSz / docSz;\n let url = `/equation_images/${encodeURIComponent(encodeURIComponent(latex))}?scale=${scale}`;\n\n if (canvasUrl) {\n url = canvasUrl + url;\n } // if I simply create the html string, xsslint fails jenkins\n\n\n const img = document.createElement('img');\n img.setAttribute('alt', `LaTeX: ${latex}`);\n img.setAttribute('title', latex);\n img.setAttribute('class', 'equation_image');\n img.setAttribute('data-equation-content', latex);\n img.setAttribute('src', url);\n img.setAttribute('data-ignore-a11y-check', '');\n return insertContent(editor, img.outerHTML);\n}\n/** * link insertion ** */\n// checks if there's an existing anchor containing the cursor\n\nfunction currentLink(editor, link) {\n const cursor = link.selectionDetails && link.selectionDetails.node ? link.selectionDetails.node : editor.selection.getNode(); // This doesn't work in IE 11, but will stop brokeness in other browsers\n\n return editor.dom.getParent(cursor, 'a');\n} // checks if the editor has a current selection (vs. just a cursor position)\n\n\nfunction hasSelection(editor) {\n let selection = editor.selection.getContent();\n selection = editor.dom.decode(selection);\n return !!selection && selection != '';\n}\n\nfunction existingContentToLink(editor, link) {\n return !editor.isHidden() && (link && (currentLink(editor, link) || !!link.selectedContent) || hasSelection(editor));\n} // Parses HTML string with support in old browsers because jQuery's parseHTML was added in 1.8.\n\nfunction parseHTML(htmlString) {\n const tmp = document.implementation.createHTMLDocument();\n tmp.body.innerHTML = htmlString.trim();\n return tmp.body.children;\n}\n\nfunction selectionIsImg(editor) {\n const selection = editor.selection.getContent();\n return editor.dom.$(parseHTML(selection)).is('img');\n}\n\nfunction existingContentToLinkIsImg(editor) {\n return !editor.isHidden() && selectionIsImg(editor);\n}\n\nfunction decorateLinkWithEmbed(link) {\n const type = link.embed && link.embed.type;\n link.class = classnames__WEBPACK_IMPORTED_MODULE_0___default()(link.class, {\n instructure_file_link: true,\n instructure_scribd_file: type === 'scribd' || link['data-canvas-previewable'],\n instructure_image_thumbnail: type === 'image',\n instructure_video_link: type === 'video',\n instructure_audio_link: type === 'audio',\n auto_open: link.embed && link.embed.autoOpenPreview,\n inline_disabled: link.embed && link.embed.disableInlinePreview,\n no_preview: link.embed && link.embed.noPreview\n });\n\n if (link.embed.type == 'video' || link.embed.type == 'audio') {\n link.id = `media_comment_${link.embed.id || 'maybe'}`;\n }\n}\n\nfunction insertLink(editor, link) {\n const linkAttrs = { ...link\n };\n\n if (linkAttrs.embed) {\n decorateLinkWithEmbed(linkAttrs);\n delete linkAttrs.embed;\n }\n\n return insertUndecoratedLink(editor, linkAttrs);\n}\n\nfunction textForLink(linkProps, editor, anchorElm) {\n // Some actions (like editing the link text in the link tray)\n // require an explicit update to the link text\n if (linkProps.forceRename) return linkProps.text; // Other actions (link highlighting an existing link and changing\n // the linked file) should use the anchor text if present\n\n return getAnchorText(editor.selection, anchorElm) || linkProps.text;\n} // link edit/create logic based on tinymce/plugins/link/plugin.js\n\n\nfunction insertUndecoratedLink(editor, linkProps) {\n const selectedElm = editor.selection.getNode();\n const anchorElm = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"getAnchorElement\"])(editor, selectedElm);\n const selectedContent = editor.selection.getContent();\n const selectedPlainText = editor.selection.getContent({\n format: 'text'\n });\n const onlyText = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isOnlyTextSelected\"])(selectedContent);\n const linkText = onlyText && textForLink(linkProps, editor, anchorElm); // only keep the props we want as attributes on the <a>\n\n const linkAttrs = {\n id: linkProps.id,\n href: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"cleanUrl\"])(linkProps.href || linkProps.url),\n target: linkProps.target,\n class: linkProps.class,\n title: linkProps.title,\n 'data-canvas-previewable': linkProps['data-canvas-previewable']\n };\n\n if (linkAttrs.target === '_blank') {\n linkAttrs.rel = 'noopener noreferrer';\n }\n\n if (anchorElm && !editor.selection.isCollapsed()) {\n updateLink(editor, anchorElm, linkText, linkAttrs);\n } else if (selectedContent) {\n if (linkProps.userText && selectedPlainText !== linkText) {\n createLink(editor, selectedElm, linkText, linkAttrs);\n } else {\n createLink(editor, selectedElm, undefined, linkAttrs);\n }\n } else {\n createLink(editor, selectedElm, linkText, linkAttrs);\n }\n\n return editor.selection.getEnd(); // this will be the newly created or updated content\n}\n\nfunction getAnchorText(selection, anchorElm) {\n return anchorElm ? anchorElm.innerText : selection.getContent({\n format: 'text'\n });\n}\n\nfunction updateLink(editor, anchorElm, text, linkAttrs) {\n if (text && anchorElm.innerText !== text) {\n anchorElm.innerText = text;\n }\n\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n editor.undoManager.add();\n}\n\nfunction createLink(editor, selectedElm, text, linkAttrs) {\n if (Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isImageFigure\"])(selectedElm)) {\n linkImageFigure(editor, selectedElm, linkAttrs);\n } else if (text) {\n // create the whole wazoo\n insertContent(editor, editor.dom.createHTML('a', linkAttrs, editor.dom.encode(text)));\n } else {\n // create a link on the selected content\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }\n}\n\nfunction linkImageFigure(editor, fig, attrs) {\n const img = fig.tagName === 'IMG' ? fig : editor.dom.select('img', fig)[0];\n\n if (img) {\n const a = editor.dom.create('a', attrs);\n img.parentNode.insertBefore(a, img);\n a.appendChild(img);\n }\n}\n/* ** video insertion ** */\n\n\nfunction insertVideo(editor, video) {\n if (editor.selection.isCollapsed()) {\n var _result;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderVideo\"])(video)); // for some reason, editor.selection.getEnd() returned from\n // insertContent is parent paragraph when inserting the\n // video iframe. Look for the iframe with the right\n // src attribute. (Aside: tinymce strips the id or data-*\n // attributes from the iframe, that's why we can't look for those)\n\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the video to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result = result) !== null && _result !== void 0 && _result.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...video,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video)\n });\n }\n}\nfunction insertAudio(editor, audio) {\n if (editor.selection.isCollapsed()) {\n var _result2;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderAudio\"])(audio));\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the audio to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result2 = result) !== null && _result2 !== void 0 && _result2.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...audio,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio)\n });\n }\n}\n\n//# sourceURL=webpack:///./src/rce/contentInsertion.js?");
17462
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertContent\", function() { return insertContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertImage\", function() { return insertImage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertEquation\", function() { return insertEquation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLink\", function() { return existingContentToLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLinkIsImg\", function() { return existingContentToLinkIsImg; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertLink\", function() { return insertLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertVideo\", function() { return insertVideo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertAudio\", function() { return insertAudio; });\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ \"../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _contentRendering__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentRendering */ \"./src/rce/contentRendering.js\");\n/* harmony import */ var _common_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/scroll */ \"./src/common/scroll.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n/** * generic content insertion ** */\n// when the editor is hidden, just replace the selected portion of the textarea\n// with the content. branching is for cross-browser\n\nfunction replaceTextareaSelection(editor, content) {\n const element = editor.getElement();\n\n if ('selectionStart' in element) {\n // mozilla / dom 3.0\n const before = element.value.substr(0, element.selectionStart);\n const after = element.value.substr(element.selectionEnd, element.value.length);\n element.value = before + content + after;\n } else if (document.selection) {\n // exploder\n element.focus();\n document.selection.createRange().text = content;\n } else {\n // browser not supported\n element.value += content;\n }\n}\n\nfunction insertContent(editor, content) {\n if (editor.isHidden()) {\n // replaces the textarea selection with the new image. no element returned\n // to indicate because it's raw html.\n replaceTextareaSelection(editor, content);\n return null;\n } else {\n // inserts content at the cursor. getEnd() of the selection after the\n // insertion should reference the newly created node (or first of the newly\n // created nodes if there were multiple, unfortunately), because the cursor\n // itself stays just before the new content.\n _common_scroll__WEBPACK_IMPORTED_MODULE_2__[\"default\"].scrollIntoViewWDelay(editor.iframeElement, {}); // there's a bug in tinymce where insertContent calls execCommand('mceInsertContent'),\n // but doesn't correctly forward the second \"args\" argument. Let's go right for\n // execCommand\n // editor.insertContent(content, {skip_focus: true})\n\n editor.execCommand('mceInsertContent', false, content, {\n skip_focus: true\n });\n return editor.selection.getEnd();\n }\n}\n/** * image insertion ** */\n\nfunction isElemImg(elem) {\n return elem && elem.nodeName.toLowerCase() === 'img';\n}\n\nfunction isElemAnchor(elem) {\n return elem && elem.nodeName.toLowerCase() === 'a';\n}\n/*\n check if we should preserve the parent anchor tag. the criteria is pretty\n strict based on if we have a single image selected with an anchor tag\n surrounding\n*/\n\n\nfunction shouldPreserveImgAnchor(editor) {\n const selection = editor.selection;\n const selectedRange = selection.getRng();\n return isElemImg(selection.getNode()) && isElemAnchor(selectedRange.startContainer) && selectedRange.startContainer === selectedRange.endContainer;\n}\n\nfunction insertImage(editor, image) {\n let content = '';\n\n if (shouldPreserveImgAnchor(editor)) {\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderLinkedImage\"])(editor.selection.getRng().startContainer, image);\n } else {\n // render the image, constraining its size on insertion\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderImage\"])({ ...image\n });\n }\n\n return insertContent(editor, content);\n}\nfunction insertEquation(editor, latex, canvasUrl) {\n const docSz = parseFloat(editor.dom.doc.defaultView.getComputedStyle(editor.dom.doc.body).getPropertyValue('font-size')) || 1;\n const sel = editor.selection.getNode();\n const imgSz = sel ? parseFloat(editor.dom.doc.defaultView.getComputedStyle(sel).getPropertyValue('font-size')) || 1 : docSz;\n const scale = imgSz / docSz;\n let url = `/equation_images/${encodeURIComponent(encodeURIComponent(latex))}?scale=${scale}`;\n\n if (canvasUrl) {\n url = canvasUrl + url;\n } // if I simply create the html string, xsslint fails jenkins\n\n\n const img = document.createElement('img');\n img.setAttribute('alt', `LaTeX: ${latex}`);\n img.setAttribute('title', latex);\n img.setAttribute('class', 'equation_image');\n img.setAttribute('data-equation-content', latex);\n img.setAttribute('src', url);\n img.setAttribute('data-ignore-a11y-check', '');\n return insertContent(editor, img.outerHTML);\n}\n/** * link insertion ** */\n// checks if there's an existing anchor containing the cursor\n\nfunction currentLink(editor, link) {\n const cursor = link.selectionDetails && link.selectionDetails.node ? link.selectionDetails.node : editor.selection.getNode(); // This doesn't work in IE 11, but will stop brokeness in other browsers\n\n return editor.dom.getParent(cursor, 'a');\n} // checks if the editor has a current selection (vs. just a cursor position)\n\n\nfunction hasSelection(editor) {\n let selection = editor.selection.getContent();\n selection = editor.dom.decode(selection);\n return !!selection && selection != '';\n}\n\nfunction existingContentToLink(editor, link) {\n return !editor.isHidden() && (link && (currentLink(editor, link) || !!link.selectedContent) || hasSelection(editor));\n} // Parses HTML string with support in old browsers because jQuery's parseHTML was added in 1.8.\n\nfunction parseHTML(htmlString) {\n const tmp = document.implementation.createHTMLDocument();\n tmp.body.innerHTML = htmlString.trim();\n return tmp.body.children;\n}\n\nfunction selectionIsImg(editor) {\n const selection = editor.selection.getContent();\n return editor.dom.$(parseHTML(selection)).is('img');\n}\n\nfunction existingContentToLinkIsImg(editor) {\n return !editor.isHidden() && selectionIsImg(editor);\n}\n\nfunction decorateLinkWithEmbed(link) {\n const type = link.embed && link.embed.type;\n link.class = classnames__WEBPACK_IMPORTED_MODULE_0___default()(link.class, {\n instructure_file_link: true,\n instructure_scribd_file: type === 'scribd' || link['data-canvas-previewable'],\n instructure_image_thumbnail: type === 'image',\n instructure_video_link: type === 'video',\n instructure_audio_link: type === 'audio',\n auto_open: link.embed && link.embed.autoOpenPreview,\n inline_disabled: link.embed && link.embed.disableInlinePreview,\n no_preview: link.embed && link.embed.noPreview\n });\n\n if (link.embed.type == 'video' || link.embed.type == 'audio') {\n link.id = `media_comment_${link.embed.id || 'maybe'}`;\n }\n}\n\nfunction insertLink(editor, link) {\n const linkAttrs = { ...link\n };\n\n if (linkAttrs.embed) {\n decorateLinkWithEmbed(linkAttrs);\n delete linkAttrs.embed;\n }\n\n return insertUndecoratedLink(editor, linkAttrs);\n}\n\nfunction textForLink(linkProps, editor, anchorElm) {\n // Some actions (like editing the link text in the link tray)\n // require an explicit update to the link text\n if (linkProps.forceRename) return linkProps.text; // Other actions (link highlighting an existing link and changing\n // the linked file) should use the anchor text if present\n\n return getAnchorText(editor.selection, anchorElm) || linkProps.text;\n} // link edit/create logic based on tinymce/plugins/link/plugin.js\n\n\nfunction insertUndecoratedLink(editor, linkProps) {\n const selectedElm = editor.selection.getNode();\n const anchorElm = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"getAnchorElement\"])(editor, selectedElm);\n const selectedContent = editor.selection.getContent();\n const selectedPlainText = editor.selection.getContent({\n format: 'text'\n });\n const onlyText = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isOnlyTextSelected\"])(selectedContent);\n const linkText = onlyText && textForLink(linkProps, editor, anchorElm); // only keep the props we want as attributes on the <a>\n\n const linkAttrs = {\n id: linkProps.id,\n href: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"cleanUrl\"])(linkProps.href || linkProps.url),\n target: linkProps.target,\n class: linkProps.class,\n title: linkProps.title,\n 'data-canvas-previewable': linkProps['data-canvas-previewable'],\n 'data-course-type': linkProps['data-course-type'],\n 'data-published': linkProps['data-published']\n };\n\n if (linkAttrs.target === '_blank') {\n linkAttrs.rel = 'noopener noreferrer';\n }\n\n if (anchorElm && !editor.selection.isCollapsed()) {\n updateLink(editor, anchorElm, linkText, linkAttrs);\n } else if (selectedContent) {\n if (linkProps.userText && selectedPlainText !== linkText) {\n createLink(editor, selectedElm, linkText, linkAttrs);\n } else {\n createLink(editor, selectedElm, undefined, linkAttrs);\n }\n } else {\n createLink(editor, selectedElm, linkText, linkAttrs);\n }\n\n return editor.selection.getEnd(); // this will be the newly created or updated content\n}\n\nfunction getAnchorText(selection, anchorElm) {\n return anchorElm ? anchorElm.innerText : selection.getContent({\n format: 'text'\n });\n}\n\nfunction updateLink(editor, anchorElm, text, linkAttrs) {\n if (text && anchorElm.innerText !== text) {\n anchorElm.innerText = text;\n }\n\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n editor.undoManager.add();\n}\n\nfunction createLink(editor, selectedElm, text, linkAttrs) {\n if (Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isImageFigure\"])(selectedElm)) {\n linkImageFigure(editor, selectedElm, linkAttrs);\n } else if (text) {\n // create the whole wazoo\n insertContent(editor, editor.dom.createHTML('a', linkAttrs, editor.dom.encode(text)));\n } else {\n // create a link on the selected content\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }\n}\n\nfunction linkImageFigure(editor, fig, attrs) {\n const img = fig.tagName === 'IMG' ? fig : editor.dom.select('img', fig)[0];\n\n if (img) {\n const a = editor.dom.create('a', attrs);\n img.parentNode.insertBefore(a, img);\n a.appendChild(img);\n }\n}\n/* ** video insertion ** */\n\n\nfunction insertVideo(editor, video) {\n if (editor.selection.isCollapsed()) {\n var _result;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderVideo\"])(video)); // for some reason, editor.selection.getEnd() returned from\n // insertContent is parent paragraph when inserting the\n // video iframe. Look for the iframe with the right\n // src attribute. (Aside: tinymce strips the id or data-*\n // attributes from the iframe, that's why we can't look for those)\n\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the video to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result = result) !== null && _result !== void 0 && _result.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...video,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video)\n });\n }\n}\nfunction insertAudio(editor, audio) {\n if (editor.selection.isCollapsed()) {\n var _result2;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderAudio\"])(audio));\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the audio to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result2 = result) !== null && _result2 !== void 0 && _result2.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...audio,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio)\n });\n }\n}\n\n//# sourceURL=webpack:///./src/rce/contentInsertion.js?");
17451
17463
 
17452
17464
  /***/ }),
17453
17465
 
@@ -17550,11 +17562,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _wra
17550
17562
  /*!*****************************************************************!*\
17551
17563
  !*** ./src/rce/plugins/instructure_icon_maker/svg/constants.js ***!
17552
17564
  \*****************************************************************/
17553
- /*! exports provided: TYPE, BUTTON_ID, TOOLBAR_ID, ICON_MAKER_ATTRIBUTE, ICON_MAKER_DOWNLOAD_URL_ATTR, ICON_MAKER_ICONS, ICON_MAKER_PARAM, SVG_XML_TYPE, SVG_TYPE, Size, DEFAULT_SETTINGS, BASE_SIZE, STROKE_WIDTH, TEXT_SIZE, MAX_CHAR_COUNT, MAX_TOTAL_TEXT_CHARS, TEXT_BACKGROUND_PADDING */
17565
+ /*! exports provided: TYPE, BUTTON_ID, TOOLBAR_ID, ICON_MAKER_ATTRIBUTE, ICON_MAKER_DOWNLOAD_URL_ATTR, ICON_MAKER_ICONS, ICON_MAKER_PARAM, SVG_XML_TYPE, SVG_TYPE, Size, DEFAULT_SETTINGS, BASE_SIZE, STROKE_WIDTH, TEXT_SIZE, TEXT_SIZE_FONT_DIFF, MAX_CHAR_COUNT, MAX_TOTAL_TEXT_CHARS, TEXT_BACKGROUND_PADDING */
17554
17566
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17555
17567
 
17556
17568
  "use strict";
17557
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE\", function() { return TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BUTTON_ID\", function() { return BUTTON_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOOLBAR_ID\", function() { return TOOLBAR_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ATTRIBUTE\", function() { return ICON_MAKER_ATTRIBUTE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_DOWNLOAD_URL_ATTR\", function() { return ICON_MAKER_DOWNLOAD_URL_ATTR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ICONS\", function() { return ICON_MAKER_ICONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_PARAM\", function() { return ICON_MAKER_PARAM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_XML_TYPE\", function() { return SVG_XML_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_TYPE\", function() { return SVG_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Size\", function() { return Size; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SETTINGS\", function() { return DEFAULT_SETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BASE_SIZE\", function() { return BASE_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKE_WIDTH\", function() { return STROKE_WIDTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_SIZE\", function() { return TEXT_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_CHAR_COUNT\", function() { return MAX_CHAR_COUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_TOTAL_TEXT_CHARS\", function() { return MAX_TOTAL_TEXT_CHARS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_BACKGROUND_PADDING\", function() { return TEXT_BACKGROUND_PADDING; });\n/*\n * Copyright (C) 2021 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst TYPE = 'image/svg+xml-icon-maker-icons'; // New constants added to centralize imports\n\nconst BUTTON_ID = 'inst-icon-maker-edit';\nconst TOOLBAR_ID = 'inst-icon-maker-edit-toolbar';\nconst ICON_MAKER_ATTRIBUTE = 'data-inst-icon-maker-icon';\nconst ICON_MAKER_DOWNLOAD_URL_ATTR = 'data-download-url';\nconst ICON_MAKER_ICONS = 'icon_maker_icons';\nconst ICON_MAKER_PARAM = 'icon_maker_icon'; // different definitions for filetypes\n\nconst SVG_XML_TYPE = 'image/svg+xml';\nconst SVG_TYPE = 'image/svg';\nconst Size = {\n None: 'none',\n ExtraSmall: 'x-small',\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n ExtraLarge: 'x-large'\n};\nconst DEFAULT_SETTINGS = {\n // Basic icon maker settings\n type: TYPE,\n alt: '',\n isDecorative: false,\n shape: 'square',\n size: Size.Small,\n color: null,\n outlineColor: '#000000',\n outlineSize: Size.None,\n text: '',\n textSize: Size.Small,\n textColor: '#000000',\n textBackgroundColor: null,\n textPosition: 'below',\n encodedImage: '',\n encodedImageType: '',\n encodedImageName: '',\n // Additional external attributes\n externalStyle: null,\n externalWidth: null,\n externalHeight: null,\n // Embedded image crop settings\n x: 0,\n y: 0,\n translateX: 0,\n translateY: 0,\n width: 0,\n height: 0,\n transform: '',\n imageSettings: null\n};\nconst BASE_SIZE = {\n [Size.ExtraSmall]: 74,\n [Size.Small]: 122,\n [Size.Medium]: 158,\n [Size.Large]: 218\n};\nconst STROKE_WIDTH = {\n [Size.None]: 0,\n [Size.Small]: 2,\n [Size.Medium]: 4,\n [Size.Large]: 8\n};\nconst TEXT_SIZE = {\n [Size.Small]: 14,\n [Size.Medium]: 16,\n [Size.Large]: 22,\n [Size.ExtraLarge]: 28\n};\nconst MAX_CHAR_COUNT = {\n [Size.Small]: 21,\n [Size.Medium]: 18,\n [Size.Large]: 13,\n [Size.ExtraLarge]: 10\n};\nconst MAX_TOTAL_TEXT_CHARS = 32;\nconst TEXT_BACKGROUND_PADDING = 4;\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_icon_maker/svg/constants.js?");
17569
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE\", function() { return TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BUTTON_ID\", function() { return BUTTON_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOOLBAR_ID\", function() { return TOOLBAR_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ATTRIBUTE\", function() { return ICON_MAKER_ATTRIBUTE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_DOWNLOAD_URL_ATTR\", function() { return ICON_MAKER_DOWNLOAD_URL_ATTR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ICONS\", function() { return ICON_MAKER_ICONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_PARAM\", function() { return ICON_MAKER_PARAM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_XML_TYPE\", function() { return SVG_XML_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_TYPE\", function() { return SVG_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Size\", function() { return Size; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SETTINGS\", function() { return DEFAULT_SETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BASE_SIZE\", function() { return BASE_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKE_WIDTH\", function() { return STROKE_WIDTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_SIZE\", function() { return TEXT_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_SIZE_FONT_DIFF\", function() { return TEXT_SIZE_FONT_DIFF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_CHAR_COUNT\", function() { return MAX_CHAR_COUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_TOTAL_TEXT_CHARS\", function() { return MAX_TOTAL_TEXT_CHARS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_BACKGROUND_PADDING\", function() { return TEXT_BACKGROUND_PADDING; });\n/*\n * Copyright (C) 2021 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst TYPE = 'image/svg+xml-icon-maker-icons'; // New constants added to centralize imports\n\nconst BUTTON_ID = 'inst-icon-maker-edit';\nconst TOOLBAR_ID = 'inst-icon-maker-edit-toolbar';\nconst ICON_MAKER_ATTRIBUTE = 'data-inst-icon-maker-icon';\nconst ICON_MAKER_DOWNLOAD_URL_ATTR = 'data-download-url';\nconst ICON_MAKER_ICONS = 'icon_maker_icons';\nconst ICON_MAKER_PARAM = 'icon_maker_icon'; // different definitions for filetypes\n\nconst SVG_XML_TYPE = 'image/svg+xml';\nconst SVG_TYPE = 'image/svg';\nconst Size = {\n None: 'none',\n ExtraSmall: 'x-small',\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n ExtraLarge: 'x-large'\n};\nconst DEFAULT_SETTINGS = {\n // Basic icon maker settings\n type: TYPE,\n alt: '',\n isDecorative: false,\n shape: 'square',\n size: Size.Small,\n color: null,\n outlineColor: '#000000',\n outlineSize: Size.None,\n text: '',\n textSize: Size.Small,\n textColor: '#000000',\n textBackgroundColor: null,\n textPosition: 'below',\n encodedImage: '',\n encodedImageType: '',\n encodedImageName: '',\n // Additional external attributes\n externalStyle: null,\n externalWidth: null,\n externalHeight: null,\n // Embedded image crop settings\n x: 0,\n y: 0,\n translateX: 0,\n translateY: 0,\n width: 0,\n height: 0,\n transform: '',\n imageSettings: null,\n error: null\n};\nconst BASE_SIZE = {\n [Size.ExtraSmall]: 74,\n [Size.Small]: 122,\n [Size.Medium]: 158,\n [Size.Large]: 218\n};\nconst STROKE_WIDTH = {\n [Size.None]: 0,\n [Size.Small]: 2,\n [Size.Medium]: 4,\n [Size.Large]: 8\n};\nconst TEXT_SIZE = {\n [Size.Small]: 14,\n [Size.Medium]: 16,\n [Size.Large]: 22,\n [Size.ExtraLarge]: 28\n};\nconst TEXT_SIZE_FONT_DIFF = {\n [Size.Small]: -1,\n [Size.Medium]: 0,\n [Size.Large]: 1,\n [Size.ExtraLarge]: 2\n};\nconst MAX_CHAR_COUNT = {\n [Size.Small]: 21,\n [Size.Medium]: 18,\n [Size.Large]: 13,\n [Size.ExtraLarge]: 10\n};\nconst MAX_TOTAL_TEXT_CHARS = 32;\nconst TEXT_BACKGROUND_PADDING = 4;\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_icon_maker/svg/constants.js?");
17558
17570
 
17559
17571
  /***/ }),
17560
17572
 
@@ -17590,7 +17602,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17590
17602
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17591
17603
 
17592
17604
  "use strict";
17593
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VideoOptionsTray; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-text-area */ \"../../node_modules/@instructure/ui-text-area/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @instructure/ui-tooltip */ \"../../node_modules/@instructure/ui-tooltip/es/index.js\");\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _shared_StoreContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../shared/StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../shared/DimensionsInput */ \"./src/rce/plugins/shared/DimensionsInput/index.js\");\n/* harmony import */ var _shared_trayUtils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../shared/trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst getLiveRegion = () => document.getElementById('flash_screenreader_holder');\n\nfunction VideoOptionsTray(props) {\n const {\n videoOptions,\n onEntered,\n onExited,\n onRequestClose,\n onSave,\n open,\n trayProps,\n id\n } = props;\n const {\n naturalHeight,\n naturalWidth\n } = videoOptions;\n const currentHeight = videoOptions.appliedHeight || naturalHeight;\n const currentWidth = videoOptions.appliedWidth || naturalWidth;\n const [titleText, setTitleText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.titleText);\n const [displayAs, setDisplayAs] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('embed');\n const [videoSize, setVideoSize] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.videoSize);\n const [videoHeight, setVideoHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentHeight);\n const [videoWidth, setVideoWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentWidth);\n const [subtitles, setSubtitles] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.tracks || []);\n const [minWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"MIN_WIDTH_VIDEO\"]);\n const [minHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(Math.round(videoHeight / videoWidth * _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"MIN_WIDTH_VIDEO\"]));\n const [minPercentage] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"MIN_PERCENTAGE\"]);\n const dimensionsState = Object(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_19__[\"useDimensionsState\"])(videoOptions, {\n minHeight,\n minWidth,\n minPercentage\n });\n\n function handleTitleTextChange(event) {\n setTitleText(event.target.value);\n }\n\n function handleDisplayAsChange(event) {\n event.target.focus();\n setDisplayAs(event.target.value);\n }\n\n function handleVideoSizeChange(event, selectedOption) {\n setVideoSize(selectedOption.value);\n\n if (selectedOption.value === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"]) {\n setVideoHeight(currentHeight);\n setVideoWidth(currentWidth);\n } else {\n const {\n height,\n width\n } = Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"scaleToSize\"])(selectedOption.value, naturalWidth, naturalHeight);\n setVideoHeight(height);\n setVideoWidth(width);\n }\n }\n\n function handleUpdateSubtitles(new_subtitles) {\n setSubtitles(new_subtitles);\n }\n\n function handleSave(event, updateMediaObject) {\n event.preventDefault();\n let appliedHeight = videoHeight;\n let appliedWidth = videoWidth;\n\n if (videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"]) {\n appliedHeight = dimensionsState.height;\n appliedWidth = dimensionsState.width;\n }\n\n onSave({\n media_object_id: videoOptions.id,\n titleText,\n appliedHeight,\n appliedWidth,\n displayAs,\n subtitles,\n updateMediaObject\n });\n }\n\n const tooltipText = Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Used by screen readers to describe the video');\n const textAreaLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, null, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Title')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n margin: \"0 0 0 xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_12__[\"Tooltip\"], {\n on: ['hover', 'focus'],\n placement: \"top\",\n tip: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__[\"View\"], {\n display: \"block\",\n id: \"alt-text-label-tooltip\",\n maxWidth: \"14rem\"\n }, tooltipText)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n icon: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_8__[\"IconQuestionLine\"],\n size: \"small\",\n variant: \"icon\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__[\"ScreenReaderContent\"], null, tooltipText)))));\n const messagesForSize = [];\n\n if (videoSize !== _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"]) {\n messagesForSize.push({\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('{width} x {height}px', {\n height: videoHeight,\n width: videoWidth\n }),\n type: 'hint'\n });\n }\n\n const saveDisabled = displayAs === 'embed' && (titleText === '' || videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"] && !dimensionsState.isValid);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_StoreContext__WEBPACK_IMPORTED_MODULE_14__[\"StoreProvider\"], trayProps, contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_13__[\"Tray\"], {\n key: \"video-options-tray\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Video Options Tray'),\n onDismiss: onRequestClose,\n onEntered: onEntered,\n onExited: onExited,\n open: open,\n placement: \"end\",\n shouldCloseOnDocumentClick: true,\n shouldContainFocus: true,\n shouldReturnFocus: true,\n size: \"regular\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n direction: \"column\",\n height: Object(_shared_trayUtils__WEBPACK_IMPORTED_MODULE_20__[\"getTrayHeight\"])()\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n as: \"header\",\n padding: \"medium\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n direction: \"row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n grow: true,\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__[\"Heading\"], {\n as: \"h2\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Video Options'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"CloseButton\"], {\n placemet: \"static\",\n variant: \"icon\",\n onClick: onRequestClose\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Close'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n as: \"form\",\n grow: true,\n margin: \"none\",\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n justifyItems: \"space-between\",\n direction: \"column\",\n height: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n grow: true,\n padding: \"small\",\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_7__[\"TextArea\"], {\n \"aria-describedby\": \"alt-text-label-tooltip\",\n disabled: displayAs === 'link',\n height: \"4rem\",\n label: textAreaLabel,\n onChange: handleTitleTextChange,\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('(Describe the video)'),\n resize: \"vertical\",\n value: titleText\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n margin: \"small none none none\",\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__[\"RadioInputGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Display Options'),\n name: \"display-video-as\",\n onChange: handleDisplayAsChange,\n value: displayAs\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Embed Video'),\n value: \"embed\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Display Text Link (Opens in a new tab)'),\n value: \"link\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n margin: \"small none xx-small none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__[\"View\"], {\n as: \"div\",\n padding: \"small small xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n id: `${id}-size`,\n disabled: displayAs !== 'embed',\n renderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Size'),\n messages: messagesForSize,\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: handleVideoSizeChange,\n value: videoSize\n }, _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"videoSizes\"].map(size => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: `${id}-size-${size}`,\n key: size,\n value: size\n }, Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"labelForImageSize\"])(size))))), videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"] && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__[\"View\"], {\n as: \"div\",\n padding: \"xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n dimensionsState: dimensionsState,\n disabled: displayAs !== 'embed',\n minHeight: minHeight,\n minWidth: minWidth,\n minPercentage: minPercentage\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_10__[\"FormFieldGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Closed Captions/Subtitles')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_15__[\"ClosedCaptionPanel\"], {\n subtitles: subtitles.map(st => ({\n locale: st.locale,\n file: {\n name: st.language || st.locale\n } // this is an artifact of ClosedCaptionCreatorRow's inards\n\n })),\n uploadMediaTranslations: _bridge__WEBPACK_IMPORTED_MODULE_17__[\"default\"].uploadMediaTranslations,\n languages: _bridge__WEBPACK_IMPORTED_MODULE_17__[\"default\"].languages,\n updateSubtitles: handleUpdateSubtitles,\n liveRegion: getLiveRegion\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n background: \"secondary\",\n borderWidth: \"small none none none\",\n padding: \"small medium\",\n textAlign: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n disabled: saveDisabled,\n onClick: event => handleSave(event, contentProps.updateMediaObject),\n variant: \"primary\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Done'))))))));\n}\nVideoOptionsTray.propTypes = {\n videoOptions: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n titleText: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n appliedHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n appliedWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n naturalHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n naturalWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n tracks: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n locale: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }))\n }).isRequired,\n onEntered: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onRequestClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onSave: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n trayProps: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n host: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n jwt: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nVideoOptionsTray.defaultProps = {\n onEntered: null,\n onExited: null,\n id: 'video-options-tray'\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_record/VideoOptionsTray/index.js?");
17605
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VideoOptionsTray; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-text-area */ \"../../node_modules/@instructure/ui-text-area/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @instructure/ui-tooltip */ \"../../node_modules/@instructure/ui-tooltip/es/index.js\");\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _shared_StoreContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../shared/StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../shared/DimensionsInput */ \"./src/rce/plugins/shared/DimensionsInput/index.js\");\n/* harmony import */ var _shared_trayUtils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../shared/trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst getLiveRegion = () => document.getElementById('flash_screenreader_holder');\n\nfunction VideoOptionsTray(props) {\n const {\n videoOptions,\n onEntered,\n onExited,\n onRequestClose,\n onSave,\n open,\n trayProps,\n id\n } = props;\n const {\n naturalHeight,\n naturalWidth\n } = videoOptions;\n const currentHeight = videoOptions.appliedHeight || naturalHeight;\n const currentWidth = videoOptions.appliedWidth || naturalWidth;\n const [titleText, setTitleText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.titleText);\n const [displayAs, setDisplayAs] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('embed');\n const [videoSize, setVideoSize] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.videoSize);\n const [videoHeight, setVideoHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentHeight);\n const [videoWidth, setVideoWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentWidth);\n const [subtitles, setSubtitles] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.tracks || []);\n const [minWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"MIN_WIDTH_VIDEO\"]);\n const [minHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(Math.round(videoHeight / videoWidth * _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"MIN_WIDTH_VIDEO\"]));\n const [minPercentage] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"MIN_PERCENTAGE\"]);\n const dimensionsState = Object(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_18__[\"useDimensionsState\"])(videoOptions, {\n minHeight,\n minWidth,\n minPercentage\n });\n\n function handleTitleTextChange(event) {\n setTitleText(event.target.value);\n }\n\n function handleDisplayAsChange(event) {\n event.target.focus();\n setDisplayAs(event.target.value);\n }\n\n function handleVideoSizeChange(event, selectedOption) {\n setVideoSize(selectedOption.value);\n\n if (selectedOption.value === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"]) {\n setVideoHeight(currentHeight);\n setVideoWidth(currentWidth);\n } else {\n const {\n height,\n width\n } = Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"scaleToSize\"])(selectedOption.value, naturalWidth, naturalHeight);\n setVideoHeight(height);\n setVideoWidth(width);\n }\n }\n\n function handleUpdateSubtitles(new_subtitles) {\n setSubtitles(new_subtitles);\n }\n\n function handleSave(event, updateMediaObject) {\n event.preventDefault();\n let appliedHeight = videoHeight;\n let appliedWidth = videoWidth;\n\n if (videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"]) {\n appliedHeight = dimensionsState.height;\n appliedWidth = dimensionsState.width;\n }\n\n onSave({\n media_object_id: videoOptions.id,\n titleText,\n appliedHeight,\n appliedWidth,\n displayAs,\n subtitles,\n updateMediaObject\n });\n }\n\n const tooltipText = Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Used by screen readers to describe the video');\n const textAreaLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, null, Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Title')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n margin: \"0 0 0 xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_11__[\"Tooltip\"], {\n on: ['hover', 'focus'],\n placement: \"top\",\n renderTip: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__[\"View\"], {\n display: \"block\",\n id: \"alt-text-label-tooltip\",\n maxWidth: \"14rem\"\n }, tooltipText)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__[\"IconButton\"], {\n renderIcon: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_7__[\"IconQuestionLine\"],\n size: \"small\",\n screenReaderLabel: tooltipText,\n withBackground: false,\n withBorder: false\n }))));\n const messagesForSize = [];\n\n if (videoSize !== _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"]) {\n messagesForSize.push({\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('{width} x {height}px', {\n height: videoHeight,\n width: videoWidth\n }),\n type: 'hint'\n });\n }\n\n const saveDisabled = displayAs === 'embed' && (titleText === '' || videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"] && !dimensionsState.isValid);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_StoreContext__WEBPACK_IMPORTED_MODULE_13__[\"StoreProvider\"], trayProps, contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_12__[\"Tray\"], {\n key: \"video-options-tray\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Video Options Tray'),\n onDismiss: onRequestClose,\n onEntered: onEntered,\n onExited: onExited,\n open: open,\n placement: \"end\",\n shouldCloseOnDocumentClick: true,\n shouldContainFocus: true,\n shouldReturnFocus: true,\n size: \"regular\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n direction: \"column\",\n height: Object(_shared_trayUtils__WEBPACK_IMPORTED_MODULE_19__[\"getTrayHeight\"])()\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n as: \"header\",\n padding: \"medium\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n direction: \"row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_3__[\"Heading\"], {\n as: \"h2\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Video Options'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__[\"CloseButton\"], {\n color: \"primary\",\n onClick: onRequestClose,\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Close')\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n as: \"form\",\n shouldGrow: true,\n margin: \"none\",\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n justifyItems: \"space-between\",\n direction: \"column\",\n height: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n shouldGrow: true,\n padding: \"small\",\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_6__[\"TextArea\"], {\n \"aria-describedby\": \"alt-text-label-tooltip\",\n disabled: displayAs === 'link',\n height: \"4rem\",\n label: textAreaLabel,\n onChange: handleTitleTextChange,\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('(Describe the video)'),\n resize: \"vertical\",\n value: titleText\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n margin: \"small none none none\",\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__[\"RadioInputGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Display Options'),\n name: \"display-video-as\",\n onChange: handleDisplayAsChange,\n value: displayAs\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Embed Video'),\n value: \"embed\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Display Text Link (Opens in a new tab)'),\n value: \"link\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n margin: \"small none xx-small none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__[\"View\"], {\n as: \"div\",\n padding: \"small small xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_5__[\"SimpleSelect\"], {\n id: `${id}-size`,\n disabled: displayAs !== 'embed',\n renderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Size'),\n messages: messagesForSize,\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: handleVideoSizeChange,\n value: videoSize\n }, _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"videoSizes\"].map(size => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_5__[\"SimpleSelect\"].Option, {\n id: `${id}-size-${size}`,\n key: size,\n value: size\n }, Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"labelForImageSize\"])(size))))), videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"] && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__[\"View\"], {\n as: \"div\",\n padding: \"xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n dimensionsState: dimensionsState,\n disabled: displayAs !== 'embed',\n minHeight: minHeight,\n minWidth: minWidth,\n minPercentage: minPercentage\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_9__[\"FormFieldGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Closed Captions/Subtitles')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_14__[\"ClosedCaptionPanel\"], {\n subtitles: subtitles.map(st => ({\n locale: st.locale,\n file: {\n name: st.language || st.locale\n } // this is an artifact of ClosedCaptionCreatorRow's inards\n\n })),\n uploadMediaTranslations: _bridge__WEBPACK_IMPORTED_MODULE_16__[\"default\"].uploadMediaTranslations,\n languages: _bridge__WEBPACK_IMPORTED_MODULE_16__[\"default\"].languages,\n updateSubtitles: handleUpdateSubtitles,\n liveRegion: getLiveRegion\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n background: \"secondary\",\n borderWidth: \"small none none none\",\n padding: \"small medium\",\n textAlign: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__[\"Button\"], {\n disabled: saveDisabled,\n onClick: event => handleSave(event, contentProps.updateMediaObject),\n variant: \"primary\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Done'))))))));\n}\nVideoOptionsTray.propTypes = {\n videoOptions: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n titleText: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n appliedHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n appliedWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n naturalHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n naturalWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n tracks: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n locale: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }))\n }).isRequired,\n onEntered: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onRequestClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onSave: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n trayProps: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n host: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n jwt: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nVideoOptionsTray.defaultProps = {\n onEntered: null,\n onExited: null,\n id: 'video-options-tray'\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_record/VideoOptionsTray/index.js?");
17594
17606
 
17595
17607
  /***/ }),
17596
17608
 
@@ -17614,7 +17626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _for
17614
17626
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17615
17627
 
17616
17628
  "use strict";
17617
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CanvasContentTray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trayPropTypes\", function() { return trayPropTypes; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ErrorBoundary */ \"./src/rce/plugins/shared/ErrorBoundary.js\");\n/* harmony import */ var _bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../bridge/Bridge */ \"./src/bridge/Bridge.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _Filter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Filter */ \"./src/rce/plugins/shared/Filter.js\");\n/* harmony import */ var _StoreContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _trayUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Returns the translated tray label\n * @param {string} contentType - The type of content showing on tray\n * @param {string} contentSubtype - The current subtype of content loaded in the tray\n * @param {string} contextType - The user's context\n * @returns {string}\n */\n\nfunction getTrayLabel(contentType, contentSubtype, contextType) {\n if (contentType === 'links' && contextType === 'course') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Links');\n } else if (contentType === 'links' && contextType === 'group') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Links');\n }\n\n switch (contentSubtype) {\n case _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"]:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Icon Maker Icons');\n\n case 'images':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Images');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Images');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Images');\n\n case 'media':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Media');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Media');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Media');\n\n case 'documents':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Documents');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Documents');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Documents');\n\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Tray');\n // Shouldn't ever get here\n }\n}\n\nconst thePanels = {\n icon_maker_icons: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(32)]).then(__webpack_require__.bind(null, /*! ../instructure_icon_maker/components/SavedIconMakerList */ \"./src/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js\"))),\n links: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(28)]).then(__webpack_require__.bind(null, /*! ../instructure_links/components/LinksPanel */ \"./src/rce/plugins/instructure_links/components/LinksPanel.js\"))),\n images: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(33)]).then(__webpack_require__.bind(null, /*! ../instructure_image/Images */ \"./src/rce/plugins/instructure_image/Images/index.js\"))),\n documents: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(34)]).then(__webpack_require__.bind(null, /*! ../instructure_documents/components/DocumentsPanel */ \"./src/rce/plugins/instructure_documents/components/DocumentsPanel.js\"))),\n media: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(35)]).then(__webpack_require__.bind(null, /*! ../instructure_record/MediaPanel */ \"./src/rce/plugins/instructure_record/MediaPanel/index.js\"))),\n all: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(29), __webpack_require__.e(36)]).then(__webpack_require__.bind(null, /*! ./FileBrowser */ \"./src/rce/plugins/shared/FileBrowser.js\"))),\n unknown: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => __webpack_require__.e(/*! import() */ 74).then(__webpack_require__.bind(null, /*! ./UnknownFileTypePanel */ \"./src/rce/plugins/shared/UnknownFileTypePanel.js\")))\n}; // Returns a Suspense wrapped lazy loaded component\n// pulled from useLazy's cache\n\nfunction DynamicPanel(props) {\n let key = '';\n\n if (props.contentType === 'links') {\n key = 'links';\n } else {\n key = props.contentSubtype in thePanels ? props.contentSubtype : 'unknown';\n }\n\n const Component = thePanels[key];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"large\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, props));\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Loading');\n}\n\nconst FILTER_SETTINGS_BY_PLUGIN = {\n user_documents: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_documents: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_documents: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_images: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_images: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_images: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_media: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_media: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_media: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_links: {\n contextType: 'course',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_links: {\n contextType: 'group',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n list_icon_maker_icons: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"],\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n all: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'all',\n sortValue: 'alphabetical',\n sortDir: 'asc',\n searchString: ''\n }\n};\n\nfunction isLoading(cprops) {\n var _cprops$collections$a, _cprops$collections$a2, _cprops$collections$d, _cprops$collections$m, _cprops$collections$q, _cprops$collections$w, _cprops$documents$cou, _cprops$documents$use, _cprops$documents$gro, _cprops$media$course, _cprops$media$user, _cprops$media$group, _cprops$all_files;\n\n return ((_cprops$collections$a = cprops.collections.announcements) === null || _cprops$collections$a === void 0 ? void 0 : _cprops$collections$a.isLoading) || ((_cprops$collections$a2 = cprops.collections.assignments) === null || _cprops$collections$a2 === void 0 ? void 0 : _cprops$collections$a2.isLoading) || ((_cprops$collections$d = cprops.collections.discussions) === null || _cprops$collections$d === void 0 ? void 0 : _cprops$collections$d.isLoading) || ((_cprops$collections$m = cprops.collections.modules) === null || _cprops$collections$m === void 0 ? void 0 : _cprops$collections$m.isLoading) || ((_cprops$collections$q = cprops.collections.quizzes) === null || _cprops$collections$q === void 0 ? void 0 : _cprops$collections$q.isLoading) || ((_cprops$collections$w = cprops.collections.wikiPages) === null || _cprops$collections$w === void 0 ? void 0 : _cprops$collections$w.isLoading) || ((_cprops$documents$cou = cprops.documents.course) === null || _cprops$documents$cou === void 0 ? void 0 : _cprops$documents$cou.isLoading) || ((_cprops$documents$use = cprops.documents.user) === null || _cprops$documents$use === void 0 ? void 0 : _cprops$documents$use.isLoading) || ((_cprops$documents$gro = cprops.documents.group) === null || _cprops$documents$gro === void 0 ? void 0 : _cprops$documents$gro.isLoading) || ((_cprops$media$course = cprops.media.course) === null || _cprops$media$course === void 0 ? void 0 : _cprops$media$course.isLoading) || ((_cprops$media$user = cprops.media.user) === null || _cprops$media$user === void 0 ? void 0 : _cprops$media$user.isLoading) || ((_cprops$media$group = cprops.media.group) === null || _cprops$media$group === void 0 ? void 0 : _cprops$media$group.isLoading) || ((_cprops$all_files = cprops.all_files) === null || _cprops$all_files === void 0 ? void 0 : _cprops$all_files.isLoading);\n}\n/**\n * This component is used within various plugins to handle loading in content\n * from Canvas. It is essentially the main component.\n */\n\n\nfunction CanvasContentTray(props) {\n // should the tray be rendered open?\n const [isOpen, setIsOpen] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // has the tray fully opened. we use this to defer rendering the content\n // until the tray is open.\n\n const [hasOpened, setHasOpened] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // should we close the tray after the user clicks on something in it?\n\n const [hidingTrayOnAction, setHidingTrayOnAction] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(true);\n const trayRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const scrollingAreaRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const [filterSettings, setFilterSettings] = Object(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"useFilterSettings\"])();\n const {\n bridge,\n editor,\n onTrayClosing\n } = { ...props\n };\n const handleDismissTray = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n // return focus to the RCE if focus was on this tray\n if (trayRef.current && trayRef.current.contains(document.activeElement)) {\n bridge.focusActiveEditor(false);\n }\n\n onTrayClosing && onTrayClosing(CanvasContentTray.globalOpenCount); // tell RCEWrapper we're closing if we're open\n\n setIsOpen(false);\n }, [bridge, onTrayClosing]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n const controller = {\n showTrayForPlugin(plugin) {\n // increment a counter that's used as the key when rendering\n // this gets us a new instance everytime, which is necessary\n // to get the queries run so we have up to date data.\n ++CanvasContentTray.globalOpenCount;\n setFilterSettings(FILTER_SETTINGS_BY_PLUGIN[plugin]);\n setIsOpen(true);\n },\n\n hideTray(forceClose) {\n if (forceClose || hidingTrayOnAction) {\n handleDismissTray();\n }\n }\n\n };\n bridge.attachController(controller, editor.id);\n return () => {\n bridge.detachController(editor.id);\n }; // it's OK the setFilterSettings is not a dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor.id, bridge, handleDismissTray, hidingTrayOnAction]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n if (hasOpened && scrollingAreaRef.current && !scrollingAreaRef.current.style.overscrollBehaviorY) {\n scrollingAreaRef.current.style.overscrollBehaviorY = 'contain';\n }\n }, [hasOpened]);\n\n function handleOpenTray() {\n bridge.focusEditor(editor);\n setHasOpened(true);\n }\n\n function handleExitTray() {\n onTrayClosing && onTrayClosing(true); // tell RCEWrapper we're closing\n }\n\n function handleCloseTray() {\n setHasOpened(false);\n onTrayClosing && onTrayClosing(false); // tell RCEWrapper we're closed\n }\n\n function handleFilterChange(newFilter, onChangeContext, onChangeSearchString, onChangeSortBy) {\n const newFilterSettings = { ...newFilter\n };\n\n if (newFilterSettings.sortValue) {\n newFilterSettings.sortDir = newFilterSettings.sortValue === 'alphabetical' ? 'asc' : 'desc';\n onChangeSortBy({\n sort: newFilterSettings.sortValue,\n dir: newFilterSettings.sortDir\n });\n }\n\n if ('searchString' in newFilterSettings && filterSettings.searchString !== newFilterSettings.searchString) {\n onChangeSearchString(newFilterSettings.searchString);\n }\n\n setFilterSettings(newFilterSettings);\n\n if (newFilterSettings.contentType) {\n let contextType, contextId;\n\n switch (newFilterSettings.contentType) {\n case 'user_files':\n contextType = 'user';\n contextId = props.containingContext.userId;\n break;\n\n case 'group_files':\n contextType = 'group';\n contextId = props.containingContext.contextId;\n break;\n\n case 'course_files':\n contextType = props.contextType;\n contextId = props.containingContext.contextId;\n break;\n\n case 'links':\n contextType = props.containingContext.contextType;\n contextId = props.containingContext.contextId;\n }\n\n onChangeContext({\n contextType,\n contextId\n });\n }\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_StoreContext__WEBPACK_IMPORTED_MODULE_11__[\"StoreProvider\"], Object.assign({}, props, {\n key: CanvasContentTray.globalOpenCount,\n contextType: filterSettings.contextType || props.contextType\n }), contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__[\"Tray\"], {\n \"data-mce-component\": true,\n \"data-testid\": \"CanvasContentTray\",\n label: getTrayLabel(filterSettings.contentType, filterSettings.contentSubtype, contentProps.contextType),\n open: isOpen,\n placement: \"end\",\n size: \"regular\",\n shouldContainFocus: true,\n shouldReturnFocus: false,\n shouldCloseOnDocumentClick: false,\n onDismiss: handleDismissTray,\n onClose: handleCloseTray,\n onExit: handleExitTray,\n onOpen: handleOpenTray,\n onEntered: () => {\n const c = document.querySelector('[role=\"main\"]');\n let target_w = 0;\n\n if (c) {\n var _trayRef$current;\n\n const margin = window.getComputedStyle(c).direction === 'ltr' ? document.body.getBoundingClientRect().right - c.getBoundingClientRect().right : c.getBoundingClientRect().left;\n target_w = c.offsetWidth - ((_trayRef$current = trayRef.current) === null || _trayRef$current === void 0 ? void 0 : _trayRef$current.offsetWidth) + margin;\n\n if (target_w >= 320 && target_w < c.offsetWidth) {\n c.style.boxSizing = 'border-box';\n c.style.width = `${target_w}px`;\n }\n }\n\n setHidingTrayOnAction(target_w < 320);\n },\n onExiting: () => {\n const c = document.querySelector('[role=\"main\"]');\n if (c) c.style.width = '';\n },\n contentRef: el => trayRef.current = el\n }, isOpen && hasOpened ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n direction: \"column\",\n as: \"div\",\n height: Object(_trayUtils__WEBPACK_IMPORTED_MODULE_12__[\"getTrayHeight\"])(),\n overflowY: \"hidden\",\n tabIndex: \"-1\",\n \"data-canvascontenttray-content\": true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n padding: \"medium\",\n shadow: \"above\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n margin: \"none none medium none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldgrow: true,\n shouldshrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__[\"Heading\"], {\n level: \"h2\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Add'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"CloseButton\"], {\n placement: \"end\",\n onClick: handleDismissTray,\n \"data-testid\": \"CloseButton_ContentTray\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Close')\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object.assign({}, filterSettings, {\n userContextType: props.contextType,\n containingContextType: props.containingContext.contextType,\n onChange: newFilter => {\n handleFilterChange(newFilter, contentProps.onChangeContext, contentProps.onChangeSearchString, contentProps.onChangeSortBy);\n },\n isContentLoading: isLoading(contentProps),\n use_rce_icon_maker: props.use_rce_icon_maker\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldgrow: true,\n shouldshrink: true,\n margin: \"xx-small xxx-small 0\",\n elementRef: el => scrollingAreaRef.current = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DynamicPanel, Object.assign({\n contentType: filterSettings.contentType,\n contentSubtype: filterSettings.contentSubtype,\n sortBy: {\n sort: filterSettings.sortValue,\n order: filterSettings.sortDir\n },\n searchString: filterSettings.searchString,\n source: props.source,\n jwt: props.jwt,\n host: props.host,\n refreshToken: props.refreshToken,\n context: {\n type: props.contextType,\n id: props.contextId\n }\n }, contentProps))))) : null));\n}\nCanvasContentTray.globalOpenCount = 0;\n\nfunction requiredWithoutSource(props, propName, componentName) {\n if (props.source == null && props[propName] == null) {\n throw new Error(`The prop \\`${propName}\\` is marked as required in \\`${componentName}\\`, but its value is \\`${props[propName]}\\`.`);\n }\n}\n\nconst trayPropsMap = {\n canUploadFiles: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context (e.g. student v teacher), not the tray's\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context, not the tray's\n containingContext: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n userId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n filesTabDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n host: requiredWithoutSource,\n jwt: requiredWithoutSource,\n refreshToken: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n source: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n fetchImages: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }),\n themeUrl: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nconst trayPropTypes = Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])(trayPropsMap);\nCanvasContentTray.propTypes = {\n bridge: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"instanceOf\"])(_bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__[\"default\"]).isRequired,\n editor: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n }).isRequired,\n onTrayClosing: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n // called with true when the tray starts closing, false once closed\n ...trayPropsMap\n}; // the way we define trayProps, eslint doesn't recognize the following as props\n\n/* eslint-disable react/default-props-match-prop-types */\n\nCanvasContentTray.defaultProps = {\n canUploadFiles: false,\n filesTabDisabled: false,\n refreshToken: null,\n source: null,\n themeUrl: null\n};\n/* eslint-enable react/default-props-match-prop-types */\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/CanvasContentTray.js?");
17629
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CanvasContentTray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trayPropTypes\", function() { return trayPropTypes; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ErrorBoundary */ \"./src/rce/plugins/shared/ErrorBoundary.js\");\n/* harmony import */ var _bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../bridge/Bridge */ \"./src/bridge/Bridge.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _Filter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Filter */ \"./src/rce/plugins/shared/Filter.js\");\n/* harmony import */ var _StoreContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _trayUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/* harmony import */ var _ContentSelection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ContentSelection */ \"./src/rce/plugins/shared/ContentSelection.js\");\n/* harmony import */ var _linkUtils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./linkUtils */ \"./src/rce/plugins/shared/linkUtils.js\");\n/* harmony import */ var _LinkDisplay__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LinkDisplay */ \"./src/rce/plugins/shared/LinkDisplay.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Returns the translated tray label\n * @param {string} contentType - The type of content showing on tray\n * @param {string} contentSubtype - The current subtype of content loaded in the tray\n * @param {string} contextType - The user's context\n * @returns {string}\n */\n\nfunction getTrayLabel(contentType, contentSubtype, contextType) {\n if (contentType === 'links' && contextType === 'course') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Links');\n } else if (contentType === 'links' && contextType === 'group') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Links');\n }\n\n switch (contentSubtype) {\n case _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"]:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Icon Maker Icons');\n\n case 'images':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Images');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Images');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Images');\n\n case 'media':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Media');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Media');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Media');\n\n case 'documents':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Documents');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Documents');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Documents');\n\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Tray');\n // Shouldn't ever get here\n }\n}\n\nconst thePanels = {\n icon_maker_icons: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(32)]).then(__webpack_require__.bind(null, /*! ../instructure_icon_maker/components/SavedIconMakerList */ \"./src/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js\"))),\n links: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(28)]).then(__webpack_require__.bind(null, /*! ../instructure_links/components/LinksPanel */ \"./src/rce/plugins/instructure_links/components/LinksPanel.js\"))),\n images: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(33)]).then(__webpack_require__.bind(null, /*! ../instructure_image/Images */ \"./src/rce/plugins/instructure_image/Images/index.js\"))),\n documents: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(34)]).then(__webpack_require__.bind(null, /*! ../instructure_documents/components/DocumentsPanel */ \"./src/rce/plugins/instructure_documents/components/DocumentsPanel.js\"))),\n media: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(35)]).then(__webpack_require__.bind(null, /*! ../instructure_record/MediaPanel */ \"./src/rce/plugins/instructure_record/MediaPanel/index.js\"))),\n all: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(29), __webpack_require__.e(37)]).then(__webpack_require__.bind(null, /*! ./FileBrowser */ \"./src/rce/plugins/shared/FileBrowser.js\"))),\n unknown: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => __webpack_require__.e(/*! import() */ 74).then(__webpack_require__.bind(null, /*! ./UnknownFileTypePanel */ \"./src/rce/plugins/shared/UnknownFileTypePanel.js\")))\n}; // Returns a Suspense wrapped lazy loaded component\n// pulled from useLazy's cache\n\nfunction DynamicPanel(props) {\n let key = '';\n\n if (props.contentType === 'links') {\n key = 'links';\n } else {\n key = props.contentSubtype in thePanels ? props.contentSubtype : 'unknown';\n }\n\n const Component = thePanels[key];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"large\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, props));\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Loading');\n}\n\nconst FILTER_SETTINGS_BY_PLUGIN = {\n user_documents: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_documents: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_documents: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_images: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_images: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_images: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_media: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_media: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_media: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_links: {\n contextType: 'course',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_link_edit: {\n contextType: 'course',\n contentType: 'links',\n contentSubtype: 'edit',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_links: {\n contextType: 'group',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n list_icon_maker_icons: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"],\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n all: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'all',\n sortValue: 'alphabetical',\n sortDir: 'asc',\n searchString: ''\n }\n};\n\nfunction isLoading(cprops) {\n var _cprops$collections$a, _cprops$collections$a2, _cprops$collections$d, _cprops$collections$m, _cprops$collections$q, _cprops$collections$w, _cprops$documents$cou, _cprops$documents$use, _cprops$documents$gro, _cprops$media$course, _cprops$media$user, _cprops$media$group, _cprops$all_files;\n\n return ((_cprops$collections$a = cprops.collections.announcements) === null || _cprops$collections$a === void 0 ? void 0 : _cprops$collections$a.isLoading) || ((_cprops$collections$a2 = cprops.collections.assignments) === null || _cprops$collections$a2 === void 0 ? void 0 : _cprops$collections$a2.isLoading) || ((_cprops$collections$d = cprops.collections.discussions) === null || _cprops$collections$d === void 0 ? void 0 : _cprops$collections$d.isLoading) || ((_cprops$collections$m = cprops.collections.modules) === null || _cprops$collections$m === void 0 ? void 0 : _cprops$collections$m.isLoading) || ((_cprops$collections$q = cprops.collections.quizzes) === null || _cprops$collections$q === void 0 ? void 0 : _cprops$collections$q.isLoading) || ((_cprops$collections$w = cprops.collections.wikiPages) === null || _cprops$collections$w === void 0 ? void 0 : _cprops$collections$w.isLoading) || ((_cprops$documents$cou = cprops.documents.course) === null || _cprops$documents$cou === void 0 ? void 0 : _cprops$documents$cou.isLoading) || ((_cprops$documents$use = cprops.documents.user) === null || _cprops$documents$use === void 0 ? void 0 : _cprops$documents$use.isLoading) || ((_cprops$documents$gro = cprops.documents.group) === null || _cprops$documents$gro === void 0 ? void 0 : _cprops$documents$gro.isLoading) || ((_cprops$media$course = cprops.media.course) === null || _cprops$media$course === void 0 ? void 0 : _cprops$media$course.isLoading) || ((_cprops$media$user = cprops.media.user) === null || _cprops$media$user === void 0 ? void 0 : _cprops$media$user.isLoading) || ((_cprops$media$group = cprops.media.group) === null || _cprops$media$group === void 0 ? void 0 : _cprops$media$group.isLoading) || ((_cprops$all_files = cprops.all_files) === null || _cprops$all_files === void 0 ? void 0 : _cprops$all_files.isLoading);\n}\n/**\n * This component is used within various plugins to handle loading in content\n * from Canvas. It is essentially the main component.\n */\n\n\nfunction CanvasContentTray(props) {\n // should the tray be rendered open?\n const [isOpen, setIsOpen] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // has the tray fully opened. we use this to defer rendering the content\n // until the tray is open.\n\n const [hasOpened, setHasOpened] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // should we close the tray after the user clicks on something in it?\n\n const [hidingTrayOnAction, setHidingTrayOnAction] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(true);\n const trayRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const scrollingAreaRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const [filterSettings, setFilterSettings] = Object(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"useFilterSettings\"])();\n const [isEditTray, setIsEditTray] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false);\n const [link, setLink] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n const [linkText, setLinkText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n const [placeholderText, setPlaceholderText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n const Icon = Object(_linkUtils__WEBPACK_IMPORTED_MODULE_15__[\"getIcon\"])(link === null || link === void 0 ? void 0 : link.type);\n const {\n bridge,\n editor,\n onTrayClosing\n } = { ...props\n };\n const handleDismissTray = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n // return focus to the RCE if focus was on this tray\n if (trayRef.current && trayRef.current.contains(document.activeElement)) {\n bridge.focusActiveEditor(false);\n }\n\n onTrayClosing && onTrayClosing(CanvasContentTray.globalOpenCount); // tell RCEWrapper we're closing if we're open\n\n setIsOpen(false);\n }, [bridge, onTrayClosing]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n const controller = {\n showTrayForPlugin(plugin) {\n // increment a counter that's used as the key when rendering\n // this gets us a new instance everytime, which is necessary\n // to get the queries run so we have up to date data.\n ++CanvasContentTray.globalOpenCount;\n setFilterSettings(FILTER_SETTINGS_BY_PLUGIN[plugin]);\n setIsOpen(true);\n\n if (plugin === 'course_link_edit') {\n setIsEditTray(true);\n const {\n fileName,\n contentType,\n url,\n published,\n text\n } = Object(_ContentSelection__WEBPACK_IMPORTED_MODULE_14__[\"getLinkContentFromEditor\"])(editor.editor);\n setLink({\n title: fileName,\n type: contentType,\n href: url,\n published\n });\n setLinkText(text);\n setPlaceholderText(text);\n } else {\n setIsEditTray(false);\n }\n },\n\n hideTray(forceClose) {\n if (forceClose || hidingTrayOnAction) {\n handleDismissTray();\n }\n }\n\n };\n bridge.attachController(controller, editor.id);\n return () => {\n bridge.detachController(editor.id);\n }; // it's OK the setFilterSettings is not a dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor.id, bridge, handleDismissTray, hidingTrayOnAction]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n if (hasOpened && scrollingAreaRef.current && !scrollingAreaRef.current.style.overscrollBehaviorY) {\n scrollingAreaRef.current.style.overscrollBehaviorY = 'contain';\n }\n }, [hasOpened]);\n\n function handleOpenTray() {\n bridge.focusEditor(editor);\n setHasOpened(true);\n }\n\n function handleExitTray() {\n onTrayClosing && onTrayClosing(true); // tell RCEWrapper we're closing\n }\n\n function handleCloseTray() {\n setHasOpened(false);\n onTrayClosing && onTrayClosing(false); // tell RCEWrapper we're closed\n }\n\n function handleReplaceButton() {\n handleDismissTray();\n const newLink = { ...link,\n forceRename: true,\n text: linkText || placeholderText\n };\n bridge.insertLink(newLink);\n }\n\n function renderFooter() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n background: \"secondary\",\n borderWidth: \"small none none none\",\n padding: \"small medium\",\n textAlign: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n onClick: handleDismissTray\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Cancel')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n margin: \"0 0 0 x-small\",\n color: \"primary\",\n onClick: handleReplaceButton,\n \"data-testid\": \"replace-link-button\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Replace')));\n }\n\n function handleFilterChange(newFilter, onChangeContext, onChangeSearchString, onChangeSortBy) {\n const newFilterSettings = { ...newFilter\n };\n\n if (newFilterSettings.sortValue) {\n newFilterSettings.sortDir = newFilterSettings.sortValue === 'alphabetical' ? 'asc' : 'desc';\n onChangeSortBy({\n sort: newFilterSettings.sortValue,\n dir: newFilterSettings.sortDir\n });\n }\n\n if ('searchString' in newFilterSettings && filterSettings.searchString !== newFilterSettings.searchString) {\n onChangeSearchString(newFilterSettings.searchString);\n }\n\n setFilterSettings(newFilterSettings);\n\n if (newFilterSettings.contentType) {\n let contextType, contextId;\n\n switch (newFilterSettings.contentType) {\n case 'user_files':\n contextType = 'user';\n contextId = props.containingContext.userId;\n break;\n\n case 'group_files':\n contextType = 'group';\n contextId = props.containingContext.contextId;\n break;\n\n case 'course_files':\n contextType = props.contextType;\n contextId = props.containingContext.contextId;\n break;\n\n case 'links':\n contextType = props.containingContext.contextType;\n contextId = props.containingContext.contextId;\n }\n\n onChangeContext({\n contextType,\n contextId\n });\n }\n }\n\n function getHeader() {\n return isEditTray ? Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Edit Course Link') : Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Add');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_StoreContext__WEBPACK_IMPORTED_MODULE_11__[\"StoreProvider\"], Object.assign({}, props, {\n key: CanvasContentTray.globalOpenCount,\n contextType: filterSettings.contextType || props.contextType\n }), contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__[\"Tray\"], {\n \"data-mce-component\": true,\n \"data-testid\": \"CanvasContentTray\",\n label: getTrayLabel(filterSettings.contentType, filterSettings.contentSubtype, contentProps.contextType),\n open: isOpen,\n placement: \"end\",\n size: \"regular\",\n shouldContainFocus: true,\n shouldReturnFocus: false,\n shouldCloseOnDocumentClick: false,\n onDismiss: handleDismissTray,\n onClose: handleCloseTray,\n onExit: handleExitTray,\n onOpen: handleOpenTray,\n onEntered: () => {\n const c = document.querySelector('[role=\"main\"]');\n let target_w = 0;\n\n if (c) {\n var _trayRef$current;\n\n const margin = window.getComputedStyle(c).direction === 'ltr' ? document.body.getBoundingClientRect().right - c.getBoundingClientRect().right : c.getBoundingClientRect().left;\n target_w = c.offsetWidth - ((_trayRef$current = trayRef.current) === null || _trayRef$current === void 0 ? void 0 : _trayRef$current.offsetWidth) + margin;\n\n if (target_w >= 320 && target_w < c.offsetWidth) {\n c.style.boxSizing = 'border-box';\n c.style.width = `${target_w}px`;\n }\n }\n\n setHidingTrayOnAction(target_w < 320);\n },\n onExiting: () => {\n const c = document.querySelector('[role=\"main\"]');\n if (c) c.style.width = '';\n },\n contentRef: el => trayRef.current = el\n }, isOpen && hasOpened ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n direction: \"column\",\n as: \"div\",\n height: Object(_trayUtils__WEBPACK_IMPORTED_MODULE_12__[\"getTrayHeight\"])(),\n overflowY: \"hidden\",\n tabIndex: \"-1\",\n \"data-canvascontenttray-content\": true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n padding: \"medium\",\n shadow: \"above\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n margin: \"none none medium none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldgrow: true,\n shouldshrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__[\"Heading\"], {\n level: \"h2\"\n }, getHeader())), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"CloseButton\"], {\n placement: \"end\",\n onClick: handleDismissTray,\n \"data-testid\": \"CloseButton_ContentTray\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Close')\n }))), isEditTray && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_LinkDisplay__WEBPACK_IMPORTED_MODULE_16__[\"LinkDisplay\"], {\n linkText: linkText,\n Icon: Icon,\n placeholderText: placeholderText,\n linkFileName: (link === null || link === void 0 ? void 0 : link.title) || '',\n published: (link === null || link === void 0 ? void 0 : link.published) || false,\n handleTextChange: setLinkText\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object.assign({}, filterSettings, {\n userContextType: props.contextType,\n containingContextType: props.containingContext.contextType,\n onChange: newFilter => {\n handleFilterChange(newFilter, contentProps.onChangeContext, contentProps.onChangeSearchString, contentProps.onChangeSortBy);\n },\n isContentLoading: isLoading(contentProps),\n use_rce_icon_maker: props.use_rce_icon_maker\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n grow: true,\n shrink: true,\n margin: \"xx-small xxx-small 0\",\n elementRef: el => scrollingAreaRef.current = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n justifyItems: \"space-between\",\n direction: \"column\",\n height: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DynamicPanel, Object.assign({\n contentType: filterSettings.contentType,\n contentSubtype: filterSettings.contentSubtype,\n sortBy: {\n sort: filterSettings.sortValue,\n order: filterSettings.sortDir\n },\n searchString: filterSettings.searchString,\n source: props.source,\n jwt: props.jwt,\n host: props.host,\n refreshToken: props.refreshToken,\n context: {\n type: props.contextType,\n id: props.contextId\n },\n editing: isEditTray,\n onEditClick: setLink\n }, contentProps)))), isEditTray && renderFooter()))) : null));\n}\nCanvasContentTray.globalOpenCount = 0;\n\nfunction requiredWithoutSource(props, propName, componentName) {\n if (props.source == null && props[propName] == null) {\n throw new Error(`The prop \\`${propName}\\` is marked as required in \\`${componentName}\\`, but its value is \\`${props[propName]}\\`.`);\n }\n}\n\nconst trayPropsMap = {\n canUploadFiles: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context (e.g. student v teacher), not the tray's\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context, not the tray's\n containingContext: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n userId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n filesTabDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n host: requiredWithoutSource,\n jwt: requiredWithoutSource,\n refreshToken: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n source: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n fetchImages: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }),\n themeUrl: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nconst trayPropTypes = Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])(trayPropsMap);\nCanvasContentTray.propTypes = {\n bridge: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"instanceOf\"])(_bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__[\"default\"]).isRequired,\n editor: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n }).isRequired,\n onTrayClosing: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n // called with true when the tray starts closing, false once closed\n onEditClick: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n ...trayPropsMap\n}; // the way we define trayProps, eslint doesn't recognize the following as props\n\n/* eslint-disable react/default-props-match-prop-types */\n\nCanvasContentTray.defaultProps = {\n canUploadFiles: false,\n filesTabDisabled: false,\n refreshToken: null,\n source: null,\n themeUrl: null\n};\n/* eslint-enable react/default-props-match-prop-types */\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/CanvasContentTray.js?");
17618
17630
 
17619
17631
  /***/ }),
17620
17632
 
@@ -17626,7 +17638,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17626
17638
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17627
17639
 
17628
17640
  "use strict";
17629
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_TYPE\", function() { return LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILE_LINK_TYPE\", function() { return FILE_LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IMAGE_EMBED_TYPE\", function() { return IMAGE_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIDEO_EMBED_TYPE\", function() { return VIDEO_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_TYPE\", function() { return TEXT_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NONE_TYPE\", function() { return NONE_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_LINK\", function() { return DISPLAY_AS_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED\", function() { return DISPLAY_AS_EMBED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED_DISABLED\", function() { return DISPLAY_AS_EMBED_DISABLED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_DOWNLOAD_LINK\", function() { return DISPLAY_AS_DOWNLOAD_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asImageEmbed\", function() { return asImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asLink\", function() { return asLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asVideoElement\", function() { return asVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asAudioElement\", function() { return asAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromElement\", function() { return getContentFromElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromEditor\", function() { return getContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLinkContentFromEditor\", function() { return getLinkContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFileLink\", function() { return isFileLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImageEmbed\", function() { return isImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVideoElement\", function() { return isVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAudioElement\", function() { return isAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findMediaPlayerIframe\", function() { return findMediaPlayerIframe; });\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\nconst FILE_DOWNLOAD_PATH_REGEX = /^\\/(courses\\/\\d+\\/)?files\\/\\d+\\/download$/;\nconst LINK_TYPE = 'link';\nconst FILE_LINK_TYPE = 'file-link';\nconst IMAGE_EMBED_TYPE = 'image-embed';\nconst VIDEO_EMBED_TYPE = 'video-embed';\nconst TEXT_TYPE = 'text';\nconst NONE_TYPE = 'none';\nconst DISPLAY_AS_LINK = 'link';\nconst DISPLAY_AS_EMBED = 'embed';\nconst DISPLAY_AS_EMBED_DISABLED = 'embed-disabled';\nconst DISPLAY_AS_DOWNLOAD_LINK = 'download-link';\nfunction asImageEmbed($element) {\n const nodeName = $element.nodeName.toLowerCase();\n\n if (nodeName !== 'img') {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromImageEmbed\"])($element),\n $element,\n type: IMAGE_EMBED_TYPE\n };\n}\nfunction asLink($element, editor) {\n let $link = $element;\n\n if ($link.tagName !== 'A') {\n // the user may have selected some text that is w/in a link\n // but didn't include the <a>. Let's see if that's true\n $link = editor.dom.getParent($link, 'a[href]');\n }\n\n if (!$link || $link.tagName !== 'A' || !$link.href) {\n return null;\n }\n\n const {\n pathname\n } = url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"]($link.href);\n const type = FILE_DOWNLOAD_PATH_REGEX.test(pathname) ? FILE_LINK_TYPE : LINK_TYPE;\n let displayAs = DISPLAY_AS_LINK;\n\n if ($link.classList.contains('no_preview')) {\n displayAs = DISPLAY_AS_DOWNLOAD_LINK;\n } else if ($link.classList.contains('auto_open')) {\n displayAs = DISPLAY_AS_EMBED;\n } else if ($link.classList.contains('inline_disabled')) {\n displayAs = DISPLAY_AS_EMBED_DISABLED;\n }\n\n const isPreviewable = $link.hasAttribute('data-canvas-previewable') || $link.classList.contains('instructure_scribd_file'); // needed to cover docs linked while there was a bug didn't add the data attr.\n\n return {\n $element: $link,\n displayAs,\n text: $link.textContent,\n onlyTextSelected: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__[\"isOnlyTextSelected\"])(editor.selection.getContent()),\n type,\n isPreviewable,\n url: $link.href\n };\n} // the video element is a bit tricky.\n// tinymce won't let me add many attributes to the iframe,\n// even though I've listed them in tinymce.config.js\n// extended_valid_elements.\n// we have to rely on the span tinymce wraps around the iframe\n// and it's attributes, even though this could change with future\n// tinymce releases.\n// see https://github.com/tinymce/tinymce/issues/5181\n\nfunction asVideoElement($element) {\n var _$videoElem$parentEle;\n\n const $videoElem = findMediaPlayerIframe($element);\n\n if (!isVideoElement($videoElem)) {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromVideoEmbed\"])($videoElem),\n $element,\n type: VIDEO_EMBED_TYPE,\n id: ((_$videoElem$parentEle = $videoElem.parentElement) === null || _$videoElem$parentEle === void 0 ? void 0 : _$videoElem$parentEle.getAttribute('data-mce-p-data-media-id')) || $videoElem.getAttribute('data-mce-p-data-media-id')\n };\n}\nfunction asAudioElement($element) {\n var _$element$parentEleme;\n\n if (!$element) {\n return null;\n }\n\n const $audioIframe = $element.tagName === 'IFRAME' ? $element : $element.firstElementChild;\n const $tinymceIframeShim = $audioIframe.parentElement;\n const title = ($audioIframe.getAttribute('title') || $tinymceIframeShim.getAttribute('data-mce-p-title') || '').replace(Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Video player for '), '');\n const audioOptions = {\n titleText: title,\n id: ((_$element$parentEleme = $element.parentElement) === null || _$element$parentEleme === void 0 ? void 0 : _$element$parentEleme.getAttribute('data-mce-p-data-media-id')) || $element.getAttribute('data-mce-p-data-media-id')\n };\n\n if ($audioIframe.tagName === 'IFRAME') {\n const audioDoc = $audioIframe.contentDocument;\n\n try {\n var _audioDoc$querySelect;\n\n const trackSJson = (_audioDoc$querySelect = audioDoc.querySelector('[data-tracks]')) === null || _audioDoc$querySelect === void 0 ? void 0 : _audioDoc$querySelect.getAttribute('data-tracks');\n\n if (trackSJson) {\n audioOptions.tracks = JSON.parse(trackSJson);\n } // eslint-disable-next-line no-empty\n\n } catch (e) {}\n }\n\n return audioOptions;\n}\n\nfunction asText($element, editor) {\n const text = editor && editor.selection.getContent({\n format: 'text'\n });\n\n if (!text) {\n return null;\n }\n\n return {\n $element,\n text,\n type: TEXT_TYPE\n };\n}\n\nfunction asNone($element) {\n return {\n $element: $element || null,\n type: NONE_TYPE\n };\n}\n\nfunction getContentFromElement($element, editor) {\n if (!($element && $element.nodeName)) {\n return asNone();\n }\n\n const content = asLink($element, editor) || asImageEmbed($element) || asVideoElement($element) || asText($element, editor) || asNone($element);\n return content;\n}\nfunction getContentFromEditor(editor) {\n let expandSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let $element;\n\n if (editor && editor.selection) {\n // tinymce selects the element around the cursor, whether it's\n // content is selected in the copy/paste sense or not.\n // We want to include this content if it's _really_ selected,\n // or if editing the surrounding link, but not if creating a new link\n if (expandSelection || !editor.selection.isCollapsed()) {\n $element = editor.selection.getNode();\n }\n }\n\n if ($element == null) {\n return asNone();\n }\n\n return getContentFromElement($element, editor);\n} // if the selection is somewhere w/in a <a>,\n// find the <a> and return it's info\n\nfunction getLinkContentFromEditor(editor) {\n const $element = editor.selection.getNode();\n return $element ? asLink($element, editor) : null;\n}\nfunction isFileLink($element, editor) {\n return !!asLink($element, editor);\n}\nfunction isImageEmbed($element) {\n return !!asImageEmbed($element) && !$element.getAttribute('data-placeholder-for');\n}\n\nfunction isMediaElement($element, mediaType) {\n var _tinymceIframeShim$fi;\n\n // the video is hosted in an iframe, but tinymce\n // wraps it in a span with swizzled attribute names\n if (!($element !== null && $element !== void 0 && $element.getAttribute)) {\n return false;\n }\n\n const tinymceIframeShim = $element.tagName === 'IFRAME' ? $element.parentElement : $element;\n\n if (((_tinymceIframeShim$fi = tinymceIframeShim.firstElementChild) === null || _tinymceIframeShim$fi === void 0 ? void 0 : _tinymceIframeShim$fi.tagName) !== 'IFRAME') {\n return false;\n }\n\n const media_obj_id = tinymceIframeShim.getAttribute('data-mce-p-data-media-id');\n\n if (!media_obj_id) {\n return false;\n }\n\n const media_type = tinymceIframeShim.getAttribute('data-mce-p-data-media-type');\n return media_type === mediaType;\n}\n\nfunction isVideoElement($element) {\n return isMediaElement($element, 'video');\n}\nfunction isAudioElement($element) {\n return isMediaElement($element, 'audio');\n}\nfunction findMediaPlayerIframe(elem) {\n var _elem$firstElementChi;\n\n if (elem.tagName === 'IFRAME') {\n // we have the iframe\n return elem;\n }\n\n if (((_elem$firstElementChi = elem.firstElementChild) === null || _elem$firstElementChi === void 0 ? void 0 : _elem$firstElementChi.tagName) === 'IFRAME') {\n // we have the shim tinymce puts around the iframe\n return elem.firstElementChild;\n }\n\n if (elem.classList.contains('mce-shim')) {\n var _elem$previousSibling;\n\n // tinymce puts a <span class='mce-shin'> after the iframe (since v5, I think)\n if (((_elem$previousSibling = elem.previousSibling) === null || _elem$previousSibling === void 0 ? void 0 : _elem$previousSibling.tagName) === 'IFRAME') {\n return elem.previousSibling;\n }\n }\n\n return null;\n}\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/ContentSelection.js?");
17641
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_TYPE\", function() { return LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILE_LINK_TYPE\", function() { return FILE_LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IMAGE_EMBED_TYPE\", function() { return IMAGE_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIDEO_EMBED_TYPE\", function() { return VIDEO_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_TYPE\", function() { return TEXT_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NONE_TYPE\", function() { return NONE_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_LINK\", function() { return DISPLAY_AS_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED\", function() { return DISPLAY_AS_EMBED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED_DISABLED\", function() { return DISPLAY_AS_EMBED_DISABLED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_DOWNLOAD_LINK\", function() { return DISPLAY_AS_DOWNLOAD_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asImageEmbed\", function() { return asImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asLink\", function() { return asLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asVideoElement\", function() { return asVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asAudioElement\", function() { return asAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromElement\", function() { return getContentFromElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromEditor\", function() { return getContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLinkContentFromEditor\", function() { return getLinkContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFileLink\", function() { return isFileLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImageEmbed\", function() { return isImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVideoElement\", function() { return isVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAudioElement\", function() { return isAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findMediaPlayerIframe\", function() { return findMediaPlayerIframe; });\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\nconst FILE_DOWNLOAD_PATH_REGEX = /^\\/(courses\\/\\d+\\/)?files\\/\\d+\\/download$/;\nconst LINK_TYPE = 'link';\nconst FILE_LINK_TYPE = 'file-link';\nconst IMAGE_EMBED_TYPE = 'image-embed';\nconst VIDEO_EMBED_TYPE = 'video-embed';\nconst TEXT_TYPE = 'text';\nconst NONE_TYPE = 'none';\nconst DISPLAY_AS_LINK = 'link';\nconst DISPLAY_AS_EMBED = 'embed';\nconst DISPLAY_AS_EMBED_DISABLED = 'embed-disabled';\nconst DISPLAY_AS_DOWNLOAD_LINK = 'download-link';\nfunction asImageEmbed($element) {\n const nodeName = $element.nodeName.toLowerCase();\n\n if (nodeName !== 'img') {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromImageEmbed\"])($element),\n $element,\n type: IMAGE_EMBED_TYPE\n };\n}\nfunction asLink($element, editor) {\n let $link = $element;\n\n if ($link.tagName !== 'A') {\n // the user may have selected some text that is w/in a link\n // but didn't include the <a>. Let's see if that's true\n $link = editor.dom.getParent($link, 'a[href]');\n }\n\n if (!$link || $link.tagName !== 'A' || !$link.href) {\n return null;\n }\n\n const {\n pathname\n } = url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"]($link.href);\n const type = FILE_DOWNLOAD_PATH_REGEX.test(pathname) ? FILE_LINK_TYPE : LINK_TYPE;\n let displayAs = DISPLAY_AS_LINK;\n\n if ($link.classList.contains('no_preview')) {\n displayAs = DISPLAY_AS_DOWNLOAD_LINK;\n } else if ($link.classList.contains('auto_open')) {\n displayAs = DISPLAY_AS_EMBED;\n } else if ($link.classList.contains('inline_disabled')) {\n displayAs = DISPLAY_AS_EMBED_DISABLED;\n }\n\n const contentType = $link.getAttribute('data-course-type');\n const fileName = $link.getAttribute('title');\n const published = $link.getAttribute('data-published') === 'true';\n const isPreviewable = $link.hasAttribute('data-canvas-previewable') || $link.classList.contains('instructure_scribd_file'); // needed to cover docs linked while there was a bug didn't add the data attr.\n\n return {\n $element: $link,\n displayAs,\n text: $link.textContent,\n onlyTextSelected: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__[\"isOnlyTextSelected\"])(editor.selection.getContent()),\n type,\n isPreviewable,\n url: $link.href,\n contentType,\n fileName,\n published\n };\n} // the video element is a bit tricky.\n// tinymce won't let me add many attributes to the iframe,\n// even though I've listed them in tinymce.config.js\n// extended_valid_elements.\n// we have to rely on the span tinymce wraps around the iframe\n// and it's attributes, even though this could change with future\n// tinymce releases.\n// see https://github.com/tinymce/tinymce/issues/5181\n\nfunction asVideoElement($element) {\n var _$videoElem$parentEle;\n\n const $videoElem = findMediaPlayerIframe($element);\n\n if (!isVideoElement($videoElem)) {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromVideoEmbed\"])($videoElem),\n $element,\n type: VIDEO_EMBED_TYPE,\n id: ((_$videoElem$parentEle = $videoElem.parentElement) === null || _$videoElem$parentEle === void 0 ? void 0 : _$videoElem$parentEle.getAttribute('data-mce-p-data-media-id')) || $videoElem.getAttribute('data-mce-p-data-media-id')\n };\n}\nfunction asAudioElement($element) {\n var _$element$parentEleme;\n\n if (!$element) {\n return null;\n }\n\n const $audioIframe = $element.tagName === 'IFRAME' ? $element : $element.firstElementChild;\n const $tinymceIframeShim = $audioIframe.parentElement;\n const title = ($audioIframe.getAttribute('title') || $tinymceIframeShim.getAttribute('data-mce-p-title') || '').replace(Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Video player for '), '');\n const audioOptions = {\n titleText: title,\n id: ((_$element$parentEleme = $element.parentElement) === null || _$element$parentEleme === void 0 ? void 0 : _$element$parentEleme.getAttribute('data-mce-p-data-media-id')) || $element.getAttribute('data-mce-p-data-media-id')\n };\n\n if ($audioIframe.tagName === 'IFRAME') {\n const audioDoc = $audioIframe.contentDocument;\n\n try {\n var _audioDoc$querySelect;\n\n const trackSJson = (_audioDoc$querySelect = audioDoc.querySelector('[data-tracks]')) === null || _audioDoc$querySelect === void 0 ? void 0 : _audioDoc$querySelect.getAttribute('data-tracks');\n\n if (trackSJson) {\n audioOptions.tracks = JSON.parse(trackSJson);\n } // eslint-disable-next-line no-empty\n\n } catch (e) {}\n }\n\n return audioOptions;\n}\n\nfunction asText($element, editor) {\n const text = editor && editor.selection.getContent({\n format: 'text'\n });\n\n if (!text) {\n return null;\n }\n\n return {\n $element,\n text,\n type: TEXT_TYPE\n };\n}\n\nfunction asNone($element) {\n return {\n $element: $element || null,\n type: NONE_TYPE\n };\n}\n\nfunction getContentFromElement($element, editor) {\n if (!($element && $element.nodeName)) {\n return asNone();\n }\n\n const content = asLink($element, editor) || asImageEmbed($element) || asVideoElement($element) || asText($element, editor) || asNone($element);\n return content;\n}\nfunction getContentFromEditor(editor) {\n let expandSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let $element;\n\n if (editor && editor.selection) {\n // tinymce selects the element around the cursor, whether it's\n // content is selected in the copy/paste sense or not.\n // We want to include this content if it's _really_ selected,\n // or if editing the surrounding link, but not if creating a new link\n if (expandSelection || !editor.selection.isCollapsed()) {\n $element = editor.selection.getNode();\n }\n }\n\n if ($element == null) {\n return asNone();\n }\n\n return getContentFromElement($element, editor);\n} // if the selection is somewhere w/in a <a>,\n// find the <a> and return it's info\n\nfunction getLinkContentFromEditor(editor) {\n const $element = editor.selection.getNode();\n return $element ? asLink($element, editor) : null;\n}\nfunction isFileLink($element, editor) {\n return !!asLink($element, editor);\n}\nfunction isImageEmbed($element) {\n return !!asImageEmbed($element) && !$element.getAttribute('data-placeholder-for');\n}\n\nfunction isMediaElement($element, mediaType) {\n var _tinymceIframeShim$fi;\n\n // the video is hosted in an iframe, but tinymce\n // wraps it in a span with swizzled attribute names\n if (!($element !== null && $element !== void 0 && $element.getAttribute)) {\n return false;\n }\n\n const tinymceIframeShim = $element.tagName === 'IFRAME' ? $element.parentElement : $element;\n\n if (((_tinymceIframeShim$fi = tinymceIframeShim.firstElementChild) === null || _tinymceIframeShim$fi === void 0 ? void 0 : _tinymceIframeShim$fi.tagName) !== 'IFRAME') {\n return false;\n }\n\n const media_obj_id = tinymceIframeShim.getAttribute('data-mce-p-data-media-id');\n\n if (!media_obj_id) {\n return false;\n }\n\n const media_type = tinymceIframeShim.getAttribute('data-mce-p-data-media-type');\n return media_type === mediaType;\n}\n\nfunction isVideoElement($element) {\n return isMediaElement($element, 'video');\n}\nfunction isAudioElement($element) {\n return isMediaElement($element, 'audio');\n}\nfunction findMediaPlayerIframe(elem) {\n var _elem$firstElementChi;\n\n if (elem.tagName === 'IFRAME') {\n // we have the iframe\n return elem;\n }\n\n if (((_elem$firstElementChi = elem.firstElementChild) === null || _elem$firstElementChi === void 0 ? void 0 : _elem$firstElementChi.tagName) === 'IFRAME') {\n // we have the shim tinymce puts around the iframe\n return elem.firstElementChild;\n }\n\n if (elem.classList.contains('mce-shim')) {\n var _elem$previousSibling;\n\n // tinymce puts a <span class='mce-shin'> after the iframe (since v5, I think)\n if (((_elem$previousSibling = elem.previousSibling) === null || _elem$previousSibling === void 0 ? void 0 : _elem$previousSibling.tagName) === 'IFRAME') {\n return elem.previousSibling;\n }\n }\n\n return null;\n}\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/ContentSelection.js?");
17630
17642
 
17631
17643
  /***/ }),
17632
17644
 
@@ -17662,7 +17674,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17662
17674
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17663
17675
 
17664
17676
  "use strict";
17665
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DimensionsInput; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _DimensionInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DimensionInput */ \"./src/rce/plugins/shared/DimensionsInput/DimensionInput.js\");\n/* harmony import */ var _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./useDimensionsState */ \"./src/rce/plugins/shared/DimensionsInput/useDimensionsState.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useDimensionsState\", function() { return _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst getMessage = (dimensionsState, minWidth, minHeight, minPercentage) => {\n let result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Aspect ratio will be preserved'),\n type: 'hint'\n };\n\n if (dimensionsState.usePercentageUnits) {\n if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage must be a number'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {percentage}%', {\n percentage: minPercentage\n }),\n type: 'error'\n };\n }\n } else if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width and height must be numbers'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {width} x {height}px', {\n width: minWidth,\n height: minHeight\n }),\n type: 'error'\n };\n }\n\n return result;\n};\n\nfunction DimensionsInput(props) {\n const {\n dimensionsState,\n minHeight,\n minWidth,\n minPercentage\n } = props;\n\n const handleDimensionTypeChange = e => {\n dimensionsState.setUsePercentageUnits(e.target.value === 'percentage');\n };\n\n const message = getMessage(dimensionsState, minWidth, minHeight, minPercentage);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInputGroup\"], {\n \"data-testid\": \"dimension-type\",\n name: \"dimension-type\",\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimension Type'),\n onChange: handleDimensionTypeChange,\n value: dimensionsState.usePercentageUnits ? 'percentage' : 'pixels'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Pixels'),\n value: \"pixels\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage'),\n value: \"percentage\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__[\"FormFieldGroup\"], {\n description: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimensions')),\n messages: [message]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n alignItems: \"start\",\n direction: \"row\",\n \"data-testid\": \"input-number-container\"\n }, dimensionsState.usePercentageUnits ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true,\n shouldGrow: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.percentageState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, \"%\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.widthState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width'),\n minValue: minWidth\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__[\"IconLockLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.heightState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Height'),\n minValue: minHeight\n })))))));\n}\nDimensionsInput.propTypes = {\n dimensionsState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n heightState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n isNumeric: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n usePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n setUsePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n widthState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n percentageState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired\n }),\n minHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minPercentage: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/DimensionsInput/index.js?");
17677
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DimensionsInput; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _DimensionInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DimensionInput */ \"./src/rce/plugins/shared/DimensionsInput/DimensionInput.js\");\n/* harmony import */ var _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./useDimensionsState */ \"./src/rce/plugins/shared/DimensionsInput/useDimensionsState.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useDimensionsState\", function() { return _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst getMessage = (dimensionsState, minWidth, minHeight, minPercentage) => {\n let result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Aspect ratio will be preserved'),\n type: 'hint'\n };\n\n if (dimensionsState.usePercentageUnits) {\n if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage must be a number'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {percentage}%', {\n percentage: minPercentage\n }),\n type: 'error'\n };\n }\n } else if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width and height must be numbers'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {width} x {height}px', {\n width: minWidth,\n height: minHeight\n }),\n type: 'error'\n };\n }\n\n return result;\n};\n\nfunction DimensionsInput(props) {\n const {\n dimensionsState,\n minHeight,\n minWidth,\n minPercentage\n } = props;\n\n const handleDimensionTypeChange = e => {\n dimensionsState.setUsePercentageUnits(e.target.value === 'percentage');\n };\n\n const message = getMessage(dimensionsState, minWidth, minHeight, minPercentage);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInputGroup\"], {\n \"data-testid\": \"dimension-type\",\n name: \"dimension-type\",\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimension Type'),\n onChange: handleDimensionTypeChange,\n value: dimensionsState.usePercentageUnits ? 'percentage' : 'pixels'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Pixels'),\n value: \"pixels\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage'),\n value: \"percentage\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__[\"FormFieldGroup\"], {\n description: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimensions')),\n messages: [message]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n alignItems: \"start\",\n direction: \"row\",\n \"data-testid\": \"input-number-container\"\n }, dimensionsState.usePercentageUnits ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true,\n shouldGrow: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.percentageState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, \"%\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.widthState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width'),\n minValue: minWidth\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__[\"IconLockLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.heightState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Height'),\n minValue: minHeight\n })))))));\n}\nDimensionsInput.propTypes = {\n dimensionsState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n heightState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n isNumeric: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n usePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n setUsePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n widthState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n percentageState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired\n }),\n minHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minPercentage: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/DimensionsInput/index.js?");
17666
17678
 
17667
17679
  /***/ }),
17668
17680
 
@@ -17698,7 +17710,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17698
17710
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17699
17711
 
17700
17712
  "use strict";
17701
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useFilterSettings\", function() { return useFilterSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Filter; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-text-input */ \"../../node_modules/@instructure/ui-text-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_FILTER_SETTINGS = {\n contentSubtype: 'all',\n contentType: 'links',\n sortValue: 'date_added',\n searchString: ''\n};\nfunction useFilterSettings(default_settings) {\n const [filterSettings, setFilterSettings] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(default_settings || DEFAULT_FILTER_SETTINGS);\n\n function updateFilterSettings(nextSettings) {\n setFilterSettings({ ...filterSettings,\n ...nextSettings\n });\n }\n\n return [filterSettings, updateFilterSettings];\n}\n\nfunction fileLabelFromContext(contextType) {\n switch (contextType) {\n case 'user':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('User Files');\n\n case 'course':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Course Files');\n\n case 'group':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Group Files');\n\n case 'files':\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Files');\n }\n}\n\nfunction renderTypeOptions(contentType, contentSubtype, userContextType) {\n const options = [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"links\",\n id: \"links\",\n value: \"links\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconLinkLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Links'))];\n\n if (userContextType === 'course' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"course_files\",\n id: \"course_files\",\n value: \"course_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('course')));\n }\n\n if (userContextType === 'group' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"group_files\",\n id: \"group_files\",\n value: \"group_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('group')));\n } // Icon Maker icons are only stored in course folders.\n\n\n if (contentSubtype !== _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"user_files\",\n id: \"user_files\",\n value: \"user_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext(contentType === 'links' || contentSubtype === 'all' ? 'files' : 'user')));\n }\n\n return options;\n}\n\nfunction renderType(contentType, contentSubtype, onChange, userContextType, containingContextType) {\n // Check containingContextType so that we always show context links\n if (containingContextType === 'course' || containingContextType === 'group') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentType: selection.value\n };\n\n if (contentType === 'links') {\n // when changing away from links, go to all user files\n changed.contentSubtype = 'all';\n }\n\n onChange(changed);\n },\n value: contentType\n }, renderTypeOptions(contentType, contentSubtype, userContextType));\n } else {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n borderWidth: \"small\",\n padding: \"x-small small\",\n borderRadius: \"medium\",\n width: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')), fileLabelFromContext('user', contentSubtype));\n }\n}\n\nfunction shouldSearch(searchString) {\n return searchString.length === 0 || searchString.length >= 3;\n}\n\nfunction Filter(props) {\n const {\n contentType,\n contentSubtype,\n onChange,\n sortValue,\n searchString,\n userContextType,\n isContentLoading,\n containingContextType\n } = props;\n const [pendingSearchString, setPendingSearchString] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(searchString);\n const [searchInputTimer, setSearchInputTimer] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(0); // only run on mounting to trigger change to correct contextType\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n onChange({\n contentType\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n function doSearch(value) {\n if (shouldSearch(value)) {\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n setSearchInputTimer(0);\n }\n\n onChange({\n searchString: value\n });\n }\n }\n\n function handleChangeSearch(value) {\n setPendingSearchString(value);\n\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n }\n\n const tid = window.setTimeout(() => doSearch(value), 250);\n setSearchInputTimer(tid);\n }\n\n function handleClear() {\n handleChangeSearch('');\n }\n\n function renderClearButton() {\n if (pendingSearchString) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__[\"IconButton\"], {\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Clear'),\n onClick: handleClear,\n withBorder: false,\n withBackground: false,\n size: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconXLine\"], null));\n }\n\n return undefined;\n }\n\n const searchMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Enter at least 3 characters to search');\n const loadingMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Loading, please wait');\n const msg = isContentLoading ? loadingMessage : searchMessage;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n display: \"block\",\n direction: \"column\"\n }, renderType(contentType, contentSubtype, onChange, userContextType, containingContextType), contentType !== 'links' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n grow: true,\n shrink: true,\n margin: \"none xx-small none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Subtype')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentSubtype: selection.value\n };\n\n if (changed.contentSubtype === 'all') {\n // when flipped to All, the context needs to be user\n // so we can get media_objects, which are all returned in the user context\n changed.contentType = 'user_files';\n } else if (changed.contentSubtype === _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n // Icon Maker icons only belong to Courses.\n changed.contentType = 'course_files';\n }\n\n onChange(changed);\n },\n value: contentSubtype\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"images\",\n value: \"images\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Images')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"documents\",\n value: \"documents\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconDocumentLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Documents')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"media\",\n value: \"media\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconAttachMediaLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Media')), props.use_rce_icon_maker && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n value: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Icon Maker Icons')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"all\",\n value: \"all\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('All')))), contentSubtype !== 'all' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n grow: true,\n shrink: true,\n margin: \"none none none xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Sort By')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n onChange({\n sortValue: selection.value\n });\n },\n value: sortValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"date_added\",\n value: \"date_added\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Date Added')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"alphabetical\",\n value: \"alphabetical\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Alphabetical'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__[\"TextInput\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search')),\n renderBeforeInput: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconSearchLine\"], {\n inline: false\n }),\n renderAfterInput: renderClearButton(),\n messages: [{\n type: 'hint',\n text: msg\n }],\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search'),\n value: pendingSearchString,\n onChange: (e, value) => handleChangeSearch(value),\n onKeyDown: e => {\n if (e.key === 'Enter') {\n doSearch(pendingSearchString);\n }\n }\n })));\n}\nFilter.propTypes = {\n /**\n * `contentSubtype` is the secondary filter setting, currently only used when\n * `contentType` is set to \"files\"\n */\n contentSubtype: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `contentType` is the primary filter setting (e.g. links, files)\n */\n contentType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['links', 'user_files', 'course_files', 'group_files']).isRequired,\n\n /**\n * `onChange` is called when any of the Filter settings are changed\n */\n onChange: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n\n /**\n * `sortValue` defines how items in the CanvasContentTray are sorted\n */\n sortValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `searchString` is used to search for matching file names. Must be >3 chars long\n */\n searchString: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * The user's context\n */\n userContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Is my content currently loading?\n */\n isContentLoading: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n\n /**\n * The page context\n */\n containingContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Should include Icon Maker?\n */\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"]\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/Filter.js?");
17713
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useFilterSettings\", function() { return useFilterSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Filter; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-text-input */ \"../../node_modules/@instructure/ui-text-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_FILTER_SETTINGS = {\n contentSubtype: 'all',\n contentType: 'links',\n sortValue: 'date_added',\n searchString: ''\n};\nfunction useFilterSettings(default_settings) {\n const [filterSettings, setFilterSettings] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(default_settings || DEFAULT_FILTER_SETTINGS);\n\n function updateFilterSettings(nextSettings) {\n setFilterSettings({ ...filterSettings,\n ...nextSettings\n });\n }\n\n return [filterSettings, updateFilterSettings];\n}\n\nfunction fileLabelFromContext(contextType) {\n switch (contextType) {\n case 'user':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('User Files');\n\n case 'course':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Course Files');\n\n case 'group':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Group Files');\n\n case 'files':\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Files');\n }\n}\n\nfunction renderTypeOptions(contentType, contentSubtype, userContextType) {\n const options = [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"links\",\n id: \"links\",\n value: \"links\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconLinkLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Links'))];\n\n if (userContextType === 'course' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"course_files\",\n id: \"course_files\",\n value: \"course_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('course')));\n }\n\n if (userContextType === 'group' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"group_files\",\n id: \"group_files\",\n value: \"group_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('group')));\n } // Icon Maker icons are only stored in course folders.\n\n\n if (contentSubtype !== _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"user_files\",\n id: \"user_files\",\n value: \"user_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext(contentType === 'links' || contentSubtype === 'all' ? 'files' : 'user')));\n }\n\n return options;\n}\n\nfunction renderType(contentType, contentSubtype, onChange, userContextType, containingContextType) {\n // Check containingContextType so that we always show context links\n if (containingContextType === 'course' || containingContextType === 'group') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentType: selection.value\n };\n\n if (contentType === 'links') {\n // when changing away from links, go to all user files\n changed.contentSubtype = 'all';\n }\n\n onChange(changed);\n },\n value: contentType\n }, renderTypeOptions(contentType, contentSubtype, userContextType));\n } else {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n borderWidth: \"small\",\n padding: \"x-small small\",\n borderRadius: \"medium\",\n width: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')), fileLabelFromContext('user', contentSubtype));\n }\n}\n\nfunction shouldSearch(searchString) {\n return searchString.length === 0 || searchString.length >= 3;\n}\n\nfunction Filter(props) {\n const {\n contentType,\n contentSubtype,\n onChange,\n sortValue,\n searchString,\n userContextType,\n isContentLoading,\n containingContextType\n } = props;\n const [pendingSearchString, setPendingSearchString] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(searchString);\n const [searchInputTimer, setSearchInputTimer] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(0); // only run on mounting to trigger change to correct contextType\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n onChange({\n contentType\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n function doSearch(value) {\n if (shouldSearch(value)) {\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n setSearchInputTimer(0);\n }\n\n onChange({\n searchString: value\n });\n }\n }\n\n function handleChangeSearch(value) {\n setPendingSearchString(value);\n\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n }\n\n const tid = window.setTimeout(() => doSearch(value), 250);\n setSearchInputTimer(tid);\n }\n\n function handleClear() {\n handleChangeSearch('');\n }\n\n function renderClearButton() {\n if (pendingSearchString) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__[\"IconButton\"], {\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Clear'),\n onClick: handleClear,\n withBorder: false,\n withBackground: false,\n size: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconXLine\"], null));\n }\n\n return undefined;\n }\n\n const searchMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Enter at least 3 characters to search');\n const loadingMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Loading, please wait');\n const msg = isContentLoading ? loadingMessage : searchMessage;\n const isEdit = contentSubtype === 'edit';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n display: \"block\",\n direction: \"column\"\n }, !isEdit && renderType(contentType, contentSubtype, onChange, userContextType, containingContextType), contentType !== 'links' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true,\n margin: \"none xx-small none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Subtype')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentSubtype: selection.value\n };\n\n if (changed.contentSubtype === 'all') {\n // when flipped to All, the context needs to be user\n // so we can get media_objects, which are all returned in the user context\n changed.contentType = 'user_files';\n } else if (changed.contentSubtype === _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n // Icon Maker icons only belong to Courses.\n changed.contentType = 'course_files';\n }\n\n onChange(changed);\n },\n value: contentSubtype\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"images\",\n value: \"images\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Images')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"documents\",\n value: \"documents\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconDocumentLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Documents')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"media\",\n value: \"media\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconAttachMediaLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Media')), props.use_rce_icon_maker && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n value: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Icon Maker Icons')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"all\",\n value: \"all\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('All')))), contentSubtype !== 'all' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true,\n margin: \"none none none xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Sort By')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n onChange({\n sortValue: selection.value\n });\n },\n value: sortValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"date_added\",\n value: \"date_added\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Date Added')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"alphabetical\",\n value: \"alphabetical\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Alphabetical'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__[\"TextInput\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search')),\n renderBeforeInput: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconSearchLine\"], {\n inline: false\n }),\n renderAfterInput: renderClearButton(),\n messages: [{\n type: 'hint',\n text: msg\n }],\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search'),\n value: pendingSearchString,\n onChange: (e, value) => handleChangeSearch(value),\n onKeyDown: e => {\n if (e.key === 'Enter') {\n doSearch(pendingSearchString);\n }\n }\n })));\n}\nFilter.propTypes = {\n /**\n * `contentSubtype` is the secondary filter setting, currently only used when\n * `contentType` is set to \"files\"\n */\n contentSubtype: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `contentType` is the primary filter setting (e.g. links, files)\n */\n contentType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['links', 'user_files', 'course_files', 'group_files']).isRequired,\n\n /**\n * `onChange` is called when any of the Filter settings are changed\n */\n onChange: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n\n /**\n * `sortValue` defines how items in the CanvasContentTray are sorted\n */\n sortValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `searchString` is used to search for matching file names. Must be >3 chars long\n */\n searchString: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * The user's context\n */\n userContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Is my content currently loading?\n */\n isContentLoading: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n\n /**\n * The page context\n */\n containingContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Should include Icon Maker?\n */\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"]\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/Filter.js?");
17714
+
17715
+ /***/ }),
17716
+
17717
+ /***/ "./src/rce/plugins/shared/LinkDisplay.js":
17718
+ /*!***********************************************!*\
17719
+ !*** ./src/rce/plugins/shared/LinkDisplay.js ***!
17720
+ \***********************************************/
17721
+ /*! exports provided: LinkDisplay */
17722
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17723
+
17724
+ "use strict";
17725
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LinkDisplay\", function() { return LinkDisplay; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-text-input */ \"../../node_modules/@instructure/ui-text-input/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _canvasFileBrowser_FlashAlert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../canvasFileBrowser/FlashAlert */ \"./src/canvasFileBrowser/FlashAlert.js\");\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\nconst EDIT_MESSAGE = Object(_format_message__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('If left empty link, text will display as course link name');\nconst LinkDisplay = _ref => {\n let {\n linkText,\n Icon,\n placeholderText,\n linkFileName,\n published,\n handleTextChange\n } = _ref;\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n Object(_canvasFileBrowser_FlashAlert__WEBPACK_IMPORTED_MODULE_6__[\"showFlashAlert\"])({\n message: Object(_format_message__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('Selected {linkFileName}', {\n linkFileName\n }),\n type: 'info',\n srOnly: true\n });\n }, [linkFileName]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\",\n \"data-testid\": \"LinkDisplay\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_4__[\"TextInput\"], {\n renderLabel: () => Object(_format_message__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('Text (optional)'),\n onChange: (e, value) => handleTextChange(value),\n value: linkText,\n placeholder: placeholderText,\n messages: [{\n type: 'hint',\n text: EDIT_MESSAGE\n }]\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\",\n margin: \"medium none medium none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none small none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_2__[\"Text\"], {\n weight: \"bold\"\n }, \"Current Link\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n padding: \"0 x-small 0 small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_2__[\"Text\"], {\n \"data-testid\": \"icon-wrapper\",\n color: published ? 'success' : 'primary'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Icon, {\n size: \"x-small\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n padding: \"0 x-small 0 0\",\n grow: true,\n shrink: true,\n textAlign: \"start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n \"data-testid\": \"selected-link-name\"\n }, linkFileName))))));\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/LinkDisplay.js?");
17702
17726
 
17703
17727
  /***/ }),
17704
17728
 
@@ -17750,18 +17774,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17750
17774
 
17751
17775
  /***/ }),
17752
17776
 
17753
- /***/ "./src/rce/plugins/shared/Upload/constants.js":
17754
- /*!****************************************************!*\
17755
- !*** ./src/rce/plugins/shared/Upload/constants.js ***!
17756
- \****************************************************/
17757
- /*! exports provided: RCS_MAX_BODY_SIZE, RCS_REQUEST_SIZE_BUFFER */
17758
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
17759
-
17760
- "use strict";
17761
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RCS_MAX_BODY_SIZE\", function() { return RCS_MAX_BODY_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RCS_REQUEST_SIZE_BUFFER\", function() { return RCS_REQUEST_SIZE_BUFFER; });\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst RCS_MAX_BODY_SIZE = 300000;\nconst RCS_REQUEST_SIZE_BUFFER = 5000; // account for the non-file bytes\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/Upload/constants.js?");
17762
-
17763
- /***/ }),
17764
-
17765
17777
  /***/ "./src/rce/plugins/shared/buildDownloadUrl.js":
17766
17778
  /*!****************************************************!*\
17767
17779
  !*** ./src/rce/plugins/shared/buildDownloadUrl.js ***!
@@ -17786,6 +17798,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17786
17798
 
17787
17799
  /***/ }),
17788
17800
 
17801
+ /***/ "./src/rce/plugins/shared/linkUtils.js":
17802
+ /*!*********************************************!*\
17803
+ !*** ./src/rce/plugins/shared/linkUtils.js ***!
17804
+ \*********************************************/
17805
+ /*! exports provided: IconBlank, getIcon */
17806
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17807
+
17808
+ "use strict";
17809
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IconBlank\", function() { return IconBlank; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getIcon\", function() { return getIcon; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _instructure_ui_svg_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @instructure/ui-svg-images */ \"../../node_modules/@instructure/ui-svg-images/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\nconst IconBlank = props => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_svg_images__WEBPACK_IMPORTED_MODULE_1__[\"SVGIcon\"], Object.assign({\n name: \"IconBlank\",\n viewBox: \"0 0 1920 1920\"\n }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"g\", {\n role: \"presentation\"\n }));\n};\nconst getIcon = type => {\n switch (type) {\n case 'assignments':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconAssignmentLine\"];\n\n case 'discussions':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconDiscussionLine\"];\n\n case 'modules':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconModuleLine\"];\n\n case 'quizzes':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconQuizLine\"];\n\n case 'quizzes.next':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconQuizSolid\"];\n\n case 'announcements':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconAnnouncementLine\"];\n\n case 'wikiPages':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconDocumentLine\"];\n\n case 'navigation':\n return IconBlank;\n\n default:\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconDocumentLine\"];\n }\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/linkUtils.js?");
17810
+
17811
+ /***/ }),
17812
+
17789
17813
  /***/ "./src/rce/plugins/shared/trayUtils.js":
17790
17814
  /*!*********************************************!*\
17791
17815
  !*** ./src/rce/plugins/shared/trayUtils.js ***!
@@ -17822,6 +17846,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17822
17846
 
17823
17847
  /***/ }),
17824
17848
 
17849
+ /***/ "./src/rce/userOS.ts":
17850
+ /*!***************************!*\
17851
+ !*** ./src/rce/userOS.ts ***!
17852
+ \***************************/
17853
+ /*! exports provided: determineUserOS, determineOSDependentKey */
17854
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17855
+
17856
+ "use strict";
17857
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"determineUserOS\", function() { return determineUserOS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"determineOSDependentKey\", function() { return determineOSDependentKey; });\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst determineUserOS = () => {\n const rawOS = navigator.userAgent;\n if (rawOS.indexOf('Mac') !== -1) return 'Mac';else if (rawOS.indexOf('Win') !== -1) return 'Windows';else return 'Other';\n};\nconst determineOSDependentKey = () => {\n switch (determineUserOS()) {\n case 'Mac':\n return 'OPTION';\n\n case 'Windows':\n default:\n return 'ALT';\n }\n};\n\n//# sourceURL=webpack:///./src/rce/userOS.ts?");
17858
+
17859
+ /***/ }),
17860
+
17825
17861
  /***/ "./src/rce/wrapInitCb.js":
17826
17862
  /*!*******************************!*\
17827
17863
  !*** ./src/rce/wrapInitCb.js ***!
@@ -17842,7 +17878,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
17842
17878
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17843
17879
 
17844
17880
  "use strict";
17845
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"headerFor\", function() { return headerFor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"originFromHost\", function() { return originFromHost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSearchParam\", function() { return getSearchParam; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! isomorphic-fetch */ \"../../node_modules/isomorphic-fetch/fetch-npm-browserify.js\");\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _common_fileUrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/fileUrl */ \"./src/common/fileUrl.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rce/alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../rce/plugins/shared/Upload/constants */ \"./src/rce/plugins/shared/Upload/constants.js\");\n/* harmony import */ var _sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../sidebar/containers/sidebarHandlers */ \"./src/sidebar/containers/sidebarHandlers.js\");\n/* harmony import */ var _buildError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./buildError */ \"./src/rcs/buildError.js\");\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\nfunction headerFor(jwt) {\n return {\n Authorization: 'Bearer ' + jwt\n };\n}\nfunction originFromHost(host, windowOverride) {\n let origin = host;\n\n if (typeof origin !== 'string') {\n origin = '';\n } else if (origin && origin.substr(0, 4) !== 'http') {\n var _windowHandle$locatio;\n\n origin = `//${origin}`;\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (origin.length > 0 && windowHandle !== null && windowHandle !== void 0 && (_windowHandle$locatio = windowHandle.location) !== null && _windowHandle$locatio !== void 0 && _windowHandle$locatio.protocol) {\n origin = `${windowHandle.location.protocol}${origin}`;\n }\n }\n\n return origin;\n} // filter a response to raise an error on a 400+ status\n\nfunction checkStatus(response) {\n if (response.status < 400) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n}\n\nfunction defaultRefreshTokenHandler() {\n throw new Error('Token expired, no refresh function provided');\n}\n\nfunction normalizeFileData(file) {\n return {\n // copy the name to the default display name if none provided\n display_name: file.name,\n ...file,\n // wrap the url\n href: Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"downloadToWrap\"])(file.href || file.url)\n };\n}\n\nfunction throwConnectionError(error) {\n if (error.name === 'TypeError') {\n // eslint-disable-next-line no-console\n console.error(`Failed to fetch from the canvas-rce-api.\n Did you forget to start it or configure it?\n Details can be found at https://github.com/instructure/canvas-rce-api\n `);\n }\n\n throw error;\n}\n\nclass RceApiSource {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.jwt = options.jwt;\n this.host = options.host;\n this.refreshToken = options.refreshToken || defaultRefreshTokenHandler;\n this.hasSession = false;\n this.alertFunc = options.alertFunc || _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__[\"default\"].handleAlert;\n }\n\n getSession() {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('session');\n return this.apiReallyFetch(uri, headers).then(data => {\n this.hasSession = true;\n return data;\n }).catch(throwConnectionError);\n } // initial state of a collection is empty, not loading, with bookmark set to\n // uri for initial page fetch\n\n\n initializeCollection(endpoint, props) {\n return {\n links: [],\n bookmark: this.uriFor(endpoint, props),\n isLoading: false,\n hasMore: true,\n searchString: props.searchString\n };\n }\n\n initializeUpload() {\n return {\n uploading: false,\n folders: {},\n formExpanded: false\n };\n }\n\n initializeImages(props) {\n return this.initializeDocuments(props);\n }\n\n initializeDocuments(props) {\n return {\n [props.contextType]: {\n files: [],\n bookmark: null,\n isLoading: false,\n hasMore: true\n },\n searchString: ''\n };\n }\n\n initializeMedia(props) {\n return this.initializeDocuments(props);\n }\n\n initializeFlickr() {\n return {\n searchResults: [],\n searching: false,\n formExpanded: false\n };\n } // fetches the given URI and filters it to either an error or parsed response\n\n\n fetchPage(uri) {\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, bookmark) {\n return fetchFunction(properties, bookmark).then(result => {\n onSuccess(result);\n\n if (result.bookmark) {\n this.fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, result.bookmark);\n }\n }).catch(error => {\n onError(error);\n });\n }\n\n fetchDocs(props) {\n const documents = props.documents[props.contextType];\n const uri = documents.bookmark || this.uriFor('documents', props);\n return this.apiFetch(uri, headerFor(this.jwt)).then(_ref => {\n let {\n bookmark,\n files\n } = _ref;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f))\n };\n });\n }\n\n fetchMedia(props) {\n const media = props.media[props.contextType];\n const uri = media.bookmark || this.uriFor('media', props);\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchFiles(uri) {\n return this.fetchPage(uri).then(_ref2 => {\n let {\n bookmark,\n files\n } = _ref2;\n return {\n bookmark,\n files: files.map(normalizeFileData)\n };\n });\n }\n\n fetchLinks(key, props) {\n const {\n collections\n } = props;\n const bookmark = collections[key].bookmark || this.uriFor(key, props);\n return this.fetchPage(bookmark);\n }\n\n fetchRootFolder(props) {\n return this.fetchPage(this.uriFor('folders', props), this.jwt);\n }\n\n mediaServerSession() {\n return this.apiPost(this.baseUri('v1/services/kaltura_session'), headerFor(this.jwt), {});\n }\n\n uploadMediaToCanvas(mediaObject) {\n var _context;\n\n const body = {\n id: mediaObject.entryId,\n type: {\n 2: 'image',\n 5: 'audio'\n }[mediaObject.mediaType] || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = mediaObject.type).call(_context, 'audio') ? 'audio' : 'video',\n context_code: mediaObject.contextCode,\n title: mediaObject.title,\n user_entered_title: mediaObject.userTitle\n };\n return this.apiPost(this.baseUri('media_objects'), headerFor(this.jwt), body);\n }\n\n updateMediaObject(apiProps, _ref3) {\n let {\n media_object_id,\n title\n } = _ref3;\n const uri = `${this.baseUri('media_objects', apiProps.host)}/${media_object_id}?user_entered_title=${encodeURIComponent(title)}`;\n return this.apiPost(uri, headerFor(this.jwt), null, 'PUT');\n } // PUT to //RCS/api/media_objects/:mediaId/media_tracks [{locale, content}, ...]\n // receive back a 200 with the new subtitles, or a 4xx error\n\n\n updateClosedCaptions(apiProps, _ref4, maxBytes) {\n let {\n media_object_id,\n subtitles\n } = _ref4;\n return Object(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__[\"saveClosedCaptions\"])(media_object_id, subtitles, {\n origin: originFromHost(apiProps.host),\n headers: headerFor(apiProps.jwt)\n }, maxBytes || _rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_7__[\"RCS_MAX_BODY_SIZE\"] - _rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_7__[\"RCS_REQUEST_SIZE_BUFFER\"]).catch(e => {\n console.error('Failed saving CC', e);\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])({\n message: 'failed to save captions'\n }, e));\n });\n } // GET /media_objects/:mediaId/media_tracks\n // receive back the current list of media_tracks\n\n\n fetchClosedCaptions(_mediaId) {\n return Promise.resolve([{\n locale: 'af',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }, {\n locale: 'es',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }]);\n } // fetches folders for the given context to upload files to\n\n\n fetchFolders(props, bookmark) {\n const headers = headerFor(this.jwt);\n const uri = bookmark || this.uriFor('folders/all', props);\n return this.apiFetch(uri, headers);\n } // Fetches all files for a given folder\n\n\n fetchFilesForFolder(props, bookmark) {\n let uri;\n\n if (!bookmark) {\n const perPageQuery = props.perPage ? `per_page=${props.perPage}` : '';\n const categoryQuery = `category=${_sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_8__[\"DEFAULT_FILE_CATEGORY\"]}`;\n uri = `${props.filesUrl}?${perPageQuery}&${categoryQuery}${getSearchParam(props.searchString)}`;\n\n if (props.sortBy) {\n uri += `${getSortParams(props.sortBy.sort, props.sortBy.order)}`;\n }\n }\n\n return this.fetchPage(uri || bookmark, this.jwt);\n }\n\n fetchSubFolders(props, bookmark) {\n const uri = bookmark || `${this.baseUri('folders', props.host)}/${props.folderId}`;\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchIconMakerFolder(_ref5) {\n let {\n contextId,\n contextType\n } = _ref5;\n const uri = this.uriFor('folders/icon_maker', {\n contextId,\n contextType,\n host: this.host,\n jwt: this.jwt\n });\n return this.fetchPage(uri);\n }\n\n fetchMediaFolder(props) {\n let uri;\n\n if (props.contextType === 'user') {\n uri = this.uriFor('folders', props);\n } else {\n uri = this.uriFor('folders/media', props);\n }\n\n return this.fetchPage(uri);\n }\n\n fetchMediaObjectIframe(mediaObjectId) {\n return this.fetchPage(this.uriFor(`media_objects_iframe/${mediaObjectId}`));\n }\n\n fetchImages(props) {\n const images = props.images[props.contextType];\n const uri = images.bookmark || this.uriFor('images', props);\n const headers = headerFor(this.jwt);\n return this.apiFetch(uri, headers).then(_ref6 => {\n let {\n bookmark,\n files\n } = _ref6;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f)),\n searchString: props.searchString\n };\n });\n }\n\n preflightUpload(fileProps, apiProps) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('upload', apiProps.host);\n const body = {\n contextId: apiProps.contextId,\n contextType: apiProps.contextType,\n file: fileProps,\n no_redirect: true,\n onDuplicate: apiProps.onDuplicate,\n category: apiProps.category\n };\n return this.apiPost(uri, headers, body);\n }\n\n uploadFRD(fileDomObject, preflightProps) {\n var _context2;\n\n const data = new window.FormData();\n Object.keys(preflightProps.upload_params).forEach(uploadProp => {\n data.append(uploadProp, preflightProps.upload_params[uploadProp]);\n });\n data.append('file', fileDomObject);\n const fetchOptions = {\n method: 'POST',\n body: data\n };\n\n if (!preflightProps.upload_params['x-amz-signature'] && !_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context2 = preflightProps.upload_url).call(_context2, 'files_api')) {\n // _not_ an S3 upload, include the credentials in the upload POST\n // local uploads can include crendentials for same-origin requests\n fetchOptions.credentials = 'include';\n }\n\n return fetch(preflightProps.upload_url, fetchOptions).then(checkStatus).then(res => res.json()).then(uploadResults => {\n return this.finalizeUpload(preflightProps, uploadResults);\n }).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])({}, e));\n });\n }\n\n finalizeUpload(preflightProps, uploadResults) {\n if (preflightProps.upload_params.success_url) {\n // s3 upload, follow-up at success_url to finalize. the success_url doesn't\n // require authentication\n return fetch(preflightProps.upload_params.success_url).then(checkStatus).then(res => res.json());\n } else if (uploadResults.location) {\n // inst-fs upload, follow-up by fetching file identified by location in\n // response. we can't just fetch the location as would be intended because\n // it requires Canvas authentication. we also don't have an RCE API\n // endpoint to forward it through.\n const {\n pathname\n } = Object(url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"])(uploadResults.location);\n const matchData = pathname.match(/^\\/api\\/v1\\/files\\/((?:\\d+~)?\\d+)$/);\n\n if (!matchData) {\n const error = new Error('cannot determine file ID from location');\n error.location = uploadResults.location;\n throw error;\n }\n\n const fileId = matchData[1];\n return this.getFile(fileId).then(fileResults => {\n fileResults.uuid = uploadResults.uuid; // if present, we'll need the uuid for the file verifier downstream\n\n return fileResults;\n });\n } else {\n // local-storage upload, this _is_ the attachment information\n return Promise.resolve(uploadResults);\n }\n }\n\n setUsageRights(fileId, usageRights) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('usage_rights');\n const body = {\n fileId,\n ...usageRights\n };\n return this.apiPost(uri, headers, body);\n }\n\n searchFlickr(term, apiProps) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('flickr_search', apiProps.host);\n const uri = `${base}?term=${encodeURIComponent(term)}`;\n return this.apiFetch(uri, headers);\n }\n\n searchUnsplash(term, page) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/search');\n const uri = `${base}?term=${encodeURIComponent(term)}&page=${page}&per_page=12`;\n return this.apiFetch(uri, headers);\n }\n\n pingbackUnsplash(id) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/pingback');\n const uri = `${base}?id=${id}`;\n return this.apiFetch(uri, headers, {\n skipParse: true\n });\n }\n\n getFile(id) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const headers = headerFor(this.jwt);\n const base = this.baseUri('file'); // Valid query parameters for getFile\n\n const {\n replacement_chain_context_type,\n replacement_chain_context_id\n } = options;\n const uri = this.addParamsIfPresent(`${base}/${id}`, {\n replacement_chain_context_type,\n replacement_chain_context_id\n });\n return this.apiFetch(uri, headers).then(normalizeFileData);\n } // @private\n\n\n addParamsIfPresent(uri, params) {\n let url;\n\n try {\n url = new URL(uri);\n } catch (e) {\n // Just return the URI if it was invalid\n return uri;\n } // Add all truthy parameters to the URL\n\n\n for (const [name, value] of Object.entries(params)) {\n if (!value) continue;\n url.searchParams.append(name, value);\n }\n\n return url.toString();\n } // @private\n\n\n async apiFetch(uri, headers, options) {\n if (!this.hasSession) {\n await this.getSession();\n }\n\n return this.apiReallyFetch(uri, headers, options);\n }\n\n apiReallyFetch(uri, headers) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, {\n headers\n }).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(headers).then(newHeaders => {\n return fetch(uri, {\n headers: newHeaders\n });\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(options.skipParse ? () => {} : res => res.json()).catch(throwConnectionError).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(e));\n throw e;\n });\n } // @private\n\n\n apiPost(uri, headers, body) {\n let method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'POST';\n headers = { ...headers,\n 'Content-Type': 'application/json'\n };\n const fetchOptions = {\n method,\n headers\n };\n\n if (body) {\n fetchOptions.body = JSON.stringify(body);\n } else {\n fetchOptions.form = body;\n }\n\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, fetchOptions).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(fetchOptions.headers).then(newHeaders => {\n const newOptions = { ...fetchOptions,\n headers: newHeaders\n };\n return fetch(uri, newOptions);\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(res => res.json()).catch(throwConnectionError).catch(e => e.response.json().then(body => {\n console.error(e); // eslint-disable-line no-console\n\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(body));\n throw e;\n }));\n } // @private\n\n\n normalizeUriProtocol(uri, windowOverride) {\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (windowHandle && windowHandle.location && windowHandle.location.protocol === 'https:') {\n return uri.replace('http://', 'https://');\n }\n\n return uri;\n } // @private\n\n\n buildRetryHeaders(headers) {\n return new Promise(resolve => {\n this.refreshToken(freshToken => {\n this.jwt = freshToken;\n const freshHeader = headerFor(freshToken);\n const mergedHeaders = { ...headers,\n ...freshHeader\n };\n resolve(mergedHeaders);\n });\n });\n }\n\n baseUri(endpoint, host, windowOverride) {\n if (!host && this.host) {\n host = this.host;\n }\n\n host = originFromHost(host, windowOverride);\n const sharedEndpoints = ['images', 'media', 'documents', 'all']; // 'all' will eventually be something different\n\n const endpt = _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(sharedEndpoints).call(sharedEndpoints, endpoint) ? 'documents' : endpoint;\n return `${host}/api/${endpt}`;\n } // returns the URI to use with the fetchPage method to fetch the first page of\n // the given endpoint. e.g. for wikiPages it might return:\n //\n // //rce.docker/api/wikiPages?context_type=course&context_id=42\n //\n\n\n uriFor(endpoint, props) {\n const {\n host,\n contextType,\n contextId,\n sortBy,\n searchString,\n perPage\n } = props;\n let extra = '';\n const pageSizeParam = perPage ? `&per_page=${perPage}` : '';\n\n switch (endpoint) {\n case 'images':\n extra = `&content_types=image${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}${optionalQuery(props, 'category')}`;\n break;\n\n case 'media':\n // when requesting media files via the documents endpoint\n extra = `&content_types=video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'documents':\n extra = `&exclude_content_types=image,video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'media_objects':\n // when requesting media objects (this is the currently used branch)\n extra = `${getSortParams(sortBy.sort === 'alphabetical' ? 'title' : 'date', sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n default:\n extra = getSearchParam(searchString);\n }\n\n return `${this.baseUri(endpoint, host)}?contextType=${contextType}&contextId=${contextId}${pageSizeParam}${extra}`;\n }\n\n}\n\nfunction getSortParams(sort, dir) {\n let sortBy = sort;\n\n if (sortBy === 'date_added') {\n sortBy = 'created_at';\n } else if (sortBy === 'alphabetical') {\n sortBy = 'name';\n }\n\n return `&sort=${sortBy}&order=${dir}`;\n}\n\nfunction optionalQuery(props, name) {\n return props[name] ? `&${name}=${props[name]}` : '';\n}\n\nfunction getSearchParam(searchString) {\n return (searchString === null || searchString === void 0 ? void 0 : searchString.length) >= 3 ? `&search_term=${encodeURIComponent(searchString)}` : '';\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (RceApiSource);\n\n//# sourceURL=webpack:///./src/rcs/api.js?");
17881
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"headerFor\", function() { return headerFor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"originFromHost\", function() { return originFromHost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSearchParam\", function() { return getSearchParam; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! isomorphic-fetch */ \"../../node_modules/isomorphic-fetch/fetch-npm-browserify.js\");\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _common_fileUrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/fileUrl */ \"./src/common/fileUrl.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rce/alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../sidebar/containers/sidebarHandlers */ \"./src/sidebar/containers/sidebarHandlers.js\");\n/* harmony import */ var _buildError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./buildError */ \"./src/rcs/buildError.js\");\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\nfunction headerFor(jwt) {\n return {\n Authorization: 'Bearer ' + jwt\n };\n}\nfunction originFromHost(host, windowOverride) {\n let origin = host;\n\n if (typeof origin !== 'string') {\n origin = '';\n } else if (origin && origin.substr(0, 4) !== 'http') {\n var _windowHandle$locatio;\n\n origin = `//${origin}`;\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (origin.length > 0 && windowHandle !== null && windowHandle !== void 0 && (_windowHandle$locatio = windowHandle.location) !== null && _windowHandle$locatio !== void 0 && _windowHandle$locatio.protocol) {\n origin = `${windowHandle.location.protocol}${origin}`;\n }\n }\n\n return origin;\n} // filter a response to raise an error on a 400+ status\n\nfunction checkStatus(response) {\n if (response.status < 400) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n}\n\nfunction defaultRefreshTokenHandler() {\n throw new Error('Token expired, no refresh function provided');\n}\n\nfunction normalizeFileData(file) {\n return {\n // copy the name to the default display name if none provided\n display_name: file.name,\n ...file,\n // wrap the url\n href: Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"downloadToWrap\"])(file.href || file.url)\n };\n}\n\nfunction throwConnectionError(error) {\n if (error.name === 'TypeError') {\n // eslint-disable-next-line no-console\n console.error(`Failed to fetch from the canvas-rce-api.\n Did you forget to start it or configure it?\n Details can be found at https://github.com/instructure/canvas-rce-api\n `);\n }\n\n throw error;\n}\n\nclass RceApiSource {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.jwt = options.jwt;\n this.host = options.host;\n this.refreshToken = options.refreshToken || defaultRefreshTokenHandler;\n this.hasSession = false;\n this.alertFunc = options.alertFunc || _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__[\"default\"].handleAlert;\n }\n\n getSession() {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('session');\n return this.apiReallyFetch(uri, headers).then(data => {\n this.hasSession = true;\n return data;\n }).catch(throwConnectionError);\n } // initial state of a collection is empty, not loading, with bookmark set to\n // uri for initial page fetch\n\n\n initializeCollection(endpoint, props) {\n return {\n links: [],\n bookmark: this.uriFor(endpoint, props),\n isLoading: false,\n hasMore: true,\n searchString: props.searchString\n };\n }\n\n initializeUpload() {\n return {\n uploading: false,\n folders: {},\n formExpanded: false\n };\n }\n\n initializeImages(props) {\n return this.initializeDocuments(props);\n }\n\n initializeDocuments(props) {\n return {\n [props.contextType]: {\n files: [],\n bookmark: null,\n isLoading: false,\n hasMore: true\n },\n searchString: ''\n };\n }\n\n initializeMedia(props) {\n return this.initializeDocuments(props);\n }\n\n initializeFlickr() {\n return {\n searchResults: [],\n searching: false,\n formExpanded: false\n };\n } // fetches the given URI and filters it to either an error or parsed response\n\n\n fetchPage(uri) {\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, bookmark) {\n return fetchFunction(properties, bookmark).then(result => {\n onSuccess(result);\n\n if (result.bookmark) {\n this.fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, result.bookmark);\n }\n }).catch(error => {\n onError(error);\n });\n }\n\n fetchDocs(props) {\n const documents = props.documents[props.contextType];\n const uri = documents.bookmark || this.uriFor('documents', props);\n return this.apiFetch(uri, headerFor(this.jwt)).then(_ref => {\n let {\n bookmark,\n files\n } = _ref;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f))\n };\n });\n }\n\n fetchMedia(props) {\n const media = props.media[props.contextType];\n const uri = media.bookmark || this.uriFor('media', props);\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchFiles(uri) {\n return this.fetchPage(uri).then(_ref2 => {\n let {\n bookmark,\n files\n } = _ref2;\n return {\n bookmark,\n files: files.map(normalizeFileData)\n };\n });\n }\n\n fetchLinks(key, props) {\n const {\n collections\n } = props;\n const bookmark = collections[key].bookmark || this.uriFor(key, props);\n return this.fetchPage(bookmark);\n }\n\n fetchRootFolder(props) {\n return this.fetchPage(this.uriFor('folders', props), this.jwt);\n }\n\n mediaServerSession() {\n return this.apiPost(this.baseUri('v1/services/kaltura_session'), headerFor(this.jwt), {});\n }\n\n uploadMediaToCanvas(mediaObject) {\n var _context;\n\n const body = {\n id: mediaObject.entryId,\n type: {\n 2: 'image',\n 5: 'audio'\n }[mediaObject.mediaType] || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = mediaObject.type).call(_context, 'audio') ? 'audio' : 'video',\n context_code: mediaObject.contextCode,\n title: mediaObject.title,\n user_entered_title: mediaObject.userTitle\n };\n return this.apiPost(this.baseUri('media_objects'), headerFor(this.jwt), body);\n }\n\n updateMediaObject(apiProps, _ref3) {\n let {\n media_object_id,\n title\n } = _ref3;\n const uri = `${this.baseUri('media_objects', apiProps.host)}/${media_object_id}?user_entered_title=${encodeURIComponent(title)}`;\n return this.apiPost(uri, headerFor(this.jwt), null, 'PUT');\n } // PUT to //RCS/api/media_objects/:mediaId/media_tracks [{locale, content}, ...]\n // receive back a 200 with the new subtitles, or a 4xx error\n\n\n updateClosedCaptions(apiProps, _ref4, maxBytes) {\n let {\n media_object_id,\n subtitles\n } = _ref4;\n return Object(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__[\"saveClosedCaptions\"])(media_object_id, subtitles, {\n origin: originFromHost(apiProps.host),\n headers: headerFor(apiProps.jwt)\n }, maxBytes || _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__[\"CONSTANTS\"].CC_FILE_MAX_BYTES).catch(e => {\n console.error('Failed saving CC', e);\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])({\n message: 'failed to save captions'\n }, e));\n });\n } // GET /media_objects/:mediaId/media_tracks\n // receive back the current list of media_tracks\n\n\n fetchClosedCaptions(_mediaId) {\n return Promise.resolve([{\n locale: 'af',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }, {\n locale: 'es',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }]);\n } // fetches folders for the given context to upload files to\n\n\n fetchFolders(props, bookmark) {\n const headers = headerFor(this.jwt);\n const uri = bookmark || this.uriFor('folders/all', props);\n return this.apiFetch(uri, headers);\n } // Fetches all files for a given folder\n\n\n fetchFilesForFolder(props, bookmark) {\n let uri;\n\n if (!bookmark) {\n const perPageQuery = props.perPage ? `per_page=${props.perPage}` : '';\n const categoryQuery = `category=${_sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_FILE_CATEGORY\"]}`;\n uri = `${props.filesUrl}?${perPageQuery}&${categoryQuery}${getSearchParam(props.searchString)}`;\n\n if (props.sortBy) {\n uri += `${getSortParams(props.sortBy.sort, props.sortBy.order)}`;\n }\n }\n\n return this.fetchPage(uri || bookmark, this.jwt);\n }\n\n fetchSubFolders(props, bookmark) {\n const uri = bookmark || `${this.baseUri('folders', props.host)}/${props.folderId}`;\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchIconMakerFolder(_ref5) {\n let {\n contextId,\n contextType\n } = _ref5;\n const uri = this.uriFor('folders/icon_maker', {\n contextId,\n contextType,\n host: this.host,\n jwt: this.jwt\n });\n return this.fetchPage(uri);\n }\n\n fetchMediaFolder(props) {\n let uri;\n\n if (props.contextType === 'user') {\n uri = this.uriFor('folders', props);\n } else {\n uri = this.uriFor('folders/media', props);\n }\n\n return this.fetchPage(uri);\n }\n\n fetchMediaObjectIframe(mediaObjectId) {\n return this.fetchPage(this.uriFor(`media_objects_iframe/${mediaObjectId}`));\n }\n\n fetchImages(props) {\n const images = props.images[props.contextType];\n const uri = images.bookmark || this.uriFor('images', props);\n const headers = headerFor(this.jwt);\n return this.apiFetch(uri, headers).then(_ref6 => {\n let {\n bookmark,\n files\n } = _ref6;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f)),\n searchString: props.searchString\n };\n });\n }\n\n preflightUpload(fileProps, apiProps) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('upload', apiProps.host);\n const body = {\n contextId: apiProps.contextId,\n contextType: apiProps.contextType,\n file: fileProps,\n no_redirect: true,\n onDuplicate: apiProps.onDuplicate,\n category: apiProps.category\n };\n return this.apiPost(uri, headers, body);\n }\n\n uploadFRD(fileDomObject, preflightProps) {\n var _context2;\n\n const data = new window.FormData();\n Object.keys(preflightProps.upload_params).forEach(uploadProp => {\n data.append(uploadProp, preflightProps.upload_params[uploadProp]);\n });\n data.append('file', fileDomObject);\n const fetchOptions = {\n method: 'POST',\n body: data\n };\n\n if (!preflightProps.upload_params['x-amz-signature'] && !_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context2 = preflightProps.upload_url).call(_context2, 'files_api')) {\n // _not_ an S3 upload, include the credentials in the upload POST\n // local uploads can include crendentials for same-origin requests\n fetchOptions.credentials = 'include';\n }\n\n return fetch(preflightProps.upload_url, fetchOptions).then(checkStatus).then(res => res.json()).then(uploadResults => {\n return this.finalizeUpload(preflightProps, uploadResults);\n }).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])({}, e));\n });\n }\n\n finalizeUpload(preflightProps, uploadResults) {\n if (preflightProps.upload_params.success_url) {\n // s3 upload, follow-up at success_url to finalize. the success_url doesn't\n // require authentication\n return fetch(preflightProps.upload_params.success_url).then(checkStatus).then(res => res.json());\n } else if (uploadResults.location) {\n // inst-fs upload, follow-up by fetching file identified by location in\n // response. we can't just fetch the location as would be intended because\n // it requires Canvas authentication. we also don't have an RCE API\n // endpoint to forward it through.\n const {\n pathname\n } = Object(url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"])(uploadResults.location);\n const matchData = pathname.match(/^\\/api\\/v1\\/files\\/((?:\\d+~)?\\d+)$/);\n\n if (!matchData) {\n const error = new Error('cannot determine file ID from location');\n error.location = uploadResults.location;\n throw error;\n }\n\n const fileId = matchData[1];\n return this.getFile(fileId).then(fileResults => {\n fileResults.uuid = uploadResults.uuid; // if present, we'll need the uuid for the file verifier downstream\n\n return fileResults;\n });\n } else {\n // local-storage upload, this _is_ the attachment information\n return Promise.resolve(uploadResults);\n }\n }\n\n setUsageRights(fileId, usageRights) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('usage_rights');\n const body = {\n fileId,\n ...usageRights\n };\n return this.apiPost(uri, headers, body);\n }\n\n searchFlickr(term, apiProps) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('flickr_search', apiProps.host);\n const uri = `${base}?term=${encodeURIComponent(term)}`;\n return this.apiFetch(uri, headers);\n }\n\n searchUnsplash(term, page) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/search');\n const uri = `${base}?term=${encodeURIComponent(term)}&page=${page}&per_page=12`;\n return this.apiFetch(uri, headers);\n }\n\n pingbackUnsplash(id) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/pingback');\n const uri = `${base}?id=${id}`;\n return this.apiFetch(uri, headers, {\n skipParse: true\n });\n }\n\n getFile(id) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const headers = headerFor(this.jwt);\n const base = this.baseUri('file'); // Valid query parameters for getFile\n\n const {\n replacement_chain_context_type,\n replacement_chain_context_id\n } = options;\n const uri = this.addParamsIfPresent(`${base}/${id}`, {\n replacement_chain_context_type,\n replacement_chain_context_id\n });\n return this.apiFetch(uri, headers).then(normalizeFileData);\n } // @private\n\n\n addParamsIfPresent(uri, params) {\n let url;\n\n try {\n url = new URL(uri);\n } catch (e) {\n // Just return the URI if it was invalid\n return uri;\n } // Add all truthy parameters to the URL\n\n\n for (const [name, value] of Object.entries(params)) {\n if (!value) continue;\n url.searchParams.append(name, value);\n }\n\n return url.toString();\n } // @private\n\n\n async apiFetch(uri, headers, options) {\n if (!this.hasSession) {\n await this.getSession();\n }\n\n return this.apiReallyFetch(uri, headers, options);\n }\n\n apiReallyFetch(uri, headers) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, {\n headers\n }).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(headers).then(newHeaders => {\n return fetch(uri, {\n headers: newHeaders\n });\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(options.skipParse ? () => {} : res => res.json()).catch(throwConnectionError).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(e));\n throw e;\n });\n } // @private\n\n\n apiPost(uri, headers, body) {\n let method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'POST';\n headers = { ...headers,\n 'Content-Type': 'application/json'\n };\n const fetchOptions = {\n method,\n headers\n };\n\n if (body) {\n fetchOptions.body = JSON.stringify(body);\n } else {\n fetchOptions.form = body;\n }\n\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, fetchOptions).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(fetchOptions.headers).then(newHeaders => {\n const newOptions = { ...fetchOptions,\n headers: newHeaders\n };\n return fetch(uri, newOptions);\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(res => res.json()).catch(throwConnectionError).catch(e => e.response.json().then(body => {\n console.error(e); // eslint-disable-line no-console\n\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(body));\n throw e;\n }));\n } // @private\n\n\n normalizeUriProtocol(uri, windowOverride) {\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (windowHandle && windowHandle.location && windowHandle.location.protocol === 'https:') {\n return uri.replace('http://', 'https://');\n }\n\n return uri;\n } // @private\n\n\n buildRetryHeaders(headers) {\n return new Promise(resolve => {\n this.refreshToken(freshToken => {\n this.jwt = freshToken;\n const freshHeader = headerFor(freshToken);\n const mergedHeaders = { ...headers,\n ...freshHeader\n };\n resolve(mergedHeaders);\n });\n });\n }\n\n baseUri(endpoint, host, windowOverride) {\n if (!host && this.host) {\n host = this.host;\n }\n\n host = originFromHost(host, windowOverride);\n const sharedEndpoints = ['images', 'media', 'documents', 'all']; // 'all' will eventually be something different\n\n const endpt = _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(sharedEndpoints).call(sharedEndpoints, endpoint) ? 'documents' : endpoint;\n return `${host}/api/${endpt}`;\n } // returns the URI to use with the fetchPage method to fetch the first page of\n // the given endpoint. e.g. for wikiPages it might return:\n //\n // //rce.docker/api/wikiPages?context_type=course&context_id=42\n //\n\n\n uriFor(endpoint, props) {\n const {\n host,\n contextType,\n contextId,\n sortBy,\n searchString,\n perPage\n } = props;\n let extra = '';\n const pageSizeParam = perPage ? `&per_page=${perPage}` : '';\n\n switch (endpoint) {\n case 'images':\n extra = `&content_types=image${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}${optionalQuery(props, 'category')}`;\n break;\n\n case 'media':\n // when requesting media files via the documents endpoint\n extra = `&content_types=video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'documents':\n extra = `&exclude_content_types=image,video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'media_objects':\n // when requesting media objects (this is the currently used branch)\n extra = `${getSortParams(sortBy.sort === 'alphabetical' ? 'title' : 'date', sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n default:\n extra = getSearchParam(searchString);\n }\n\n return `${this.baseUri(endpoint, host)}?contextType=${contextType}&contextId=${contextId}${pageSizeParam}${extra}`;\n }\n\n}\n\nfunction getSortParams(sort, dir) {\n let sortBy = sort;\n\n if (sortBy === 'date_added') {\n sortBy = 'created_at';\n } else if (sortBy === 'alphabetical') {\n sortBy = 'name';\n }\n\n return `&sort=${sortBy}&order=${dir}`;\n}\n\nfunction optionalQuery(props, name) {\n return props[name] ? `&${name}=${props[name]}` : '';\n}\n\nfunction getSearchParam(searchString) {\n return (searchString === null || searchString === void 0 ? void 0 : searchString.length) >= 3 ? `&search_term=${encodeURIComponent(searchString)}` : '';\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (RceApiSource);\n\n//# sourceURL=webpack:///./src/rcs/api.js?");
17846
17882
 
17847
17883
  /***/ }),
17848
17884