@instructure/canvas-rce 5.14.1 → 5.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/DEVELOPMENT.md +2 -2
- package/README.md +0 -8
- package/__tests__/common/indicate.test.js +84 -0
- package/__tests__/common/mimeClass.test.js +85 -0
- package/__tests__/module/contentInsertionUtils.test.js +52 -0
- package/__tests__/module/indicatorRegion.test.js +75 -0
- package/__tests__/module/normalizeLocale.test.js +46 -0
- package/__tests__/module/normalizeProps.test.js +51 -0
- package/__tests__/module/sanitizePlugins.test.js +48 -0
- package/__tests__/module/wrapInitCb.test.js +56 -0
- package/__tests__/rcs/api.test.js +819 -0
- package/{mocha-reporter-config.js → __tests__/sidebar/actions/all_files.test.js} +10 -9
- package/__tests__/sidebar/actions/data.test.js +196 -0
- package/__tests__/sidebar/actions/utils.js +44 -0
- package/{es/rce/__mocks__/_mockStudioPlayer.js → __tests__/sidebar/reducers/all_files.test.js} +12 -4
- package/babel.config.js +3 -1
- package/es/bridge/Bridge.js +18 -73
- package/es/bridge/index.js +1 -0
- package/es/canvasFileBrowser/FileBrowser.js +21 -77
- package/es/canvasFileBrowser/en-US.js +3 -6
- package/es/common/FlashAlert.js +15 -39
- package/es/common/browser.js +4 -2
- package/es/common/fileUrl.js +105 -64
- package/es/common/incremental-loading/LoadMoreButton.js +4 -4
- package/es/common/incremental-loading/LoadingIndicator.js +1 -2
- package/es/common/incremental-loading/LoadingStatus.js +5 -13
- package/es/common/incremental-loading/index.js +1 -0
- package/es/common/incremental-loading/useIncrementalLoading.js +1 -3
- package/es/common/indicate.js +16 -10
- package/es/common/mimeClass.js +3 -4
- package/es/common/natcompare.js +1 -4
- package/es/defaultTinymceConfig.js +5 -3
- package/es/elementDenylist.js +1 -0
- package/es/enhance-user-content/doc_previews.js +24 -35
- package/es/enhance-user-content/enhance_user_content.js +32 -67
- package/es/enhance-user-content/external_links.js +6 -9
- package/es/enhance-user-content/index.js +1 -0
- package/es/enhance-user-content/instructure_helper.js +22 -50
- package/es/enhance-user-content/jqueryish_funcs.js +8 -11
- package/es/enhance-user-content/mathml.js +48 -107
- package/es/enhance-user-content/media_comment_thumbnail.js +6 -25
- package/es/format-message.js +4 -5
- package/es/getThemeVars.js +8 -6
- package/es/getTranslations.js +1 -78
- package/es/index.d.ts +59 -0
- package/es/index.js +6 -6
- package/es/rce/AlertMessageArea.js +15 -16
- package/es/rce/DraggingBlocker.js +4 -2
- package/es/rce/KeyboardShortcutModal.js +3 -2
- package/es/rce/RCE.js +16 -17
- package/es/rce/RCEGlobals.js +12 -10
- package/es/rce/RCEVariants.js +29 -14
- package/es/rce/RCEWrapper.js +530 -641
- package/es/rce/RCEWrapper.utils.js +131 -0
- package/es/rce/RCEWrapperProps.js +9 -5
- package/es/rce/RceHtmlEditor.js +17 -19
- package/es/rce/ResizeHandle.js +4 -10
- package/es/rce/RestoreAutoSaveModal.js +1 -2
- package/es/rce/ShowOnFocusButton/index.js +2 -8
- package/es/rce/StatusBar.js +10 -44
- package/es/rce/alertHandler.js +1 -4
- package/es/rce/contentInsertion.js +36 -59
- package/es/rce/contentInsertionUtils.js +6 -8
- package/es/rce/contentRendering.js +13 -17
- package/es/rce/customEvents.js +1 -0
- package/es/rce/editorLanguage.js +23 -11
- package/es/rce/indicatorRegion.js +7 -7
- package/es/rce/normalizeLocale.js +5 -3
- package/es/rce/normalizeProps.js +7 -5
- package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
- package/es/rce/plugins/instructure_color/clickCallback.js +82 -0
- package/es/rce/plugins/instructure_color/components/ColorPicker.js +294 -0
- package/es/rce/plugins/instructure_color/components/ColorPopup.js +67 -0
- package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
- package/es/rce/plugins/instructure_color/plugin.js +40 -0
- package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
- package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
- package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
- package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
- package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
- package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +26 -25
- package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +2 -3
- package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
- package/es/rce/plugins/instructure_documents/components/Link.js +4 -20
- package/es/rce/plugins/instructure_documents/plugin.js +7 -14
- package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
- package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
- package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +17 -37
- package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +14 -15
- package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +6 -5
- package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
- package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +14 -8
- package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +13 -18
- package/es/rce/plugins/instructure_equation/MathIcon/index.js +4 -5
- package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
- package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
- package/es/rce/plugins/instructure_equation/mathlive/index.js +167 -16
- package/es/rce/plugins/instructure_equation/plugin.js +7 -10
- package/es/rce/plugins/instructure_fullscreen/plugin.js +1 -6
- package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
- package/es/rce/plugins/instructure_icon_maker/clickCallback.js +5 -8
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +47 -51
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +10 -10
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +11 -11
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +6 -6
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +8 -10
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +32 -31
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +24 -35
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +32 -32
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +11 -11
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +16 -15
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +11 -11
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +9 -13
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +12 -13
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +33 -80
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +34 -28
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +5 -5
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +7 -8
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +5 -7
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +5 -10
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +38 -60
- package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
- package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
- package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
- package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
- package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +2 -4
- package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
- package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
- package/es/rce/plugins/instructure_icon_maker/svg/image.js +74 -90
- package/es/rce/plugins/instructure_icon_maker/svg/index.js +17 -24
- package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/svg/settings.js +48 -58
- package/es/rce/plugins/instructure_icon_maker/svg/shape.js +5 -54
- package/es/rce/plugins/instructure_icon_maker/svg/text.js +35 -124
- package/es/rce/plugins/instructure_icon_maker/svg/utils.js +3 -11
- package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +4 -9
- package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
- package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
- package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +2 -3
- package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
- package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +9 -31
- package/es/rce/plugins/instructure_image/ImageList/Image.js +8 -14
- package/es/rce/plugins/instructure_image/ImageList/index.js +8 -10
- package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +9 -31
- package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +6 -19
- package/es/rce/plugins/instructure_image/Images/index.js +1 -3
- package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_image/plugin.js +14 -20
- package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_links/components/AccordionSection.js +8 -8
- package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
- package/es/rce/plugins/instructure_links/components/Link.js +68 -84
- package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +2 -23
- package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +3 -6
- package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
- package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +3 -14
- package/es/rce/plugins/instructure_links/components/LinkSet.js +32 -57
- package/es/rce/plugins/instructure_links/components/LinksPanel.js +22 -10
- package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
- package/es/rce/plugins/instructure_links/components/NoResults.js +7 -14
- package/es/rce/plugins/instructure_links/plugin.js +23 -49
- package/es/rce/plugins/instructure_links/validateURL.js +81 -36
- package/es/rce/plugins/instructure_media_embed/clickCallback.js +5 -9
- package/es/rce/plugins/instructure_media_embed/components/Embed.js +7 -7
- package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
- package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
- package/es/rce/plugins/instructure_paste/plugin.js +29 -33
- package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +31 -79
- package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +24 -83
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +39 -69
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +5 -14
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
- package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
- package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
- package/es/rce/plugins/instructure_rce_external_tools/constants.js +28 -0
- package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +20 -6
- package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
- package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +129 -136
- package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +110 -112
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +4 -21
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +5 -19
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +23 -16
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +3 -4
- package/es/rce/plugins/instructure_rce_external_tools/plugin.js +11 -20
- package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
- package/es/rce/plugins/instructure_rce_external_tools/util/externalToolsForToolbar.js +42 -0
- package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +6 -35
- package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +13 -17
- package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
- package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +16 -66
- package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +21 -35
- package/es/rce/plugins/instructure_record/clickCallback.js +32 -44
- package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
- package/es/rce/plugins/instructure_record/plugin.js +11 -18
- package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +4 -8
- package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +34 -51
- package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +12 -30
- package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
- package/es/rce/plugins/instructure_search_and_replace/plugin.js +2 -5
- package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
- package/es/rce/plugins/instructure_wordcount/clickCallback.js +5 -9
- package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +27 -37
- package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
- package/es/rce/plugins/instructure_wordcount/utils/countContent.js +4 -11
- package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +6 -8
- package/es/rce/plugins/shared/CanvasContentTray.js +29 -63
- package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
- package/es/rce/plugins/shared/ColorInput.js +27 -39
- package/es/rce/plugins/shared/ConditionalTooltip.js +6 -6
- package/es/rce/plugins/shared/ContentSelection.js +29 -78
- package/es/rce/plugins/shared/DimensionUtils.js +3 -12
- package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
- package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
- package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
- package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
- package/es/rce/plugins/shared/EventUtils.js +2 -4
- package/es/rce/plugins/shared/Filter.js +8 -38
- package/es/rce/plugins/shared/FixedContentTray.js +16 -17
- package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +4 -12
- package/es/rce/plugins/shared/ImageCropper/Modal.js +16 -20
- package/es/rce/plugins/shared/ImageCropper/Preview.js +18 -24
- package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +10 -14
- package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +4 -4
- package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +5 -15
- package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +8 -11
- package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +5 -16
- package/es/rce/plugins/shared/ImageCropper/controls/index.js +5 -5
- package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +16 -31
- package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
- package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +19 -31
- package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
- package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
- package/es/rce/plugins/shared/ImageCropper/svg/shape.js +5 -22
- package/es/rce/plugins/shared/ImageCropper/svg/utils.js +3 -4
- package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +20 -50
- package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
- package/es/rce/plugins/shared/ImageOptionsForm.js +18 -20
- package/es/rce/plugins/shared/LinkDisplay.js +9 -11
- package/es/rce/plugins/shared/PreviewIcon.js +9 -15
- package/es/rce/plugins/shared/Previewable.js +1 -0
- package/es/rce/plugins/shared/RceFileBrowser.js +7 -10
- package/es/rce/plugins/shared/StoreContext.js +9 -12
- package/es/rce/plugins/shared/StudioLtiSupportUtils.js +15 -12
- package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
- package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +19 -25
- package/es/rce/plugins/shared/Upload/CategoryProcessor.js +2 -3
- package/es/rce/plugins/shared/Upload/ComputerPanel.js +19 -40
- package/es/rce/plugins/shared/Upload/PanelFilter.js +10 -20
- package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
- package/es/rce/plugins/shared/Upload/UploadFile.js +32 -38
- package/es/rce/plugins/shared/Upload/UploadFileModal.js +37 -59
- package/es/rce/plugins/shared/Upload/UrlPanel.js +5 -5
- package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +25 -36
- package/es/rce/plugins/shared/Upload/doFileUpload.js +10 -13
- package/es/rce/plugins/shared/Upload/index.js +1 -0
- package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +8 -11
- package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +19 -40
- package/es/rce/plugins/shared/ai_tools/aiicons.js +3 -2
- package/es/rce/plugins/shared/ai_tools/index.js +1 -0
- package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
- package/es/rce/plugins/shared/canvasContentUtils.js +7 -11
- package/es/rce/plugins/shared/compressionUtils.js +18 -28
- package/es/rce/plugins/shared/dateUtils.js +1 -1
- package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
- package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +18 -24
- package/es/rce/plugins/shared/do-fetch-api-effect/get-cookie.js +1 -1
- package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
- package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
- package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
- package/es/rce/plugins/shared/fileShape.js +4 -9
- package/es/rce/plugins/shared/fileTypeUtils.js +34 -47
- package/es/rce/plugins/shared/fileUtils.js +1 -2
- package/es/rce/plugins/shared/linkUtils.js +1 -16
- package/es/rce/plugins/shared/round.js +2 -2
- package/es/rce/plugins/shared/trayUtils.js +7 -3
- package/es/rce/plugins/shared/useDataUrl.js +13 -14
- package/es/rce/plugins/shared/useFilterSettings.js +3 -3
- package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +4 -8
- package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +12 -72
- package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +2 -9
- package/es/rce/plugins/tinymce-a11y-checker/plugin.js +18 -24
- package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
- package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
- package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +2 -7
- package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
- package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +2 -6
- package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
- package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
- package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +2 -8
- package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
- package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
- package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
- package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +3 -30
- package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +18 -18
- package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +6 -12
- package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
- package/es/rce/root.js +17 -16
- package/es/rce/sanitizePlugins.js +1 -3
- package/es/rce/style.js +1 -4
- package/es/rce/tinyRCE.js +14 -9
- package/es/rce/tinymce.oxide.content.min.css.js +1 -0
- package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
- package/es/rce/transformContent.js +9 -11
- package/es/rce/types.js +1 -0
- package/es/rce/userOS.js +1 -1
- package/es/rce/wrapInitCb.js +50 -43
- package/es/rcs/api.js +100 -171
- package/es/rcs/buildError.js +8 -20
- package/es/rcs/fake.js +9 -20
- package/es/sidebar/actions/all_files.js +2 -0
- package/es/sidebar/actions/data.js +4 -7
- package/es/sidebar/actions/documents.js +19 -18
- package/es/sidebar/actions/files.js +21 -28
- package/es/sidebar/actions/filter.js +5 -5
- package/es/sidebar/actions/flickr.js +1 -1
- package/es/sidebar/actions/images.js +32 -37
- package/es/sidebar/actions/links.js +1 -0
- package/es/sidebar/actions/media.js +27 -28
- package/es/sidebar/actions/session.js +2 -5
- package/es/sidebar/actions/ui.js +1 -0
- package/es/sidebar/actions/upload.js +38 -74
- package/es/sidebar/containers/Sidebar.js +1 -2
- package/es/sidebar/containers/sidebarHandlers.js +9 -13
- package/es/sidebar/dragHtml.js +11 -5
- package/es/sidebar/reducers/all_files.js +5 -6
- package/es/sidebar/reducers/collection.js +12 -15
- package/es/sidebar/reducers/collections.js +6 -8
- package/es/sidebar/reducers/documents.js +7 -16
- package/es/sidebar/reducers/files.js +4 -6
- package/es/sidebar/reducers/filter.js +8 -23
- package/es/sidebar/reducers/flickr.js +10 -12
- package/es/sidebar/reducers/folder.js +16 -18
- package/es/sidebar/reducers/folders.js +4 -6
- package/es/sidebar/reducers/images.js +4 -16
- package/es/sidebar/reducers/index.js +3 -1
- package/es/sidebar/reducers/media.js +7 -16
- package/es/sidebar/reducers/newPageLinkExpanded.js +2 -5
- package/es/sidebar/reducers/noop.js +2 -2
- package/es/sidebar/reducers/rootFolderId.js +2 -5
- package/es/sidebar/reducers/session.js +4 -6
- package/es/sidebar/reducers/ui.js +6 -25
- package/es/sidebar/reducers/upload.js +16 -64
- package/es/sidebar/store/configureStore.js +1 -0
- package/es/sidebar/store/initialState.js +14 -26
- package/es/translations/locales/ab.js +1 -0
- package/es/translations/locales/ar.js +72 -8
- package/es/translations/locales/ca.js +72 -8
- package/es/translations/locales/cs.js +1 -0
- package/es/translations/locales/cs_CZ.js +1 -0
- package/es/translations/locales/cy.js +72 -8
- package/es/translations/locales/da-x-k12.js +72 -8
- package/es/translations/locales/da.js +72 -8
- package/es/translations/locales/da_DK.js +1 -0
- package/es/translations/locales/de.js +72 -8
- package/es/translations/locales/el.js +4 -0
- package/es/translations/locales/en-AU-x-unimelb.js +72 -8
- package/es/translations/locales/en-GB-x-ukhe.js +72 -8
- package/es/translations/locales/en.js +72 -8
- package/es/translations/locales/en_AU.js +72 -8
- package/es/translations/locales/en_CA.js +72 -8
- package/es/translations/locales/en_CY.js +72 -8
- package/es/translations/locales/en_GB.js +72 -8
- package/es/translations/locales/en_NZ.js +1 -0
- package/es/translations/locales/en_SE.js +1 -0
- package/es/translations/locales/en_US.js +1 -0
- package/es/translations/locales/es.js +72 -8
- package/es/translations/locales/es_ES.js +72 -8
- package/es/translations/locales/es_GT.js +1 -0
- package/es/translations/locales/fa_IR.js +7 -0
- package/es/translations/locales/fi.js +72 -8
- package/es/translations/locales/fr.js +72 -8
- package/es/translations/locales/fr_CA.js +73 -9
- package/es/translations/locales/ga.js +5 -13
- package/es/translations/locales/he.js +7 -0
- package/es/translations/locales/hi.js +72 -8
- package/es/translations/locales/ht.js +72 -8
- package/es/translations/locales/hu.js +7 -6
- package/es/translations/locales/hu_HU.js +1 -0
- package/es/translations/locales/hy.js +1 -0
- package/es/translations/locales/id.js +72 -8
- package/es/translations/locales/id_ID.js +1 -0
- package/es/translations/locales/is.js +72 -8
- package/es/translations/locales/it.js +72 -8
- package/es/translations/locales/ja.js +72 -8
- package/es/translations/locales/ko.js +1 -0
- package/es/translations/locales/ko_KR.js +1 -0
- package/es/translations/locales/lt.js +1 -0
- package/es/translations/locales/lt_LT.js +1 -0
- package/es/translations/locales/mi.js +72 -8
- package/es/translations/locales/mn_MN.js +1 -0
- package/es/translations/locales/ms.js +72 -8
- package/es/translations/locales/nb-x-k12.js +72 -8
- package/es/translations/locales/nb.js +72 -8
- package/es/translations/locales/nl.js +72 -8
- package/es/translations/locales/nl_NL.js +1 -0
- package/es/translations/locales/nn.js +7 -6
- package/es/translations/locales/pl.js +72 -8
- package/es/translations/locales/pt.js +72 -8
- package/es/translations/locales/pt_BR.js +72 -8
- package/es/translations/locales/ro.js +1 -0
- package/es/translations/locales/ru.js +72 -8
- package/es/translations/locales/se.js +1 -0
- package/es/translations/locales/sl.js +72 -8
- package/es/translations/locales/sv-x-k12.js +72 -8
- package/es/translations/locales/sv.js +72 -8
- package/es/translations/locales/sv_SE.js +1 -0
- package/es/translations/locales/tg.js +1 -0
- package/es/translations/locales/th.js +72 -8
- package/es/translations/locales/th_TH.js +1 -0
- package/es/translations/locales/tl_PH.js +1 -0
- package/es/translations/locales/tr.js +7 -0
- package/es/translations/locales/uk_UA.js +7 -0
- package/es/translations/locales/vi.js +72 -8
- package/es/translations/locales/vi_VN.js +1 -0
- package/es/translations/locales/zh-Hans.js +72 -8
- package/es/translations/locales/zh-Hant.js +72 -8
- package/es/translations/locales/zh.js +72 -8
- package/es/translations/locales/zh_HK.js +72 -8
- package/es/translations/locales/zh_TW.Big5.js +1 -0
- package/es/translations/locales/zh_TW.js +1 -0
- package/es/translations/tinymce/ar_SA.js +1 -0
- package/es/translations/tinymce/fi.js +1 -0
- package/es/translations/tinymce/ga.js +1 -0
- package/es/translations/tinymce/id.js +1 -0
- package/es/translations/tinymce/ru.js +1 -0
- package/es/translations/tinymce/ru_RU.js +1 -0
- package/es/translations/tinymce/sl.js +1 -0
- package/es/translations/tinymce/sr.js +1 -0
- package/es/translations/tinymce/th.js +1 -0
- package/es/translations/tinymce/uk_UA.js +1 -0
- package/es/translations/tinymce/vi_VN.js +1 -0
- package/es/util/TypedDict.js +4 -2
- package/es/util/elem-util.js +1 -1
- package/es/util/encrypted-storage.js +3 -13
- package/es/util/file-url-util.js +2 -7
- package/es/util/fullscreenHelpers.js +9 -9
- package/es/util/instui-icon-helper.js +4 -3
- package/es/util/loadingPlaceholder.js +39 -41
- package/es/util/simpleCache.js +1 -5
- package/es/util/string-util.js +1 -1
- package/es/util/textarea-editing-util.js +3 -7
- package/es/util/tinymce-plugin-util.js +0 -5
- package/es/util/url-util.js +20 -29
- package/eslint.config.js +250 -0
- package/jest.config.js +1 -1
- package/locales/en.json +190 -10
- package/package.json +78 -82
- package/scripts/build-canvas +2 -1
- package/scripts/build.js +4 -4
- package/scripts/installTranslations.js +7 -8
- package/testcafe/RCEWrapper.test.js +0 -1
- package/testcafe/StatusBar.test.js +0 -1
- package/testcafe/axe.test.js +3 -4
- package/testcafe/enhanceUserContent.test.js +0 -1
- package/tsconfig.json +21 -16
- package/{es/rce/__mocks__/styleMock.js → types/format-message-generate-id.d.ts} +6 -2
- package/{es/rce/plugins/shared/__mocks__/screenfull.js → types/js-beautify.d.ts} +4 -7
- package/.eslintrc +0 -45
- package/.prettierignore +0 -6
- package/es/rce/__mocks__/_mockCryptoEs.js +0 -124
- package/es/rce/__mocks__/tinymceReact.js +0 -55
- package/es/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { REQUEST_INITIAL_PAGE, REQUEST_PAGE, RECEIVE_PAGE, FAIL_PAGE } from '../actions/data'; // manages the state for a specific collection. assumes the action is intended
|
|
19
|
-
// for this collection (see collections.js)
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
23
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
19
|
+
import { REQUEST_INITIAL_PAGE, REQUEST_PAGE, RECEIVE_PAGE, FAIL_PAGE } from '../actions/data';
|
|
24
20
|
|
|
21
|
+
// manages the state for a specific collection. assumes the action is intended
|
|
22
|
+
// for this collection (see collections.js)
|
|
23
|
+
export default function (state = {}, action) {
|
|
25
24
|
switch (action.type) {
|
|
26
25
|
case REQUEST_INITIAL_PAGE:
|
|
27
|
-
return {
|
|
26
|
+
return {
|
|
27
|
+
...state,
|
|
28
28
|
links: [],
|
|
29
29
|
bookmark: null,
|
|
30
30
|
isLoading: true,
|
|
@@ -32,23 +32,22 @@ export default function () {
|
|
|
32
32
|
hasMore: true,
|
|
33
33
|
searchString: action.searchString
|
|
34
34
|
};
|
|
35
|
-
|
|
36
35
|
case REQUEST_PAGE:
|
|
37
|
-
return {
|
|
36
|
+
return {
|
|
37
|
+
...state,
|
|
38
38
|
isLoading: true,
|
|
39
39
|
cancel: action.cancel
|
|
40
40
|
};
|
|
41
|
-
|
|
42
41
|
case RECEIVE_PAGE:
|
|
43
42
|
// add links to collection, store bookmark if more, resolve loading
|
|
44
|
-
return {
|
|
43
|
+
return {
|
|
44
|
+
...state,
|
|
45
45
|
links: state.links.concat(action.links),
|
|
46
46
|
bookmark: action.bookmark,
|
|
47
47
|
isLoading: false,
|
|
48
48
|
cancel: null,
|
|
49
49
|
hasMore: !!action.bookmark
|
|
50
50
|
};
|
|
51
|
-
|
|
52
51
|
case FAIL_PAGE:
|
|
53
52
|
{
|
|
54
53
|
const overrides = {
|
|
@@ -56,16 +55,14 @@ export default function () {
|
|
|
56
55
|
cancel: null,
|
|
57
56
|
error: action.error
|
|
58
57
|
};
|
|
59
|
-
|
|
60
58
|
if (state.links.length === 0) {
|
|
61
59
|
overrides.bookmark = null;
|
|
62
60
|
}
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
return {
|
|
62
|
+
...state,
|
|
65
63
|
...overrides
|
|
66
64
|
};
|
|
67
65
|
}
|
|
68
|
-
|
|
69
66
|
default:
|
|
70
67
|
return state;
|
|
71
68
|
}
|
|
@@ -15,15 +15,14 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { REQUEST_INITIAL_PAGE, REQUEST_PAGE, RECEIVE_PAGE, FAIL_PAGE } from '../actions/data';
|
|
19
20
|
import collectionReducer from './collection';
|
|
20
|
-
import { combineReducers } from 'redux';
|
|
21
|
+
import { combineReducers } from 'redux';
|
|
21
22
|
|
|
23
|
+
// binds a collection reducer to listen only to actions directed at it
|
|
22
24
|
function boundCollectionReducer(key) {
|
|
23
|
-
return function () {
|
|
24
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
25
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
26
|
-
|
|
25
|
+
return function (state = {}, action) {
|
|
27
26
|
switch (action.type) {
|
|
28
27
|
case REQUEST_INITIAL_PAGE:
|
|
29
28
|
case REQUEST_PAGE:
|
|
@@ -34,14 +33,13 @@ function boundCollectionReducer(key) {
|
|
|
34
33
|
} else {
|
|
35
34
|
return state;
|
|
36
35
|
}
|
|
37
|
-
|
|
38
36
|
default:
|
|
39
37
|
return state;
|
|
40
38
|
}
|
|
41
39
|
};
|
|
42
|
-
}
|
|
43
|
-
|
|
40
|
+
}
|
|
44
41
|
|
|
42
|
+
// combine a collection reducer for each collection we care about
|
|
45
43
|
export default combineReducers({
|
|
46
44
|
announcements: boundCollectionReducer('announcements'),
|
|
47
45
|
assignments: boundCollectionReducer('assignments'),
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { REQUEST_INITIAL_DOCS, REQUEST_DOCS, RECEIVE_DOCS, FAIL_DOCS } from '../actions/documents';
|
|
19
|
-
import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
|
|
20
|
-
// for this collection (see collections.js)
|
|
20
|
+
import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
// manages the state for a specific collection. assumes the action is intended
|
|
23
|
+
// for this collection (see collections.js)
|
|
24
|
+
export default function documentsReducer(prevState = {}, action) {
|
|
25
25
|
const ctxt = action.payload && action.payload.contextType;
|
|
26
|
-
const state = {
|
|
26
|
+
const state = {
|
|
27
|
+
...prevState
|
|
27
28
|
};
|
|
28
|
-
|
|
29
29
|
if (ctxt && !state[ctxt]) {
|
|
30
30
|
state[ctxt] = {
|
|
31
31
|
files: [],
|
|
@@ -34,7 +34,6 @@ export default function documentsReducer() {
|
|
|
34
34
|
hasMore: true
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
38
37
|
switch (action.type) {
|
|
39
38
|
case REQUEST_INITIAL_DOCS:
|
|
40
39
|
state[ctxt] = {
|
|
@@ -44,11 +43,9 @@ export default function documentsReducer() {
|
|
|
44
43
|
hasMore: true
|
|
45
44
|
};
|
|
46
45
|
return state;
|
|
47
|
-
|
|
48
46
|
case REQUEST_DOCS:
|
|
49
47
|
state[ctxt].isLoading = true;
|
|
50
48
|
return state;
|
|
51
|
-
|
|
52
49
|
case RECEIVE_DOCS:
|
|
53
50
|
// add to collection, store bookmark if more, resolve loading
|
|
54
51
|
state[ctxt] = {
|
|
@@ -58,31 +55,25 @@ export default function documentsReducer() {
|
|
|
58
55
|
hasMore: !!action.payload.bookmark
|
|
59
56
|
};
|
|
60
57
|
return state;
|
|
61
|
-
|
|
62
58
|
case FAIL_DOCS:
|
|
63
59
|
{
|
|
64
60
|
state[ctxt] = {
|
|
65
61
|
isLoading: false,
|
|
66
62
|
error: action.payload.error
|
|
67
63
|
};
|
|
68
|
-
|
|
69
64
|
if (action.payload.files && action.payload.files.length === 0) {
|
|
70
65
|
state[ctxt].bookmark = null;
|
|
71
66
|
}
|
|
72
|
-
|
|
73
67
|
return state;
|
|
74
68
|
}
|
|
75
|
-
|
|
76
69
|
case CHANGE_CONTEXT:
|
|
77
70
|
{
|
|
78
71
|
return state;
|
|
79
72
|
}
|
|
80
|
-
|
|
81
73
|
case CHANGE_SEARCH_STRING:
|
|
82
74
|
{
|
|
83
75
|
return state;
|
|
84
76
|
}
|
|
85
|
-
|
|
86
77
|
default:
|
|
87
78
|
return prevState;
|
|
88
79
|
}
|
|
@@ -15,14 +15,13 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { ADD_FILE } from '../actions/files';
|
|
19
|
-
export default function filesReducer() {
|
|
20
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
21
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
18
|
|
|
19
|
+
import { ADD_FILE } from '../actions/files';
|
|
20
|
+
export default function filesReducer(state = {}, action) {
|
|
23
21
|
switch (action.type) {
|
|
24
22
|
case ADD_FILE:
|
|
25
|
-
return {
|
|
23
|
+
return {
|
|
24
|
+
...state,
|
|
26
25
|
[action.id]: {
|
|
27
26
|
id: action.id,
|
|
28
27
|
name: action.name,
|
|
@@ -31,7 +30,6 @@ export default function filesReducer() {
|
|
|
31
30
|
embed: action.embed
|
|
32
31
|
}
|
|
33
32
|
};
|
|
34
|
-
|
|
35
33
|
default:
|
|
36
34
|
return state;
|
|
37
35
|
}
|
|
@@ -15,47 +15,32 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { CHANGE_CONTEXT_TYPE, CHANGE_CONTEXT_ID, CHANGE_SEARCH_STRING, CHANGE_SORT_BY } from '../actions/filter';
|
|
19
|
-
export function changeContextType() {
|
|
20
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
21
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
18
|
|
|
19
|
+
import { CHANGE_CONTEXT_TYPE, CHANGE_CONTEXT_ID, CHANGE_SEARCH_STRING, CHANGE_SORT_BY } from '../actions/filter';
|
|
20
|
+
export function changeContextType(state = '', action) {
|
|
23
21
|
if (action.type === CHANGE_CONTEXT_TYPE) {
|
|
24
22
|
return action.payload;
|
|
25
23
|
}
|
|
26
|
-
|
|
27
24
|
return state;
|
|
28
25
|
}
|
|
29
|
-
export function changeContextId() {
|
|
30
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
31
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
32
|
-
|
|
26
|
+
export function changeContextId(state = '', action) {
|
|
33
27
|
if (action.type === CHANGE_CONTEXT_ID) {
|
|
34
28
|
return action.payload;
|
|
35
29
|
}
|
|
36
|
-
|
|
37
30
|
return state;
|
|
38
31
|
}
|
|
39
|
-
export function changeSearchString() {
|
|
40
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
41
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
42
|
-
|
|
32
|
+
export function changeSearchString(state = '', action) {
|
|
43
33
|
if (action.type === CHANGE_SEARCH_STRING) {
|
|
44
34
|
return action.payload;
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
return state;
|
|
48
37
|
}
|
|
49
|
-
export function changeSortBy(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
54
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
55
|
-
|
|
38
|
+
export function changeSortBy(state = {
|
|
39
|
+
order: 'desc',
|
|
40
|
+
sort: 'date_added'
|
|
41
|
+
}, action) {
|
|
56
42
|
if (action.type === CHANGE_SORT_BY) {
|
|
57
43
|
return action.payload;
|
|
58
44
|
}
|
|
59
|
-
|
|
60
45
|
return state;
|
|
61
46
|
}
|
|
@@ -15,36 +15,34 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { START_FLICKR_SEARCH, RECEIVE_FLICKR_RESULTS, FAIL_FLICKR_SEARCH, TOGGLE_FLICKR_FORM } from '../actions/flickr';
|
|
19
|
-
export default function () {
|
|
20
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
21
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
18
|
|
|
19
|
+
import { START_FLICKR_SEARCH, RECEIVE_FLICKR_RESULTS, FAIL_FLICKR_SEARCH, TOGGLE_FLICKR_FORM } from '../actions/flickr';
|
|
20
|
+
export default function (state = {}, action) {
|
|
23
21
|
switch (action.type) {
|
|
24
22
|
case START_FLICKR_SEARCH:
|
|
25
|
-
return {
|
|
23
|
+
return {
|
|
24
|
+
...state,
|
|
26
25
|
searching: true,
|
|
27
26
|
searchTerm: action.term
|
|
28
27
|
};
|
|
29
|
-
|
|
30
28
|
case RECEIVE_FLICKR_RESULTS:
|
|
31
|
-
return {
|
|
29
|
+
return {
|
|
30
|
+
...state,
|
|
32
31
|
searching: false,
|
|
33
32
|
searchResults: action.results
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
case FAIL_FLICKR_SEARCH:
|
|
37
|
-
return {
|
|
35
|
+
return {
|
|
36
|
+
...state,
|
|
38
37
|
searching: false,
|
|
39
38
|
searchTerm: '',
|
|
40
39
|
searchResults: []
|
|
41
40
|
};
|
|
42
|
-
|
|
43
41
|
case TOGGLE_FLICKR_FORM:
|
|
44
|
-
return {
|
|
42
|
+
return {
|
|
43
|
+
...state,
|
|
45
44
|
formExpanded: !state.formExpanded
|
|
46
45
|
};
|
|
47
|
-
|
|
48
46
|
default:
|
|
49
47
|
return state;
|
|
50
48
|
}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import * as actions from '../actions/files';
|
|
19
20
|
const defaultState = {
|
|
20
21
|
id: null,
|
|
@@ -29,63 +30,60 @@ const defaultState = {
|
|
|
29
30
|
fileIds: [],
|
|
30
31
|
folderIds: []
|
|
31
32
|
};
|
|
32
|
-
export default function folderReducer() {
|
|
33
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
|
|
34
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
33
|
+
export default function folderReducer(state = defaultState, action) {
|
|
35
34
|
let loadingCount;
|
|
36
|
-
|
|
37
35
|
switch (action.type) {
|
|
38
36
|
case actions.ADD_FOLDER:
|
|
39
|
-
return {
|
|
37
|
+
return {
|
|
38
|
+
...state,
|
|
40
39
|
id: action.id,
|
|
41
40
|
name: action.name,
|
|
42
41
|
parentId: action.parentId,
|
|
43
42
|
filesUrl: action.filesUrl,
|
|
44
43
|
foldersUrl: action.foldersUrl
|
|
45
44
|
};
|
|
46
|
-
|
|
47
45
|
case actions.RECEIVE_FILES:
|
|
48
46
|
loadingCount = state.loadingCount - 1;
|
|
49
|
-
return {
|
|
47
|
+
return {
|
|
48
|
+
...state,
|
|
50
49
|
loadingCount,
|
|
51
50
|
loading: !!loadingCount,
|
|
52
51
|
fileIds: state.fileIds.concat(action.fileIds)
|
|
53
52
|
};
|
|
54
|
-
|
|
55
53
|
case actions.INSERT_FILE:
|
|
56
|
-
return {
|
|
54
|
+
return {
|
|
55
|
+
...state,
|
|
57
56
|
fileIds: state.fileIds.concat(action.fileId)
|
|
58
57
|
};
|
|
59
|
-
|
|
60
58
|
case actions.RECEIVE_SUBFOLDERS:
|
|
61
59
|
loadingCount = state.loadingCount - 1;
|
|
62
|
-
return {
|
|
60
|
+
return {
|
|
61
|
+
...state,
|
|
63
62
|
loadingCount,
|
|
64
63
|
loading: !!loadingCount,
|
|
65
64
|
folderIds: state.folderIds.concat(action.folderIds)
|
|
66
65
|
};
|
|
67
|
-
|
|
68
66
|
case actions.REQUEST_FILES:
|
|
69
67
|
loadingCount = state.loadingCount + 1;
|
|
70
|
-
return {
|
|
68
|
+
return {
|
|
69
|
+
...state,
|
|
71
70
|
requested: true,
|
|
72
71
|
loadingCount,
|
|
73
72
|
loading: !!loadingCount
|
|
74
73
|
};
|
|
75
|
-
|
|
76
74
|
case actions.REQUEST_SUBFOLDERS:
|
|
77
75
|
loadingCount = state.loadingCount + 1;
|
|
78
|
-
return {
|
|
76
|
+
return {
|
|
77
|
+
...state,
|
|
79
78
|
requested: true,
|
|
80
79
|
loadingCount,
|
|
81
80
|
loading: !!loadingCount
|
|
82
81
|
};
|
|
83
|
-
|
|
84
82
|
case actions.TOGGLE:
|
|
85
|
-
return {
|
|
83
|
+
return {
|
|
84
|
+
...state,
|
|
86
85
|
expanded: !state.expanded
|
|
87
86
|
};
|
|
88
|
-
|
|
89
87
|
default:
|
|
90
88
|
return state;
|
|
91
89
|
}
|
|
@@ -15,12 +15,10 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import folder from './folder';
|
|
19
20
|
import * as actions from '../actions/files';
|
|
20
|
-
export default function foldersReducer() {
|
|
21
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
22
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
23
|
-
|
|
21
|
+
export default function foldersReducer(state = {}, action) {
|
|
24
22
|
switch (action.type) {
|
|
25
23
|
case actions.ADD_FOLDER:
|
|
26
24
|
case actions.RECEIVE_FILES:
|
|
@@ -29,10 +27,10 @@ export default function foldersReducer() {
|
|
|
29
27
|
case actions.REQUEST_FILES:
|
|
30
28
|
case actions.REQUEST_SUBFOLDERS:
|
|
31
29
|
case actions.TOGGLE:
|
|
32
|
-
return {
|
|
30
|
+
return {
|
|
31
|
+
...state,
|
|
33
32
|
[action.id]: folder(state[action.id], action)
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
default:
|
|
37
35
|
return state;
|
|
38
36
|
}
|
|
@@ -15,15 +15,14 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { ADD_IMAGE, REQUEST_INITIAL_IMAGES, REQUEST_IMAGES, RECEIVE_IMAGES, FAIL_IMAGES_LOAD } from '../actions/images';
|
|
19
20
|
import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
|
|
20
|
-
export default function imagesReducer() {
|
|
21
|
-
let prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
22
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
21
|
+
export default function imagesReducer(prevState = {}, action) {
|
|
23
22
|
const ctxt = action.payload && action.payload.contextType;
|
|
24
|
-
const state = {
|
|
23
|
+
const state = {
|
|
24
|
+
...prevState
|
|
25
25
|
};
|
|
26
|
-
|
|
27
26
|
if (ctxt && !state[ctxt]) {
|
|
28
27
|
state[ctxt] = {
|
|
29
28
|
files: [],
|
|
@@ -32,7 +31,6 @@ export default function imagesReducer() {
|
|
|
32
31
|
hasMore: true
|
|
33
32
|
};
|
|
34
33
|
}
|
|
35
|
-
|
|
36
34
|
switch (action.type) {
|
|
37
35
|
case ADD_IMAGE:
|
|
38
36
|
{
|
|
@@ -56,7 +54,6 @@ export default function imagesReducer() {
|
|
|
56
54
|
};
|
|
57
55
|
return state;
|
|
58
56
|
}
|
|
59
|
-
|
|
60
57
|
case REQUEST_INITIAL_IMAGES:
|
|
61
58
|
state[ctxt] = {
|
|
62
59
|
files: [],
|
|
@@ -65,11 +62,9 @@ export default function imagesReducer() {
|
|
|
65
62
|
hasMore: true
|
|
66
63
|
};
|
|
67
64
|
return state;
|
|
68
|
-
|
|
69
65
|
case REQUEST_IMAGES:
|
|
70
66
|
state[ctxt].isLoading = true;
|
|
71
67
|
return state;
|
|
72
|
-
|
|
73
68
|
case RECEIVE_IMAGES:
|
|
74
69
|
// If a request resolved with files but the searchString has since
|
|
75
70
|
// changed, then the files should not be concatenated because this
|
|
@@ -82,33 +77,26 @@ export default function imagesReducer() {
|
|
|
82
77
|
hasMore: !!action.payload.bookmark
|
|
83
78
|
};
|
|
84
79
|
}
|
|
85
|
-
|
|
86
80
|
return state;
|
|
87
|
-
|
|
88
81
|
case FAIL_IMAGES_LOAD:
|
|
89
82
|
state[ctxt] = {
|
|
90
83
|
isLoading: false,
|
|
91
84
|
error: action.payload.error,
|
|
92
85
|
files: []
|
|
93
86
|
};
|
|
94
|
-
|
|
95
87
|
if (action.payload.files && action.payload.files.length === 0) {
|
|
96
88
|
state[ctxt].bookmark = null;
|
|
97
89
|
}
|
|
98
|
-
|
|
99
90
|
return state;
|
|
100
|
-
|
|
101
91
|
case CHANGE_CONTEXT:
|
|
102
92
|
{
|
|
103
93
|
return state;
|
|
104
94
|
}
|
|
105
|
-
|
|
106
95
|
case CHANGE_SEARCH_STRING:
|
|
107
96
|
{
|
|
108
97
|
state.searchString = action.payload;
|
|
109
98
|
return state;
|
|
110
99
|
}
|
|
111
|
-
|
|
112
100
|
default:
|
|
113
101
|
return prevState;
|
|
114
102
|
}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import noop from './noop';
|
|
19
20
|
import uiReducer from './ui';
|
|
20
21
|
import collectionsReducer from './collections';
|
|
@@ -30,8 +31,9 @@ import session from './session';
|
|
|
30
31
|
import newPageLinkReducer from './newPageLinkExpanded';
|
|
31
32
|
import { changeContextType, changeContextId, changeSearchString, changeSortBy } from './filter';
|
|
32
33
|
import { allFilesLoading } from './all_files';
|
|
33
|
-
import { combineReducers } from 'redux';
|
|
34
|
+
import { combineReducers } from 'redux';
|
|
34
35
|
|
|
36
|
+
// combine for root level state.
|
|
35
37
|
export default combineReducers({
|
|
36
38
|
ui: uiReducer,
|
|
37
39
|
source: noop,
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { REQUEST_INITIAL_MEDIA, REQUEST_MEDIA, RECEIVE_MEDIA, FAIL_MEDIA } from '../actions/media';
|
|
19
|
-
import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
|
|
20
|
-
// for this collection (see collections.js)
|
|
20
|
+
import { CHANGE_CONTEXT, CHANGE_SEARCH_STRING } from '../actions/filter';
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
// manages the state for a specific collection. assumes the action is intended
|
|
23
|
+
// for this collection (see collections.js)
|
|
24
|
+
export default function mediaReducer(prevState = {}, action) {
|
|
25
25
|
const ctxt = action.payload && action.payload.contextType;
|
|
26
|
-
const state = {
|
|
26
|
+
const state = {
|
|
27
|
+
...prevState
|
|
27
28
|
};
|
|
28
|
-
|
|
29
29
|
if (ctxt && !state[ctxt]) {
|
|
30
30
|
state[ctxt] = {
|
|
31
31
|
files: [],
|
|
@@ -34,7 +34,6 @@ export default function mediaReducer() {
|
|
|
34
34
|
hasMore: true
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
38
37
|
switch (action.type) {
|
|
39
38
|
case REQUEST_INITIAL_MEDIA:
|
|
40
39
|
state[ctxt] = {
|
|
@@ -44,11 +43,9 @@ export default function mediaReducer() {
|
|
|
44
43
|
hasMore: true
|
|
45
44
|
};
|
|
46
45
|
return state;
|
|
47
|
-
|
|
48
46
|
case REQUEST_MEDIA:
|
|
49
47
|
state[ctxt].isLoading = true;
|
|
50
48
|
return state;
|
|
51
|
-
|
|
52
49
|
case RECEIVE_MEDIA:
|
|
53
50
|
state[ctxt] = {
|
|
54
51
|
files: state[ctxt].files.concat(action.payload.files),
|
|
@@ -57,27 +54,21 @@ export default function mediaReducer() {
|
|
|
57
54
|
hasMore: !!action.payload.bookmark
|
|
58
55
|
};
|
|
59
56
|
return state;
|
|
60
|
-
|
|
61
57
|
case FAIL_MEDIA:
|
|
62
58
|
{
|
|
63
59
|
state[ctxt] = {
|
|
64
60
|
isLoading: false,
|
|
65
61
|
error: action.payload.error
|
|
66
62
|
};
|
|
67
|
-
|
|
68
63
|
if (action.payload.files && action.payload.files.length === 0) {
|
|
69
64
|
state[ctxt].bookmark = null;
|
|
70
65
|
}
|
|
71
|
-
|
|
72
66
|
return state;
|
|
73
67
|
}
|
|
74
|
-
|
|
75
68
|
case CHANGE_CONTEXT:
|
|
76
69
|
return state;
|
|
77
|
-
|
|
78
70
|
case CHANGE_SEARCH_STRING:
|
|
79
71
|
return state;
|
|
80
|
-
|
|
81
72
|
default:
|
|
82
73
|
return prevState;
|
|
83
74
|
}
|
|
@@ -15,15 +15,12 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { TOGGLE_NEWPAGE_FORM } from '../actions/links';
|
|
19
|
-
export default function () {
|
|
20
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
21
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
18
|
|
|
19
|
+
import { TOGGLE_NEWPAGE_FORM } from '../actions/links';
|
|
20
|
+
export default function (state = false, action) {
|
|
23
21
|
switch (action.type) {
|
|
24
22
|
case TOGGLE_NEWPAGE_FORM:
|
|
25
23
|
return !state;
|
|
26
|
-
|
|
27
24
|
default:
|
|
28
25
|
return state;
|
|
29
26
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
|
|
19
|
+
export default function (state = '') {
|
|
20
20
|
return state;
|
|
21
21
|
}
|
|
@@ -15,15 +15,12 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { SET_ROOT } from '../actions/files';
|
|
19
|
-
export default function rootFolderIdReducer() {
|
|
20
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
21
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
22
18
|
|
|
19
|
+
import { SET_ROOT } from '../actions/files';
|
|
20
|
+
export default function rootFolderIdReducer(state = null, action) {
|
|
23
21
|
switch (action.type) {
|
|
24
22
|
case SET_ROOT:
|
|
25
23
|
return action.id;
|
|
26
|
-
|
|
27
24
|
default:
|
|
28
25
|
return state;
|
|
29
26
|
}
|
|
@@ -15,18 +15,16 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { RECEIVE_SESSION } from '../actions/session';
|
|
19
20
|
const defaultState = {};
|
|
20
|
-
export default function sessionReducer() {
|
|
21
|
-
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;
|
|
22
|
-
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
23
|
-
|
|
21
|
+
export default function sessionReducer(state = defaultState, action) {
|
|
24
22
|
switch (action.type) {
|
|
25
23
|
case RECEIVE_SESSION:
|
|
26
|
-
return {
|
|
24
|
+
return {
|
|
25
|
+
...state,
|
|
27
26
|
...action.data
|
|
28
27
|
};
|
|
29
|
-
|
|
30
28
|
default:
|
|
31
29
|
return state;
|
|
32
30
|
}
|