@instructure/canvas-rce 5.12.1 → 5.12.2

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 (476) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/babel-register.js +0 -7
  3. package/babel.config.cjs.js +0 -7
  4. package/babel.config.js +0 -9
  5. package/es/enhance-user-content/doc_previews.js +4 -0
  6. package/es/enhance-user-content/enhance_user_content.js +4 -59
  7. package/es/enhance-user-content/external_links.js +75 -0
  8. package/es/enhance-user-content/mathml.js +9 -7
  9. package/es/index.js +1 -1
  10. package/es/rce/RCEWrapper.js +3 -2322
  11. package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +1 -1
  12. package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +3 -11
  13. package/es/rce/plugins/instructure_equation/mathlive/index.js +5 -13
  14. package/es/rce/tinymce.oxide.content.min.css.js +732 -0
  15. package/es/rce/tinymce.oxide.skin.min.css.js +7 -0
  16. package/jest.config.js +0 -7
  17. package/package.json +1 -5
  18. package/scripts/build.js +1 -7
  19. package/lib/bridge/Bridge.js +0 -287
  20. package/lib/bridge/index.js +0 -21
  21. package/lib/canvasFileBrowser/FileBrowser.js +0 -457
  22. package/lib/canvasFileBrowser/en-US.js +0 -234
  23. package/lib/common/FlashAlert.js +0 -263
  24. package/lib/common/browser.js +0 -40
  25. package/lib/common/components/FileTree/File.js +0 -64
  26. package/lib/common/components/FileTree/Folder.js +0 -110
  27. package/lib/common/components/FileTree/index.js +0 -84
  28. package/lib/common/components/FileTree/styles.js +0 -72
  29. package/lib/common/components/Loading.js +0 -83
  30. package/lib/common/fileUrl.js +0 -152
  31. package/lib/common/getCookie.js +0 -32
  32. package/lib/common/incremental-loading/LoadMoreButton.js +0 -40
  33. package/lib/common/incremental-loading/LoadingIndicator.js +0 -36
  34. package/lib/common/incremental-loading/LoadingStatus.js +0 -47
  35. package/lib/common/incremental-loading/index.js +0 -21
  36. package/lib/common/incremental-loading/useIncrementalLoading.js +0 -58
  37. package/lib/common/indicate.js +0 -75
  38. package/lib/common/mimeClass.js +0 -120
  39. package/lib/common/natcompare.js +0 -47
  40. package/lib/defaultTinymceConfig.js +0 -160
  41. package/lib/elementDenylist.js +0 -19
  42. package/lib/enhance-user-content/doc_previews.js +0 -233
  43. package/lib/enhance-user-content/enhance_user_content.js +0 -396
  44. package/lib/enhance-user-content/index.js +0 -21
  45. package/lib/enhance-user-content/instructure_helper.js +0 -207
  46. package/lib/enhance-user-content/jqueryish_funcs.js +0 -88
  47. package/lib/enhance-user-content/mathml.js +0 -397
  48. package/lib/enhance-user-content/media_comment_thumbnail.js +0 -130
  49. package/lib/format-message.js +0 -30
  50. package/lib/getThemeVars.js +0 -46
  51. package/lib/getTranslations.js +0 -340
  52. package/lib/index.js +0 -51
  53. package/lib/rce/AlertMessageArea.js +0 -47
  54. package/lib/rce/DraggingBlocker.js +0 -43
  55. package/lib/rce/KeyboardShortcutModal.js +0 -88
  56. package/lib/rce/RCE.js +0 -150
  57. package/lib/rce/RCEGlobals.js +0 -62
  58. package/lib/rce/RCEWrapper.js +0 -4274
  59. package/lib/rce/RCEWrapperProps.js +0 -130
  60. package/lib/rce/RceHtmlEditor.js +0 -142
  61. package/lib/rce/ResizeHandle.js +0 -102
  62. package/lib/rce/RestoreAutoSaveModal.js +0 -82
  63. package/lib/rce/ShowOnFocusButton/index.js +0 -93
  64. package/lib/rce/StatusBar.js +0 -386
  65. package/lib/rce/__mocks__/_mockCryptoEs.js +0 -124
  66. package/lib/rce/__mocks__/styleMock.js +0 -18
  67. package/lib/rce/__mocks__/tinymceReact.js +0 -55
  68. package/lib/rce/alertHandler.js +0 -46
  69. package/lib/rce/contentInsertion.js +0 -325
  70. package/lib/rce/contentInsertionUtils.js +0 -85
  71. package/lib/rce/contentRendering.js +0 -145
  72. package/lib/rce/customEvents.js +0 -18
  73. package/lib/rce/editorLanguage.js +0 -101
  74. package/lib/rce/indicatorRegion.js +0 -49
  75. package/lib/rce/normalizeLocale.js +0 -50
  76. package/lib/rce/normalizeProps.js +0 -29
  77. package/lib/rce/plugins/instructure-ui-icons/plugin.js +0 -122
  78. package/lib/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +0 -24
  79. package/lib/rce/plugins/instructure_condensed_buttons/plugin.js +0 -27
  80. package/lib/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +0 -63
  81. package/lib/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +0 -48
  82. package/lib/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +0 -41
  83. package/lib/rce/plugins/instructure_condensed_buttons/ui/list-button.js +0 -145
  84. package/lib/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +0 -56
  85. package/lib/rce/plugins/instructure_documents/clickCallback.js +0 -23
  86. package/lib/rce/plugins/instructure_documents/components/DocumentsPanel.js +0 -120
  87. package/lib/rce/plugins/instructure_documents/components/Link.js +0 -219
  88. package/lib/rce/plugins/instructure_documents/plugin.js +0 -123
  89. package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +0 -25
  90. package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +0 -51
  91. package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +0 -321
  92. package/lib/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +0 -116
  93. package/lib/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +0 -91
  94. package/lib/rce/plugins/instructure_equation/EquationEditorModal/styles.js +0 -46
  95. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +0 -728
  96. package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +0 -84
  97. package/lib/rce/plugins/instructure_equation/MathIcon/index.js +0 -41
  98. package/lib/rce/plugins/instructure_equation/MathIcon/svgs.js +0 -236
  99. package/lib/rce/plugins/instructure_equation/clickCallback.js +0 -53
  100. package/lib/rce/plugins/instructure_equation/mathlive/index.js +0 -36
  101. package/lib/rce/plugins/instructure_equation/plugin.js +0 -69
  102. package/lib/rce/plugins/instructure_fullscreen/plugin.js +0 -50
  103. package/lib/rce/plugins/instructure_html_view/clickCallback.js +0 -21
  104. package/lib/rce/plugins/instructure_html_view/plugin.js +0 -37
  105. package/lib/rce/plugins/instructure_icon_maker/clickCallback.js +0 -57
  106. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +0 -82
  107. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +0 -56
  108. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +0 -78
  109. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +0 -36
  110. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +0 -110
  111. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +0 -169
  112. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +0 -186
  113. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +0 -243
  114. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +0 -64
  115. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +0 -73
  116. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +0 -298
  117. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +0 -86
  118. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +0 -55
  119. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +0 -70
  120. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +0 -317
  121. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +0 -149
  122. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +0 -18
  123. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +0 -32
  124. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +0 -25
  125. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +0 -60
  126. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +0 -87
  127. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +0 -139
  128. package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +0 -18
  129. package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +0 -323
  130. package/lib/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +0 -91
  131. package/lib/rce/plugins/instructure_icon_maker/plugin.js +0 -110
  132. package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +0 -194
  133. package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +0 -98
  134. package/lib/rce/plugins/instructure_icon_maker/registerEditToolbar.js +0 -56
  135. package/lib/rce/plugins/instructure_icon_maker/svg/clipPath.js +0 -25
  136. package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +0 -100
  137. package/lib/rce/plugins/instructure_icon_maker/svg/font.js +0 -25
  138. package/lib/rce/plugins/instructure_icon_maker/svg/image.js +0 -354
  139. package/lib/rce/plugins/instructure_icon_maker/svg/index.js +0 -122
  140. package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +0 -48
  141. package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +0 -179
  142. package/lib/rce/plugins/instructure_icon_maker/svg/shape.js +0 -316
  143. package/lib/rce/plugins/instructure_icon_maker/svg/text.js +0 -468
  144. package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +0 -70
  145. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +0 -45
  146. package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +0 -83
  147. package/lib/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +0 -28
  148. package/lib/rce/plugins/instructure_icon_maker/utils/iconValidation.js +0 -35
  149. package/lib/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +0 -375
  150. package/lib/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +0 -59
  151. package/lib/rce/plugins/instructure_image/ImageEmbedOptions.js +0 -202
  152. package/lib/rce/plugins/instructure_image/ImageList/Image.js +0 -106
  153. package/lib/rce/plugins/instructure_image/ImageList/index.js +0 -69
  154. package/lib/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +0 -166
  155. package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +0 -246
  156. package/lib/rce/plugins/instructure_image/Images/index.js +0 -122
  157. package/lib/rce/plugins/instructure_image/clickCallback.js +0 -24
  158. package/lib/rce/plugins/instructure_image/plugin.js +0 -157
  159. package/lib/rce/plugins/instructure_links/clickCallback.js +0 -22
  160. package/lib/rce/plugins/instructure_links/components/AccordionSection.js +0 -60
  161. package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +0 -84
  162. package/lib/rce/plugins/instructure_links/components/Link.js +0 -213
  163. package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +0 -127
  164. package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +0 -141
  165. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +0 -125
  166. package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +0 -245
  167. package/lib/rce/plugins/instructure_links/components/LinkSet.js +0 -195
  168. package/lib/rce/plugins/instructure_links/components/LinksPanel.js +0 -100
  169. package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +0 -141
  170. package/lib/rce/plugins/instructure_links/components/NoResults.js +0 -87
  171. package/lib/rce/plugins/instructure_links/components/propTypes.js +0 -41
  172. package/lib/rce/plugins/instructure_links/plugin.js +0 -294
  173. package/lib/rce/plugins/instructure_links/validateURL.js +0 -70
  174. package/lib/rce/plugins/instructure_media_embed/clickCallback.js +0 -48
  175. package/lib/rce/plugins/instructure_media_embed/components/Embed.js +0 -68
  176. package/lib/rce/plugins/instructure_media_embed/plugin.js +0 -36
  177. package/lib/rce/plugins/instructure_paste/pasteMenuCommand.js +0 -117
  178. package/lib/rce/plugins/instructure_paste/plugin.js +0 -174
  179. package/lib/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +0 -169
  180. package/lib/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +0 -225
  181. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +0 -297
  182. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +0 -46
  183. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +0 -79
  184. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +0 -153
  185. package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +0 -94
  186. package/lib/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +0 -90
  187. package/lib/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +0 -35
  188. package/lib/rce/plugins/instructure_rce_external_tools/dialog-helper.js +0 -29
  189. package/lib/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -55
  190. package/lib/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +0 -172
  191. package/lib/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +0 -203
  192. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +0 -23
  193. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +0 -111
  194. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +0 -79
  195. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +0 -47
  196. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +0 -57
  197. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +0 -26
  198. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +0 -47
  199. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +0 -67
  200. package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +0 -48
  201. package/lib/rce/plugins/instructure_rce_external_tools/plugin.js +0 -112
  202. package/lib/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +0 -27
  203. package/lib/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +0 -152
  204. package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +0 -154
  205. package/lib/rce/plugins/instructure_record/MediaPanel/index.js +0 -123
  206. package/lib/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +0 -240
  207. package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +0 -350
  208. package/lib/rce/plugins/instructure_record/clickCallback.js +0 -105
  209. package/lib/rce/plugins/instructure_record/mediaTranslations.js +0 -94
  210. package/lib/rce/plugins/instructure_record/plugin.js +0 -173
  211. package/lib/rce/plugins/instructure_studio_media_options/plugin.js +0 -42
  212. package/lib/rce/plugins/instructure_wordcount/clickCallback.js +0 -49
  213. package/lib/rce/plugins/instructure_wordcount/components/WordCountModal.js +0 -88
  214. package/lib/rce/plugins/instructure_wordcount/plugin.js +0 -30
  215. package/lib/rce/plugins/instructure_wordcount/utils/countContent.js +0 -78
  216. package/lib/rce/plugins/instructure_wordcount/utils/tableContent.js +0 -40
  217. package/lib/rce/plugins/shared/CanvasContentTray.js +0 -580
  218. package/lib/rce/plugins/shared/CheckerboardStyling.js +0 -25
  219. package/lib/rce/plugins/shared/ColorInput.js +0 -233
  220. package/lib/rce/plugins/shared/ConditionalTooltip.js +0 -32
  221. package/lib/rce/plugins/shared/ContentSelection.js +0 -269
  222. package/lib/rce/plugins/shared/DimensionUtils.js +0 -66
  223. package/lib/rce/plugins/shared/DimensionsInput/DimensionInput.js +0 -62
  224. package/lib/rce/plugins/shared/DimensionsInput/index.js +0 -161
  225. package/lib/rce/plugins/shared/DimensionsInput/useDimensionsState.js +0 -220
  226. package/lib/rce/plugins/shared/ErrorBoundary.js +0 -54
  227. package/lib/rce/plugins/shared/EventUtils.js +0 -39
  228. package/lib/rce/plugins/shared/Filter.js +0 -353
  229. package/lib/rce/plugins/shared/FixedContentTray.js +0 -115
  230. package/lib/rce/plugins/shared/ImageCropper/DirectionRegion.js +0 -67
  231. package/lib/rce/plugins/shared/ImageCropper/Modal.js +0 -153
  232. package/lib/rce/plugins/shared/ImageCropper/Preview.js +0 -148
  233. package/lib/rce/plugins/shared/ImageCropper/constants.js +0 -39
  234. package/lib/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +0 -83
  235. package/lib/rce/plugins/shared/ImageCropper/controls/ResetControls.js +0 -38
  236. package/lib/rce/plugins/shared/ImageCropper/controls/RotationControls.js +0 -89
  237. package/lib/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +0 -82
  238. package/lib/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +0 -111
  239. package/lib/rce/plugins/shared/ImageCropper/controls/index.js +0 -61
  240. package/lib/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +0 -94
  241. package/lib/rce/plugins/shared/ImageCropper/controls/utils.js +0 -41
  242. package/lib/rce/plugins/shared/ImageCropper/imageCropUtils.js +0 -149
  243. package/lib/rce/plugins/shared/ImageCropper/index.js +0 -18
  244. package/lib/rce/plugins/shared/ImageCropper/propTypes.js +0 -26
  245. package/lib/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +0 -72
  246. package/lib/rce/plugins/shared/ImageCropper/shape.js +0 -27
  247. package/lib/rce/plugins/shared/ImageCropper/svg/index.js +0 -89
  248. package/lib/rce/plugins/shared/ImageCropper/svg/shape.js +0 -125
  249. package/lib/rce/plugins/shared/ImageCropper/svg/utils.js +0 -26
  250. package/lib/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +0 -233
  251. package/lib/rce/plugins/shared/ImageCropper/useMouseWheel.js +0 -66
  252. package/lib/rce/plugins/shared/ImageOptionsForm.js +0 -140
  253. package/lib/rce/plugins/shared/LinkDisplay.js +0 -96
  254. package/lib/rce/plugins/shared/PreviewIcon.js +0 -112
  255. package/lib/rce/plugins/shared/Previewable.js +0 -22
  256. package/lib/rce/plugins/shared/RceFileBrowser.js +0 -106
  257. package/lib/rce/plugins/shared/StoreContext.js +0 -57
  258. package/lib/rce/plugins/shared/StudioLtiSupportUtils.js +0 -71
  259. package/lib/rce/plugins/shared/UnknownFileTypePanel.js +0 -29
  260. package/lib/rce/plugins/shared/Upload/CategoryProcessor.js +0 -27
  261. package/lib/rce/plugins/shared/Upload/ComputerPanel.js +0 -334
  262. package/lib/rce/plugins/shared/Upload/SvgCategoryProcessor.js +0 -35
  263. package/lib/rce/plugins/shared/Upload/UploadFile.js +0 -171
  264. package/lib/rce/plugins/shared/Upload/UploadFileModal.js +0 -273
  265. package/lib/rce/plugins/shared/Upload/UrlPanel.js +0 -38
  266. package/lib/rce/plugins/shared/Upload/UsageRightsSelectBox.js +0 -172
  267. package/lib/rce/plugins/shared/Upload/doFileUpload.js +0 -77
  268. package/lib/rce/plugins/shared/__mocks__/screenfull.js +0 -24
  269. package/lib/rce/plugins/shared/buildDownloadUrl.js +0 -31
  270. package/lib/rce/plugins/shared/compressionUtils.js +0 -98
  271. package/lib/rce/plugins/shared/dateUtils.js +0 -28
  272. package/lib/rce/plugins/shared/fileShape.js +0 -129
  273. package/lib/rce/plugins/shared/fileTypeUtils.js +0 -139
  274. package/lib/rce/plugins/shared/fileUtils.js +0 -25
  275. package/lib/rce/plugins/shared/linkUtils.js +0 -89
  276. package/lib/rce/plugins/shared/round.js +0 -25
  277. package/lib/rce/plugins/shared/trayUtils.js +0 -34
  278. package/lib/rce/plugins/shared/useDataUrl.js +0 -76
  279. package/lib/rce/plugins/tinymce-a11y-checker/components/ColorField.js +0 -86
  280. package/lib/rce/plugins/tinymce-a11y-checker/components/checker.js +0 -558
  281. package/lib/rce/plugins/tinymce-a11y-checker/components/color-picker.js +0 -59
  282. package/lib/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +0 -90
  283. package/lib/rce/plugins/tinymce-a11y-checker/components/pointer.js +0 -32
  284. package/lib/rce/plugins/tinymce-a11y-checker/node-checker.js +0 -54
  285. package/lib/rce/plugins/tinymce-a11y-checker/plugin.js +0 -90
  286. package/lib/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
  287. package/lib/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +0 -129
  288. package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +0 -200
  289. package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +0 -67
  290. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +0 -63
  291. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +0 -49
  292. package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +0 -61
  293. package/lib/rce/plugins/tinymce-a11y-checker/rules/index.js +0 -31
  294. package/lib/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +0 -51
  295. package/lib/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +0 -144
  296. package/lib/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +0 -61
  297. package/lib/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +0 -75
  298. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +0 -54
  299. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +0 -52
  300. package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header.js +0 -81
  301. package/lib/rce/plugins/tinymce-a11y-checker/utils/colors.js +0 -43
  302. package/lib/rce/plugins/tinymce-a11y-checker/utils/describe.js +0 -66
  303. package/lib/rce/plugins/tinymce-a11y-checker/utils/dom.js +0 -160
  304. package/lib/rce/plugins/tinymce-a11y-checker/utils/indicate.js +0 -83
  305. package/lib/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +0 -57
  306. package/lib/rce/plugins/tinymce-a11y-checker/utils/strings.js +0 -40
  307. package/lib/rce/root.js +0 -58
  308. package/lib/rce/sanitizePlugins.js +0 -32
  309. package/lib/rce/style.js +0 -843
  310. package/lib/rce/tinyRCE.js +0 -66
  311. package/lib/rce/transformContent.js +0 -73
  312. package/lib/rce/userOS.js +0 -31
  313. package/lib/rce/wrapInitCb.js +0 -78
  314. package/lib/rcs/api.js +0 -672
  315. package/lib/rcs/buildError.js +0 -98
  316. package/lib/rcs/fake.js +0 -621
  317. package/lib/sidebar/actions/all_files.js +0 -29
  318. package/lib/sidebar/actions/data.js +0 -105
  319. package/lib/sidebar/actions/documents.js +0 -107
  320. package/lib/sidebar/actions/files.js +0 -167
  321. package/lib/sidebar/actions/filter.js +0 -63
  322. package/lib/sidebar/actions/flickr.js +0 -60
  323. package/lib/sidebar/actions/images.js +0 -153
  324. package/lib/sidebar/actions/links.js +0 -23
  325. package/lib/sidebar/actions/media.js +0 -142
  326. package/lib/sidebar/actions/session.js +0 -34
  327. package/lib/sidebar/actions/ui.js +0 -49
  328. package/lib/sidebar/actions/upload.js +0 -550
  329. package/lib/sidebar/containers/Sidebar.js +0 -67
  330. package/lib/sidebar/containers/sidebarHandlers.js +0 -73
  331. package/lib/sidebar/dragHtml.js +0 -49
  332. package/lib/sidebar/reducers/all_files.js +0 -35
  333. package/lib/sidebar/reducers/collection.js +0 -72
  334. package/lib/sidebar/reducers/collections.js +0 -52
  335. package/lib/sidebar/reducers/documents.js +0 -89
  336. package/lib/sidebar/reducers/files.js +0 -38
  337. package/lib/sidebar/reducers/filter.js +0 -61
  338. package/lib/sidebar/reducers/flickr.js +0 -51
  339. package/lib/sidebar/reducers/folder.js +0 -92
  340. package/lib/sidebar/reducers/folders.js +0 -39
  341. package/lib/sidebar/reducers/images.js +0 -115
  342. package/lib/sidebar/reducers/index.js +0 -57
  343. package/lib/sidebar/reducers/media.js +0 -84
  344. package/lib/sidebar/reducers/newPageLinkExpanded.js +0 -30
  345. package/lib/sidebar/reducers/noop.js +0 -21
  346. package/lib/sidebar/reducers/rootFolderId.js +0 -30
  347. package/lib/sidebar/reducers/session.js +0 -33
  348. package/lib/sidebar/reducers/ui.js +0 -87
  349. package/lib/sidebar/reducers/upload.js +0 -206
  350. package/lib/sidebar/store/configureStore.js +0 -26
  351. package/lib/sidebar/store/initialState.js +0 -173
  352. package/lib/translations/locales/ab.js +0 -26
  353. package/lib/translations/locales/ar.js +0 -2427
  354. package/lib/translations/locales/ca.js +0 -2427
  355. package/lib/translations/locales/cs.js +0 -27
  356. package/lib/translations/locales/cs_CZ.js +0 -27
  357. package/lib/translations/locales/cy.js +0 -2427
  358. package/lib/translations/locales/da-x-k12.js +0 -2427
  359. package/lib/translations/locales/da.js +0 -2427
  360. package/lib/translations/locales/da_DK.js +0 -27
  361. package/lib/translations/locales/de.js +0 -2427
  362. package/lib/translations/locales/el.js +0 -459
  363. package/lib/translations/locales/en-AU-x-unimelb.js +0 -2427
  364. package/lib/translations/locales/en-GB-x-ukhe.js +0 -2427
  365. package/lib/translations/locales/en.js +0 -2427
  366. package/lib/translations/locales/en_AU.js +0 -2427
  367. package/lib/translations/locales/en_CA.js +0 -2426
  368. package/lib/translations/locales/en_CY.js +0 -2426
  369. package/lib/translations/locales/en_GB.js +0 -2427
  370. package/lib/translations/locales/en_NZ.js +0 -26
  371. package/lib/translations/locales/en_SE.js +0 -26
  372. package/lib/translations/locales/en_US.js +0 -26
  373. package/lib/translations/locales/es.js +0 -2427
  374. package/lib/translations/locales/es_ES.js +0 -2427
  375. package/lib/translations/locales/es_GT.js +0 -27
  376. package/lib/translations/locales/fa_IR.js +0 -615
  377. package/lib/translations/locales/fi.js +0 -2427
  378. package/lib/translations/locales/fr.js +0 -2427
  379. package/lib/translations/locales/fr_CA.js +0 -2427
  380. package/lib/translations/locales/he.js +0 -486
  381. package/lib/translations/locales/ht.js +0 -2426
  382. package/lib/translations/locales/hu.js +0 -2007
  383. package/lib/translations/locales/hu_HU.js +0 -27
  384. package/lib/translations/locales/hy.js +0 -444
  385. package/lib/translations/locales/id.js +0 -2426
  386. package/lib/translations/locales/id_ID.js +0 -26
  387. package/lib/translations/locales/is.js +0 -2426
  388. package/lib/translations/locales/it.js +0 -2427
  389. package/lib/translations/locales/ja.js +0 -2427
  390. package/lib/translations/locales/ko.js +0 -342
  391. package/lib/translations/locales/ko_KR.js +0 -27
  392. package/lib/translations/locales/lt.js +0 -26
  393. package/lib/translations/locales/lt_LT.js +0 -26
  394. package/lib/translations/locales/mi.js +0 -2426
  395. package/lib/translations/locales/mn_MN.js +0 -26
  396. package/lib/translations/locales/ms.js +0 -2426
  397. package/lib/translations/locales/nb-x-k12.js +0 -2427
  398. package/lib/translations/locales/nb.js +0 -2427
  399. package/lib/translations/locales/nl.js +0 -2427
  400. package/lib/translations/locales/nl_NL.js +0 -27
  401. package/lib/translations/locales/nn.js +0 -2247
  402. package/lib/translations/locales/pl.js +0 -2427
  403. package/lib/translations/locales/pt.js +0 -2427
  404. package/lib/translations/locales/pt_BR.js +0 -2427
  405. package/lib/translations/locales/ro.js +0 -27
  406. package/lib/translations/locales/ru.js +0 -2427
  407. package/lib/translations/locales/se.js +0 -26
  408. package/lib/translations/locales/sl.js +0 -2427
  409. package/lib/translations/locales/sv-x-k12.js +0 -2427
  410. package/lib/translations/locales/sv.js +0 -2427
  411. package/lib/translations/locales/sv_SE.js +0 -27
  412. package/lib/translations/locales/tg.js +0 -26
  413. package/lib/translations/locales/th.js +0 -2427
  414. package/lib/translations/locales/th_TH.js +0 -27
  415. package/lib/translations/locales/tl_PH.js +0 -26
  416. package/lib/translations/locales/tr.js +0 -687
  417. package/lib/translations/locales/uk_UA.js +0 -519
  418. package/lib/translations/locales/vi.js +0 -2427
  419. package/lib/translations/locales/vi_VN.js +0 -27
  420. package/lib/translations/locales/zh-Hans.js +0 -2427
  421. package/lib/translations/locales/zh-Hant.js +0 -2427
  422. package/lib/translations/locales/zh.js +0 -2427
  423. package/lib/translations/locales/zh_HK.js +0 -2427
  424. package/lib/translations/locales/zh_TW.Big5.js +0 -27
  425. package/lib/translations/locales/zh_TW.js +0 -27
  426. package/lib/translations/tinymce/ar_SA.js +0 -211
  427. package/lib/translations/tinymce/bg_BG.js +0 -419
  428. package/lib/translations/tinymce/ca.js +0 -419
  429. package/lib/translations/tinymce/cs.js +0 -419
  430. package/lib/translations/tinymce/cy.js +0 -418
  431. package/lib/translations/tinymce/da.js +0 -419
  432. package/lib/translations/tinymce/de.js +0 -419
  433. package/lib/translations/tinymce/el.js +0 -261
  434. package/lib/translations/tinymce/en_GB.js +0 -230
  435. package/lib/translations/tinymce/es.js +0 -419
  436. package/lib/translations/tinymce/fa_IR.js +0 -390
  437. package/lib/translations/tinymce/fi.js +0 -19
  438. package/lib/translations/tinymce/fr_FR.js +0 -419
  439. package/lib/translations/tinymce/he_IL.js +0 -420
  440. package/lib/translations/tinymce/hu_HU.js +0 -419
  441. package/lib/translations/tinymce/hy.js +0 -419
  442. package/lib/translations/tinymce/it.js +0 -419
  443. package/lib/translations/tinymce/ja.js +0 -419
  444. package/lib/translations/tinymce/ko_KR.js +0 -419
  445. package/lib/translations/tinymce/nb_NO.js +0 -419
  446. package/lib/translations/tinymce/nl.js +0 -419
  447. package/lib/translations/tinymce/pl.js +0 -419
  448. package/lib/translations/tinymce/pt_BR.js +0 -419
  449. package/lib/translations/tinymce/pt_PT.js +0 -419
  450. package/lib/translations/tinymce/ro.js +0 -418
  451. package/lib/translations/tinymce/ru.js +0 -436
  452. package/lib/translations/tinymce/ru_RU.js +0 -71
  453. package/lib/translations/tinymce/sl.js +0 -462
  454. package/lib/translations/tinymce/sr.js +0 -278
  455. package/lib/translations/tinymce/sv_SE.js +0 -419
  456. package/lib/translations/tinymce/th.js +0 -479
  457. package/lib/translations/tinymce/tr_TR.js +0 -389
  458. package/lib/translations/tinymce/uk_UA.js +0 -278
  459. package/lib/translations/tinymce/vi_VN.js +0 -277
  460. package/lib/translations/tinymce/zh_CN.js +0 -419
  461. package/lib/translations/tinymce/zh_TW.js +0 -419
  462. package/lib/util/DeepPartialNullable.js +0 -1
  463. package/lib/util/ExtractRequired.js +0 -1
  464. package/lib/util/TypedDict.js +0 -131
  465. package/lib/util/assertNever.js +0 -44
  466. package/lib/util/elem-util.js +0 -26
  467. package/lib/util/encrypted-storage.js +0 -84
  468. package/lib/util/file-url-util.js +0 -44
  469. package/lib/util/fullscreenHelpers.js +0 -27
  470. package/lib/util/instui-icon-helper.js +0 -31
  471. package/lib/util/loadingPlaceholder.js +0 -436
  472. package/lib/util/simpleCache.js +0 -41
  473. package/lib/util/string-util.js +0 -48
  474. package/lib/util/textarea-editing-util.js +0 -87
  475. package/lib/util/tinymce-plugin-util.js +0 -52
  476. package/lib/util/url-util.js +0 -138
