@webiny/app-admin 0.0.0-unstable.d4f203fa97 → 0.0.0-unstable.d65ec29d44
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/base/Admin.js +7 -21
- package/base/Admin.js.map +1 -1
- package/base/Base.js +6 -25
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +0 -8
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.js +0 -5
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +1 -7
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.js +0 -5
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js +3 -16
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.d.ts +2 -2
- package/base/ui/Brand.js +3 -7
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js +2 -7
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.d.ts +2 -2
- package/base/ui/Dashboard.js +3 -7
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/Layout.d.ts +2 -2
- package/base/ui/Layout.js +4 -9
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.d.ts +2 -2
- package/base/ui/LocaleSelector.js +3 -7
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.d.ts +1 -1
- package/base/ui/LoginScreen.js +2 -8
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.d.ts +2 -2
- package/base/ui/Logo.js +4 -10
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.js +2 -31
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.d.ts +3 -3
- package/base/ui/Navigation.js +16 -49
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.d.ts +2 -2
- package/base/ui/NotFound.js +3 -7
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.d.ts +2 -2
- package/base/ui/Search.js +8 -26
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.js +1 -8
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.d.ts +7 -7
- package/base/ui/UserMenu.js +13 -37
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +1 -6
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js +18 -52
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +9 -32
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js +0 -7
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.js +0 -4
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js +66 -122
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/EmptyView.js +3 -11
- package/components/EmptyView.js.map +1 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +0 -14
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
- package/components/FileManager/BottomInfoBar/UploadStatus.js +0 -9
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
- package/components/FileManager/BottomInfoBar.js +0 -12
- package/components/FileManager/BottomInfoBar.js.map +1 -1
- package/components/FileManager/DropFilesHere.js +3 -12
- package/components/FileManager/DropFilesHere.js.map +1 -1
- package/components/FileManager/File.js +5 -18
- package/components/FileManager/File.js.map +1 -1
- package/components/FileManager/FileDetails/Name.js +45 -75
- package/components/FileManager/FileDetails/Name.js.map +1 -1
- package/components/FileManager/FileDetails/Tags.js +85 -138
- package/components/FileManager/FileDetails/Tags.js.map +1 -1
- package/components/FileManager/FileDetails.js +94 -161
- package/components/FileManager/FileDetails.js.map +1 -1
- package/components/FileManager/FileManagerContext.js +12 -45
- package/components/FileManager/FileManagerContext.js.map +1 -1
- package/components/FileManager/FileManagerView.js +177 -294
- package/components/FileManager/FileManagerView.js.map +1 -1
- package/components/FileManager/LeftSidebar.js +10 -29
- package/components/FileManager/LeftSidebar.js.map +1 -1
- package/components/FileManager/NoPermissionView.js +0 -13
- package/components/FileManager/NoPermissionView.js.map +1 -1
- package/components/FileManager/NoResults.js +0 -6
- package/components/FileManager/NoResults.js.map +1 -1
- package/components/FileManager/getFileTypePlugin.js +9 -15
- package/components/FileManager/getFileTypePlugin.js.map +1 -1
- package/components/FileManager/getFileUploader.js +0 -5
- package/components/FileManager/getFileUploader.js.map +1 -1
- package/components/FileManager/graphql.js +3 -14
- package/components/FileManager/graphql.js.map +1 -1
- package/components/FileManager/outputFileSelectionError.js +0 -14
- package/components/FileManager/outputFileSelectionError.js.map +1 -1
- package/components/FileManager.js +17 -43
- package/components/FileManager.js.map +1 -1
- package/components/FloatingActionButton.js +0 -6
- package/components/FloatingActionButton.js.map +1 -1
- package/components/MultiImageUpload.js +1 -10
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +7 -36
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js +0 -2
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/Permissions.d.ts +2 -0
- package/components/Permissions/Permissions.js +25 -27
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.js +0 -7
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js +0 -3
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +0 -7
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js +0 -2
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +62 -102
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +15 -36
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +5 -22
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +16 -39
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +55 -81
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +15 -41
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +0 -2
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js +6 -13
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.d.ts +1 -0
- package/components/SearchUI.js +12 -12
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.js +3 -32
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +0 -1
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.d.ts +2 -0
- package/components/SimpleUI/InputField.js +16 -30
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.js +12 -28
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +0 -20
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +0 -1
- package/components/SplitView/index.js.map +1 -1
- package/components/index.js +0 -1
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.d.ts +3 -1
- package/hooks/useConfirmationDialog.js +12 -20
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +0 -5
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useSnackbar.js +0 -5
- package/hooks/useSnackbar.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +4 -52
- package/index.js.map +1 -1
- package/package.json +20 -21
- package/plugins/FileManagerFileTypePlugin.js +0 -15
- package/plugins/FileManagerFileTypePlugin.js.map +1 -1
- package/plugins/MenuPlugin.js +0 -15
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +0 -15
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/fileManager/fileDefault.js +0 -6
- package/plugins/fileManager/fileDefault.js.map +1 -1
- package/plugins/fileManager/fileImage/DeleteAction.js +16 -40
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
- package/plugins/fileManager/fileImage/EditAction.js +22 -58
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
- package/plugins/fileManager/fileImage/index.js +0 -8
- package/plugins/fileManager/fileImage/index.js.map +1 -1
- package/plugins/fileManager/index.js +0 -2
- package/plugins/fileManager/index.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +3 -51
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +13 -31
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.js +1 -5
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +2 -16
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/styles/material-theme-assignments.scss +4 -0
- package/styles/theme.scss +31 -1
- package/ui/UIElement.js +0 -1
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js +0 -1
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js +0 -1
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js +0 -1
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +2 -28
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +0 -19
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +0 -19
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js +0 -2
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +0 -14
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +3 -36
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +0 -11
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +0 -11
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +0 -19
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +0 -19
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js +0 -2
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +0 -16
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +11 -34
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +0 -15
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +0 -22
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +3 -22
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.js +0 -5
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +0 -20
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +0 -21
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +0 -33
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +0 -17
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +0 -18
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +0 -15
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +1 -19
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +0 -17
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +1 -25
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +0 -40
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +0 -20
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +10 -21
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js +0 -8
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.js +0 -9
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js +0 -21
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js +0 -11
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js +0 -19
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +2 -24
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +0 -41
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +0 -19
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +3 -25
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +0 -22
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +3 -13
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +3 -37
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +2 -22
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +0 -40
- package/ui/views/SplitView.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","style","draggingFeedback","css","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","styled","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","useFileManager","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","useSnackbar","showSnackbar","useSecurity","identity","getPermission","useMemo","canCreate","own","rwd","includes","canEdit","useCallback","item","creatorId","get","identityId","login","searchOnChange","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","LIST_FILES","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","useHotkeys","keys","esc","searchInput","useRef","apolloClient","useApolloClient","gqlQuery","useQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","useMutation","CREATE_FILE","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","getFileUploader","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","GET_FILE_SETTINGS","settings","uploadMaxFileSize","filter","Boolean","console","log","outputFileSelectionError","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple?: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple = false,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(\n get(\n createFileResponse,\n \"data.fileManager.createFile.data\"\n ) as unknown as FileItem\n );\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n console.log(\"onError\", errors);\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","style","draggingFeedback","css","position","top","left","width","height","opacity","background","zIndex","leftDrawer","header","textAlign","fontSize","padding","fontWeight","color","InputSearch","styled","backgroundColor","borderRadius","border","marginLeft","outline","searchIcon","FileListWrapper","float","display","FileList","gridTemplateColumns","marginBottom","renderFile","props","file","plugin","getFileTypePlugin","id","render","renderEmpty","hasPreviouslyUploadedFiles","browseFiles","fmFilePermission","FileManagerView","onClose","onChange","accept","multiple","maxSize","multipleMaxCount","multipleMaxSize","onUploadCompletion","useFileManager","selected","toggleSelected","dragging","setDragging","uploading","setUploading","showFileDetails","showingFileDetails","queryParams","setQueryParams","setHasPreviouslyUploadedFiles","useSnackbar","showSnackbar","useSecurity","identity","getPermission","useMemo","canCreate","own","rwd","includes","canEdit","useCallback","item","creatorId","get","identityId","login","searchOnChange","debounce","search","toggleTag","tag","finalTags","Array","isArray","tags","splice","indexOf","push","getFileUploadErrorMessage","e","match","message","updateCacheAfterCreateFile","cache","newFile","newFileData","data","readQuery","query","LIST_FILES","variables","writeQuery","fileManager","listFiles","getFileDetailsFile","src","list","find","useHotkeys","keys","esc","searchInput","useRef","apolloClient","useApolloClient","gqlQuery","useQuery","onCompleted","response","length","refreshOnScroll","scrollFrame","fetchMore","cursor","after","updateQuery","prev","result","fetchMoreResult","next","loading","useMutation","CREATE_FILE","update","createFile","uploadFile","files","errors","uploadedFiles","Promise","all","map","getFileUploader","scope","createFileResponse","setTimeout","name","renderUploadFileAction","settingsQuery","GET_FILE_SETTINGS","settings","uploadMaxFileSize","filter","Boolean","console","log","outputFileSelectionError","getDropZoneProps","validateFiles","onDragEnter","onExited","target","value","current","onSelect","defaultProps"],"sources":["FileManagerView.tsx"],"sourcesContent":["import React, { useRef, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport Files, { FilesRenderChildren } from \"react-butterfiles\";\nimport { ButtonPrimary, ButtonIcon } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport File, { FileProps } from \"./File\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/react-hooks\";\nimport { FilesRules } from \"react-butterfiles\";\nimport {\n LIST_FILES,\n CREATE_FILE,\n GET_FILE_SETTINGS,\n CreateFileMutationVariables,\n CreateFileMutationResponse,\n ListFilesQueryResponse,\n ListFilesQueryVariables\n} from \"./graphql\";\nimport getFileTypePlugin from \"./getFileTypePlugin\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport getFileUploader from \"./getFileUploader\";\nimport { outputFileSelectionError } from \"./outputFileSelectionError\";\nimport DropFilesHere from \"./DropFilesHere\";\nimport NoResults from \"./NoResults\";\nimport FileDetails from \"./FileDetails\";\nimport LeftSidebar from \"./LeftSidebar\";\nimport BottomInfoBar from \"./BottomInfoBar\";\nimport { OverlayLayout } from \"../OverlayLayout\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSecurity } from \"@webiny/app-security\";\n/**\n * Package react-hotkeyz is missing types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { useFileManager } from \"./FileManagerContext\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\nimport NoPermissionView from \"./NoPermissionView\";\nimport { FileItem, FileManagerSecurityPermission } from \"~/components/FileManager/types\";\nimport { MutationUpdaterFn } from \"apollo-client/core/watchQueryOptions\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { ObservableQueryFields } from \"@apollo/react-common/lib/types/types\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view\");\n\nconst style = {\n draggingFeedback: css({\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n opacity: 0.5,\n background: \"white\",\n zIndex: 100\n }),\n leftDrawer: {\n header: css({\n textAlign: \"center\",\n fontSize: 18,\n padding: 10,\n fontWeight: 600,\n color: \"var(--mdc-theme-on-surface)\"\n })\n }\n};\n\nconst InputSearch = styled(\"div\")({\n backgroundColor: \"var(--mdc-theme-on-background)\",\n position: \"relative\",\n height: 32,\n padding: 3,\n width: \"100%\",\n borderRadius: 2,\n \"> input\": {\n border: \"none\",\n fontSize: 14,\n width: \"calc(100% - 10px)\",\n height: \"100%\",\n marginLeft: 50,\n backgroundColor: \"transparent\",\n outline: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst searchIcon = css({\n \"&.mdc-button__icon\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n position: \"absolute\",\n width: 24,\n height: 24,\n left: 15,\n top: 7\n }\n});\n\nconst FileListWrapper = styled(\"div\")({\n float: \"right\",\n display: \"inline-block\",\n width: \"calc(100vw - 270px)\",\n height: \"100%\"\n});\n\nconst FileList = styled(\"div\")({\n width: \"100%\",\n display: \"grid\",\n /* define the number of grid columns */\n gridTemplateColumns: \"repeat( auto-fill, minmax(220px, 1fr) )\",\n marginBottom: 95\n});\n\nexport interface FileManagerViewProps {\n onChange?: Function;\n onClose?: Function;\n files?: FilesRules;\n multiple?: boolean; // Does not affect <Files> component, it always allows multiple selection.\n accept: Array<string>;\n maxSize?: number | string;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onUploadCompletion?: Function;\n tags?: string[];\n scope?: string;\n own?: boolean;\n}\n\ninterface RenderFileProps extends Omit<FileProps, \"children\"> {\n file: FileItem;\n children?: React.ReactNode;\n}\nconst renderFile: React.FC<RenderFileProps> = props => {\n const { file } = props;\n const plugin = getFileTypePlugin(file);\n if (!plugin) {\n return null;\n }\n return (\n <File {...props} key={file.id}>\n {plugin.render({\n /**\n * TODO @ts-refactor\n */\n // @ts-ignore\n file\n })}\n </File>\n );\n};\ninterface RenderEmptyProps {\n hasPreviouslyUploadedFiles: boolean;\n browseFiles: FilesRenderChildren[\"browseFiles\"];\n fmFilePermission: SecurityPermission | null;\n}\nconst renderEmpty: React.FC<RenderEmptyProps> = ({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n}) => {\n if (!fmFilePermission) {\n return <NoPermissionView />;\n }\n if (hasPreviouslyUploadedFiles) {\n return <NoResults />;\n }\n return <DropFilesHere empty onClick={() => browseFiles()} />;\n};\n\ninterface RefreshOnScrollParams {\n fetchMore: ObservableQueryFields<ListFilesQueryResponse, ListFilesQueryVariables>[\"fetchMore\"];\n scrollFrame: {\n top: number;\n };\n}\n\ninterface FileError {\n file: FileItem;\n e: Error;\n}\n\ninterface GetFileDetailsFileParams {\n src: string;\n list: FileItem[];\n}\n\nconst FileManagerView: React.FC<FileManagerViewProps> = props => {\n const {\n onClose,\n onChange,\n accept,\n multiple = false,\n maxSize,\n multipleMaxCount,\n multipleMaxSize,\n onUploadCompletion\n } = props;\n\n const {\n selected,\n toggleSelected,\n dragging,\n setDragging,\n uploading,\n setUploading,\n showFileDetails,\n showingFileDetails,\n queryParams,\n setQueryParams,\n hasPreviouslyUploadedFiles,\n setHasPreviouslyUploadedFiles\n } = useFileManager();\n const { showSnackbar } = useSnackbar();\n\n const { identity, getPermission } = useSecurity();\n const fmFilePermission = useMemo((): FileManagerSecurityPermission | null => {\n return getPermission<FileManagerSecurityPermission>(\"fm.file\");\n }, [identity]);\n const canCreate = useMemo(() => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n\n if (fmFilePermission.own) {\n return true;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n }, [fmFilePermission]);\n const canEdit = useCallback(\n item => {\n // Bail out early if no access\n if (!fmFilePermission) {\n return false;\n }\n const creatorId = get(item, \"createdBy.id\");\n\n if (fmFilePermission.own && creatorId) {\n const identityId = identity ? identity.id || identity.login : null;\n return creatorId === identityId;\n }\n\n if (typeof fmFilePermission.rwd === \"string\") {\n return fmFilePermission.rwd.includes(\"w\");\n }\n\n return true;\n },\n [fmFilePermission]\n );\n\n const searchOnChange = useCallback(\n // @ts-ignore\n debounce(search => setQueryParams({ search }), 500),\n []\n );\n\n const toggleTag = useCallback(async ({ tag, queryParams }) => {\n const finalTags = Array.isArray(queryParams.tags) ? [...queryParams.tags] : [];\n\n if (finalTags.includes(tag)) {\n finalTags.splice(finalTags.indexOf(tag), 1);\n } else {\n finalTags.push(tag);\n }\n\n setQueryParams({ ...queryParams, tags: finalTags });\n }, []);\n\n const getFileUploadErrorMessage = useCallback(e => {\n if (typeof e === \"string\") {\n const match = e.match(/Message>(.*?)<\\/Message/);\n if (match) {\n const [, message] = match;\n return message;\n }\n\n return e;\n }\n return e.message;\n }, []);\n\n const updateCacheAfterCreateFile: MutationUpdaterFn<CreateFileMutationResponse> = (\n cache,\n newFile\n ) => {\n const newFileData = get(newFile, \"data.fileManager.createFile.data\");\n\n const data = cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n });\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: {\n fileManager: {\n ...(data?.fileManager || {}),\n listFiles: {\n ...(data?.fileManager || {}).listFiles,\n data: [newFileData, ...((data?.fileManager?.listFiles || {}).data || [])]\n }\n }\n }\n });\n };\n\n const getFileDetailsFile = useCallback(({ src, list }: GetFileDetailsFileParams): FileItem => {\n return list.find(item => item.src === src) as FileItem;\n }, []);\n\n useHotkeys({\n zIndex: 50,\n keys: {\n esc: onClose\n }\n });\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n const apolloClient = useApolloClient();\n\n const gqlQuery = useQuery<ListFilesQueryResponse, ListFilesQueryVariables>(LIST_FILES, {\n variables: queryParams,\n onCompleted: response => {\n const list = get(response, \"fileManager.listFiles.data\") || [];\n if (hasPreviouslyUploadedFiles === null) {\n setHasPreviouslyUploadedFiles(list.length > 0);\n }\n }\n });\n\n const refreshOnScroll = useCallback(\n debounce(({ scrollFrame, fetchMore }: RefreshOnScrollParams) => {\n if (scrollFrame.top > 0.9) {\n const cursor = get(gqlQuery.data, \"fileManager.listFiles.meta.cursor\");\n if (cursor) {\n fetchMore({\n variables: { after: cursor },\n updateQuery: (\n prev: ListFilesQueryResponse,\n result: { fetchMoreResult?: ListFilesQueryResponse }\n ) => {\n const { fetchMoreResult } = result;\n if (!fetchMoreResult) {\n return prev;\n }\n\n const next = { ...fetchMoreResult };\n\n next.fileManager.listFiles.data = [\n ...prev.fileManager.listFiles.data,\n ...fetchMoreResult.fileManager.listFiles.data\n ];\n\n return next;\n }\n });\n }\n }\n }, 500),\n [gqlQuery]\n );\n\n const { data, fetchMore, loading } = gqlQuery;\n\n const list: FileItem[] = get(data, \"fileManager.listFiles.data\") || [];\n const [createFile] = useMutation<CreateFileMutationResponse, CreateFileMutationVariables>(\n CREATE_FILE,\n {\n update: updateCacheAfterCreateFile\n }\n );\n const uploadFile = async (files: FileItem[] | FileItem): Promise<number | null> => {\n setUploading(true);\n const list: FileItem[] = Array.isArray(files) ? files : [files];\n\n const errors: FileError[] = [];\n const uploadedFiles: FileItem[] = [];\n await Promise.all(\n list.map(async file => {\n try {\n const response = await getFileUploader()(file, { apolloClient });\n /**\n * Add \"tags\" while creating the new file.\n */\n const createFileResponse = await createFile({\n variables: {\n data: {\n ...response,\n tags: queryParams.scope ? [queryParams.scope] : []\n }\n }\n });\n // Save create file data for later\n uploadedFiles.push(\n get(\n createFileResponse,\n \"data.fileManager.createFile.data\"\n ) as unknown as FileItem\n );\n } catch (e) {\n errors.push({ file, e });\n }\n })\n );\n\n if (!hasPreviouslyUploadedFiles) {\n setHasPreviouslyUploadedFiles(true);\n }\n\n setUploading(false);\n\n if (errors.length > 0) {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n showSnackbar(\n <>\n {t`One or more files were not uploaded successfully:`}\n <ol>\n {errors.map(({ file, e }) => (\n <li key={file.name}>\n <strong>{file.name}</strong>: {getFileUploadErrorMessage(e)}\n </li>\n ))}\n </ol>\n </>\n );\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n\n // We wait 750ms, just for everything to settle down a bit.\n setTimeout(() => showSnackbar(t`File upload complete.`), 750);\n if (typeof onUploadCompletion === \"function\") {\n // We wait 750ms, just for everything to settle down a bit.\n return setTimeout(() => {\n onUploadCompletion(uploadedFiles);\n onClose && onClose();\n // TODO @ts-refactor\n }, 750) as unknown as number;\n }\n return null;\n };\n\n const renderUploadFileAction = useCallback(\n ({ browseFiles }) => {\n if (!canCreate) {\n return null;\n }\n return (\n <ButtonPrimary onClick={browseFiles} disabled={uploading}>\n <ButtonIcon icon={<UploadIcon />} />\n {t`Upload...`}\n </ButtonPrimary>\n );\n },\n [uploading, canCreate]\n );\n\n const settingsQuery = useQuery(GET_FILE_SETTINGS);\n const settings = get(settingsQuery.data, \"fileManager.getSettings.data\") || {};\n return (\n <Files\n multiple\n maxSize={settings.uploadMaxFileSize ? settings.uploadMaxFileSize + \"b\" : maxSize}\n multipleMaxSize={multipleMaxSize}\n multipleMaxCount={multipleMaxCount}\n accept={accept}\n onSuccess={files => {\n uploadFile(files.map(file => file.src.file as FileItem).filter(Boolean));\n }}\n onError={errors => {\n console.log(\"onError\", errors);\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n const message = outputFileSelectionError(errors);\n showSnackbar(message);\n }}\n >\n {({ getDropZoneProps, browseFiles, validateFiles }) => (\n <OverlayLayout\n {...getDropZoneProps({\n onDragEnter: () => hasPreviouslyUploadedFiles && setDragging(true),\n onExited: onClose\n })}\n barLeft={\n <InputSearch>\n <Icon className={searchIcon} icon={<SearchIcon />} />\n <input\n ref={searchInput}\n onChange={e => searchOnChange(e.target.value)}\n placeholder={t`Search by filename or tags`}\n disabled={!fmFilePermission}\n data-testid={\"file-manager.search-input\"}\n />\n </InputSearch>\n }\n barRight={\n selected.length > 0 ? (\n <ButtonPrimary\n disabled={uploading}\n onClick={() => {\n (async () => {\n if (typeof onChange === \"function\") {\n await onChange(multiple ? selected : selected[0]);\n\n onClose && onClose();\n }\n })();\n }}\n >\n {t`Select`} {multiple && `(${selected.length})`}\n </ButtonPrimary>\n ) : (\n renderUploadFileAction({ browseFiles })\n )\n }\n >\n <>\n {dragging && hasPreviouslyUploadedFiles && (\n <DropFilesHere\n // @ts-ignore TODO: @adrian - className is never rendered?!\n className={style.draggingFeedback}\n onDragLeave={() => setDragging(false)}\n onDrop={() => setDragging(false)}\n />\n )}\n\n <FileDetails\n validateFiles={validateFiles}\n uploadFile={uploadFile}\n file={getFileDetailsFile({\n list,\n src: showingFileDetails\n })}\n canEdit={canEdit}\n />\n\n <LeftSidebar\n queryParams={queryParams}\n toggleTag={tag => toggleTag({ tag, queryParams })}\n />\n\n <FileListWrapper data-testid={\"fm-list-wrapper\"}>\n {loading && (\n <CircularProgress\n label={t`Loading Files...`}\n style={{ opacity: 1 }}\n />\n )}\n <Scrollbar\n onScrollFrame={scrollFrame =>\n refreshOnScroll({\n scrollFrame,\n fetchMore\n })\n }\n >\n <FileList>\n {list.length\n ? list.map(file =>\n renderFile({\n uploadFile,\n file,\n showFileDetails: () => showFileDetails(file.src),\n selected: selected.find(\n (current: FileItem) =>\n current.src === file.src\n ),\n onSelect: async () => {\n if (typeof onChange === \"function\") {\n if (multiple) {\n toggleSelected(file);\n return;\n }\n\n await onChange(file);\n onClose && onClose();\n }\n }\n })\n )\n : renderEmpty({\n hasPreviouslyUploadedFiles,\n browseFiles,\n fmFilePermission\n })}\n </FileList>\n </Scrollbar>\n <BottomInfoBar accept={accept} uploading={uploading} />\n </FileListWrapper>\n </>\n </OverlayLayout>\n )}\n </Files>\n );\n};\n\nFileManagerView.defaultProps = {\n multiple: false,\n maxSize: \"1000mb\",\n multipleMaxSize: \"1000mb\",\n multipleMaxCount: 100\n};\n\nexport default FileManagerView;\n"],"mappings":"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"}
|
|
@@ -1,34 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
9
|
var _reactHooks = require("@apollo/react-hooks");
|
|
13
|
-
|
|
14
10
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
15
|
-
|
|
16
11
|
var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
|
|
17
|
-
|
|
18
12
|
var _emotion = require("emotion");
|
|
19
|
-
|
|
20
13
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
21
|
-
|
|
22
14
|
var _Icon = require("@webiny/ui/Icon");
|
|
23
|
-
|
|
24
15
|
var _roundLabel24px = require("./icons/round-label-24px.svg");
|
|
25
|
-
|
|
26
16
|
var _graphql = require("./graphql");
|
|
27
|
-
|
|
28
17
|
var _FileManagerContext = require("./FileManagerContext");
|
|
29
|
-
|
|
30
18
|
var _Tags = require("./FileDetails/Tags");
|
|
31
|
-
|
|
32
19
|
var style = {
|
|
33
20
|
leftDrawer: /*#__PURE__*/(0, _emotion.css)({
|
|
34
21
|
float: "left",
|
|
@@ -75,23 +62,19 @@ var Tag = /*#__PURE__*/(0, _styled.default)("div", {
|
|
|
75
62
|
}
|
|
76
63
|
}
|
|
77
64
|
});
|
|
78
|
-
|
|
79
65
|
var LeftSidebar = function LeftSidebar(props) {
|
|
80
66
|
var toggleTag = props.toggleTag,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
67
|
+
_props$queryParams = props.queryParams,
|
|
68
|
+
tags = _props$queryParams.tags,
|
|
69
|
+
scope = _props$queryParams.scope;
|
|
84
70
|
var activeTags = Array.isArray(tags) ? tags : [];
|
|
85
|
-
|
|
86
71
|
var _useQuery = (0, _reactHooks.useQuery)(_graphql.LIST_TAGS, {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
72
|
+
variables: {
|
|
73
|
+
where: (0, _FileManagerContext.getWhere)(scope)
|
|
74
|
+
}
|
|
75
|
+
}),
|
|
76
|
+
data = _useQuery.data;
|
|
93
77
|
var list = (0, _get.default)(data, "fileManager.listTags", []);
|
|
94
|
-
|
|
95
78
|
if (list.length === 0) {
|
|
96
79
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
97
80
|
className: style.leftDrawer,
|
|
@@ -99,9 +82,8 @@ var LeftSidebar = function LeftSidebar(props) {
|
|
|
99
82
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
100
83
|
className: style.noTagged
|
|
101
84
|
}, "Once you tag an image, the tag will be displayed here."));
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
85
|
+
}
|
|
86
|
+
// Sort "tags" list in "ASC" order.
|
|
105
87
|
var tagList = (0, _sortBy.default)(list);
|
|
106
88
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
107
89
|
className: style.leftDrawer
|
|
@@ -122,6 +104,5 @@ var LeftSidebar = function LeftSidebar(props) {
|
|
|
122
104
|
}), " ", (0, _Tags.formatTagAsLabel)(item, scope));
|
|
123
105
|
})));
|
|
124
106
|
};
|
|
125
|
-
|
|
126
107
|
var _default = LeftSidebar;
|
|
127
108
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["style","leftDrawer","css","float","display","width","height","backgroundColor","padding","noTagged","paddingTop","textAlign","color","TagList","styled","flexDirection","Tag","alignItems","cursor","paddingLeft","svg","marginRight","LeftSidebar","props","toggleTag","queryParams","tags","scope","activeTags","Array","isArray","useQuery","LIST_TAGS","variables","where","getWhere","data","list","get","length","tagList","sortBy","filter","tag","map","item","index","className","includes","formatTagAsLabel"],"sources":["LeftSidebar.tsx"],"sourcesContent":["import React from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport sortBy from \"lodash/sortBy\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ReactComponent as TagIcon } from \"./icons/round-label-24px.svg\";\nimport { LIST_TAGS } from \"./graphql\";\nimport { getWhere } from \"./FileManagerContext\";\nimport { formatTagAsLabel } from \"./FileDetails/Tags\";\n\nconst style = {\n leftDrawer: css({\n float: \"left\",\n display: \"inline-block\",\n width: 250,\n height: \"100%\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n padding: 10\n }),\n noTagged: css({\n paddingTop: 100,\n textAlign: \"center\",\n color: \"var(--mdc-theme-on-surface)\"\n })\n};\n\nconst TagList = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst Tag = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n height: 40,\n alignItems: \"center\",\n cursor: \"pointer\",\n paddingLeft: 15,\n color: \"var(--mdc-theme-on-surface)\",\n svg: {\n color: \"var(--mdc-theme-on-surface)\",\n marginRight: 10\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n },\n \"&.active\": {\n svg: {\n color: \"var(--mdc-theme-secondary)\"\n }\n }\n});\n\ninterface LeftSidebarProps {\n toggleTag: (item: string) => void;\n queryParams: {\n tags: string[];\n scope: string;\n };\n}\nconst LeftSidebar: React.FC<LeftSidebarProps> = props => {\n const {\n toggleTag,\n queryParams: { tags, scope }\n } = props;\n const activeTags = Array.isArray(tags) ? tags : [];\n\n const { data } = useQuery(LIST_TAGS, { variables: { where: getWhere(scope) } });\n\n const list = get(data, \"fileManager.listTags\", []);\n\n if (list.length === 0) {\n return (\n <div className={style.leftDrawer} data-testid={\"fm.left-drawer.empty-tag\"}>\n <div className={style.noTagged}>\n Once you tag an image, the tag will be displayed here.\n </div>\n </div>\n );\n }\n // Sort \"tags\" list in \"ASC\" order.\n const tagList = sortBy(list);\n\n return (\n <div className={style.leftDrawer}>\n <TagList data-testid={\"fm.left-drawer.tag-list\"}>\n {tagList\n .filter(tag => tag !== scope)\n .map((item, index) => {\n const className = activeTags.includes(item) ? \"active\" : \"\";\n return (\n <Tag\n className={className}\n key={item + index}\n onClick={() => toggleTag(item)}\n >\n <Icon icon={<TagIcon />} /> {formatTagAsLabel(item, scope)}\n </Tag>\n );\n })}\n </TagList>\n </div>\n );\n};\n\nexport default LeftSidebar;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["style","leftDrawer","css","float","display","width","height","backgroundColor","padding","noTagged","paddingTop","textAlign","color","TagList","styled","flexDirection","Tag","alignItems","cursor","paddingLeft","svg","marginRight","LeftSidebar","props","toggleTag","queryParams","tags","scope","activeTags","Array","isArray","useQuery","LIST_TAGS","variables","where","getWhere","data","list","get","length","tagList","sortBy","filter","tag","map","item","index","className","includes","formatTagAsLabel"],"sources":["LeftSidebar.tsx"],"sourcesContent":["import React from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport sortBy from \"lodash/sortBy\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ReactComponent as TagIcon } from \"./icons/round-label-24px.svg\";\nimport { LIST_TAGS } from \"./graphql\";\nimport { getWhere } from \"./FileManagerContext\";\nimport { formatTagAsLabel } from \"./FileDetails/Tags\";\n\nconst style = {\n leftDrawer: css({\n float: \"left\",\n display: \"inline-block\",\n width: 250,\n height: \"100%\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n padding: 10\n }),\n noTagged: css({\n paddingTop: 100,\n textAlign: \"center\",\n color: \"var(--mdc-theme-on-surface)\"\n })\n};\n\nconst TagList = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst Tag = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n height: 40,\n alignItems: \"center\",\n cursor: \"pointer\",\n paddingLeft: 15,\n color: \"var(--mdc-theme-on-surface)\",\n svg: {\n color: \"var(--mdc-theme-on-surface)\",\n marginRight: 10\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\"\n },\n \"&.active\": {\n svg: {\n color: \"var(--mdc-theme-secondary)\"\n }\n }\n});\n\ninterface LeftSidebarProps {\n toggleTag: (item: string) => void;\n queryParams: {\n tags: string[];\n scope: string;\n };\n}\nconst LeftSidebar: React.FC<LeftSidebarProps> = props => {\n const {\n toggleTag,\n queryParams: { tags, scope }\n } = props;\n const activeTags = Array.isArray(tags) ? tags : [];\n\n const { data } = useQuery(LIST_TAGS, { variables: { where: getWhere(scope) } });\n\n const list = get(data, \"fileManager.listTags\", []);\n\n if (list.length === 0) {\n return (\n <div className={style.leftDrawer} data-testid={\"fm.left-drawer.empty-tag\"}>\n <div className={style.noTagged}>\n Once you tag an image, the tag will be displayed here.\n </div>\n </div>\n );\n }\n // Sort \"tags\" list in \"ASC\" order.\n const tagList = sortBy(list);\n\n return (\n <div className={style.leftDrawer}>\n <TagList data-testid={\"fm.left-drawer.tag-list\"}>\n {tagList\n .filter(tag => tag !== scope)\n .map((item, index) => {\n const className = activeTags.includes(item) ? \"active\" : \"\";\n return (\n <Tag\n className={className}\n key={item + index}\n onClick={() => toggleTag(item)}\n >\n <Icon icon={<TagIcon />} /> {formatTagAsLabel(item, scope)}\n </Tag>\n );\n })}\n </TagList>\n </div>\n );\n};\n\nexport default LeftSidebar;\n"],"mappings":"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"}
|
|
@@ -1,30 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _emotion = require("emotion");
|
|
15
|
-
|
|
16
11
|
var _Icon = require("@webiny/ui/Icon");
|
|
17
|
-
|
|
18
12
|
var _i18n = require("@webiny/app/i18n");
|
|
19
|
-
|
|
20
13
|
var _privacy_tip24px = require("./icons/privacy_tip-24px.svg");
|
|
21
|
-
|
|
22
14
|
var _Typography = require("@webiny/ui/Typography");
|
|
23
|
-
|
|
24
15
|
var _templateObject, _templateObject2;
|
|
25
|
-
|
|
26
16
|
var t = _i18n.i18n.ns("app-admin/file-manager/file-manager-view/no-permission");
|
|
27
|
-
|
|
28
17
|
var styles = /*#__PURE__*/(0, _emotion.css)({
|
|
29
18
|
margin: "0 auto",
|
|
30
19
|
paddingTop: 0,
|
|
@@ -64,7 +53,6 @@ var styles = /*#__PURE__*/(0, _emotion.css)({
|
|
|
64
53
|
}
|
|
65
54
|
}
|
|
66
55
|
}, "label:styles;");
|
|
67
|
-
|
|
68
56
|
var NoPermissionView = function NoPermissionView() {
|
|
69
57
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
70
58
|
className: styles
|
|
@@ -82,6 +70,5 @@ var NoPermissionView = function NoPermissionView() {
|
|
|
82
70
|
use: "body2"
|
|
83
71
|
}, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["You're missing required permission to access files. Please contact the administrator."])))))));
|
|
84
72
|
};
|
|
85
|
-
|
|
86
73
|
var _default = NoPermissionView;
|
|
87
74
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","display","flexDirection","alignItems","color","marginTop","NoPermissionView"],"sources":["NoPermissionView.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as PermissionIcon } from \"./icons/privacy_tip-24px.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view/no-permission\");\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"transparent\",\n \"& .outer-container\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-surface)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"& .inner-container\": {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n paddingTop: 35,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n },\n \"& .title\": {\n marginTop: 8\n },\n \"& .body\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n }\n }\n});\n\nconst NoPermissionView: React.FC = () => {\n return (\n <div className={styles}>\n <div className={\"outer-container\"}>\n <div className={\"inner-container\"}>\n <Icon icon={<PermissionIcon />} />\n <Typography\n className={\"title\"}\n use={\"subtitle1\"}\n >{t`Permission needed`}</Typography>\n <Typography className={\"body\"} use={\"body2\"}>\n {t`You're missing required permission to access files. Please contact the administrator.`}\n </Typography>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NoPermissionView;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","styles","css","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","display","flexDirection","alignItems","color","marginTop","NoPermissionView"],"sources":["NoPermissionView.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as PermissionIcon } from \"./icons/privacy_tip-24px.svg\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst t = i18n.ns(\"app-admin/file-manager/file-manager-view/no-permission\");\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"transparent\",\n \"& .outer-container\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-surface)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"& .inner-container\": {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n paddingTop: 35,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n },\n \"& .title\": {\n marginTop: 8\n },\n \"& .body\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n }\n }\n});\n\nconst NoPermissionView: React.FC = () => {\n return (\n <div className={styles}>\n <div className={\"outer-container\"}>\n <div className={\"inner-container\"}>\n <Icon icon={<PermissionIcon />} />\n <Typography\n className={\"title\"}\n use={\"subtitle1\"}\n >{t`Permission needed`}</Typography>\n <Typography className={\"body\"} use={\"body2\"}>\n {t`You're missing required permission to access files. Please contact the administrator.`}\n </Typography>\n </div>\n </div>\n </div>\n );\n};\n\nexport default NoPermissionView;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAAmD;AAEnD,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,wDAAwD,CAAC;AAE3E,IAAMC,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,CAAC;EACbC,MAAM,EAAE,MAAM;EACdC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,UAAU;EACpBC,eAAe,EAAE,aAAa;EAC9B,oBAAoB,EAAE;IAClBC,SAAS,EAAE,QAAQ;IACnBH,KAAK,EAAE,GAAG;IACVF,MAAM,EAAE,GAAG;IACXI,eAAe,EAAE,0BAA0B;IAC3CE,YAAY,EAAE,KAAK;IACnBH,QAAQ,EAAE,UAAU;IACpBI,IAAI,EAAE,KAAK;IACXC,GAAG,EAAE,KAAK;IACVC,SAAS,EAAE,oCAAoC;IAC/C,oBAAoB,EAAE;MAClBC,OAAO,EAAE,MAAM;MACfC,aAAa,EAAE,QAAQ;MACvBC,UAAU,EAAE,QAAQ;MACpBb,UAAU,EAAE,EAAE;MACdG,KAAK,EAAE,GAAG;MACVW,KAAK,EAAE,6BAA6B;MACpC,sBAAsB,EAAE;QACpBX,KAAK,EAAE,GAAG;QACVQ,OAAO,EAAE,cAAc;QACvBG,KAAK,EAAE;MACX,CAAC;MACD,UAAU,EAAE;QACRC,SAAS,EAAE;MACf,CAAC;MACD,SAAS,EAAE;QACPD,KAAK,EAAE;MACX;IACJ;EACJ;AACJ,CAAC,kBAAC;AAEF,IAAME,gBAA0B,GAAG,SAA7BA,gBAA0B,GAAS;EACrC,oBACI;IAAK,SAAS,EAAEnB;EAAO,gBACnB;IAAK,SAAS,EAAE;EAAkB,gBAC9B;IAAK,SAAS,EAAE;EAAkB,gBAC9B,6BAAC,UAAI;IAAC,IAAI,eAAE,6BAAC,+BAAc;EAAI,EAAG,eAClC,6BAAC,sBAAU;IACP,SAAS,EAAE,OAAQ;IACnB,GAAG,EAAE;EAAY,GACnBH,CAAC,qGAAiC,eACpC,6BAAC,sBAAU;IAAC,SAAS,EAAE,MAAO;IAAC,GAAG,EAAE;EAAQ,GACvCA,CAAC,2KACO,CACX,CACJ,CACJ;AAEd,CAAC;AAAC,eAEasB,gBAAgB;AAAA"}
|
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
9
|
var _emotion = require("emotion");
|
|
13
|
-
|
|
14
10
|
var styles = /*#__PURE__*/(0, _emotion.css)({
|
|
15
11
|
padding: "100px 0px",
|
|
16
12
|
textAlign: "center",
|
|
17
13
|
position: "absolute",
|
|
18
14
|
width: "100%"
|
|
19
15
|
}, "label:styles;");
|
|
20
|
-
|
|
21
16
|
var DropFilesHere = function DropFilesHere() {
|
|
22
17
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
23
18
|
className: styles
|
|
24
19
|
}, /*#__PURE__*/_react.default.createElement("div", null, "No results found."));
|
|
25
20
|
};
|
|
26
|
-
|
|
27
21
|
var _default = DropFilesHere;
|
|
28
22
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["styles","css","padding","textAlign","position","width","DropFilesHere"],"sources":["NoResults.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n\nconst styles = css({\n padding: \"100px 0px\",\n textAlign: \"center\",\n position: \"absolute\",\n width: \"100%\"\n});\n\nconst DropFilesHere: React.FC = () => {\n return (\n <div className={styles}>\n <div>No results found.</div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["styles","css","padding","textAlign","position","width","DropFilesHere"],"sources":["NoResults.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n\nconst styles = css({\n padding: \"100px 0px\",\n textAlign: \"center\",\n position: \"absolute\",\n width: \"100%\"\n});\n\nconst DropFilesHere: React.FC = () => {\n return (\n <div className={styles}>\n <div>No results found.</div>\n </div>\n );\n};\nexport default DropFilesHere;\n"],"mappings":";;;;;;;AAAA;AACA;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,OAAO,EAAE,WAAW;EACpBC,SAAS,EAAE,QAAQ;EACnBC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE;AACX,CAAC,kBAAC;AAEF,IAAMC,aAAuB,GAAG,SAA1BA,aAAuB,GAAS;EAClC,oBACI;IAAK,SAAS,EAAEN;EAAO,gBACnB,0CAAK,mBAAiB,CAAM,CAC1B;AAEd,CAAC;AAAC,eACaM,aAAa;AAAA"}
|
|
@@ -1,57 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = getFileTypePlugin;
|
|
9
|
-
|
|
10
8
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
9
|
var _invariant = _interopRequireDefault(require("invariant"));
|
|
13
|
-
|
|
14
10
|
var _minimatch = _interopRequireDefault(require("minimatch"));
|
|
15
|
-
|
|
16
11
|
var _plugins = require("@webiny/plugins");
|
|
17
|
-
|
|
18
12
|
var _FileManagerFileTypePlugin = require("../../plugins/FileManagerFileTypePlugin");
|
|
19
|
-
|
|
20
13
|
function getFileTypePlugin(file) {
|
|
21
14
|
if (!file) {
|
|
22
15
|
return null;
|
|
23
16
|
}
|
|
24
|
-
|
|
25
17
|
var fileTypePlugins = [].concat((0, _toConsumableArray2.default)(_plugins.plugins.byType("admin-file-manager-file-type")), (0, _toConsumableArray2.default)(_plugins.plugins.byType(_FileManagerFileTypePlugin.FileManagerFileTypePlugin.type))).filter(function (value, index, self) {
|
|
26
18
|
return self.indexOf(value) === index;
|
|
27
|
-
});
|
|
28
|
-
// and not worry about the order of plugin registration.
|
|
19
|
+
});
|
|
29
20
|
|
|
21
|
+
// Group by types, but only one plugin per group. Last in wins. This allows you to add plugins to the system
|
|
22
|
+
// and not worry about the order of plugin registration.
|
|
30
23
|
var byTypes = fileTypePlugins.reduce(function (acc, plugin) {
|
|
31
24
|
plugin.types.forEach(function (type) {
|
|
32
25
|
return acc[type] = plugin;
|
|
33
26
|
});
|
|
34
27
|
return acc;
|
|
35
|
-
}, {});
|
|
28
|
+
}, {});
|
|
36
29
|
|
|
30
|
+
// Sort by type and by priority. More occurrences of `*` means lower priority.
|
|
37
31
|
var regExMatch = /\*/g;
|
|
38
32
|
var types = Object.keys(byTypes).sort(function (a, b) {
|
|
39
33
|
var countA = (a.match(regExMatch) || []).length;
|
|
40
34
|
var countB = (b.match(regExMatch) || []).length;
|
|
41
|
-
|
|
42
35
|
if (countB > countA) {
|
|
43
36
|
return -1;
|
|
44
37
|
} else if (countB < countA) {
|
|
45
38
|
return 1;
|
|
46
39
|
}
|
|
47
|
-
|
|
48
40
|
return 0;
|
|
49
|
-
});
|
|
41
|
+
});
|
|
50
42
|
|
|
43
|
+
// Find first matching type
|
|
51
44
|
var type = types.find(function (type) {
|
|
52
45
|
return (0, _minimatch.default)(file.type, type);
|
|
53
46
|
});
|
|
54
|
-
(0, _invariant.default)(type, "Missing plugin to handle \"".concat(file.type, "\"!"));
|
|
47
|
+
(0, _invariant.default)(type, "Missing plugin to handle \"".concat(file.type, "\"!"));
|
|
55
48
|
|
|
49
|
+
// return the plugin
|
|
56
50
|
return byTypes[type];
|
|
57
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getFileTypePlugin","file","fileTypePlugins","plugins","byType","FileManagerFileTypePlugin","type","filter","value","index","self","indexOf","byTypes","reduce","acc","plugin","types","forEach","regExMatch","Object","keys","sort","a","b","countA","match","length","countB","find","minimatch","invariant"],"sources":["getFileTypePlugin.ts"],"sourcesContent":["import invariant from \"invariant\";\nimport minimatch from \"minimatch\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminFileManagerFileTypePlugin } from \"~/types\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\nimport { FileItem } from \"./types\";\n\nexport default function getFileTypePlugin(\n file: FileItem\n): AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin | null {\n if (!file) {\n return null;\n }\n\n const fileTypePlugins = [\n ...plugins.byType<AdminFileManagerFileTypePlugin>(\"admin-file-manager-file-type\"),\n ...plugins.byType<FileManagerFileTypePlugin>(FileManagerFileTypePlugin.type)\n ].filter((value, index, self) => self.indexOf(value) === index);\n\n // Group by types, but only one plugin per group. Last in wins. This allows you to add plugins to the system\n // and not worry about the order of plugin registration.\n const byTypes = fileTypePlugins.reduce<\n Record<string, AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin>\n >((acc, plugin) => {\n plugin.types.forEach(type => (acc[type] = plugin));\n return acc;\n }, {});\n\n // Sort by type and by priority. More occurrences of `*` means lower priority.\n const regExMatch = /\\*/g;\n const types = Object.keys(byTypes).sort((a, b) => {\n const countA = (a.match(regExMatch) || []).length;\n const countB = (b.match(regExMatch) || []).length;\n if (countB > countA) {\n return -1;\n } else if (countB < countA) {\n return 1;\n }\n return 0;\n });\n\n // Find first matching type\n const type = types.find(type => minimatch(file.type, type));\n\n invariant(type, `Missing plugin to handle \"${file.type}\"!`);\n\n // return the plugin\n return byTypes[type];\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["getFileTypePlugin","file","fileTypePlugins","plugins","byType","FileManagerFileTypePlugin","type","filter","value","index","self","indexOf","byTypes","reduce","acc","plugin","types","forEach","regExMatch","Object","keys","sort","a","b","countA","match","length","countB","find","minimatch","invariant"],"sources":["getFileTypePlugin.ts"],"sourcesContent":["import invariant from \"invariant\";\nimport minimatch from \"minimatch\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminFileManagerFileTypePlugin } from \"~/types\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\nimport { FileItem } from \"./types\";\n\nexport default function getFileTypePlugin(\n file: FileItem\n): AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin | null {\n if (!file) {\n return null;\n }\n\n const fileTypePlugins = [\n ...plugins.byType<AdminFileManagerFileTypePlugin>(\"admin-file-manager-file-type\"),\n ...plugins.byType<FileManagerFileTypePlugin>(FileManagerFileTypePlugin.type)\n ].filter((value, index, self) => self.indexOf(value) === index);\n\n // Group by types, but only one plugin per group. Last in wins. This allows you to add plugins to the system\n // and not worry about the order of plugin registration.\n const byTypes = fileTypePlugins.reduce<\n Record<string, AdminFileManagerFileTypePlugin | FileManagerFileTypePlugin>\n >((acc, plugin) => {\n plugin.types.forEach(type => (acc[type] = plugin));\n return acc;\n }, {});\n\n // Sort by type and by priority. More occurrences of `*` means lower priority.\n const regExMatch = /\\*/g;\n const types = Object.keys(byTypes).sort((a, b) => {\n const countA = (a.match(regExMatch) || []).length;\n const countB = (b.match(regExMatch) || []).length;\n if (countB > countA) {\n return -1;\n } else if (countB < countA) {\n return 1;\n }\n return 0;\n });\n\n // Find first matching type\n const type = types.find(type => minimatch(file.type, type));\n\n invariant(type, `Missing plugin to handle \"${file.type}\"!`);\n\n // return the plugin\n return byTypes[type];\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAEA;AAGe,SAASA,iBAAiB,CACrCC,IAAc,EACmD;EACjE,IAAI,CAACA,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,IAAMC,eAAe,GAAG,2CACjBC,gBAAO,CAACC,MAAM,CAAiC,8BAA8B,CAAC,oCAC9ED,gBAAO,CAACC,MAAM,CAA4BC,oDAAyB,CAACC,IAAI,CAAC,GAC9EC,MAAM,CAAC,UAACC,KAAK,EAAEC,KAAK,EAAEC,IAAI;IAAA,OAAKA,IAAI,CAACC,OAAO,CAACH,KAAK,CAAC,KAAKC,KAAK;EAAA,EAAC;;EAE/D;EACA;EACA,IAAMG,OAAO,GAAGV,eAAe,CAACW,MAAM,CAEpC,UAACC,GAAG,EAAEC,MAAM,EAAK;IACfA,MAAM,CAACC,KAAK,CAACC,OAAO,CAAC,UAAAX,IAAI;MAAA,OAAKQ,GAAG,CAACR,IAAI,CAAC,GAAGS,MAAM;IAAA,CAAC,CAAC;IAClD,OAAOD,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAC;;EAEN;EACA,IAAMI,UAAU,GAAG,KAAK;EACxB,IAAMF,KAAK,GAAGG,MAAM,CAACC,IAAI,CAACR,OAAO,CAAC,CAACS,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IAC9C,IAAMC,MAAM,GAAG,CAACF,CAAC,CAACG,KAAK,CAACP,UAAU,CAAC,IAAI,EAAE,EAAEQ,MAAM;IACjD,IAAMC,MAAM,GAAG,CAACJ,CAAC,CAACE,KAAK,CAACP,UAAU,CAAC,IAAI,EAAE,EAAEQ,MAAM;IACjD,IAAIC,MAAM,GAAGH,MAAM,EAAE;MACjB,OAAO,CAAC,CAAC;IACb,CAAC,MAAM,IAAIG,MAAM,GAAGH,MAAM,EAAE;MACxB,OAAO,CAAC;IACZ;IACA,OAAO,CAAC;EACZ,CAAC,CAAC;;EAEF;EACA,IAAMlB,IAAI,GAAGU,KAAK,CAACY,IAAI,CAAC,UAAAtB,IAAI;IAAA,OAAI,IAAAuB,kBAAS,EAAC5B,IAAI,CAACK,IAAI,EAAEA,IAAI,CAAC;EAAA,EAAC;EAE3D,IAAAwB,kBAAS,EAACxB,IAAI,uCAA+BL,IAAI,CAACK,IAAI,SAAK;;EAE3D;EACA,OAAOM,OAAO,CAACN,IAAI,CAAC;AACxB"}
|
|
@@ -4,17 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _plugins = require("@webiny/plugins");
|
|
9
|
-
|
|
10
8
|
var _default = function _default() {
|
|
11
9
|
var fileStoragePlugin = _plugins.plugins.byName("app-file-manager-storage");
|
|
12
|
-
|
|
13
10
|
if (!fileStoragePlugin) {
|
|
14
11
|
throw Error('Missing plugin: "app-file-manager-storage".');
|
|
15
12
|
}
|
|
16
|
-
|
|
17
13
|
return fileStoragePlugin.upload;
|
|
18
14
|
};
|
|
19
|
-
|
|
20
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fileStoragePlugin","plugins","byName","Error","upload"],"sources":["getFileUploader.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { AppFileManagerStoragePlugin } from \"@webiny/app/types\";\n\nexport default (): AppFileManagerStoragePlugin[\"upload\"] => {\n const fileStoragePlugin = plugins.byName<AppFileManagerStoragePlugin>(\n \"app-file-manager-storage\"\n );\n\n if (!fileStoragePlugin) {\n throw Error('Missing plugin: \"app-file-manager-storage\".');\n }\n\n return fileStoragePlugin.upload;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["fileStoragePlugin","plugins","byName","Error","upload"],"sources":["getFileUploader.ts"],"sourcesContent":["import { plugins } from \"@webiny/plugins\";\nimport { AppFileManagerStoragePlugin } from \"@webiny/app/types\";\n\nexport default (): AppFileManagerStoragePlugin[\"upload\"] => {\n const fileStoragePlugin = plugins.byName<AppFileManagerStoragePlugin>(\n \"app-file-manager-storage\"\n );\n\n if (!fileStoragePlugin) {\n throw Error('Missing plugin: \"app-file-manager-storage\".');\n }\n\n return fileStoragePlugin.upload;\n};\n"],"mappings":";;;;;;AAAA;AAA0C,eAG3B,oBAA6C;EACxD,IAAMA,iBAAiB,GAAGC,gBAAO,CAACC,MAAM,CACpC,0BAA0B,CAC7B;EAED,IAAI,CAACF,iBAAiB,EAAE;IACpB,MAAMG,KAAK,CAAC,6CAA6C,CAAC;EAC9D;EAEA,OAAOH,iBAAiB,CAACI,MAAM;AACnC,CAAC;AAAA"}
|
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.UPDATE_FILE = exports.LIST_TAGS = exports.LIST_FILES = exports.GET_FILE_SETTINGS = exports.DELETE_FILE = exports.CREATE_FILE = void 0;
|
|
9
|
-
|
|
10
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
|
|
12
9
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
13
|
-
|
|
14
10
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
11
|
+
var FILE_FIELDS = /* GraphQL */"\n {\n __typename\n id\n name\n key\n src\n size\n type\n tags\n createdOn\n createdBy {\n id\n }\n }\n";
|
|
12
|
+
var ERROR_FIELDS = /* GraphQL */"\n {\n code\n message\n data\n }\n";
|
|
15
13
|
|
|
16
|
-
var FILE_FIELDS =
|
|
17
|
-
/* GraphQL */
|
|
18
|
-
"\n {\n __typename\n id\n name\n key\n src\n size\n type\n tags\n createdOn\n createdBy {\n id\n }\n }\n";
|
|
19
|
-
var ERROR_FIELDS =
|
|
20
|
-
/* GraphQL */
|
|
21
|
-
"\n {\n code\n message\n data\n }\n";
|
|
22
14
|
/**
|
|
23
15
|
* ##################
|
|
24
16
|
* List Files Query Response
|
|
@@ -29,28 +21,25 @@ var LIST_FILES = (0, _graphqlTag.default)(_templateObject || (_templateObject =
|
|
|
29
21
|
* ##################
|
|
30
22
|
* List File Tags Query Response
|
|
31
23
|
*/
|
|
32
|
-
|
|
33
24
|
exports.LIST_FILES = LIST_FILES;
|
|
34
25
|
var LIST_TAGS = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query ListTags($where: TagWhereInput) {\n fileManager {\n listTags(where: $where)\n }\n }\n"])));
|
|
35
26
|
/**
|
|
36
27
|
* ##################
|
|
37
28
|
* Create File Mutation Response
|
|
38
29
|
*/
|
|
39
|
-
|
|
40
30
|
exports.LIST_TAGS = LIST_TAGS;
|
|
41
31
|
var CREATE_FILE = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateFile($data: FileInput!) {\n fileManager {\n createFile(data: $data) {\n error ", "\n data ", "\n }\n }\n }\n"])), ERROR_FIELDS, FILE_FIELDS);
|
|
42
32
|
/**
|
|
43
33
|
* ##################
|
|
44
34
|
* Update File Mutation Response
|
|
45
35
|
*/
|
|
46
|
-
|
|
47
36
|
exports.CREATE_FILE = CREATE_FILE;
|
|
48
37
|
var UPDATE_FILE = (0, _graphqlTag.default)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateFile($id: ID!, $data: FileInput!) {\n fileManager {\n updateFile(id: $id, data: $data) {\n data {\n id\n src\n name\n tags\n }\n error ", "\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
38
|
+
|
|
49
39
|
/**
|
|
50
40
|
* ##################
|
|
51
41
|
* Delete File Mutation Response
|
|
52
42
|
*/
|
|
53
|
-
|
|
54
43
|
exports.UPDATE_FILE = UPDATE_FILE;
|
|
55
44
|
var DELETE_FILE = (0, _graphqlTag.default)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n mutation deleteFile($id: ID!) {\n fileManager {\n deleteFile(id: $id) {\n data\n error ", "\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
56
45
|
exports.DELETE_FILE = DELETE_FILE;
|