@@ -1,4274 +0,0 @@
1
- var _Intl, _Intl$DateTimeFormat, _Intl$DateTimeFormat$;
2
-
3
- /*
4
- * Copyright (C) 2018 - present Instructure, Inc.
5
- *
6
- * This file is part of Canvas.
7
- *
8
- * Canvas is free software: you can redistribute it and/or modify it under
9
- * the terms of the GNU Affero General Public License as published by the Free
10
- * Software Foundation, version 3 of the License.
11
- *
12
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
13
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
15
- * details.
16
- *
17
- * You should have received a copy of the GNU Affero General Public License along
18
- * with this program. If not, see <http://www.gnu.org/licenses/>.
19
- */
20
- import React, { Suspense } from 'react';
21
- import { Editor } from '@tinymce/tinymce-react';
22
- import _ from 'lodash';
23
- import { StoreProvider } from './plugins/shared/StoreContext';
24
- import { IconKeyboardShortcutsLine } from '@instructure/ui-icons';
25
- import { Alert } from '@instructure/ui-alerts';
26
- import { Spinner } from '@instructure/ui-spinner';
27
- import { View } from '@instructure/ui-view';
28
- import { debounce } from '@instructure/debounce';
29
- import { uid } from '@instructure/uid';
30
- import { FocusRegionManager } from '@instructure/ui-a11y-utils';
31
- import getCookie from '../common/getCookie';
32
- import formatMessage from '../format-message';
33
- import * as contentInsertion from './contentInsertion';
34
- import indicatorRegion from './indicatorRegion';
35
- import editorLanguage from './editorLanguage';
36
- import normalizeLocale from './normalizeLocale';
37
- import { sanitizePlugins } from './sanitizePlugins';
38
- import RCEGlobals from './RCEGlobals';
39
- import defaultTinymceConfig from '../defaultTinymceConfig';
40
- import { FS_CHANGEEVENT, FS_ELEMENT, FS_ENABLED, FS_EXIT, FS_REQUEST, instuiPopupMountNode } from '../util/fullscreenHelpers';
41
- import indicate from '../common/indicate';
42
- import bridge from '../bridge';
43
- import CanvasContentTray from './plugins/shared/CanvasContentTray';
44
- import StatusBar, { PRETTY_HTML_EDITOR_VIEW, RAW_HTML_EDITOR_VIEW, WYSIWYG_VIEW } from './StatusBar';
45
- import { VIEW_CHANGE } from './customEvents';
46
- import ShowOnFocusButton from './ShowOnFocusButton';
47
- import KeyboardShortcutModal from './KeyboardShortcutModal';
48
- import AlertMessageArea from './AlertMessageArea';
49
- import alertHandler from './alertHandler';
50
- import { isFileLink, isImageEmbed } from './plugins/shared/ContentSelection';
51
- import { countShouldIgnore } from './plugins/instructure_wordcount/utils/countContent';
52
- import launchWordcountModal from './plugins/instructure_wordcount/clickCallback';
53
- import { determineOSDependentKey } from './userOS';
54
- const skinCSSBinding = {
55
- componentId: 'djgIv',
56
- template: function (theme) {
57
- return `
58
-
59
-
60
- .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}
61
-
62
- .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}
63
-
64
- [dir="ltr"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}
65
-
66
- [dir="rtl"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}
67
-
68
- .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}
69
-
70
- [dir="ltr"] .tinymce__oxide--tox :not(svg):not(rect){float:none}
71
-
72
- [dir="rtl"] .tinymce__oxide--tox :not(svg):not(rect){float:none}
73
-
74
- .tinymce__oxide--tox:not([dir=rtl]){direction:ltr;text-align:left}
75
-
76
- [dir="ltr"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}
77
-
78
- [dir="rtl"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}
79
-
80
- .tinymce__oxide--tox[dir=rtl]{direction:rtl;text-align:right}
81
-
82
- [dir="ltr"] .tinymce__oxide--tox[dir=rtl]{text-align:right}
83
-
84
- [dir="rtl"] .tinymce__oxide--tox[dir=rtl]{text-align:right}
85
-
86
- .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}
87
-
88
- .tinymce__oxide--tox-tinymce-inline{border:none;box-shadow:none}
89
-
90
- .tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}
91
-
92
- .tinymce__oxide--tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;z-index:1300}
93
-
94
- .tinymce__oxide--tox-tinymce :focus,.tinymce__oxide--tox-tinymce-aux :focus{outline:0}
95
-
96
- button::-moz-focus-inner{border:0}
97
-
98
- .tinymce__oxide--tox .tinymce__oxide--accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}
99
-
100
- .tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}
101
-
102
- .tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div{padding-bottom:4px}
103
-
104
- .tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}
105
-
106
- .tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}
107
-
108
- .tinymce__oxide--tox .tinymce__oxide--accessibility-issue__repair{margin-top:16px}
109
-
110
- .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}
111
-
112
- .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)}
113
-
114
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-form__group h2{color:#207ab7}
115
-
116
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-icon svg{fill:#207ab7}
117
-
118
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info a .tinymce__oxide--tox-icon{color:#207ab7}
119
-
120
- .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}
121
-
122
- .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)}
123
-
124
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-form__group h2{color:#cc8500}
125
-
126
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-icon svg{fill:#cc8500}
127
-
128
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn a .tinymce__oxide--tox-icon{color:#cc8500}
129
-
130
- .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}
131
-
132
- .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)}
133
-
134
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-form__group h2{color:#c00}
135
-
136
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-icon svg{fill:#c00}
137
-
138
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error a .tinymce__oxide--tox-icon{color:#c00}
139
-
140
- .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}
141
-
142
- .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)}
143
-
144
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-form__group h2{color:#78ab46}
145
-
146
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-icon svg{fill:#78ab46}
147
-
148
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success a .tinymce__oxide--tox-icon{color:#78ab46}
149
-
150
- .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}
151
-
152
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-left:4px}
153
-
154
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-left:auto}
155
-
156
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 4px 4px 8px}
157
-
158
- .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}
159
-
160
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-right:4px}
161
-
162
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-right:auto}
163
-
164
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 8px 4px 4px}
165
-
166
- .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}
167
-
168
- .tinymce__oxide--tox .tinymce__oxide--tox-anchorbar{display:flex;flex:0 0 auto}
169
-
170
- .tinymce__oxide--tox .tinymce__oxide--tox-bar{display:flex;flex:0 0 auto}
171
-
172
- .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}
173
-
174
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}
175
-
176
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}
177
-
178
- .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}
179
-
180
- .tinymce__oxide--tox .tinymce__oxide--tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}
181
-
182
- .tinymce__oxide--tox .tinymce__oxide--tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}
183
-
184
- .tinymce__oxide--tox .tinymce__oxide--tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}
185
-
186
- .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}
187
-
188
- .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)}
189
-
190
- .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}
191
-
192
- .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}
193
-
194
- .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}
195
-
196
- .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}
197
-
198
- .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}
199
-
200
- .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}
201
-
202
- .tinymce__oxide--tox .tinymce__oxide--tox-button-link--sm{font-size:14px}
203
-
204
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}
205
-
206
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}
207
-
208
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}
209
-
210
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}
211
-
212
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}
213
-
214
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked .tinymce__oxide--tox-icon svg{fill:currentColor}
215
-
216
- .tinymce__oxide--tox .tinymce__oxide--tox-button--naked.tinymce__oxide--tox-button--icon:hover:not(:disabled){color:#222f3e}
217
-
218
- .tinymce__oxide--tox .tinymce__oxide--tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}
219
-
220
- .tinymce__oxide--tox .tinymce__oxide--tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}
221
-
222
- .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}
223
-
224
- .tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}
225
-
226
- .tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}
227
-
228
- .tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:none;fill:#207ab7}
229
-
230
- .tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}
231
-
232
- .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)}
233
-
234
- .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)}
235
-
236
- .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)}
237
-
238
- .tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}
239
-
240
- .tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:block}
241
-
242
- .tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}
243
-
244
- .tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:block}
245
-
246
- .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)}
247
-
248
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__label{margin-left:4px}
249
-
250
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__input{left:-10000px}
251
-
252
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-left:4px}
253
-
254
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__label{margin-right:4px}
255
-
256
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__input{right:-10000px}
257
-
258
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-right:4px}
259
-
260
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__group{display:flex;padding:0}
261
-
262
- .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}
263
-
264
- .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}
265
-
266
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group:first-child{border-top-width:0}
267
-
268
- .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}
269
-
270
- .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}
271
-
272
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item{padding:4px 8px}
273
-
274
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}
275
-
276
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}
277
-
278
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--enabled{background-color:#fff;color:#222f3e}
279
-
280
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}
281
-
282
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}
283
-
284
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}
285
-
286
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}
287
-
288
- .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}
289
-
290
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}
291
-
292
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}
293
-
294
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}
295
-
296
- .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}
297
-
298
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark svg,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon svg{fill:currentColor}
299
-
300
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar-lg .tinymce__oxide--tox-collection__item-icon{height:48px;width:48px}
301
-
302
- .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}
303
-
304
- .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}
305
-
306
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret{align-items:center;display:flex;min-height:24px}
307
-
308
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}
309
-
310
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret svg{fill:#222f3e}
311
-
312
- .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}
313
-
314
- .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}
315
-
316
- .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}
317
-
318
- .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}
319
-
320
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}
321
-
322
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-label{white-space:nowrap}
323
-
324
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-left:4px}
325
-
326
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container{display:flex}
327
-
328
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}
329
-
330
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-left{margin-right:auto}
331
-
332
- .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}
333
-
334
- .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}
335
-
336
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-middle{align-items:center}
337
-
338
- .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}
339
-
340
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}
341
-
342
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-left{align-items:flex-start}
343
-
344
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-right{align-items:flex-end}
345
-
346
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-top{align-self:flex-start}
347
-
348
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-middle{align-self:center}
349
-
350
- .tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-bottom{align-self:flex-end}
351
-
352
- .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}
353
-
354
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-left:8px}
355
-
356
- .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}
357
-
358
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{margin-left:16px;text-align:right}
359
-
360
- [dir="ltr"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}
361
-
362
- [dir="rtl"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}
363
-
364
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-left:16px}
365
-
366
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}
367
-
368
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-right:8px}
369
-
370
- .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}
371
-
372
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-icon-rtl .tinymce__oxide--tox-collection__item-icon svg{transform:rotateY(180deg)}
373
-
374
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{margin-right:16px;text-align:left}
375
-
376
- [dir="ltr"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}
377
-
378
- [dir="rtl"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}
379
-
380
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}
381
-
382
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-right:4px}
383
-
384
- .tinymce__oxide--tox .tinymce__oxide--tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}
385
-
386
- .tinymce__oxide--tox .tinymce__oxide--tox-sv-palette{box-sizing:border-box;display:flex;height:100%}
387
-
388
- .tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{height:100%}
389
-
390
- .tinymce__oxide--tox .tinymce__oxide--tox-sv-palette,.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{width:225px}
391
-
392
- .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}
393
-
394
- .tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}
395
-
396
- .tinymce__oxide--tox .tinymce__oxide--tox-hue-slider{box-sizing:border-box;height:100%;width:25px}
397
-
398
- .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%}
399
-
400
- .tinymce__oxide--tox .tinymce__oxide--tox-hue-slider,.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{width:20px}
401
-
402
- .tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}
403
-
404
- .tinymce__oxide--tox .tinymce__oxide--tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}
405
-
406
- .tinymce__oxide--tox .tinymce__oxide--tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}
407
-
408
- .tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input{width:6em}
409
-
410
- .tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input.tinymce__oxide--tox-invalid{border:1px solid red!important}
411
-
412
- .tinymce__oxide--tox .tinymce__oxide--tox-rgb-form .tinymce__oxide--tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}
413
-
414
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-sv-palette{margin-right:15px}
415
-
416
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider{margin-right:15px}
417
-
418
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider-thumb{margin-left:-1px}
419
-
420
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-rgb-form label{margin-right:.5em}
421
-
422
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-sv-palette{margin-left:15px}
423
-
424
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider{margin-left:15px}
425
-
426
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider-thumb{margin-right:-1px}
427
-
428
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-rgb-form label{margin-left:.5em}
429
-
430
- .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}
431
-
432
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-swatches-menu{border:0;margin:-4px 0}
433
-
434
- .tinymce__oxide--tox .tinymce__oxide--tox-swatches__row{display:flex}
435
-
436
- .tinymce__oxide--tox .tinymce__oxide--tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}
437
-
438
- .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)}
439
-
440
- .tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove{align-items:center;display:flex;justify-content:center}
441
-
442
- .tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove svg path{stroke:#e74c3c}
443
-
444
- .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}
445
-
446
- .tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn svg{height:24px;width:24px}
447
-
448
- .tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn:hover{background:#dee0e2}
449
-
450
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-swatches__picker-btn{margin-left:auto}
451
-
452
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-swatches__picker-btn{margin-right:auto}
453
-
454
- .tinymce__oxide--tox .tinymce__oxide--tox-comment-thread{background:#fff;position:relative}
455
-
456
- .tinymce__oxide--tox .tinymce__oxide--tox-comment-thread>:not(:first-child){margin-top:8px}
457
-
458
- .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}
459
-
460
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}
461
-
462
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}
463
-
464
- .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}
465
-
466
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__body textarea{resize:none;white-space:normal;width:100%}
467
-
468
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__expander{padding-top:8px}
469
-
470
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}
471
-
472
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__body p{margin:0}
473
-
474
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{padding-top:16px;text-align:center}
475
-
476
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}
477
-
478
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}
479
-
480
- .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}
481
-
482
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}
483
-
484
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__reply>:first-child{margin-bottom:8px;width:100%}
485
-
486
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}
487
-
488
- .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%}
489
-
490
- .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}
491
-
492
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}
493
-
494
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}
495
-
496
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}
497
-
498
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text>div{padding-bottom:16px}
499
-
500
- .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}
501
-
502
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}
503
-
504
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}
505
-
506
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}
507
-
508
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}
509
-
510
- .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}
511
-
512
- .tinymce__oxide--tox .tinymce__oxide--tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}
513
-
514
- .tinymce__oxide--tox .tinymce__oxide--tox-conversations{margin:8px}
515
-
516
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit{margin-left:8px}
517
-
518
- .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}
519
-
520
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit{margin-right:8px}
521
-
522
- .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}
523
-
524
- .tinymce__oxide--tox .tinymce__oxide--tox-user{align-items:center;display:flex}
525
-
526
- .tinymce__oxide--tox .tinymce__oxide--tox-user__avatar svg{fill:rgba(34,47,62,.7)}
527
-
528
- .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}
529
-
530
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar svg{margin-right:8px}
531
-
532
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-left:8px}
533
-
534
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar svg{margin-left:8px}
535
-
536
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-right:8px}
537
-
538
- .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}
539
-
540
- .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}
541
-
542
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop--opaque{background-color:#fff}
543
-
544
- .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}
545
-
546
- @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)}}
547
-
548
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog-inline{z-index:1100}
549
-
550
- .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}
551
-
552
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__header .tinymce__oxide--tox-button{z-index:1}
553
-
554
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}
555
-
556
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle:active{cursor:grabbing}
557
-
558
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__dismiss{margin-left:auto}
559
-
560
- .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}
561
-
562
- .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}
563
-
564
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}
565
-
566
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}
567
-
568
- @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}}
569
-
570
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}
571
-
572
- @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}}
573
-
574
- .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}
575
-
576
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}
577
-
578
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}
579
-
580
- .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}
581
-
582
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}
583
-
584
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:first-child{margin-top:0}
585
-
586
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:last-child{margin-bottom:0}
587
-
588
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}
589
-
590
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}
591
-
592
- .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}
593
-
594
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}
595
-
596
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content svg{fill:#222f3e}
597
-
598
- .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}
599
-
600
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-right:0;margin-left:0;padding-left:2.5rem}
601
-
602
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-left:0;margin-right:0;padding-right:2.5rem}
603
-
604
- .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}
605
-
606
- .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}
607
-
608
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p{margin-bottom:16px}
609
-
610
- .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}
611
-
612
- .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}
613
-
614
- .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}
615
-
616
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-lg{height:650px;max-width:1200px}
617
-
618
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md{max-width:800px}
619
-
620
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md .tinymce__oxide--tox-dialog__body-content{overflow:auto}
621
-
622
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}
623
-
624
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}
625
-
626
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}
627
-
628
- .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}
629
-
630
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-end,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-start{display:flex}
631
-
632
- .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}
633
-
634
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__table{border-collapse:collapse;width:100%}
635
-
636
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__table thead th{font-weight:700;padding-bottom:8px}
637
-
638
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr{border-bottom:1px solid #ccc}
639
-
640
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr:last-child{border-bottom:none}
641
-
642
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__table td{padding-bottom:8px;padding-top:8px}
643
-
644
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__popups{position:absolute;width:100%;z-index:1100}
645
-
646
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}
647
-
648
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}
649
-
650
- .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%}
651
-
652
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadeout{opacity:0;visibility:hidden}
653
-
654
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadein{opacity:1;visibility:visible}
655
-
656
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}
657
-
658
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition.tinymce__oxide--tox-dialog-dock-fadein{transition-delay:0s}
659
-
660
- .tinymce__oxide--tox.tinymce__oxide--tox-platform-ie .tinymce__oxide--tox-dialog-wrap{position:-ms-device-fixed}
661
-
662
- @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}}
663
-
664
- @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}}
665
-
666
- .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}
667
-
668
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}
669
-
670
- [dir="ltr"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}
671
-
672
- [dir="rtl"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}
673
-
674
- @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}}
675
-
676
- @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}}
677
-
678
- .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}
679
-
680
- body.tinymce__oxide--tox-dialog__disable-scroll{overflow:hidden}
681
-
682
- .tinymce__oxide--tox .tinymce__oxide--tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}
683
-
684
- .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}
685
-
686
- .tinymce__oxide--tox .tinymce__oxide--tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}
687
-
688
- .tinymce__oxide--tox .tinymce__oxide--tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}
689
-
690
- .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%}
691
-
692
- .tinymce__oxide--tox.tinymce__oxide--tox-inline-edit-area{border:1px dotted #ccc}
693
-
694
- .tinymce__oxide--tox .tinymce__oxide--tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}
695
-
696
- .tinymce__oxide--tox .tinymce__oxide--tox-editor-header{z-index:1}
697
-
698
- .tinymce__oxide--tox:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header{box-shadow:none;transition:box-shadow .5s}
699
-
700
- .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}
701
-
702
- .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)}
703
-
704
- .tinymce__oxide--tox-editor-dock-fadeout{opacity:0;visibility:hidden}
705
-
706
- .tinymce__oxide--tox-editor-dock-fadein{opacity:1;visibility:visible}
707
-
708
- .tinymce__oxide--tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}
709
-
710
- .tinymce__oxide--tox-editor-dock-transition.tinymce__oxide--tox-editor-dock-fadein{transition-delay:0s}
711
-
712
- .tinymce__oxide--tox .tinymce__oxide--tox-control-wrap{flex:1;position:relative}
713
-
714
- .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}
715
-
716
- .tinymce__oxide--tox .tinymce__oxide--tox-control-wrap svg{display:block}
717
-
718
- .tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}
719
-
720
- .tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-invalid svg{fill:#c00}
721
-
722
- .tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-unknown svg{fill:orange}
723
-
724
- .tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-valid svg{fill:green}
725
-
726
- .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}
727
-
728
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap__status-icon-wrap{right:4px}
729
-
730
- .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}
731
-
732
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap__status-icon-wrap{left:4px}
733
-
734
- .tinymce__oxide--tox .tinymce__oxide--tox-autocompleter{max-width:25em}
735
-
736
- .tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-menu{max-width:25em}
737
-
738
- .tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-autocompleter-highlight{font-weight:700}
739
-
740
- .tinymce__oxide--tox .tinymce__oxide--tox-color-input{display:flex;position:relative;z-index:1}
741
-
742
- .tinymce__oxide--tox .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{z-index:-1}
743
-
744
- .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}
745
-
746
- .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}
747
-
748
- .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}
749
-
750
- .tinymce__oxide--tox .tinymce__oxide--tox-color-input span[aria-disabled=true]{cursor:not-allowed}
751
-
752
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-left:36px}
753
-
754
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input span{left:6px}
755
-
756
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-right:36px}
757
-
758
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input span{right:6px}
759
-
760
- .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}
761
-
762
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{padding:0 8px}
763
-
764
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-label{padding:0 0 0 8px}
765
-
766
- .tinymce__oxide--tox .tinymce__oxide--tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}
767
-
768
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group{box-sizing:border-box;margin-bottom:4px}
769
-
770
- .tinymce__oxide--tox .tinymce__oxide--tox-form-group--maximize{flex:1}
771
-
772
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group--error{color:#c00}
773
-
774
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group--collection{display:flex}
775
-
776
- .tinymce__oxide--tox .tinymce__oxide--tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}
777
-
778
- .tinymce__oxide--tox .tinymce__oxide--tox-form__grid--2col>.tinymce__oxide--tox-form__group{width:calc(50% - (8px / 2))}
779
-
780
- .tinymce__oxide--tox .tinymce__oxide--tox-form__grid--3col>.tinymce__oxide--tox-form__group{width:calc(100% / 3 - (8px / 2))}
781
-
782
- .tinymce__oxide--tox .tinymce__oxide--tox-form__grid--4col>.tinymce__oxide--tox-form__group{width:calc(25% - (8px / 2))}
783
-
784
- .tinymce__oxide--tox .tinymce__oxide--tox-form__controls-h-stack{align-items:center;display:flex}
785
-
786
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group--inline{align-items:center;display:flex}
787
-
788
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}
789
-
790
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-textarea{flex:1;-ms-flex-preferred-size:auto}
791
-
792
- .tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}
793
-
794
- .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%}
795
-
796
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-left:4px}
797
-
798
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-right:4px}
799
-
800
- .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}
801
-
802
- .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%}
803
-
804
- .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}
805
-
806
- .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}
807
-
808
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}
809
-
810
- .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}
811
-
812
- .tinymce__oxide--tox .tinymce__oxide--tox-naked-btn svg{display:block;fill:#222f3e}
813
-
814
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar-textfield+*{margin-left:4px}
815
-
816
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar-textfield+*{margin-right:4px}
817
-
818
- .tinymce__oxide--tox .tinymce__oxide--tox-listboxfield{cursor:pointer;position:relative}
819
-
820
- .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}
821
-
822
- .tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}
823
-
824
- .tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}
825
-
826
- .tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron svg{fill:#222f3e}
827
-
828
- .tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select{align-items:center;display:flex}
829
-
830
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-listboxfield svg{right:8px}
831
-
832
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-listboxfield svg{left:8px}
833
-
834
- .tinymce__oxide--tox .tinymce__oxide--tox-selectfield{cursor:pointer;position:relative}
835
-
836
- .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%}
837
-
838
- .tinymce__oxide--tox .tinymce__oxide--tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}
839
-
840
- .tinymce__oxide--tox .tinymce__oxide--tox-selectfield select::-ms-expand{display:none}
841
-
842
- .tinymce__oxide--tox .tinymce__oxide--tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}
843
-
844
- .tinymce__oxide--tox .tinymce__oxide--tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}
845
-
846
- .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}
847
-
848
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield svg{right:8px}
849
-
850
- .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}
851
-
852
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield svg{left:8px}
853
-
854
- .tinymce__oxide--tox .tinymce__oxide--tox-textarea{appearance:textarea;white-space:pre-wrap}
855
-
856
- .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%}
857
-
858
- .tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox-statusbar__resize-handle{display:none}
859
-
860
- .tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen{background-color:transparent;z-index:1200}
861
-
862
- .tinymce__oxide--tox-shadowhost.tinymce__oxide--tox-fullscreen{z-index:1200}
863
-
864
- .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}
865
-
866
- .tinymce__oxide--tox .tinymce__oxide--tox-help__more-link{list-style:none;margin-top:1em}
867
-
868
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools{width:100%}
869
-
870
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}
871
-
872
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}
873
-
874
- .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}
875
-
876
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}
877
-
878
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-spacer{flex:1;-ms-flex-preferred-size:auto}
879
-
880
- .tinymce__oxide--tox .tinymce__oxide--tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}
881
-
882
- .tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}
883
-
884
- .tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-move{border:0;cursor:move;position:absolute}
885
-
886
- .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}
887
-
888
- .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}
889
-
890
- .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}
891
-
892
- .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}
893
-
894
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-left:8px}
895
-
896
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-left:32px}
897
-
898
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-left:32px}
899
-
900
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-right:8px}
901
-
902
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-right:32px}
903
-
904
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-right:32px}
905
-
906
- .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}
907
-
908
- .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}
909
-
910
- .tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-insert-table-picker{margin:-4px 0}
911
-
912
- .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)}
913
-
914
- .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%}
915
-
916
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}
917
-
918
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}
919
-
920
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n){border-right:0}
921
-
922
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n+1){border-right:0}
923
-
924
- .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}
925
-
926
- .tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--list{padding:0}
927
-
928
- .tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--toolbar{padding:4px}
929
-
930
- .tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--grid{padding:4px}
931
-
932
- .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}
933
-
934
- .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}
935
-
936
- .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}
937
-
938
- .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}
939
-
940
- .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}
941
-
942
- .tinymce__oxide--tox .tinymce__oxide--tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}
943
-
944
- .tinymce__oxide--tox .tinymce__oxide--tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}
945
-
946
- .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}
947
-
948
- .tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}
949
-
950
- .tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled] .tinymce__oxide--tox-mbtn__select-label{cursor:not-allowed}
951
-
952
- .tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}
953
-
954
- .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}
955
-
956
- .tinymce__oxide--tox .tinymce__oxide--tox-notification p{font-size:14px;font-weight:400}
957
-
958
- .tinymce__oxide--tox .tinymce__oxide--tox-notification a{text-decoration:underline}
959
-
960
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--in{opacity:1}
961
-
962
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}
963
-
964
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--success p{color:#222f3e}
965
-
966
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--success a{color:#547831}
967
-
968
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--success svg{fill:#222f3e}
969
-
970
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}
971
-
972
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--error p{color:#222f3e}
973
-
974
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--error a{color:#c00}
975
-
976
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--error svg{fill:#222f3e}
977
-
978
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--warn,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}
979
-
980
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--warn p,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning p{color:#222f3e}
981
-
982
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--warn a,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning a{color:#222f3e}
983
-
984
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--warn svg,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning svg{fill:#222f3e}
985
-
986
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}
987
-
988
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--info p{color:#222f3e}
989
-
990
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--info a{color:#222f3e}
991
-
992
- .tinymce__oxide--tox .tinymce__oxide--tox-notification--info svg{fill:#222f3e}
993
-
994
- .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}
995
-
996
- [dir="ltr"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}
997
-
998
- [dir="rtl"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}
999
-
1000
- .tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*{margin:0}
1001
-
1002
- .tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*+*{margin-top:1rem}
1003
-
1004
- .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}
1005
-
1006
- .tinymce__oxide--tox .tinymce__oxide--tox-notification__icon svg{display:block}
1007
-
1008
- .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}
1009
-
1010
- .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}
1011
-
1012
- .tinymce__oxide--tox .tinymce__oxide--tox-pop{display:inline-block;position:relative}
1013
-
1014
- .tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing{transition:width .1s ease}
1015
-
1016
- .tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing .tinymce__oxide--tox-toolbar{flex-wrap:nowrap}
1017
-
1018
- .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}
1019
-
1020
- .tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog>:not(.tinymce__oxide--tox-toolbar){margin:4px 4px 4px 8px}
1021
-
1022
- .tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog .tinymce__oxide--tox-toolbar{background-color:transparent;margin-bottom:-1px}
1023
-
1024
- .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}
1025
-
1026
- .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%}
1027
-
1028
- .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}
1029
-
1030
- .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}
1031
-
1032
- .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%)}
1033
-
1034
- .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}
1035
-
1036
- .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}
1037
-
1038
- .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%)}
1039
-
1040
- .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}
1041
-
1042
- .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}
1043
-
1044
- .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%)}
1045
-
1046
- .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}
1047
-
1048
- .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}
1049
-
1050
- .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}
1051
-
1052
- .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)}
1053
-
1054
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}
1055
-
1056
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}
1057
-
1058
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar__slider{display:flex;overflow:hidden}
1059
-
1060
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane-container{display:flex}
1061
-
1062
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane{display:flex}
1063
-
1064
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-closed{opacity:0}
1065
-
1066
- .tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-open{opacity:1}
1067
-
1068
- .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}
1069
-
1070
- .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}
1071
-
1072
- .tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-selector{height:12px;width:12px}
1073
-
1074
- .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}
1075
-
1076
- .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%}
1077
-
1078
- .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}
1079
-
1080
- .tinymce__oxide--tox .tinymce__oxide--tox-source-code{overflow:auto}
1081
-
1082
- .tinymce__oxide--tox .tinymce__oxide--tox-spinner{display:flex}
1083
-
1084
- .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}
1085
-
1086
- .tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(1){animation-delay:-.32s}
1087
-
1088
- .tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(2){animation-delay:-.16s}
1089
-
1090
- @keyframes tinymce__oxide--tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}
1091
-
1092
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-spinner>div:not(:first-child){margin-left:4px}
1093
-
1094
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-spinner>div:not(:first-child){margin-right:4px}
1095
-
1096
- .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}
1097
-
1098
- .tinymce__oxide--tox .tinymce__oxide--tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}
1099
-
1100
- .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}
1101
-
1102
- .tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path>*{display:inline;white-space:nowrap}
1103
-
1104
- .tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}
1105
-
1106
- .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}
1107
-
1108
- .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}
1109
-
1110
- .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}
1111
-
1112
- .tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}
1113
-
1114
- .tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}
1115
-
1116
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__path>*{margin-right:4px}
1117
-
1118
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__branding{margin-left:1ch}
1119
-
1120
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar{flex-direction:row-reverse}
1121
-
1122
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar__path>*{margin-left:4px}
1123
-
1124
- .tinymce__oxide--tox .tinymce__oxide--tox-throbber{z-index:1299}
1125
-
1126
- .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}
1127
-
1128
- .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}
1129
-
1130
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn svg{display:block;fill:#222f3e}
1131
-
1132
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn.tinymce__oxide--tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}
1133
-
1134
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}
1135
-
1136
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}
1137
-
1138
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover svg{fill:#222f3e}
1139
-
1140
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}
1141
-
1142
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active svg{fill:#222f3e}
1143
-
1144
- .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}
1145
-
1146
- .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)}
1147
-
1148
- .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}
1149
-
1150
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover>*,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled>*{transform:none}
1151
-
1152
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover svg{fill:#222f3e}
1153
-
1154
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled){color:#222f3e}
1155
-
1156
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled) svg{fill:#222f3e}
1157
-
1158
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active>*{transform:none}
1159
-
1160
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--md{height:51px;width:51px}
1161
-
1162
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--lg{flex-direction:column;height:68px;width:68px}
1163
-
1164
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--return{align-self:stretch;height:unset;width:16px}
1165
-
1166
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--labeled{padding:0 4px;width:unset}
1167
-
1168
- .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}
1169
-
1170
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}
1171
-
1172
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}
1173
-
1174
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}
1175
-
1176
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}
1177
-
1178
- .tinymce__oxide--tox .tinymce__oxide--tox-tbtn--bespoke .tinymce__oxide--tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}
1179
-
1180
- .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}
1181
-
1182
- .tinymce__oxide--tox .tinymce__oxide--tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}
1183
-
1184
- .tinymce__oxide--tox .tinymce__oxide--tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}
1185
-
1186
- .tinymce__oxide--tox .tinymce__oxide--tox-split-button>*{border-radius:0}
1187
-
1188
- .tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron{width:16px}
1189
-
1190
- .tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}
1191
-
1192
- .tinymce__oxide--tox .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn{margin:0}
1193
-
1194
- .tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn:first-child{width:30px}
1195
-
1196
- .tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button__chevron{width:20px}
1197
-
1198
- .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)}
1199
-
1200
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar-overlord{background-color:#fff}
1201
-
1202
- .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}
1203
-
1204
- .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}
1205
-
1206
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}
1207
-
1208
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}
1209
-
1210
- .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}
1211
-
1212
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}
1213
-
1214
- .tinymce__oxide--tox .tinymce__oxide--tox-pop .tinymce__oxide--tox-toolbar{border-width:0}
1215
-
1216
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar--no-divider{background-image:none}
1217
-
1218
- .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}
1219
-
1220
- .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)}
1221
-
1222
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}
1223
-
1224
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}
1225
-
1226
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group--pull-right{margin-left:auto}
1227
-
1228
- .tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling .tinymce__oxide--tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}
1229
-
1230
- .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}
1231
-
1232
- .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}
1233
-
1234
- .tinymce__oxide--tox .tinymce__oxide--tox-tooltip{display:inline-block;padding:8px;position:relative}
1235
-
1236
- .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}
1237
-
1238
- .tinymce__oxide--tox .tinymce__oxide--tox-tooltip__arrow{position:absolute}
1239
-
1240
- .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%)}
1241
-
1242
- .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%)}
1243
-
1244
- .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%)}
1245
-
1246
- .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%)}
1247
-
1248
- .tinymce__oxide--tox .tinymce__oxide--tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}
1249
-
1250
- .tinymce__oxide--tox .tinymce__oxide--tox-well>:first-child{margin-top:0}
1251
-
1252
- .tinymce__oxide--tox .tinymce__oxide--tox-well>:last-child{margin-bottom:0}
1253
-
1254
- .tinymce__oxide--tox .tinymce__oxide--tox-well>:only-child{margin:0}
1255
-
1256
- .tinymce__oxide--tox .tinymce__oxide--tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}
1257
-
1258
- .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}
1259
-
1260
- .tinymce__oxide--tox .tinymce__oxide--tox-tab{cursor:pointer}
1261
-
1262
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}
1263
-
1264
- .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}
1265
-
1266
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools-edit-panel{height:60px}
1267
-
1268
- .tinymce__oxide--tox .tinymce__oxide--tox-image-tools__sidebar{height:60px}
1269
- `;
1270
- },
1271
- 'tox': 'tinymce__oxide--tox',
1272
- 'tox-tinymce': 'tinymce__oxide--tox-tinymce',
1273
- 'tox-tinymce-inline': 'tinymce__oxide--tox-tinymce-inline',
1274
- 'tox-editor-header': 'tinymce__oxide--tox-editor-header',
1275
- 'tox-tinymce-aux': 'tinymce__oxide--tox-tinymce-aux',
1276
- 'accessibility-issue__header': 'tinymce__oxide--accessibility-issue__header',
1277
- 'accessibility-issue__description': 'tinymce__oxide--accessibility-issue__description',
1278
- 'accessibility-issue__repair': 'tinymce__oxide--accessibility-issue__repair',
1279
- 'tox-dialog__body-content': 'tinymce__oxide--tox-dialog__body-content',
1280
- 'accessibility-issue--info': 'tinymce__oxide--accessibility-issue--info',
1281
- 'tox-form__group': 'tinymce__oxide--tox-form__group',
1282
- 'tox-icon': 'tinymce__oxide--tox-icon',
1283
- 'accessibility-issue--warn': 'tinymce__oxide--accessibility-issue--warn',
1284
- 'accessibility-issue--error': 'tinymce__oxide--accessibility-issue--error',
1285
- 'accessibility-issue--success': 'tinymce__oxide--accessibility-issue--success',
1286
- 'tox-button': 'tinymce__oxide--tox-button',
1287
- 'tox-anchorbar': 'tinymce__oxide--tox-anchorbar',
1288
- 'tox-bar': 'tinymce__oxide--tox-bar',
1289
- 'tox-button--secondary': 'tinymce__oxide--tox-button--secondary',
1290
- 'tox-button--icon': 'tinymce__oxide--tox-button--icon',
1291
- 'tox-button-link': 'tinymce__oxide--tox-button-link',
1292
- 'tox-button-link--sm': 'tinymce__oxide--tox-button-link--sm',
1293
- 'tox-button--naked': 'tinymce__oxide--tox-button--naked',
1294
- 'tox-checkbox': 'tinymce__oxide--tox-checkbox',
1295
- 'tox-checkbox__input': 'tinymce__oxide--tox-checkbox__input',
1296
- 'tox-checkbox__icons': 'tinymce__oxide--tox-checkbox__icons',
1297
- 'tox-checkbox-icon__unchecked': 'tinymce__oxide--tox-checkbox-icon__unchecked',
1298
- 'tox-checkbox-icon__indeterminate': 'tinymce__oxide--tox-checkbox-icon__indeterminate',
1299
- 'tox-checkbox-icon__checked': 'tinymce__oxide--tox-checkbox-icon__checked',
1300
- 'tox-checkbox--disabled': 'tinymce__oxide--tox-checkbox--disabled',
1301
- 'tox-checkbox__label': 'tinymce__oxide--tox-checkbox__label',
1302
- 'tox-collection--toolbar': 'tinymce__oxide--tox-collection--toolbar',
1303
- 'tox-collection__group': 'tinymce__oxide--tox-collection__group',
1304
- 'tox-collection--grid': 'tinymce__oxide--tox-collection--grid',
1305
- 'tox-collection--list': 'tinymce__oxide--tox-collection--list',
1306
- 'tox-collection__group-heading': 'tinymce__oxide--tox-collection__group-heading',
1307
- 'tox-collection__item': 'tinymce__oxide--tox-collection__item',
1308
- 'tox-collection__item--enabled': 'tinymce__oxide--tox-collection__item--enabled',
1309
- 'tox-collection__item--active': 'tinymce__oxide--tox-collection__item--active',
1310
- 'tox-collection__item--state-disabled': 'tinymce__oxide--tox-collection__item--state-disabled',
1311
- 'tox-collection__item-checkmark': 'tinymce__oxide--tox-collection__item-checkmark',
1312
- 'tox-collection__item-icon': 'tinymce__oxide--tox-collection__item-icon',
1313
- 'tox-collection--toolbar-lg': 'tinymce__oxide--tox-collection--toolbar-lg',
1314
- 'tox-collection__item-label': 'tinymce__oxide--tox-collection__item-label',
1315
- 'tox-collection__item-accessory': 'tinymce__oxide--tox-collection__item-accessory',
1316
- 'tox-collection__item-caret': 'tinymce__oxide--tox-collection__item-caret',
1317
- 'tox-collection--horizontal': 'tinymce__oxide--tox-collection--horizontal',
1318
- 'tox-collection__item-container': 'tinymce__oxide--tox-collection__item-container',
1319
- 'tox-collection__item-container--row': 'tinymce__oxide--tox-collection__item-container--row',
1320
- 'tox-collection__item-container--align-left': 'tinymce__oxide--tox-collection__item-container--align-left',
1321
- 'tox-collection__item-container--align-right': 'tinymce__oxide--tox-collection__item-container--align-right',
1322
- 'tox-collection__item-container--valign-top': 'tinymce__oxide--tox-collection__item-container--valign-top',
1323
- 'tox-collection__item-container--valign-middle': 'tinymce__oxide--tox-collection__item-container--valign-middle',
1324
- 'tox-collection__item-container--valign-bottom': 'tinymce__oxide--tox-collection__item-container--valign-bottom',
1325
- 'tox-collection__item-container--column': 'tinymce__oxide--tox-collection__item-container--column',
1326
- 'tox-collection': 'tinymce__oxide--tox-collection',
1327
- 'tox-collection__item-icon-rtl': 'tinymce__oxide--tox-collection__item-icon-rtl',
1328
- 'tox-color-picker-container': 'tinymce__oxide--tox-color-picker-container',
1329
- 'tox-sv-palette': 'tinymce__oxide--tox-sv-palette',
1330
- 'tox-sv-palette-spectrum': 'tinymce__oxide--tox-sv-palette-spectrum',
1331
- 'tox-sv-palette-thumb': 'tinymce__oxide--tox-sv-palette-thumb',
1332
- 'tox-sv-palette-inner-thumb': 'tinymce__oxide--tox-sv-palette-inner-thumb',
1333
- 'tox-hue-slider': 'tinymce__oxide--tox-hue-slider',
1334
- 'tox-hue-slider-spectrum': 'tinymce__oxide--tox-hue-slider-spectrum',
1335
- 'tox-hue-slider-thumb': 'tinymce__oxide--tox-hue-slider-thumb',
1336
- 'tox-rgb-form': 'tinymce__oxide--tox-rgb-form',
1337
- 'tox-invalid': 'tinymce__oxide--tox-invalid',
1338
- 'tox-rgba-preview': 'tinymce__oxide--tox-rgba-preview',
1339
- 'tox-toolbar': 'tinymce__oxide--tox-toolbar',
1340
- 'tox-swatches': 'tinymce__oxide--tox-swatches',
1341
- 'tox-toolbar__overflow': 'tinymce__oxide--tox-toolbar__overflow',
1342
- 'tox-toolbar__primary': 'tinymce__oxide--tox-toolbar__primary',
1343
- 'tox-swatches-menu': 'tinymce__oxide--tox-swatches-menu',
1344
- 'tox-swatches__row': 'tinymce__oxide--tox-swatches__row',
1345
- 'tox-swatch': 'tinymce__oxide--tox-swatch',
1346
- 'tox-swatch--remove': 'tinymce__oxide--tox-swatch--remove',
1347
- 'tox-swatches__picker-btn': 'tinymce__oxide--tox-swatches__picker-btn',
1348
- 'tox-comment-thread': 'tinymce__oxide--tox-comment-thread',
1349
- 'tox-comment': 'tinymce__oxide--tox-comment',
1350
- 'tox-comment__header': 'tinymce__oxide--tox-comment__header',
1351
- 'tox-comment__date': 'tinymce__oxide--tox-comment__date',
1352
- 'tox-comment__body': 'tinymce__oxide--tox-comment__body',
1353
- 'tox-comment__expander': 'tinymce__oxide--tox-comment__expander',
1354
- 'tox-comment__buttonspacing': 'tinymce__oxide--tox-comment__buttonspacing',
1355
- 'tox-comment-thread__overlay': 'tinymce__oxide--tox-comment-thread__overlay',
1356
- 'tox-comment__reply': 'tinymce__oxide--tox-comment__reply',
1357
- 'tox-comment__edit': 'tinymce__oxide--tox-comment__edit',
1358
- 'tox-comment__gradient': 'tinymce__oxide--tox-comment__gradient',
1359
- 'tox-comment__overlay': 'tinymce__oxide--tox-comment__overlay',
1360
- 'tox-comment__loading-text': 'tinymce__oxide--tox-comment__loading-text',
1361
- 'tox-comment__overlaytext': 'tinymce__oxide--tox-comment__overlaytext',
1362
- 'tox-comment__busy-spinner': 'tinymce__oxide--tox-comment__busy-spinner',
1363
- 'tox-comment__scroll': 'tinymce__oxide--tox-comment__scroll',
1364
- 'tox-conversations': 'tinymce__oxide--tox-conversations',
1365
- 'tox-user': 'tinymce__oxide--tox-user',
1366
- 'tox-user__avatar': 'tinymce__oxide--tox-user__avatar',
1367
- 'tox-user__name': 'tinymce__oxide--tox-user__name',
1368
- 'tox-dialog-wrap': 'tinymce__oxide--tox-dialog-wrap',
1369
- 'tox-dialog-wrap__backdrop': 'tinymce__oxide--tox-dialog-wrap__backdrop',
1370
- 'tox-dialog-wrap__backdrop--opaque': 'tinymce__oxide--tox-dialog-wrap__backdrop--opaque',
1371
- 'tox-dialog': 'tinymce__oxide--tox-dialog',
1372
- 'tox-force-desktop': 'tinymce__oxide--tox-force-desktop',
1373
- 'tox-dialog-inline': 'tinymce__oxide--tox-dialog-inline',
1374
- 'tox-dialog__header': 'tinymce__oxide--tox-dialog__header',
1375
- 'tox-dialog__draghandle': 'tinymce__oxide--tox-dialog__draghandle',
1376
- 'tox-dialog__dismiss': 'tinymce__oxide--tox-dialog__dismiss',
1377
- 'tox-dialog__title': 'tinymce__oxide--tox-dialog__title',
1378
- 'tox-dialog__body': 'tinymce__oxide--tox-dialog__body',
1379
- 'tox-dialog__body-nav': 'tinymce__oxide--tox-dialog__body-nav',
1380
- 'tox-dialog__body-nav-item': 'tinymce__oxide--tox-dialog__body-nav-item',
1381
- 'tox-dialog__body-nav-item--active': 'tinymce__oxide--tox-dialog__body-nav-item--active',
1382
- 'tox-dialog--width-lg': 'tinymce__oxide--tox-dialog--width-lg',
1383
- 'tox-dialog--width-md': 'tinymce__oxide--tox-dialog--width-md',
1384
- 'tox-dialog__body-content--centered': 'tinymce__oxide--tox-dialog__body-content--centered',
1385
- 'tox-dialog__footer': 'tinymce__oxide--tox-dialog__footer',
1386
- 'tox-dialog__footer-end': 'tinymce__oxide--tox-dialog__footer-end',
1387
- 'tox-dialog__footer-start': 'tinymce__oxide--tox-dialog__footer-start',
1388
- 'tox-dialog__busy-spinner': 'tinymce__oxide--tox-dialog__busy-spinner',
1389
- 'tox-dialog__table': 'tinymce__oxide--tox-dialog__table',
1390
- 'tox-dialog__popups': 'tinymce__oxide--tox-dialog__popups',
1391
- 'tox-dialog__body-iframe': 'tinymce__oxide--tox-dialog__body-iframe',
1392
- 'tox-navobj': 'tinymce__oxide--tox-navobj',
1393
- 'tox-dialog-dock-fadeout': 'tinymce__oxide--tox-dialog-dock-fadeout',
1394
- 'tox-dialog-dock-fadein': 'tinymce__oxide--tox-dialog-dock-fadein',
1395
- 'tox-dialog-dock-transition': 'tinymce__oxide--tox-dialog-dock-transition',
1396
- 'tox-platform-ie': 'tinymce__oxide--tox-platform-ie',
1397
- 'tox-dialog__disable-scroll': 'tinymce__oxide--tox-dialog__disable-scroll',
1398
- 'tox-dropzone-container': 'tinymce__oxide--tox-dropzone-container',
1399
- 'tox-dropzone': 'tinymce__oxide--tox-dropzone',
1400
- 'tox-edit-area': 'tinymce__oxide--tox-edit-area',
1401
- 'tox-edit-area__iframe': 'tinymce__oxide--tox-edit-area__iframe',
1402
- 'tox-inline-edit-area': 'tinymce__oxide--tox-inline-edit-area',
1403
- 'tox-editor-container': 'tinymce__oxide--tox-editor-container',
1404
- 'tox-tinymce--toolbar-bottom': 'tinymce__oxide--tox-tinymce--toolbar-bottom',
1405
- 'tox-tinymce--toolbar-sticky-on': 'tinymce__oxide--tox-tinymce--toolbar-sticky-on',
1406
- 'tox-editor-dock-fadeout': 'tinymce__oxide--tox-editor-dock-fadeout',
1407
- 'tox-editor-dock-fadein': 'tinymce__oxide--tox-editor-dock-fadein',
1408
- 'tox-editor-dock-transition': 'tinymce__oxide--tox-editor-dock-transition',
1409
- 'tox-control-wrap': 'tinymce__oxide--tox-control-wrap',
1410
- 'tox-control-wrap--status-invalid': 'tinymce__oxide--tox-control-wrap--status-invalid',
1411
- 'tox-control-wrap__status-icon-invalid': 'tinymce__oxide--tox-control-wrap__status-icon-invalid',
1412
- 'tox-control-wrap--status-unknown': 'tinymce__oxide--tox-control-wrap--status-unknown',
1413
- 'tox-control-wrap__status-icon-unknown': 'tinymce__oxide--tox-control-wrap__status-icon-unknown',
1414
- 'tox-control-wrap--status-valid': 'tinymce__oxide--tox-control-wrap--status-valid',
1415
- 'tox-control-wrap__status-icon-valid': 'tinymce__oxide--tox-control-wrap__status-icon-valid',
1416
- 'tox-control-wrap__status-icon-wrap': 'tinymce__oxide--tox-control-wrap__status-icon-wrap',
1417
- 'tox-textfield': 'tinymce__oxide--tox-textfield',
1418
- 'tox-autocompleter': 'tinymce__oxide--tox-autocompleter',
1419
- 'tox-menu': 'tinymce__oxide--tox-menu',
1420
- 'tox-autocompleter-highlight': 'tinymce__oxide--tox-autocompleter-highlight',
1421
- 'tox-color-input': 'tinymce__oxide--tox-color-input',
1422
- 'tox-label': 'tinymce__oxide--tox-label',
1423
- 'tox-toolbar-label': 'tinymce__oxide--tox-toolbar-label',
1424
- 'tox-form': 'tinymce__oxide--tox-form',
1425
- 'tox-form-group--maximize': 'tinymce__oxide--tox-form-group--maximize',
1426
- 'tox-form__group--error': 'tinymce__oxide--tox-form__group--error',
1427
- 'tox-form__group--collection': 'tinymce__oxide--tox-form__group--collection',
1428
- 'tox-form__grid': 'tinymce__oxide--tox-form__grid',
1429
- 'tox-form__grid--2col': 'tinymce__oxide--tox-form__grid--2col',
1430
- 'tox-form__grid--3col': 'tinymce__oxide--tox-form__grid--3col',
1431
- 'tox-form__grid--4col': 'tinymce__oxide--tox-form__grid--4col',
1432
- 'tox-form__controls-h-stack': 'tinymce__oxide--tox-form__controls-h-stack',
1433
- 'tox-form__group--inline': 'tinymce__oxide--tox-form__group--inline',
1434
- 'tox-form__group--stretched': 'tinymce__oxide--tox-form__group--stretched',
1435
- 'tox-textarea': 'tinymce__oxide--tox-textarea',
1436
- 'tox-lock': 'tinymce__oxide--tox-lock',
1437
- 'tox-locked': 'tinymce__oxide--tox-locked',
1438
- 'tox-lock-icon__unlock': 'tinymce__oxide--tox-lock-icon__unlock',
1439
- 'tox-lock-icon__lock': 'tinymce__oxide--tox-lock-icon__lock',
1440
- 'tox-listboxfield': 'tinymce__oxide--tox-listboxfield',
1441
- 'tox-listbox--select': 'tinymce__oxide--tox-listbox--select',
1442
- 'tox-toolbar-textfield': 'tinymce__oxide--tox-toolbar-textfield',
1443
- 'tox-naked-btn': 'tinymce__oxide--tox-naked-btn',
1444
- 'tox-listbox__select-label': 'tinymce__oxide--tox-listbox__select-label',
1445
- 'tox-listbox__select-chevron': 'tinymce__oxide--tox-listbox__select-chevron',
1446
- 'tox-selectfield': 'tinymce__oxide--tox-selectfield',
1447
- 'tox-fullscreen': 'tinymce__oxide--tox-fullscreen',
1448
- 'tox-statusbar__resize-handle': 'tinymce__oxide--tox-statusbar__resize-handle',
1449
- 'tox-shadowhost': 'tinymce__oxide--tox-shadowhost',
1450
- 'tox-help__more-link': 'tinymce__oxide--tox-help__more-link',
1451
- 'tox-image-tools': 'tinymce__oxide--tox-image-tools',
1452
- 'tox-image-tools__toolbar': 'tinymce__oxide--tox-image-tools__toolbar',
1453
- 'tox-image-tools__image': 'tinymce__oxide--tox-image-tools__image',
1454
- 'tox-image-tools__image-bg': 'tinymce__oxide--tox-image-tools__image-bg',
1455
- 'tox-spacer': 'tinymce__oxide--tox-spacer',
1456
- 'tox-croprect-block': 'tinymce__oxide--tox-croprect-block',
1457
- 'tox-croprect-handle': 'tinymce__oxide--tox-croprect-handle',
1458
- 'tox-croprect-handle-move': 'tinymce__oxide--tox-croprect-handle-move',
1459
- 'tox-croprect-handle-nw': 'tinymce__oxide--tox-croprect-handle-nw',
1460
- 'tox-croprect-handle-ne': 'tinymce__oxide--tox-croprect-handle-ne',
1461
- 'tox-croprect-handle-sw': 'tinymce__oxide--tox-croprect-handle-sw',
1462
- 'tox-croprect-handle-se': 'tinymce__oxide--tox-croprect-handle-se',
1463
- 'tox-slider': 'tinymce__oxide--tox-slider',
1464
- 'tox-insert-table-picker': 'tinymce__oxide--tox-insert-table-picker',
1465
- 'tox-insert-table-picker__selected': 'tinymce__oxide--tox-insert-table-picker__selected',
1466
- 'tox-insert-table-picker__label': 'tinymce__oxide--tox-insert-table-picker__label',
1467
- 'tox-menu__label': 'tinymce__oxide--tox-menu__label',
1468
- 'tox-menubar': 'tinymce__oxide--tox-menubar',
1469
- 'tox-mbtn': 'tinymce__oxide--tox-mbtn',
1470
- 'tox-mbtn--active': 'tinymce__oxide--tox-mbtn--active',
1471
- 'tox-mbtn__select-label': 'tinymce__oxide--tox-mbtn__select-label',
1472
- 'tox-mbtn__select-chevron': 'tinymce__oxide--tox-mbtn__select-chevron',
1473
- 'tox-notification': 'tinymce__oxide--tox-notification',
1474
- 'tox-notification--in': 'tinymce__oxide--tox-notification--in',
1475
- 'tox-notification--success': 'tinymce__oxide--tox-notification--success',
1476
- 'tox-notification--error': 'tinymce__oxide--tox-notification--error',
1477
- 'tox-notification--warn': 'tinymce__oxide--tox-notification--warn',
1478
- 'tox-notification--warning': 'tinymce__oxide--tox-notification--warning',
1479
- 'tox-notification--info': 'tinymce__oxide--tox-notification--info',
1480
- 'tox-notification__body': 'tinymce__oxide--tox-notification__body',
1481
- 'tox-notification__icon': 'tinymce__oxide--tox-notification__icon',
1482
- 'tox-notification__dismiss': 'tinymce__oxide--tox-notification__dismiss',
1483
- 'tox-progress-bar': 'tinymce__oxide--tox-progress-bar',
1484
- 'tox-pop': 'tinymce__oxide--tox-pop',
1485
- 'tox-pop--resizing': 'tinymce__oxide--tox-pop--resizing',
1486
- 'tox-pop__dialog': 'tinymce__oxide--tox-pop__dialog',
1487
- 'tox-pop--bottom': 'tinymce__oxide--tox-pop--bottom',
1488
- 'tox-pop--top': 'tinymce__oxide--tox-pop--top',
1489
- 'tox-pop--left': 'tinymce__oxide--tox-pop--left',
1490
- 'tox-pop--right': 'tinymce__oxide--tox-pop--right',
1491
- 'tox-pop--align-left': 'tinymce__oxide--tox-pop--align-left',
1492
- 'tox-pop--align-right': 'tinymce__oxide--tox-pop--align-right',
1493
- 'tox-sidebar-wrap': 'tinymce__oxide--tox-sidebar-wrap',
1494
- 'tox-sidebar': 'tinymce__oxide--tox-sidebar',
1495
- 'tox-sidebar__slider': 'tinymce__oxide--tox-sidebar__slider',
1496
- 'tox-sidebar__pane-container': 'tinymce__oxide--tox-sidebar__pane-container',
1497
- 'tox-sidebar__pane': 'tinymce__oxide--tox-sidebar__pane',
1498
- 'tox-sidebar--sliding-closed': 'tinymce__oxide--tox-sidebar--sliding-closed',
1499
- 'tox-sidebar--sliding-open': 'tinymce__oxide--tox-sidebar--sliding-open',
1500
- 'tox-sidebar--sliding-growing': 'tinymce__oxide--tox-sidebar--sliding-growing',
1501
- 'tox-sidebar--sliding-shrinking': 'tinymce__oxide--tox-sidebar--sliding-shrinking',
1502
- 'tox-selector': 'tinymce__oxide--tox-selector',
1503
- 'tox-platform-touch': 'tinymce__oxide--tox-platform-touch',
1504
- 'tox-slider__rail': 'tinymce__oxide--tox-slider__rail',
1505
- 'tox-slider__handle': 'tinymce__oxide--tox-slider__handle',
1506
- 'tox-source-code': 'tinymce__oxide--tox-source-code',
1507
- 'tox-spinner': 'tinymce__oxide--tox-spinner',
1508
- 'tam-bouncing-dots': 'tinymce__oxide--tam-bouncing-dots',
1509
- 'tox-statusbar': 'tinymce__oxide--tox-statusbar',
1510
- 'tox-statusbar__text-container': 'tinymce__oxide--tox-statusbar__text-container',
1511
- 'tox-statusbar__path': 'tinymce__oxide--tox-statusbar__path',
1512
- 'tox-statusbar__wordcount': 'tinymce__oxide--tox-statusbar__wordcount',
1513
- 'tox-statusbar__path-item': 'tinymce__oxide--tox-statusbar__path-item',
1514
- 'tox-statusbar__branding': 'tinymce__oxide--tox-statusbar__branding',
1515
- 'tox-throbber': 'tinymce__oxide--tox-throbber',
1516
- 'tox-throbber__busy-spinner': 'tinymce__oxide--tox-throbber__busy-spinner',
1517
- 'tox-tbtn': 'tinymce__oxide--tox-tbtn',
1518
- 'tox-tbtn-more': 'tinymce__oxide--tox-tbtn-more',
1519
- 'tox-tbtn--disabled': 'tinymce__oxide--tox-tbtn--disabled',
1520
- 'tox-tbtn--enabled': 'tinymce__oxide--tox-tbtn--enabled',
1521
- 'tox-tbtn--md': 'tinymce__oxide--tox-tbtn--md',
1522
- 'tox-tbtn--lg': 'tinymce__oxide--tox-tbtn--lg',
1523
- 'tox-tbtn--return': 'tinymce__oxide--tox-tbtn--return',
1524
- 'tox-tbtn--labeled': 'tinymce__oxide--tox-tbtn--labeled',
1525
- 'tox-tbtn__vlabel': 'tinymce__oxide--tox-tbtn__vlabel',
1526
- 'tox-tbtn--select': 'tinymce__oxide--tox-tbtn--select',
1527
- 'tox-tbtn__select-label': 'tinymce__oxide--tox-tbtn__select-label',
1528
- 'tox-tbtn__select-chevron': 'tinymce__oxide--tox-tbtn__select-chevron',
1529
- 'tox-tbtn--bespoke': 'tinymce__oxide--tox-tbtn--bespoke',
1530
- 'tox-split-button': 'tinymce__oxide--tox-split-button',
1531
- 'tox-split-button__chevron': 'tinymce__oxide--tox-split-button__chevron',
1532
- 'tox-toolbar-overlord': 'tinymce__oxide--tox-toolbar-overlord',
1533
- 'tox-toolbar__overflow--closed': 'tinymce__oxide--tox-toolbar__overflow--closed',
1534
- 'tox-toolbar__overflow--growing': 'tinymce__oxide--tox-toolbar__overflow--growing',
1535
- 'tox-toolbar__overflow--shrinking': 'tinymce__oxide--tox-toolbar__overflow--shrinking',
1536
- 'tox-toolbar--scrolling': 'tinymce__oxide--tox-toolbar--scrolling',
1537
- 'tox-toolbar--no-divider': 'tinymce__oxide--tox-toolbar--no-divider',
1538
- 'tox-tbtn__icon-rtl': 'tinymce__oxide--tox-tbtn__icon-rtl',
1539
- 'tox-toolbar__group': 'tinymce__oxide--tox-toolbar__group',
1540
- 'tox-toolbar__group--pull-right': 'tinymce__oxide--tox-toolbar__group--pull-right',
1541
- 'tox-tooltip': 'tinymce__oxide--tox-tooltip',
1542
- 'tox-tooltip__body': 'tinymce__oxide--tox-tooltip__body',
1543
- 'tox-tooltip__arrow': 'tinymce__oxide--tox-tooltip__arrow',
1544
- 'tox-tooltip--down': 'tinymce__oxide--tox-tooltip--down',
1545
- 'tox-tooltip--up': 'tinymce__oxide--tox-tooltip--up',
1546
- 'tox-tooltip--right': 'tinymce__oxide--tox-tooltip--right',
1547
- 'tox-tooltip--left': 'tinymce__oxide--tox-tooltip--left',
1548
- 'tox-well': 'tinymce__oxide--tox-well',
1549
- 'tox-custom-editor': 'tinymce__oxide--tox-custom-editor',
1550
- 'tox-dialog-loading': 'tinymce__oxide--tox-dialog-loading',
1551
- 'tox-tab': 'tinymce__oxide--tox-tab',
1552
- 'tox-dialog__content-js': 'tinymce__oxide--tox-dialog__content-js',
1553
- 'tox-image-tools-edit-panel': 'tinymce__oxide--tox-image-tools-edit-panel',
1554
- 'tox-image-tools__sidebar': 'tinymce__oxide--tox-image-tools__sidebar'
1555
- };
1556
- const contentCSSBinding = {
1557
- componentId: 'bKkob',
1558
- template: function (theme) {
1559
- return `
1560
-
1561
-
1562
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor {
1563
- 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;
1564
- cursor: default;
1565
- display: inline-block;
1566
- height: 12px !important;
1567
- padding: 0 2px;
1568
- -webkit-user-modify: read-only;
1569
- -moz-user-modify: read-only;
1570
- -webkit-user-select: all;
1571
- user-select: all;
1572
- width: 8px !important;
1573
- }
1574
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor[data-mce-selected] {
1575
- outline-offset: 1px;
1576
- }
1577
- .tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment {
1578
- background-color: #fff0b7;
1579
- }
1580
- .tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment--active {
1581
- background-color: #ffe168;
1582
- }
1583
- .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden) {
1584
- list-style: none;
1585
- margin: 0.25em 0;
1586
- }
1587
- .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {
1588
- 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");
1589
- cursor: pointer;
1590
- height: 1em;
1591
- margin-left: -1.5em;
1592
- margin-top: 0.125em;
1593
- position: absolute;
1594
- width: 1em;
1595
- }
1596
- .tinymce__oxide--tox-checklist li:not(.tinymce__oxide--tox-checklist--hidden).tinymce__oxide--tox-checklist--checked::before {
1597
- 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");
1598
- }
1599
- [dir=rtl] .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {
1600
- margin-left: 0;
1601
- margin-right: -1.5em;
1602
- }
1603
-
1604
-
1605
-
1606
- code[class*="language-"],
1607
- pre[class*="language-"] {
1608
- color: black;
1609
- background: none;
1610
- text-shadow: 0 1px white;
1611
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
1612
- font-size: 1em;
1613
- text-align: left;
1614
- white-space: pre;
1615
- word-spacing: normal;
1616
- word-break: normal;
1617
- word-wrap: normal;
1618
- line-height: 1.5;
1619
- tab-size: 4;
1620
- -webkit-hyphens: none;
1621
- hyphens: none;
1622
- }
1623
- [dir="ltr"] code[class*="language-"],
1624
- [dir="ltr"] pre[class*="language-"] {
1625
- text-align: left;
1626
- }
1627
- [dir="rtl"] code[class*="language-"],
1628
- [dir="rtl"] pre[class*="language-"] {
1629
- text-align: left;
1630
- }
1631
- pre[class*="language-"]::selection,
1632
- pre[class*="language-"] ::selection,
1633
- code[class*="language-"]::selection,
1634
- code[class*="language-"] ::selection {
1635
- text-shadow: none;
1636
- background: #b3d4fc;
1637
- }
1638
- @media print {
1639
- code[class*="language-"],
1640
- pre[class*="language-"] {
1641
- text-shadow: none;
1642
- }
1643
- }
1644
-
1645
- pre[class*="language-"] {
1646
- padding: 1em;
1647
- margin: 0.5em 0;
1648
- overflow: auto;
1649
- }
1650
- :not(pre) > code[class*="language-"],
1651
- pre[class*="language-"] {
1652
- background: #f5f2f0;
1653
- }
1654
-
1655
- :not(pre) > code[class*="language-"] {
1656
- padding: 0.1em;
1657
- border-radius: 0.3em;
1658
- white-space: normal;
1659
- }
1660
- .tinymce__oxide--token.tinymce__oxide--comment,
1661
- .tinymce__oxide--token.tinymce__oxide--prolog,
1662
- .tinymce__oxide--token.tinymce__oxide--doctype,
1663
- .tinymce__oxide--token.tinymce__oxide--cdata {
1664
- color: slategray;
1665
- }
1666
- .tinymce__oxide--token.tinymce__oxide--punctuation {
1667
- color: #999;
1668
- }
1669
- .tinymce__oxide--namespace {
1670
- opacity: 0.7;
1671
- }
1672
- .tinymce__oxide--token.tinymce__oxide--property,
1673
- .tinymce__oxide--token.tinymce__oxide--tag,
1674
- .tinymce__oxide--token.tinymce__oxide--boolean,
1675
- .tinymce__oxide--token.tinymce__oxide--number,
1676
- .tinymce__oxide--token.tinymce__oxide--constant,
1677
- .tinymce__oxide--token.tinymce__oxide--symbol,
1678
- .tinymce__oxide--token.tinymce__oxide--deleted {
1679
- color: #905;
1680
- }
1681
- .tinymce__oxide--token.tinymce__oxide--selector,
1682
- .tinymce__oxide--token.tinymce__oxide--attr-name,
1683
- .tinymce__oxide--token.tinymce__oxide--string,
1684
- .tinymce__oxide--token.tinymce__oxide--char,
1685
- .tinymce__oxide--token.tinymce__oxide--builtin,
1686
- .tinymce__oxide--token.tinymce__oxide--inserted {
1687
- color: #690;
1688
- }
1689
- .tinymce__oxide--token.tinymce__oxide--operator,
1690
- .tinymce__oxide--token.tinymce__oxide--entity,
1691
- .tinymce__oxide--token.tinymce__oxide--url,
1692
- .tinymce__oxide--language-css .tinymce__oxide--token.tinymce__oxide--string,
1693
- .tinymce__oxide--style .tinymce__oxide--token.tinymce__oxide--string {
1694
- color: #9a6e3a;
1695
- background: hsla(0, 0%, 100%, 0.5);
1696
- }
1697
- .tinymce__oxide--token.tinymce__oxide--atrule,
1698
- .tinymce__oxide--token.tinymce__oxide--attr-value,
1699
- .tinymce__oxide--token.tinymce__oxide--keyword {
1700
- color: #07a;
1701
- }
1702
- .tinymce__oxide--token.tinymce__oxide--function,
1703
- .tinymce__oxide--token.tinymce__oxide--class-name {
1704
- color: #DD4A68;
1705
- }
1706
- .tinymce__oxide--token.tinymce__oxide--regex,
1707
- .tinymce__oxide--token.tinymce__oxide--important,
1708
- .tinymce__oxide--token.tinymce__oxide--variable {
1709
- color: #e90;
1710
- }
1711
- .tinymce__oxide--token.tinymce__oxide--important,
1712
- .tinymce__oxide--token.tinymce__oxide--bold {
1713
- font-weight: bold;
1714
- }
1715
- .tinymce__oxide--token.tinymce__oxide--italic {
1716
- font-style: italic;
1717
- }
1718
- .tinymce__oxide--token.tinymce__oxide--entity {
1719
- cursor: help;
1720
- }
1721
-
1722
- .tinymce__oxide--mce-content-body {
1723
- overflow-wrap: break-word;
1724
- word-wrap: break-word;
1725
- }
1726
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret {
1727
- background-color: black;
1728
- background-color: currentColor;
1729
- position: absolute;
1730
- }
1731
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret-hidden {
1732
- display: none;
1733
- }
1734
- .tinymce__oxide--mce-content-body *[data-mce-caret] {
1735
- left: -1000px;
1736
- margin: 0;
1737
- padding: 0;
1738
- position: absolute;
1739
- right: auto;
1740
- top: 0;
1741
- }
1742
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-offscreen-selection {
1743
- left: -2000000px;
1744
- max-width: 1000000px;
1745
- position: absolute;
1746
- }
1747
- .tinymce__oxide--mce-content-body *[contentEditable=false] {
1748
- cursor: default;
1749
- }
1750
- .tinymce__oxide--mce-content-body *[contentEditable=true] {
1751
- cursor: text;
1752
- }
1753
- .tinymce__oxide--tox-cursor-format-painter {
1754
- 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;
1755
- }
1756
- .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {
1757
- float: left;
1758
- }
1759
- [dir="ltr"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {
1760
- float: left;
1761
- }
1762
- [dir="rtl"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {
1763
- float: left;
1764
- }
1765
- .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {
1766
- float: right;
1767
- }
1768
- [dir="ltr"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {
1769
- float: right;
1770
- }
1771
- [dir="rtl"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {
1772
- float: right;
1773
- }
1774
- .tinymce__oxide--mce-content-body figure.tinymce__oxide--image.tinymce__oxide--align-center {
1775
- display: table;
1776
- margin-left: auto;
1777
- margin-right: auto;
1778
- }
1779
- .tinymce__oxide--mce-preview-object {
1780
- border: 1px solid gray;
1781
- display: inline-block;
1782
- line-height: 0;
1783
- margin: 0 2px 0 2px;
1784
- position: relative;
1785
- }
1786
- .tinymce__oxide--mce-preview-object .tinymce__oxide--mce-shim {
1787
- background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
1788
- height: 100%;
1789
- left: 0;
1790
- position: absolute;
1791
- top: 0;
1792
- width: 100%;
1793
- }
1794
- .tinymce__oxide--mce-preview-object[data-mce-selected="2"] .tinymce__oxide--mce-shim {
1795
- display: none;
1796
- }
1797
- .tinymce__oxide--mce-object {
1798
- 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;
1799
- border: 1px dashed #aaa;
1800
- }
1801
- .tinymce__oxide--mce-pagebreak {
1802
- border: 1px dashed #aaa;
1803
- cursor: default;
1804
- display: block;
1805
- height: 5px;
1806
- margin-top: 15px;
1807
- page-break-before: always;
1808
- width: 100%;
1809
- }
1810
- @media print {
1811
- .tinymce__oxide--mce-pagebreak {
1812
- border: 0;
1813
- }
1814
- }
1815
- .tinymce__oxide--tiny-pageembed .tinymce__oxide--mce-shim {
1816
- background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
1817
- height: 100%;
1818
- left: 0;
1819
- position: absolute;
1820
- top: 0;
1821
- width: 100%;
1822
- }
1823
- .tinymce__oxide--tiny-pageembed[data-mce-selected="2"] .tinymce__oxide--mce-shim {
1824
- display: none;
1825
- }
1826
- .tinymce__oxide--tiny-pageembed {
1827
- display: inline-block;
1828
- position: relative;
1829
- }
1830
- .tinymce__oxide--tiny-pageembed--21by9,
1831
- .tinymce__oxide--tiny-pageembed--16by9,
1832
- .tinymce__oxide--tiny-pageembed--4by3,
1833
- .tinymce__oxide--tiny-pageembed--1by1 {
1834
- display: block;
1835
- overflow: hidden;
1836
- padding: 0;
1837
- position: relative;
1838
- width: 100%;
1839
- }
1840
- .tinymce__oxide--tiny-pageembed--21by9 {
1841
- padding-top: 42.857143%;
1842
- }
1843
- .tinymce__oxide--tiny-pageembed--16by9 {
1844
- padding-top: 56.25%;
1845
- }
1846
- .tinymce__oxide--tiny-pageembed--4by3 {
1847
- padding-top: 75%;
1848
- }
1849
- .tinymce__oxide--tiny-pageembed--1by1 {
1850
- padding-top: 100%;
1851
- }
1852
- .tinymce__oxide--tiny-pageembed--21by9 iframe,
1853
- .tinymce__oxide--tiny-pageembed--16by9 iframe,
1854
- .tinymce__oxide--tiny-pageembed--4by3 iframe,
1855
- .tinymce__oxide--tiny-pageembed--1by1 iframe {
1856
- border: 0;
1857
- height: 100%;
1858
- left: 0;
1859
- position: absolute;
1860
- top: 0;
1861
- width: 100%;
1862
- }
1863
- .tinymce__oxide--mce-content-body[data-mce-placeholder] {
1864
- position: relative;
1865
- }
1866
- .tinymce__oxide--mce-content-body[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {
1867
- color: rgba(34, 47, 62, 0.7);
1868
- content: attr(data-mce-placeholder);
1869
- position: absolute;
1870
- }
1871
- .tinymce__oxide--mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {
1872
- left: 1px;
1873
- }
1874
- .tinymce__oxide--mce-content-body[dir=rtl][data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {
1875
- right: 1px;
1876
- }
1877
- .tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle {
1878
- background-color: #4099ff;
1879
- border-color: #4099ff;
1880
- border-style: solid;
1881
- border-width: 1px;
1882
- box-sizing: border-box;
1883
- height: 10px;
1884
- position: absolute;
1885
- width: 10px;
1886
- z-index: 10000;
1887
- }
1888
- .tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:hover {
1889
- background-color: #4099ff;
1890
- }
1891
- .tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(1) {
1892
- cursor: nwse-resize;
1893
- }
1894
- .tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(2) {
1895
- cursor: nesw-resize;
1896
- }
1897
- .tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(3) {
1898
- cursor: nwse-resize;
1899
- }
1900
- .tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(4) {
1901
- cursor: nesw-resize;
1902
- }
1903
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-backdrop {
1904
- z-index: 10000;
1905
- }
1906
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable {
1907
- cursor: default;
1908
- opacity: 0.5;
1909
- outline: 1px dashed black;
1910
- position: absolute;
1911
- z-index: 10001;
1912
- }
1913
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns th,
1914
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns td {
1915
- border: 0;
1916
- }
1917
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-helper {
1918
- background: #555;
1919
- background: rgba(0, 0, 0, 0.75);
1920
- border: 1px;
1921
- border-radius: 3px;
1922
- color: white;
1923
- display: none;
1924
- font-family: sans-serif;
1925
- font-size: 12px;
1926
- line-height: 14px;
1927
- margin: 5px 10px;
1928
- padding: 5px;
1929
- position: absolute;
1930
- white-space: nowrap;
1931
- z-index: 10002;
1932
- }
1933
- .tinymce__oxide--tox-rtc-user-selection {
1934
- position: relative;
1935
- }
1936
- .tinymce__oxide--tox-rtc-user-cursor {
1937
- bottom: 0;
1938
- cursor: default;
1939
- position: absolute;
1940
- top: 0;
1941
- width: 2px;
1942
- }
1943
- .tinymce__oxide--tox-rtc-user-cursor::before {
1944
- background-color: inherit;
1945
- border-radius: 50%;
1946
- content: '';
1947
- display: block;
1948
- height: 8px;
1949
- position: absolute;
1950
- right: -3px;
1951
- top: -3px;
1952
- width: 8px;
1953
- }
1954
- .tinymce__oxide--tox-rtc-user-cursor:hover::after {
1955
- background-color: inherit;
1956
- border-radius: 100px;
1957
- box-sizing: border-box;
1958
- color: #fff;
1959
- content: attr(data-user);
1960
- display: block;
1961
- font-size: 12px;
1962
- font-weight: bold;
1963
- left: -5px;
1964
- min-height: 8px;
1965
- min-width: 8px;
1966
- padding: 0 12px;
1967
- position: absolute;
1968
- top: -11px;
1969
- white-space: nowrap;
1970
- z-index: 1000;
1971
- }
1972
- .tinymce__oxide--tox-rtc-user-selection--1 .tinymce__oxide--tox-rtc-user-cursor {
1973
- background-color: #2dc26b;
1974
- }
1975
- .tinymce__oxide--tox-rtc-user-selection--2 .tinymce__oxide--tox-rtc-user-cursor {
1976
- background-color: #e03e2d;
1977
- }
1978
- .tinymce__oxide--tox-rtc-user-selection--3 .tinymce__oxide--tox-rtc-user-cursor {
1979
- background-color: #f1c40f;
1980
- }
1981
- .tinymce__oxide--tox-rtc-user-selection--4 .tinymce__oxide--tox-rtc-user-cursor {
1982
- background-color: #3598db;
1983
- }
1984
- .tinymce__oxide--tox-rtc-user-selection--5 .tinymce__oxide--tox-rtc-user-cursor {
1985
- background-color: #b96ad9;
1986
- }
1987
- .tinymce__oxide--tox-rtc-user-selection--6 .tinymce__oxide--tox-rtc-user-cursor {
1988
- background-color: #e67e23;
1989
- }
1990
- .tinymce__oxide--tox-rtc-user-selection--7 .tinymce__oxide--tox-rtc-user-cursor {
1991
- background-color: #aaa69d;
1992
- }
1993
- .tinymce__oxide--tox-rtc-user-selection--8 .tinymce__oxide--tox-rtc-user-cursor {
1994
- background-color: #f368e0;
1995
- }
1996
- .tinymce__oxide--tox-rtc-remote-image {
1997
- 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;
1998
- border: 1px solid #ccc;
1999
- min-height: 240px;
2000
- min-width: 320px;
2001
- }
2002
- .tinymce__oxide--mce-match-marker {
2003
- background: #aaa;
2004
- color: #fff;
2005
- }
2006
- .tinymce__oxide--mce-match-marker-selected {
2007
- background: #39f;
2008
- color: #fff;
2009
- }
2010
- .tinymce__oxide--mce-match-marker-selected::selection {
2011
- background: #39f;
2012
- color: #fff;
2013
- }
2014
- .tinymce__oxide--mce-content-body img[data-mce-selected],
2015
- .tinymce__oxide--mce-content-body video[data-mce-selected],
2016
- .tinymce__oxide--mce-content-body audio[data-mce-selected],
2017
- .tinymce__oxide--mce-content-body object[data-mce-selected],
2018
- .tinymce__oxide--mce-content-body embed[data-mce-selected],
2019
- .tinymce__oxide--mce-content-body table[data-mce-selected] {
2020
- outline: 3px solid #b4d7ff;
2021
- }
2022
- .tinymce__oxide--mce-content-body hr[data-mce-selected] {
2023
- outline: 3px solid #b4d7ff;
2024
- outline-offset: 1px;
2025
- }
2026
- .tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {
2027
- outline: 3px solid #b4d7ff;
2028
- }
2029
- .tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {
2030
- outline: 3px solid #b4d7ff;
2031
- }
2032
- .tinymce__oxide--mce-content-body *[contentEditable=false][data-mce-selected] {
2033
- cursor: not-allowed;
2034
- outline: 3px solid #b4d7ff;
2035
- }
2036
- .tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:focus,
2037
- .tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:hover {
2038
- outline: none;
2039
- }
2040
- .tinymce__oxide--mce-content-body *[data-mce-selected="inline-boundary"] {
2041
- background-color: #b4d7ff;
2042
- }
2043
- .tinymce__oxide--mce-content-body .tinymce__oxide--mce-edit-focus {
2044
- outline: 3px solid #b4d7ff;
2045
- }
2046
- .tinymce__oxide--mce-content-body td[data-mce-selected],
2047
- .tinymce__oxide--mce-content-body th[data-mce-selected] {
2048
- position: relative;
2049
- }
2050
- .tinymce__oxide--mce-content-body td[data-mce-selected]::selection,
2051
- .tinymce__oxide--mce-content-body th[data-mce-selected]::selection {
2052
- background: none;
2053
- }
2054
- .tinymce__oxide--mce-content-body td[data-mce-selected] *,
2055
- .tinymce__oxide--mce-content-body th[data-mce-selected] * {
2056
- outline: none;
2057
- -webkit-touch-callout: none;
2058
- -webkit-user-select: none;
2059
- user-select: none;
2060
- }
2061
- .tinymce__oxide--mce-content-body td[data-mce-selected]::after,
2062
- .tinymce__oxide--mce-content-body th[data-mce-selected]::after {
2063
- background-color: rgba(180, 215, 255, 0.7);
2064
- border: 1px solid rgba(180, 215, 255, 0.7);
2065
- bottom: -1px;
2066
- content: '';
2067
- left: -1px;
2068
- mix-blend-mode: multiply;
2069
- position: absolute;
2070
- right: -1px;
2071
- top: -1px;
2072
- }
2073
- @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
2074
- .tinymce__oxide--mce-content-body td[data-mce-selected]::after,
2075
- .tinymce__oxide--mce-content-body th[data-mce-selected]::after {
2076
- border-color: rgba(0, 84, 180, 0.7);
2077
- }
2078
- }
2079
- .tinymce__oxide--mce-content-body img::selection {
2080
- background: none;
2081
- }
2082
- .tinymce__oxide--ephox-snooker-resizer-bar {
2083
- background-color: #b4d7ff;
2084
- opacity: 0;
2085
- -webkit-user-select: none;
2086
- user-select: none;
2087
- }
2088
- .tinymce__oxide--ephox-snooker-resizer-cols {
2089
- cursor: col-resize;
2090
- }
2091
- .tinymce__oxide--ephox-snooker-resizer-rows {
2092
- cursor: row-resize;
2093
- }
2094
- .tinymce__oxide--ephox-snooker-resizer-bar.tinymce__oxide--ephox-snooker-resizer-bar-dragging {
2095
- opacity: 1;
2096
- }
2097
- .tinymce__oxide--mce-spellchecker-word {
2098
- 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");
2099
- background-position: 0 calc(100% + 1px);
2100
- background-repeat: repeat-x;
2101
- background-size: auto 6px;
2102
- cursor: default;
2103
- height: 2rem;
2104
- }
2105
- .tinymce__oxide--mce-spellchecker-grammar {
2106
- 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");
2107
- background-position: 0 calc(100% + 1px);
2108
- background-repeat: repeat-x;
2109
- background-size: auto 6px;
2110
- cursor: default;
2111
- }
2112
- .tinymce__oxide--mce-toc {
2113
- border: 1px solid gray;
2114
- }
2115
- .tinymce__oxide--mce-toc h2 {
2116
- margin: 4px;
2117
- }
2118
- .tinymce__oxide--mce-toc li {
2119
- list-style-type: none;
2120
- }
2121
- table[style*="border-width: 0px"],
2122
- .tinymce__oxide--mce-item-table:not([border]),
2123
- .tinymce__oxide--mce-item-table[border="0"],
2124
- table[style*="border-width: 0px"] td,
2125
- .tinymce__oxide--mce-item-table:not([border]) td,
2126
- .tinymce__oxide--mce-item-table[border="0"] td,
2127
- table[style*="border-width: 0px"] th,
2128
- .tinymce__oxide--mce-item-table:not([border]) th,
2129
- .tinymce__oxide--mce-item-table[border="0"] th,
2130
- table[style*="border-width: 0px"] caption,
2131
- .tinymce__oxide--mce-item-table:not([border]) caption,
2132
- .tinymce__oxide--mce-item-table[border="0"] caption {
2133
- border: 1px dashed #bbb;
2134
- }
2135
- .tinymce__oxide--mce-visualblocks p,
2136
- .tinymce__oxide--mce-visualblocks h1,
2137
- .tinymce__oxide--mce-visualblocks h2,
2138
- .tinymce__oxide--mce-visualblocks h3,
2139
- .tinymce__oxide--mce-visualblocks h4,
2140
- .tinymce__oxide--mce-visualblocks h5,
2141
- .tinymce__oxide--mce-visualblocks h6,
2142
- .tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]),
2143
- .tinymce__oxide--mce-visualblocks section,
2144
- .tinymce__oxide--mce-visualblocks article,
2145
- .tinymce__oxide--mce-visualblocks blockquote,
2146
- .tinymce__oxide--mce-visualblocks address,
2147
- .tinymce__oxide--mce-visualblocks pre,
2148
- .tinymce__oxide--mce-visualblocks figure,
2149
- .tinymce__oxide--mce-visualblocks figcaption,
2150
- .tinymce__oxide--mce-visualblocks hgroup,
2151
- .tinymce__oxide--mce-visualblocks aside,
2152
- .tinymce__oxide--mce-visualblocks ul,
2153
- .tinymce__oxide--mce-visualblocks ol,
2154
- .tinymce__oxide--mce-visualblocks dl {
2155
- background-repeat: no-repeat;
2156
- border: 1px dashed #bbb;
2157
- margin-left: 3px;
2158
- padding-top: 10px;
2159
- }
2160
- .tinymce__oxide--mce-visualblocks p {
2161
- background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);
2162
- }
2163
- .tinymce__oxide--mce-visualblocks h1 {
2164
- background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);
2165
- }
2166
- .tinymce__oxide--mce-visualblocks h2 {
2167
- background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);
2168
- }
2169
- .tinymce__oxide--mce-visualblocks h3 {
2170
- background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);
2171
- }
2172
- .tinymce__oxide--mce-visualblocks h4 {
2173
- background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);
2174
- }
2175
- .tinymce__oxide--mce-visualblocks h5 {
2176
- background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);
2177
- }
2178
- .tinymce__oxide--mce-visualblocks h6 {
2179
- background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);
2180
- }
2181
- .tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]) {
2182
- background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);
2183
- }
2184
- .tinymce__oxide--mce-visualblocks section {
2185
- background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);
2186
- }
2187
- .tinymce__oxide--mce-visualblocks article {
2188
- background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);
2189
- }
2190
- .tinymce__oxide--mce-visualblocks blockquote {
2191
- background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);
2192
- }
2193
- .tinymce__oxide--mce-visualblocks address {
2194
- background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);
2195
- }
2196
- .tinymce__oxide--mce-visualblocks pre {
2197
- background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);
2198
- }
2199
- .tinymce__oxide--mce-visualblocks figure {
2200
- background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);
2201
- }
2202
- .tinymce__oxide--mce-visualblocks figcaption {
2203
- border: 1px dashed #bbb;
2204
- }
2205
- .tinymce__oxide--mce-visualblocks hgroup {
2206
- background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);
2207
- }
2208
- .tinymce__oxide--mce-visualblocks aside {
2209
- background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);
2210
- }
2211
- .tinymce__oxide--mce-visualblocks ul {
2212
- background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);
2213
- }
2214
- .tinymce__oxide--mce-visualblocks ol {
2215
- background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);
2216
- }
2217
- .tinymce__oxide--mce-visualblocks dl {
2218
- background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);
2219
- }
2220
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) p,
2221
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) h1,
2222
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) h2,
2223
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) h3,
2224
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) h4,
2225
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) h5,
2226
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) h6,
2227
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),
2228
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) section,
2229
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) article,
2230
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) blockquote,
2231
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) address,
2232
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) pre,
2233
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) figure,
2234
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) figcaption,
2235
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) hgroup,
2236
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) aside,
2237
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) ul,
2238
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) ol,
2239
- .tinymce__oxide--mce-visualblocks:not([dir=rtl]) dl {
2240
- margin-left: 3px;
2241
- }
2242
- .tinymce__oxide--mce-visualblocks[dir=rtl] p,
2243
- .tinymce__oxide--mce-visualblocks[dir=rtl] h1,
2244
- .tinymce__oxide--mce-visualblocks[dir=rtl] h2,
2245
- .tinymce__oxide--mce-visualblocks[dir=rtl] h3,
2246
- .tinymce__oxide--mce-visualblocks[dir=rtl] h4,
2247
- .tinymce__oxide--mce-visualblocks[dir=rtl] h5,
2248
- .tinymce__oxide--mce-visualblocks[dir=rtl] h6,
2249
- .tinymce__oxide--mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),
2250
- .tinymce__oxide--mce-visualblocks[dir=rtl] section,
2251
- .tinymce__oxide--mce-visualblocks[dir=rtl] article,
2252
- .tinymce__oxide--mce-visualblocks[dir=rtl] blockquote,
2253
- .tinymce__oxide--mce-visualblocks[dir=rtl] address,
2254
- .tinymce__oxide--mce-visualblocks[dir=rtl] pre,
2255
- .tinymce__oxide--mce-visualblocks[dir=rtl] figure,
2256
- .tinymce__oxide--mce-visualblocks[dir=rtl] figcaption,
2257
- .tinymce__oxide--mce-visualblocks[dir=rtl] hgroup,
2258
- .tinymce__oxide--mce-visualblocks[dir=rtl] aside,
2259
- .tinymce__oxide--mce-visualblocks[dir=rtl] ul,
2260
- .tinymce__oxide--mce-visualblocks[dir=rtl] ol,
2261
- .tinymce__oxide--mce-visualblocks[dir=rtl] dl {
2262
- background-position-x: right;
2263
- margin-right: 3px;
2264
- }
2265
- .tinymce__oxide--mce-nbsp,
2266
- .tinymce__oxide--mce-shy {
2267
- background: #aaa;
2268
- }
2269
- .tinymce__oxide--mce-shy::after {
2270
- content: '-';
2271
- }
2272
- body {
2273
- font-family: sans-serif;
2274
- }
2275
- table {
2276
- border-collapse: collapse;
2277
- }
2278
- `;
2279
- },
2280
- 'mce-content-body': 'tinymce__oxide--mce-content-body',
2281
- 'mce-item-anchor': 'tinymce__oxide--mce-item-anchor',
2282
- 'tox-comments-visible': 'tinymce__oxide--tox-comments-visible',
2283
- 'tox-comment': 'tinymce__oxide--tox-comment',
2284
- 'tox-comment--active': 'tinymce__oxide--tox-comment--active',
2285
- 'tox-checklist': 'tinymce__oxide--tox-checklist',
2286
- 'tox-checklist--hidden': 'tinymce__oxide--tox-checklist--hidden',
2287
- 'tox-checklist--checked': 'tinymce__oxide--tox-checklist--checked',
2288
- 'token': 'tinymce__oxide--token',
2289
- 'comment': 'tinymce__oxide--comment',
2290
- 'prolog': 'tinymce__oxide--prolog',
2291
- 'doctype': 'tinymce__oxide--doctype',
2292
- 'cdata': 'tinymce__oxide--cdata',
2293
- 'punctuation': 'tinymce__oxide--punctuation',
2294
- 'namespace': 'tinymce__oxide--namespace',
2295
- 'property': 'tinymce__oxide--property',
2296
- 'tag': 'tinymce__oxide--tag',
2297
- 'boolean': 'tinymce__oxide--boolean',
2298
- 'number': 'tinymce__oxide--number',
2299
- 'constant': 'tinymce__oxide--constant',
2300
- 'symbol': 'tinymce__oxide--symbol',
2301
- 'deleted': 'tinymce__oxide--deleted',
2302
- 'selector': 'tinymce__oxide--selector',
2303
- 'attr-name': 'tinymce__oxide--attr-name',
2304
- 'string': 'tinymce__oxide--string',
2305
- 'char': 'tinymce__oxide--char',
2306
- 'builtin': 'tinymce__oxide--builtin',
2307
- 'inserted': 'tinymce__oxide--inserted',
2308
- 'operator': 'tinymce__oxide--operator',
2309
- 'entity': 'tinymce__oxide--entity',
2310
- 'url': 'tinymce__oxide--url',
2311
- 'language-css': 'tinymce__oxide--language-css',
2312
- 'style': 'tinymce__oxide--style',
2313
- 'atrule': 'tinymce__oxide--atrule',
2314
- 'attr-value': 'tinymce__oxide--attr-value',
2315
- 'keyword': 'tinymce__oxide--keyword',
2316
- 'function': 'tinymce__oxide--function',
2317
- 'class-name': 'tinymce__oxide--class-name',
2318
- 'regex': 'tinymce__oxide--regex',
2319
- 'important': 'tinymce__oxide--important',
2320
- 'variable': 'tinymce__oxide--variable',
2321
- 'bold': 'tinymce__oxide--bold',
2322
- 'italic': 'tinymce__oxide--italic',
2323
- 'mce-visual-caret': 'tinymce__oxide--mce-visual-caret',
2324
- 'mce-visual-caret-hidden': 'tinymce__oxide--mce-visual-caret-hidden',
2325
- 'mce-offscreen-selection': 'tinymce__oxide--mce-offscreen-selection',
2326
- 'tox-cursor-format-painter': 'tinymce__oxide--tox-cursor-format-painter',
2327
- 'align-left': 'tinymce__oxide--align-left',
2328
- 'align-right': 'tinymce__oxide--align-right',
2329
- 'image': 'tinymce__oxide--image',
2330
- 'align-center': 'tinymce__oxide--align-center',
2331
- 'mce-preview-object': 'tinymce__oxide--mce-preview-object',
2332
- 'mce-shim': 'tinymce__oxide--mce-shim',
2333
- 'mce-object': 'tinymce__oxide--mce-object',
2334
- 'mce-pagebreak': 'tinymce__oxide--mce-pagebreak',
2335
- 'tiny-pageembed': 'tinymce__oxide--tiny-pageembed',
2336
- 'tiny-pageembed--21by9': 'tinymce__oxide--tiny-pageembed--21by9',
2337
- 'tiny-pageembed--16by9': 'tinymce__oxide--tiny-pageembed--16by9',
2338
- 'tiny-pageembed--4by3': 'tinymce__oxide--tiny-pageembed--4by3',
2339
- 'tiny-pageembed--1by1': 'tinymce__oxide--tiny-pageembed--1by1',
2340
- 'mce-visualblocks': 'tinymce__oxide--mce-visualblocks',
2341
- 'mce-resizehandle': 'tinymce__oxide--mce-resizehandle',
2342
- 'mce-resize-backdrop': 'tinymce__oxide--mce-resize-backdrop',
2343
- 'mce-clonedresizable': 'tinymce__oxide--mce-clonedresizable',
2344
- 'mce-resizetable-columns': 'tinymce__oxide--mce-resizetable-columns',
2345
- 'mce-resize-helper': 'tinymce__oxide--mce-resize-helper',
2346
- 'tox-rtc-user-selection': 'tinymce__oxide--tox-rtc-user-selection',
2347
- 'tox-rtc-user-cursor': 'tinymce__oxide--tox-rtc-user-cursor',
2348
- 'tox-rtc-user-selection--1': 'tinymce__oxide--tox-rtc-user-selection--1',
2349
- 'tox-rtc-user-selection--2': 'tinymce__oxide--tox-rtc-user-selection--2',
2350
- 'tox-rtc-user-selection--3': 'tinymce__oxide--tox-rtc-user-selection--3',
2351
- 'tox-rtc-user-selection--4': 'tinymce__oxide--tox-rtc-user-selection--4',
2352
- 'tox-rtc-user-selection--5': 'tinymce__oxide--tox-rtc-user-selection--5',
2353
- 'tox-rtc-user-selection--6': 'tinymce__oxide--tox-rtc-user-selection--6',
2354
- 'tox-rtc-user-selection--7': 'tinymce__oxide--tox-rtc-user-selection--7',
2355
- 'tox-rtc-user-selection--8': 'tinymce__oxide--tox-rtc-user-selection--8',
2356
- 'tox-rtc-remote-image': 'tinymce__oxide--tox-rtc-remote-image',
2357
- 'mce-match-marker': 'tinymce__oxide--mce-match-marker',
2358
- 'mce-match-marker-selected': 'tinymce__oxide--mce-match-marker-selected',
2359
- 'mce-content-readonly': 'tinymce__oxide--mce-content-readonly',
2360
- 'mce-edit-focus': 'tinymce__oxide--mce-edit-focus',
2361
- 'ephox-snooker-resizer-bar': 'tinymce__oxide--ephox-snooker-resizer-bar',
2362
- 'ephox-snooker-resizer-cols': 'tinymce__oxide--ephox-snooker-resizer-cols',
2363
- 'ephox-snooker-resizer-rows': 'tinymce__oxide--ephox-snooker-resizer-rows',
2364
- 'ephox-snooker-resizer-bar-dragging': 'tinymce__oxide--ephox-snooker-resizer-bar-dragging',
2365
- 'mce-spellchecker-word': 'tinymce__oxide--mce-spellchecker-word',
2366
- 'mce-spellchecker-grammar': 'tinymce__oxide--mce-spellchecker-grammar',
2367
- 'mce-toc': 'tinymce__oxide--mce-toc',
2368
- 'mce-item-table': 'tinymce__oxide--mce-item-table',
2369
- 'mce-nbsp': 'tinymce__oxide--mce-nbsp',
2370
- 'mce-shy': 'tinymce__oxide--mce-shy'
2371
- };
2372
- import { rceWrapperPropTypes } from './RCEWrapperProps';
2373
- import { insertPlaceholder, placeholderInfoFor, removePlaceholder } from '../util/loadingPlaceholder';
2374
- import { transformRceContentForEditing } from './transformContent';
2375
- import { IconMoreSolid } from '@instructure/ui-icons/es/svg';
2376
- import EncryptedStorage from '../util/encrypted-storage';
2377
- import buildStyle from './style';
2378
- const RestoreAutoSaveModal = /*#__PURE__*/React.lazy(() => import('./RestoreAutoSaveModal'));
2379
- const RceHtmlEditor = /*#__PURE__*/React.lazy(() => import('./RceHtmlEditor'));
2380
- const ASYNC_FOCUS_TIMEOUT = 250;
2381
- const DEFAULT_RCE_HEIGHT = '400px';
2382
- const skinCSS = skinCSSBinding.template().replace(/tinymce__oxide--/g, '');
2383
- const contentCSS = contentCSSBinding.template().replace(/tinymce__oxide--/g, '');
2384
-
2385
- function addKebabIcon(editor) {
2386
- // This has to be done here instead of of in plugins/instructure-ui-icons/plugin.ts
2387
- // presumably because the toolbar gets created before that plugin is loaded?
2388
- editor.ui.registry.addIcon('more-drawer', IconMoreSolid.src);
2389
- } // Get oxide the default skin injected into the DOM before the overrides loaded by themeable
2390
-
2391
-
2392
- let inserted = false;
2393
-
2394
- function injectTinySkin() {
2395
- if (inserted) return;
2396
- inserted = true;
2397
- const style = document.createElement('style');
2398
- style.setAttribute('data-skin', 'tiny oxide skin');
2399
- style.appendChild( // the .replace here is because the ui-themeable babel hook adds that prefix to all the class names
2400
- document.createTextNode(skinCSS)); // there's CSS from discussions that turns the instui Selectors bold
2401
- // and in classic quizzes that also mucks with padding
2402
-
2403
- style.appendChild(document.createTextNode(`
2404
- #discussion-edit-view .rce-wrapper input[readonly] {font-weight: normal;}
2405
- #quiz_edit_wrapper .rce-wrapper input[readonly] {font-weight: normal; padding-left: .75rem;}
2406
- `));
2407
- const beforeMe = document.head.querySelector('style[data-glamor]') || // find instui's themeable stylesheet
2408
- document.head.querySelector('style') || // find any stylesheet
2409
- document.head.firstElementChild;
2410
- document.head.insertBefore(style, beforeMe);
2411
- }
2412
-
2413
- const editorWrappers = new WeakMap();
2414
-
2415
- function focusToolbar(el) {
2416
- const $firstToolbarButton = el.querySelector('.tox-tbtn');
2417
- $firstToolbarButton && $firstToolbarButton.focus();
2418
- }
2419
-
2420
- function focusFirstMenuButton(el) {
2421
- const $firstMenu = el.querySelector('.tox-mbtn');
2422
- $firstMenu && $firstMenu.focus();
2423
- }
2424
-
2425
- function isElementWithinTable(node) {
2426
- let elem = node;
2427
-
2428
- while (elem) {
2429
- if (elem.tagName === 'TABLE' || elem.tagName === 'TD' || elem.tagName === 'TH') {
2430
- return true;
2431
- }
2432
-
2433
- elem = elem.parentElement;
2434
- }
2435
-
2436
- return false;
2437
- } // determines if localStorage is available for our use.
2438
- // see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API
2439
-
2440
-
2441
- export function storageAvailable() {
2442
- let storage;
2443
-
2444
- try {
2445
- storage = window.localStorage;
2446
- const x = '__storage_test__';
2447
- storage.setItem(x, x);
2448
- storage.removeItem(x);
2449
- return true;
2450
- } catch (e) {
2451
- return e instanceof DOMException && ( // everything except Firefox
2452
- e.code === 22 || // Firefox
2453
- e.code === 1014 || // test name field too, because code might not be present
2454
- // everything except Firefox
2455
- e.name === 'QuotaExceededError' || // Firefox
2456
- e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && // acknowledge QuotaExceededError only if there's something already stored
2457
- storage && storage.length !== 0;
2458
- }
2459
- }
2460
-
2461
- function getHtmlEditorCookie() {
2462
- const value = getCookie('rce.htmleditor');
2463
- return value === RAW_HTML_EDITOR_VIEW || value === PRETTY_HTML_EDITOR_VIEW ? value : PRETTY_HTML_EDITOR_VIEW;
2464
- }
2465
-
2466
- function renderLoading() {
2467
- return formatMessage('Loading');
2468
- }
2469
-
2470
- let alertIdValue = 0;
2471
-
2472
- class RCEWrapper extends React.Component {
2473
- static getByEditor(editor) {
2474
- return editorWrappers.get(editor);
2475
- }
2476
-
2477
- constructor(props) {
2478
- var _this, _window, _window$location, _props$editorOptions, _props$editorOptions2;
2479
-
2480
- super(props);
2481
- _this = this;
2482
-
2483
- this.onRemove = () => {
2484
- bridge.detachEditor(this);
2485
- this.props.onRemove && this.props.onRemove(this);
2486
- };
2487
-
2488
- this.toggleView = newView => {
2489
- // coming from the menubar, we don't have a newView,
2490
- let newState;
2491
-
2492
- switch (this.state.editorView) {
2493
- case WYSIWYG_VIEW:
2494
- newState = {
2495
- editorView: newView || PRETTY_HTML_EDITOR_VIEW
2496
- };
2497
- break;
2498
-
2499
- case PRETTY_HTML_EDITOR_VIEW:
2500
- newState = {
2501
- editorView: newView || WYSIWYG_VIEW
2502
- };
2503
- break;
2504
-
2505
- case RAW_HTML_EDITOR_VIEW:
2506
- newState = {
2507
- editorView: newView || WYSIWYG_VIEW
2508
- };
2509
- }
2510
-
2511
- this.setState(newState);
2512
- this.checkAccessibility();
2513
-
2514
- if (newView === PRETTY_HTML_EDITOR_VIEW || newView === RAW_HTML_EDITOR_VIEW) {
2515
- document.cookie = `rce.htmleditor=${newView};path=/;max-age=31536000`;
2516
- } // Emit view change event
2517
-
2518
-
2519
- this.mceInstance().fire(VIEW_CHANGE, {
2520
- target: this.editor,
2521
- newView: newState.editorView
2522
- });
2523
- };
2524
-
2525
- this.toggleFullscreen = () => {
2526
- this.handleClickFullscreen();
2527
- };
2528
-
2529
- this._onFullscreenChange = event => {
2530
- if (document[FS_ELEMENT]) {
2531
- var _window$visualViewpor;
2532
-
2533
- this.resizeObserver.observe(document[FS_ELEMENT]);
2534
- (_window$visualViewpor = window.visualViewport) === null || _window$visualViewpor === void 0 ? void 0 : _window$visualViewpor.addEventListener('resize', this._handleFullscreenResize);
2535
-
2536
- this._handleFullscreenResize();
2537
-
2538
- this._focusRegion = FocusRegionManager.activateRegion(document[FS_ELEMENT], {
2539
- shouldContainFocus: true
2540
- });
2541
- } else {
2542
- var _window$visualViewpor2;
2543
-
2544
- event.target.removeEventListener(FS_CHANGEEVENT, this._onFullscreenChange);
2545
- this.resizeObserver.unobserve(event.target);
2546
- (_window$visualViewpor2 = window.visualViewport) === null || _window$visualViewpor2 === void 0 ? void 0 : _window$visualViewpor2.removeEventListener('resize', this._handleFullscreenResize);
2547
-
2548
- this._setHeight(this.state.fullscreenState.prevHeight);
2549
-
2550
- if (this._focusRegion) {
2551
- FocusRegionManager.blurRegion(event.target, this._focusRegion.id);
2552
- }
2553
- }
2554
-
2555
- this.focusCurrentView();
2556
- };
2557
-
2558
- this._handleFullscreenResize = () => {
2559
- var _window$visualViewpor3, _document$FS_ELEMENT;
2560
-
2561
- const ht = ((_window$visualViewpor3 = window.visualViewport) === null || _window$visualViewpor3 === void 0 ? void 0 : _window$visualViewpor3.height) || ((_document$FS_ELEMENT = document[FS_ELEMENT]) === null || _document$FS_ELEMENT === void 0 ? void 0 : _document$FS_ELEMENT.offsetHeight);
2562
-
2563
- this._setHeight(ht - this._getStatusBarHeight());
2564
- };
2565
-
2566
- this.contentTrayClosing = false;
2567
- this.blurTimer = 0;
2568
-
2569
- this.handleFocusRCE = event => {
2570
- this.handleFocus(event);
2571
- };
2572
-
2573
- this.handleBlurRCE = event => {
2574
- var _this$_elementRef$cur;
2575
-
2576
- if (event.relatedTarget === null) {
2577
- // focus might be moving to tinymce
2578
- this.handleBlur(event);
2579
- }
2580
-
2581
- if (!((_this$_elementRef$cur = this._elementRef.current) !== null && _this$_elementRef$cur !== void 0 && _this$_elementRef$cur.contains(event.relatedTarget))) {
2582
- this.handleBlur(event);
2583
- }
2584
- };
2585
-
2586
- this.handleFocusEditor = (event, _editor) => {
2587
- // use .active to put a focus ring around the content area
2588
- // when the editor has focus. This isn't perfect, but it's
2589
- // what we've got for now.
2590
- const ifr = this.iframe;
2591
- ifr && ifr.parentElement.classList.add('active');
2592
- this.handleFocus(event);
2593
- };
2594
-
2595
- this.handleFocusHtmlEditor = event => {
2596
- this.handleFocus(event);
2597
- };
2598
-
2599
- this.handleBlurEditor = (event, _editor) => {
2600
- const ifr = this.iframe;
2601
- ifr && ifr.parentElement.classList.remove('active');
2602
- this.handleBlur(event);
2603
- };
2604
-
2605
- this.handleKey = event => {
2606
- if (event.code === 'F9' && event.altKey) {
2607
- event.preventDefault();
2608
- event.stopPropagation();
2609
- this.setFocusAbilityForHeader(true);
2610
- focusFirstMenuButton(this._elementRef.current);
2611
- } else if (event.code === 'F10' && event.altKey) {
2612
- event.preventDefault();
2613
- event.stopPropagation();
2614
- this.setFocusAbilityForHeader(true);
2615
- focusToolbar(this._elementRef.current);
2616
- } else if (event.code === 'F8' && event.altKey) {
2617
- event.preventDefault();
2618
- event.stopPropagation();
2619
- this.openKBShortcutModal();
2620
- } else if (event.code === 'Escape') {
2621
- bridge.hideTrays();
2622
- } else if (['n', 'N', 'd', 'D'].indexOf(event.key) !== -1) {
2623
- // Prevent key events from bubbling up on touch screen device
2624
- event.stopPropagation();
2625
- }
2626
- };
2627
-
2628
- this.handleClickFullscreen = () => {
2629
- if (this._isFullscreen()) {
2630
- this._exitFullscreen();
2631
- } else {
2632
- this._enterFullscreen();
2633
- }
2634
- };
2635
-
2636
- this.handleInputChange = () => {
2637
- this.checkAccessibility();
2638
- };
2639
-
2640
- this.onInit = (_event, editor) => {
2641
- var _this$props$onInitted, _this$props;
2642
-
2643
- editor.rceWrapper = this;
2644
- this.editor = editor;
2645
- const textarea = this.editor.getElement(); // expected by canvas
2646
-
2647
- textarea.dataset.rich_text = true; // start with the textarea and tinymce in sync
2648
-
2649
- textarea.value = this.getCode();
2650
- textarea.style.height = this.state.height;
2651
-
2652
- if (document.body.classList.contains('Underline-All-Links__enabled')) {
2653
- this.iframe.contentDocument.body.classList.add('Underline-All-Links__enabled');
2654
- }
2655
-
2656
- editor.on('wordCountUpdate', this.onWordCountUpdate); // add an aria-label to the application div that wraps RCE
2657
- // and change role from "application" to "document" to ensure
2658
- // the editor gets properly picked up by screen readers
2659
-
2660
- const tinyapp = document.querySelector('.tox-tinymce[role="application"]');
2661
-
2662
- if (tinyapp) {
2663
- tinyapp.setAttribute('aria-label', formatMessage('Rich Content Editor'));
2664
- tinyapp.setAttribute('role', 'document');
2665
- tinyapp.setAttribute('tabIndex', '-1');
2666
- } // Adds a focusout event listener for handling screen reader navigation focus
2667
-
2668
-
2669
- const header = this._elementRef.current.querySelector('.tox-editor-header');
2670
-
2671
- if (header) {
2672
- header.addEventListener('focusout', e => {
2673
- const leavingHeader = !header.contains(e.relatedTarget);
2674
-
2675
- if (leavingHeader) {
2676
- this.setFocusAbilityForHeader(false);
2677
- }
2678
- });
2679
- }
2680
-
2681
- this.setFocusAbilityForHeader(false); // Probably should do this in tinymce.scss, but we only want it in new rce
2682
-
2683
- textarea.style.resize = 'none';
2684
- editor.on('keydown', this.handleKey);
2685
- editor.on('FullscreenStateChanged', this._onFullscreenChange); // This propagates click events on the editor out of the iframe to the parent
2686
- // document. We need this so that click events get captured properly by instui
2687
- // focus-trapping components, so they properly ignore trapping focus on click.
2688
-
2689
- editor.on('click', () => window.document.body.click(), true);
2690
- editor.on('Cut Change input Undo Redo', debounce(this.handleInputChange, 1000));
2691
- this.announceContextToolbars(editor);
2692
-
2693
- if (this.isAutoSaving) {
2694
- this.initAutoSave(editor);
2695
- } // first view
2696
-
2697
-
2698
- this.setEditorView(this.state.editorView); // readonly should have been handled via the init property passed
2699
- // to <Editor>, but it's not.
2700
-
2701
- editor.mode.set(this.props.readOnly ? 'readonly' : 'design'); // Not using iframe_aria_text because compatibility issues.
2702
- // Not using iframe_attrs because library overwriting.
2703
-
2704
- if (this.iframe) {
2705
- this.iframe.setAttribute('title', formatMessage('Rich Text Area. Press {OSKey}+F8 for Rich Content Editor shortcuts.', {
2706
- OSKey: determineOSDependentKey()
2707
- }));
2708
- }
2709
-
2710
- this._setupSelectionSaving(editor);
2711
-
2712
- this.checkAccessibility();
2713
- this.fixToolbarKeyboardNavigation();
2714
- (_this$props$onInitted = (_this$props = this.props).onInitted) === null || _this$props$onInitted === void 0 ? void 0 : _this$props$onInitted.call(_this$props, editor);
2715
- };
2716
-
2717
- this.fixToolbarKeyboardNavigation = () => {
2718
- var _this$_elementRef$cur2;
2719
-
2720
- // The keyboard navigation config in tinymce for the expanded toolbar is incorrectly configured,
2721
- // and stops at [data-alloy-tabstop] elements.
2722
- // It should be configured to stop on .tox-toolbar__group elements.
2723
- // This workaround removes attribute, thusly causing navigation to work correctly again.
2724
- // For the correct solution, Keying.config should have { selector: '.tox-toolbar__group' }
2725
- // in https://github.com/tinymce/tinymce/blob/develop/modules/alloy/src/main/ts/ephox/alloy/ui/schema/SplitSlidingToolbarSchema.ts
2726
- (_this$_elementRef$cur2 = this._elementRef.current) === null || _this$_elementRef$cur2 === void 0 ? void 0 : _this$_elementRef$cur2.querySelectorAll('.tox-toolbar-overlord button[data-alloy-tabstop]').forEach(it => it.removeAttribute('data-alloy-tabstop'));
2727
- };
2728
-
2729
- this._setupSelectionSaving = editor => {
2730
- let savedSelection = null;
2731
- let selectionWasReset = false;
2732
- let editorHasFocus = false;
2733
-
2734
- const restoreSelectionIfNecessary = () => {
2735
- if (savedSelection && selectionWasReset) {
2736
- this.editor.selection.setRng(savedSelection.range, savedSelection.isForward);
2737
- selectionWasReset = false;
2738
- }
2739
- };
2740
-
2741
- editor.on('blur', () => {
2742
- editorHasFocus = false;
2743
- selectionWasReset = false;
2744
- savedSelection = {
2745
- range: this.editor.selection.getRng().cloneRange(),
2746
- isForward: this.editor.selection.isForward()
2747
- };
2748
- });
2749
- editor.on('focus', () => {
2750
- // We need to restore the selection when the editor regains focus because sometimes the editor regains
2751
- // focus without the user setting the selection themselves (such as when they interact with the toolbar)
2752
- // and if we didn't, we would end up saving the reset selection before a user managed to actually insert
2753
- // content.
2754
- restoreSelectionIfNecessary();
2755
- editorHasFocus = true;
2756
- selectionWasReset = false;
2757
- });
2758
- editor.on('SelectionChange', () => {
2759
- var _selection$startConta;
2760
-
2761
- if (editorHasFocus) {
2762
- // We don't care if a selection reset occurs when the editor has focus, the user probably intended that
2763
- // At least they will see the effect
2764
- return;
2765
- }
2766
-
2767
- const selection = this.editor.selection.normalize(); // Detect a browser-reset selection (e.g. From invoking the Find command)
2768
-
2769
- if (((_selection$startConta = selection.startContainer) === null || _selection$startConta === void 0 ? void 0 : _selection$startConta.nodeName) === 'BODY' && selection.startContainer === selection.endContainer && selection.startOffset === 0 && selection.endOffset === 0) {
2770
- selectionWasReset = true;
2771
- }
2772
- });
2773
- editor.on('BeforeExecCommand', () => {
2774
- restoreSelectionIfNecessary();
2775
- });
2776
- editor.on('ExecCommand', () => {
2777
- // Commands may have modified the selection, we need to recapture it
2778
- savedSelection = {
2779
- range: this.editor.selection.getRng().cloneRange(),
2780
- isForward: this.editor.selection.isForward()
2781
- };
2782
- });
2783
- };
2784
-
2785
- this.announcing = 0;
2786
-
2787
- this.initAutoSave = editor => {
2788
- var _this$props$userCache;
2789
-
2790
- this.storage = new EncryptedStorage((_this$props$userCache = this.props.userCacheKey) !== null && _this$props$userCache !== void 0 ? _this$props$userCache : '');
2791
-
2792
- if (this.storage) {
2793
- editor.on('change Undo Redo', this.doAutoSave);
2794
- editor.on('blur', this.doAutoSave);
2795
- this.cleanupAutoSave();
2796
-
2797
- try {
2798
- const autosaved = this.getAutoSaved(this.autoSaveKey);
2799
-
2800
- if (autosaved && autosaved.content) {
2801
- // We'll compare just the text of the autosave content, since
2802
- // Canvas is prone to swizzling images and iframes which will
2803
- // make the editor content and autosave content never match up
2804
- const editorContent = this.patchAutosavedContent(editor.getContent({
2805
- no_events: true
2806
- }), true);
2807
- const autosavedContent = this.patchAutosavedContent(autosaved.content, true);
2808
-
2809
- if (autosavedContent !== editorContent) {
2810
- this.setState({
2811
- confirmAutoSave: true,
2812
- autoSavedContent: this.patchAutosavedContent(autosaved.content)
2813
- });
2814
- } else {
2815
- this.storage.removeItem(this.autoSaveKey);
2816
- }
2817
- }
2818
- } catch (ex) {
2819
- // log and ignore
2820
- // eslint-disable-next-line no-console
2821
- console.error('Failed initializing rce autosave', ex);
2822
- }
2823
- }
2824
- };
2825
-
2826
- this.cleanupAutoSave = function () {
2827
- let deleteAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
2828
-
2829
- if (_this.storage) {
2830
- const expiry = deleteAll ? Date.now() : Date.now() - _this.props.autosave.maxAge;
2831
- let i = 0;
2832
- let key;
2833
-
2834
- while (key = _this.storage.key(i++)) {
2835
- if (/^rceautosave:/.test(key)) {
2836
- const autosaved = _this.getAutoSaved(key);
2837
-
2838
- if (autosaved && autosaved.autosaveTimestamp < expiry) {
2839
- _this.storage.removeItem(key);
2840
- }
2841
- }
2842
- }
2843
- }
2844
- };
2845
-
2846
- this.restoreAutoSave = ans => {
2847
- this.setState({
2848
- confirmAutoSave: false
2849
- }, () => {
2850
- const editor = this.mceInstance();
2851
-
2852
- if (ans) {
2853
- editor.setContent(this.state.autoSavedContent, {});
2854
- }
2855
-
2856
- this.storage.removeItem(this.autoSaveKey);
2857
- }); // let the content be restored
2858
-
2859
- debounce(this.checkAccessibility, 1000)();
2860
- };
2861
-
2862
- this.doAutoSave = function (e) {
2863
- let retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
2864
-
2865
- if (_this.storage) {
2866
- const editor = _this.mceInstance(); // if the editor is empty don't save
2867
-
2868
-
2869
- if (editor.dom.isEmpty(editor.getBody())) {
2870
- return;
2871
- }
2872
-
2873
- const content = editor.getContent({
2874
- no_events: true
2875
- });
2876
-
2877
- try {
2878
- _this.storage.setItem(_this.autoSaveKey, content);
2879
- } catch (ex) {
2880
- if (!retry) {
2881
- // probably failed because there's not enough space
2882
- // delete up all the other entries and try again
2883
- _this.cleanupAutoSave(true);
2884
-
2885
- _this.doAutoSave(e, true);
2886
- } else {
2887
- console.error('Autosave failed:', ex); // eslint-disable-line no-console
2888
- }
2889
- }
2890
- }
2891
- };
2892
-
2893
- this.onWordCountUpdate = e => {
2894
- const shouldIgnore = countShouldIgnore(this.editor, 'body', 'words');
2895
- const updatedCount = e.wordCount.words - shouldIgnore;
2896
- this.setState(state => {
2897
- if (updatedCount !== state.wordCount) {
2898
- return {
2899
- wordCount: updatedCount
2900
- };
2901
- } else return null;
2902
- });
2903
- };
2904
-
2905
- this.onNodeChange = e => {
2906
- // This is basically copied out of the tinymce silver theme code for the status bar
2907
- 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();
2908
- this.setState({
2909
- path
2910
- });
2911
- };
2912
-
2913
- this.onEditorChange = (content, _editor) => {
2914
- var _this$props$onContent, _this$props2;
2915
-
2916
- (_this$props$onContent = (_this$props2 = this.props).onContentChange) === null || _this$props$onContent === void 0 ? void 0 : _this$props$onContent.call(_this$props2, content); // check accessibility when clearing the editor,
2917
- // all other times should be checked by handleInputChange
2918
-
2919
- if (content === '') {
2920
- this.checkAccessibility();
2921
- }
2922
- };
2923
-
2924
- this.onResize = (_e, coordinates) => {
2925
- const editor = this.mceInstance();
2926
-
2927
- if (editor) {
2928
- const container = editor.getContainer();
2929
- if (!container) return;
2930
- const currentContainerHeight = Number.parseInt(container.style.height, 10);
2931
- if (isNaN(currentContainerHeight)) return; // eslint-disable-line no-restricted-globals
2932
-
2933
- const modifiedHeight = currentContainerHeight + coordinates.deltaY;
2934
- const newHeight = `${modifiedHeight}px`;
2935
- container.style.height = newHeight;
2936
- this.getTextarea().style.height = newHeight;
2937
- this.setState({
2938
- height: newHeight
2939
- }); // play nice and send the same event that the silver theme would send
2940
-
2941
- editor.fire('ResizeEditor');
2942
- }
2943
- };
2944
-
2945
- this.onA11yChecker = () => {
2946
- const editor = this.mceInstance();
2947
- editor.execCommand('openAccessibilityChecker', false, {
2948
- mountNode: instuiPopupMountNode,
2949
- onFixError: errors => {
2950
- this.setState({
2951
- a11yErrorsCount: errors.length
2952
- });
2953
- }
2954
- }, {
2955
- skip_focus: true
2956
- });
2957
- };
2958
-
2959
- this.checkAccessibility = () => {
2960
- const editor = this.mceInstance();
2961
- editor.execCommand('checkAccessibility', false, {
2962
- done: errors => {
2963
- this.setState({
2964
- a11yErrorsCount: errors.length
2965
- });
2966
- }
2967
- }, {
2968
- skip_focus: true
2969
- });
2970
- };
2971
-
2972
- this.openKBShortcutModal = () => {
2973
- this.setState({
2974
- KBShortcutModalOpen: true,
2975
- KBShortcutFocusReturn: document.activeElement
2976
- });
2977
- };
2978
-
2979
- this.closeKBShortcutModal = () => {
2980
- this.setState({
2981
- KBShortcutModalOpen: false
2982
- });
2983
- };
2984
-
2985
- this.KBShortcutModalExited = () => {
2986
- if (this.state.KBShortcutFocusReturn === this.iframe) {
2987
- // launched using a kb shortcut
2988
- // the iframe has focus so we need to forward it on to tinymce editor
2989
- this.editor.focus(false);
2990
- } else if (this.state.KBShortcutFocusReturn === document.getElementById(`show-on-focus-btn-${this.id}`)) {
2991
- var _this$_showOnFocusBut;
2992
-
2993
- // launched from showOnFocus button
2994
- // edge case where focusing KBShortcutFocusReturn doesn't work
2995
- (_this$_showOnFocusBut = this._showOnFocusButton) === null || _this$_showOnFocusBut === void 0 ? void 0 : _this$_showOnFocusBut.focus();
2996
- } else {
2997
- var _this$state$KBShortcu;
2998
-
2999
- // launched from kb shortcut button on status bar
3000
- (_this$state$KBShortcu = this.state.KBShortcutFocusReturn) === null || _this$state$KBShortcu === void 0 ? void 0 : _this$state$KBShortcu.focus();
3001
- }
3002
- };
3003
-
3004
- this.setFocusAbilityForHeader = focusable => {
3005
- // Sets aria-hidden to prevent screen readers focus in RCE menus and toolbar
3006
- const header = this._elementRef.current.querySelector('.tox-editor-header');
3007
-
3008
- if (header) {
3009
- header.setAttribute('aria-hidden', focusable ? 'false' : 'true');
3010
- }
3011
- };
3012
-
3013
- this.handleTextareaChange = () => {
3014
- if (this.isHidden()) {
3015
- this.setCode(this.textareaValue());
3016
- this.doAutoSave();
3017
- }
3018
- };
3019
-
3020
- this.addAlert = alert => {
3021
- alert.id = alertIdValue++;
3022
- this.setState(state => {
3023
- let messages = state.messages.concat(alert);
3024
- messages = _.uniqBy(messages, 'text'); // Don't show the same message twice
3025
-
3026
- return {
3027
- messages
3028
- };
3029
- });
3030
- };
3031
-
3032
- this.removeAlert = messageId => {
3033
- this.setState(state => {
3034
- const messages = state.messages.filter(message => message.id !== messageId);
3035
- return {
3036
- messages
3037
- };
3038
- });
3039
- };
3040
-
3041
- this.resetAlertId = () => {
3042
- if (this.state.messages.length > 0) {
3043
- throw new Error('There are messages currently, you cannot reset when they are non-zero');
3044
- }
3045
-
3046
- alertIdValue = 0;
3047
- };
3048
-
3049
- this.style = buildStyle(); // Set up some limited global state that can be referenced
3050
- // as needed in RCE's components and function / plugin definitions
3051
- // Not intended to be dynamically changed!
3052
-
3053
- RCEGlobals.setFeatures(this.getRequiredFeatureStatuses());
3054
- RCEGlobals.setConfig(this.getRequiredConfigValues());
3055
- this.editor = null; // my tinymce editor instance
3056
-
3057
- this.language = normalizeLocale(this.props.language); // interface consistent with editorBox
3058
-
3059
- this.get_code = this.getCode;
3060
- this.set_code = this.setCode;
3061
- this.insert_code = this.insertCode; // test override points
3062
-
3063
- this.indicator = false;
3064
- this._elementRef = /*#__PURE__*/React.createRef();
3065
- this._editorPlaceholderRef = /*#__PURE__*/React.createRef();
3066
- this._prettyHtmlEditorRef = /*#__PURE__*/React.createRef();
3067
- this._showOnFocusButton = null; // Process initial content
3068
-
3069
- this.initialContent = this.getRequiredFeatureStatuses().rce_transform_loaded_content ? transformRceContentForEditing(this.props.defaultContent, {
3070
- origin: this.props.canvasOrigin || ((_window = window) === null || _window === void 0 ? void 0 : (_window$location = _window.location) === null || _window$location === void 0 ? void 0 : _window$location.origin)
3071
- }) : this.props.defaultContent;
3072
- injectTinySkin(); // FWIW, for historic reaasons, the height does not include the
3073
- // height of the status bar (which used to be tinymce's)
3074
-
3075
- let _ht = ((_props$editorOptions = props.editorOptions) === null || _props$editorOptions === void 0 ? void 0 : _props$editorOptions.height) || DEFAULT_RCE_HEIGHT;
3076
-
3077
- if (!Number.isNaN(_ht)) {
3078
- _ht = `${_ht}px`;
3079
- }
3080
-
3081
- const currentRCECount = document.querySelectorAll('.rce-wrapper').length;
3082
- const maxInitRenderedRCEs = Number.isNaN(props.maxInitRenderedRCEs) ? RCEWrapper.defaultProps.maxInitRenderedRCEs : props.maxInitRenderedRCEs;
3083
- this.state = {
3084
- path: [],
3085
- wordCount: 0,
3086
- editorView: props.editorView || WYSIWYG_VIEW,
3087
- shouldShowOnFocusButton: props.renderKBShortcutModal === undefined ? true : props.renderKBShortcutModal,
3088
- KBShortcutModalOpen: false,
3089
- messages: [],
3090
- announcement: null,
3091
- confirmAutoSave: false,
3092
- autoSavedContent: '',
3093
- id: this.props.id || this.props.textareaId || `${uid('rce', 2)}`,
3094
- height: _ht,
3095
- fullscreenState: {
3096
- prevHeight: _ht
3097
- },
3098
- a11yErrorsCount: 0,
3099
- shouldShowEditor: typeof IntersectionObserver === 'undefined' || maxInitRenderedRCEs <= 0 || currentRCECount < maxInitRenderedRCEs
3100
- };
3101
- this._statusBarId = `${this.state.id}_statusbar`;
3102
- this.pendingEventHandlers = []; // Get top 2 favorited LTI Tools
3103
-
3104
- this.ltiToolFavorites = this.props.ltiTools.filter(e => e.favorite).map(e => `instructure_external_button_${e.id}`).slice(0, 2) || [];
3105
- this.pluginsToExclude = parsePluginsToExclude(((_props$editorOptions2 = props.editorOptions) === null || _props$editorOptions2 === void 0 ? void 0 : _props$editorOptions2.plugins) || []);
3106
- this.tinymceInitOptions = this.wrapOptions(props.editorOptions);
3107
- alertHandler.alertFunc = this.addAlert;
3108
- this.handleContentTrayClosing = this.handleContentTrayClosing.bind(this);
3109
- this.resizeObserver = new ResizeObserver(_entries => {
3110
- this._handleFullscreenResize();
3111
- });
3112
- } // when the RCE is put into fullscreen we need to move the div
3113
- // tinymce mounts popup menus into from the body to the rce-wrapper
3114
- // or the menus wind up behind the RCE. I can't find a way to
3115
- // configure tinymce to say where that div is mounted, do this
3116
- // is a bit of a hack to tag the div that is this RCE's
3117
-
3118
-
3119
- _tagTinymceAuxDiv() {
3120
- const tinyauxlist = document.querySelectorAll('.tox-tinymce-aux');
3121
-
3122
- if (tinyauxlist.length) {
3123
- const myaux = tinyauxlist[tinyauxlist.length - 1];
3124
-
3125
- if (myaux.id) {
3126
- // eslint-disable-next-line no-console
3127
- console.error('Unexpected ID on my tox-tinymce-aux element');
3128
- }
3129
-
3130
- myaux.id = `tinyaux-${this.id}`;
3131
- }
3132
- }
3133
-
3134
- _myTinymceAuxDiv() {
3135
- return document.getElementById(`tinyaux-${this.id}`);
3136
- }
3137
-
3138
- getRequiredFeatureStatuses() {
3139
- const {
3140
- new_math_equation_handling = false,
3141
- explicit_latex_typesetting = false,
3142
- rce_transform_loaded_content = false,
3143
- media_links_use_attachment_id = false
3144
- } = this.props.features;
3145
- return {
3146
- new_math_equation_handling,
3147
- explicit_latex_typesetting,
3148
- rce_transform_loaded_content,
3149
- media_links_use_attachment_id
3150
- };
3151
- }
3152
-
3153
- getRequiredConfigValues() {
3154
- return {
3155
- locale: normalizeLocale(this.props.language),
3156
- flashAlertTimeout: this.props.flashAlertTimeout,
3157
- timezone: this.props.timezone
3158
- };
3159
- }
3160
-
3161
- getCanvasUrl() {
3162
- return this.props.canvasOrigin;
3163
- } // getCode and setCode naming comes from tinyMCE
3164
- // kind of strange but want to be consistent
3165
-
3166
-
3167
- getCode() {
3168
- return this.isHidden() ? this.textareaValue() : this.mceInstance().getContent();
3169
- }
3170
-
3171
- checkReadyToGetCode(promptFunc) {
3172
- let status = true; // Check for remaining placeholders
3173
-
3174
- if (this.mceInstance().dom.doc.querySelector(`[data-placeholder-for]`)) {
3175
- status = promptFunc(formatMessage('Content is still being uploaded, if you continue it will not be embedded properly.'));
3176
- }
3177
-
3178
- return status;
3179
- }
3180
-
3181
- setCode(newContent) {
3182
- var _this$mceInstance;
3183
-
3184
- (_this$mceInstance = this.mceInstance()) === null || _this$mceInstance === void 0 ? void 0 : _this$mceInstance.setContent(newContent);
3185
- } // This function is called imperatively by the page that renders the RCE.
3186
- // It should be called when the RCE content is done being edited.
3187
-
3188
-
3189
- RCEClosed() {
3190
- // We want to clear the autosaved content, since the page was legitimately closed.
3191
- if (this.storage) {
3192
- this.storage.removeItem(this.autoSaveKey);
3193
- }
3194
- }
3195
-
3196
- indicateEditor(element) {
3197
- if (document.querySelector('[role="dialog"][data-mce-component]')) {
3198
- // there is a modal open, which zeros out the vertical scroll
3199
- // so the indicator is in the wrong place. Give it a chance to close
3200
- window.setTimeout(() => {
3201
- this.indicateEditor(element);
3202
- }, 100);
3203
- return;
3204
- }
3205
-
3206
- const editor = this.mceInstance();
3207
-
3208
- if (this.indicator) {
3209
- this.indicator(editor, element);
3210
- } else if (!this.isHidden()) {
3211
- indicate(indicatorRegion(editor, element));
3212
- }
3213
- }
3214
-
3215
- contentInserted(element) {
3216
- this.indicateEditor(element);
3217
- this.checkImageLoadError(element);
3218
- this.sizeEditorForContent(element);
3219
- } // make a attempt at sizing the editor so that the new content fits.
3220
- // works under the assumptions the body's box-sizing is not content-box
3221
- // and that the content is w/in a <p> whose margin is 12px top and bottom
3222
- // (which, in canvas, is set in app/stylesheets/components/_ic-typography.scss)
3223
-
3224
-
3225
- sizeEditorForContent(elem) {
3226
- let height;
3227
-
3228
- if (elem && elem.nodeType === 1) {
3229
- height = elem.clientHeight;
3230
- }
3231
-
3232
- if (height) {
3233
- const ifr = this.iframe;
3234
-
3235
- if (ifr) {
3236
- const editor_body_style = ifr.contentWindow.getComputedStyle(this.iframe.contentDocument.body);
3237
- const editor_ht = ifr.contentDocument.body.clientHeight - parseInt(editor_body_style['padding-top'], 10) - parseInt(editor_body_style['padding-bottom'], 10);
3238
- const para_margin_ht = 24;
3239
- const reserve_ht = Math.ceil(height + para_margin_ht);
3240
-
3241
- if (reserve_ht > editor_ht) {
3242
- this.onResize(null, {
3243
- deltaY: reserve_ht - editor_ht
3244
- });
3245
- }
3246
- }
3247
- }
3248
- }
3249
-
3250
- checkImageLoadError(element) {
3251
- if (!element || element.tagName !== 'IMG') {
3252
- return;
3253
- }
3254
-
3255
- if (!element.complete) {
3256
- element.onload = () => this.checkImageLoadError(element);
3257
-
3258
- return;
3259
- } // checking naturalWidth in a future event loop run prevents a race
3260
- // condition between the onload callback and naturalWidth being set.
3261
-
3262
-
3263
- setTimeout(() => {
3264
- if (element.naturalWidth === 0) {
3265
- element.style.border = '1px solid #000';
3266
- element.style.padding = '2px';
3267
- }
3268
- }, 0);
3269
- }
3270
-
3271
- insertCode(code) {
3272
- const editor = this.mceInstance();
3273
- const element = contentInsertion.insertContent(editor, code);
3274
- this.contentInserted(element);
3275
- }
3276
-
3277
- insertEmbedCode(code) {
3278
- const editor = this.mceInstance(); // don't replace selected text, but embed after
3279
-
3280
- editor.selection.collapse(); // tinymce treats iframes uniquely, and doesn't like adding attributes
3281
- // once it's in the editor, and I'd rather not parse the incomming html
3282
- // string with a regex, so let's create a temp copy, then add a title
3283
- // attribute if one doesn't exist. This will let screenreaders announce
3284
- // that there's some embedded content helper
3285
- // From what I've read, "title" is more reliable than "aria-label" for
3286
- // elements like iframes and embeds.
3287
-
3288
- const temp = document.createElement('div');
3289
- temp.innerHTML = code;
3290
- const code_elem = temp.firstElementChild;
3291
-
3292
- if (code_elem) {
3293
- if (!code_elem.hasAttribute('title') && !code_elem.hasAttribute('aria-label')) {
3294
- code_elem.setAttribute('title', formatMessage('embedded content'));
3295
- }
3296
-
3297
- code = code_elem.outerHTML;
3298
- } // inserting an iframe in tinymce (as is often the case with
3299
- // embedded content) causes it to wrap it in a span
3300
- // and it's often inserted into a <p> on top of that. Find the
3301
- // iframe and use it to flash the indicator.
3302
-
3303
-
3304
- const element = contentInsertion.insertContent(editor, code);
3305
- const ifr = element && element.querySelector && element.querySelector('iframe');
3306
-
3307
- if (ifr) {
3308
- this.contentInserted(ifr);
3309
- } else {
3310
- this.contentInserted(element);
3311
- }
3312
- }
3313
-
3314
- insertImage(image) {
3315
- var _element$nextSibling, _element$nextSibling$;
3316
-
3317
- const editor = this.mceInstance();
3318
- const element = contentInsertion.insertImage(editor, image, this.getCanvasUrl()); // Removes TinyMCE's caret &nbsp; text if exists.
3319
-
3320
- if (element !== null && element !== void 0 && (_element$nextSibling = element.nextSibling) !== null && _element$nextSibling !== void 0 && (_element$nextSibling$ = _element$nextSibling.data) !== null && _element$nextSibling$ !== void 0 && _element$nextSibling$.startsWith('\xA0'
3321
- /* nbsp */
3322
- )) {
3323
- element.nextSibling.splitText(1);
3324
- element.nextSibling.remove();
3325
- }
3326
-
3327
- return {
3328
- imageElem: element,
3329
- loadingPromise: new Promise((resolve, reject) => {
3330
- if (element && element.complete) {
3331
- this.contentInserted(element);
3332
- resolve();
3333
- } else if (element) {
3334
- element.onload = () => {
3335
- this.contentInserted(element);
3336
- resolve();
3337
- };
3338
-
3339
- element.onerror = e => {
3340
- this.checkImageLoadError(element);
3341
- reject(e);
3342
- };
3343
- }
3344
- })
3345
- };
3346
- }
3347
-
3348
- insertImagePlaceholder(fileMetaProps) {
3349
- return insertPlaceholder(this.mceInstance(), fileMetaProps.name, placeholderInfoFor(fileMetaProps));
3350
- }
3351
-
3352
- insertVideo(video) {
3353
- const editor = this.mceInstance();
3354
- const element = contentInsertion.insertVideo(editor, video, this.getCanvasUrl());
3355
- this.contentInserted(element);
3356
- }
3357
-
3358
- insertAudio(audio) {
3359
- const editor = this.mceInstance();
3360
- const element = contentInsertion.insertAudio(editor, audio, this.getCanvasUrl());
3361
- this.contentInserted(element);
3362
- }
3363
-
3364
- insertMathEquation(tex) {
3365
- const editor = this.mceInstance();
3366
- contentInsertion.insertEquation(editor, tex);
3367
- }
3368
-
3369
- removePlaceholders(name) {
3370
- removePlaceholder(this.mceInstance(), name);
3371
- }
3372
-
3373
- insertLink(link) {
3374
- const editor = this.mceInstance();
3375
- const element = contentInsertion.insertLink(editor, link, this.getCanvasUrl());
3376
- this.contentInserted(element);
3377
- }
3378
-
3379
- existingContentToLink() {
3380
- const editor = this.mceInstance();
3381
- return contentInsertion.existingContentToLink(editor);
3382
- }
3383
-
3384
- existingContentToLinkIsImg() {
3385
- const editor = this.mceInstance();
3386
- return contentInsertion.existingContentToLinkIsImg(editor);
3387
- } // since we may defer rendering tinymce, queue up any tinymce event handlers
3388
-
3389
-
3390
- tinymceOn(tinymceEventName, handler) {
3391
- if (this.state.shouldShowEditor) {
3392
- this.mceInstance().on(tinymceEventName, handler);
3393
- } else {
3394
- this.pendingEventHandlers.push({
3395
- name: tinymceEventName,
3396
- handler
3397
- });
3398
- }
3399
- }
3400
-
3401
- mceInstance() {
3402
- if (this.editor) {
3403
- return this.editor;
3404
- }
3405
-
3406
- const editors = this.props.tinymce.editors || [];
3407
- return editors.filter(ed => ed.id === this.props.textareaId)[0];
3408
- }
3409
-
3410
- onTinyMCEInstance(command) {
3411
- const editor = this.mceInstance();
3412
-
3413
- if (editor) {
3414
- if (command === 'mceRemoveEditor') {
3415
- editor.execCommand('mceNewDocument');
3416
- } // makes sure content can't persist past removal
3417
-
3418
-
3419
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
3420
- args[_key - 1] = arguments[_key];
3421
- }
3422
-
3423
- editor.execCommand(command, false, ...args);
3424
- }
3425
- }
3426
-
3427
- destroy() {
3428
- this._destroyCalled = true;
3429
- this.unhandleTextareaChange();
3430
- this.props.handleUnmount && this.props.handleUnmount();
3431
- }
3432
-
3433
- getTextarea() {
3434
- return document.getElementById(this.props.textareaId);
3435
- }
3436
-
3437
- textareaValue() {
3438
- return this.getTextarea().value;
3439
- }
3440
-
3441
- get id() {
3442
- return this.state.id;
3443
- }
3444
-
3445
- _isFullscreen() {
3446
- return !!(this.state.fullscreenState.isTinyFullscreen || document[FS_ELEMENT]);
3447
- }
3448
-
3449
- _enterFullscreen() {
3450
- // tinymce mounts its menus and toolbars in this element, which is in the DOM
3451
- // at the bottom of the body. When we're fullscreen the menus need to be mounted
3452
- // in the fullscreen element or they won't show up. Let's move tinymce's mount point
3453
- // when we go into fullscreen, then put it back when we're finished.
3454
- const tinymenuhost = this._myTinymceAuxDiv();
3455
-
3456
- if (tinymenuhost) {
3457
- tinymenuhost.remove();
3458
-
3459
- this._elementRef.current.appendChild(tinymenuhost);
3460
- }
3461
-
3462
- this._elementRef.current.addEventListener(FS_CHANGEEVENT, this._onFullscreenChange);
3463
-
3464
- this.setState({
3465
- fullscreenState: {
3466
- prevHeight: this._elementRef.current.offsetHeight - this._getStatusBarHeight()
3467
- }
3468
- });
3469
-
3470
- this._elementRef.current[FS_REQUEST]();
3471
- }
3472
-
3473
- _exitFullscreen() {
3474
- if (document[FS_ELEMENT]) {
3475
- const tinymenuhost = this._myTinymceAuxDiv();
3476
-
3477
- if (tinymenuhost) {
3478
- tinymenuhost.remove();
3479
- document.body.appendChild(tinymenuhost);
3480
- }
3481
-
3482
- document[FS_EXIT]();
3483
- }
3484
- }
3485
-
3486
- _getStatusBarHeight() {
3487
- // the height prop is the height of the editor and does not include
3488
- // the status bar. we'll need this later.
3489
- return document.getElementById(this._statusBarId).offsetHeight;
3490
- }
3491
-
3492
- _setHeight(newHeight) {
3493
- const cssHeight = `${newHeight}px`;
3494
- const ed = this.mceInstance();
3495
- const container = ed.getContainer();
3496
-
3497
- if (container) {
3498
- container.style.height = cssHeight;
3499
- ed.fire('ResizeEditor');
3500
- }
3501
-
3502
- this.getTextarea().style.height = cssHeight;
3503
- this.setState({
3504
- height: cssHeight
3505
- });
3506
- }
3507
-
3508
- focus() {
3509
- this.onTinyMCEInstance('mceFocus'); // tinymce doesn't always call the focus handler.
3510
-
3511
- this.handleFocusEditor(new Event('focus', {
3512
- target: this.mceInstance()
3513
- }));
3514
- }
3515
-
3516
- focusCurrentView() {
3517
- switch (this.state.editorView) {
3518
- case WYSIWYG_VIEW:
3519
- this.mceInstance().focus();
3520
- break;
3521
-
3522
- case PRETTY_HTML_EDITOR_VIEW:
3523
- {
3524
- const cmta = this._elementRef.current.querySelector('.CodeMirror textarea');
3525
-
3526
- if (cmta) {
3527
- cmta.focus();
3528
- } else {
3529
- window.setTimeout(() => {
3530
- var _this$_elementRef$cur3;
3531
-
3532
- (_this$_elementRef$cur3 = this._elementRef.current.querySelector('.CodeMirror textarea')) === null || _this$_elementRef$cur3 === void 0 ? void 0 : _this$_elementRef$cur3.focus();
3533
- }, 200);
3534
- }
3535
- }
3536
- break;
3537
-
3538
- case RAW_HTML_EDITOR_VIEW:
3539
- this.getTextarea().focus();
3540
- break;
3541
- }
3542
- }
3543
-
3544
- is_dirty() {
3545
- var _this$mceInstance2;
3546
-
3547
- if (this.mceInstance().isDirty()) {
3548
- return true;
3549
- }
3550
-
3551
- const currentHtml = this.isHidden() ? this.textareaValue() : (_this$mceInstance2 = this.mceInstance()) === null || _this$mceInstance2 === void 0 ? void 0 : _this$mceInstance2.getContent();
3552
- return currentHtml !== this._mceSerializedInitialHtml;
3553
- }
3554
- /**
3555
- * Holds a copy of the initial content of the editor as serialized by tinyMCE to normalize it.
3556
- */
3557
-
3558
-
3559
- get _mceSerializedInitialHtml() {
3560
- if (!this._mceSerializedInitialHtmlCached) {
3561
- const el = window.document.createElement('div');
3562
- el.innerHTML = this.initialContent;
3563
- const serializer = this.mceInstance().serializer;
3564
- this._mceSerializedInitialHtmlCached = serializer.serialize(el, {
3565
- getInner: true
3566
- });
3567
- }
3568
-
3569
- return this._mceSerializedInitialHtmlCached;
3570
- }
3571
-
3572
- isHtmlView() {
3573
- return this.state.editorView !== WYSIWYG_VIEW;
3574
- }
3575
-
3576
- isHidden() {
3577
- return this.mceInstance().isHidden();
3578
- }
3579
-
3580
- get iframe() {
3581
- return document.getElementById(`${this.props.textareaId}_ifr`);
3582
- } // these focus and blur event handlers work together so that RCEWrapper
3583
- // can report focus and blur events from the RCE at-large
3584
-
3585
-
3586
- get focused() {
3587
- return this === bridge.getEditor();
3588
- }
3589
-
3590
- handleFocus(_event) {
3591
- if (!this.focused) {
3592
- bridge.focusEditor(this);
3593
- this.props.onFocus && this.props.onFocus(this);
3594
- }
3595
- }
3596
-
3597
- handleContentTrayClosing(isClosing) {
3598
- this.contentTrayClosing = isClosing;
3599
- }
3600
-
3601
- handleBlur(event) {
3602
- if (this.blurTimer) return;
3603
-
3604
- if (this.focused) {
3605
- // because the old active element fires blur before the next element gets focus
3606
- // we often need a moment to see if focus comes back
3607
- event && event.persist && event.persist();
3608
- this.blurTimer = window.setTimeout(() => {
3609
- var _this$_elementRef$cur4, _event$focusedEditor, _event$relatedTarget, _event$relatedTarget$;
3610
-
3611
- this.blurTimer = 0;
3612
-
3613
- if (this.contentTrayClosing) {
3614
- // the CanvasContentTray is in the process of closing
3615
- // wait until it finishes
3616
- return;
3617
- }
3618
-
3619
- if ((_this$_elementRef$cur4 = this._elementRef.current) !== null && _this$_elementRef$cur4 !== void 0 && _this$_elementRef$cur4.contains(document.activeElement)) {
3620
- // focus is still somewhere w/in me
3621
- return;
3622
- }
3623
-
3624
- const activeClass = document.activeElement && document.activeElement.getAttribute('class');
3625
-
3626
- 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 && activeClass.includes('tox-')) {
3627
- // if a toolbar button has focus, then the user clicks on the "more" button
3628
- // focus jumps to the body, then eventually to the popped up toolbar. This
3629
- // catches that case.
3630
- return;
3631
- }
3632
-
3633
- 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 && _event$relatedTarget$.includes('tox-')) {
3634
- // a tinymce popup has focus
3635
- return;
3636
- }
3637
-
3638
- const popups = document.querySelectorAll('[data-mce-component]');
3639
-
3640
- for (const popup of popups) {
3641
- if (popup.contains(document.activeElement)) {
3642
- // one of our popups has focus
3643
- return;
3644
- }
3645
- }
3646
-
3647
- bridge.blurEditor(this);
3648
- this.props.onBlur && this.props.onBlur(event);
3649
- }, ASYNC_FOCUS_TIMEOUT);
3650
- }
3651
- }
3652
-
3653
- call(methodName) {
3654
- // since exists? has a ? and cant be a regular function just return true
3655
- // rather than calling as a fn on the editor
3656
- if (methodName === 'exists?') {
3657
- return true;
3658
- }
3659
-
3660
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
3661
- args[_key2 - 1] = arguments[_key2];
3662
- }
3663
-
3664
- return this[methodName](...args);
3665
- }
3666
-
3667
- announceContextToolbars(editor) {
3668
- editor.on('NodeChange', () => {
3669
- const node = editor.selection.getNode();
3670
-
3671
- if (isImageEmbed(node, editor)) {
3672
- if (this.announcing !== 1) {
3673
- this.setState({
3674
- announcement: formatMessage('type Control F9 to access image options. {text}', {
3675
- text: node.getAttribute('alt')
3676
- })
3677
- });
3678
- this.announcing = 1;
3679
- }
3680
- } else if (isFileLink(node, editor)) {
3681
- if (this.announcing !== 2) {
3682
- this.setState({
3683
- announcement: formatMessage('type Control F9 to access link options. {text}', {
3684
- text: node.textContent
3685
- })
3686
- });
3687
- this.announcing = 2;
3688
- }
3689
- } else if (isElementWithinTable(node, editor)) {
3690
- if (this.announcing !== 3) {
3691
- this.setState({
3692
- announcement: formatMessage('type Control F9 to access table options. {text}', {
3693
- text: node.textContent
3694
- })
3695
- });
3696
- this.announcing = 3;
3697
- }
3698
- } else {
3699
- this.setState({
3700
- announcement: null
3701
- });
3702
- this.announcing = 0;
3703
- }
3704
- });
3705
- }
3706
- /* ********** autosave support *************** */
3707
-
3708
-
3709
- // if a placeholder image shows up in autosaved content, we have to remove it
3710
- // because the data url gets converted to a blob, which is not valid when restored.
3711
- // besides, the placeholder is intended to be temporary while the file
3712
- // is being uploaded
3713
- patchAutosavedContent(content, asText) {
3714
- const temp = document.createElement('div');
3715
- temp.innerHTML = content;
3716
- temp.querySelectorAll('[data-placeholder-for]').forEach(placeholder => {
3717
- placeholder.parentElement.removeChild(placeholder);
3718
- });
3719
- if (asText) return temp.textContent;
3720
- return temp.innerHTML;
3721
- }
3722
-
3723
- getAutoSaved(key) {
3724
- let autosaved = null;
3725
-
3726
- try {
3727
- autosaved = this.storage && this.storage.getItem(key);
3728
- } catch (_ex) {
3729
- this.storage.removeItem(this.autoSaveKey);
3730
- }
3731
-
3732
- return autosaved;
3733
- } // only autosave if the feature flag is set, and there is only 1 RCE on the page
3734
- // the latter condition is necessary because the popup RestoreAutoSaveModal
3735
- // is lousey UX when there are >1
3736
-
3737
-
3738
- get isAutoSaving() {
3739
- // If the editor is invisible for some reason, don't show the autosave modal
3740
- // This doesn't apply if the editor is off-screen or has visibility:hidden;
3741
- // only if it isn't rendered or has display:none;
3742
- const editorVisible = this.editor.getContainer().offsetParent;
3743
- return this.props.autosave.enabled && editorVisible && document.querySelectorAll('.rce-wrapper').length === 1 && storageAvailable();
3744
- }
3745
-
3746
- get autoSaveKey() {
3747
- var _this$props$trayProps;
3748
-
3749
- const userId = (_this$props$trayProps = this.props.trayProps) === null || _this$props$trayProps === void 0 ? void 0 : _this$props$trayProps.containingContext.userId;
3750
- return `rceautosave:${userId}${window.location.href}:${this.props.textareaId}`;
3751
- }
3752
-
3753
- componentWillUnmount() {
3754
- if (this.state.shouldShowEditor) {
3755
- var _this$mutationObserve, _this$intersectionObs;
3756
-
3757
- window.clearTimeout(this.blurTimer);
3758
-
3759
- if (!this._destroyCalled) {
3760
- this.destroy();
3761
- }
3762
-
3763
- this._elementRef.current.removeEventListener('keydown', this.handleKey, true);
3764
-
3765
- (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.disconnect();
3766
- (_this$intersectionObs = this.intersectionObserver) === null || _this$intersectionObs === void 0 ? void 0 : _this$intersectionObs.disconnect();
3767
- }
3768
- }
3769
-
3770
- wrapOptions() {
3771
- var _this$props$trayProps2, _this$props$trayProps3, _this$props$trayProps4, _sanitizePlugins;
3772
-
3773
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3774
- 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);
3775
- const userLocale = editorLanguage(this.language);
3776
- const setupCallback = options.setup;
3777
- const canvasPlugins = rcsExists ? ['instructure_image', 'instructure_documents', 'instructure_equation'] : [];
3778
-
3779
- if (rcsExists && !this.props.instRecordDisabled) {
3780
- canvasPlugins.splice(2, 0, 'instructure_record');
3781
- }
3782
-
3783
- const pastePlugins = rcsExists ? ['instructure_paste', 'paste'] : ['paste'];
3784
-
3785
- 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') {
3786
- canvasPlugins.push('instructure_icon_maker');
3787
- }
3788
-
3789
- if (document[FS_ENABLED]) {
3790
- canvasPlugins.push('instructure_fullscreen');
3791
- }
3792
-
3793
- const possibleNewMenubarItems = this.props.editorOptions.menu ? Object.keys(this.props.editorOptions.menu).join(' ') : undefined;
3794
- const wrappedOpts = { ...defaultTinymceConfig,
3795
- ...options,
3796
- readonly: this.props.readOnly,
3797
- theme: 'silver',
3798
- // some older code specified 'modern', which doesn't exist any more
3799
- height: options.height || DEFAULT_RCE_HEIGHT,
3800
- language: userLocale,
3801
- document_base_url: this.props.canvasOrigin,
3802
- block_formats: options.block_formats || [`${formatMessage('Heading 2')}=h2`, `${formatMessage('Heading 3')}=h3`, `${formatMessage('Heading 4')}=h4`, `${formatMessage('Preformatted')}=pre`, `${formatMessage('Paragraph')}=p`].join('; '),
3803
- setup: editor => {
3804
- var _bridge$trayProps;
3805
-
3806
- addKebabIcon(editor);
3807
- editorWrappers.set(editor, this);
3808
- const trayPropsWithColor = {
3809
- brandColor: this.style.theme.canvasBrandColor,
3810
- ...this.props.trayProps
3811
- };
3812
- (_bridge$trayProps = bridge.trayProps) === null || _bridge$trayProps === void 0 ? void 0 : _bridge$trayProps.set(editor, trayPropsWithColor);
3813
- bridge.userLocale = userLocale;
3814
- bridge.canvasOrigin = this.props.canvasOrigin;
3815
-
3816
- if (typeof setupCallback === 'function') {
3817
- setupCallback(editor);
3818
- }
3819
- },
3820
- // Consumers can, and should!, still pass a content_css prop so that the content
3821
- // in the editor matches the styles of the app it will be displayed in when saved.
3822
- // This is just so we inject the helper class names that tinyMCE uses for
3823
- // things like table resizing and stuff.
3824
- content_css: options.content_css || [],
3825
- content_style: contentCSS,
3826
- menubar: mergeMenuItems('edit view insert format tools table', possibleNewMenubarItems),
3827
- // default menu options listed at https://www.tiny.cloud/docs/configure/editor-appearance/#menu
3828
- // tinymce's default edit and table menus are fine
3829
- // note: the tinymce paste command is used here instead of instructure_paste
3830
- // since we currently can't effectively paste using the clipboard api anyway.
3831
- // we include all the canvas specific items in the menu and toolbar
3832
- // and rely on tinymce only showing them if the plugin is provided.
3833
- menu: mergeMenu({
3834
- edit: {
3835
- title: formatMessage('Edit'),
3836
- items: `undo redo | cut copy paste | selectall`
3837
- },
3838
- format: {
3839
- title: formatMessage('Format'),
3840
- items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align directionality | forecolor backcolor | removeformat'
3841
- },
3842
- insert: {
3843
- title: formatMessage('Insert'),
3844
- items: 'instructure_links instructure_image instructure_media instructure_document instructure_icon_maker | instructure_equation inserttable instructure_media_embed | hr'
3845
- },
3846
- tools: {
3847
- title: formatMessage('Tools'),
3848
- items: 'instructure_wordcount lti_tools_menuitem'
3849
- },
3850
- view: {
3851
- title: formatMessage('View'),
3852
- items: 'instructure_fullscreen instructure_exit_fullscreen instructure_html_view'
3853
- }
3854
- }, options.menu),
3855
- toolbar: mergeToolbar([{
3856
- name: formatMessage('Styles'),
3857
- items: ['fontsizeselect', 'formatselect']
3858
- }, {
3859
- name: formatMessage('Formatting'),
3860
- items: ['bold', 'italic', 'underline', 'forecolor', 'backcolor', 'inst_subscript', 'inst_superscript']
3861
- }, {
3862
- name: formatMessage('Content'),
3863
- items: ['instructure_links', 'instructure_image', 'instructure_record', 'instructure_documents', 'instructure_icon_maker']
3864
- }, {
3865
- name: formatMessage('External Tools'),
3866
- items: [...this.ltiToolFavorites, 'lti_tool_dropdown', 'lti_mru_button']
3867
- }, {
3868
- name: formatMessage('Alignment and Lists'),
3869
- items: ['align', 'bullist', 'inst_indent', 'inst_outdent']
3870
- }, {
3871
- name: formatMessage('Miscellaneous'),
3872
- items: ['removeformat', 'table', 'instructure_equation', 'instructure_media_embed']
3873
- }], options.toolbar),
3874
- contextmenu: '',
3875
- // show the browser's native context menu
3876
- toolbar_mode: 'sliding',
3877
- toolbar_sticky: true,
3878
- // In regards to the ability to disable plugins:
3879
- // we only have to explicitly manage the removal of plugins
3880
- // here, i.e., we don't have to explicitly remove them from the
3881
- // menu and toolbar merging. At this time, tinymce itself
3882
- // handles all of that complexity. It that ever changes in the
3883
- // future in an upgraded version, we will have to update the
3884
- // logic in those other places as well.
3885
- plugins: mergePlugins(['autolink', 'media', 'table', 'link', 'directionality', 'lists', 'textpattern', 'hr', 'instructure-ui-icons', 'instructure_condensed_buttons', 'instructure_links', 'instructure_html_view', 'instructure_media_embed', 'a11y_checker', 'wordcount', 'instructure_wordcount', 'instructure_studio_media_options', 'instructure_rce_external_tools', ...pastePlugins, ...canvasPlugins], // filter out the plugins designated for removal
3886
- (_sanitizePlugins = sanitizePlugins(options.plugins)) === null || _sanitizePlugins === void 0 ? void 0 : _sanitizePlugins.filter(p => p.length > 0 && p[0] !== '-'), this.pluginsToExclude),
3887
- textpattern_patterns: [{
3888
- start: '* ',
3889
- cmd: 'InsertUnorderedList'
3890
- }, {
3891
- start: '- ',
3892
- cmd: 'InsertUnorderedList'
3893
- }]
3894
- };
3895
-
3896
- if (this.props.trayProps) {
3897
- wrappedOpts.canvas_rce_user_context = {
3898
- type: this.props.trayProps.contextType,
3899
- id: this.props.trayProps.contextId
3900
- };
3901
- wrappedOpts.canvas_rce_containing_context = {
3902
- type: this.props.trayProps.containingContext.contextType,
3903
- id: this.props.trayProps.containingContext.contextId
3904
- };
3905
- }
3906
-
3907
- return wrappedOpts;
3908
- }
3909
-
3910
- unhandleTextareaChange() {
3911
- if (this._textareaEl) {
3912
- this._textareaEl.removeEventListener('input', this.handleTextareaChange);
3913
- }
3914
- }
3915
-
3916
- registerTextareaChange() {
3917
- const el = this.getTextarea();
3918
-
3919
- if (this._textareaEl !== el) {
3920
- this.unhandleTextareaChange();
3921
-
3922
- if (el) {
3923
- el.addEventListener('input', this.handleTextareaChange);
3924
-
3925
- if (this.props.textareaClassName) {
3926
- // split the string on whitespace because classList doesn't let you add multiple
3927
- // space seperated classes at a time but does let you add an array of them
3928
- el.classList.add(...this.props.textareaClassName.split(/\s+/));
3929
- }
3930
-
3931
- this._textareaEl = el;
3932
- }
3933
- }
3934
- }
3935
-
3936
- componentDidMount() {
3937
- if (this.state.shouldShowEditor) {
3938
- this.editorReallyDidMount();
3939
- } else {
3940
- this.intersectionObserver = new IntersectionObserver(entries => {
3941
- const entry = entries[0];
3942
-
3943
- if (entry.isIntersecting || entry.intersectionRatio > 0) {
3944
- this.setState({
3945
- shouldShowEditor: true
3946
- });
3947
- }
3948
- }, // initialize the RCE when it gets close to entering the viewport
3949
- {
3950
- root: null,
3951
- rootMargin: '200px 0px',
3952
- threshold: 0.0
3953
- });
3954
- this.intersectionObserver.observe(this._editorPlaceholderRef.current);
3955
- }
3956
- }
3957
-
3958
- componentDidUpdate(prevProps, prevState) {
3959
- if (this.state.shouldShowEditor) {
3960
- if (!prevState.shouldShowEditor) {
3961
- var _this$intersectionObs2;
3962
-
3963
- this.editorReallyDidMount();
3964
- (_this$intersectionObs2 = this.intersectionObserver) === null || _this$intersectionObs2 === void 0 ? void 0 : _this$intersectionObs2.disconnect();
3965
- } else {
3966
- this.registerTextareaChange();
3967
-
3968
- if (prevState.editorView !== this.state.editorView) {
3969
- this.setEditorView(this.state.editorView);
3970
- this.focusCurrentView();
3971
- }
3972
-
3973
- if (prevProps.readOnly !== this.props.readOnly) {
3974
- this.mceInstance().mode.set(this.props.readOnly ? 'readonly' : 'design');
3975
- }
3976
- }
3977
- }
3978
- }
3979
-
3980
- editorReallyDidMount() {
3981
- const myTiny = this.mceInstance();
3982
- this.pendingEventHandlers.forEach(e => {
3983
- myTiny.on(e.name, e.handler);
3984
- });
3985
-
3986
- this._tagTinymceAuxDiv();
3987
-
3988
- this.registerTextareaChange();
3989
-
3990
- this._elementRef.current.addEventListener('keydown', this.handleKey, true); // give the textarea its initial size
3991
-
3992
-
3993
- this.onResize(null, {
3994
- deltaY: 0
3995
- }); // Preload the LTI Tools modal
3996
- // This helps with loading the favorited external tools
3997
-
3998
- if (this.ltiToolFavorites.length > 0) {
3999
- import('./plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog');
4000
- }
4001
-
4002
- bridge.renderEditor(this);
4003
- }
4004
-
4005
- setEditorView(view) {
4006
- var _this$getTextarea$lab, _this$getTextarea$lab2, _this$getTextarea$lab3, _this$getTextarea$lab4, _this$_elementRef$cur5, _this$getTextarea$lab5, _this$getTextarea$lab6;
4007
-
4008
- switch (view) {
4009
- case RAW_HTML_EDITOR_VIEW:
4010
- this.getTextarea().removeAttribute('aria-hidden');
4011
- (_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');
4012
- this.mceInstance().hide();
4013
- break;
4014
-
4015
- case PRETTY_HTML_EDITOR_VIEW:
4016
- this.getTextarea().setAttribute('aria-hidden', true);
4017
- (_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);
4018
- this.mceInstance().hide();
4019
- (_this$_elementRef$cur5 = this._elementRef.current.querySelector('.CodeMirror')) === null || _this$_elementRef$cur5 === void 0 ? void 0 : _this$_elementRef$cur5.CodeMirror.setCursor(0, 0);
4020
- break;
4021
-
4022
- case WYSIWYG_VIEW:
4023
- this.setCode(this.textareaValue());
4024
- this.getTextarea().setAttribute('aria-hidden', true);
4025
- (_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);
4026
- this.mceInstance().show();
4027
- }
4028
- }
4029
-
4030
- renderHtmlEditor() {
4031
- // the div keeps the editor from collapsing while the code editor is downloaded
4032
- return /*#__PURE__*/React.createElement(Suspense, {
4033
- fallback: /*#__PURE__*/React.createElement("div", {
4034
- style: {
4035
- height: this.state.height,
4036
- display: 'flex',
4037
- justifyContent: 'center',
4038
- alignItems: 'center'
4039
- }
4040
- }, /*#__PURE__*/React.createElement(Spinner, {
4041
- renderTitle: renderLoading,
4042
- size: "medium"
4043
- }))
4044
- }, /*#__PURE__*/React.createElement(View, {
4045
- as: "div",
4046
- borderRadius: "medium",
4047
- borderWidth: "small"
4048
- }, /*#__PURE__*/React.createElement(RceHtmlEditor, {
4049
- ref: this._prettyHtmlEditorRef,
4050
- height: this.state.height,
4051
- code: this.getCode(),
4052
- onChange: value => {
4053
- this.getTextarea().value = value;
4054
- this.handleTextareaChange();
4055
- },
4056
- onFocus: this.handleFocusHtmlEditor
4057
- })));
4058
- }
4059
-
4060
- render() {
4061
- var _this$props$trayProps5, _this$props$trayProps6, _this$props$trayProps7, _this$props$trayProps8, _this$props$trayProps9;
4062
-
4063
- const {
4064
- trayProps,
4065
- ...mceProps
4066
- } = this.props;
4067
-
4068
- if (!this.state.shouldShowEditor) {
4069
- return /*#__PURE__*/React.createElement("div", {
4070
- ref: this._editorPlaceholderRef,
4071
- style: {
4072
- height: `${this.props.editorOptions.height}px`,
4073
- border: '1px solid grey'
4074
- }
4075
- });
4076
- }
4077
-
4078
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, this.style.css), /*#__PURE__*/React.createElement(StoreProvider, {
4079
- jwt: (_this$props$trayProps5 = this.props.trayProps) === null || _this$props$trayProps5 === void 0 ? void 0 : _this$props$trayProps5.jwt,
4080
- refreshToken: (_this$props$trayProps6 = this.props.trayProps) === null || _this$props$trayProps6 === void 0 ? void 0 : _this$props$trayProps6.refreshToken,
4081
- host: (_this$props$trayProps7 = this.props.trayProps) === null || _this$props$trayProps7 === void 0 ? void 0 : _this$props$trayProps7.host,
4082
- contextType: (_this$props$trayProps8 = this.props.trayProps) === null || _this$props$trayProps8 === void 0 ? void 0 : _this$props$trayProps8.contextType,
4083
- contextId: (_this$props$trayProps9 = this.props.trayProps) === null || _this$props$trayProps9 === void 0 ? void 0 : _this$props$trayProps9.contextId,
4084
- canvasOrigin: this.props.canvasOrigin
4085
- }, storeProps => {
4086
- var _this$props$trayProps10;
4087
-
4088
- return /*#__PURE__*/React.createElement("div", {
4089
- key: this.id,
4090
- className: `${this.style.classNames.root} rce-wrapper`,
4091
- ref: this._elementRef,
4092
- onFocus: this.handleFocusRCE,
4093
- onBlur: this.handleBlurRCE
4094
- }, this.state.shouldShowOnFocusButton && /*#__PURE__*/React.createElement(ShowOnFocusButton, {
4095
- id: `show-on-focus-btn-${this.id}`,
4096
- onClick: this.openKBShortcutModal,
4097
- margin: "xx-small",
4098
- screenReaderLabel: formatMessage('View keyboard shortcuts'),
4099
- ref: el => this._showOnFocusButton = el
4100
- }, /*#__PURE__*/React.createElement(IconKeyboardShortcutsLine, null)), /*#__PURE__*/React.createElement(AlertMessageArea, {
4101
- messages: this.state.messages,
4102
- liveRegion: this.props.liveRegion,
4103
- afterDismiss: this.removeAlert
4104
- }), this.state.editorView === PRETTY_HTML_EDITOR_VIEW && this.renderHtmlEditor(), /*#__PURE__*/React.createElement("div", {
4105
- style: {
4106
- display: this.state.editorView === PRETTY_HTML_EDITOR_VIEW ? 'none' : 'block'
4107
- }
4108
- }, /*#__PURE__*/React.createElement(Editor, {
4109
- id: mceProps.textareaId,
4110
- textareaName: mceProps.name,
4111
- init: this.tinymceInitOptions,
4112
- initialValue: this.initialContent,
4113
- onInit: this.onInit,
4114
- onClick: this.handleFocusEditor,
4115
- onKeypress: this.handleFocusEditor,
4116
- onActivate: this.handleFocusEditor,
4117
- onRemove: this.onRemove,
4118
- onFocus: this.handleFocusEditor,
4119
- onBlur: this.handleBlurEditor,
4120
- onNodeChange: this.onNodeChange,
4121
- onEditorChange: this.onEditorChange,
4122
- liveRegion: this.props.liveRegion
4123
- })), /*#__PURE__*/React.createElement(StatusBar, {
4124
- id: this._statusBarId,
4125
- rceIsFullscreen: this._isFullscreen(),
4126
- readOnly: this.props.readOnly,
4127
- onChangeView: newView => this.toggleView(newView),
4128
- path: this.state.path,
4129
- wordCount: this.state.wordCount,
4130
- editorView: this.state.editorView,
4131
- preferredHtmlEditor: getHtmlEditorCookie(),
4132
- onResize: this.onResize,
4133
- onKBShortcutModalOpen: this.openKBShortcutModal,
4134
- onA11yChecker: this.onA11yChecker,
4135
- onFullscreen: this.handleClickFullscreen,
4136
- a11yBadgeColor: this.style.theme.canvasBadgeBackgroundColor,
4137
- a11yErrorsCount: this.state.a11yErrorsCount,
4138
- onWordcountModalOpen: () => launchWordcountModal(this.mceInstance(), document, {
4139
- skipEditorFocus: true
4140
- }),
4141
- disabledPlugins: this.pluginsToExclude
4142
- }), ((_this$props$trayProps10 = this.props.trayProps) === null || _this$props$trayProps10 === void 0 ? void 0 : _this$props$trayProps10.containingContext) && /*#__PURE__*/React.createElement(CanvasContentTray, Object.assign({
4143
- mountNode: instuiPopupMountNode,
4144
- key: this.id,
4145
- canvasOrigin: this.getCanvasUrl(),
4146
- bridge: bridge,
4147
- editor: this,
4148
- onTrayClosing: this.handleContentTrayClosing,
4149
- use_rce_icon_maker: this.props.use_rce_icon_maker
4150
- }, trayProps, {
4151
- storeProps: storeProps
4152
- })), /*#__PURE__*/React.createElement(KeyboardShortcutModal, {
4153
- onExited: this.KBShortcutModalExited,
4154
- onDismiss: this.closeKBShortcutModal,
4155
- open: this.state.KBShortcutModalOpen
4156
- }), this.state.confirmAutoSave ? /*#__PURE__*/React.createElement(Suspense, {
4157
- fallback: /*#__PURE__*/React.createElement(Spinner, {
4158
- renderTitle: renderLoading,
4159
- size: "small"
4160
- })
4161
- }, /*#__PURE__*/React.createElement(RestoreAutoSaveModal, {
4162
- savedContent: this.state.autoSavedContent,
4163
- open: this.state.confirmAutoSave,
4164
- onNo: () => this.restoreAutoSave(false),
4165
- onYes: () => this.restoreAutoSave(true)
4166
- })) : null, /*#__PURE__*/React.createElement(Alert, {
4167
- screenReaderOnly: true,
4168
- liveRegion: this.props.liveRegion
4169
- }, this.state.announcement));
4170
- }));
4171
- }
4172
-
4173
- } // standard: string of tinymce menu commands
4174
- // e.g. 'instructure_links | inserttable instructure_media_embed | hr'
4175
- // custom: a string of tinymce menu commands
4176
- // returns: standard + custom with any duplicate commands removed from custom
4177
-
4178
-
4179
- RCEWrapper.propTypes = rceWrapperPropTypes;
4180
- RCEWrapper.defaultProps = {
4181
- trayProps: null,
4182
- autosave: {
4183
- enabled: false
4184
- },
4185
- highContrastCSS: [],
4186
- ltiTools: [],
4187
- maxInitRenderedRCEs: -1,
4188
- features: {},
4189
- 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,
4190
- canvasOrigin: ''
4191
- };
4192
- RCEWrapper.skinCssInjected = false;
4193
-
4194
- function mergeMenuItems(standard, custom) {
4195
- var _custom$trim;
4196
-
4197
- let c = custom === null || custom === void 0 ? void 0 : (_custom$trim = custom.trim) === null || _custom$trim === void 0 ? void 0 : _custom$trim.call(custom);
4198
- if (!c) return standard;
4199
- const s = new Set(standard.split(/[\s|]+/)); // remove any duplicates
4200
-
4201
- c = c.split(/\s+/).filter(m => !s.has(m));
4202
- c = c.join(' ').replace(/^\s*\|\s*/, '').replace(/\s*\|\s*$/, '');
4203
- return `${standard} | ${c}`;
4204
- } // standard: the incoming tinymce menu object
4205
- // custom: tinymce menu object to merge into standard
4206
- // returns: the merged result by mutating incoming standard arg.
4207
- // It will add commands to existing menus, or add a new menu
4208
- // if the custom one does not exist
4209
-
4210
-
4211
- function mergeMenu(standard, custom) {
4212
- if (!custom) return standard;
4213
- Object.keys(custom).forEach(k => {
4214
- const curr_m = standard[k];
4215
-
4216
- if (curr_m) {
4217
- curr_m.items = mergeMenuItems(curr_m.items, custom[k].items);
4218
- } else {
4219
- standard[k] = { ...custom[k]
4220
- };
4221
- }
4222
- });
4223
- return standard;
4224
- } // standard: incoming tinymce toolbar array
4225
- // custom: tinymce toolbar array to merge into standard
4226
- // returns: the merged result by mutating the incoming standard arg.
4227
- // It will add commands to existing toolbars, or add a new toolbar
4228
- // if the custom one does not exist
4229
-
4230
-
4231
- function mergeToolbar(standard, custom) {
4232
- if (!custom) return standard; // merge given toolbar data into the default toolbar
4233
-
4234
- custom.forEach(tb => {
4235
- const curr_tb = standard.find(t => tb.name && formatMessage(tb.name) === t.name);
4236
-
4237
- if (curr_tb) {
4238
- curr_tb.items.splice(curr_tb.items.length, 0, ...tb.items);
4239
- } else {
4240
- standard.push(tb);
4241
- }
4242
- });
4243
- return standard;
4244
- } // standard: incoming array of plugin names
4245
- // custom: array of plugin names to merge
4246
- // exclusions: array of plugins to remove
4247
- // returns: the merged result, duplicates and exclusions removed
4248
-
4249
-
4250
- function mergePlugins(standard) {
4251
- let custom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
4252
- let exclusions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
4253
- const union = new Set(standard);
4254
-
4255
- for (const c of custom) {
4256
- union.add(c);
4257
- }
4258
-
4259
- for (const e of exclusions) {
4260
- union.delete(e);
4261
- }
4262
-
4263
- return [...union];
4264
- } // plugins is an array of strings
4265
- // the convention is that plugins starting with '-',
4266
- // i.e. a hyphen, are to be disabled in the RCE instance
4267
-
4268
-
4269
- function parsePluginsToExclude(plugins) {
4270
- return plugins.filter(plugin => plugin.length > 0 && plugin[0] === '-').map(pluginToIgnore => pluginToIgnore.slice(1));
4271
- }
4272
-
4273
- export default RCEWrapper;
4274
- export { mergeMenuItems, mergeMenu, mergeToolbar, mergePlugins, parsePluginsToExclude };